Changeset 1428045
- Timestamp:
- 06/01/2016 05:29:46 AM (9 years ago)
- Location:
- kopa-page-builder/trunk
- Files:
-
- 5 added
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
kopa-page-builder/trunk/css/style.css
r1323889 r1428045 208 208 .kpb-row-sub-area { 209 209 margin-top: 24px; 210 padding: 12px 5px; 211 border: 1px solid #fafafa; 210 212 } 211 213 .kpb-row-sub-area.kpb-row-sub-area-first { -
kopa-page-builder/trunk/css/style.min.css
r1323889 r1428045 1 .kpb-row{margin-right:-6px;margin-left:-6px}.kpb-row:before,.kpb-row:after{display:table;content:" "}.kpb-row:after{clear:both}.kpb-section-placeholder>.kpb-row{margin-top:-12px}.kpb-section-placeholder>.kpb-row>div{margin-top:12px}.kpb-content-box,.kpb-row{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.kpb-border-box,.kpb-col-1,.kpb-col-2,.kpb-col-3,.kpb-col-4,.kpb-col-5,.kpb-col-6,.kpb-col-7,.kpb-col-8,.kpb-col-9,.kpb-col-10,.kpb-col-11,.kpb-col-12{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.kpb-pull-right{float:right !important}.kpb-pull-left{float:left !important}.kpb-clearfix:before,.kpb-clearfix:after{display:table;content:" "}.kpb-clearfix:after{clear:both}.kpb-col-1,.kpb-col-2,.kpb-col-3,.kpb-col-4,.kpb-col-5,.kpb-col-6,.kpb-col-7,.kpb-col-8,.kpb-col-9,.kpb-col-10,.kpb-col-11,.kpb-col-12{float:left;padding-left:6px;padding-right:6px}.kpb-col-12{width:100%}.kpb-col-11{width:91.66666666666666%}.kpb-col-10{width:83.33333333333334%}.kpb-col-9{width:75%}.kpb-col-8{width:66.66666666666666%}.kpb-col-7{width:58.333333333333336%}.kpb-col-6{width:50%}.kpb-col-5{width:41.66666666666667%}.kpb-col-4{width:33.33333333333333%}.kpb-col-3{width:25%}.kpb-col-2{width:16.666666666666664%}.kpb-col-1{width:8.333333333333332%}#poststuff #kopa_page_builder_meta_boxes .inside{margin-top:12px}#kpb-widgets a,#kpb-widgets button,section.kpb-wrapper a,section.kpb-wrapper button,.kpb-customize a,.kpb-customize button{outer:none !important;box-shadow:none !important}#kpb-widgets a:focus,#kpb-widgets button:focus,section.kpb-wrapper a:focus,section.kpb-wrapper button:focus,.kpb-customize a:focus,.kpb-customize button:focus{box-shadow:none !important}header#kpb-wrapper-header{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e5e5}header#kpb-wrapper-header.kpb-stuck{position:fixed;top:32px;left:0;right:0px;width:100%;height:36px;line-height:36px;background-color:rgba(255,255,255,0.9);margin-bottom:0px;padding-bottom:0px;-webkit-box-shadow:0 0 9px rgba(166,166,166,0.75);-moz-box-shadow:0 0 9px rgba(166,166,166,0.75);box-shadow:0 0 9px rgba(166,166,166,0.75);border-bottom:none;padding-top:6px;padding-left:12px;padding-right:12px}header#kpb-wrapper-header.kpb-stuck #kpb-button-save-layouts{margin-right:48px}header#kpb-wrapper-header.kpb-stuck #kpb-select-layout{display:none}.kpb-preview-images{display:block;padding:3px;border:1px solid #e5e5e5;overflow:hidden}.kpb-preview-images img{width:100%;max-width:100%}aside.kpb-section{margin-top:24px;border:1px solid #158bc5}aside.kpb-section.kpb-first{margin-top:0px}aside.kpb-section header.kpb-section-header{background-color:#158bc5;margin:-1px;border-bottom-color:#158bc5 !important}aside.kpb-section header.kpb-section-header label{color:#fff;text-transform:uppercase;font-size:15px;font-weight:bold}aside.kpb-section .kpb-section-placeholder{padding:0px 12px 12px 12px}.kpb-row-sub-area{margin-top:24px }.kpb-row-sub-area.kpb-row-sub-area-first{margin-top:0px}div.kpb-area{border:1px solid #ececec}div.kpb-area header.kpb-area-header{background-color:#ececec;margin:-1px}div.kpb-area header.kpb-area-header label{font-size:14px;text-transform:uppercase;font-style:bold}div.kpb-area .kpb-area-placeholder{padding:6px 12px;min-height:24px}div.kpb-area .kpb-area-placeholder .kpb-widget{cursor:move;background-color:#f8f8f8;border:1px solid #e5e5e5;border-radius:3px}#kpb-widgets{positions:relative;background-color:#fff;width:70%;margin:48px auto}#kpb-widgets #kpb-widgets-header{background-color:#ececec}#kpb-widgets .kpb-widgets-inner{padding:12px}#kpb-widgets .kpb-row .kpb-widget{margin-top:24px}#kpb-widgets .kpb-row.kpb-first .kpb-widget{margin-top:0px}#kpb-widgets aside.kpb-widget .kpb-widget-inner{border:1px solid #e5e5e5}#kpb-widgets aside.kpb-widget .kpb-widget-inner header{background-color:#f8f8f8}#kpb-widgets aside.kpb-widget .kpb-widget-inner .kpb-widget-description{padding:6px;font-size:85%;font-style:italic;color:#666}.kpb-widget-inner{overflow:hidden}#kpb-widget{positions:relative;background-color:#fff;width:70%;margin:48px auto}#kpb-widget #kpb-widget-header{background-color:#ececec}#kpb-widget .kpb-form-inner{margin-left:24px;margin-right:24px}.kpb-loading{font-style:italic}#kpb-metabox-loading-text{line-height:16px}#kpb-metabox-loading-text img{height:16px;width:16px;display:block;float:left;margin:0px;padding:0px}.kpb-widget-sortable-placeholder{background:#F9F9F9;border:1px solid #e5e5e5;border-radius:3px;margin-bottom:12px}#kpb-loading-overlay{display:block;position:fixed;bottom:24px;right:-150px;height:36px;line-height:36px;width:100px;z-index:999999;background-color:#158bc5;color:#FFF;font-style:italic;padding:0px 12px;-webkit-border-top-left-radius:12px;-webkit-border-bottom-left-radius:12px;-moz-border-radius-topleft:12px;-moz-border-radius-bottomleft:12px;border-top-left-radius:12px;border-bottom-left-radius:12px}.kpb-customize-lightbox{positions:relative;background-color:#fff;width:70%;margin:48px auto}.kpb-customize-lightbox header.kpb-customize-header .button-delete{margin-left:12px}.kpb-customize-lightbox .kpb-form-inner{margin:0px}.kpb-wrapper-configuration header{margin-bottom:-1px !important}.kpb-wrapper-configuration .kpb-wrapper-configuration-toggle{padding:12px 24px}.kpb-wrapper-configuration nav ul{margin:0px;list-style-type:none}.kpb-wrapper-configuration nav ul li{display:block;float:left;margin-bottom:0px;padding-left:12px;margin-left:12px;border-left:1px solid #e5e5e5;height:24px;line-height:24px}.kpb-wrapper-configuration nav ul li.kpb-tab-title-first{padding-left:0px;margin-left:0px;border-left:none}.kpb-wrapper-configuration nav ul li a{text-decoration:none;outline:none !important}.kpb-wrapper-configuration nav ul li.kpb-tab-title-active a{color:red}.kpb-wrapper-configuration .kpb-tab-content .kpb-control{margin-top:12px;padding-top:12px;border-top:1px solid #e5e5e5}.kpb-widget-customize .kpb-wrapper-configuration-toggle{padding:0px !important}#kpb-button-hide-preview{margin-right:24px}#kpb-button-customize{margin-left:24px}#kpb-list-icon{margin-top:24px;margin-bottom:24px}#kpb-list-icon .kpb-ui-icon-item{text-align:center;margin-top:24px}#kpb-list-icon .kpb-ui-icon-item a{display:inline-block;width:24px;height:24px;line-height:24px;font-size:16px;color:#000;border:1px solid #e5e5e5}#kpb-list-icon .kpb-ui-icon-item a:hover{color:red;border-color:red}.kpb-list-blocks.kpb-list-blocks-first .kpb-list-blocks-caption{margin-top:0px !important}.kpb-list-blocks .kpb-list-blocks-caption{margin-top:24px;margin-bottom:24px;padding-bottom:24px;border-bottom:3px double #e5e5e5}.kpb-ui-image-outer .button{margin-left:12px}.kpb-ui-image,.kpb-ui-image-preview{height:auto;width:200px;max-width:200px;border:1px solid #dedede;padding:1px}.kpb-ui-number{width:50px}.kpb-ui-textarea{width:100%}.kpb-ui-textarea.kpb-ui-textarea-guide-line{background:url("../images/textarea.gif") top left repeat transparent;font-family:"Courier";font-size:95%;line-height:21px}._kpb_header,aside.kpb-section header.kpb-section-header,div.kpb-area header.kpb-area-header,div.kpb-area .kpb-area-placeholder .kpb-widget,#kpb-widgets #kpb-widgets-header,#kpb-widgets aside.kpb-widget .kpb-widget-inner header,#kpb-widget #kpb-widget-header,.kpb-customize-lightbox header.kpb-customize-header,.kpb-wrapper-configuration header,._kpb_footer,#kpb-widget #kpb-widget-footer{padding:6px 12px;line-height:28px}._kpb_header,aside.kpb-section header.kpb-section-header,div.kpb-area header.kpb-area-header,div.kpb-area .kpb-area-placeholder .kpb-widget,#kpb-widgets #kpb-widgets-header,#kpb-widgets aside.kpb-widget .kpb-widget-inner header,#kpb-widget #kpb-widget-header,.kpb-customize-lightbox header.kpb-customize-header,.kpb-wrapper-configuration header{margin-bottom:12px;border-bottom:1px solid #e5e5e5}._kpb_footer,#kpb-widget #kpb-widget-footer{margin-top:12px;border-top:1px solid #e5e5e5}.kpb-active{display:block}.kpb-hidden{display:none}.kpb-img-responsive{display:block;height:auto;max-width:100%;width:100%}.button.button-link{border-color:transparent;box-shadow:none;font-style:italic}.button.button-delete{color:red}.kpb-button-customize{display:block;height:18px;width:18px;background:url("../images/customize.png") center center no-repeat transparent;margin-top:6px;outer:none !important;box-shadow:none !important}.kpb-button-customize:hover{opacity:0.8}.kpb-button-use,.kpb-button-add-widget{text-decoration:none;outer:none !important;box-shadow:none !important;font-style:italic}.kpb-button-edit,.kpb-button-delete{display:block;text-decoration:none;font-style:italic}.kpb-button-edit{margin-right:6px}.kpb-button-delete{color:red}.kpb-button-use{color:#158bc5}.kpb-ui-help-text{margin-top:12px;font-size:90%;font-style:italic}#kpb-button-customize-layout{margin-right:24px}#kpb-nav-list-blocks{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #e5e5e5}.kpb-ui-alert{display:block;padding:12px 24px}.kpb-ui-alert.kpb-skin-info{background-color:#fff176;border:1px solid #fdd835;color:#333;font-style:italic}1 .kpb-row{margin-right:-6px;margin-left:-6px}.kpb-row:before,.kpb-row:after{display:table;content:" "}.kpb-row:after{clear:both}.kpb-section-placeholder>.kpb-row{margin-top:-12px}.kpb-section-placeholder>.kpb-row>div{margin-top:12px}.kpb-content-box,.kpb-row{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.kpb-border-box,.kpb-col-1,.kpb-col-2,.kpb-col-3,.kpb-col-4,.kpb-col-5,.kpb-col-6,.kpb-col-7,.kpb-col-8,.kpb-col-9,.kpb-col-10,.kpb-col-11,.kpb-col-12{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.kpb-pull-right{float:right !important}.kpb-pull-left{float:left !important}.kpb-clearfix:before,.kpb-clearfix:after{display:table;content:" "}.kpb-clearfix:after{clear:both}.kpb-col-1,.kpb-col-2,.kpb-col-3,.kpb-col-4,.kpb-col-5,.kpb-col-6,.kpb-col-7,.kpb-col-8,.kpb-col-9,.kpb-col-10,.kpb-col-11,.kpb-col-12{float:left;padding-left:6px;padding-right:6px}.kpb-col-12{width:100%}.kpb-col-11{width:91.66666666666666%}.kpb-col-10{width:83.33333333333334%}.kpb-col-9{width:75%}.kpb-col-8{width:66.66666666666666%}.kpb-col-7{width:58.333333333333336%}.kpb-col-6{width:50%}.kpb-col-5{width:41.66666666666667%}.kpb-col-4{width:33.33333333333333%}.kpb-col-3{width:25%}.kpb-col-2{width:16.666666666666664%}.kpb-col-1{width:8.333333333333332%}#poststuff #kopa_page_builder_meta_boxes .inside{margin-top:12px}#kpb-widgets a,#kpb-widgets button,section.kpb-wrapper a,section.kpb-wrapper button,.kpb-customize a,.kpb-customize button{outer:none !important;box-shadow:none !important}#kpb-widgets a:focus,#kpb-widgets button:focus,section.kpb-wrapper a:focus,section.kpb-wrapper button:focus,.kpb-customize a:focus,.kpb-customize button:focus{box-shadow:none !important}header#kpb-wrapper-header{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e5e5e5}header#kpb-wrapper-header.kpb-stuck{position:fixed;top:32px;left:0;right:0px;width:100%;height:36px;line-height:36px;background-color:rgba(255,255,255,0.9);margin-bottom:0px;padding-bottom:0px;-webkit-box-shadow:0 0 9px rgba(166,166,166,0.75);-moz-box-shadow:0 0 9px rgba(166,166,166,0.75);box-shadow:0 0 9px rgba(166,166,166,0.75);border-bottom:none;padding-top:6px;padding-left:12px;padding-right:12px}header#kpb-wrapper-header.kpb-stuck #kpb-button-save-layouts{margin-right:48px}header#kpb-wrapper-header.kpb-stuck #kpb-select-layout{display:none}.kpb-preview-images{display:block;padding:3px;border:1px solid #e5e5e5;overflow:hidden}.kpb-preview-images img{width:100%;max-width:100%}aside.kpb-section{margin-top:24px;border:1px solid #158bc5}aside.kpb-section.kpb-first{margin-top:0px}aside.kpb-section header.kpb-section-header{background-color:#158bc5;margin:-1px;border-bottom-color:#158bc5 !important}aside.kpb-section header.kpb-section-header label{color:#fff;text-transform:uppercase;font-size:15px;font-weight:bold}aside.kpb-section .kpb-section-placeholder{padding:0px 12px 12px 12px}.kpb-row-sub-area{margin-top:24px;padding:12px 5px;border:1px solid #fafafa}.kpb-row-sub-area.kpb-row-sub-area-first{margin-top:0px}div.kpb-area{border:1px solid #ececec}div.kpb-area header.kpb-area-header{background-color:#ececec;margin:-1px}div.kpb-area header.kpb-area-header label{font-size:14px;text-transform:uppercase;font-style:bold}div.kpb-area .kpb-area-placeholder{padding:6px 12px;min-height:24px}div.kpb-area .kpb-area-placeholder .kpb-widget{cursor:move;background-color:#f8f8f8;border:1px solid #e5e5e5;border-radius:3px}#kpb-widgets{positions:relative;background-color:#fff;width:70%;margin:48px auto}#kpb-widgets #kpb-widgets-header{background-color:#ececec}#kpb-widgets .kpb-widgets-inner{padding:12px}#kpb-widgets .kpb-row .kpb-widget{margin-top:24px}#kpb-widgets .kpb-row.kpb-first .kpb-widget{margin-top:0px}#kpb-widgets aside.kpb-widget .kpb-widget-inner{border:1px solid #e5e5e5}#kpb-widgets aside.kpb-widget .kpb-widget-inner header{background-color:#f8f8f8}#kpb-widgets aside.kpb-widget .kpb-widget-inner .kpb-widget-description{padding:6px;font-size:85%;font-style:italic;color:#666}.kpb-widget-inner{overflow:hidden}#kpb-widget{positions:relative;background-color:#fff;width:70%;margin:48px auto}#kpb-widget #kpb-widget-header{background-color:#ececec}#kpb-widget .kpb-form-inner{margin-left:24px;margin-right:24px}.kpb-loading{font-style:italic}#kpb-metabox-loading-text{line-height:16px}#kpb-metabox-loading-text img{height:16px;width:16px;display:block;float:left;margin:0px;padding:0px}.kpb-widget-sortable-placeholder{background:#F9F9F9;border:1px solid #e5e5e5;border-radius:3px;margin-bottom:12px}#kpb-loading-overlay{display:block;position:fixed;bottom:24px;right:-150px;height:36px;line-height:36px;width:100px;z-index:999999;background-color:#158bc5;color:#FFF;font-style:italic;padding:0px 12px;-webkit-border-top-left-radius:12px;-webkit-border-bottom-left-radius:12px;-moz-border-radius-topleft:12px;-moz-border-radius-bottomleft:12px;border-top-left-radius:12px;border-bottom-left-radius:12px}.kpb-customize-lightbox{positions:relative;background-color:#fff;width:70%;margin:48px auto}.kpb-customize-lightbox header.kpb-customize-header .button-delete{margin-left:12px}.kpb-customize-lightbox .kpb-form-inner{margin:0px}.kpb-wrapper-configuration header{margin-bottom:-1px !important}.kpb-wrapper-configuration .kpb-wrapper-configuration-toggle{padding:12px 24px}.kpb-wrapper-configuration nav ul{margin:0px;list-style-type:none}.kpb-wrapper-configuration nav ul li{display:block;float:left;margin-bottom:0px;padding-left:12px;margin-left:12px;border-left:1px solid #e5e5e5;height:24px;line-height:24px}.kpb-wrapper-configuration nav ul li.kpb-tab-title-first{padding-left:0px;margin-left:0px;border-left:none}.kpb-wrapper-configuration nav ul li a{text-decoration:none;outline:none !important}.kpb-wrapper-configuration nav ul li.kpb-tab-title-active a{color:red}.kpb-wrapper-configuration .kpb-tab-content .kpb-control{margin-top:12px;padding-top:12px;border-top:1px solid #e5e5e5}.kpb-widget-customize .kpb-wrapper-configuration-toggle{padding:0px !important}#kpb-button-hide-preview{margin-right:24px}#kpb-button-customize{margin-left:24px}#kpb-list-icon{margin-top:24px;margin-bottom:24px}#kpb-list-icon .kpb-ui-icon-item{text-align:center;margin-top:24px}#kpb-list-icon .kpb-ui-icon-item a{display:inline-block;width:24px;height:24px;line-height:24px;font-size:16px;color:#000;border:1px solid #e5e5e5}#kpb-list-icon .kpb-ui-icon-item a:hover{color:red;border-color:red}.kpb-list-blocks.kpb-list-blocks-first .kpb-list-blocks-caption{margin-top:0px !important}.kpb-list-blocks .kpb-list-blocks-caption{margin-top:24px;margin-bottom:24px;padding-bottom:24px;border-bottom:3px double #e5e5e5}.kpb-ui-image-outer .button{margin-left:12px}.kpb-ui-image,.kpb-ui-image-preview{height:auto;width:200px;max-width:200px;border:1px solid #dedede;padding:1px}.kpb-ui-number{width:50px}.kpb-ui-textarea{width:100%}.kpb-ui-textarea.kpb-ui-textarea-guide-line{background:url("../images/textarea.gif") top left repeat transparent;font-family:"Courier";font-size:95%;line-height:21px}._kpb_header,aside.kpb-section header.kpb-section-header,div.kpb-area header.kpb-area-header,div.kpb-area .kpb-area-placeholder .kpb-widget,#kpb-widgets #kpb-widgets-header,#kpb-widgets aside.kpb-widget .kpb-widget-inner header,#kpb-widget #kpb-widget-header,.kpb-customize-lightbox header.kpb-customize-header,.kpb-wrapper-configuration header,._kpb_footer,#kpb-widget #kpb-widget-footer{padding:6px 12px;line-height:28px}._kpb_header,aside.kpb-section header.kpb-section-header,div.kpb-area header.kpb-area-header,div.kpb-area .kpb-area-placeholder .kpb-widget,#kpb-widgets #kpb-widgets-header,#kpb-widgets aside.kpb-widget .kpb-widget-inner header,#kpb-widget #kpb-widget-header,.kpb-customize-lightbox header.kpb-customize-header,.kpb-wrapper-configuration header{margin-bottom:12px;border-bottom:1px solid #e5e5e5}._kpb_footer,#kpb-widget #kpb-widget-footer{margin-top:12px;border-top:1px solid #e5e5e5}.kpb-active{display:block}.kpb-hidden{display:none}.kpb-img-responsive{display:block;height:auto;max-width:100%;width:100%}.button.button-link{border-color:transparent;box-shadow:none;font-style:italic}.button.button-delete{color:red}.kpb-button-customize{display:block;height:18px;width:18px;background:url("../images/customize.png") center center no-repeat transparent;margin-top:6px;outer:none !important;box-shadow:none !important}.kpb-button-customize:hover{opacity:0.8}.kpb-button-use,.kpb-button-add-widget{text-decoration:none;outer:none !important;box-shadow:none !important;font-style:italic}.kpb-button-edit,.kpb-button-delete{display:block;text-decoration:none;font-style:italic}.kpb-button-edit{margin-right:6px}.kpb-button-delete{color:red}.kpb-button-use{color:#158bc5}.kpb-ui-help-text{margin-top:12px;font-size:90%;font-style:italic}#kpb-button-customize-layout{margin-right:24px}#kpb-nav-list-blocks{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #e5e5e5}.kpb-ui-alert{display:block;padding:12px 24px}.kpb-ui-alert.kpb-skin-info{background-color:#fff176;border:1px solid #fdd835;color:#333;font-style:italic} -
kopa-page-builder/trunk/css/style.scss
r1323889 r1428045 12 12 .kpb-row { 13 13 @extend .kpb-content-box; 14 margin-right: ( $space / 2) * -1;15 margin-left: ( $space / 2) * -1;14 margin-right: ( $space / 2) * -1; 15 margin-left: ( $space / 2) * -1; 16 16 &:before, 17 17 &:after{ … … 195 195 .kpb-row-sub-area{ 196 196 margin-top: $space * 2; 197 padding: 12px 5px; 198 border: 1px solid #fafafa; 199 197 200 &.kpb-row-sub-area-first{ 198 201 margin-top: 0px; … … 489 492 width: 100%; 490 493 &.kpb-ui-textarea-guide-line{ 491 background: url( '../images/textarea.gif') top left repeat transparent;494 background: url( '../images/textarea.gif') top left repeat transparent; 492 495 font-family: "Courier"; 493 496 font-size: 95%; … … 542 545 height: 18px; 543 546 width: 18px; 544 background: url( '../images/customize.png') center center no-repeat transparent;547 background: url( '../images/customize.png') center center no-repeat transparent; 545 548 margin-top: $space / 2; 546 549 outer: none !important; -
kopa-page-builder/trunk/js/jquery.magnific-popup.js
r1209395 r1428045 2 2 * http://dimsemenov.com/plugins/magnific-popup/ 3 3 * Copyright (c) 2014 Dmitry Semenov; */ 4 ;(function( $) {4 ;(function( $) { 5 5 6 6 /*>>core*/ … … 33 33 */ 34 34 var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this' 35 MagnificPopup = function() {},35 MagnificPopup = function() {}, 36 36 _isJQ = !!(window.jQuery), 37 37 _prevStatus, … … 51 51 }, 52 52 _getEl = function(className, appendTo, html, raw) { 53 var el = document.createElement( 'div');53 var el = document.createElement( 'div' ); 54 54 el.className = 'mfp-'+className; 55 55 if(html) { … … 79 79 _getCloseBtn = function(type) { 80 80 if(type !== _currPopupType || !mfp.currTemplate.closeBtn) { 81 mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace( '%title%', mfp.st.tClose ) );81 mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace( '%title%', mfp.st.tClose ) ); 82 82 _currPopupType = type; 83 83 } … … 94 94 // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr 95 95 supportsTransitions = function() { 96 var s = document.createElement( 'p').style, // 's' for style. better to create an element if body yet to exist96 var s = document.createElement( 'p').style, // 's' for style. better to create an element if body yet to exist 97 97 v = ['ms','O','Moz','Webkit']; // 'v' for vendor 98 98 … … 215 215 216 216 // Dark overlay 217 mfp.bgOverlay = _getEl( 'bg').on('click'+EVENT_NS, function() {217 mfp.bgOverlay = _getEl( 'bg').on( 'click'+EVENT_NS, function() { 218 218 mfp.close(); 219 219 }); 220 220 221 mfp.wrap = _getEl( 'wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {221 mfp.wrap = _getEl( 'wrap').attr( 'tabindex', -1).on( 'click'+EVENT_NS, function(e) { 222 222 if(mfp._checkIfClose(e.target)) { 223 223 mfp.close(); … … 225 225 }); 226 226 227 mfp.container = _getEl( 'container', mfp.wrap);228 } 229 230 mfp.contentContainer = _getEl( 'content');227 mfp.container = _getEl( 'container', mfp.wrap); 228 } 229 230 mfp.contentContainer = _getEl( 'content' ); 231 231 if(mfp.st.preloader) { 232 mfp.preloader = _getEl( 'preloader', mfp.container, mfp.st.tLoading);232 mfp.preloader = _getEl( 'preloader', mfp.container, mfp.st.tLoading); 233 233 } 234 234 … … 241 241 mfp['init'+n].call(mfp); 242 242 } 243 _mfpTrigger( 'BeforeOpen');243 _mfpTrigger( 'BeforeOpen' ); 244 244 245 245 … … 285 285 if(mfp.st.enableEscapeKey) { 286 286 // Close on ESC key 287 _document.on( 'keyup' + EVENT_NS, function(e) {287 _document.on( 'keyup' + EVENT_NS, function(e) { 288 288 if(e.keyCode === 27) { 289 289 mfp.close(); … … 292 292 } 293 293 294 _window.on( 'resize' + EVENT_NS, function() {294 _window.on( 'resize' + EVENT_NS, function() { 295 295 mfp.updateSize(); 296 296 }); … … 325 325 } else { 326 326 // ie7 double-scroll bug 327 $( 'body, html').css('overflow', 'hidden');327 $( 'body, html').css( 'overflow', 'hidden' ); 328 328 } 329 329 } … … 342 342 mfp.updateItemHTML(); 343 343 344 _mfpTrigger( 'BuildControls');344 _mfpTrigger( 'BuildControls' ); 345 345 346 346 // remove scrollbar, add margin e.t.c 347 $( 'html').css(windowStyles);347 $( 'html').css(windowStyles); 348 348 349 349 // add everything to DOM … … 365 365 366 366 // Trap the focus in popup 367 _document.on( 'focusin' + EVENT_NS, mfp._onFocusIn);367 _document.on( 'focusin' + EVENT_NS, mfp._onFocusIn); 368 368 369 369 }, 16); … … 416 416 var windowStyles = {marginRight: ''}; 417 417 if(mfp.isIE7) { 418 $( 'body, html').css('overflow', '');418 $( 'body, html').css( 'overflow', '' ); 419 419 } else { 420 420 windowStyles.overflow = ''; 421 421 } 422 $( 'html').css(windowStyles);423 } 424 425 _document.off( 'keyup' + EVENT_NS + ' focusin' + EVENT_NS);422 $( 'html').css(windowStyles); 423 } 424 425 _document.off( 'keyup' + EVENT_NS + ' focusin' + EVENT_NS); 426 426 mfp.ev.off(EVENT_NS); 427 427 428 428 // clean up DOM elements that aren't removed 429 mfp.wrap.attr( 'class', 'mfp-wrap').removeAttr('style');430 mfp.bgOverlay.attr( 'class', 'mfp-bg');431 mfp.container.attr( 'class', 'mfp-container');429 mfp.wrap.attr( 'class', 'mfp-wrap').removeAttr( 'style' ); 430 mfp.bgOverlay.attr( 'class', 'mfp-bg' ); 431 mfp.container.attr( 'class', 'mfp-container' ); 432 432 433 433 // remove close button from target element … … 456 456 var zoomLevel = document.documentElement.clientWidth / window.innerWidth; 457 457 var height = window.innerHeight * zoomLevel; 458 mfp.wrap.css( 'height', height);458 mfp.wrap.css( 'height', height); 459 459 mfp.wH = height; 460 460 } else { … … 463 463 // Fixes #84: popup incorrectly positioned with position:relative on body 464 464 if(!mfp.fixedContentPos) { 465 mfp.wrap.css( 'height', mfp.wH);466 } 467 468 _mfpTrigger( 'Resize');465 mfp.wrap.css( 'height', mfp.wH); 466 } 467 468 _mfpTrigger( 'Resize' ); 469 469 470 470 }, … … 488 488 var type = item.type; 489 489 490 _mfpTrigger( 'BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);490 _mfpTrigger( 'BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]); 491 491 // BeforeChange event works like so: 492 // _mfpOn( 'BeforeChange', function(e, prevType, newType) { });492 // _mfpOn( 'BeforeChange', function(e, prevType, newType) { }); 493 493 494 494 mfp.currItem = item; … … 502 502 503 503 // allows to modify markup 504 _mfpTrigger( 'FirstMarkupParse', markup);504 _mfpTrigger( 'FirstMarkupParse', markup); 505 505 506 506 if(markup) { … … 513 513 514 514 if(_prevContentType && _prevContentType !== item.type) { 515 mfp.container.removeClass( 'mfp-'+_prevContentType+'-holder');515 mfp.container.removeClass( 'mfp-'+_prevContentType+'-holder' ); 516 516 } 517 517 … … 527 527 mfp.container.prepend(mfp.contentContainer); 528 528 529 _mfpTrigger( 'AfterChange');529 _mfpTrigger( 'AfterChange' ); 530 530 }, 531 531 … … 541 541 mfp.currTemplate[type] === true) { 542 542 // if there is no markup, we just append close button element inside 543 if(!mfp.content.find( '.mfp-close').length) {543 if(!mfp.content.find( '.mfp-close').length) { 544 544 mfp.content.append(_getCloseBtn()); 545 545 } … … 552 552 553 553 _mfpTrigger(BEFORE_APPEND_EVENT); 554 mfp.container.addClass( 'mfp-'+type+'-holder');554 mfp.container.addClass( 'mfp-'+type+'-holder' ); 555 555 556 556 mfp.contentContainer.append(mfp.content); … … 580 580 // check for 'mfp-TYPE' class 581 581 for(var i = 0; i < types.length; i++) { 582 if( item.el.hasClass( 'mfp-'+types[i]) ) {582 if( item.el.hasClass( 'mfp-'+types[i]) ) { 583 583 type = types[i]; 584 584 break; … … 586 586 } 587 587 588 item.src = item.el.attr( 'data-mfp-src');588 item.src = item.el.attr( 'data-mfp-src' ); 589 589 if(!item.src) { 590 item.src = item.el.attr( 'href');590 item.src = item.el.attr( 'href' ); 591 591 } 592 592 } … … 596 596 item.parsed = true; 597 597 mfp.items[index] = item; 598 _mfpTrigger( 'ElementParse', item);598 _mfpTrigger( 'ElementParse', item); 599 599 600 600 return mfp.items[index]; … … 642 642 643 643 if(disableOn) { 644 if( $.isFunction(disableOn)) {644 if( $.isFunction(disableOn)) { 645 645 if( !disableOn.call(mfp) ) { 646 646 return true; … … 678 678 if(mfp.preloader) { 679 679 if(_prevStatus !== status) { 680 mfp.container.removeClass( 'mfp-s-'+_prevStatus);680 mfp.container.removeClass( 'mfp-s-'+_prevStatus); 681 681 } 682 682 … … 690 690 }; 691 691 // allows to modify status 692 _mfpTrigger( 'UpdateStatus', data);692 _mfpTrigger( 'UpdateStatus', data); 693 693 694 694 status = data.status; … … 697 697 mfp.preloader.html(text); 698 698 699 mfp.preloader.find( 'a').on('click', function(e) {699 mfp.preloader.find( 'a').on( 'click', function(e) { 700 700 e.stopImmediatePropagation(); 701 701 }); 702 702 703 mfp.container.addClass( 'mfp-s-'+status);703 mfp.container.addClass( 'mfp-s-'+status); 704 704 _prevStatus = status; 705 705 } … … 714 714 _checkIfClose: function(target) { 715 715 716 if( $(target).hasClass(PREVENT_CLOSE_CLASS)) {716 if( $(target).hasClass(PREVENT_CLOSE_CLASS)) { 717 717 return; 718 718 } … … 726 726 727 727 // We close the popup if click is on close button or on preloader. Or if there is no content. 728 if(!mfp.content || $(target).hasClass( 'mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {728 if(!mfp.content || $(target).hasClass( 'mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) { 729 729 return true; 730 730 } … … 776 776 return true; 777 777 } 778 arr = key.split( '_');778 arr = key.split( '_' ); 779 779 if(arr.length > 1) { 780 780 var el = template.find(EVENT_NS + '-'+arr[0]); … … 787 787 } 788 788 } else if(attr === 'img') { 789 if(el.is( 'img')) {790 el.attr( 'src', value);789 if(el.is( 'img')) { 790 el.attr( 'src', value); 791 791 } else { 792 el.replaceWith( '<img src="'+value+'" class="' + el.attr( 'class') + '" />' );792 el.replaceWith( '<img src="'+value+'" class="' + el.attr( 'class') + '" />' ); 793 793 } 794 794 } else { … … 917 917 if(options === 'open') { 918 918 var items, 919 itemOpts = _isJQ ? jqEl.data( 'magnificPopup') : jqEl[0].magnificPopup,919 itemOpts = _isJQ ? jqEl.data( 'magnificPopup') : jqEl[0].magnificPopup, 920 920 index = parseInt(arguments[1], 10) || 0; 921 921 … … 945 945 */ 946 946 if(_isJQ) { 947 jqEl.data( 'magnificPopup', options);947 jqEl.data( 'magnificPopup', options); 948 948 } else { 949 949 jqEl[0].magnificPopup = options; … … 966 966 967 967 } 968 console.log( 'Test #1:', performance.now() - start);968 console.log( 'Test #1:', performance.now() - start); 969 969 970 970 start = performance.now(); … … 972 972 973 973 } 974 console.log( 'Test #2:', performance.now() - start);974 console.log( 'Test #2:', performance.now() - start); 975 975 */ 976 976 … … 1029 1029 } 1030 1030 1031 mfp.updateStatus( 'ready');1031 mfp.updateStatus( 'ready' ); 1032 1032 } else { 1033 mfp.updateStatus( 'error', inlineSt.tNotFound);1034 el = $( '<div>');1033 mfp.updateStatus( 'error', inlineSt.tNotFound); 1034 el = $( '<div>' ); 1035 1035 } 1036 1036 … … 1039 1039 } 1040 1040 1041 mfp.updateStatus( 'ready');1041 mfp.updateStatus( 'ready' ); 1042 1042 mfp._parseMarkup(template, {}, item); 1043 1043 return template; … … 1077 1077 1078 1078 _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest); 1079 _mfpOn( 'BeforeChange.' + AJAX_NS, _destroyAjaxRequest);1079 _mfpOn( 'BeforeChange.' + AJAX_NS, _destroyAjaxRequest); 1080 1080 }, 1081 1081 getAjax: function(item) { … … 1084 1084 _body.addClass(_ajaxCur); 1085 1085 1086 mfp.updateStatus( 'loading');1086 mfp.updateStatus( 'loading' ); 1087 1087 1088 1088 var opts = $.extend({ … … 1094 1094 }; 1095 1095 1096 _mfpTrigger( 'ParseAjax', temp);1096 _mfpTrigger( 'ParseAjax', temp); 1097 1097 1098 1098 mfp.appendContent( $(temp.data), AJAX_NS ); … … 1108 1108 }, 16); 1109 1109 1110 mfp.updateStatus( 'ready');1111 1112 _mfpTrigger( 'AjaxContentAdded');1110 mfp.updateStatus( 'ready' ); 1111 1112 _mfpTrigger( 'AjaxContentAdded' ); 1113 1113 }, 1114 1114 error: function() { 1115 1115 _removeAjaxCursor(); 1116 1116 item.finished = item.loadError = true; 1117 mfp.updateStatus( 'error', mfp.st.ajax.tError.replace('%url%', item.src));1117 mfp.updateStatus( 'error', mfp.st.ajax.tError.replace( '%url%', item.src)); 1118 1118 } 1119 1119 }, mfp.st.ajax.settings); … … 1143 1143 1144 1144 if(src) { 1145 if( $.isFunction(src)) {1145 if( $.isFunction(src)) { 1146 1146 return src.call(mfp, item); 1147 1147 } else if(item.el) { … … 1152 1152 }; 1153 1153 1154 $.magnificPopup.registerModule( 'image', {1154 $.magnificPopup.registerModule( 'image', { 1155 1155 1156 1156 options: { … … 1178 1178 ns = '.image'; 1179 1179 1180 mfp.types.push( 'image');1180 mfp.types.push( 'image' ); 1181 1181 1182 1182 _mfpOn(OPEN_EVENT+ns, function() { … … 1190 1190 _body.removeClass(imgSt.cursor); 1191 1191 } 1192 _window.off( 'resize' + EVENT_NS);1193 }); 1194 1195 _mfpOn( 'Resize'+ns, mfp.resizeImage);1192 _window.off( 'resize' + EVENT_NS); 1193 }); 1194 1195 _mfpOn( 'Resize'+ns, mfp.resizeImage); 1196 1196 if(mfp.isLowIE) { 1197 _mfpOn( 'AfterChange', mfp.resizeImage);1197 _mfpOn( 'AfterChange', mfp.resizeImage); 1198 1198 } 1199 1199 }, … … 1206 1206 // fix box-sizing in ie7/8 1207 1207 if(mfp.isLowIE) { 1208 decr = parseInt(item.img.css( 'padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);1209 } 1210 item.img.css( 'max-height', mfp.wH-decr);1208 decr = parseInt(item.img.css( 'padding-top' ), 10) + parseInt(item.img.css( 'padding-bottom' ),10); 1209 } 1210 item.img.css( 'max-height', mfp.wH-decr); 1211 1211 } 1212 1212 }, … … 1222 1222 item.isCheckingImgSize = false; 1223 1223 1224 _mfpTrigger( 'ImageHasSize', item);1224 _mfpTrigger( 'ImageHasSize', item); 1225 1225 1226 1226 if(item.imgHidden) { 1227 1227 if(mfp.content) 1228 mfp.content.removeClass( 'mfp-loading');1228 mfp.content.removeClass( 'mfp-loading' ); 1229 1229 1230 1230 item.imgHidden = false; … … 1279 1279 if(item) { 1280 1280 if (item.img[0].complete) { 1281 item.img.off( '.mfploader');1281 item.img.off( '.mfploader' ); 1282 1282 1283 1283 if(item === mfp.currItem){ 1284 1284 mfp._onImageHasSize(item); 1285 1285 1286 mfp.updateStatus( 'ready');1286 mfp.updateStatus( 'ready' ); 1287 1287 } 1288 1288 … … 1290 1290 item.loaded = true; 1291 1291 1292 _mfpTrigger( 'ImageLoadComplete');1292 _mfpTrigger( 'ImageLoadComplete' ); 1293 1293 1294 1294 } … … 1308 1308 onLoadError = function() { 1309 1309 if(item) { 1310 item.img.off( '.mfploader');1310 item.img.off( '.mfploader' ); 1311 1311 if(item === mfp.currItem){ 1312 1312 mfp._onImageHasSize(item); 1313 mfp.updateStatus( 'error', imgSt.tError.replace('%url%', item.src) );1313 mfp.updateStatus( 'error', imgSt.tError.replace( '%url%', item.src) ); 1314 1314 } 1315 1315 … … 1322 1322 1323 1323 1324 var el = template.find( '.mfp-img');1324 var el = template.find( '.mfp-img' ); 1325 1325 if(el.length) { 1326 var img = document.createElement( 'img');1326 var img = document.createElement( 'img' ); 1327 1327 img.className = 'mfp-img'; 1328 item.img = $(img).on( 'load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);1328 item.img = $(img).on( 'load.mfploader', onLoadComplete).on( 'error.mfploader', onLoadError); 1329 1329 img.src = item.src; 1330 1330 1331 1331 // without clone() "error" event is not firing when IMG is replaced by new IMG 1332 1332 // TODO: find a way to avoid such cloning 1333 if(el.is( 'img')) {1333 if(el.is( 'img')) { 1334 1334 item.img = item.img.clone(); 1335 1335 } … … 1354 1354 1355 1355 if(item.loadError) { 1356 template.addClass( 'mfp-loading');1357 mfp.updateStatus( 'error', imgSt.tError.replace('%url%', item.src) );1356 template.addClass( 'mfp-loading' ); 1357 mfp.updateStatus( 'error', imgSt.tError.replace( '%url%', item.src) ); 1358 1358 } else { 1359 template.removeClass( 'mfp-loading');1360 mfp.updateStatus( 'ready');1359 template.removeClass( 'mfp-loading' ); 1360 mfp.updateStatus( 'ready' ); 1361 1361 } 1362 1362 return template; 1363 1363 } 1364 1364 1365 mfp.updateStatus( 'loading');1365 mfp.updateStatus( 'loading' ); 1366 1366 item.loading = true; 1367 1367 1368 1368 if(!item.hasSize) { 1369 1369 item.imgHidden = true; 1370 template.addClass( 'mfp-loading');1370 template.addClass( 'mfp-loading' ); 1371 1371 mfp.findImageSize(item); 1372 1372 } … … 1385 1385 getHasMozTransform = function() { 1386 1386 if(hasMozTransform === undefined) { 1387 hasMozTransform = document.createElement( 'p').style.MozTransform !== undefined;1387 hasMozTransform = document.createElement( 'p').style.MozTransform !== undefined; 1388 1388 } 1389 1389 return hasMozTransform; 1390 1390 }; 1391 1391 1392 $.magnificPopup.registerModule( 'zoom', {1392 $.magnificPopup.registerModule( 'zoom', { 1393 1393 1394 1394 options: { … … 1397 1397 duration: 300, 1398 1398 opener: function(element) { 1399 return element.is( 'img') ? element : element.find('img');1399 return element.is( 'img') ? element : element.find( 'img' ); 1400 1400 } 1401 1401 }, … … 1414 1414 var duration = zoomSt.duration, 1415 1415 getElToAnimate = function(image) { 1416 var newImg = image.clone().removeAttr( 'style').removeAttr('class').addClass('mfp-animated-image'),1416 var newImg = image.clone().removeAttr( 'style').removeAttr( 'class').addClass( 'mfp-animated-image' ), 1417 1417 transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing, 1418 1418 cssObj = { … … 1431 1431 }, 1432 1432 showMainContent = function() { 1433 mfp.content.css( 'visibility', 'visible');1433 mfp.content.css( 'visibility', 'visible' ); 1434 1434 }, 1435 1435 openTimeout, 1436 1436 animatedImg; 1437 1437 1438 _mfpOn( 'BuildControls'+ns, function() {1438 _mfpOn( 'BuildControls'+ns, function() { 1439 1439 if(mfp._allowZoom()) { 1440 1440 1441 1441 clearTimeout(openTimeout); 1442 mfp.content.css( 'visibility', 'hidden');1442 mfp.content.css( 'visibility', 'hidden' ); 1443 1443 1444 1444 // Basically, all code below does is clones existing image, puts in on top of the current one and animated it … … 1466 1466 animatedImg.remove(); 1467 1467 image = animatedImg = null; 1468 _mfpTrigger( 'ZoomAnimationEnded');1468 _mfpTrigger( 'ZoomAnimationEnded' ); 1469 1469 }, 16); // avoid blink when switching images 1470 1470 … … 1495 1495 animatedImg.css( mfp._getOffset(true) ); 1496 1496 mfp.wrap.append(animatedImg); 1497 mfp.content.css( 'visibility', 'hidden');1497 mfp.content.css( 'visibility', 'hidden' ); 1498 1498 1499 1499 setTimeout(function() { … … 1537 1537 1538 1538 var offset = el.offset(); 1539 var paddingTop = parseInt(el.css( 'padding-top'),10);1540 var paddingBottom = parseInt(el.css( 'padding-bottom'),10);1539 var paddingTop = parseInt(el.css( 'padding-top' ),10); 1540 var paddingBottom = parseInt(el.css( 'padding-bottom' ),10); 1541 1541 offset.top -= ( $(window).scrollTop() - paddingTop ); 1542 1542 … … 1555 1555 // I hate to do this, but there is no another option 1556 1556 if( getHasMozTransform() ) { 1557 obj['-moz-transform'] = obj['transform'] = 'translate( ' + offset.left + 'px,' + offset.top + 'px)';1557 obj['-moz-transform'] = obj['transform'] = 'translate( ' + offset.left + 'px,' + offset.top + 'px)'; 1558 1558 } else { 1559 1559 obj.left = offset.left; … … 1577 1577 _fixIframeBugs = function(isShowing) { 1578 1578 if(mfp.currTemplate[IFRAME_NS]) { 1579 var el = mfp.currTemplate[IFRAME_NS].find( 'iframe');1579 var el = mfp.currTemplate[IFRAME_NS].find( 'iframe' ); 1580 1580 if(el.length) { 1581 1581 // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug … … 1586 1586 // IE8 black screen bug fix 1587 1587 if(mfp.isIE8) { 1588 el.css( 'display', isShowing ? 'block' : 'none');1588 el.css( 'display', isShowing ? 'block' : 'none' ); 1589 1589 } 1590 1590 } … … 1625 1625 mfp.types.push(IFRAME_NS); 1626 1626 1627 _mfpOn( 'BeforeChange', function(e, prevType, newType) {1627 _mfpOn( 'BeforeChange', function(e, prevType, newType) { 1628 1628 if(prevType !== newType) { 1629 1629 if(prevType === IFRAME_NS) { … … 1655 1655 } 1656 1656 } 1657 embedSrc = this.src.replace( '%id%', embedSrc );1657 embedSrc = this.src.replace( '%id%', embedSrc ); 1658 1658 return false; // break; 1659 1659 } … … 1666 1666 mfp._parseMarkup(template, dataObj, item); 1667 1667 1668 mfp.updateStatus( 'ready');1668 mfp.updateStatus( 'ready' ); 1669 1669 1670 1670 return template; … … 1694 1694 }; 1695 1695 1696 $.magnificPopup.registerModule( 'gallery', {1696 $.magnificPopup.registerModule( 'gallery', { 1697 1697 1698 1698 options: { … … 1713 1713 var gSt = mfp.st.gallery, 1714 1714 ns = '.mfp-gallery', 1715 supportsFastClick = Boolean( $.fn.mfpFastClick);1715 supportsFastClick = Boolean( $.fn.mfpFastClick); 1716 1716 1717 1717 mfp.direction = true; // true - next, false - prev … … 1724 1724 1725 1725 if(gSt.navigateByImgClick) { 1726 mfp.wrap.on( 'click'+ns, '.mfp-img', function() {1726 mfp.wrap.on( 'click'+ns, '.mfp-img', function() { 1727 1727 if(mfp.items.length > 1) { 1728 1728 mfp.next(); … … 1732 1732 } 1733 1733 1734 _document.on( 'keydown'+ns, function(e) {1734 _document.on( 'keydown'+ns, function(e) { 1735 1735 if (e.keyCode === 37) { 1736 1736 mfp.prev(); … … 1741 1741 }); 1742 1742 1743 _mfpOn( 'UpdateStatus'+ns, function(e, data) {1743 _mfpOn( 'UpdateStatus'+ns, function(e, data) { 1744 1744 if(data.text) { 1745 1745 data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length); … … 1752 1752 }); 1753 1753 1754 _mfpOn( 'BuildControls' + ns, function() {1754 _mfpOn( 'BuildControls' + ns, function() { 1755 1755 if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) { 1756 1756 var markup = gSt.arrowMarkup, … … 1768 1768 // Polyfill for :before and :after (adds elements with classes mfp-a and mfp-b) 1769 1769 if(mfp.isIE7) { 1770 _getEl( 'b', arrowLeft[0], false, true);1771 _getEl( 'a', arrowLeft[0], false, true);1772 _getEl( 'b', arrowRight[0], false, true);1773 _getEl( 'a', arrowRight[0], false, true);1770 _getEl( 'b', arrowLeft[0], false, true); 1771 _getEl( 'a', arrowLeft[0], false, true); 1772 _getEl( 'b', arrowRight[0], false, true); 1773 _getEl( 'a', arrowRight[0], false, true); 1774 1774 } 1775 1775 … … 1790 1790 _mfpOn(CLOSE_EVENT+ns, function() { 1791 1791 _document.off(ns); 1792 mfp.wrap.off( 'click'+ns);1792 mfp.wrap.off( 'click'+ns); 1793 1793 1794 1794 if(mfp.arrowLeft && supportsFastClick) { … … 1839 1839 } 1840 1840 1841 _mfpTrigger( 'LazyLoad', item);1841 _mfpTrigger( 'LazyLoad', item); 1842 1842 1843 1843 if(item.type === 'image') { 1844 item.img = $( '<img class="mfp-img" />').on('load.mfploader', function() {1844 item.img = $( '<img class="mfp-img" />').on( 'load.mfploader', function() { 1845 1845 item.hasSize = true; 1846 }).on( 'error.mfploader', function() {1846 }).on( 'error.mfploader', function() { 1847 1847 item.hasSize = true; 1848 1848 item.loadError = true; 1849 _mfpTrigger( 'LazyLoadError', item);1850 }).attr( 'src', item.src);1849 _mfpTrigger( 'LazyLoadError', item); 1850 }).attr( 'src', item.src); 1851 1851 } 1852 1852 … … 1876 1876 1877 1877 if(window.navigator.msPointerEnabled) { 1878 addEventNames( 'MSPointer', 'Down', 'Move', 'Up', 'Cancel');1879 } else if( 'ontouchstart' in window) {1880 addEventNames( 'touch', 'start', 'move', 'end', 'cancel');1878 addEventNames( 'MSPointer', 'Down', 'Move', 'Up', 'Cancel' ); 1879 } else if( 'ontouchstart' in window) { 1880 addEventNames( 'touch', 'start', 'move', 'end', 'cancel' ); 1881 1881 } else { 1882 1882 return; … … 1932 1932 1933 1933 if(ratio > 1) { 1934 _mfpOn( 'ImageHasSize' + '.' + RETINA_NS, function(e, item) {1934 _mfpOn( 'ImageHasSize' + '.' + RETINA_NS, function(e, item) { 1935 1935 item.img.css({ 1936 1936 'max-width': item.img[0].naturalWidth / ratio, … … 1938 1938 }); 1939 1939 }); 1940 _mfpOn( 'ElementParse' + '.' + RETINA_NS, function(e, item) {1940 _mfpOn( 'ElementParse' + '.' + RETINA_NS, function(e, item) { 1941 1941 item.src = st.replaceSrc(item, ratio); 1942 1942 }); … … 1957 1957 * You may use it outside the Magnific Popup by calling just: 1958 1958 * 1959 * $( '.your-el').mfpFastClick(function() {1960 * console.log( 'Clicked!');1959 * $( '.your-el').mfpFastClick(function() { 1960 * console.log( 'Clicked!' ); 1961 1961 * }); 1962 1962 * 1963 1963 * To unbind: 1964 * $( '.your-el').destroyMfpFastClick();1964 * $( '.your-el').destroyMfpFastClick(); 1965 1965 * 1966 1966 * … … 1974 1974 supportsTouch = 'ontouchstart' in window, 1975 1975 unbindTouchMove = function() { 1976 _window.off( 'touchmove'+ns+' touchend'+ns);1976 _window.off( 'touchmove'+ns+' touchend'+ns); 1977 1977 }, 1978 1978 eName = 'mfpFastClick', … … 1997 1997 numPointers; 1998 1998 1999 elem.on( 'touchstart' + ns, function(e) {1999 elem.on( 'touchstart' + ns, function(e) { 2000 2000 pointerMoved = false; 2001 2001 numPointers = 1; … … 2005 2005 startY = point.clientY; 2006 2006 2007 _window.on( 'touchmove'+ns, function(e) {2007 _window.on( 'touchmove'+ns, function(e) { 2008 2008 point = e.originalEvent ? e.originalEvent.touches : e.touches; 2009 2009 numPointers = point.length; … … 2014 2014 unbindTouchMove(); 2015 2015 } 2016 }).on( 'touchend'+ns, function(e) {2016 }).on( 'touchend'+ns, function(e) { 2017 2017 unbindTouchMove(); 2018 2018 if(pointerMoved || numPointers > 1) { … … 2031 2031 } 2032 2032 2033 elem.on( 'click' + ns, function() {2033 elem.on( 'click' + ns, function() { 2034 2034 if(!lock) { 2035 2035 callback(); … … 2040 2040 2041 2041 $.fn.destroyMfpFastClick = function() { 2042 $(this).off( 'touchstart' + ns + ' click' + ns);2043 if(supportsTouch) _window.off( 'touchmove'+ns+' touchend'+ns);2042 $(this).off( 'touchstart' + ns + ' click' + ns); 2043 if(supportsTouch) _window.off( 'touchmove'+ns+' touchend'+ns); 2044 2044 }; 2045 2045 })(); -
kopa-page-builder/trunk/js/jquery.magnific-popup.min.js
r1209395 r1428045 1 !function(e){var t,n,i,o,r,a,s,l="Close",c="BeforeClose",d="AfterClose",u="BeforeAppend",p="MarkupParse",f="Open",m="Change",g="mfp",h="."+g,v="mfp-ready",C="mfp-removing",y="mfp-prevent-close",w=function() {},b=!!window.jQuery,I=e(window),x=function(e,n){t.ev.on(g+e+h,n)},k=function(t,n,i,o){var r=document.createElement("div");return r.className="mfp-"+t,i&&(r.innerHTML=i),o?n&&n.appendChild(r):(r=e(r),n&&r.appendTo(n)),r},T=function(n,i){t.ev.triggerHandler(g+n,i),t.st.callbacks&&(n=n.charAt(0).toLowerCase()+n.slice(1),t.st.callbacks[n]&&t.st.callbacks[n].apply(t,e.isArray(i)?i:[i]))},E=function(n){return n===s&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),s=n),t.currTemplate.closeBtn},_=function(){e.magnificPopup.instance||(t=new w,t.init(),e.magnificPopup.instance=t)},S=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1};w.prototype={constructor:w,init:function(){var n=navigator.appVersion;t.isIE7=-1!==n.indexOf("MSIE 7."),t.isIE8=-1!==n.indexOf("MSIE 8."),t.isLowIE=t.isIE7||t.isIE8,t.isAndroid=/android/gi.test(n),t.isIOS=/iphone|ipad|ipod/gi.test(n),t.supportsTransition=S(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),o=e(document),t.popupsCache={}},open:function(n){i||(i=e(document.body));var r;if(n.isObj===!1){t.items=n.items.toArray(),t.index=0;var s,l=n.items;for(r=0;r<l.length;r++)if(s=l[r],s.parsed&&(s=s.el[0]),s===n.el[0]){t.index=r;break}}else t.items=e.isArray(n.items)?n.items:[n.items],t.index=n.index||0;if(t.isOpen)return void t.updateItemHTML();t.types=[],a="",t.ev=n.mainEl&&n.mainEl.length?n.mainEl.eq(0):o,n.key?(t.popupsCache[n.key]||(t.popupsCache[n.key]={}),t.currTemplate=t.popupsCache[n.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,n),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=k("bg").on("click"+h,function(){t.close()}),t.wrap=k("wrap").attr("tabindex",-1).on("click"+h,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=k("container",t.wrap)),t.contentContainer=k("content"),t.st.preloader&&(t.preloader=k("preloader",t.container,t.st.tLoading));var c=e.magnificPopup.modules;for(r=0;r<c.length;r++){var d=c[r];d=d.charAt(0).toUpperCase()+d.slice(1),t["init"+d].call(t)}T("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(x(p,function(e,t,n,i){n.close_replaceWith=E(i.type)}),a+=" mfp-close-btn-in"):t.wrap.append(E())),t.st.alignTop&&(a+=" mfp-align-top"),t.wrap.css(t.fixedContentPos?{overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}:{top:I.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:o.height(),position:"absolute"}),t.st.enableEscapeKey&&o.on("keyup"+h,function(e){27===e.keyCode&&t.close()}),I.on("resize"+h,function(){t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var u=t.wH=I.height(),m={};if(t.fixedContentPos&&t._hasScrollBar(u)){var g=t._getScrollbarSize();g&&(m.marginRight=g)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):m.overflow="hidden");var C=t.st.mainClass;return t.isIE7&&(C+=" mfp-ie7"),C&&t._addClassToMFP(C),t.updateItemHTML(),T("BuildControls"),e("html").css(m),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||i),t._lastFocusedEl=document.activeElement,setTimeout(function(){t.content?(t._addClassToMFP(v),t._setFocus()):t.bgOverlay.addClass(v),o.on("focusin"+h,t._onFocusIn)},16),t.isOpen=!0,t.updateSize(u),T(f),n},close:function(){t.isOpen&&(T(c),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(C),setTimeout(function(){t._close()},t.st.removalDelay)):t._close())},_close:function(){T(l);var n=C+" "+v+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(n+=t.st.mainClass+" "),t._removeClassFromMFP(n),t.fixedContentPos){var i={marginRight:""};t.isIE7?e("body, html").css("overflow",""):i.overflow="",e("html").css(i)}o.off("keyup"+h+" focusin"+h),t.ev.off(h),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,T(d)},updateSize:function(e){if(t.isIOS){var n=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*n;t.wrap.css("height",i),t.wH=i}else t.wH=e||I.height();t.fixedContentPos||t.wrap.css("height",t.wH),T("Resize")},updateItemHTML:function(){var n=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),n.parsed||(n=t.parseEl(t.index));var i=n.type;if(T("BeforeChange",[t.currItem?t.currItem.type:"",i]),t.currItem=n,!t.currTemplate[i]){var o=t.st[i]?t.st[i].markup:!1;T("FirstMarkupParse",o),t.currTemplate[i]=o?e(o):!0}r&&r!==n.type&&t.container.removeClass("mfp-"+r+"-holder");var a=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](n,t.currTemplate[i]);t.appendContent(a,i),n.preloaded=!0,T(m,n),r=n.type,t.container.prepend(t.contentContainer),T("AfterChange")},appendContent:function(e,n){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&t.currTemplate[n]===!0?t.content.find(".mfp-close").length||t.content.append(E()):t.content=e:t.content="",T(u),t.container.addClass("mfp-"+n+"-holder"),t.contentContainer.append(t.content)},parseEl:function(n){var i,o=t.items[n];if(o.tagName?o={el:e(o)}:(i=o.type,o={data:o,src:o.src}),o.el){for(var r=t.types,a=0;a<r.length;a++)if(o.el.hasClass("mfp-"+r[a])){i=r[a];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return o.type=i||t.st.type||"inline",o.index=n,o.parsed=!0,t.items[n]=o,T("ElementParse",o),t.items[n]},addGroup:function(e,n){var i=function(i){i.mfpEl=this,t._openClick(i,e,n)};n||(n={});var o="click.magnificPopup";n.mainEl=e,n.items?(n.isObj=!0,e.off(o).on(o,i)):(n.isObj=!1,n.delegate?e.off(o).on(o,n.delegate,i):(n.items=e,e.off(o).on(o,i)))},_openClick:function(n,i,o){var r=void 0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick;if(r||2!==n.which&&!n.ctrlKey&&!n.metaKey){var a=void 0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(I.width()<a)return!0;n.type&&(n.preventDefault(),t.isOpen&&n.stopPropagation()),o.el=e(n.mfpEl),o.delegate&&(o.items=i.find(o.delegate)),t.open(o)}},updateStatus:function(e,i){if(t.preloader){n!==e&&t.container.removeClass("mfp-s-"+n),i||"loading"!==e||(i=t.st.tLoading);var o={status:e,text:i};T("UpdateStatus",o),e=o.status,i=o.text,t.preloader.html(i),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),n=e}},_checkIfClose:function(n){if(!e(n).hasClass(y)){var i=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(i&&o)return!0;if(!t.content||e(n).hasClass("mfp-close")||t.preloader&&n===t.preloader[0])return!0;if(n===t.content[0]||e.contains(t.content[0],n)){if(i)return!0}else if(o&&e.contains(document,n))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?o.height():document.body.scrollHeight)>(e||I.height())},_setFocus:function(){(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(n){return n.target===t.wrap[0]||e.contains(t.wrap[0],n.target)?void 0:(t._setFocus(),!1)},_parseMarkup:function(t,n,i){var o;i.data&&(n=e.extend(i.data,n)),T(p,[t,n,i]),e.each(n,function(e,n){if(void 0===n||n===!1)return!0;if(o=e.split("_"),o.length>1){var i=t.find(h+"-"+o[0]);if(i.length>0){var r=o[1];"replaceWith"===r?i[0]!==n[0]&&i.replaceWith(n):"img"===r?i.is("img")?i.attr("src",n):i.replaceWith('<img src="'+n+'" class="'+i.attr("class")+'" />'):i.attr(o[1],n)}}else t.find(h+"-"+e).html(n)})},_getScrollbarSize:function(){if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:w.prototype,modules:[],open:function(t,n){return _(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=n||0,this.instance.open(t)},close:function(){return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,n){n.options&&(e.magnificPopup.defaults[t]=n.options),e.extend(this.proto,n.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">×</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(n){_();var i=e(this);if("string"==typeof n)if("open"===n){var o,r=b?i.data("magnificPopup"):i[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=i,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},i,r)}else t.isOpen&&t[n].apply(t,Array.prototype.slice.call(arguments,1));else n=e.extend(!0,{},n),b?i.data("magnificPopup",n):i[0].magnificPopup=n,t.addGroup(i,n);return i};var P,O,z,M="inline",B=function(){z&&(O.after(z.addClass(P)).detach(),z=null)};e.magnificPopup.registerModule(M,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){t.types.push(M),x(l+"."+M,function(){B()})},getInline:function(n,i){if(B(),n.src){var o=t.st.inline,r=e(n.src);if(r.length){var a=r[0].parentNode;a&&a.tagName&&(O||(P=o.hiddenClass,O=k(P),P="mfp-"+P),z=r.after(O).detach().removeClass(P)),t.updateStatus("ready")}else t.updateStatus("error",o.tNotFound),r=e("<div>");return n.inlineElement=r,r}return t.updateStatus("ready"),t._parseMarkup(i,{},n),i}}});var F,H="ajax",L=function(){F&&i.removeClass(F)},A=function(){L(),t.req&&t.req.abort()};e.magnificPopup.registerModule(H,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){t.types.push(H),F=t.st.ajax.cursor,x(l+"."+H,A),x("BeforeChange."+H,A)},getAjax:function(n){F&&i.addClass(F),t.updateStatus("loading");var o=e.extend({url:n.src,success:function(i,o,r){var a={data:i,xhr:r};T("ParseAjax",a),t.appendContent(e(a.data),H),n.finished=!0,L(),t._setFocus(),setTimeout(function(){t.wrap.addClass(v)},16),t.updateStatus("ready"),T("AjaxContentAdded")},error:function(){L(),n.finished=n.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",n.src))}},t.st.ajax.settings);return t.req=e.ajax(o),""}}});var j,N=function(n){if(n.data&&void 0!==n.data.title)return n.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return i.call(t,n);if(n.el)return n.el.attr(i)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var e=t.st.image,n=".image";t.types.push("image"),x(f+n,function(){"image"===t.currItem.type&&e.cursor&&i.addClass(e.cursor)}),x(l+n,function(){e.cursor&&i.removeClass(e.cursor),I.off("resize"+h)}),x("Resize"+n,t.resizeImage),t.isLowIE&&x("AfterChange",t.resizeImage)},resizeImage:function(){var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var n=0;t.isLowIE&&(n=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-n)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,j&&clearInterval(j),e.isCheckingImgSize=!1,T("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var n=0,i=e.img[0],o=function(r){j&&clearInterval(j),j=setInterval(function(){return i.naturalWidth>0?void t._onImageHasSize(e):(n>200&&clearInterval(j),n++,void(3===n?o(10):40===n?o(50):100===n&&o(500)))},r)};o(1)},getImage:function(n,i){var o=0,r=function(){n&&(n.img[0].complete?(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("ready")),n.hasSize=!0,n.loaded=!0,T("ImageLoadComplete")):(o++,200>o?setTimeout(r,100):a()))},a=function(){n&&(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("error",s.tError.replace("%url%",n.src))),n.hasSize=!0,n.loaded=!0,n.loadError=!0)},s=t.st.image,l=i.find(".mfp-img");if(l.length){var c=document.createElement("img");c.className="mfp-img",n.img=e(c).on("load.mfploader",r).on("error.mfploader",a),c.src=n.src,l.is("img")&&(n.img=n.img.clone()),c=n.img[0],c.naturalWidth>0?n.hasSize=!0:c.width||(n.hasSize=!1)}return t._parseMarkup(i,{title:N(n),img_replaceWith:n.img},n),t.resizeImage(),n.hasSize?(j&&clearInterval(j),n.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",n.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),n.loading=!0,n.hasSize||(n.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(n)),i)}}});var W,R=function(){return void 0===W&&(W=void 0!==document.createElement("p").style.MozTransform),W};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function(){var e,n=t.st.zoom,i=".zoom";if(n.enabled&&t.supportsTransition){var o,r,a=n.duration,s=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all "+n.duration/1e3+"s "+n.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return o["-webkit-"+r]=o["-moz-"+r]=o["-o-"+r]=o[r]=i,t.css(o),t},d=function(){t.content.css("visibility","visible")};x("BuildControls"+i,function(){if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),e=t._getItemToZoom(),!e)return void d();r=s(e),r.css(t._getOffset()),t.wrap.append(r),o=setTimeout(function(){r.css(t._getOffset(!0)),o=setTimeout(function(){d(),setTimeout(function(){r.remove(),e=r=null,T("ZoomAnimationEnded")},16)},a)},16)}}),x(c+i,function(){if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=a,!e){if(e=t._getItemToZoom(),!e)return;r=s(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout(function(){r.css(t._getOffset())},16)}}),x(l+i,function(){t._allowZoom()&&(d(),r&&r.remove(),e=null)})}},_allowZoom:function(){return"image"===t.currItem.type},_getItemToZoom:function(){return t.currItem.hasSize?t.currItem.img:!1},_getOffset:function(n){var i;i=n?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var o=i.offset(),r=parseInt(i.css("padding-top"),10),a=parseInt(i.css("padding-bottom"),10);o.top-=e(window).scrollTop()-r;var s={width:i.width(),height:(b?i.innerHeight():i[0].offsetHeight)-a-r};return R()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var Z="iframe",q="//about:blank",D=function(e){if(t.currTemplate[Z]){var n=t.currTemplate[Z].find("iframe");n.length&&(e||(n[0].src=q),t.isIE8&&n.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(Z,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){t.types.push(Z),x("BeforeChange",function(e,t,n){t!==n&&(t===Z?D():n===Z&&D(!0))}),x(l+"."+Z,function(){D()})},getIframe:function(n,i){var o=n.src,r=t.st.iframe;e.each(r.patterns,function(){return o.indexOf(this.index)>-1?(this.id&&(o="string"==typeof this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1):void 0});var a={};return r.srcAction&&(a[r.srcAction]=o),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var K=function(e){var n=t.items.length;return e>n-1?e-n:0>e?n+e:e},Y=function(e,t,n){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var n=t.st.gallery,i=".mfp-gallery",r=Boolean(e.fn.mfpFastClick);return t.direction=!0,n&&n.enabled?(a+=" mfp-gallery",x(f+i,function(){n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function(){return t.items.length>1?(t.next(),!1):void 0}),o.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),x("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),x(p+i,function(e,i,o,r){var a=t.items.length;o.counter=a>1?Y(n.tCounter,r.index,a):""}),x("BuildControls"+i,function(){if(t.items.length>1&&n.arrows&&!t.arrowLeft){var i=n.arrowMarkup,o=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(y),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(y),s=r?"mfpFastClick":"click";o[s](function(){t.prev()}),a[s](function(){t.next()}),t.isIE7&&(k("b",o[0],!1,!0),k("a",o[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(o.add(a))}}),x(m+i,function(){t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function(){t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void x(l+i,function(){o.off(i),t.wrap.off("click"+i),t.arrowLeft&&r&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null})):!1},next:function(){t.direction=!0,t.index=K(t.index+1),t.updateItemHTML()},prev:function(){t.direction=!1,t.index=K(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function(){var e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),o=Math.min(n[1],t.items.length);for(e=1;e<=(t.direction?o:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:o);e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=K(n),!t.items[n].preloaded){var i=t.items[n];i.parsed||(i=t.parseEl(n)),T("LazyLoad",i),"image"===i.type&&(i.img=e('<img class="mfp-img" />').on("load.mfploader",function(){i.hasSize=!0}).on("error.mfploader",function(){i.hasSize=!0,i.loadError=!0,T("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(x("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),x("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function(){var t=1e3,n="ontouchstart"in window,i=function(){I.off("touchmove"+r+" touchend"+r)},o="mfpFastClick",r="."+o;e.fn.mfpFastClick=function(o){return e(this).each(function(){var a,s=e(this);if(n){var l,c,d,u,p,f;s.on("touchstart"+r,function(e){u=!1,f=1,p=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],c=p.clientX,d=p.clientY,I.on("touchmove"+r,function(e){p=e.originalEvent?e.originalEvent.touches:e.touches,f=p.length,p=p[0],(Math.abs(p.clientX-c)>10||Math.abs(p.clientY-d)>10)&&(u=!0,i())}).on("touchend"+r,function(e){i(),u||f>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function(){a=!1},t),o())})})}s.on("click"+r,function(){a||o()})})},e.fn.destroyMfpFastClick=function(){e(this).off("touchstart"+r+" click"+r),n&&I.off("touchmove"+r+" touchend"+r)}}(),_()}(window.jQuery||window.Zepto);1 !function(e){var t,n,i,o,r,a,s,l="Close",c="BeforeClose",d="AfterClose",u="BeforeAppend",p="MarkupParse",f="Open",m="Change",g="mfp",h="."+g,v="mfp-ready",C="mfp-removing",y="mfp-prevent-close",w=function() {},b=!!window.jQuery,I=e(window),x=function(e,n){t.ev.on(g+e+h,n)},k=function(t,n,i,o){var r=document.createElement("div");return r.className="mfp-"+t,i&&(r.innerHTML=i),o?n&&n.appendChild(r):(r=e(r),n&&r.appendTo(n)),r},T=function(n,i){t.ev.triggerHandler(g+n,i),t.st.callbacks&&(n=n.charAt(0).toLowerCase()+n.slice(1),t.st.callbacks[n]&&t.st.callbacks[n].apply(t,e.isArray(i)?i:[i]))},E=function(n){return n===s&&t.currTemplate.closeBtn||(t.currTemplate.closeBtn=e(t.st.closeMarkup.replace("%title%",t.st.tClose)),s=n),t.currTemplate.closeBtn},_=function() {e.magnificPopup.instance||(t=new w,t.init(),e.magnificPopup.instance=t)},S=function() {var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1};w.prototype={constructor:w,init:function() {var n=navigator.appVersion;t.isIE7=-1!==n.indexOf("MSIE 7."),t.isIE8=-1!==n.indexOf("MSIE 8."),t.isLowIE=t.isIE7||t.isIE8,t.isAndroid=/android/gi.test(n),t.isIOS=/iphone|ipad|ipod/gi.test(n),t.supportsTransition=S(),t.probablyMobile=t.isAndroid||t.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),o=e(document),t.popupsCache={}},open:function(n){i||(i=e(document.body));var r;if(n.isObj===!1){t.items=n.items.toArray(),t.index=0;var s,l=n.items;for(r=0;r<l.length;r++)if(s=l[r],s.parsed&&(s=s.el[0]),s===n.el[0]){t.index=r;break}}else t.items=e.isArray(n.items)?n.items:[n.items],t.index=n.index||0;if(t.isOpen)return void t.updateItemHTML();t.types=[],a="",t.ev=n.mainEl&&n.mainEl.length?n.mainEl.eq(0):o,n.key?(t.popupsCache[n.key]||(t.popupsCache[n.key]={}),t.currTemplate=t.popupsCache[n.key]):t.currTemplate={},t.st=e.extend(!0,{},e.magnificPopup.defaults,n),t.fixedContentPos="auto"===t.st.fixedContentPos?!t.probablyMobile:t.st.fixedContentPos,t.st.modal&&(t.st.closeOnContentClick=!1,t.st.closeOnBgClick=!1,t.st.showCloseBtn=!1,t.st.enableEscapeKey=!1),t.bgOverlay||(t.bgOverlay=k("bg").on("click"+h,function() {t.close()}),t.wrap=k("wrap").attr("tabindex",-1).on("click"+h,function(e){t._checkIfClose(e.target)&&t.close()}),t.container=k("container",t.wrap)),t.contentContainer=k("content"),t.st.preloader&&(t.preloader=k("preloader",t.container,t.st.tLoading));var c=e.magnificPopup.modules;for(r=0;r<c.length;r++){var d=c[r];d=d.charAt(0).toUpperCase()+d.slice(1),t["init"+d].call(t)}T("BeforeOpen"),t.st.showCloseBtn&&(t.st.closeBtnInside?(x(p,function(e,t,n,i){n.close_replaceWith=E(i.type)}),a+=" mfp-close-btn-in"):t.wrap.append(E())),t.st.alignTop&&(a+=" mfp-align-top"),t.wrap.css(t.fixedContentPos?{overflow:t.st.overflowY,overflowX:"hidden",overflowY:t.st.overflowY}:{top:I.scrollTop(),position:"absolute"}),(t.st.fixedBgPos===!1||"auto"===t.st.fixedBgPos&&!t.fixedContentPos)&&t.bgOverlay.css({height:o.height(),position:"absolute"}),t.st.enableEscapeKey&&o.on("keyup"+h,function(e){27===e.keyCode&&t.close()}),I.on("resize"+h,function() {t.updateSize()}),t.st.closeOnContentClick||(a+=" mfp-auto-cursor"),a&&t.wrap.addClass(a);var u=t.wH=I.height(),m={};if(t.fixedContentPos&&t._hasScrollBar(u)){var g=t._getScrollbarSize();g&&(m.marginRight=g)}t.fixedContentPos&&(t.isIE7?e("body, html").css("overflow","hidden"):m.overflow="hidden");var C=t.st.mainClass;return t.isIE7&&(C+=" mfp-ie7"),C&&t._addClassToMFP(C),t.updateItemHTML(),T("BuildControls"),e("html").css(m),t.bgOverlay.add(t.wrap).prependTo(t.st.prependTo||i),t._lastFocusedEl=document.activeElement,setTimeout(function() {t.content?(t._addClassToMFP(v),t._setFocus()):t.bgOverlay.addClass(v),o.on("focusin"+h,t._onFocusIn)},16),t.isOpen=!0,t.updateSize(u),T(f),n},close:function() {t.isOpen&&(T(c),t.isOpen=!1,t.st.removalDelay&&!t.isLowIE&&t.supportsTransition?(t._addClassToMFP(C),setTimeout(function() {t._close()},t.st.removalDelay)):t._close())},_close:function() {T(l);var n=C+" "+v+" ";if(t.bgOverlay.detach(),t.wrap.detach(),t.container.empty(),t.st.mainClass&&(n+=t.st.mainClass+" "),t._removeClassFromMFP(n),t.fixedContentPos){var i={marginRight:""};t.isIE7?e("body, html").css("overflow",""):i.overflow="",e("html").css(i)}o.off("keyup"+h+" focusin"+h),t.ev.off(h),t.wrap.attr("class","mfp-wrap").removeAttr("style"),t.bgOverlay.attr("class","mfp-bg"),t.container.attr("class","mfp-container"),!t.st.showCloseBtn||t.st.closeBtnInside&&t.currTemplate[t.currItem.type]!==!0||t.currTemplate.closeBtn&&t.currTemplate.closeBtn.detach(),t._lastFocusedEl&&e(t._lastFocusedEl).focus(),t.currItem=null,t.content=null,t.currTemplate=null,t.prevHeight=0,T(d)},updateSize:function(e){if(t.isIOS){var n=document.documentElement.clientWidth/window.innerWidth,i=window.innerHeight*n;t.wrap.css("height",i),t.wH=i}else t.wH=e||I.height();t.fixedContentPos||t.wrap.css("height",t.wH),T("Resize")},updateItemHTML:function() {var n=t.items[t.index];t.contentContainer.detach(),t.content&&t.content.detach(),n.parsed||(n=t.parseEl(t.index));var i=n.type;if(T("BeforeChange",[t.currItem?t.currItem.type:"",i]),t.currItem=n,!t.currTemplate[i]){var o=t.st[i]?t.st[i].markup:!1;T("FirstMarkupParse",o),t.currTemplate[i]=o?e(o):!0}r&&r!==n.type&&t.container.removeClass("mfp-"+r+"-holder");var a=t["get"+i.charAt(0).toUpperCase()+i.slice(1)](n,t.currTemplate[i]);t.appendContent(a,i),n.preloaded=!0,T(m,n),r=n.type,t.container.prepend(t.contentContainer),T("AfterChange")},appendContent:function(e,n){t.content=e,e?t.st.showCloseBtn&&t.st.closeBtnInside&&t.currTemplate[n]===!0?t.content.find(".mfp-close").length||t.content.append(E()):t.content=e:t.content="",T(u),t.container.addClass("mfp-"+n+"-holder"),t.contentContainer.append(t.content)},parseEl:function(n){var i,o=t.items[n];if(o.tagName?o={el:e(o)}:(i=o.type,o={data:o,src:o.src}),o.el){for(var r=t.types,a=0;a<r.length;a++)if(o.el.hasClass("mfp-"+r[a])){i=r[a];break}o.src=o.el.attr("data-mfp-src"),o.src||(o.src=o.el.attr("href"))}return o.type=i||t.st.type||"inline",o.index=n,o.parsed=!0,t.items[n]=o,T("ElementParse",o),t.items[n]},addGroup:function(e,n){var i=function(i){i.mfpEl=this,t._openClick(i,e,n)};n||(n={});var o="click.magnificPopup";n.mainEl=e,n.items?(n.isObj=!0,e.off(o).on(o,i)):(n.isObj=!1,n.delegate?e.off(o).on(o,n.delegate,i):(n.items=e,e.off(o).on(o,i)))},_openClick:function(n,i,o){var r=void 0!==o.midClick?o.midClick:e.magnificPopup.defaults.midClick;if(r||2!==n.which&&!n.ctrlKey&&!n.metaKey){var a=void 0!==o.disableOn?o.disableOn:e.magnificPopup.defaults.disableOn;if(a)if(e.isFunction(a)){if(!a.call(t))return!0}else if(I.width()<a)return!0;n.type&&(n.preventDefault(),t.isOpen&&n.stopPropagation()),o.el=e(n.mfpEl),o.delegate&&(o.items=i.find(o.delegate)),t.open(o)}},updateStatus:function(e,i){if(t.preloader){n!==e&&t.container.removeClass("mfp-s-"+n),i||"loading"!==e||(i=t.st.tLoading);var o={status:e,text:i};T("UpdateStatus",o),e=o.status,i=o.text,t.preloader.html(i),t.preloader.find("a").on("click",function(e){e.stopImmediatePropagation()}),t.container.addClass("mfp-s-"+e),n=e}},_checkIfClose:function(n){if(!e(n).hasClass(y)){var i=t.st.closeOnContentClick,o=t.st.closeOnBgClick;if(i&&o)return!0;if(!t.content||e(n).hasClass("mfp-close")||t.preloader&&n===t.preloader[0])return!0;if(n===t.content[0]||e.contains(t.content[0],n)){if(i)return!0}else if(o&&e.contains(document,n))return!0;return!1}},_addClassToMFP:function(e){t.bgOverlay.addClass(e),t.wrap.addClass(e)},_removeClassFromMFP:function(e){this.bgOverlay.removeClass(e),t.wrap.removeClass(e)},_hasScrollBar:function(e){return(t.isIE7?o.height():document.body.scrollHeight)>(e||I.height())},_setFocus:function() {(t.st.focus?t.content.find(t.st.focus).eq(0):t.wrap).focus()},_onFocusIn:function(n){return n.target===t.wrap[0]||e.contains(t.wrap[0],n.target)?void 0:(t._setFocus(),!1)},_parseMarkup:function(t,n,i){var o;i.data&&(n=e.extend(i.data,n)),T(p,[t,n,i]),e.each(n,function(e,n){if(void 0===n||n===!1)return!0;if(o=e.split("_"),o.length>1){var i=t.find(h+"-"+o[0]);if(i.length>0){var r=o[1];"replaceWith"===r?i[0]!==n[0]&&i.replaceWith(n):"img"===r?i.is("img")?i.attr("src",n):i.replaceWith( '<img src="'+n+'" class="'+i.attr("class")+'" />'):i.attr(o[1],n)}}else t.find(h+"-"+e).html(n)})},_getScrollbarSize:function() {if(void 0===t.scrollbarSize){var e=document.createElement("div");e.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),t.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return t.scrollbarSize}},e.magnificPopup={instance:null,proto:w.prototype,modules:[],open:function(t,n){return _(),t=t?e.extend(!0,{},t):{},t.isObj=!0,t.index=n||0,this.instance.open(t)},close:function() {return e.magnificPopup.instance&&e.magnificPopup.instance.close()},registerModule:function(t,n){n.options&&(e.magnificPopup.defaults[t]=n.options),e.extend(this.proto,n.proto),this.modules.push(t)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">×</button>',tClose:"Close (Esc)",tLoading:"Loading..."}},e.fn.magnificPopup=function(n){_();var i=e(this);if("string"==typeof n)if("open"===n){var o,r=b?i.data("magnificPopup"):i[0].magnificPopup,a=parseInt(arguments[1],10)||0;r.items?o=r.items[a]:(o=i,r.delegate&&(o=o.find(r.delegate)),o=o.eq(a)),t._openClick({mfpEl:o},i,r)}else t.isOpen&&t[n].apply(t,Array.prototype.slice.call(arguments,1));else n=e.extend(!0,{},n),b?i.data("magnificPopup",n):i[0].magnificPopup=n,t.addGroup(i,n);return i};var P,O,z,M="inline",B=function() {z&&(O.after(z.addClass(P)).detach(),z=null)};e.magnificPopup.registerModule(M,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function() {t.types.push(M),x(l+"."+M,function() {B()})},getInline:function(n,i){if(B(),n.src){var o=t.st.inline,r=e(n.src);if(r.length){var a=r[0].parentNode;a&&a.tagName&&(O||(P=o.hiddenClass,O=k(P),P="mfp-"+P),z=r.after(O).detach().removeClass(P)),t.updateStatus("ready")}else t.updateStatus("error",o.tNotFound),r=e("<div>");return n.inlineElement=r,r}return t.updateStatus("ready"),t._parseMarkup(i,{},n),i}}});var F,H="ajax",L=function() {F&&i.removeClass(F)},A=function() {L(),t.req&&t.req.abort()};e.magnificPopup.registerModule(H,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function() {t.types.push(H),F=t.st.ajax.cursor,x(l+"."+H,A),x("BeforeChange."+H,A)},getAjax:function(n){F&&i.addClass(F),t.updateStatus("loading");var o=e.extend({url:n.src,success:function(i,o,r){var a={data:i,xhr:r};T("ParseAjax",a),t.appendContent(e(a.data),H),n.finished=!0,L(),t._setFocus(),setTimeout(function() {t.wrap.addClass(v)},16),t.updateStatus("ready"),T("AjaxContentAdded")},error:function() {L(),n.finished=n.loadError=!0,t.updateStatus("error",t.st.ajax.tError.replace("%url%",n.src))}},t.st.ajax.settings);return t.req=e.ajax(o),""}}});var j,N=function(n){if(n.data&&void 0!==n.data.title)return n.data.title;var i=t.st.image.titleSrc;if(i){if(e.isFunction(i))return i.call(t,n);if(n.el)return n.el.attr(i)||""}return""};e.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function() {var e=t.st.image,n=".image";t.types.push("image"),x(f+n,function() {"image"===t.currItem.type&&e.cursor&&i.addClass(e.cursor)}),x(l+n,function() {e.cursor&&i.removeClass(e.cursor),I.off("resize"+h)}),x("Resize"+n,t.resizeImage),t.isLowIE&&x("AfterChange",t.resizeImage)},resizeImage:function() {var e=t.currItem;if(e&&e.img&&t.st.image.verticalFit){var n=0;t.isLowIE&&(n=parseInt(e.img.css("padding-top"),10)+parseInt(e.img.css("padding-bottom"),10)),e.img.css("max-height",t.wH-n)}},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,j&&clearInterval(j),e.isCheckingImgSize=!1,T("ImageHasSize",e),e.imgHidden&&(t.content&&t.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(e){var n=0,i=e.img[0],o=function(r){j&&clearInterval(j),j=setInterval(function() {return i.naturalWidth>0?void t._onImageHasSize(e):(n>200&&clearInterval(j),n++,void(3===n?o(10):40===n?o(50):100===n&&o(500)))},r)};o(1)},getImage:function(n,i){var o=0,r=function() {n&&(n.img[0].complete?(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("ready")),n.hasSize=!0,n.loaded=!0,T("ImageLoadComplete")):(o++,200>o?setTimeout(r,100):a()))},a=function() {n&&(n.img.off(".mfploader"),n===t.currItem&&(t._onImageHasSize(n),t.updateStatus("error",s.tError.replace("%url%",n.src))),n.hasSize=!0,n.loaded=!0,n.loadError=!0)},s=t.st.image,l=i.find(".mfp-img");if(l.length){var c=document.createElement("img");c.className="mfp-img",n.img=e(c).on("load.mfploader",r).on("error.mfploader",a),c.src=n.src,l.is("img")&&(n.img=n.img.clone()),c=n.img[0],c.naturalWidth>0?n.hasSize=!0:c.width||(n.hasSize=!1)}return t._parseMarkup(i,{title:N(n),img_replaceWith:n.img},n),t.resizeImage(),n.hasSize?(j&&clearInterval(j),n.loadError?(i.addClass("mfp-loading"),t.updateStatus("error",s.tError.replace("%url%",n.src))):(i.removeClass("mfp-loading"),t.updateStatus("ready")),i):(t.updateStatus("loading"),n.loading=!0,n.hasSize||(n.imgHidden=!0,i.addClass("mfp-loading"),t.findImageSize(n)),i)}}});var W,R=function() {return void 0===W&&(W=void 0!==document.createElement("p").style.MozTransform),W};e.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(e){return e.is("img")?e:e.find("img")}},proto:{initZoom:function() {var e,n=t.st.zoom,i=".zoom";if(n.enabled&&t.supportsTransition){var o,r,a=n.duration,s=function(e){var t=e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),i="all "+n.duration/1e3+"s "+n.easing,o={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},r="transition";return o["-webkit-"+r]=o["-moz-"+r]=o["-o-"+r]=o[r]=i,t.css(o),t},d=function() {t.content.css("visibility","visible")};x("BuildControls"+i,function() {if(t._allowZoom()){if(clearTimeout(o),t.content.css("visibility","hidden"),e=t._getItemToZoom(),!e)return void d();r=s(e),r.css(t._getOffset()),t.wrap.append(r),o=setTimeout(function() {r.css(t._getOffset(!0)),o=setTimeout(function() {d(),setTimeout(function() {r.remove(),e=r=null,T("ZoomAnimationEnded")},16)},a)},16)}}),x(c+i,function() {if(t._allowZoom()){if(clearTimeout(o),t.st.removalDelay=a,!e){if(e=t._getItemToZoom(),!e)return;r=s(e)}r.css(t._getOffset(!0)),t.wrap.append(r),t.content.css("visibility","hidden"),setTimeout(function() {r.css(t._getOffset())},16)}}),x(l+i,function() {t._allowZoom()&&(d(),r&&r.remove(),e=null)})}},_allowZoom:function() {return"image"===t.currItem.type},_getItemToZoom:function() {return t.currItem.hasSize?t.currItem.img:!1},_getOffset:function(n){var i;i=n?t.currItem.img:t.st.zoom.opener(t.currItem.el||t.currItem);var o=i.offset(),r=parseInt(i.css("padding-top"),10),a=parseInt(i.css("padding-bottom"),10);o.top-=e(window).scrollTop()-r;var s={width:i.width(),height:(b?i.innerHeight():i[0].offsetHeight)-a-r};return R()?s["-moz-transform"]=s.transform="translate("+o.left+"px,"+o.top+"px)":(s.left=o.left,s.top=o.top),s}}});var Z="iframe",q="//about:blank",D=function(e){if(t.currTemplate[Z]){var n=t.currTemplate[Z].find("iframe");n.length&&(e||(n[0].src=q),t.isIE8&&n.css("display",e?"block":"none"))}};e.magnificPopup.registerModule(Z,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function() {t.types.push(Z),x("BeforeChange",function(e,t,n){t!==n&&(t===Z?D():n===Z&&D(!0))}),x(l+"."+Z,function() {D()})},getIframe:function(n,i){var o=n.src,r=t.st.iframe;e.each(r.patterns,function() {return o.indexOf(this.index)>-1?(this.id&&(o="string"==typeof this.id?o.substr(o.lastIndexOf(this.id)+this.id.length,o.length):this.id.call(this,o)),o=this.src.replace("%id%",o),!1):void 0});var a={};return r.srcAction&&(a[r.srcAction]=o),t._parseMarkup(i,a,n),t.updateStatus("ready"),i}}});var K=function(e){var n=t.items.length;return e>n-1?e-n:0>e?n+e:e},Y=function(e,t,n){return e.replace(/%curr%/gi,t+1).replace(/%total%/gi,n)};e.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function() {var n=t.st.gallery,i=".mfp-gallery",r=Boolean(e.fn.mfpFastClick);return t.direction=!0,n&&n.enabled?(a+=" mfp-gallery",x(f+i,function() {n.navigateByImgClick&&t.wrap.on("click"+i,".mfp-img",function() {return t.items.length>1?(t.next(),!1):void 0}),o.on("keydown"+i,function(e){37===e.keyCode?t.prev():39===e.keyCode&&t.next()})}),x("UpdateStatus"+i,function(e,n){n.text&&(n.text=Y(n.text,t.currItem.index,t.items.length))}),x(p+i,function(e,i,o,r){var a=t.items.length;o.counter=a>1?Y(n.tCounter,r.index,a):""}),x("BuildControls"+i,function() {if(t.items.length>1&&n.arrows&&!t.arrowLeft){var i=n.arrowMarkup,o=t.arrowLeft=e(i.replace(/%title%/gi,n.tPrev).replace(/%dir%/gi,"left")).addClass(y),a=t.arrowRight=e(i.replace(/%title%/gi,n.tNext).replace(/%dir%/gi,"right")).addClass(y),s=r?"mfpFastClick":"click";o[s](function() {t.prev()}),a[s](function() {t.next()}),t.isIE7&&(k("b",o[0],!1,!0),k("a",o[0],!1,!0),k("b",a[0],!1,!0),k("a",a[0],!1,!0)),t.container.append(o.add(a))}}),x(m+i,function() {t._preloadTimeout&&clearTimeout(t._preloadTimeout),t._preloadTimeout=setTimeout(function() {t.preloadNearbyImages(),t._preloadTimeout=null},16)}),void x(l+i,function() {o.off(i),t.wrap.off("click"+i),t.arrowLeft&&r&&t.arrowLeft.add(t.arrowRight).destroyMfpFastClick(),t.arrowRight=t.arrowLeft=null})):!1},next:function() {t.direction=!0,t.index=K(t.index+1),t.updateItemHTML()},prev:function() {t.direction=!1,t.index=K(t.index-1),t.updateItemHTML()},goTo:function(e){t.direction=e>=t.index,t.index=e,t.updateItemHTML()},preloadNearbyImages:function() {var e,n=t.st.gallery.preload,i=Math.min(n[0],t.items.length),o=Math.min(n[1],t.items.length);for(e=1;e<=(t.direction?o:i);e++)t._preloadItem(t.index+e);for(e=1;e<=(t.direction?i:o);e++)t._preloadItem(t.index-e)},_preloadItem:function(n){if(n=K(n),!t.items[n].preloaded){var i=t.items[n];i.parsed||(i=t.parseEl(n)),T("LazyLoad",i),"image"===i.type&&(i.img=e( '<img class="mfp-img" />').on("load.mfploader",function() {i.hasSize=!0}).on("error.mfploader",function() {i.hasSize=!0,i.loadError=!0,T("LazyLoadError",i)}).attr("src",i.src)),i.preloaded=!0}}}});var U="retina";e.magnificPopup.registerModule(U,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function() {if(window.devicePixelRatio>1){var e=t.st.retina,n=e.ratio;n=isNaN(n)?n():n,n>1&&(x("ImageHasSize."+U,function(e,t){t.img.css({"max-width":t.img[0].naturalWidth/n,width:"100%"})}),x("ElementParse."+U,function(t,i){i.src=e.replaceSrc(i,n)}))}}}}),function() {var t=1e3,n="ontouchstart"in window,i=function() {I.off("touchmove"+r+" touchend"+r)},o="mfpFastClick",r="."+o;e.fn.mfpFastClick=function(o){return e(this).each(function() {var a,s=e(this);if(n){var l,c,d,u,p,f;s.on("touchstart"+r,function(e){u=!1,f=1,p=e.originalEvent?e.originalEvent.touches[0]:e.touches[0],c=p.clientX,d=p.clientY,I.on("touchmove"+r,function(e){p=e.originalEvent?e.originalEvent.touches:e.touches,f=p.length,p=p[0],(Math.abs(p.clientX-c)>10||Math.abs(p.clientY-d)>10)&&(u=!0,i())}).on("touchend"+r,function(e){i(),u||f>1||(a=!0,e.preventDefault(),clearTimeout(l),l=setTimeout(function() {a=!1},t),o())})})}s.on("click"+r,function() {a||o()})})},e.fn.destroyMfpFastClick=function() {e(this).off("touchstart"+r+" click"+r),n&&I.off("touchmove"+r+" touchend"+r)}}(),_()}(window.jQuery||window.Zepto); -
kopa-page-builder/trunk/js/script.coffee
r1323889 r1428045 20 20 Kopa_Page_Builder.sticky_header() 21 21 Kopa_Page_Builder.open_media_center() 22 jQuery( '.kpb-ui-color').wpColorPicker()22 jQuery( '.kpb-ui-color').wpColorPicker() 23 23 return 24 24 25 25 load_lightbox_html: () -> 26 #if jQuery( '#kpb-select-layout').val() != 'disable'26 #if jQuery( '#kpb-select-layout').val() != 'disable' 27 27 jQuery.ajax 28 28 beforeSend: (jqXHR) -> 29 29 return 30 30 success: (data, textStatus, jqXHR) -> 31 jQuery( 'body').append(data)32 jQuery( '#kpb-metabox-loading-text').remove()33 jQuery( '#kpb-wrapper').show()31 jQuery( 'body').append(data) 32 jQuery( '#kpb-metabox-loading-text').remove() 33 jQuery( '#kpb-wrapper').show() 34 34 Kopa_Page_Builder.init_effect() 35 35 return … … 40 40 data: 41 41 action: 'kpb_load_lightbox_html' 42 security: jQuery( '#kpb_load_lightbox_html_security').val()43 post_id:jQuery( '#post_ID').val()42 security: jQuery( '#kpb_load_lightbox_html_security').val() 43 post_id:jQuery( '#post_ID').val() 44 44 return 45 45 46 46 main_form_submit: () -> 47 if jQuery( 'form#post').length > 048 jQuery( 'form#post').on 'submit', () ->49 jQuery( '#kpb-button-save-layouts').click()47 if jQuery( 'form#post').length > 0 48 jQuery( 'form#post').on 'submit', () -> 49 jQuery( '#kpb-button-save-layouts').click() 50 50 return 51 51 52 52 sticky_header: (event) -> 53 53 if KPB.is_sticky_toolbar is '1' 54 jQuery( '#kpb-wrapper-header').waypoint 'sticky',54 jQuery( '#kpb-wrapper-header').waypoint 'sticky', 55 55 direction: 'down' 56 56 stuckClass: 'kpb-stuck' … … 61 61 open_customize_layout: (event, obj) -> 62 62 event.preventDefault() 63 lightbox = '#kpb-layout-customize-lightbox-' + jQuery('#kpb-select-layout option:selected').val() 63 lightbox = '#kpb-layout-customize-lightbox-' + jQuery( '#kpb-select-layout option:selected').val() 64 65 if jQuery(lightbox).length 66 jQuery.magnificPopup.open 67 callbacks: 68 open: () -> 69 jQuery(lightbox).show() 70 return 71 close: () -> 72 jQuery(lightbox).hide() 73 return 74 modal: true 75 preloader: true 76 alignTop: true 77 items: 78 src: lightbox 79 type: 'inline' 80 81 return 82 83 save_layout_customize: (event, obj, post_id) -> 84 event.preventDefault() 85 Kopa_Page_Builder.show_overlay_loading() 86 87 obj.ajaxSubmit 88 beforeSubmit: (arr, $form, options) -> 89 return 90 success: (responseText, statusText, xhr, $form) -> 91 Kopa_Page_Builder.hide_overlay_loading() 92 jQuery( '#kpb-button-save-layouts').click() 93 return 94 data: 95 post_id: post_id 96 return 97 98 close_layout_customize: (event) -> 99 event.preventDefault() 100 Kopa_Page_Builder.close_widget(event) 101 return 102 103 open_customize: (event, obj, layout, section) -> 104 event.preventDefault() 105 106 lightbox = '#kpb-customize-lightbox-' + layout + '-' + section; 64 107 65 108 jQuery.magnificPopup.open … … 77 120 src: lightbox 78 121 type: 'inline' 79 80 return 81 82 save_layout_customize: (event, obj, post_id) -> 122 return 123 124 save_customize: (event, obj, post_id) -> 83 125 event.preventDefault() 84 126 Kopa_Page_Builder.show_overlay_loading() … … 89 131 success: (responseText, statusText, xhr, $form) -> 90 132 Kopa_Page_Builder.hide_overlay_loading() 133 jQuery( '#kpb-button-save-layouts').click() 91 134 return 92 135 data: … … 94 137 return 95 138 96 close_ layout_customize: (event) ->139 close_customize: (event) -> 97 140 event.preventDefault() 98 141 Kopa_Page_Builder.close_widget(event) 99 142 return 100 143 101 open_customize: (event, obj, layout, section) -> 102 event.preventDefault() 103 104 lightbox = '#kpb-customize-lightbox-' + layout + '-' + section; 105 144 open_list_widgets: (event, obj) -> 145 event.preventDefault() 146 kpb_current_sidebar = obj.parents '.kpb-area' 147 lightbox = '#kpb-widgets-lightbox' 106 148 jQuery.magnificPopup.open 107 149 callbacks: … … 120 162 return 121 163 122 save_customize: (event, obj, post_id) ->123 event.preventDefault()124 Kopa_Page_Builder.show_overlay_loading()125 126 obj.ajaxSubmit127 beforeSubmit: (arr, $form, options) ->128 return129 success: (responseText, statusText, xhr, $form) ->130 Kopa_Page_Builder.hide_overlay_loading()131 return132 data:133 post_id: post_id134 return135 136 close_customize: (event) ->137 event.preventDefault()138 Kopa_Page_Builder.close_widget(event)139 return140 141 open_list_widgets: (event, obj) ->142 event.preventDefault()143 kpb_current_sidebar = obj.parents '.kpb-area'144 lightbox = '#kpb-widgets-lightbox'145 jQuery.magnificPopup.open146 callbacks:147 open: () ->148 jQuery(lightbox).show()149 return150 close: () ->151 jQuery(lightbox).hide()152 return153 modal: true154 preloader: true155 alignTop: true156 items:157 src: lightbox158 type: 'inline'159 return160 161 164 close_list_widgets: (event) -> 162 165 event.preventDefault() … … 174 177 open: () -> 175 178 jQuery(lightbox).show() 176 jQuery( '#kpb-widget-title').text widget_name177 jQuery( '#kpb-widget input[name=kpb-widget-class-name]').val class_name178 jQuery( '#kpb-widget input[name=kpb-widget-name]').val widget_name179 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'add'180 jQuery( '#kpb-widget input[name=kpb-widget-id]').val Kopa_Page_Builder.get_random_id 'widget-'179 jQuery( '#kpb-widget-title').text widget_name 180 jQuery( '#kpb-widget input[name=kpb-widget-class-name]').val class_name 181 jQuery( '#kpb-widget input[name=kpb-widget-name]').val widget_name 182 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'add' 183 jQuery( '#kpb-widget input[name=kpb-widget-id]').val Kopa_Page_Builder.get_random_id 'widget-' 181 184 182 185 jQuery.ajax 183 186 success: (data, textStatus, jqXHR) -> 184 jQuery( '#kpb-widget .kpb-form-inner').html data187 jQuery( '#kpb-widget .kpb-form-inner').html data 185 188 Kopa_Page_Builder.open_media_center() 186 jQuery( '.kpb-ui-color').wpColorPicker()189 jQuery( '.kpb-ui-color').wpColorPicker() 187 190 return 188 191 url: KPB.ajax … … 192 195 data: 193 196 action: 'kpb_get_widget_form' 194 security: jQuery( '#kpb_get_widget_form_security').val()197 security: jQuery( '#kpb_get_widget_form_security').val() 195 198 class_name: class_name 196 199 return … … 215 218 open: () -> 216 219 jQuery(lightbox).show() 217 jQuery( '#kpb-widget-title').text kpb_current_widget.find('label').text()218 jQuery( '#kpb-widget input[name=kpb-widget-class-name]').val kpb_current_widget.attr 'data-class'219 jQuery( '#kpb-widget input[name=kpb-widget-name]').val kpb_current_widget.attr 'data-name'220 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'edit'221 jQuery( '#kpb-widget input[name=kpb-widget-id]').val widget_id220 jQuery( '#kpb-widget-title').text kpb_current_widget.find( 'label').text() 221 jQuery( '#kpb-widget input[name=kpb-widget-class-name]').val kpb_current_widget.attr 'data-class' 222 jQuery( '#kpb-widget input[name=kpb-widget-name]').val kpb_current_widget.attr 'data-name' 223 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'edit' 224 jQuery( '#kpb-widget input[name=kpb-widget-id]').val widget_id 222 225 223 226 jQuery.ajax 224 227 success: (data, textStatus, jqXHR) -> 225 jQuery( '#kpb-widget .kpb-form-inner').html data228 jQuery( '#kpb-widget .kpb-form-inner').html data 226 229 Kopa_Page_Builder.open_media_center() 227 jQuery( '.kpb-ui-color').wpColorPicker()230 jQuery( '.kpb-ui-color').wpColorPicker() 228 231 return 229 232 url: KPB.ajax … … 233 236 data: 234 237 action: 'kpb_get_widget_form' 235 security: jQuery( '#kpb_get_widget_form_security').val()238 security: jQuery( '#kpb_get_widget_form_security').val() 236 239 widget_id: widget_id 237 240 class_name: kpb_current_widget.attr 'data-class' 238 post_id: jQuery( '#post_ID').val()241 post_id: jQuery( '#post_ID').val() 239 242 240 243 return … … 260 263 return 261 264 success: (data, textStatus, jqXHR) -> 262 obj.parents( '.kpb-widget').remove()263 jQuery( '#kpb-button-save-layouts').click()265 obj.parents( '.kpb-widget').remove() 266 jQuery( '#kpb-button-save-layouts').click() 264 267 return 265 268 url: KPB.ajax … … 269 272 data: 270 273 action: 'kpb_delete_widget' 271 security: jQuery('#kpb_delete_widget_security').val() 272 widget_id: widget_id 274 security: jQuery( '#kpb_delete_widget_security').val() 275 widget_id: widget_id 276 post_id: jQuery( '#post_ID').val() 273 277 return 274 278 … … 282 286 success: (responseText, statusText, xhr, $form) -> 283 287 if responseText 284 if 'add' == jQuery( '#kpb-widget input[name=kpb-widget-action]').val()285 kpb_current_sidebar.find( '.kpb-area-placeholder').append responseText286 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'edit'288 if 'add' == jQuery( '#kpb-widget input[name=kpb-widget-action]').val() 289 kpb_current_sidebar.find( '.kpb-area-placeholder').append responseText 290 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'edit' 287 291 else 288 292 if kpb_current_widget 289 kpb_current_widget.find( 'label').text responseText293 kpb_current_widget.find( 'label').text responseText 290 294 291 jQuery( '#kpb-button-save-layouts').click()295 jQuery( '#kpb-button-save-layouts').click() 292 296 293 297 return … … 297 301 event.preventDefault() 298 302 jQuery.magnificPopup.close() 299 jQuery( '#kpb-widget .kpb-form-inner').html '<center class="kpb-loading">' + KPB.i18n.loading + '</center>'303 jQuery( '#kpb-widget .kpb-form-inner').html '<center class="kpb-loading">' + KPB.i18n.loading + '</center>' 300 304 Kopa_Page_Builder.hide_overlay_loading() 301 305 302 jQuery( '#kpb-widget-title').text ''303 jQuery( '#kpb-widget input[name=kpb-widget-class-name]').val ''304 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'add'305 jQuery( '#kpb-widget input[name=kpb-widget-id]').val ''306 jQuery( '#kpb-widget input[name=kpb-widget-name]').val ''306 jQuery( '#kpb-widget-title').text '' 307 jQuery( '#kpb-widget input[name=kpb-widget-class-name]').val '' 308 jQuery( '#kpb-widget input[name=kpb-widget-action]').val 'add' 309 jQuery( '#kpb-widget input[name=kpb-widget-id]').val '' 310 jQuery( '#kpb-widget input[name=kpb-widget-name]').val '' 307 311 return 308 312 … … 310 314 event.preventDefault() 311 315 312 current_layout = jQuery( '#kpb-select-layout').find('option:selected').val()316 current_layout = jQuery( '#kpb-select-layout').find( 'option:selected').val() 313 317 314 318 Kopa_Page_Builder.show_overlay_loading() 315 319 data = 316 current_layout: jQuery( '#kpb-select-layout').find('option:selected').val()320 current_layout: jQuery( '#kpb-select-layout').find( 'option:selected').val() 317 321 layouts: [] 318 322 … … 387 391 data: 388 392 action: 'kpb_save_grid' 389 security: jQuery( '#kpb_save_grid_security').val()393 security: jQuery( '#kpb_save_grid_security').val() 390 394 data: data 391 post_id: jQuery( '#post_ID').val()395 post_id: jQuery( '#post_ID').val() 392 396 return 393 397 394 398 show_overlay_loading: () -> 395 #jQuery( '#kpb-loading-overlay').show()396 jQuery( '#kpb-loading-overlay').stop().animate399 #jQuery( '#kpb-loading-overlay').show() 400 jQuery( '#kpb-loading-overlay').stop().animate 397 401 display: 'block' 398 402 right: '0px' … … 401 405 402 406 hide_overlay_loading: () -> 403 #jQuery( '#kpb-loading-overlay').hide()404 jQuery( '#kpb-loading-overlay').animate407 #jQuery( '#kpb-loading-overlay').hide() 408 jQuery( '#kpb-loading-overlay').animate 405 409 display: 'none' 406 410 right: '-150px' … … 411 415 event.preventDefault() 412 416 413 if obj.attr( 'data-status') is '0'414 jQuery( '.kpb-layout > .kpb-col-left').removeClass('kpb-col-12').addClass('kpb-col-8')415 jQuery( '.kpb-layout > .kpb-col-right').show()417 if obj.attr( 'data-status') is '0' 418 jQuery( '.kpb-layout > .kpb-col-left').removeClass( 'kpb-col-12').addClass( 'kpb-col-8') 419 jQuery( '.kpb-layout > .kpb-col-right').show() 416 420 obj.attr 'data-status', '1' 417 421 obj.text KPB.i18n.hide_preview 418 422 else 419 jQuery( '.kpb-layout > .kpb-col-left').removeClass('kpb-col-8').addClass('kpb-col-12')420 jQuery( '.kpb-layout > .kpb-col-right').hide()423 jQuery( '.kpb-layout > .kpb-col-left').removeClass( 'kpb-col-8').addClass( 'kpb-col-12') 424 jQuery( '.kpb-layout > .kpb-col-right').hide() 421 425 obj.attr 'data-status', '0' 422 426 obj.text KPB.i18n.show_preview … … 429 433 event.preventDefault() 430 434 431 new_layout = obj.find( 'option:selected').val()435 new_layout = obj.find( 'option:selected').val() 432 436 new_layout_id = '#kpb-layout-' + new_layout; 433 437 434 if !jQuery(new_layout_id).hasClass( 'kpb-active')435 jQuery( '.kpb-layout.kpb-active').removeClass('kpb-active').addClass('kpb-hidden')436 jQuery(new_layout_id).removeClass( 'kpb-hidden').addClass('kpb-active')438 if !jQuery(new_layout_id).hasClass( 'kpb-active') 439 jQuery( '.kpb-layout.kpb-active').removeClass( 'kpb-active').addClass( 'kpb-hidden') 440 jQuery(new_layout_id).removeClass( 'kpb-hidden').addClass( 'kpb-active') 437 441 438 442 return 439 443 440 444 init_sortable: () -> 441 jQuery( '.kpb-area-placeholder').sortable445 jQuery( '.kpb-area-placeholder').sortable 442 446 forcePlaceholderSize: true 443 447 connectWith: '.kpb-area-placeholder' … … 449 453 450 454 open_media_center: () -> 451 jQuery( '.kpb-ui-image-outer').on 'click', '.kpb-ui-image-button-upload', (event)->455 jQuery( '.kpb-ui-image-outer').on 'click', '.kpb-ui-image-button-upload', (event)-> 452 456 event.preventDefault() 453 457 … … 467 471 468 472 kpb_media.on 'select', () -> 469 attachment = kpb_media.state().get( 'selection').first().toJSON()470 kpb_media_button_upload.parents( '.kpb-ui-image-outer').find('.kpb-ui-image').val attachment.url471 kpb_media_button_upload.parents( '.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr 'src', attachment.url473 attachment = kpb_media.state().get( 'selection').first().toJSON() 474 kpb_media_button_upload.parents( '.kpb-ui-image-outer').find( '.kpb-ui-image').val attachment.url 475 kpb_media_button_upload.parents( '.kpb-ui-image-outer').find( '.kpb-ui-image-preview').attr 'src', attachment.url 472 476 return 473 477 … … 476 480 return 477 481 478 jQuery( '.kpb-ui-image-outer').on 'click', '.kpb-ui-image-button-reset', (event)->482 jQuery( '.kpb-ui-image-outer').on 'click', '.kpb-ui-image-button-reset', (event)-> 479 483 event.preventDefault() 480 484 kpb_media_button_reset = jQuery this 481 485 482 if kpb_media_button_reset.attr( 'data-reset')483 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find('.kpb-ui-image').val kpb_media_button_reset.attr 'data-reset'484 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr 'src', kpb_media_button_reset.attr 'data-reset'486 if kpb_media_button_reset.attr( 'data-reset') 487 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find( '.kpb-ui-image').val kpb_media_button_reset.attr 'data-reset' 488 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find( '.kpb-ui-image-preview').attr 'src', kpb_media_button_reset.attr 'data-reset' 485 489 else 486 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find('.kpb-ui-image').val kpb_media_button_reset.attr ''487 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr 'src', kpb_media_button_reset.attr 'data-preview'490 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find( '.kpb-ui-image').val kpb_media_button_reset.attr '' 491 kpb_media_button_reset.parents( '.kpb-ui-image-outer').find( '.kpb-ui-image-preview').attr 'src', kpb_media_button_reset.attr 'data-preview' 488 492 489 493 return … … 492 496 493 497 init_section_tab: () -> 494 tabs = jQuery( '.kpb-tab-title > a')498 tabs = jQuery( '.kpb-tab-title > a') 495 499 if tabs.length > 0 496 500 tabs.each (index, element) -> … … 499 503 event.preventDefault() 500 504 501 root = tab.parents( '.kpb-wrapper-configuration-toggle')505 root = tab.parents( '.kpb-wrapper-configuration-toggle') 502 506 parent = tab.parent() 503 507 504 if !parent.hasClass( 'kpb-tab-title-active')505 root.find( '.kpb-tab-title-active').removeClass('kpb-tab-title-active')506 root.find( '.kpb-tab-content').slideUp 500507 508 parent.addClass( 'kpb-tab-title-active')508 if !parent.hasClass( 'kpb-tab-title-active') 509 root.find( '.kpb-tab-title-active').removeClass( 'kpb-tab-title-active') 510 root.find( '.kpb-tab-content').slideUp 500 511 512 parent.addClass( 'kpb-tab-title-active') 509 513 jQuery(tab.attr 'href').slideDown 500 510 514 … … 516 520 event.preventDefault() 517 521 518 root = obj.parents( '.kpb-wrapper-configuration-toggle')522 root = obj.parents( '.kpb-wrapper-configuration-toggle') 519 523 parent = obj.parent() 520 524 521 if !parent.hasClass( 'kpb-tab-title-active')522 root.find( '.kpb-tab-title-active').removeClass('kpb-tab-title-active')523 root.find( '.kpb-tab-content').slideUp 500524 525 parent.addClass( 'kpb-tab-title-active')525 if !parent.hasClass( 'kpb-tab-title-active') 526 root.find( '.kpb-tab-title-active').removeClass( 'kpb-tab-title-active') 527 root.find( '.kpb-tab-content').slideUp 500 528 529 parent.addClass( 'kpb-tab-title-active') 526 530 jQuery(obj.attr 'href').slideDown 500 527 531 -
kopa-page-builder/trunk/js/script.js
r1323889 r1428045 65 65 event.preventDefault(); 66 66 lightbox = '#kpb-layout-customize-lightbox-' + jQuery('#kpb-select-layout option:selected').val(); 67 if (jQuery(lightbox).length) { 68 jQuery.magnificPopup.open({ 69 callbacks: { 70 open: function() { 71 jQuery(lightbox).show(); 72 }, 73 close: function() { 74 jQuery(lightbox).hide(); 75 } 76 }, 77 modal: true, 78 preloader: true, 79 alignTop: true, 80 items: { 81 src: lightbox, 82 type: 'inline' 83 } 84 }); 85 } 86 }, 87 save_layout_customize: function(event, obj, post_id) { 88 event.preventDefault(); 89 Kopa_Page_Builder.show_overlay_loading(); 90 obj.ajaxSubmit({ 91 beforeSubmit: function(arr, $form, options) {}, 92 success: function(responseText, statusText, xhr, $form) { 93 Kopa_Page_Builder.hide_overlay_loading(); 94 jQuery('#kpb-button-save-layouts').click(); 95 }, 96 data: { 97 post_id: post_id 98 } 99 }); 100 }, 101 close_layout_customize: function(event) { 102 event.preventDefault(); 103 Kopa_Page_Builder.close_widget(event); 104 }, 105 open_customize: function(event, obj, layout, section) { 106 var lightbox; 107 event.preventDefault(); 108 lightbox = '#kpb-customize-lightbox-' + layout + '-' + section; 67 109 jQuery.magnificPopup.open({ 68 110 callbacks: { … … 83 125 }); 84 126 }, 85 save_ layout_customize: function(event, obj, post_id) {127 save_customize: function(event, obj, post_id) { 86 128 event.preventDefault(); 87 129 Kopa_Page_Builder.show_overlay_loading(); … … 90 132 success: function(responseText, statusText, xhr, $form) { 91 133 Kopa_Page_Builder.hide_overlay_loading(); 134 jQuery('#kpb-button-save-layouts').click(); 92 135 }, 93 136 data: { … … 96 139 }); 97 140 }, 98 close_layout_customize: function(event) {99 event.preventDefault();100 Kopa_Page_Builder.close_widget(event);101 },102 open_customize: function(event, obj, layout, section) {103 var lightbox;104 event.preventDefault();105 lightbox = '#kpb-customize-lightbox-' + layout + '-' + section;106 jQuery.magnificPopup.open({107 callbacks: {108 open: function() {109 jQuery(lightbox).show();110 },111 close: function() {112 jQuery(lightbox).hide();113 }114 },115 modal: true,116 preloader: true,117 alignTop: true,118 items: {119 src: lightbox,120 type: 'inline'121 }122 });123 },124 save_customize: function(event, obj, post_id) {125 event.preventDefault();126 Kopa_Page_Builder.show_overlay_loading();127 obj.ajaxSubmit({128 beforeSubmit: function(arr, $form, options) {},129 success: function(responseText, statusText, xhr, $form) {130 Kopa_Page_Builder.hide_overlay_loading();131 },132 data: {133 post_id: post_id134 }135 });136 },137 141 close_customize: function(event) { 138 142 event.preventDefault(); … … 142 146 var lightbox; 143 147 event.preventDefault(); 144 kpb_current_sidebar = obj.parents('.kpb-area' );148 kpb_current_sidebar = obj.parents('.kpb-area' ); 145 149 lightbox = '#kpb-widgets-lightbox'; 146 150 jQuery.magnificPopup.open({ … … 178 182 jQuery('#kpb-widget input[name=kpb-widget-class-name]').val(class_name); 179 183 jQuery('#kpb-widget input[name=kpb-widget-name]').val(widget_name); 180 jQuery('#kpb-widget input[name=kpb-widget-action]').val('add' );181 jQuery('#kpb-widget input[name=kpb-widget-id]').val(Kopa_Page_Builder.get_random_id('widget-' ));184 jQuery('#kpb-widget input[name=kpb-widget-action]').val('add' ); 185 jQuery('#kpb-widget input[name=kpb-widget-id]').val(Kopa_Page_Builder.get_random_id('widget-' ) ); 182 186 jQuery.ajax({ 183 187 success: function(data, textStatus, jqXHR) { … … 213 217 var lightbox; 214 218 event.preventDefault(); 215 kpb_current_widget = obj.parents('.kpb-widget' );219 kpb_current_widget = obj.parents('.kpb-widget' ); 216 220 lightbox = '#kpb-widget-lightbox'; 217 221 jQuery.magnificPopup.open({ … … 220 224 jQuery(lightbox).show(); 221 225 jQuery('#kpb-widget-title').text(kpb_current_widget.find('label').text()); 222 jQuery('#kpb-widget input[name=kpb-widget-class-name]').val(kpb_current_widget.attr('data-class' ));223 jQuery('#kpb-widget input[name=kpb-widget-name]').val(kpb_current_widget.attr('data-name' ));224 jQuery('#kpb-widget input[name=kpb-widget-action]').val('edit' );226 jQuery('#kpb-widget input[name=kpb-widget-class-name]').val(kpb_current_widget.attr('data-class' ) ); 227 jQuery('#kpb-widget input[name=kpb-widget-name]').val(kpb_current_widget.attr('data-name' ) ); 228 jQuery('#kpb-widget input[name=kpb-widget-action]').val('edit' ); 225 229 jQuery('#kpb-widget input[name=kpb-widget-id]').val(widget_id); 226 230 jQuery.ajax({ … … 238 242 security: jQuery('#kpb_get_widget_form_security').val(), 239 243 widget_id: widget_id, 240 class_name: kpb_current_widget.attr('data-class' ),244 class_name: kpb_current_widget.attr('data-class' ), 241 245 post_id: jQuery('#post_ID').val() 242 246 } … … 275 279 action: 'kpb_delete_widget', 276 280 security: jQuery('#kpb_delete_widget_security').val(), 277 widget_id: widget_id 281 widget_id: widget_id, 282 post_id: jQuery('#post_ID').val() 278 283 } 279 284 }); … … 289 294 if ('add' === jQuery('#kpb-widget input[name=kpb-widget-action]').val()) { 290 295 kpb_current_sidebar.find('.kpb-area-placeholder').append(responseText); 291 jQuery('#kpb-widget input[name=kpb-widget-action]').val('edit' );296 jQuery('#kpb-widget input[name=kpb-widget-action]').val('edit' ); 292 297 } else { 293 298 if (kpb_current_widget) { … … 303 308 event.preventDefault(); 304 309 jQuery.magnificPopup.close(); 305 jQuery('#kpb-widget .kpb-form-inner').html('<center class="kpb-loading">' + KPB.i18n.loading + '</center>' );310 jQuery('#kpb-widget .kpb-form-inner').html('<center class="kpb-loading">' + KPB.i18n.loading + '</center>' ); 306 311 Kopa_Page_Builder.hide_overlay_loading(); 307 jQuery('#kpb-widget-title').text('' );308 jQuery('#kpb-widget input[name=kpb-widget-class-name]').val('' );309 jQuery('#kpb-widget input[name=kpb-widget-action]').val('add' );310 jQuery('#kpb-widget input[name=kpb-widget-id]').val('' );311 jQuery('#kpb-widget input[name=kpb-widget-name]').val('' );312 jQuery('#kpb-widget-title').text('' ); 313 jQuery('#kpb-widget input[name=kpb-widget-class-name]').val('' ); 314 jQuery('#kpb-widget input[name=kpb-widget-action]').val('add' ); 315 jQuery('#kpb-widget input[name=kpb-widget-id]').val('' ); 316 jQuery('#kpb-widget input[name=kpb-widget-name]').val('' ); 312 317 }, 313 318 save_layout: function(event, obj) { … … 320 325 layouts: [] 321 326 }; 322 layouts = jQuery('.kpb-layout' );327 layouts = jQuery('.kpb-layout' ); 323 328 if (layouts.length > 0) { 324 329 layouts.each(function(l_index, l_element) { … … 326 331 current_layout = jQuery(l_element); 327 332 layout_data = { 328 name: current_layout.attr('data-layout' ),333 name: current_layout.attr('data-layout' ), 329 334 sections: [] 330 335 }; 331 sections = current_layout.find('.kpb-section' );336 sections = current_layout.find('.kpb-section' ); 332 337 if (sections.length > 0) { 333 338 sections.each(function(s_index, s_element) { … … 335 340 current_section = jQuery(s_element); 336 341 section_data = { 337 name: current_section.attr('data-section' ),342 name: current_section.attr('data-section' ), 338 343 areas: [] 339 344 }; 340 areas = current_section.find('.kpb-area' );345 areas = current_section.find('.kpb-area' ); 341 346 if (areas.length > 0) { 342 347 areas.each(function(a_index, a_element) { … … 344 349 current_area = jQuery(a_element); 345 350 area_data = { 346 name: current_area.attr('data-area' ),351 name: current_area.attr('data-area' ), 347 352 widgets: [] 348 353 }; 349 widgets = current_area.find('.kpb-widget' );354 widgets = current_area.find('.kpb-widget' ); 350 355 if (widgets.length > 0) { 351 356 widgets.each(function(w_index, w_element) { … … 353 358 current_widget = jQuery(w_element); 354 359 widget_data = { 355 id: current_widget.attr('id' ),356 name: current_widget.attr('data-name' ),360 id: current_widget.attr('id' ), 361 name: current_widget.attr('data-name' ), 357 362 class_name: current_widget.attr('data-class') 358 363 }; … … 407 412 event.preventDefault(); 408 413 if (obj.attr('data-status') === '0') { 409 jQuery('.kpb-layout > .kpb-col-left').removeClass('kpb-col-12').addClass('kpb-col-8' );414 jQuery('.kpb-layout > .kpb-col-left').removeClass('kpb-col-12').addClass('kpb-col-8' ); 410 415 jQuery('.kpb-layout > .kpb-col-right').show(); 411 obj.attr('data-status', '1' );416 obj.attr('data-status', '1' ); 412 417 obj.text(KPB.i18n.hide_preview); 413 418 } else { 414 jQuery('.kpb-layout > .kpb-col-left').removeClass('kpb-col-8').addClass('kpb-col-12' );419 jQuery('.kpb-layout > .kpb-col-left').removeClass('kpb-col-8').addClass('kpb-col-12' ); 415 420 jQuery('.kpb-layout > .kpb-col-right').hide(); 416 obj.attr('data-status', '0' );421 obj.attr('data-status', '0' ); 417 422 obj.text(KPB.i18n.show_preview); 418 423 } … … 427 432 new_layout_id = '#kpb-layout-' + new_layout; 428 433 if (!jQuery(new_layout_id).hasClass('kpb-active')) { 429 jQuery('.kpb-layout.kpb-active').removeClass('kpb-active').addClass('kpb-hidden' );430 jQuery(new_layout_id).removeClass('kpb-hidden').addClass('kpb-active' );434 jQuery('.kpb-layout.kpb-active').removeClass('kpb-active').addClass('kpb-hidden' ); 435 jQuery(new_layout_id).removeClass('kpb-hidden').addClass('kpb-active' ); 431 436 } 432 437 }, … … 471 476 kpb_media_button_reset = jQuery(this); 472 477 if (kpb_media_button_reset.attr('data-reset')) { 473 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image').val(kpb_media_button_reset.attr('data-reset' ));474 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr('src', kpb_media_button_reset.attr('data-reset' ));478 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image').val(kpb_media_button_reset.attr('data-reset' ) ); 479 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr('src', kpb_media_button_reset.attr('data-reset' ) ); 475 480 } else { 476 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image').val(kpb_media_button_reset.attr('' ));477 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr('src', kpb_media_button_reset.attr('data-preview' ));481 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image').val(kpb_media_button_reset.attr('' ) ); 482 kpb_media_button_reset.parents('.kpb-ui-image-outer').find('.kpb-ui-image-preview').attr('src', kpb_media_button_reset.attr('data-preview' ) ); 478 483 } 479 484 }); … … 481 486 init_section_tab: function() { 482 487 var tabs; 483 tabs = jQuery('.kpb-tab-title > a' );488 tabs = jQuery('.kpb-tab-title > a' ); 484 489 if (tabs.length > 0) { 485 490 tabs.each(function(index, element) { … … 489 494 var parent, root; 490 495 event.preventDefault(); 491 root = tab.parents('.kpb-wrapper-configuration-toggle' );496 root = tab.parents('.kpb-wrapper-configuration-toggle' ); 492 497 parent = tab.parent(); 493 498 if (!parent.hasClass('kpb-tab-title-active')) { 494 root.find('.kpb-tab-title-active').removeClass('kpb-tab-title-active' );499 root.find('.kpb-tab-title-active').removeClass('kpb-tab-title-active' ); 495 500 root.find('.kpb-tab-content').slideUp(500); 496 parent.addClass('kpb-tab-title-active' );501 parent.addClass('kpb-tab-title-active' ); 497 502 jQuery(tab.attr('href')).slideDown(500); 498 503 } … … 504 509 var parent, root; 505 510 event.preventDefault(); 506 root = obj.parents('.kpb-wrapper-configuration-toggle' );511 root = obj.parents('.kpb-wrapper-configuration-toggle' ); 507 512 parent = obj.parent(); 508 513 if (!parent.hasClass('kpb-tab-title-active')) { 509 root.find('.kpb-tab-title-active').removeClass('kpb-tab-title-active' );514 root.find('.kpb-tab-title-active').removeClass('kpb-tab-title-active' ); 510 515 root.find('.kpb-tab-content').slideUp(500); 511 parent.addClass('kpb-tab-title-active' );516 parent.addClass('kpb-tab-title-active' ); 512 517 jQuery(obj.attr('href')).slideDown(500); 513 518 } -
kopa-page-builder/trunk/js/script.min.js
r1323889 r1428045 1 var Kopa_Page_Builder,kpb_current_sidebar,kpb_current_widget,kpb_media,kpb_media_button_reset,kpb_media_button_upload;jQuery(document).ready(function() {Kopa_Page_Builder.load_lightbox_html()}),jQuery(window).load(function(){}),kpb_current_widget={},kpb_current_sidebar={},kpb_media=!1,kpb_media_button_upload={},kpb_media_button_reset={},Kopa_Page_Builder={init_effect:function(){Kopa_Page_Builder.init_sortable(),Kopa_Page_Builder.init_section_tab(),Kopa_Page_Builder.sticky_header(),Kopa_Page_Builder.open_media_center(),jQuery(".kpb-ui-color").wpColorPicker()},load_lightbox_html:function(){jQuery.ajax({beforeSend:function(){},success:function(e){jQuery("body").append(e),jQuery("#kpb-metabox-loading-text").remove(),jQuery("#kpb-wrapper").show(),Kopa_Page_Builder.init_effect()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_load_lightbox_html",security:jQuery("#kpb_load_lightbox_html_security").val(),post_id:jQuery("#post_ID").val()}})},main_form_submit:function(){jQuery("form#post").length>0&&jQuery("form#post").on("submit",function(){return jQuery("#kpb-button-save-layouts").click()})},sticky_header:function(){"1"===KPB.is_sticky_toolbar&&jQuery("#kpb-wrapper-header").waypoint("sticky",{direction:"down",stuckClass:"kpb-stuck",wrapper:'<div class="kpb-wrapper-header-sticky" />'})},open_customize_layout:function(e){var t;e.preventDefault(),t="#kpb-layout-customize-lightbox-"+jQuery("#kpb-select-layout option:selected").val(),jQuery.magnificPopup.open({callbacks:{open:function(){jQuery(t).show()},close:function(){jQuery(t).hide()}},modal:!0,preloader:!0,alignTop:!0,items:{src:t,type:"inline"}})},save_layout_customize:function(e,t,a){e.preventDefault(),Kopa_Page_Builder.show_overlay_loading(),t.ajaxSubmit({beforeSubmit:function(){},success:function(){Kopa_Page_Builder.hide_overlay_loading()},data:{post_id:a}})},close_layout_customize:function(e){e.preventDefault(),Kopa_Page_Builder.close_widget(e)},open_customize:function(e,t,a,i){var n;e.preventDefault(),n="#kpb-customize-lightbox-"+a+"-"+i,jQuery.magnificPopup.open({callbacks:{open:function(){jQuery(n).show()},close:function(){jQuery(n).hide()}},modal:!0,preloader:!0,alignTop:!0,items:{src:n,type:"inline"}})},save_customize:function(e,t,a){e.preventDefault(),Kopa_Page_Builder.show_overlay_loading(),t.ajaxSubmit({beforeSubmit:function(){},success:function(){Kopa_Page_Builder.hide_overlay_loading()},data:{post_id:a}})},close_customize:function(e){e.preventDefault(),Kopa_Page_Builder.close_widget(e)},open_list_widgets:function(e,t){var a;e.preventDefault(),kpb_current_sidebar=t.parents(".kpb-area"),a="#kpb-widgets-lightbox",jQuery.magnificPopup.open({callbacks:{open:function(){jQuery(a).show()},close:function(){jQuery(a).hide()}},modal:!0,preloader:!0,alignTop:!0,items:{src:a,type:"inline"}})},close_list_widgets:function(e){e.preventDefault(),jQuery.magnificPopup.close()},add_widget:function(e,t,a,i){var n;e.preventDefault(),Kopa_Page_Builder.close_list_widgets(e),n="#kpb-widget-lightbox",jQuery.magnificPopup.open({callbacks:{open:function(){jQuery(n).show(),jQuery("#kpb-widget-title").text(i),jQuery("#kpb-widget input[name=kpb-widget-class-name]").val(a),jQuery("#kpb-widget input[name=kpb-widget-name]").val(i),jQuery("#kpb-widget input[name=kpb-widget-action]").val("add"),jQuery("#kpb-widget input[name=kpb-widget-id]").val(Kopa_Page_Builder.get_random_id("widget-")),jQuery.ajax({success:function(e){jQuery("#kpb-widget .kpb-form-inner").html(e),Kopa_Page_Builder.open_media_center(),jQuery(".kpb-ui-color").wpColorPicker()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_get_widget_form",security:jQuery("#kpb_get_widget_form_security").val(),class_name:a}})},close:function(){Kopa_Page_Builder.close_widget(e)}},modal:!0,preloader:!0,alignTop:!0,items:{src:n,type:"inline"}})},edit_widget:function(e,t,a){var i;e.preventDefault(),kpb_current_widget=t.parents(".kpb-widget"),i="#kpb-widget-lightbox",jQuery.magnificPopup.open({callbacks:{open:function(){jQuery(i).show(),jQuery("#kpb-widget-title").text(kpb_current_widget.find("label").text()),jQuery("#kpb-widget input[name=kpb-widget-class-name]").val(kpb_current_widget.attr("data-class")),jQuery("#kpb-widget input[name=kpb-widget-name]").val(kpb_current_widget.attr("data-name")),jQuery("#kpb-widget input[name=kpb-widget-action]").val("edit"),jQuery("#kpb-widget input[name=kpb-widget-id]").val(a),jQuery.ajax({success:function(e){jQuery("#kpb-widget .kpb-form-inner").html(e),Kopa_Page_Builder.open_media_center(),jQuery(".kpb-ui-color").wpColorPicker()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_get_widget_form",security:jQuery("#kpb_get_widget_form_security").val(),widget_id:a,class_name:kpb_current_widget.attr("data-class"),post_id:jQuery("#post_ID").val()}})},close:function(){Kopa_Page_Builder.close_widget(e)}},modal:!0,preloader:!0,alignTop:!0,items:{src:i,type:"inline"},fixedBgPos:!0})},delete_widget:function(e,t,a){var i;e.preventDefault(),i=confirm(KPB.i18n.are_you_sure_to_remove_this_widget),i&&jQuery.ajax({beforeSend:function(){},success:function(){t.parents(".kpb-widget").remove(),jQuery("#kpb-button-save-layouts").click()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_delete_widget",security:jQuery("#kpb_delete_widget_security").val(),widget_id:a}})},save_widget:function(e,t){e.preventDefault(),Kopa_Page_Builder.show_overlay_loading(),t.ajaxSubmit({beforeSubmit:function(){},success:function(e){e&&("add"===jQuery("#kpb-widget input[name=kpb-widget-action]").val()?(kpb_current_sidebar.find(".kpb-area-placeholder").append(e),jQuery("#kpb-widget input[name=kpb-widget-action]").val("edit")):kpb_current_widget&&kpb_current_widget.find("label").text(e)),jQuery("#kpb-button-save-layouts").click()}})},close_widget:function(e){e.preventDefault(),jQuery.magnificPopup.close(),jQuery("#kpb-widget .kpb-form-inner").html('<center class="kpb-loading">'+KPB.i18n.loading+"</center>"),Kopa_Page_Builder.hide_overlay_loading(),jQuery("#kpb-widget-title").text(""),jQuery("#kpb-widget input[name=kpb-widget-class-name]").val(""),jQuery("#kpb-widget input[name=kpb-widget-action]").val("add"),jQuery("#kpb-widget input[name=kpb-widget-id]").val(""),jQuery("#kpb-widget input[name=kpb-widget-name]").val("")},save_layout:function(e,t){var a,i,n;e.preventDefault(),a=jQuery("#kpb-select-layout").find("option:selected").val(),Kopa_Page_Builder.show_overlay_loading(),i={current_layout:jQuery("#kpb-select-layout").find("option:selected").val(),layouts:[]},n=jQuery(".kpb-layout"),n.length>0&&n.each(function(e,t){var n,r;a=jQuery(t),n={name:a.attr("data-layout"),sections:[]},r=a.find(".kpb-section"),r.length>0&&r.each(function(e,t){var a,i,r;i=jQuery(t),r={name:i.attr("data-section"),areas:[]},a=i.find(".kpb-area"),a.length>0&&a.each(function(e,t){var a,i,n;i=jQuery(t),a={name:i.attr("data-area"),widgets:[]},n=i.find(".kpb-widget"),n.length>0&&n.each(function(e,t){var i,n;i=jQuery(t),n={id:i.attr("id"),name:i.attr("data-name"),class_name:i.attr("data-class")},a.widgets.push(n)}),r.areas.push(a)}),n.sections.push(r)}),i.layouts.push(n)}),jQuery.ajax({error:function(e,t){console.log(t)},beforeSend:function(){t.text(KPB.i18n.saving)},success:function(){t.text(KPB.i18n.save),Kopa_Page_Builder.hide_overlay_loading()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_save_grid",security:jQuery("#kpb_save_grid_security").val(),data:i,post_id:jQuery("#post_ID").val()}})},show_overlay_loading:function(){jQuery("#kpb-loading-overlay").stop().animate({display:"block",right:"0px"},500)},hide_overlay_loading:function(){jQuery("#kpb-loading-overlay").animate({display:"none",right:"-150px"},500)},hide_preview:function(e,t){e.preventDefault(),"0"===t.attr("data-status")?(jQuery(".kpb-layout > .kpb-col-left").removeClass("kpb-col-12").addClass("kpb-col-8"),jQuery(".kpb-layout > .kpb-col-right").show(),t.attr("data-status","1"),t.text(KPB.i18n.hide_preview)):(jQuery(".kpb-layout > .kpb-col-left").removeClass("kpb-col-8").addClass("kpb-col-12"),jQuery(".kpb-layout > .kpb-col-right").hide(),t.attr("data-status","0"),t.text(KPB.i18n.show_preview))},get_random_id:function(e){return e+Math.random().toString(36).substr(2)},change_layout:function(e,t){var a,i;e.preventDefault(),a=t.find("option:selected").val(),i="#kpb-layout-"+a,jQuery(i).hasClass("kpb-active")||(jQuery(".kpb-layout.kpb-active").removeClass("kpb-active").addClass("kpb-hidden"),jQuery(i).removeClass("kpb-hidden").addClass("kpb-active"))},init_sortable:function(){jQuery(".kpb-area-placeholder").sortable({forcePlaceholderSize:!0,connectWith:".kpb-area-placeholder",placeholder:"kpb-widget-sortable-placeholder",start:function(e,t){return t.placeholder.height(t.helper.outerHeight()-2)}}).disableSelection()},open_media_center:function(){jQuery(".kpb-ui-image-outer").on("click",".kpb-ui-image-button-upload",function(e){return e.preventDefault(),kpb_media_button_upload=jQuery(this),kpb_media?(kpb_media.open(),void 0):(kpb_media=wp.media.frames.kpb_media=wp.media({title:KPB.i18n.media_center,button:{text:KPB.i18n.choose_image},library:{type:"image"},multiple:!1}),kpb_media.on("select",function(){var e;e=kpb_media.state().get("selection").first().toJSON(),kpb_media_button_upload.parents(".kpb-ui-image-outer").find(".kpb-ui-image").val(e.url),kpb_media_button_upload.parents(".kpb-ui-image-outer").find(".kpb-ui-image-preview").attr("src",e.url)}),kpb_media.open(),void 0)}),jQuery(".kpb-ui-image-outer").on("click",".kpb-ui-image-button-reset",function(e){e.preventDefault(),kpb_media_button_reset=jQuery(this),kpb_media_button_reset.attr("data-reset")?(kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image").val(kpb_media_button_reset.attr("data-reset")),kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image-preview").attr("src",kpb_media_button_reset.attr("data-reset"))):(kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image").val(kpb_media_button_reset.attr("")),kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image-preview").attr("src",kpb_media_button_reset.attr("data-preview")))})},init_section_tab:function(){var e;e=jQuery(".kpb-tab-title > a"),e.length>0&&e.each(function(){var e;e=jQuery(this),e.click(function(t){var a,i;t.preventDefault(),i=e.parents(".kpb-wrapper-configuration-toggle"),a=e.parent(),a.hasClass("kpb-tab-title-active")||(i.find(".kpb-tab-title-active").removeClass("kpb-tab-title-active"),i.find(".kpb-tab-content").slideUp(500),a.addClass("kpb-tab-title-active"),jQuery(e.attr("href")).slideDown(500))})})},change_customize_tab:function(e,t){var a,i;e.preventDefault(),i=t.parents(".kpb-wrapper-configuration-toggle"),a=t.parent(),a.hasClass("kpb-tab-title-active")||(i.find(".kpb-tab-title-active").removeClass("kpb-tab-title-active"),i.find(".kpb-tab-content").slideUp(500),a.addClass("kpb-tab-title-active"),jQuery(t.attr("href")).slideDown(500))}};1 var Kopa_Page_Builder,kpb_current_sidebar,kpb_current_widget,kpb_media,kpb_media_button_reset,kpb_media_button_upload;jQuery(document).ready(function() {Kopa_Page_Builder.load_lightbox_html()}),jQuery(window).load(function() {}),kpb_current_widget={},kpb_current_sidebar={},kpb_media=!1,kpb_media_button_upload={},kpb_media_button_reset={},Kopa_Page_Builder={init_effect:function() {Kopa_Page_Builder.init_sortable(),Kopa_Page_Builder.init_section_tab(),Kopa_Page_Builder.sticky_header(),Kopa_Page_Builder.open_media_center(),jQuery(".kpb-ui-color").wpColorPicker()},load_lightbox_html:function() {jQuery.ajax({beforeSend:function() {},success:function(e){jQuery("body").append(e),jQuery("#kpb-metabox-loading-text").remove(),jQuery("#kpb-wrapper").show(),Kopa_Page_Builder.init_effect()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_load_lightbox_html",security:jQuery("#kpb_load_lightbox_html_security").val(),post_id:jQuery("#post_ID").val()}})},main_form_submit:function() {jQuery("form#post").length>0&&jQuery("form#post").on("submit",function() {return jQuery("#kpb-button-save-layouts").click()})},sticky_header:function() {"1"===KPB.is_sticky_toolbar&&jQuery("#kpb-wrapper-header").waypoint("sticky",{direction:"down",stuckClass:"kpb-stuck",wrapper:'<div class="kpb-wrapper-header-sticky" />'})},open_customize_layout:function(e){var t;e.preventDefault(),t="#kpb-layout-customize-lightbox-"+jQuery("#kpb-select-layout option:selected").val(),jQuery.magnificPopup.open({callbacks:{open:function() {jQuery(t).show()},close:function() {jQuery(t).hide()}},modal:!0,preloader:!0,alignTop:!0,items:{src:t,type:"inline"}})},save_layout_customize:function(e,t,a){e.preventDefault(),Kopa_Page_Builder.show_overlay_loading(),t.ajaxSubmit({beforeSubmit:function() {},success:function() {Kopa_Page_Builder.hide_overlay_loading(),jQuery("#kpb-button-save-layouts").click()},data:{post_id:a}})},close_layout_customize:function(e){e.preventDefault(),Kopa_Page_Builder.close_widget(e)},open_customize:function(e,t,a,i){var n;e.preventDefault(),n="#kpb-customize-lightbox-"+a+"-"+i,jQuery.magnificPopup.open({callbacks:{open:function() {jQuery(n).show()},close:function() {jQuery(n).hide()}},modal:!0,preloader:!0,alignTop:!0,items:{src:n,type:"inline"}})},save_customize:function(e,t,a){e.preventDefault(),Kopa_Page_Builder.show_overlay_loading(),t.ajaxSubmit({beforeSubmit:function() {},success:function() {Kopa_Page_Builder.hide_overlay_loading(),jQuery("#kpb-button-save-layouts").click()},data:{post_id:a}})},close_customize:function(e){e.preventDefault(),Kopa_Page_Builder.close_widget(e)},open_list_widgets:function(e,t){var a;e.preventDefault(),kpb_current_sidebar=t.parents(".kpb-area"),a="#kpb-widgets-lightbox",jQuery.magnificPopup.open({callbacks:{open:function() {jQuery(a).show()},close:function() {jQuery(a).hide()}},modal:!0,preloader:!0,alignTop:!0,items:{src:a,type:"inline"}})},close_list_widgets:function(e){e.preventDefault(),jQuery.magnificPopup.close()},add_widget:function(e,t,a,i){var n;e.preventDefault(),Kopa_Page_Builder.close_list_widgets(e),n="#kpb-widget-lightbox",jQuery.magnificPopup.open({callbacks:{open:function() {jQuery(n).show(),jQuery("#kpb-widget-title").text(i),jQuery("#kpb-widget input[name=kpb-widget-class-name]").val(a),jQuery("#kpb-widget input[name=kpb-widget-name]").val(i),jQuery("#kpb-widget input[name=kpb-widget-action]").val("add"),jQuery("#kpb-widget input[name=kpb-widget-id]").val(Kopa_Page_Builder.get_random_id("widget-")),jQuery.ajax({success:function(e){jQuery("#kpb-widget .kpb-form-inner").html(e),Kopa_Page_Builder.open_media_center(),jQuery(".kpb-ui-color").wpColorPicker()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_get_widget_form",security:jQuery("#kpb_get_widget_form_security").val(),class_name:a}})},close:function() {Kopa_Page_Builder.close_widget(e)}},modal:!0,preloader:!0,alignTop:!0,items:{src:n,type:"inline"}})},edit_widget:function(e,t,a){var i;e.preventDefault(),kpb_current_widget=t.parents(".kpb-widget"),i="#kpb-widget-lightbox",jQuery.magnificPopup.open({callbacks:{open:function() {jQuery(i).show(),jQuery("#kpb-widget-title").text(kpb_current_widget.find("label").text()),jQuery("#kpb-widget input[name=kpb-widget-class-name]").val(kpb_current_widget.attr("data-class")),jQuery("#kpb-widget input[name=kpb-widget-name]").val(kpb_current_widget.attr("data-name")),jQuery("#kpb-widget input[name=kpb-widget-action]").val("edit"),jQuery("#kpb-widget input[name=kpb-widget-id]").val(a),jQuery.ajax({success:function(e){jQuery("#kpb-widget .kpb-form-inner").html(e),Kopa_Page_Builder.open_media_center(),jQuery(".kpb-ui-color").wpColorPicker()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_get_widget_form",security:jQuery("#kpb_get_widget_form_security").val(),widget_id:a,class_name:kpb_current_widget.attr("data-class"),post_id:jQuery("#post_ID").val()}})},close:function() {Kopa_Page_Builder.close_widget(e)}},modal:!0,preloader:!0,alignTop:!0,items:{src:i,type:"inline"},fixedBgPos:!0})},delete_widget:function(e,t,a){var i;e.preventDefault(),i=confirm(KPB.i18n.are_you_sure_to_remove_this_widget),i&&jQuery.ajax({beforeSend:function() {},success:function() {t.parents(".kpb-widget").remove(),jQuery("#kpb-button-save-layouts").click()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_delete_widget",security:jQuery("#kpb_delete_widget_security").val(),widget_id:a}})},save_widget:function(e,t){e.preventDefault(),Kopa_Page_Builder.show_overlay_loading(),t.ajaxSubmit({beforeSubmit:function() {},success:function(e){e&&("add"===jQuery("#kpb-widget input[name=kpb-widget-action]").val()?(kpb_current_sidebar.find(".kpb-area-placeholder").append(e),jQuery("#kpb-widget input[name=kpb-widget-action]").val("edit")):kpb_current_widget&&kpb_current_widget.find("label").text(e)),jQuery("#kpb-button-save-layouts").click()}})},close_widget:function(e){e.preventDefault(),jQuery.magnificPopup.close(),jQuery("#kpb-widget .kpb-form-inner").html( '<center class="kpb-loading">'+KPB.i18n.loading+"</center>"),Kopa_Page_Builder.hide_overlay_loading(),jQuery("#kpb-widget-title").text(""),jQuery("#kpb-widget input[name=kpb-widget-class-name]").val(""),jQuery("#kpb-widget input[name=kpb-widget-action]").val("add"),jQuery("#kpb-widget input[name=kpb-widget-id]").val(""),jQuery("#kpb-widget input[name=kpb-widget-name]").val("")},save_layout:function(e,t){var a,i,n;e.preventDefault(),a=jQuery("#kpb-select-layout").find("option:selected").val(),Kopa_Page_Builder.show_overlay_loading(),i={current_layout:jQuery("#kpb-select-layout").find("option:selected").val(),layouts:[]},n=jQuery(".kpb-layout"),n.length>0&&n.each(function(e,t){var n,r;a=jQuery(t),n={name:a.attr("data-layout"),sections:[]},r=a.find(".kpb-section"),r.length>0&&r.each(function(e,t){var a,i,r;i=jQuery(t),r={name:i.attr("data-section"),areas:[]},a=i.find(".kpb-area"),a.length>0&&a.each(function(e,t){var a,i,n;i=jQuery(t),a={name:i.attr("data-area"),widgets:[]},n=i.find(".kpb-widget"),n.length>0&&n.each(function(e,t){var i,n;i=jQuery(t),n={id:i.attr("id"),name:i.attr("data-name"),class_name:i.attr("data-class")},a.widgets.push(n)}),r.areas.push(a)}),n.sections.push(r)}),i.layouts.push(n)}),jQuery.ajax({error:function(e,t){console.log(t)},beforeSend:function() {t.text(KPB.i18n.saving)},success:function() {t.text(KPB.i18n.save),Kopa_Page_Builder.hide_overlay_loading()},url:KPB.ajax,dataType:"html",type:"POST",async:!0,data:{action:"kpb_save_grid",security:jQuery("#kpb_save_grid_security").val(),data:i,post_id:jQuery("#post_ID").val()}})},show_overlay_loading:function() {jQuery("#kpb-loading-overlay").stop().animate({display:"block",right:"0px"},500)},hide_overlay_loading:function() {jQuery("#kpb-loading-overlay").animate({display:"none",right:"-150px"},500)},hide_preview:function(e,t){e.preventDefault(),"0"===t.attr("data-status")?(jQuery(".kpb-layout > .kpb-col-left").removeClass("kpb-col-12").addClass("kpb-col-8"),jQuery(".kpb-layout > .kpb-col-right").show(),t.attr("data-status","1"),t.text(KPB.i18n.hide_preview)):(jQuery(".kpb-layout > .kpb-col-left").removeClass("kpb-col-8").addClass("kpb-col-12"),jQuery(".kpb-layout > .kpb-col-right").hide(),t.attr("data-status","0"),t.text(KPB.i18n.show_preview))},get_random_id:function(e){return e+Math.random().toString(36).substr(2)},change_layout:function(e,t){var a,i;e.preventDefault(),a=t.find("option:selected").val(),i="#kpb-layout-"+a,jQuery(i).hasClass("kpb-active")||(jQuery(".kpb-layout.kpb-active").removeClass("kpb-active").addClass("kpb-hidden"),jQuery(i).removeClass("kpb-hidden").addClass("kpb-active"))},init_sortable:function() {jQuery(".kpb-area-placeholder").sortable({forcePlaceholderSize:!0,connectWith:".kpb-area-placeholder",placeholder:"kpb-widget-sortable-placeholder",start:function(e,t){return t.placeholder.height(t.helper.outerHeight()-2)}}).disableSelection()},open_media_center:function() {jQuery(".kpb-ui-image-outer").on("click",".kpb-ui-image-button-upload",function(e){return e.preventDefault(),kpb_media_button_upload=jQuery(this),kpb_media?(kpb_media.open(),void 0):(kpb_media=wp.media.frames.kpb_media=wp.media({title:KPB.i18n.media_center,button:{text:KPB.i18n.choose_image},library:{type:"image"},multiple:!1}),kpb_media.on("select",function() {var e;e=kpb_media.state().get("selection").first().toJSON(),kpb_media_button_upload.parents(".kpb-ui-image-outer").find(".kpb-ui-image").val(e.url),kpb_media_button_upload.parents(".kpb-ui-image-outer").find(".kpb-ui-image-preview").attr("src",e.url)}),kpb_media.open(),void 0)}),jQuery(".kpb-ui-image-outer").on("click",".kpb-ui-image-button-reset",function(e){e.preventDefault(),kpb_media_button_reset=jQuery(this),kpb_media_button_reset.attr("data-reset")?(kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image").val(kpb_media_button_reset.attr("data-reset")),kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image-preview").attr("src",kpb_media_button_reset.attr("data-reset"))):(kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image").val(kpb_media_button_reset.attr("")),kpb_media_button_reset.parents(".kpb-ui-image-outer").find(".kpb-ui-image-preview").attr("src",kpb_media_button_reset.attr("data-preview")))})},init_section_tab:function() {var e;e=jQuery(".kpb-tab-title > a"),e.length>0&&e.each(function() {var e;e=jQuery(this),e.click(function(t){var a,i;t.preventDefault(),i=e.parents(".kpb-wrapper-configuration-toggle"),a=e.parent(),a.hasClass("kpb-tab-title-active")||(i.find(".kpb-tab-title-active").removeClass("kpb-tab-title-active"),i.find(".kpb-tab-content").slideUp(500),a.addClass("kpb-tab-title-active"),jQuery(e.attr("href")).slideDown(500))})})},change_customize_tab:function(e,t){var a,i;e.preventDefault(),i=t.parents(".kpb-wrapper-configuration-toggle"),a=t.parent(),a.hasClass("kpb-tab-title-active")||(i.find(".kpb-tab-title-active").removeClass("kpb-tab-title-active"),i.find(".kpb-tab-content").slideUp(500),a.addClass("kpb-tab-title-active"),jQuery(t.attr("href")).slideDown(500))}}; -
kopa-page-builder/trunk/js/waypoints-sticky.js
r1209395 r1428045 15 15 return factory(root.jQuery); 16 16 } 17 })(window, function( $) {17 })(window, function( $) { 18 18 var defaults, wrap; 19 19 … … 23 23 direction: 'down right' 24 24 }; 25 wrap = function( $elements, options) {25 wrap = function( $elements, options) { 26 26 var $parent; 27 27 28 28 $elements.wrap(options.wrapper); 29 29 $parent = $elements.parent(); 30 return $parent.data( 'isWaypointStickyWrapper', true);30 return $parent.data( 'isWaypointStickyWrapper', true); 31 31 }; 32 $.waypoints( 'extendFn', 'sticky', function(opt) {32 $.waypoints( 'extendFn', 'sticky', function(opt) { 33 33 var $wrap, options, originalHandler; 34 34 … … 39 39 var $sticky, shouldBeStuck; 40 40 41 $sticky = $(this).children( ':first');41 $sticky = $(this).children( ':first' ); 42 42 shouldBeStuck = options.direction.indexOf(direction) !== -1; 43 43 $sticky.toggleClass(options.stuckClass, shouldBeStuck); 44 $wrap.height(shouldBeStuck ? $sticky.outerHeight() : '' );44 $wrap.height(shouldBeStuck ? $sticky.outerHeight() : '' ); 45 45 if (originalHandler != null) { 46 46 return originalHandler.call(this, direction); … … 48 48 }; 49 49 $wrap.waypoint(options); 50 return this.data( 'stuckClass', options.stuckClass);50 return this.data( 'stuckClass', options.stuckClass); 51 51 }); 52 return $.waypoints( 'extendFn', 'unsticky', function() {52 return $.waypoints( 'extendFn', 'unsticky', function() { 53 53 var $parent; 54 54 55 55 $parent = this.parent(); 56 if (!$parent.data( 'isWaypointStickyWrapper')) {56 if (!$parent.data( 'isWaypointStickyWrapper')) { 57 57 return this; 58 58 } 59 $parent.waypoint( 'destroy');59 $parent.waypoint( 'destroy' ); 60 60 this.unwrap(); 61 return this.removeClass(this.data( 'stuckClass'));61 return this.removeClass(this.data( 'stuckClass' ) ); 62 62 }); 63 63 }); -
kopa-page-builder/trunk/js/waypoints-sticky.min.js
r1209395 r1428045 1 (function() {!function(t,n){return"function"==typeof define&&define.amd?define(["jquery","waypoints"],n):n(t.jQuery)}(window,function(t){var n,i;return n={wrapper:'<div class="sticky-wrapper" />',stuckClass:"stuck",direction:"down right"},i=function(t,n){var i;return t.wrap(n.wrapper),i=t.parent(),i.data("isWaypointStickyWrapper",!0)},t.waypoints("extendFn","sticky",function(a){var r,s,e;return s=t.extend({},t.fn.waypoint.defaults,n,a),r=i(this,s),e=s.handler,s.handler=function(n){var i,a;return i=t(this).children(":first"),a=-1!==s.direction.indexOf(n),i.toggleClass(s.stuckClass,a),r.height(a?i.outerHeight():""),null!=e?e.call(this,n):void 0},r.waypoint(s),this.data("stuckClass",s.stuckClass)}),t.waypoints("extendFn","unsticky",function(){var t;return t=this.parent(),t.data("isWaypointStickyWrapper")?(t.waypoint("destroy"),this.unwrap(),this.removeClass(this.data("stuckClass"))):this})})}).call(this);1 (function() {!function(t,n){return"function"==typeof define&&define.amd?define(["jquery","waypoints"],n):n(t.jQuery)}(window,function(t){var n,i;return n={wrapper:'<div class="sticky-wrapper" />',stuckClass:"stuck",direction:"down right"},i=function(t,n){var i;return t.wrap(n.wrapper),i=t.parent(),i.data("isWaypointStickyWrapper",!0)},t.waypoints("extendFn","sticky",function(a){var r,s,e;return s=t.extend({},t.fn.waypoint.defaults,n,a),r=i(this,s),e=s.handler,s.handler=function(n){var i,a;return i=t(this).children(":first"),a=-1!==s.direction.indexOf(n),i.toggleClass(s.stuckClass,a),r.height(a?i.outerHeight():""),null!=e?e.call(this,n):void 0},r.waypoint(s),this.data("stuckClass",s.stuckClass)}),t.waypoints("extendFn","unsticky",function() {var t;return t=this.parent(),t.data("isWaypointStickyWrapper")?(t.waypoint("destroy"),this.unwrap(),this.removeClass(this.data("stuckClass"))):this})})}).call(this); -
kopa-page-builder/trunk/js/waypoints.js
r1209395 r1428045 14 14 (function(root, factory) { 15 15 if (typeof define === 'function' && define.amd) { 16 return define( 'waypoints', ['jquery'], function($) {17 return factory( $, root);16 return define( 'waypoints', ['jquery'], function( $) { 17 return factory( $, root); 18 18 }); 19 19 } else { 20 20 return factory(root.jQuery, root); 21 21 } 22 })(window, function( $, window) {22 })(window, function( $, window) { 23 23 var $w, Context, Waypoint, allWaypoints, contextCounter, contextKey, contexts, isTouch, jQMethods, methods, resizeEvent, scrollEvent, waypointCounter, waypointKey, wp, wps; 24 24 … … 39 39 wps = 'waypoints'; 40 40 Context = (function() { 41 function Context( $element) {41 function Context( $element) { 42 42 var _this = this; 43 43 … … 75 75 _this.didResize = true; 76 76 resizeHandler = function() { 77 $[wps]( 'refresh');77 $[wps]( 'refresh' ); 78 78 return _this.didResize = false; 79 79 }; … … 102 102 }; 103 103 if (isTouch && (!axes.vertical.oldScroll || !axes.vertical.newScroll)) { 104 $[wps]( 'refresh');104 $[wps]( 'refresh' ); 105 105 } 106 106 $.each(axes, function(aKey, axis) { … … 157 157 contextOffset: isWin ? 0 : cOffset.top, 158 158 contextScroll: isWin ? 0 : this.oldScroll.y, 159 contextDimension: isWin ? $[wps]( 'viewportHeight') : this.$element.height(),159 contextDimension: isWin ? $[wps]( 'viewportHeight') : this.$element.height(), 160 160 oldScroll: this.oldScroll.y, 161 161 forward: 'down', … … 171 171 oldOffset = waypoint.offset; 172 172 elementOffset = $.isWindow(waypoint.element) ? 0 : waypoint.$element.offset()[axis.offsetProp]; 173 if ( $.isFunction(adjustment)) {173 if ( $.isFunction(adjustment)) { 174 174 adjustment = adjustment.apply(waypoint.element); 175 175 } else if (typeof adjustment === 'string') { 176 176 adjustment = parseFloat(adjustment); 177 if (waypoint.options.offset.indexOf( '%') > -1) {177 if (waypoint.options.offset.indexOf( '%') > -1) { 178 178 adjustment = Math.ceil(axis.contextDimension * adjustment / 100); 179 179 } … … 195 195 196 196 Context.prototype.checkEmpty = function() { 197 if ( $.isEmptyObject(this.waypoints.horizontal) && $.isEmptyObject(this.waypoints.vertical)) {198 this.$element.unbind([resizeEvent, scrollEvent].join( ' '));197 if ( $.isEmptyObject(this.waypoints.horizontal) && $.isEmptyObject(this.waypoints.vertical)) { 198 this.$element.unbind([resizeEvent, scrollEvent].join( ' ' ) ); 199 199 return delete contexts[this.id]; 200 200 } … … 205 205 })(); 206 206 Waypoint = (function() { 207 function Waypoint( $element, context, options) {207 function Waypoint( $element, context, options) { 208 208 var idList, _ref; 209 209 … … 212 212 var contextHeight; 213 213 214 contextHeight = $[wps]( 'viewportHeight');214 contextHeight = $[wps]( 'viewportHeight' ); 215 215 if (!$.isWindow(context.element)) { 216 216 contextHeight = context.$element.height(); … … 299 299 context = new Context(contextElement); 300 300 } 301 return new Waypoint( $this, context, options);302 }); 303 $[wps]( 'refresh');301 return new Waypoint( $this, context, options); 302 }); 303 $[wps]( 'refresh' ); 304 304 return this; 305 305 }, 306 306 disable: function() { 307 return methods._invoke.call(this, 'disable' );307 return methods._invoke.call(this, 'disable' ); 308 308 }, 309 309 enable: function() { 310 return methods._invoke.call(this, 'enable' );310 return methods._invoke.call(this, 'enable' ); 311 311 }, 312 312 destroy: function() { 313 return methods._invoke.call(this, 'destroy' );313 return methods._invoke.call(this, 'destroy' ); 314 314 }, 315 315 prev: function(axis, selector) { … … 365 365 if (methods[method]) { 366 366 return methods[method].apply(this, args); 367 } else if ( $.isFunction(method)) {367 } else if ( $.isFunction(method)) { 368 368 return methods.init.apply(this, arguments); 369 } else if ( $.isPlainObject(method)) {369 } else if ( $.isPlainObject(method)) { 370 370 return methods.init.apply(this, [null, method]); 371 371 } else if (!method) { … … 455 455 }, 456 456 enable: function() { 457 return jQMethods._invoke( 'enable');457 return jQMethods._invoke( 'enable' ); 458 458 }, 459 459 disable: function() { 460 return jQMethods._invoke( 'disable');460 return jQMethods._invoke( 'disable' ); 461 461 }, 462 462 destroy: function() { 463 return jQMethods._invoke( 'destroy');463 return jQMethods._invoke( 'destroy' ); 464 464 }, 465 465 extendFn: function(methodName, f) { … … 510 510 scrollThrottle: 30 511 511 }; 512 return $w.on( 'load.waypoints', function() {513 return $[wps]( 'refresh');512 return $w.on( 'load.waypoints', function() { 513 return $[wps]( 'refresh' ); 514 514 }); 515 515 }); -
kopa-page-builder/trunk/js/waypoints.min.js
r1209395 r1428045 1 (function() {var t=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},e=[].slice;!function(t,e){return"function"==typeof define&&define.amd?define("waypoints",["jquery"],function(n){return e(n,t)}):e(t.jQuery,t)}(window,function(n,r){var o,i,l,s,c,u,a,f,h,d,p,v,y,w,g,m;return o=n(r),f=t.call(r,"ontouchstart")>=0,s={horizontal:{},vertical:{}},c=1,a={},u="waypoints-context-id",p="resize.waypoints",v="scroll.waypoints",y=1,w="waypoints-waypoint-ids",g="waypoint",m="waypoints",i=function(){function t(t){var e=this;this.$element=t,this.element=t[0],this.didResize=!1,this.didScroll=!1,this.id="context"+c++,this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()},this.waypoints={horizontal:{},vertical:{}},this.element[u]=this.id,a[this.id]=this,t.bind(v,function(){var t;return e.didScroll||f?void 0:(e.didScroll=!0,t=function(){return e.doScroll(),e.didScroll=!1},r.setTimeout(t,n[m].settings.scrollThrottle))}),t.bind(p,function(){var t;return e.didResize?void 0:(e.didResize=!0,t=function(){return n[m]("refresh"),e.didResize=!1},r.setTimeout(t,n[m].settings.resizeThrottle))})}return t.prototype.doScroll=function(){var t,e=this;return t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}},!f||t.vertical.oldScroll&&t.vertical.newScroll||n[m]("refresh"),n.each(t,function(t,r){var o,i,l;return l=[],i=r.newScroll>r.oldScroll,o=i?r.forward:r.backward,n.each(e.waypoints[t],function(t,e){var n,o;return r.oldScroll<(n=e.offset)&&n<=r.newScroll?l.push(e):r.newScroll<(o=e.offset)&&o<=r.oldScroll?l.push(e):void 0}),l.sort(function(t,e){return t.offset-e.offset}),i||l.reverse(),n.each(l,function(t,e){return e.options.continuous||t===l.length-1?e.trigger([o]):void 0})}),this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}},t.prototype.refresh=function(){var t,e,r,o=this;return r=n.isWindow(this.element),e=this.$element.offset(),this.doScroll(),t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}},n.each(t,function(t,e){return n.each(o.waypoints[t],function(t,r){var o,i,l,s,c;return o=r.options.offset,l=r.offset,i=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp],n.isFunction(o)?o=o.apply(r.element):"string"==typeof o&&(o=parseFloat(o),r.options.offset.indexOf("%")>-1&&(o=Math.ceil(e.contextDimension*o/100))),r.offset=i-e.contextOffset+e.contextScroll-o,r.options.onlyOnScroll&&null!=l||!r.enabled?void 0:null!==l&&l<(s=e.oldScroll)&&s<=r.offset?r.trigger([e.backward]):null!==l&&l>(c=e.oldScroll)&&c>=r.offset?r.trigger([e.forward]):null===l&&e.oldScroll>=r.offset?r.trigger([e.forward]):void 0})})},t.prototype.checkEmpty=function(){return n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)?(this.$element.unbind([p,v].join(" ")),delete a[this.id]):void 0},t}(),l=function(){function t(t,e,r){var o,i;"bottom-in-view"===r.offset&&(r.offset=function(){var t;return t=n[m]("viewportHeight"),n.isWindow(e.element)||(t=e.$element.height()),t-n(this).outerHeight()}),this.$element=t,this.element=t[0],this.axis=r.horizontal?"horizontal":"vertical",this.callback=r.handler,this.context=e,this.enabled=r.enabled,this.id="waypoints"+y++,this.offset=null,this.options=r,e.waypoints[this.axis][this.id]=this,s[this.axis][this.id]=this,o=null!=(i=this.element[w])?i:[],o.push(this.id),this.element[w]=o}return t.prototype.trigger=function(t){return this.enabled?(null!=this.callback&&this.callback.apply(this.element,t),this.options.triggerOnce?this.destroy():void 0):void 0},t.prototype.disable=function(){return this.enabled=!1},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0},t.prototype.destroy=function(){return delete s[this.axis][this.id],delete this.context.waypoints[this.axis][this.id],this.context.checkEmpty()},t.getWaypointsByElement=function(t){var e,r;return(r=t[w])?(e=n.extend({},s.horizontal,s.vertical),n.map(r,function(t){return e[t]})):[]},t}(),d={init:function(t,e){var r;return e=n.extend({},n.fn[g].defaults,e),null==(r=e.handler)&&(e.handler=t),this.each(function(){var t,r,o,s;return t=n(this),o=null!=(s=e.context)?s:n.fn[g].defaults.context,n.isWindow(o)||(o=t.closest(o)),o=n(o),r=a[o[0][u]],r||(r=new i(o)),new l(t,r,e)}),n[m]("refresh"),this},disable:function(){return d._invoke.call(this,"disable")},enable:function(){return d._invoke.call(this,"enable")},destroy:function(){return d._invoke.call(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){return e>0?t.push(n[e-1]):void 0})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){return e<n.length-1?t.push(n[e+1]):void 0})},_traverse:function(t,e,o){var i,l;return null==t&&(t="vertical"),null==e&&(e=r),l=h.aggregate(e),i=[],this.each(function(){var e;return e=n.inArray(this,l[t]),o(i,e,l[t])}),this.pushStack(i)},_invoke:function(t){return this.each(function(){var e;return e=l.getWaypointsByElement(this),n.each(e,function(e,n){return n[t](),!0})}),this}},n.fn[g]=function(){var t,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],d[r]?d[r].apply(this,t):n.isFunction(r)?d.init.apply(this,arguments):n.isPlainObject(r)?d.init.apply(this,[null,r]):n.error(r?"The "+r+" method does not exist in jQuery Waypoints.":"jQuery Waypoints needs a callback function or handler option.")},n.fn[g].defaults={context:r,continuous:!0,enabled:!0,horizontal:!1,offset:0,triggerOnce:!1},h={refresh:function(){return n.each(a,function(t,e){return e.refresh()})},viewportHeight:function(){var t;return null!=(t=r.innerHeight)?t:o.height()},aggregate:function(t){var e,r,o;return e=s,t&&(e=null!=(o=a[n(t)[0][u]])?o.waypoints:void 0),e?(r={horizontal:[],vertical:[]},n.each(r,function(t,o){return n.each(e[t],function(t,e){return o.push(e)}),o.sort(function(t,e){return t.offset-e.offset}),r[t]=n.map(o,function(t){return t.element}),r[t]=n.unique(r[t])}),r):[]},above:function(t){return null==t&&(t=r),h._filter(t,"vertical",function(t,e){return e.offset<=t.oldScroll.y})},below:function(t){return null==t&&(t=r),h._filter(t,"vertical",function(t,e){return e.offset>t.oldScroll.y})},left:function(t){return null==t&&(t=r),h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){return null==t&&(t=r),h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;return e=n.extend({},s.vertical,s.horizontal),n.each(e,function(e,n){return n[t](),!0})},_filter:function(t,e,r){var o,i;return(o=a[n(t)[0][u]])?(i=[],n.each(o.waypoints[e],function(t,e){return r(o,e)?i.push(e):void 0}),i.sort(function(t,e){return t.offset-e.offset}),n.map(i,function(t){return t.element})):[]}},n[m]=function(){var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],h[n]?h[n].apply(null,t):h.aggregate.call(null,n)},n[m].settings={resizeThrottle:100,scrollThrottle:30},o.on("load.waypoints",function(){return n[m]("refresh")})})}).call(this);1 (function() {var t=[].indexOf||function(t){for(var e=0,n=this.length;n>e;e++)if(e in this&&this[e]===t)return e;return-1},e=[].slice;!function(t,e){return"function"==typeof define&&define.amd?define("waypoints",["jquery"],function(n){return e(n,t)}):e(t.jQuery,t)}(window,function(n,r){var o,i,l,s,c,u,a,f,h,d,p,v,y,w,g,m;return o=n(r),f=t.call(r,"ontouchstart")>=0,s={horizontal:{},vertical:{}},c=1,a={},u="waypoints-context-id",p="resize.waypoints",v="scroll.waypoints",y=1,w="waypoints-waypoint-ids",g="waypoint",m="waypoints",i=function() {function t(t){var e=this;this.$element=t,this.element=t[0],this.didResize=!1,this.didScroll=!1,this.id="context"+c++,this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()},this.waypoints={horizontal:{},vertical:{}},this.element[u]=this.id,a[this.id]=this,t.bind(v,function() {var t;return e.didScroll||f?void 0:(e.didScroll=!0,t=function() {return e.doScroll(),e.didScroll=!1},r.setTimeout(t,n[m].settings.scrollThrottle))}),t.bind(p,function() {var t;return e.didResize?void 0:(e.didResize=!0,t=function() {return n[m]("refresh"),e.didResize=!1},r.setTimeout(t,n[m].settings.resizeThrottle))})}return t.prototype.doScroll=function() {var t,e=this;return t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}},!f||t.vertical.oldScroll&&t.vertical.newScroll||n[m]("refresh"),n.each(t,function(t,r){var o,i,l;return l=[],i=r.newScroll>r.oldScroll,o=i?r.forward:r.backward,n.each(e.waypoints[t],function(t,e){var n,o;return r.oldScroll<(n=e.offset)&&n<=r.newScroll?l.push(e):r.newScroll<(o=e.offset)&&o<=r.oldScroll?l.push(e):void 0}),l.sort(function(t,e){return t.offset-e.offset}),i||l.reverse(),n.each(l,function(t,e){return e.options.continuous||t===l.length-1?e.trigger([o]):void 0})}),this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}},t.prototype.refresh=function() {var t,e,r,o=this;return r=n.isWindow(this.element),e=this.$element.offset(),this.doScroll(),t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}},n.each(t,function(t,e){return n.each(o.waypoints[t],function(t,r){var o,i,l,s,c;return o=r.options.offset,l=r.offset,i=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp],n.isFunction(o)?o=o.apply(r.element):"string"==typeof o&&(o=parseFloat(o),r.options.offset.indexOf("%")>-1&&(o=Math.ceil(e.contextDimension*o/100))),r.offset=i-e.contextOffset+e.contextScroll-o,r.options.onlyOnScroll&&null!=l||!r.enabled?void 0:null!==l&&l<(s=e.oldScroll)&&s<=r.offset?r.trigger([e.backward]):null!==l&&l>(c=e.oldScroll)&&c>=r.offset?r.trigger([e.forward]):null===l&&e.oldScroll>=r.offset?r.trigger([e.forward]):void 0})})},t.prototype.checkEmpty=function() {return n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)?(this.$element.unbind([p,v].join(" ")),delete a[this.id]):void 0},t}(),l=function() {function t(t,e,r){var o,i;"bottom-in-view"===r.offset&&(r.offset=function() {var t;return t=n[m]("viewportHeight"),n.isWindow(e.element)||(t=e.$element.height()),t-n(this).outerHeight()}),this.$element=t,this.element=t[0],this.axis=r.horizontal?"horizontal":"vertical",this.callback=r.handler,this.context=e,this.enabled=r.enabled,this.id="waypoints"+y++,this.offset=null,this.options=r,e.waypoints[this.axis][this.id]=this,s[this.axis][this.id]=this,o=null!=(i=this.element[w])?i:[],o.push(this.id),this.element[w]=o}return t.prototype.trigger=function(t){return this.enabled?(null!=this.callback&&this.callback.apply(this.element,t),this.options.triggerOnce?this.destroy():void 0):void 0},t.prototype.disable=function() {return this.enabled=!1},t.prototype.enable=function() {return this.context.refresh(),this.enabled=!0},t.prototype.destroy=function() {return delete s[this.axis][this.id],delete this.context.waypoints[this.axis][this.id],this.context.checkEmpty()},t.getWaypointsByElement=function(t){var e,r;return(r=t[w])?(e=n.extend({},s.horizontal,s.vertical),n.map(r,function(t){return e[t]})):[]},t}(),d={init:function(t,e){var r;return e=n.extend({},n.fn[g].defaults,e),null==(r=e.handler)&&(e.handler=t),this.each(function() {var t,r,o,s;return t=n(this),o=null!=(s=e.context)?s:n.fn[g].defaults.context,n.isWindow(o)||(o=t.closest(o)),o=n(o),r=a[o[0][u]],r||(r=new i(o)),new l(t,r,e)}),n[m]("refresh"),this},disable:function() {return d._invoke.call(this,"disable")},enable:function() {return d._invoke.call(this,"enable")},destroy:function() {return d._invoke.call(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){return e>0?t.push(n[e-1]):void 0})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){return e<n.length-1?t.push(n[e+1]):void 0})},_traverse:function(t,e,o){var i,l;return null==t&&(t="vertical"),null==e&&(e=r),l=h.aggregate(e),i=[],this.each(function() {var e;return e=n.inArray(this,l[t]),o(i,e,l[t])}),this.pushStack(i)},_invoke:function(t){return this.each(function() {var e;return e=l.getWaypointsByElement(this),n.each(e,function(e,n){return n[t](),!0})}),this}},n.fn[g]=function() {var t,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],d[r]?d[r].apply(this,t):n.isFunction(r)?d.init.apply(this,arguments):n.isPlainObject(r)?d.init.apply(this,[null,r]):n.error(r?"The "+r+" method does not exist in jQuery Waypoints.":"jQuery Waypoints needs a callback function or handler option.")},n.fn[g].defaults={context:r,continuous:!0,enabled:!0,horizontal:!1,offset:0,triggerOnce:!1},h={refresh:function() {return n.each(a,function(t,e){return e.refresh()})},viewportHeight:function() {var t;return null!=(t=r.innerHeight)?t:o.height()},aggregate:function(t){var e,r,o;return e=s,t&&(e=null!=(o=a[n(t)[0][u]])?o.waypoints:void 0),e?(r={horizontal:[],vertical:[]},n.each(r,function(t,o){return n.each(e[t],function(t,e){return o.push(e)}),o.sort(function(t,e){return t.offset-e.offset}),r[t]=n.map(o,function(t){return t.element}),r[t]=n.unique(r[t])}),r):[]},above:function(t){return null==t&&(t=r),h._filter(t,"vertical",function(t,e){return e.offset<=t.oldScroll.y})},below:function(t){return null==t&&(t=r),h._filter(t,"vertical",function(t,e){return e.offset>t.oldScroll.y})},left:function(t){return null==t&&(t=r),h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){return null==t&&(t=r),h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function() {return h._invoke("enable")},disable:function() {return h._invoke("disable")},destroy:function() {return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;return e=n.extend({},s.vertical,s.horizontal),n.each(e,function(e,n){return n[t](),!0})},_filter:function(t,e,r){var o,i;return(o=a[n(t)[0][u]])?(i=[],n.each(o.waypoints[e],function(t,e){return r(o,e)?i.push(e):void 0}),i.sort(function(t,e){return t.offset-e.offset}),n.map(i,function(t){return t.element})):[]}},n[m]=function() {var t,n;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],h[n]?h[n].apply(null,t):h.aggregate.call(null,n)},n[m].settings={resizeThrottle:100,scrollThrottle:30},o.on("load.waypoints",function() {return n[m]("refresh")})})}).call(this); -
kopa-page-builder/trunk/kopa-page-builder.php
r1323889 r1428045 3 3 Plugin Name: Kopa Page Builder 4 4 Description: The visual page builder 5 Version: 1. 25 Version: 1.3 6 6 Author: Kopa Theme 7 7 Author URI: http://kopatheme.com/ … … 13 13 14 14 Requires at least: 4.1 15 Tested up to: 4. 4.115 Tested up to: 4.5.2 16 16 Text Domain: kopa-page-builder 17 17 Domain Path: /languages/ 18 18 */ 19 19 20 define( 'KPB_IS_DEV', false);21 define( 'KPB_DIR', plugin_dir_url(__FILE__));22 define( 'KPB_PATH', plugin_dir_path(__FILE__));23 24 add_action( 'plugins_loaded', array('Kopa_Page_Builder', 'plugins_loaded'));25 add_action( 'after_setup_theme', array( 'Kopa_Page_Builder', 'after_setup_theme'), 20 );20 define( 'KPB_IS_DEV', true ); 21 define( 'KPB_DIR', plugin_dir_url( __FILE__ ) ); 22 define( 'KPB_PATH', plugin_dir_path( __FILE__ ) ); 23 24 add_action( 'plugins_loaded', array( 'Kopa_Page_Builder', 'plugins_loaded' ) ); 25 add_action( 'after_setup_theme', array( 'Kopa_Page_Builder', 'after_setup_theme' ), 20 ); 26 26 27 27 class Kopa_Page_Builder { 28 28 29 function __construct() {30 add_action( 'add_meta_boxes', array($this, 'register_meta_boxes'));31 add_action( 'admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'), 20);29 function __construct() { 30 add_action( 'add_meta_boxes', array( $this, 'register_meta_boxes' ) ); 31 add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 20); 32 32 33 33 #LIGHTBOX 34 add_action( 'admin_footer', array($this, 'print_ajax_security'));34 add_action( 'admin_footer', array( $this, 'print_ajax_security' ) ); 35 35 36 36 #AJAX 37 add_action( 'wp_ajax_kpb_get_widget_form', array($this, 'get_widget_form'));38 add_action( 'wp_ajax_kpb_save_widget', array($this, 'save_widget'));39 add_action( 'wp_ajax_kpb_save_grid', array($this, 'save_grid'));40 add_action( 'wp_ajax_kpb_delete_widget', array($this, 'delete_widget'));41 add_action( 'wp_ajax_kpb_save_customize', array($this, 'save_customize'));42 add_action( 'wp_ajax_kpb_save_layout_customize', array($this, 'save_layout_customize'));43 add_action( 'wp_ajax_kpb_load_lightbox_html', array($this, 'load_lightbox_html'));37 add_action( 'wp_ajax_kpb_get_widget_form', array( $this, 'get_widget_form' ) ); 38 add_action( 'wp_ajax_kpb_save_widget', array( $this, 'save_widget' ) ); 39 add_action( 'wp_ajax_kpb_save_grid', array( $this, 'save_grid' ) ); 40 add_action( 'wp_ajax_kpb_delete_widget', array( $this, 'delete_widget' ) ); 41 add_action( 'wp_ajax_kpb_save_customize', array( $this, 'save_customize' ) ); 42 add_action( 'wp_ajax_kpb_save_layout_customize', array( $this, 'save_layout_customize' ) ); 43 add_action( 'wp_ajax_kpb_load_lightbox_html', array( $this, 'load_lightbox_html' ) ); 44 44 45 45 #SHORTCODE 46 add_shortcode( 'kpb_home_url', array($this, 'shortcode_home_url'));46 add_shortcode( 'kpb_home_url', array( $this, 'shortcode_home_url' ) ); 47 47 48 48 #CONFIG 49 add_filter( 'kopa_theme_options_settings', array( $this, 'configuration'), 20, 1);50 } 51 52 public static function after_setup_theme() {53 if (!class_exists( 'Kopa_Framework'))49 add_filter( 'kopa_theme_options_settings', array( $this, 'configuration' ), 20, 1); 50 } 51 52 public static function after_setup_theme() { 53 if (!class_exists( 'Kopa_Framework')) 54 54 return; 55 55 else … … 57 57 } 58 58 59 public function configuration( $options){59 public function configuration( $options){ 60 60 $options[] = array( 61 'title' => __('Page builder', 'kopa-page-builder'),61 'title' => esc_html__( 'Page builder', 'kopa-page-builder' ), 62 62 'type' => 'title', 63 63 'id' => 'page-builder' 64 64 ); 65 66 67 68 69 70 'label' => __( 'Use sticky toolbar ?', 'kopa-page-builder'),71 65 $options[] = array( 66 'title' => NULL, 67 'type' => 'checkbox', 68 'id' => 'is-enable-page-builder-use-sticky-toolbar', 69 'default' => 1, 70 'label' => esc_html__( 'Use sticky toolbar ?', 'kopa-page-builder' ), 71 ); 72 72 73 73 return $options; 74 74 } 75 75 76 public static function is_page() {76 public static function is_page() { 77 77 global $pagenow, $post; 78 78 $is_page = false; 79 79 80 if( in_array( $pagenow, array( 'post.php', 'post-new.php')) ){81 if( $post->post_type == 'page'){80 if( in_array( $pagenow, array( 'post.php', 'post-new.php')) ){ 81 if( $post->post_type == 'page'){ 82 82 $is_page = true; 83 83 } … … 87 87 } 88 88 89 public static function get_meta_key_current_layout(){ 90 return apply_filters('kopa_page_builder_get_meta_key_current_layout','kopa_page_builder_current_layout'); 91 } 92 93 public static function get_meta_key_layout_customize(){ 94 return apply_filters('kopa_page_builder_get_meta_key_layout_customize','kopa_page_builder_layout_customize'); 95 } 96 97 public static function get_meta_key_grid(){ 98 return apply_filters('kopa_page_builder_get_meta_key_grid','kopa_page_builder_data'); 99 } 100 101 public static function get_meta_key_wrapper(){ 102 return apply_filters('kopa_page_builder_get_meta_key_wrapper','kopa_page_builder_wrapper'); 103 } 104 105 public static function get_meta_key_widget_customize(){ 106 return apply_filters('kopa_page_builder_get_meta_key_widget_customize','kopa_page_builder_widget_customize'); 107 } 108 109 public static function get_current_layout($post_id){ 110 return get_post_meta($post_id, self::get_meta_key_current_layout(), true); 89 public static function get_meta_key_current_layout() { 90 return apply_filters( 'kopa_page_builder_get_meta_key_current_layout','kopa_page_builder_current_layout' ); 91 } 92 93 public static function get_meta_key_layout_customize() { 94 return apply_filters( 'kopa_page_builder_get_meta_key_layout_customize','kopa_page_builder_layout_customize' ); 95 } 96 97 public static function get_meta_key_grid() { 98 return apply_filters( 'kopa_page_builder_get_meta_key_grid','kopa_page_builder_data' ); 99 } 100 101 public static function get_meta_key_wrapper() { 102 return apply_filters( 'kopa_page_builder_get_meta_key_wrapper','kopa_page_builder_wrapper' ); 103 } 104 105 public static function get_meta_key_widget_customize() { 106 return apply_filters( 'kopa_page_builder_get_meta_key_widget_customize','kopa_page_builder_widget_customize' ); 107 } 108 109 public static function get_registed_layouts() { 110 return apply_filters( 'kopa_page_builder_get_layouts', array() ); 111 } 112 113 public static function get_current_layout( $post_id){ 114 return get_post_meta( $post_id, self::get_meta_key_current_layout(), true); 111 115 } 112 116 113 public static function get_current_layout_data( $post_id, $current_layout = null){114 $current_layout = $current_layout ? $current_layout : self::get_current_layout( $post_id);115 $meta_key = sprintf( '%s-%s', self::get_meta_key_grid(), $current_layout);116 117 return get_post_meta( $post_id, $meta_key, true);118 } 119 120 public static function get_current_wrapper_data( $post_id, $current_layout, $current_section){121 if(empty( $current_layout) || empty($current_section))117 public static function get_current_layout_data( $post_id, $current_layout = null){ 118 $current_layout = $current_layout ? $current_layout : self::get_current_layout( $post_id); 119 $meta_key = sprintf( '%s-%s', self::get_meta_key_grid(), $current_layout); 120 121 return get_post_meta( $post_id, $meta_key, true); 122 } 123 124 public static function get_current_wrapper_data( $post_id, $current_layout, $current_section){ 125 if(empty( $current_layout) || empty( $current_section)) 122 126 return false; 123 127 124 $meta_key = sprintf( '%s-%s-%s', self::get_meta_key_wrapper(), $current_layout, $current_section);125 return get_post_meta( $post_id, $meta_key, true);126 } 127 128 public static function get_layout_customize_data( $post_id, $layout_slug){129 if(empty( $layout_slug))128 $meta_key = sprintf( '%s-%s-%s', self::get_meta_key_wrapper(), $current_layout, $current_section); 129 return get_post_meta( $post_id, $meta_key, true); 130 } 131 132 public static function get_layout_customize_data( $post_id, $layout_slug){ 133 if(empty( $layout_slug)) 130 134 return false; 131 135 132 $meta_key = sprintf( '%s-%s', self::get_meta_key_layout_customize(), $layout_slug);133 return get_post_meta( $post_id, $meta_key, true);134 } 135 136 public function get_control( $param_args){136 $meta_key = sprintf( '%s-%s', self::get_meta_key_layout_customize(), $layout_slug); 137 return get_post_meta( $post_id, $meta_key, true); 138 } 139 140 public function get_control( $param_args){ 137 141 ?> 138 142 <div class="kpb-control kpb-clearfix"> … … 146 150 ?> 147 151 <div class="kpb-col-3"> 148 <?php echo esc_attr( $param_args['title']);?>152 <?php echo esc_attr( $param_args['title']);?> 149 153 </div> 150 154 <?php endif; ?> … … 152 156 <div class="<?php echo esc_attr( $right_col_classes ); ?>"> 153 157 <?php 154 switch ( $param_args['type']) {158 switch ( $param_args['type']) { 155 159 case 'alert': 156 $this->get_field_alert( $param_args);160 $this->get_field_alert( $param_args); 157 161 break; 158 162 case 'color': 159 $this->get_field_color( $param_args);163 $this->get_field_color( $param_args); 160 164 break; 161 165 case 'image': 162 $this->get_field_image( $param_args);166 $this->get_field_image( $param_args); 163 167 break; 164 168 case 'select': 165 $this->get_field_select( $param_args);169 $this->get_field_select( $param_args); 166 170 break; 167 171 case 'text': 168 $this->get_field_text( $param_args);172 $this->get_field_text( $param_args); 169 173 break; 170 174 case 'number': 171 $this->get_field_number( $param_args);175 $this->get_field_number( $param_args); 172 176 break; 173 177 case 'checkbox': 174 $this->get_field_checkbox( $param_args);178 $this->get_field_checkbox( $param_args); 175 179 break; 176 180 case 'radio': 177 $this->get_field_radio( $param_args);181 $this->get_field_radio( $param_args); 178 182 break; 179 183 case 'radio_image': 180 $this->get_field_radio_image( $param_args);184 $this->get_field_radio_image( $param_args); 181 185 break; 182 186 case 'textarea': 183 $this->get_field_textarea( $param_args);187 $this->get_field_textarea( $param_args); 184 188 break; 185 189 case 'icon': 186 $this->get_field_icon( $param_args);190 $this->get_field_icon( $param_args); 187 191 break; 188 192 } 189 if(isset( $param_args['help']) && !empty($param_args['help'])){193 if(isset( $param_args['help']) && !empty( $param_args['help'])){ 190 194 ?> 191 <div class="kpb-ui-help-text"><?php echo stripcslashes( $param_args['help']); ?></div>195 <div class="kpb-ui-help-text"><?php echo stripcslashes( $param_args['help']); ?></div> 192 196 <?php 193 197 } … … 199 203 } 200 204 201 public static function plugins_loaded() {202 load_plugin_textdomain( 'kopa-page-builder', false, dirname(plugin_basename(__FILE__)) . '/languages/');203 } 204 205 public function admin_enqueue_scripts( $hook){205 public static function plugins_loaded() { 206 load_plugin_textdomain( 'kopa-page-builder', false, dirname(plugin_basename(__FILE__)) . '/languages/' ); 207 } 208 209 public function admin_enqueue_scripts( $hook){ 206 210 if (self::is_page()) { 207 211 $prefix = 'kopa_page_builder_'; 208 212 $affix = KPB_IS_DEV ? '' : '.min'; 209 wp_enqueue_style( 'wp-color-picker' );213 wp_enqueue_style( 'wp-color-picker' ); 210 214 wp_enqueue_style( 'jquery-magnific-popup', plugins_url("css/magnific-popup{$affix}.css", __FILE__), NULL, NULL); 211 215 wp_enqueue_style( $prefix . 'style', plugins_url("css/style{$affix}.css", __FILE__), NULL, NULL); … … 215 219 wp_enqueue_script( 'jquery-ui-sortable' ); 216 220 wp_enqueue_script( 'wp-color-picker' ); 217 wp_enqueue_script( 'jquery-magnific-popup', plugins_url("js/jquery.magnific-popup{$affix}.js", __FILE__), array( 'jquery'), NULL, TRUE);218 wp_enqueue_script( 'jquery-waypoints', plugins_url("js/waypoints{$affix}.js", __FILE__), array( 'jquery'), NULL, TRUE);219 wp_enqueue_script( 'jquery-waypoints-sticky', plugins_url("js/waypoints-sticky{$affix}.js", __FILE__), array( 'jquery'), NULL, TRUE);220 wp_enqueue_script( $prefix . 'script', plugins_url("js/script{$affix}.js", __FILE__), array( 'jquery'), NULL, TRUE);221 222 wp_enqueue_script( 'kopa_media_uploader');223 224 wp_localize_script( $prefix . 'script', 'KPB', array(225 'is_sticky_toolbar' => get_theme_mod( 'is-enable-page-builder-use-sticky-toolbar', 1),226 'ajax' => admin_url( 'admin-ajax.php'),221 wp_enqueue_script( 'jquery-magnific-popup', plugins_url("js/jquery.magnific-popup{$affix}.js", __FILE__), array( 'jquery' ), NULL, TRUE); 222 wp_enqueue_script( 'jquery-waypoints', plugins_url("js/waypoints{$affix}.js", __FILE__), array( 'jquery' ), NULL, TRUE); 223 wp_enqueue_script( 'jquery-waypoints-sticky', plugins_url("js/waypoints-sticky{$affix}.js", __FILE__), array( 'jquery' ), NULL, TRUE); 224 wp_enqueue_script( $prefix . 'script', plugins_url("js/script{$affix}.js", __FILE__), array( 'jquery' ), NULL, TRUE); 225 226 wp_enqueue_script( 'kopa_media_uploader' ); 227 228 wp_localize_script( $prefix . 'script', 'KPB', array( 229 'is_sticky_toolbar' => get_theme_mod( 'is-enable-page-builder-use-sticky-toolbar', 1), 230 'ajax' => admin_url( 'admin-ajax.php' ), 227 231 'i18n' => array( 228 'media_center' => __('Media center', 'kopa-page-builder'),229 'choose_image' => __('Choose image', 'kopa-page-builder'),230 'loading' => __('Loading...', 'kopa-page-builder'),231 'save' => __('Save', 'kopa-page-builder'),232 'saving' => __('Saving...', 'kopa-page-builder'),233 'hide_preview' => __('Hide preview', 'kopa-page-builder'),234 'show_preview' => __('Show preview', 'kopa-page-builder'),235 'are_you_sure_to_remove_this_widget' => __('Are you sure to remove this widget ?', 'kopa-page-builder'),232 'media_center' => esc_html__( 'Media center', 'kopa-page-builder' ), 233 'choose_image' => esc_html__( 'Choose image', 'kopa-page-builder' ), 234 'loading' => esc_html__( 'Loading...', 'kopa-page-builder' ), 235 'save' => esc_html__( 'Save', 'kopa-page-builder' ), 236 'saving' => esc_html__( 'Saving...', 'kopa-page-builder' ), 237 'hide_preview' => esc_html__( 'Hide preview', 'kopa-page-builder' ), 238 'show_preview' => esc_html__( 'Show preview', 'kopa-page-builder' ), 239 'are_you_sure_to_remove_this_widget' => esc_html__( 'Are you sure to remove this widget ?', 'kopa-page-builder' ), 236 240 ) 237 241 )); … … 239 243 } 240 244 241 public function register_meta_boxes() {245 public function register_meta_boxes() { 242 246 add_meta_box( 243 247 'kopa_page_builder_meta_boxes', 244 __( 'Page Builder', 'kopa-page-builder' ),245 array( $this, 'get_meta_boxes'),248 __( 'Page Builder', 'kopa-page-builder' ), 249 array( $this, 'get_meta_boxes' ), 246 250 'page' 247 251 ); 248 252 } 249 253 250 public function get_meta_boxes() {254 public function get_meta_boxes() { 251 255 global $post; 252 256 253 257 wp_nonce_field( 'kopa_page_builder_meta_boxes', 'kopa_page_builder_meta_boxes_security' ); 254 258 255 $_layouts = apply_filters( 'kopa_page_builder_get_layouts', array());256 $_areas = apply_filters( 'kopa_page_builder_get_areas', array());257 $_section_fields = apply_filters( 'kopa_page_builder_get_section_fields', array());258 259 260 $current_layout = self::get_current_layout( $post->ID);259 $_layouts = apply_filters( 'kopa_page_builder_get_layouts', array()); 260 $_areas = apply_filters( 'kopa_page_builder_get_areas', array()); 261 $_section_fields = apply_filters( 'kopa_page_builder_get_section_fields', array()); 262 263 264 $current_layout = self::get_current_layout( $post->ID); 261 265 ?> 262 <p id="kpb-metabox-loading-text"><img src="<?php echo KPB_DIR . '/images/loading.gif'; ?>" width="16px" height="16px"> <?php _e('Loading..', 'kopa-page-builder'); ?></p>266 <p id="kpb-metabox-loading-text"><img src="<?php echo KPB_DIR . '/images/loading.gif'; ?>" width="16px" height="16px"> <?php esc_html_e( 'Loading..', 'kopa-page-builder' ); ?></p> 263 267 <section id="kpb-wrapper" style="display: none;"> 264 268 <header id="kpb-wrapper-header" class="kpb-clearfix"> … … 266 270 <?php 267 271 $_is_first_layout = true; 268 foreach ( $_layouts as $slug => $layout) {269 $_selected = $current_layout ? (( $current_layout == $slug) ? 'selected="selected"' : '') : ($_is_first_layout ? 'selected="selected"' : '');270 printf( '<option value="%s" %s>%s</option>', $slug, $_selected, $layout['title']);272 foreach ( $_layouts as $slug => $layout) { 273 $_selected = $current_layout ? (( $current_layout == $slug) ? 'selected="selected"' : '') : ( $_is_first_layout ? 'selected="selected"' : '' ); 274 printf( '<option value="%s" %s>%s</option>', $slug, $_selected, $layout['title']); 271 275 $_is_first_layout = false; 272 276 } … … 274 278 </select> 275 279 276 <a id="kpb-button-save-layouts" href="#" onclick="Kopa_Page_Builder.save_layout(event, jQuery(this));" class="button button-primary button-large kpb-pull-right" data-status='1'><?php _e('Save', 'kopa-page-builder'); ?></a> 277 278 <a id="kpb-button-hide-preview" href="#" onclick="Kopa_Page_Builder.hide_preview(event, jQuery(this));" class="button button-link button-large kpb-pull-right"><?php _e('Hide preview', 'kopa-page-builder'); ?></a> 279 280 <a id="kpb-button-customize-layout" href="#" onclick="Kopa_Page_Builder.open_customize_layout(event, jQuery(this));" class="button button-link button-large kpb-pull-right"><?php _e('Customize', 'kopa-page-builder'); ?></a> 280 <a id="kpb-button-save-layouts" href="#" onclick="Kopa_Page_Builder.save_layout(event, jQuery(this));" class="button button-primary button-large kpb-pull-right" data-status='1'><?php esc_html_e( 'Save', 'kopa-page-builder' ); ?></a> 281 282 <?php 283 $is_use_preview = (int) apply_filters( 'kpb_is_use_preview', 1 ); 284 if( $is_use_preview ): 285 ?> 286 <a id="kpb-button-hide-preview" href="#" onclick="Kopa_Page_Builder.hide_preview(event, jQuery(this));" class="button button-link button-large kpb-pull-right" data-status='0'><?php esc_html_e( 'Show preview', 'kopa-page-builder' ); ?></a> 287 <?php endif; ?> 288 289 <a id="kpb-button-customize-layout" href="#" onclick="Kopa_Page_Builder.open_customize_layout(event, jQuery(this));" class="button button-link button-large kpb-pull-right"><?php esc_html_e( 'Customize', 'kopa-page-builder' ); ?></a> 281 290 </header> 282 291 … … 284 293 $_is_first_layout = true; 285 294 $_layout_index = 0; 286 foreach ( $_layouts as $layout_slug => $layout):287 $current_layout_data = self::get_current_layout_data( $post->ID, $layout_slug);295 foreach ( $_layouts as $layout_slug => $layout): 296 $current_layout_data = self::get_current_layout_data( $post->ID, $layout_slug); 288 297 289 $_classes = array( 'kpb-layout', 'kpb-row');290 $_classes[] = $current_layout ? (( $current_layout == $layout_slug) ? 'kpb-active' : 'kpb-hidden') : ($_is_first_layout ? 'kpb-active' : 'kpb-hidden');298 $_classes = array( 'kpb-layout', 'kpb-row' ); 299 $_classes[] = $current_layout ? (( $current_layout == $layout_slug) ? 'kpb-active' : 'kpb-hidden') : ( $_is_first_layout ? 'kpb-active' : 'kpb-hidden' ); 291 300 ?> 292 301 293 <div id="<?php echo "kpb-layout-{$layout_slug}"; ?>" class="<?php echo implode( ' ', $_classes); ?>" data-layout="<?php echo $layout_slug; ?>">294 <?php if(isset( $layout['section']) && !empty($layout['section'])): ?>295 <div class="kpb-col-left kpb-col- 8">302 <div id="<?php echo "kpb-layout-{$layout_slug}"; ?>" class="<?php echo implode( ' ', $_classes); ?>" data-layout="<?php echo $layout_slug; ?>"> 303 <?php if(isset( $layout['section']) && !empty( $layout['section'])): ?> 304 <div class="kpb-col-left kpb-col-12"> 296 305 <?php 297 if( $sections = isset( $layout['section']) && !empty($layout['section']) ? $layout['section'] : false):306 if( $sections = isset( $layout['section']) && !empty( $layout['section']) ? $layout['section'] : false): 298 307 299 308 $_is_first_section = true; 300 foreach ( $sections as $section_slug => $section) :301 $_section_classes = ( $_is_first_section) ? 'kpb-section kpb-first' : 'kpb-section';309 foreach ( $sections as $section_slug => $section) : 310 $_section_classes = ( $_is_first_section) ? 'kpb-section kpb-first' : 'kpb-section'; 302 311 ?> 303 312 <aside id="<?php echo "kpb-section-{$section_slug}-for-layout{$layout_slug}"; ?>" data-section="<?php echo $section_slug; ?>" class="<?php echo $_section_classes; ?>"> 304 313 <header class="kpb-section-header kpb-clearfix"> 305 <label class="kpb-pull-left"><?php echo esc_attr( $section['title']); ?></label>314 <label class="kpb-pull-left"><?php echo esc_attr( $section['title']); ?></label> 306 315 307 <?php if(!empty( $_section_fields)): ?>316 <?php if(!empty( $_section_fields)): ?> 308 317 <a href="#" 309 onclick="Kopa_Page_Builder.open_customize(event, jQuery(this), '<?php echo $layout_slug;?>', '<?php echo $section_slug; ?>' );"318 onclick="Kopa_Page_Builder.open_customize(event, jQuery(this), '<?php echo $layout_slug;?>', '<?php echo $section_slug; ?>' );" 310 319 class="kpb-button-customize kpb-pull-right" ></a> 311 320 <?php endif; ?> … … 315 324 <?php 316 325 317 if( $areas = isset( $section['area']) && !empty($section['area']) ? $section['area'] : false):326 if( $areas = isset( $section['area']) && !empty( $section['area']) ? $section['area'] : false): 318 327 319 328 $_section_grid = $section['grid']; 320 329 321 330 322 foreach ( $areas as $area_index => $area):323 if(is_array( $area)):331 foreach ( $areas as $area_index => $area): 332 if(is_array( $area)): 324 333 ?> 325 <div class="<?php printf( 'kpb-col-%d', (int)$_section_grid[$area_index]); ?>">334 <div class="<?php printf( 'kpb-col-%d', (int)$_section_grid[$area_index]); ?>"> 326 335 <?php 327 336 $sub_grids = $area['grid']; 328 337 $sub_areas = $area['area']; 329 338 330 foreach( $sub_areas as $sub_area_index => $sub_area){339 foreach( $sub_areas as $sub_area_index => $sub_area){ 331 340 $sub_area_class = (0 == $sub_area_index) ? 'kpb-row-sub-area-first' : ''; 332 341 ?> 333 342 <div class="kpb-row kpb-clearfix kpb-row-sub-area <?php echo $sub_area_class;?>"> 334 343 <?php 335 foreach( $sub_area as $child_area_area => $child_area):344 foreach( $sub_area as $child_area_area => $child_area): 336 345 $_area_name = $_areas[$child_area]; 337 $_area_classes = array( 'kpb-area');346 $_area_classes = array( 'kpb-area' ); 338 347 ?> 339 <div class="<?php printf( 'kpb-col-%d', (int)$sub_grids[$sub_area_index][$child_area_area]); ?>">340 <div id="<?php echo "kpb-area-{$child_area}-for-section{$section_slug}"; ?>" data-area="<?php echo $child_area; ?>" class="<?php echo implode( ' ', $_area_classes); ?>">348 <div class="<?php printf( 'kpb-col-%d', (int)$sub_grids[$sub_area_index][$child_area_area]); ?>"> 349 <div id="<?php echo "kpb-area-{$child_area}-for-section{$section_slug}"; ?>" data-area="<?php echo $child_area; ?>" class="<?php echo implode( ' ', $_area_classes); ?>"> 341 350 <header class="kpb-area-header kpb-clearfix"> 342 <label><?php echo esc_attr( $_area_name); ?></label>351 <label><?php echo esc_attr( $_area_name); ?></label> 343 352 <br/> 344 353 <a href="#" 345 354 onclick="Kopa_Page_Builder.open_list_widgets(event, jQuery(this));" 346 class="kpb-button-add-widget"><?php _e('Add widget', 'kopa-page-builder'); ?></a>355 class="kpb-button-add-widget"><?php esc_html_e( 'Add widget', 'kopa-page-builder' ); ?></a> 347 356 </header> 348 357 349 358 <div class="kpb-area-placeholder"> 350 359 <?php 351 if( isset( $current_layout_data[$section_slug][$child_area]) &&352 !empty( $current_layout_data[$section_slug][$child_area])):360 if( isset( $current_layout_data[$section_slug][$child_area]) && 361 !empty( $current_layout_data[$section_slug][$child_area])): 353 362 354 363 $widgets = $current_layout_data[$section_slug][$child_area]; 355 364 356 foreach ( $widgets as $widget_id => $widget):357 $widget_data = get_post_meta( $post->ID, $widget_id,true);358 359 $widget_title = isset( $widget_data['widget']['title']) && !empty($widget_data['widget']['title']) ? $widget['name'] . ' : ' . $widget_data['widget']['title'] : $widget['name'];365 foreach ( $widgets as $widget_id => $widget): 366 $widget_data = get_post_meta( $post->ID, $widget_id,true); 367 368 $widget_title = isset( $widget_data['widget']['title']) && !empty( $widget_data['widget']['title']) ? $widget['name'] . ' : ' . $widget_data['widget']['title'] : $widget['name']; 360 369 361 370 ?> 362 <aside id="<?php echo esc_attr( $widget_id); ?>" class="kpb-widget" data-class="<?php echo esc_attr($widget['class_name']); ?>" data-name="<?php echo esc_attr($widget['name']); ?>">371 <aside id="<?php echo esc_attr( $widget_id); ?>" class="kpb-widget" data-class="<?php echo esc_attr( $widget['class_name']); ?>" data-name="<?php echo esc_attr( $widget['name']); ?>"> 363 372 <div class="kpb-widget-inner kpb-clearfix"> 364 <label class=""><?php echo esc_attr( $widget_title); ?></label>373 <label class=""><?php echo esc_attr( $widget_title); ?></label> 365 374 <br/> 366 375 <div class="kpb-widget-action kpb-clearfix"> 367 <a href="#" onclick="Kopa_Page_Builder.edit_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>');" class="kpb-button-edit kpb-pull-left"><?php _e('Edit', 'kopa-page-builder'); ?></a>368 <a href="#" onclick="Kopa_Page_Builder.delete_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>');" class="kpb-button-delete kpb-pull-left"><?php _e('Delete', 'kopa-page-builder'); ?></a>376 <a href="#" onclick="Kopa_Page_Builder.edit_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>' );" class="kpb-button-edit kpb-pull-left"><?php esc_html_e( 'Edit', 'kopa-page-builder' ); ?></a> 377 <a href="#" onclick="Kopa_Page_Builder.delete_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>' );" class="kpb-button-delete kpb-pull-left"><?php esc_html_e( 'Delete', 'kopa-page-builder' ); ?></a> 369 378 </div> 370 379 </div> … … 390 399 else: 391 400 $_area_name = $_areas[$area]; 392 $_area_classes = array( 'kpb-area');401 $_area_classes = array( 'kpb-area' ); 393 402 ?> 394 <div class="<?php printf( 'kpb-col-%d', (int)$_section_grid[$area_index]); ?>">395 <div id="<?php echo "kpb-area-{$area}-for-section{$section_slug}"; ?>" data-area="<?php echo $area; ?>" class="<?php echo implode( ' ', $_area_classes); ?>">403 <div class="<?php printf( 'kpb-col-%d', (int)$_section_grid[$area_index]); ?>"> 404 <div id="<?php echo "kpb-area-{$area}-for-section{$section_slug}"; ?>" data-area="<?php echo $area; ?>" class="<?php echo implode( ' ', $_area_classes); ?>"> 396 405 <header class="kpb-area-header kpb-clearfix"> 397 <label><?php echo esc_attr( $_area_name); ?></label>406 <label><?php echo esc_attr( $_area_name); ?></label> 398 407 <br/> 399 408 <a href="#" 400 409 onclick="Kopa_Page_Builder.open_list_widgets(event, jQuery(this));" 401 class="kpb-button-add-widget"><?php _e('Add widget', 'kopa-page-builder'); ?></a>410 class="kpb-button-add-widget"><?php esc_html_e( 'Add widget', 'kopa-page-builder' ); ?></a> 402 411 </header> 403 412 404 413 <div class="kpb-area-placeholder"> 405 414 <?php 406 if( isset( $current_layout_data[$section_slug][$area]) &&407 !empty( $current_layout_data[$section_slug][$area])):415 if( isset( $current_layout_data[$section_slug][$area]) && 416 !empty( $current_layout_data[$section_slug][$area])): 408 417 409 418 $widgets = $current_layout_data[$section_slug][$area]; 410 419 411 foreach ( $widgets as $widget_id => $widget):412 $widget_data = get_post_meta( $post->ID, $widget_id,true);413 414 $widget_title = isset( $widget_data['widget']['title']) && !empty($widget_data['widget']['title']) ? $widget['name'] . ' : ' . $widget_data['widget']['title'] : $widget['name'];420 foreach ( $widgets as $widget_id => $widget): 421 $widget_data = get_post_meta( $post->ID, $widget_id,true); 422 423 $widget_title = isset( $widget_data['widget']['title']) && !empty( $widget_data['widget']['title']) ? $widget['name'] . ' : ' . $widget_data['widget']['title'] : $widget['name']; 415 424 416 425 ?> 417 <aside id="<?php echo esc_attr( $widget_id); ?>" class="kpb-widget" data-class="<?php echo esc_attr($widget['class_name']); ?>" data-name="<?php echo esc_attr($widget['name']); ?>">426 <aside id="<?php echo esc_attr( $widget_id); ?>" class="kpb-widget" data-class="<?php echo esc_attr( $widget['class_name']); ?>" data-name="<?php echo esc_attr( $widget['name']); ?>"> 418 427 <div class="kpb-widget-inner kpb-clearfix"> 419 <label class=""><?php echo esc_attr( $widget_title); ?></label>428 <label class=""><?php echo esc_attr( $widget_title); ?></label> 420 429 <br/> 421 430 <div class="kpb-widget-action kpb-clearfix"> 422 <a href="#" onclick="Kopa_Page_Builder.edit_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>');" class="kpb-button-edit kpb-pull-left"><?php _e('Edit', 'kopa-page-builder'); ?></a>423 <a href="#" onclick="Kopa_Page_Builder.delete_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>');" class="kpb-button-delete kpb-pull-left"><?php _e('Delete', 'kopa-page-builder'); ?></a>431 <a href="#" onclick="Kopa_Page_Builder.edit_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>' );" class="kpb-button-edit kpb-pull-left"><?php esc_html_e( 'Edit', 'kopa-page-builder' ); ?></a> 432 <a href="#" onclick="Kopa_Page_Builder.delete_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>' );" class="kpb-button-delete kpb-pull-left"><?php esc_html_e( 'Delete', 'kopa-page-builder' ); ?></a> 424 433 </div> 425 434 </div> … … 450 459 <?php endif; ?> 451 460 452 <?php if(isset( $layout['preview']) && !empty($layout['preview'])): ?>453 <div class="kpb-col-right kpb-col-4" >461 <?php if(isset( $layout['preview']) && !empty( $layout['preview'])): ?> 462 <div class="kpb-col-right kpb-col-4" style="display: none;"> 454 463 <span class="kpb-preview-images"><img src="<?php echo $layout['preview']; ?>"></span> 455 464 </div> … … 466 475 } 467 476 468 public function print_ajax_security() {477 public function print_ajax_security() { 469 478 wp_nonce_field("kpb_get_widget_form", "kpb_get_widget_form_security", FALSE); 470 479 wp_nonce_field("kpb_delete_widget", "kpb_delete_widget_security", FALSE); … … 473 482 } 474 483 475 public function get_widget_form() {476 check_ajax_referer( 'kpb_get_widget_form', 'security');477 478 if ( $_POST['class_name']) {484 public function get_widget_form() { 485 check_ajax_referer( 'kpb_get_widget_form', 'security' ); 486 487 if ( $_POST['class_name']) { 479 488 $class_name = $_POST['class_name']; 480 489 $instance = array(); 481 490 $customize_data = array(); 482 491 483 if (isset( $_POST['widget_id'])) {484 $widget_id= $_POST['widget_id'];485 486 $post_id= (int) $_POST['post_id'];487 $data = get_post_meta($post_id, $widget_id, true);488 489 $instance= $data['widget'];490 $customize_data = isset($data['customize']) ? $data['customize'] : array();492 if (isset( $_POST['widget_id'])) { 493 $widget_id = $_POST['widget_id']; 494 495 $post_id = (int) $_POST['post_id']; 496 $data = get_post_meta( $post_id, $widget_id, true); 497 498 $instance = $data['widget']; 499 $customize_data = isset( $data['customize']) ? $data['customize'] : array(); 491 500 } 492 501 493 502 $widget = new $class_name; 494 495 $widget->number= rand(0, 9999);496 497 if(isset( $widget->kpb_is_private)){503 $widget->id_base = rand(0, 9999); 504 $widget->number = rand(0, 9999); 505 506 if(isset( $widget->kpb_is_private)){ 498 507 $widget->kpb_is_private = false; 499 508 } … … 502 511 $customize_key = self::get_meta_key_widget_customize(); 503 512 504 $customize_fields = apply_filters( 'kopa_page_builder_get_customize_fields', array());505 506 if(!empty( $customize_fields)){513 $customize_fields = apply_filters( 'kopa_page_builder_get_customize_fields', array()); 514 515 if(!empty( $customize_fields)){ 507 516 ?> 508 517 <section class="kpb-widget-customize kpb-wrapper-configuration"> … … 511 520 <ul class="kpb-clearfix"> 512 521 <li class="kpb-tab-title kpb-tab-title-first kpb-tab-title-active"> 513 <a href="<?php echo "#kpb-tab-widget-{$widget->id_base}"; ?>" onclick="Kopa_Page_Builder.change_customize_tab(event, jQuery(this));"><?php _e('Widget', 'kopa-page-builder'); ?></a>522 <a href="<?php echo "#kpb-tab-widget-{$widget->id_base}"; ?>" onclick="Kopa_Page_Builder.change_customize_tab(event, jQuery(this));"><?php esc_html_e( 'Widget', 'kopa-page-builder' ); ?></a> 514 523 </li> 515 524 516 525 <?php 517 foreach ( $customize_fields as $tab_slug => $tab):526 foreach ( $customize_fields as $tab_slug => $tab): 518 527 $tab_id = $tab_slug . '-tab-' . $widget->id_base; 519 528 ?> 520 529 <li class="kpb-tab-title"> 521 <a href="<?php echo "#{$tab_id}"; ?>" onclick="Kopa_Page_Builder.change_customize_tab(event, jQuery(this));"><?php echo esc_attr( $tab['title']); ?></a>530 <a href="<?php echo "#{$tab_id}"; ?>" onclick="Kopa_Page_Builder.change_customize_tab(event, jQuery(this));"><?php echo esc_attr( $tab['title']); ?></a> 522 531 </li> 523 532 <?php … … 528 537 529 538 <div id="<?php echo "kpb-tab-widget-{$widget->id_base}"; ?>" class="kpb-tab-content"> 530 <?php $widget->form( $instance); ?>539 <?php $widget->form( $instance); ?> 531 540 </div> 532 541 533 542 <?php 534 foreach ( $customize_fields as $tab_slug => $tab):543 foreach ( $customize_fields as $tab_slug => $tab): 535 544 $tab_id = $tab_slug . '-tab-' . $widget->id_base; 536 545 ?> 537 546 <div id="<?php echo $tab_id; ?>" class="kpb-tab-content" style="display:none;"> 538 547 <?php 539 foreach ( $tab['params'] as $param_key => $param_args):540 541 $param_args['name'] = sprintf( '%s[%s][%s]', $customize_key, $tab_slug, $param_key);542 $param_args['value'] = isset( $customize_data[$tab_slug][$param_key]) ? $customize_data[$tab_slug][$param_key] : (isset($param_args['default']) ? $param_args['default'] : null);548 foreach ( $tab['params'] as $param_key => $param_args): 549 550 $param_args['name'] = sprintf( '%s[%s][%s]', $customize_key, $tab_slug, $param_key); 551 $param_args['value'] = isset( $customize_data[$tab_slug][$param_key]) ? $customize_data[$tab_slug][$param_key] : (isset( $param_args['default']) ? $param_args['default'] : null); 543 552 544 $this->get_control( $param_args);553 $this->get_control( $param_args); 545 554 546 555 endforeach; … … 553 562 <?php 554 563 }else{ 555 $widget->form( $instance);564 $widget->form( $instance); 556 565 } 557 566 } … … 560 569 } 561 570 562 public function load_lightbox_html() {563 check_ajax_referer( 'kpb_load_lightbox_html', 'security');564 565 if(isset( $_POST['post_id'])){571 public function load_lightbox_html() { 572 check_ajax_referer( 'kpb_load_lightbox_html', 'security' ); 573 574 if(isset( $_POST['post_id'])){ 566 575 $post_id = $_POST['post_id']; 567 576 … … 570 579 571 580 <div id="kpb-loading-overlay"> 572 <span><?php _e('Progressing..', 'kopa-page-builder'); ?></span>581 <span><?php esc_html_e( 'Progressing..', 'kopa-page-builder' ); ?></span> 573 582 </div> 574 583 … … 576 585 <section id="kpb-widgets"> 577 586 <header id="kpb-widgets-header" class="kpb-clearfix"> 578 <label class="kpb-pull-left"><?php _e('Avaiable Widgets', 'kopa-page-builder'); ?></label>579 <a href="#" onclick="Kopa_Page_Builder.close_list_widgets(event);" class="button button-link button-delete kpb-pull-right"><?php _e('Close', 'kopa-page-builder'); ?></a>587 <label class="kpb-pull-left"><?php esc_html_e( 'Avaiable Widgets', 'kopa-page-builder' ); ?></label> 588 <a href="#" onclick="Kopa_Page_Builder.close_list_widgets(event);" class="button button-link button-delete kpb-pull-right"><?php esc_html_e( 'Close', 'kopa-page-builder' ); ?></a> 580 589 </header> 581 590 <div class="kpb-widgets-inner"> … … 583 592 $widgets = $wp_widget_factory->widgets; 584 593 585 $widgets = apply_filters( 'kpb_get_widgets_list', $widgets);594 $widgets = apply_filters( 'kpb_get_widgets_list', $widgets); 586 595 587 596 $widgets_inprocess = array(); 588 597 $blocks = array(); 589 598 590 foreach ( $widgets as $class_name => $widget_info){591 if (isset( $widget_info->kpb_group) && !empty($widget_info->kpb_group)){599 foreach ( $widgets as $class_name => $widget_info){ 600 if (isset( $widget_info->kpb_group) && !empty( $widget_info->kpb_group)){ 592 601 $group_slug = $widget_info->kpb_group; 593 602 }else{ 594 if(strpos(strtolower( $widget_info->name), 'bbpress')){603 if(strpos(strtolower( $widget_info->name), 'bbpress')){ 595 604 $group_slug = 'bbpress'; 596 }else if (strpos(strtolower( $widget_info->name), 'commerce')){605 }else if (strpos(strtolower( $widget_info->name), 'commerce')){ 597 606 $group_slug = 'product'; 598 607 }else{ … … 602 611 603 612 604 if(!isset( $blocks[$group_slug])){605 $blocks[$group_slug]['title'] = $this->str_beautify( $group_slug);613 if(!isset( $blocks[$group_slug])){ 614 $blocks[$group_slug]['title'] = $this->str_beautify( $group_slug); 606 615 } 607 616 … … 609 618 } 610 619 611 ksort( $blocks);620 ksort( $blocks); 612 621 613 622 ?> … … 616 625 <nav id="kpb-nav-list-blocks"> 617 626 <ul class="kpb-clearfix"> 618 <?php 627 <?php 628 ob_start(); 619 629 $_is_first_tab = true; 620 foreach( $blocks as $block_slug => $block_info):630 foreach( $blocks as $block_slug => $block_info): 621 631 $classes = $_is_first_tab ? 'kpb-tab-title kpb-tab-title-first kpb-tab-title-active' : 'kpb-tab-title'; 622 632 $tab_id = $this->str_uglify("kpb-list-{$block_slug}-blocks"); 623 633 ?> 624 634 <li class="<?php echo $classes;?>"> 625 <a href="<?php echo "#{$tab_id}"; ?>"><?php echo esc_attr( $block_info['title']); ?></a>635 <a href="<?php echo "#{$tab_id}"; ?>"><?php echo esc_attr( $block_info['title']); ?></a> 626 636 </li> 627 637 <?php 628 638 $_is_first_tab = false; 629 639 endforeach; 640 $nav = ob_get_clean(); 641 $nav = apply_filters( 'kopa_page_buider_get_block_nav_html', $nav, $blocks ); 642 echo wp_kses_post( $nav ); 630 643 ?> 631 644 </ul> … … 636 649 $_is_first_tab = true; 637 650 638 foreach( $blocks as $block_slug => $block_info):651 foreach( $blocks as $block_slug => $block_info): 639 652 $blocks_classes = (0 == $index_block) ? 'kpb-tab-content kpb-list-blocks kpb-list-blocks-first kpb-clearfix' : 'kpb-tab-content kpb-list-blocks kpb-clearfix'; 640 653 $display = $_is_first_tab ? 'block' : 'none'; … … 648 661 $widgets = $block_info['items']; 649 662 650 ksort( $widgets);651 652 foreach ( $widgets as $class_name => $widget_info):653 if (1 == $index_single || ( $index_single % 5 == 0)) {663 ksort( $widgets); 664 665 foreach ( $widgets as $class_name => $widget_info): 666 if (1 == $index_single || ( $index_single % 5 == 0)) { 654 667 if(1 == $index_global){ 655 668 echo '<div class="kpb-row kpb-first">'; … … 663 676 <header class="kpb-clearfix"> 664 677 <label class="kpb-pull-left"><?php echo $widget_info->name; ?></label> 665 <a href="#" onclick="Kopa_Page_Builder.add_widget(event, jQuery(this), '<?php echo $class_name; ?>', '<?php echo $widget_info->name; ?>' );" class="kpb-button-use kpb-pull-right"><?php _e('use', 'kopa-page-builder'); ?></a>678 <a href="#" onclick="Kopa_Page_Builder.add_widget(event, jQuery(this), '<?php echo $class_name; ?>', '<?php echo $widget_info->name; ?>' );" class="kpb-button-use kpb-pull-right"><?php esc_html_e( 'use', 'kopa-page-builder' ); ?></a> 666 679 </header> 667 680 … … 672 685 </aside> 673 686 <?php 674 if (( $index_single % 4 == 0) || ($index_global == count($widgets))) {687 if (( $index_single % 4 == 0) || ( $index_global == count( $widgets))) { 675 688 echo '</div>'; 676 689 $index_single = 1; … … 696 709 <div id="kpb-widget-lightbox" style="display: none;"> 697 710 <section id="kpb-widget"> 698 <form id="kpb-form-widget" name="kpb-form-widget" method="POST" autocomplete="off" onsubmit="Kopa_Page_Builder.save_widget(event, jQuery(this));" action="<?php echo esc_url(wp_nonce_url(admin_url( 'admin-ajax.php?action=kpb_save_widget'), 'kpb_save_widget', 'security')); ?>">711 <form id="kpb-form-widget" name="kpb-form-widget" method="POST" autocomplete="off" onsubmit="Kopa_Page_Builder.save_widget(event, jQuery(this));" action="<?php echo esc_url(wp_nonce_url(admin_url( 'admin-ajax.php?action=kpb_save_widget' ), 'kpb_save_widget', 'security' ) ); ?>"> 699 712 <header id="kpb-widget-header" class="kpb-clearfix"> 700 <label id="kpb-widget-title" class="kpb-pull-left"><?php _e('Widget Name', 'kopa-page-builder'); ?></label>701 <a href="#" onclick="Kopa_Page_Builder.close_widget(event);" class="button button-link button-delete kpb-pull-right"><?php _e('Close', 'kopa-page-builder'); ?></a>713 <label id="kpb-widget-title" class="kpb-pull-left"><?php esc_html_e( 'Widget Name', 'kopa-page-builder' ); ?></label> 714 <a href="#" onclick="Kopa_Page_Builder.close_widget(event);" class="button button-link button-delete kpb-pull-right"><?php esc_html_e( 'Close', 'kopa-page-builder' ); ?></a> 702 715 </header> 703 716 704 717 <div class="kpb-form-inner"> 705 <center class="kpb-loading"><?php _e('Loading...', 'kopa-page-builder'); ?></center>718 <center class="kpb-loading"><?php esc_html_e( 'Loading...', 'kopa-page-builder' ); ?></center> 706 719 </div> 707 720 … … 713 726 714 727 <footer id="kpb-widget-footer" class="kpb-clearfix"> 715 <button type="submit" class="button button-primary kpb-pull-right"><?php _e('Save', 'kopa-page-builder'); ?></button>728 <button type="submit" class="button button-primary kpb-pull-right"><?php esc_html_e( 'Save', 'kopa-page-builder' ); ?></button> 716 729 </footer> 717 730 … … 722 735 723 736 <?php 724 $_layouts = apply_filters( 'kopa_page_builder_get_layouts', array());725 $_areas = apply_filters( 'kopa_page_builder_get_areas', array());726 $_section_fields = apply_filters( 'kopa_page_builder_get_section_fields', array());737 $_layouts = apply_filters( 'kopa_page_builder_get_layouts', array()); 738 $_areas = apply_filters( 'kopa_page_builder_get_areas', array()); 739 $_section_fields = apply_filters( 'kopa_page_builder_get_section_fields', array()); 727 740 $meta_key = self::get_meta_key_wrapper(); 728 741 729 foreach ( $_layouts as $layout_slug => $layout) :730 if( $sections = isset( $layout['section']) && !empty($layout['section']) ? $layout['section'] : false):731 foreach ( $sections as $section_slug => $section):732 $data = self::get_current_wrapper_data( $post_id, $layout_slug, $section_slug);742 foreach ( $_layouts as $layout_slug => $layout) : 743 if( $sections = isset( $layout['section']) && !empty( $layout['section']) ? $layout['section'] : false): 744 foreach ( $sections as $section_slug => $section): 745 $data = self::get_current_wrapper_data( $post_id, $layout_slug, $section_slug); 733 746 ?> 734 747 <div id="<?php echo "kpb-customize-lightbox-{$layout_slug}-{$section_slug}"; ?>" class="kpb-customize-lightbox" style="display: none;"> 735 748 <section class="kpb-customize"> 736 <form name="<?php echo "kpb-form-customize-layout-{$layout_slug}-section-{$section_slug}" ?>" method="POST" autocomplete="off" onsubmit="Kopa_Page_Builder.save_customize(event, jQuery(this), <?php echo (int) $post_id;?>);" action="<?php echo esc_url(wp_nonce_url(admin_url( 'admin-ajax.php?action=kpb_save_customize'), 'kpb_save_customize', 'security')); ?>">749 <form name="<?php echo "kpb-form-customize-layout-{$layout_slug}-section-{$section_slug}" ?>" method="POST" autocomplete="off" onsubmit="Kopa_Page_Builder.save_customize(event, jQuery(this), <?php echo (int) $post_id;?>);" action="<?php echo esc_url(wp_nonce_url(admin_url( 'admin-ajax.php?action=kpb_save_customize' ), 'kpb_save_customize', 'security' ) ); ?>"> 737 750 <input type="hidden" name="layout" value="<?php echo $layout_slug; ?>" autocomplete="off"> 738 751 <input type="hidden" name="section" value="<?php echo $section_slug; ?>" autocomplete="off"> … … 741 754 <label class="kpb-section-title kpb-pull-left"><?php echo $section['title']; ?></label> 742 755 743 <a href="#" onclick="Kopa_Page_Builder.close_customize(event);" class="button button-link button-delete kpb-pull-right"><?php _e('Close', 'kopa-page-builder'); ?></a>744 <button type="submit" class="button button-primary kpb-pull-right"><?php _e('Save', 'kopa-page-builder'); ?></button>756 <a href="#" onclick="Kopa_Page_Builder.close_customize(event);" class="button button-link button-delete kpb-pull-right"><?php esc_html_e( 'Close', 'kopa-page-builder' ); ?></a> 757 <button type="submit" class="button button-primary kpb-pull-right"><?php esc_html_e( 'Save', 'kopa-page-builder' ); ?></button> 745 758 </header> 746 759 … … 752 765 <?php 753 766 $_is_first_tab = true; 754 foreach ( $_section_fields as $fields_slug => $fields):767 foreach ( $_section_fields as $fields_slug => $fields): 755 768 $classes = $_is_first_tab ? 'kpb-tab-title kpb-tab-title-first kpb-tab-title-active' : 'kpb-tab-title'; 756 769 $tab_id = $section_slug . '-field-' . $fields_slug; 757 770 ?> 758 771 <li class="<?php echo $classes;?>"> 759 <a href="<?php echo "#{$tab_id}"; ?>"><?php echo esc_attr( $fields['title']); ?></a>772 <a href="<?php echo "#{$tab_id}"; ?>"><?php echo esc_attr( $fields['title']); ?></a> 760 773 </li> 761 774 <?php … … 768 781 <?php 769 782 $_is_first_tab = true; 770 foreach ( $_section_fields as $fields_slug => $fields):783 foreach ( $_section_fields as $fields_slug => $fields): 771 784 $display = $_is_first_tab ? 'block' : 'none'; 772 785 $tab_id = $section_slug . '-field-' . $fields_slug; … … 774 787 <div id="<?php echo $tab_id; ?>" class="kpb-tab-content" style="display:<?php echo $display;?>;"> 775 788 <?php 776 foreach ( $fields['params'] as $param_key => $param_args):777 778 $param_args['name'] = sprintf( '%s-%s-%s[%s][%s]', $meta_key, $layout_slug, $section_slug, $fields_slug, $param_key);779 $param_args['value'] = isset( $data[$fields_slug][$param_key]) ? $data[$fields_slug][$param_key] : (isset($param_args['default']) ? $param_args['default'] : null);789 foreach ( $fields['params'] as $param_key => $param_args): 790 791 $param_args['name'] = sprintf( '%s-%s-%s[%s][%s]', $meta_key, $layout_slug, $section_slug, $fields_slug, $param_key); 792 $param_args['value'] = isset( $data[$fields_slug][$param_key]) ? $data[$fields_slug][$param_key] : (isset( $param_args['default']) ? $param_args['default'] : null); 780 793 781 $this->get_control( $param_args);794 $this->get_control( $param_args); 782 795 783 796 endforeach; … … 798 811 endif; 799 812 800 if( isset( $layout['customize']) && !empty($layout['customize'])){801 $data = self::get_layout_customize_data( $post_id, $layout_slug);813 if( isset( $layout['customize']) && !empty( $layout['customize'])){ 814 $data = self::get_layout_customize_data( $post_id, $layout_slug); 802 815 ?> 803 816 <div id="<?php echo "kpb-layout-customize-lightbox-{$layout_slug}"; ?>" class="kpb-customize-lightbox" style="display: none;"> 804 817 <section class="kpb-customize"> 805 <form name="<?php echo "kpb-form-customize-layout-{$layout_slug}" ?>" method="POST" autocomplete="off" onsubmit="Kopa_Page_Builder.save_layout_customize(event, jQuery(this), <?php echo (int) $post_id;?>);" action="<?php echo esc_url(wp_nonce_url(admin_url( 'admin-ajax.php?action=kpb_save_layout_customize'), 'kpb_save_layout_customize', 'security')); ?>">818 <form name="<?php echo "kpb-form-customize-layout-{$layout_slug}" ?>" method="POST" autocomplete="off" onsubmit="Kopa_Page_Builder.save_layout_customize(event, jQuery(this), <?php echo (int) $post_id;?>);" action="<?php echo esc_url(wp_nonce_url(admin_url( 'admin-ajax.php?action=kpb_save_layout_customize' ), 'kpb_save_layout_customize', 'security' ) ); ?>"> 806 819 <input type="hidden" name="layout" value="<?php echo $layout_slug; ?>" autocomplete="off"> 807 820 808 821 <header class="kpb-customize-header kpb-clearfix"> 809 822 <label class="kpb-section-title kpb-pull-left"><?php echo $layout['title']; ?></label> 810 <a href="#" onclick="Kopa_Page_Builder.close_layout_customize(event);" class="button button-link button-delete kpb-pull-right"><?php _e('Close', 'kopa-page-builder'); ?></a>811 <button type="submit" class="button button-primary kpb-pull-right"><?php _e('Save', 'kopa-page-builder'); ?></button>823 <a href="#" onclick="Kopa_Page_Builder.close_layout_customize(event);" class="button button-link button-delete kpb-pull-right"><?php esc_html_e( 'Close', 'kopa-page-builder' ); ?></a> 824 <button type="submit" class="button button-primary kpb-pull-right"><?php esc_html_e( 'Save', 'kopa-page-builder' ); ?></button> 812 825 </header> 813 826 … … 819 832 <?php 820 833 $_is_first_tab = true; 821 foreach ( $layout['customize'] as $tab_slug => $tab):834 foreach ( $layout['customize'] as $tab_slug => $tab): 822 835 $classes = $_is_first_tab ? 'kpb-tab-title kpb-tab-title-first kpb-tab-title-active' : 'kpb-tab-title'; 823 836 $tab_id = 'kpb-layout-customize-' . $layout_slug . '-tab-' . $tab_slug; 824 837 ?> 825 838 <li class="<?php echo $classes;?>"> 826 <a href="<?php echo "#{$tab_id}"; ?>"><?php echo esc_attr( $tab['title']); ?></a>839 <a href="<?php echo "#{$tab_id}"; ?>"><?php echo esc_attr( $tab['title']); ?></a> 827 840 </li> 828 841 <?php … … 835 848 <?php 836 849 $_is_first_tab = true; 837 foreach ( $layout['customize'] as $tab_slug => $tab):850 foreach ( $layout['customize'] as $tab_slug => $tab): 838 851 $display = $_is_first_tab ? 'block' : 'none'; 839 852 $tab_id = 'kpb-layout-customize-' . $layout_slug . '-tab-' . $tab_slug; … … 841 854 <div id="<?php echo $tab_id; ?>" class="kpb-tab-content" style="display:<?php echo $display;?>;"> 842 855 <?php 843 foreach ( $tab['params'] as $param_key => $param_args):844 845 $param_args['name'] = sprintf( '%s-%s[%s][%s]', self::get_meta_key_layout_customize(), $layout_slug, $tab_slug, $param_key);846 $param_args['value'] = isset( $data[$tab_slug][$param_key]) ? $data[$tab_slug][$param_key] : (isset($param_args['default']) ? $param_args['default'] : null);856 foreach ( $tab['params'] as $param_key => $param_args): 857 858 $param_args['name'] = sprintf( '%s-%s[%s][%s]', self::get_meta_key_layout_customize(), $layout_slug, $tab_slug, $param_key); 859 $param_args['value'] = isset( $data[$tab_slug][$param_key]) ? $data[$tab_slug][$param_key] : (isset( $param_args['default']) ? $param_args['default'] : null); 847 860 848 $this->get_control( $param_args);861 $this->get_control( $param_args); 849 862 850 863 endforeach; … … 870 883 871 884 public function save_widget() { 872 check_ajax_referer( 'kpb_save_widget', 'security');873 874 if (!empty( $_POST)) {885 check_ajax_referer( 'kpb_save_widget', 'security' ); 886 887 if (!empty( $_POST)) { 875 888 $data = $_POST; 876 889 … … 882 895 $customize_key = self::get_meta_key_widget_customize(); 883 896 884 foreach ( $data as $key => $value) {885 if ( 'widget' == substr($key, 0, 6)) {886 $option['widget'] = reset( $value);887 } else if ( 'kpb-widget-class-name' == $key) {897 foreach ( $data as $key => $value) { 898 if ( 'widget' == substr( $key, 0, 6)) { 899 $option['widget'] = reset( $value); 900 } else if ( 'kpb-widget-class-name' == $key) { 888 901 $option['class_name'] = $value; 889 } else if ( 'kpb-widget-id' == $key) {902 } else if ( 'kpb-widget-id' == $key) { 890 903 $widget_id = $value; 891 } else if ( 'kpb-post-id' == $key) {904 } else if ( 'kpb-post-id' == $key) { 892 905 $post_id = (int) $value; 893 } else if ( 'kpb-widget-name' == $key){906 } else if ( 'kpb-widget-name' == $key){ 894 907 $option['name'] = $value; 895 } else if( $customize_key == $key){908 } else if( $customize_key == $key){ 896 909 $option['customize'] = $value; 897 910 } … … 900 913 //VALIDATE DATA 901 914 $obj = new $option['class_name']; 902 $option['widget'] = $obj->update( $option['widget'], array());903 904 update_post_meta( $post_id, $widget_id, $option);905 906 $widget_title = (isset( $option['widget']['title']) && !empty($option['widget']['title'])) ? $option['name'] . ' : ' . $option['widget']['title'] : $option['name'];915 $option['widget'] = $obj->update( $option['widget'], array()); 916 917 update_post_meta( $post_id, $widget_id, $option); 918 919 $widget_title = (isset( $option['widget']['title']) && !empty( $option['widget']['title'])) ? $option['name'] . ' : ' . $option['widget']['title'] : $option['name']; 907 920 908 921 ob_start(); 909 if ( 'add' == $_POST['kpb-widget-action']):922 if ( 'add' == $_POST['kpb-widget-action']): 910 923 ?> 911 <aside id="<?php echo esc_attr( $widget_id); ?>" class="kpb-widget" data-class="<?php echo esc_attr($option['class_name']); ?>" data-name="<?php echo esc_attr($option['name']); ?>">924 <aside id="<?php echo esc_attr( $widget_id); ?>" class="kpb-widget" data-class="<?php echo esc_attr( $option['class_name']); ?>" data-name="<?php echo esc_attr( $option['name']); ?>"> 912 925 <div class="kpb-widget-inner kpb-clearfix"> 913 926 <label class=""><?php echo $widget_title; ?></label> 914 927 <div class="kpb-widget-action kpb-clearfix"> 915 <a href="#" onclick="Kopa_Page_Builder.edit_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>');" class="kpb-button-edit kpb-pull-left"><?php _e('Edit', 'kopa-page-builder'); ?></a>916 <a href="#" onclick="Kopa_Page_Builder.delete_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>');" class="kpb-button-delete kpb-pull-left"><?php _e('Delete', 'kopa-page-builder'); ?></a>928 <a href="#" onclick="Kopa_Page_Builder.edit_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>' );" class="kpb-button-edit kpb-pull-left"><?php esc_html_e( 'Edit', 'kopa-page-builder' ); ?></a> 929 <a href="#" onclick="Kopa_Page_Builder.delete_widget(event, jQuery(this), '<?php echo esc_attr( $widget_id); ?>' );" class="kpb-button-delete kpb-pull-left"><?php esc_html_e( 'Delete', 'kopa-page-builder' ); ?></a> 917 930 </div> 918 931 </div> … … 928 941 } 929 942 930 do_action( 'kopa_page_builder_after_save_widget' );943 do_action( 'kopa_page_builder_after_save_widget', $post_id, $widget_id, $option ); 931 944 932 945 exit(); 933 946 } 934 947 935 public function delete_widget(){ 936 check_ajax_referer('kpb_delete_grid', 'security'); 937 938 if (isset($_POST['widget_id']) && isset($_POST['post_id'])) { 939 $post_id = (int) $_POST['post_id']; 940 $widget_id = $_POST['widget_id']; 941 942 delete_post_meta($post_id, $widget_id); 948 public function delete_widget() { 949 check_ajax_referer( 'kpb_delete_widget', 'security' ); 950 951 if (isset( $_POST['widget_id']) && isset( $_POST['post_id'])) { 952 $post_id = (int) $_POST['post_id']; 953 $widget_id = $_POST['widget_id']; 954 955 delete_post_meta( $post_id, $widget_id); 956 957 do_action( 'kopa_page_builder_after_delete_widget', $post_id, $widget_id ); 943 958 } 944 959 … … 946 961 } 947 962 948 public function save_grid(){ 949 check_ajax_referer('kpb_save_grid', 'security'); 950 951 $post_id = $_POST['post_id']; 952 953 if (!empty($_POST['data'])) { 963 public function save_grid() { 964 check_ajax_referer( 'kpb_save_grid', 'security' ); 965 966 $post_id = $_POST['post_id']; 967 $layout_id = ''; 968 $layouts_data = ''; 969 970 if (!empty( $_POST['data'])) { 954 971 $data = $_POST['data']; 955 972 956 $layouts = isset( $data['layouts']) && !empty($data['layouts']) ? $data['layouts'] : false;957 if( $layouts){958 959 960 foreach ($layouts as $layout_index => $layout) { 961 962 963 $sections = isset( $layout['sections']) && !empty($layout['sections']) ? $layout['sections'] : false;964 965 if( $sections){973 $layouts = isset( $data['layouts']) && !empty( $data['layouts']) ? $data['layouts'] : false; 974 if( $layouts){ 975 $current_layout = $data['current_layout']; 976 $layout_id = $current_layout; 977 978 foreach ( $layouts as $layout_index => $layout) { 979 980 $sections = isset( $layout['sections']) && !empty( $layout['sections']) ? $layout['sections'] : false; 981 982 if( $sections){ 966 983 $_sections = array(); 967 foreach ( $sections as $section_index => $section) {968 $areas = isset( $section['areas']) && !empty($section['areas']) ? $section['areas'] : false;969 970 if( $areas){984 foreach ( $sections as $section_index => $section) { 985 $areas = isset( $section['areas']) && !empty( $section['areas']) ? $section['areas'] : false; 986 987 if( $areas){ 971 988 972 989 $_areas = array(); 973 990 974 foreach ( $areas as $area_index => $area) {975 $widgets = isset( $area['widgets']) && !empty($area['widgets']) ? $area['widgets'] : false;976 if( $widgets){991 foreach ( $areas as $area_index => $area) { 992 $widgets = isset( $area['widgets']) && !empty( $area['widgets']) ? $area['widgets'] : false; 993 if( $widgets){ 977 994 $_widgets = array(); 978 foreach ( $widgets as $widget_index => $widget) {995 foreach ( $widgets as $widget_index => $widget) { 979 996 $_widgets[$widget['id']] = array( 980 'name'=> $widget['name'],981 997 'name' => $widget['name'], 998 'class_name' => $widget['class_name'] 982 999 ); 983 1000 } … … 990 1007 } 991 1008 992 $_meta_key = sprintf('%s-%s', self::get_meta_key_grid(), $layout['name']); 993 update_post_meta($post_id, $_meta_key, $_sections); 1009 $_meta_key = sprintf( '%s-%s', self::get_meta_key_grid(), $layout['name']); 1010 $layouts_data[$layout['name']] = $_sections; 1011 update_post_meta( $post_id, $_meta_key, $_sections); 994 1012 } 995 1013 996 1014 } 997 update_post_meta( $post_id, self::get_meta_key_current_layout(), $current_layout);1015 update_post_meta( $post_id, self::get_meta_key_current_layout(), $current_layout); 998 1016 } 999 1017 } else { 1000 delete_post_meta( $post_id, self::get_meta_key_grid());1018 delete_post_meta( $post_id, self::get_meta_key_grid()); 1001 1019 } 1002 1020 1003 do_action( 'kopa_page_buider_after_save_grid' );1021 do_action( 'kopa_page_buider_after_save_grid', $post_id, $layout_id, $layouts_data ); 1004 1022 1005 1023 exit(); 1006 1024 } 1007 1025 1008 public function save_customize(){ 1009 check_ajax_referer('kpb_save_customize', 'security'); 1010 1011 $post_id = (int) $_POST['post_id']; 1012 $layout = $_POST['layout']; 1013 $section = $_POST['section']; 1014 1015 $meta_key = sprintf('%s-%s-%s', self::get_meta_key_wrapper(), $layout, $section); 1016 $meta_value = array(); 1017 1018 $data = $_POST[$meta_key]; 1019 1020 $_section_fields = apply_filters('kopa_page_builder_get_section_fields', array()); 1021 1022 foreach ($_section_fields as $tab_slug => $tab) { 1023 1024 foreach ($tab['params'] as $param_key => $param_args){ 1025 $_value = isset($data[$tab_slug][$param_key]) ? $data[$tab_slug][$param_key] : (isset($param_args['default']) ? $param_args['default'] : null); 1026 $meta_value[$tab_slug][$param_key] = $this->validate_data_meta_boxes($param_args, $_value); 1026 public function save_customize() { 1027 check_ajax_referer( 'kpb_save_customize', 'security' ); 1028 1029 $post_id = (int) $_POST['post_id']; 1030 $layout = $_POST['layout']; 1031 $section = $_POST['section']; 1032 $meta_key = sprintf( '%s-%s-%s', self::get_meta_key_wrapper(), $layout, $section); 1033 $meta_value = array(); 1034 $data = $_POST[$meta_key]; 1035 1036 $_section_fields = apply_filters( 'kopa_page_builder_get_section_fields', array()); 1037 1038 foreach ( $_section_fields as $tab_slug => $tab) { 1039 1040 foreach ( $tab['params'] as $param_key => $param_args){ 1041 $_value = isset( $data[$tab_slug][$param_key]) ? $data[$tab_slug][$param_key] : (isset( $param_args['default']) ? $param_args['default'] : null); 1042 $meta_value[$tab_slug][$param_key] = $this->validate_data_meta_boxes( $param_args, $_value); 1027 1043 } 1028 1044 1029 1045 } 1030 1046 1031 update_post_meta( $post_id, $meta_key, $meta_value);1032 1033 do_action( 'kopa_page_builder_after_save_section_customize');1047 update_post_meta( $post_id, $meta_key, $meta_value); 1048 1049 do_action( 'kopa_page_builder_after_save_section_customize', $post_id, $layout, $meta_value, $section); 1034 1050 1035 1051 exit(); 1036 1052 } 1037 1053 1038 public function save_layout_customize(){ 1039 check_ajax_referer('kpb_save_layout_customize', 'security'); 1040 1041 1042 1043 $post_id = (int) $_POST['post_id']; 1044 $layout_slug = $_POST['layout']; 1045 1046 $meta_key = sprintf('%s-%s', self::get_meta_key_layout_customize(), $layout_slug); 1047 $meta_value = array(); 1048 1049 $data = $_POST[$meta_key]; 1050 1051 $layouts = apply_filters('kopa_page_builder_get_layouts', array()); 1054 public function save_layout_customize() { 1055 check_ajax_referer( 'kpb_save_layout_customize', 'security' ); 1056 1057 $post_id = (int) $_POST['post_id']; 1058 $layout_slug = $_POST['layout']; 1059 $meta_key = sprintf( '%s-%s', self::get_meta_key_layout_customize(), $layout_slug); 1060 $meta_value = array(); 1061 $data = $_POST[$meta_key]; 1062 $layouts = apply_filters( 'kopa_page_builder_get_layouts', array()); 1052 1063 $current_layout = $layouts[$layout_slug]; 1053 1064 1054 foreach ( $current_layout['customize'] as $tab_slug => $tab) {1055 foreach ( $tab['params'] as $param_key => $param_args){1056 $_value = isset( $data[$tab_slug][$param_key]) ? $data[$tab_slug][$param_key] : (isset($param_args['default']) ? $param_args['default'] : null);1057 $meta_value[$tab_slug][$param_key] = $this->validate_data_meta_boxes( $param_args, $_value);1065 foreach ( $current_layout['customize'] as $tab_slug => $tab) { 1066 foreach ( $tab['params'] as $param_key => $param_args){ 1067 $_value = isset( $data[$tab_slug][$param_key]) ? $data[$tab_slug][$param_key] : (isset( $param_args['default']) ? $param_args['default'] : null); 1068 $meta_value[$tab_slug][$param_key] = $this->validate_data_meta_boxes( $param_args, $_value); 1058 1069 } 1059 1070 } 1060 1071 1061 do_action( 'kopa_page_builder_before_save_layout_customize', $post_id, $ meta_key, $meta_value);1062 1063 update_post_meta( $post_id, $meta_key, $meta_value);1064 1065 do_action( 'kopa_page_builder_after_save_layout_customize', $post_id, $ meta_key, $meta_value );1072 do_action( 'kopa_page_builder_before_save_layout_customize', $post_id, $layout_slug, $meta_value); 1073 1074 update_post_meta( $post_id, $meta_key, $meta_value); 1075 1076 do_action( 'kopa_page_builder_after_save_layout_customize', $post_id, $layout_slug, $meta_value ); 1066 1077 1067 1078 exit(); 1068 1079 } 1069 1080 1070 public function str_beautify( $string) {1071 return ucwords(str_replace( '_', ' ', $string));1081 public function str_beautify( $string) { 1082 return ucwords(str_replace( '_', ' ', $string)); 1072 1083 } 1073 1084 1074 public function str_uglify( $string) {1085 public function str_uglify( $string) { 1075 1086 $string = preg_replace("/[^a-zA-Z0-9\s]/", '', $string); 1076 return strtolower(str_replace( ' ', '_', $string));1087 return strtolower(str_replace( ' ', '_', $string)); 1077 1088 } 1078 1089 1079 1090 public function get_field_alert( $params ){ 1080 1091 $classes = array( 'kpb-ui-alert' ); 1081 if( $params['class']){1092 if( isset( $params['class'] ) ){ 1082 1093 $classes = array_merge( $classes, $params['class'] ); 1083 1094 } … … 1090 1101 } 1091 1102 1092 public function get_field_text( $params){1103 public function get_field_text( $params){ 1093 1104 ?> 1094 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr($params['value']); ?>" type="text" class="kpb-ui-text" autocomplete="off">1105 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr( $params['value']); ?>" type="text" class="kpb-ui-text" autocomplete="off"> 1095 1106 <?php 1096 1107 } 1097 1108 1098 public function get_field_number( $params){1109 public function get_field_number( $params){ 1099 1110 ?> 1100 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr($params['value']); ?>" type="text" class="kpb-ui-number" autocomplete="off">1101 <?php if( $params['affix']): ?>1111 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr( $params['value']); ?>" type="text" class="kpb-ui-number" autocomplete="off"> 1112 <?php if( $params['affix']): ?> 1102 1113 <i><?php echo $params['affix']; ?></i> 1103 1114 <?php endif;?> … … 1105 1116 } 1106 1117 1107 public function get_field_color( $params){1118 public function get_field_color( $params){ 1108 1119 ?> 1109 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr($params['value']); ?>" type="text" class="kpb-ui-color" data-default-color="<?php echo isset($params['default']) ? $params['default'] : ''; ?>" autocomplete="off">1120 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr( $params['value']); ?>" type="text" class="kpb-ui-color" data-default-color="<?php echo isset( $params['default']) ? $params['default'] : ''; ?>" autocomplete="off"> 1110 1121 <?php 1111 1122 } 1112 1123 1113 public function get_field_checkbox( $params){1114 $params['value'] = isset( $params['value']) ? isset($params['value']) : isset($params['default']) ? $params['value'] : 'false';1124 public function get_field_checkbox( $params){ 1125 $params['value'] = isset( $params['value']) ? isset( $params['value']) : isset( $params['default']) ? $params['value'] : 'false'; 1115 1126 ?> 1116 <input name="<?php echo esc_attr( $params['name']); ?>"1117 <?php checked( $params['value'], 'true' ); ?>1127 <input name="<?php echo esc_attr( $params['name']); ?>" 1128 <?php checked( $params['value'], 'true' ); ?> 1118 1129 value="true" 1119 1130 type="checkbox" … … 1123 1134 } 1124 1135 1125 public function get_field_radio( $params){1126 foreach( $params['options'] as $value => $title):1127 $checked = !empty( $params['value']) && ($params['value'] == $value) ? 'checked="checked"' : '';1136 public function get_field_radio( $params){ 1137 foreach( $params['options'] as $value => $title): 1138 $checked = !empty( $params['value']) && ( $params['value'] == $value) ? 'checked="checked"' : ''; 1128 1139 $id = wp_generate_password(4, false, false) . '-' . $value; 1129 1140 ?> 1130 <label for="<?php echo esc_attr( $id);?>">1131 <span><?php echo esc_attr( $title); ?></span>1132 <input id="<?php echo esc_attr( $id); ?>" name="<?php echo esc_attr($params['name']); ?>" value="<?php echo esc_attr($value); ?>" type="radio" class="kpb-ui-radio" <?php echo $checked; ?> autocomplete="off">1141 <label for="<?php echo esc_attr( $id);?>"> 1142 <span><?php echo esc_attr( $title); ?></span> 1143 <input id="<?php echo esc_attr( $id); ?>" name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr( $value); ?>" type="radio" class="kpb-ui-radio" <?php echo $checked; ?> autocomplete="off"> 1133 1144 </label> 1134 1145 <?php … … 1136 1147 } 1137 1148 1138 public function get_field_radio_image( $params){1139 foreach( $params['options'] as $value => $title):1140 $checked = !empty( $params['value']) && ($params['value'] == $value) ? 'checked="checked"' : '';1149 public function get_field_radio_image( $params){ 1150 foreach( $params['options'] as $value => $title): 1151 $checked = !empty( $params['value']) && ( $params['value'] == $value) ? 'checked="checked"' : ''; 1141 1152 $id = wp_generate_password(4, false, false) . '-' . $value; 1142 1153 ?> 1143 1154 <div class="radio-image-wrapper"> 1144 <label for="<?php echo esc_attr( $id);?>">1155 <label for="<?php echo esc_attr( $id);?>"> 1145 1156 <span><?php echo $title; ?></span> 1146 <input id="<?php echo esc_attr( $id); ?>" name="<?php echo esc_attr($params['name']); ?>" value="<?php echo esc_attr($value); ?>" type="radio" class="kpb-ui-radio" <?php echo $checked; ?> autocomplete="off">1157 <input id="<?php echo esc_attr( $id); ?>" name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_attr( $value); ?>" type="radio" class="kpb-ui-radio" <?php echo $checked; ?> autocomplete="off"> 1147 1158 </label> 1148 1159 </div> … … 1151 1162 } 1152 1163 1153 public function get_field_select( $params){1164 public function get_field_select( $params){ 1154 1165 ?> 1155 <select name="<?php echo esc_attr( $params['name']); ?>" class="kpb-ui-select" autocomplete=off>1166 <select name="<?php echo esc_attr( $params['name']); ?>" class="kpb-ui-select" autocomplete=off> 1156 1167 <?php 1157 foreach( $params['options'] as $value => $title):1158 $selected = !empty( $params['value']) && ($params['value'] == $value) ? 'selected="selected"' : '';1168 foreach( $params['options'] as $value => $title): 1169 $selected = !empty( $params['value']) && ( $params['value'] == $value) ? 'selected="selected"' : ''; 1159 1170 ?> 1160 <option value="<?php echo $value ?>" <?php echo esc_attr( $selected); ?>><?php echo esc_attr($title); ?></option>1171 <option value="<?php echo $value ?>" <?php echo esc_attr( $selected); ?>><?php echo esc_attr( $title); ?></option> 1161 1172 <?php 1162 1173 endforeach; … … 1166 1177 } 1167 1178 1168 public function get_field_image( $params){1179 public function get_field_image( $params){ 1169 1180 $preview = KPB_DIR . 'images/placehold.png'; 1170 $image = !empty( $params['value']) ? do_shortcode($params['value']) : '';1171 $image_reset = (isset( $params['default']) && !empty($params['default'])) ? do_shortcode($params['default']) : '';1181 $image = !empty( $params['value']) ? do_shortcode( $params['value']) : ''; 1182 $image_reset = (isset( $params['default']) && !empty( $params['default'])) ? do_shortcode( $params['default']) : ''; 1172 1183 $image_preview = $image ? $image : $preview; 1173 1184 ?> 1174 1185 <div class="kpb-ui-image-outer"> 1175 1186 <div class="kpb-clearfix"> 1176 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_url($image); ?>" type="text" class="kpb-ui-image kpb-pull-left" autocomplete="off">1177 <a href="#" class="kpb-ui-image-button-upload button button-secondary kpb-pull-left"><?php _e('Upload', 'kopa-page-builder'); ?></a>1178 <a href="#" class="kpb-ui-image-button-reset button button-link button-delete kpb-pull-left" data-preview="<?php echo esc_url( $preview); ?>" data-reset="<?php echo esc_url($image_reset); ?>"><?php _e('Reset', 'kopa-page-builder'); ?></a>1187 <input name="<?php echo esc_attr( $params['name']); ?>" value="<?php echo esc_url( $image); ?>" type="text" class="kpb-ui-image kpb-pull-left" autocomplete="off"> 1188 <a href="#" class="kpb-ui-image-button-upload button button-secondary kpb-pull-left"><?php esc_html_e( 'Upload', 'kopa-page-builder' ); ?></a> 1189 <a href="#" class="kpb-ui-image-button-reset button button-link button-delete kpb-pull-left" data-preview="<?php echo esc_url( $preview); ?>" data-reset="<?php echo esc_url( $image_reset); ?>"><?php esc_html_e( 'Reset', 'kopa-page-builder' ); ?></a> 1179 1190 </div> 1180 1191 <br/> 1181 <img src="<?php echo $image_preview;?>" class="kpb-ui-image-preview" data-preview="<?php echo esc_url( $preview); ?>">1192 <img src="<?php echo $image_preview;?>" class="kpb-ui-image-preview" data-preview="<?php echo esc_url( $preview); ?>"> 1182 1193 </div> 1183 1194 <?php 1184 1195 } 1185 1196 1186 public function get_field_textarea( $params){1187 $class = isset( $params['class']) && !empty($params['class']) ? $params['class'] : '';1188 $rows = isset( $params['rows']) && !empty($params['rows']) ? (int) $params['rows'] : 3;1197 public function get_field_textarea( $params){ 1198 $class = isset( $params['class']) && !empty( $params['class']) ? $params['class'] : ''; 1199 $rows = isset( $params['rows']) && !empty( $params['rows']) ? (int) $params['rows'] : 3; 1189 1200 ?> 1190 <textarea name="<?php echo esc_attr( $params['name']); ?>" class="kpb-ui-textarea <?php echo $class;?>" rows="<?php echo $rows; ?>" autocomplete="off"><?php echo htmlspecialchars_decode(stripslashes($params['value'])); ?></textarea>1201 <textarea name="<?php echo esc_attr( $params['name']); ?>" class="kpb-ui-textarea <?php echo $class;?>" rows="<?php echo $rows; ?>" autocomplete="off"><?php echo htmlspecialchars_decode(stripslashes( $params['value'])); ?></textarea> 1191 1202 <?php 1192 1203 } 1193 1204 1194 public function get_field_icon( $params){1195 $params['options'] = array( '' => __('-- select icon --', 'kopa-page-builder'));1205 public function get_field_icon( $params){ 1206 $params['options'] = array( '' => esc_html__( '-- select icon --', 'kopa-page-builder' ) ); 1196 1207 $icons = $this->get_icons(); 1197 foreach ( $icons as $icon) {1198 $params['options'][$icon] = str_replace( 'fa fa-', '', $icon);1208 foreach ( $icons as $icon) { 1209 $params['options'][$icon] = str_replace( 'fa fa-', '', $icon); 1199 1210 } 1200 1211 1201 $this->get_field_select( $params);1212 $this->get_field_select( $params); 1202 1213 } 1203 1214 1204 public function validate_data_meta_boxes( $param_args, $value){1205 switch ( $param_args['type']) {1215 public function validate_data_meta_boxes( $param_args, $value){ 1216 switch ( $param_args['type']) { 1206 1217 case 'color': 1207 $value = esc_attr( $value);1218 $value = esc_attr( $value); 1208 1219 break; 1209 1220 case 'image': 1210 if (!empty( $value)) {1221 if (!empty( $value)) { 1211 1222 $value = str_replace(home_url(), '[kpb_home_url]', $value); 1212 1223 } 1213 1224 break; 1214 1225 case 'select': 1215 $value = esc_attr( $value);1226 $value = esc_attr( $value); 1216 1227 break; 1217 1228 case 'text': 1218 $value = esc_attr( $value);1229 $value = esc_attr( $value); 1219 1230 break; 1220 1231 case 'number': 1221 if(trim( $value) != ''){1222 $value = floatval( $value);1232 if(trim( $value) != ''){ 1233 $value = floatval( $value); 1223 1234 } 1224 1235 break; 1225 1236 case 'textarea': 1226 $value = htmlspecialchars_decode(stripslashes( $value));1237 $value = htmlspecialchars_decode(stripslashes( $value)); 1227 1238 break; 1228 1239 } … … 1235 1246 } 1236 1247 1237 public function get_icons() {1248 public function get_icons() { 1238 1249 $icons = array( 1239 1250 'fa fa-rub', … … 1693 1704 ); 1694 1705 1695 return apply_filters( 'kpb_get_icons', $icons);1706 return apply_filters( 'kpb_get_icons', $icons); 1696 1707 } 1697 1708 -
kopa-page-builder/trunk/readme.txt
r1323889 r1428045 1 1 === Kopa Page Builder === 2 Contributors: kopatheme 2 Contributors: kopatheme,tranthethang 3 3 Tags: pagebuilder, grid, drag and drop 4 4 Requires at least: 4.1 5 Tested up to: 4. 4.16 Stable tag: 1. 25 Tested up to: 4.5.2 6 Stable tag: 1.3 7 7 8 8 == Description == … … 21 21 == Changelog == 22 22 23 1.3 24 [FIX] some js, css 25 23 26 1.2 24 27 [CHECK] compatiable with wordpress version 4.4.1 … … 31 34 - kopa_page_builder_after_save_section_customize 32 35 - kopa_page_builder_after_save_layout_customize 33 34 36 35 37
Note: See TracChangeset
for help on using the changeset viewer.