Version Description
Download this release
Release Info
Developer | nko |
Plugin | Visual Portfolio, Photo Gallery & Post Grid |
Version | 1.6.0 |
Comparing to | |
See all releases |
Code changes from version 1.5.0 to 1.6.0
- assets/admin/css/gutenberg-block.min.css +1 -1
- assets/admin/css/style.min.css +1 -1
- assets/admin/images/layouts/tiles-2-3.svg +0 -2
- assets/admin/images/layouts/tiles-2-4.svg +2 -2
- assets/admin/images/layouts/tiles-2-5.svg +4 -5
- assets/admin/images/layouts/tiles-2-6.svg +15 -0
- assets/admin/images/layouts/tiles-3-10.svg +11 -6
- assets/admin/images/layouts/tiles-3-11.svg +12 -6
- assets/admin/images/layouts/tiles-3-12.svg +22 -0
- assets/admin/images/layouts/tiles-3-13.svg +17 -0
- assets/admin/images/layouts/tiles-3-14.svg +18 -0
- assets/admin/images/layouts/tiles-3-15.svg +17 -0
- assets/admin/images/layouts/tiles-3-3.svg +6 -10
- assets/admin/images/layouts/tiles-3-4.svg +9 -8
- assets/admin/images/layouts/tiles-3-5.svg +3 -3
- assets/admin/images/layouts/tiles-3-6.svg +3 -3
- assets/admin/images/layouts/tiles-3-7.svg +2 -1
- assets/admin/images/layouts/tiles-3-8.svg +7 -11
- assets/admin/images/layouts/tiles-3-9.svg +6 -5
- assets/admin/images/layouts/tiles-4-3.svg +15 -9
- assets/admin/images/layouts/tiles-4-4.svg +12 -6
- assets/admin/images/layouts/tiles-4-5.svg +17 -0
- assets/admin/js/gutenberg-block.min.js +1 -1
- assets/admin/js/mce-dropdown.min.js +1 -1
- assets/admin/js/script.min.js +1 -1
- assets/admin/js/vc-frontend.min.js +1 -1
- assets/css/style.min.css +2 -2
- assets/js/script-preview.min.js +1 -1
- assets/js/script.min.js +1 -1
- assets/vendor/flickr-justified-gallery/fjGallery.js +22 -1
- assets/vendor/flickr-justified-gallery/fjGallery.min.js +5 -5
- assets/vendor/flickr-justified-gallery/fjGallery.min.js.map +1 -1
- assets/vendor/lazysizes/lazysizes.min.js +2 -0
- class-visual-portfolio.php +21 -5
- classes/class-admin.php +237 -22
- classes/class-controls.php +39 -0
- classes/class-extend.php +20 -0
- classes/class-get-portfolio.php +142 -76
- classes/class-images.php +215 -0
- languages/visual-portfolio.pot +124 -124
- readme.md +71 -5
- templates/items-list/filter/style.css +1 -1
- templates/items-list/filter/style.scss +1 -0
- templates/items-list/items-style/emerge/meta.php +1 -1
- templates/items-list/items-style/emerge/style.css +1 -1
- templates/items-list/items-style/emerge/style.scss +3 -0
- templates/items-list/items-style/fade/meta.php +1 -3
- templates/items-list/items-style/fade/style.css +1 -1
- templates/items-list/items-style/fade/style.scss +3 -0
- templates/items-list/items-style/fly/meta.php +1 -3
- templates/items-list/items-style/style.css +1 -1
- templates/items-list/items-style/style.scss +92 -90
- templates/items-list/pagination/paged.php +2 -2
- templates/items-list/pagination/style.css +1 -1
- templates/items-list/pagination/style.scss +3 -2
assets/admin/css/gutenberg-block.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wp-block-nk-visual-portfolio{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;min-height:0;padding:14px;background-color:#f8f9f9}.wp-block-nk-visual-portfolio .components-placeholder__label{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-right:14px;margin-bottom:0}.wp-block-nk-visual-portfolio .components-placeholder__label ~ *{width:auto}.wp-block-nk-visual-portfolio .visual-portfolio-gutenberg-icon{width:23px;height:23px;margin-right:10px;margin-bottom:0}.wp-block-nk-visual-portfolio .components-placeholder__fieldset{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.wp-block-nk-visual-portfolio .components-placeholder__fieldset>a{margin-right:10px}.wp-block-nk-visual-portfolio .spinner,.wp-block-nk-visual-portfolio .components-base-control{margin:0}img.visual-portfolio-gutenberg-icon{pointer-events:none}
|
1 |
+
.wp-block-nk-visual-portfolio{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;min-height:0;padding:14px;background-color:#f8f9f9}.wp-block-nk-visual-portfolio .components-placeholder__label{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-right:14px;margin-bottom:0}.wp-block-nk-visual-portfolio .components-placeholder__label ~ *{width:auto}.wp-block-nk-visual-portfolio .visual-portfolio-gutenberg-icon{width:23px;min-width:23px;height:23px;min-height:23px;margin-right:10px;margin-bottom:0}.wp-block-nk-visual-portfolio .components-placeholder__fieldset{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.wp-block-nk-visual-portfolio .components-placeholder__fieldset>a{margin-right:10px}.wp-block-nk-visual-portfolio .spinner,.wp-block-nk-visual-portfolio .components-base-control{margin:0}img.visual-portfolio-gutenberg-icon{pointer-events:none}
|
assets/admin/css/style.min.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/*!
|
2 |
* Name : Visual Portfolio
|
3 |
-
* Version : 1.
|
4 |
* Author : nK https://nkdev.info
|
5 |
*/.dashicons-visual-portfolio,.dashicons-visual-portfolio-gray,.mce-widget .mce-i-visual-portfolio{background-image:url("../images/icon.svg");background-repeat:no-repeat;background-position:center center;background-size:15px;opacity:.6}.mce-widget .mce-i-visual-portfolio{background-image:url("../images/icon-mce.svg");opacity:1}.menu-top.current .dashicons-visual-portfolio,.menu-top:hover .dashicons-visual-portfolio,.wp-has-current-submenu .dashicons-visual-portfolio{opacity:1}.dashicons-visual-portfolio-gray,.mce-i-visual-portfolio-gray{background-image:url("../images/icon-gray.svg")}.vc_element-icon[data-is-container="true"].icon-visual-portfolio,.vc_element-icon.icon-visual-portfolio{background-position:50% 50%}.vc_element-icon.icon-visual-portfolio,.vc_control-visual-portfolio{position:relative;overflow:hidden;background-image:url("../images/icon-vc.png");background-position:50% 50%;background-size:cover;border-radius:3px}.vc_add-element-container .icon-visual-portfolio{position:absolute}.vc_control-visual-portfolio{display:inline-block;width:18px;height:18px;margin:0 2px;cursor:pointer}.vc_controls-row .vc_control-visual-portfolio{float:right;margin:4px}.vc_control-visual-portfolio-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.vp-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;box-sizing:border-box;margin-right:-15px;margin-left:-15px}.vp-col-1,.vp-col-2,.vp-col-3,.vp-col-4,.vp-col-5,.vp-col-6,.vp-col-7,.vp-col-8,.vp-col-9,.vp-col-10,.vp-col-11,.vp-col-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:15px;padding-left:15px}.vp-col-1{-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%;max-width:8.33333%}.vp-col-2{-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%;max-width:16.66667%}.vp-col-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.vp-col-4{-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%;max-width:33.33333%}.vp-col-5{-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%;max-width:41.66667%}.vp-col-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.vp-col-7{-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%;max-width:58.33333%}.vp-col-8{-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%;max-width:66.66667%}.vp-col-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.vp-col-10{-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%;max-width:83.33333%}.vp-col-11{-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%;max-width:91.66667%}.vp-col-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.vp-col-clearfix{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.vp-col-clearfix .vp-control-html{margin-bottom:0}.post-type-vp_lists.post-php,.post-type-vp_lists.post-new-php{background-color:#edeff0}.post-type-vp_lists.post-php #wpcontent,.post-type-vp_lists.post-new-php #wpcontent{padding-left:0}.post-type-vp_lists.post-php .wrap,.post-type-vp_lists.post-new-php .wrap{margin:0}.post-type-vp_lists.post-php #poststuff,.post-type-vp_lists.post-new-php #poststuff{padding-top:0}.post-type-vp_lists.post-php #wpfooter,.post-type-vp_lists.post-new-php #wpfooter{display:none}.post-type-vp_lists.post-php #wpbody-content,.post-type-vp_lists.post-new-php #wpbody-content{padding-bottom:0}.post-type-vp_lists.post-php #post-body.columns-2 #postbox-container-1,.post-type-vp_lists.post-new-php #post-body.columns-2 #postbox-container-1{position:fixed;top:0;right:300px;bottom:0;width:300px;overflow:auto;-webkit-overflow-scrolling:touch}html.wp-toolbar .post-type-vp_lists.post-php #post-body.columns-2 #postbox-container-1,html.wp-toolbar .post-type-vp_lists.post-new-php #post-body.columns-2 #postbox-container-1{top:32px}@media only screen and (max-width: 850px){.post-type-vp_lists.post-php #post-body.columns-2 #postbox-container-1,.post-type-vp_lists.post-new-php #post-body.columns-2 #postbox-container-1{position:relative;top:auto;right:auto;bottom:auto;width:100%;margin-right:0}}.post-type-vp_lists.post-php #postbox-container-2,.post-type-vp_lists.post-new-php #postbox-container-2{position:absolute;top:0;right:0;bottom:0;left:0;width:calc(100% - 300px);min-height:calc(100vh - 32px);overflow:auto;-webkit-overflow-scrolling:touch}@media only screen and (max-width: 850px){.post-type-vp_lists.post-php #postbox-container-2,.post-type-vp_lists.post-new-php #postbox-container-2{right:0;bottom:auto;width:100%}}.post-type-vp_lists.post-php .columns-2 #side-sortables,.post-type-vp_lists.post-new-php .columns-2 #side-sortables{width:auto}.post-type-vp_lists.post-php .notice,.post-type-vp_lists.post-new-php .notice{margin:0;margin-right:300px;margin-bottom:1px}@media only screen and (max-width: 850px){.post-type-vp_lists.post-php .notice,.post-type-vp_lists.post-new-php .notice{margin-right:0}}.post-type-vp_lists.post-php #poststuff .postbox,.post-type-vp_lists.post-new-php #poststuff .postbox{margin-bottom:0;border-color:#e2e4e7;border-top:0;border-right:0}.post-type-vp_lists.post-php #poststuff .postbox>h2,.post-type-vp_lists.post-new-php #poststuff .postbox>h2{padding:15px;border-bottom:none}.post-type-vp_lists.post-php #poststuff .postbox>.handlediv,.post-type-vp_lists.post-new-php #poststuff .postbox>.handlediv{height:50px}.post-type-vp_lists.post-php #poststuff .postbox>.inside,.post-type-vp_lists.post-new-php #poststuff .postbox>.inside{padding:15px;padding-top:0}.vp-control{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:19px}.vp-control>label{width:100%;margin-bottom:5px}.vp-control>.vp-control-description{width:100%;margin:2px 0 5px;font-size:13px;font-style:italic;color:#666}.vp-control.vp-control-checkbox,.vp-control.vp-control-toggle{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.vp-control.vp-control-checkbox>label,.vp-control.vp-control-toggle>label{margin-bottom:0}.vp-control.vp-control-textarea textarea{width:100%}.vp-image-picker{display:none}.vp-image-picker,.vp-image-picker *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-image-picker+ul.thumbnails.image_picker_selector li{margin:0 10px 10px 0}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail{padding:0;cursor:pointer;border:none}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail img{display:block;border:2px solid transparent}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail.selected{background-color:transparent}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail.selected img{border-color:#0073aa}.vp-image-picker+ul.thumbnails.image_picker_selector .group_title{padding-top:5px;padding-left:5px;font-weight:500}.vp-control-range [type="number"]{width:50px;margin-left:10px}.vp-control-range [type="range"]{-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;padding:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vp-control-range [type="range"]::-webkit-slider-thumb{-webkit-box-sizing:border-box;box-sizing:border-box;width:18px;height:18px;margin-top:-7px;cursor:pointer;background:#555d66;background-clip:padding-box;border:4px solid transparent;border-radius:50%;-webkit-appearance:none;appearance:none}.vp-control-range [type="range"]::-moz-range-thumb{box-sizing:border-box;width:18px;height:18px;cursor:pointer;background:#555d66;background-clip:padding-box;border:4px solid transparent;border-radius:50%}.vp-control-range [type="range"]::-ms-thumb{box-sizing:border-box;width:14px;height:14px;margin-top:0;cursor:pointer;background:#555d66;background-clip:padding-box;border:2px solid transparent;border-radius:50%}.vp-control-range [type="range"]:focus{outline:none}.vp-control-range [type="range"]:focus::-webkit-slider-thumb{color:#191e23;background-color:#fff;outline:2px solid transparent;outline-offset:-2px;-webkit-box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff;box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff}.vp-control-range [type="range"]:focus::-moz-range-thumb{color:#191e23;background-color:#fff;outline:2px solid transparent;outline-offset:-2px;box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff}.vp-control-range [type="range"]:focus::-ms-thumb{color:#191e23;background-color:#fff;outline:2px solid transparent;outline-offset:-2px;box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff}.vp-control-range [type="range"]::-webkit-slider-runnable-track{height:3px;margin-top:-4px;cursor:pointer;background:#e2e4e7;border-radius:1.5px}.vp-control-range [type="range"]::-moz-range-track{height:3px;cursor:pointer;background:#e2e4e7;border-radius:1.5px}.vp-control-range [type="range"]::-ms-track{height:3px;margin-top:-4px;color:transparent;cursor:pointer;background:#e2e4e7;border-color:transparent;border-radius:1.5px}.vp-control-toggle,.vp-control-toggle *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-control-toggle .vp-toggle{position:relative}.vp-control-toggle .vp-toggle .vp-toggle__track{content:"";display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:36px;height:18px;vertical-align:top;background-color:#fff;border:2px solid #6c7781;border-radius:9px;-webkit-transition:background .2s ease;transition:background .2s ease}.vp-control-toggle .vp-toggle .vp-toggle__track::after{content:"";position:absolute;display:block;top:50%;right:5px;width:3px;height:3px;margin-top:-3px;border:1.5px solid #6c7781;border-radius:3px}.vp-control-toggle .vp-toggle:hover .vp-toggle__track{background-color:#e2e4e7}.vp-control-toggle .vp-toggle [type="checkbox"]:checked ~ .vp-toggle__track{background-color:#33b3db;border:2px solid #33b3db}.vp-control-toggle .vp-toggle [type="checkbox"]:checked ~ .vp-toggle__track::after{top:50%;right:auto;left:8px;width:0;height:5px;margin-top:-3px;border:0;border-right:2px solid #fff;border-radius:0}.vp-control-toggle .vp-toggle .vp-toggle__thumb{position:absolute;display:block;top:4px;left:4px;width:10px;height:10px;background-color:#6c7781;border:5px solid #6c7781;border-radius:50%;-webkit-transition:-webkit-transform .1s ease;transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease, -webkit-transform .1s ease}.vp-control-toggle .vp-toggle [type="checkbox"]:focus ~ .vp-toggle__track{-webkit-box-shadow:0 0 0 2px #fff, 0 0 0 3px #6c7781;box-shadow:0 0 0 2px #fff, 0 0 0 3px #6c7781}.vp-control-toggle .vp-toggle [type="checkbox"]:checked ~ .vp-toggle__thumb{background-color:#fff;border-width:0;-webkit-transform:translateX(18px);transform:translateX(18px)}.vp-control-toggle .vp-toggle [type="checkbox"]{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;margin:0;opacity:0;z-index:1}.vp-control-image-dropdown{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:5px 7px;cursor:pointer;background-color:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);box-shadow:inset 0 1px 2px rgba(0,0,0,0.07)}.vp-control-image-dropdown,.vp-control-image-dropdown *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-control-image-dropdown::before{content:"";position:absolute;display:block;top:50%;right:6px;width:0;height:0;margin-top:-2px;border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px}.vp-control-image-dropdown.active::before{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.vp-control-image-dropdown .vp-control-image-dropdown__preview{display:block;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:32px}.vp-control-image-dropdown .vp-control-image-dropdown__preview img{display:block;width:100%;height:auto}.vp-control-image-dropdown .vp-control-image-dropdown__title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-left:10px}.vp-control-image-dropdown .vp-control-image-dropdown__content{position:absolute;display:none;top:100%;left:0;width:100%;max-width:285px;margin-top:7px;margin-left:-1px;cursor:default;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.04);box-shadow:0 1px 1px rgba(0,0,0,0.04);z-index:1}.vp-control-image-dropdown .vp-control-image-dropdown__content>div{width:100%;max-height:250px;padding:4px;overflow:auto}.vp-control-image-dropdown .vp-control-image-dropdown__content::before{content:"";position:absolute;display:block;top:-5px;left:10px;width:0;height:0;border-right:5px solid transparent;border-bottom:5px solid #e5e5e5;border-left:5px solid transparent}.vp-control-image-dropdown .vp-control-image-dropdown__content::after{content:"";position:absolute;display:block;top:-7px;right:0;left:0;height:7px}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector,.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector .group>ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;float:none;max-width:25%;margin:0}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li.group,.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li.group_title{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail{padding:3px}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li img{width:100%;height:auto}.vp-control-image-dropdown.active .vp-control-image-dropdown__content{display:block}.vp-oembed-preview{position:relative;width:100%;padding-top:56.25%;color:#a2a2a2;background-color:#f1f1f1;border:1px solid #e8e8e8}.vp-oembed-preview::after{content:"\f126";position:absolute;display:block;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:dashicons;font-size:20px;font-style:normal;font-weight:400;line-height:1;text-align:center;text-decoration:inherit;vertical-align:top;z-index:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vp-oembed-preview>iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.vp-portfolio__thumbnail{position:relative;display:block;max-width:70px;padding-top:100%;overflow:hidden;border-radius:3px}.vp-portfolio__thumbnail img{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.vp-portfolio__thumbnail:empty{background-color:#f1f1f1;border:1px solid #e8e8e8}.vp-portfolio__thumbnail:empty,.vp-portfolio__thumbnail:empty:hover,.vp-portfolio__thumbnail:empty:active,.vp-portfolio__thumbnail:empty:focus{color:#a2a2a2}.vp-portfolio__thumbnail:empty::after{content:"\f128";position:absolute;display:block;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:dashicons;font-size:20px;font-style:normal;font-weight:400;line-height:1;text-align:center;text-decoration:inherit;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-list-table th.column-portfolio_post_thumbs{width:70px}.wp-list-table th.column-vp_lists_post_shortcode{width:250px}@media screen and (max-width: 782px){.wp-list-table th.column-portfolio_post_thumbs{display:none}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-portfolio_post_thumbs{float:left;width:70px !important;min-width:70px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-portfolio_post_thumbs::before{content:none}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-title{overflow:hidden;clear:right}}.vp-portfolio-list .vp-portfolio-list__icon span{display:block;width:120px;height:120px;margin:0 auto;margin-top:60px;background-size:105px}.vp-portfolio-list .vp-portfolio-list__text{text-align:center}.vp-portfolio-list .vp-portfolio-list__text p{margin-top:30px;margin-bottom:30px;font-size:15px;font-weight:500;color:#8e8e8e}.vp-portfolio-list .vp-portfolio-list__text .button-hero{display:inline-block}.vp_list_preview{padding:0 12px;margin-right:-12px;margin-left:-12px}.vp_list_preview iframe{width:100%;min-height:120px;-webkit-transition:height .3s;transition:height .3s}.vp-content-source{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-right:9px;padding-left:9px;margin-right:-15px;margin-left:-15px}.vp-content-source .vp-content-source__item{position:relative;width:70px;height:50px;padding:12px;margin:0 5px;color:#6c7781;text-align:center;cursor:pointer;border:1px solid transparent;border-radius:3px}.vp-content-source .vp-content-source__item.active,.vp-content-source .vp-content-source__item:hover{color:#555;background-color:#ecf0f4}.vp-content-source .vp-content-source__item.active{color:#fff;background-color:#6c7781;border-color:#6c7781}.vp-content-source .vp-content-source__item .vp-content-source__item-icon>span{width:24px;height:24px;margin-top:2px;font-size:24px}.vp-content-source .vp-content-source__item .vp-content-source__item-title{position:absolute;top:58%;right:8px;left:8px;font-weight:500}.vp-content-source .vp-content-source__item-content{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:100%}.vp-content-source .vp-content-source__item-content>div{position:relative;display:none;padding:0 15px;padding-bottom:1px;margin-top:12px;margin-right:-9px;margin-bottom:-14px;margin-left:-9px;overflow:hidden;background-color:#f9f9fa;border-top:1px solid #eee}.vp-content-source .vp-content-source__item-content>div:empty{display:none !important}.vp-content-source .vp-content-source__item-content>div.active{display:block}.vp-select2{width:100%}.vp-select2+.select2{width:100%}.post-attributes-label+.vp-select2+.select2{margin-top:5px}.vp-select2+.select2 ul,.vp-select2+.select2 li{margin-bottom:0}.vp-select2+.select2 .select2-selection{border:1px solid #ddd;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);box-shadow:inset 0 1px 2px rgba(0,0,0,0.07)}.vp-select2+.select2.select2-container--open .select2-selection{outline:none}.vp-select2+.select2 .select2-selection--multiple{min-height:27px}.vp-select2+.select2 .select2-selection--multiple .select2-selection__choice{padding:3px 8px;margin-top:3px;color:#fff;background-color:#6c7781;border-color:#6c7781}.vp-select2+.select2 .select2-selection--multiple .select2-selection__choice__remove{float:right;margin-right:0;margin-left:3px;color:inherit;opacity:.5}.select2-vp-container ul,.select2-vp-container li{margin-bottom:0}.select2-vp-container .select2-dropdown{border-color:#ddd}.select2-vp-container .select2-search--dropdown .select2-search__field{padding:3px 4px;border:1px solid #ddd;outline:none;-webkit-box-shadow:none;box-shadow:none}.select2-vp-container .select2-results__option[aria-selected="true"]{background-color:#efeeee}.select2-vp-container .select2-results__option--highlighted[aria-selected]{background-color:#33b3db}.vp-select2-ajax__result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.vp-select2-ajax__result .vp-select2-ajax__result-img{position:relative;-webkit-box-flex:0;-ms-flex:0 0 35px;flex:0 0 35px;background-color:rgba(0,0,0,0.1);background-position:center center;background-size:cover;border-radius:3px}.vp-select2-ajax__result .vp-select2-ajax__result-img::after{content:"";display:block;width:100%;padding-top:100%}.vp-select2-ajax__result .vp-select2-ajax__result-data{padding-left:10px}.vp-select2-ajax__result .vp-select2-ajax__result-title{font-size:16px;font-weight:500;line-height:1}.vp-select2-ajax__result .vp-select2-ajax__result-post-type{font-size:12px;opacity:.5}.vp-control-gallery .vp-control-gallery-additional-data{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;top:0;right:-350px;bottom:0;width:350px;padding:15px 13px;overflow:auto;background-color:#fff;border-left:1px solid #eaeaea;-webkit-transition:.15s right;transition:.15s right}.vp-control-gallery .vp-control-gallery-additional-data.active{right:0}.vp-control-gallery .vp-control-gallery-additional-data.active+.vp-control-gallery-items{margin-right:335px}@media (max-width: 910px){.vp-control-gallery .vp-control-gallery-additional-data{position:relative;display:none;right:0;width:120%;height:auto;margin-bottom:30px;border:1px solid #eaeaea}.vp-control-gallery .vp-control-gallery-additional-data.active{display:block}.vp-control-gallery .vp-control-gallery-additional-data.active+.vp-control-gallery-items{margin-right:-15px}}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview{display:-webkit-box;display:-ms-flexbox;display:flex;padding:15px 13px;margin:-15px -13px;margin-bottom:15px;border-bottom:1px solid #eaeaea}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview .vp-control-gallery-additional-data-preview-image{margin-right:15px}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview .vp-control-gallery-additional-data-preview-image img{display:block;width:70px;border-radius:3px;-webkit-box-shadow:0 0 0 1px #fff, 0 0 0 2px #eaeaea;box-shadow:0 0 0 1px #fff, 0 0 0 2px #eaeaea}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview .vp-control-gallery-additional-data-preview-size{color:#8f9498}.vp-control-gallery .vp-control-gallery-items{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:start;align-content:flex-start;width:120%;height:325px;padding:7px;margin:-12px;margin-bottom:-25px;overflow:auto;-webkit-transition:.15s margin-right;transition:.15s margin-right}.vp-control-gallery .vp-control-gallery-items::after{content:"";display:block;width:100%}.vp-control-gallery .vp-control-gallery-items>div{position:relative;display:block;width:calc(12.5% - 10px);margin:5px;cursor:move;cursor:-webkit-grab;cursor:grab;border-radius:3px}@media (max-width: 1350px){.vp-control-gallery .vp-control-gallery-items>div{width:calc(14.22% - 10px)}}@media (max-width: 1250px){.vp-control-gallery .vp-control-gallery-items>div{width:calc(16.66% - 10px)}}@media (max-width: 1100px){.vp-control-gallery .vp-control-gallery-items>div{width:calc(25% - 10px)}}.vp-control-gallery .vp-control-gallery-items>div::after{content:"";display:block;padding-top:100%}.vp-control-gallery .vp-control-gallery-items>div.sortable-ghost{opacity:.4}.vp-control-gallery .vp-control-gallery-items>div img{position:absolute;display:block;top:0;left:0;width:100%;height:100%;border-radius:3px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img .vp-control-gallery-items-remove{position:absolute;top:-5px;right:-5px;width:20px;height:20px;color:#fff;cursor:pointer;visibility:hidden;background-color:#dc3232;border-radius:50%;opacity:0;-webkit-transition:.15s visibility, .15s opacity;transition:.15s visibility, .15s opacity}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img .vp-control-gallery-items-remove span{width:20px;height:20px;font-size:10px;line-height:20px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img:hover .vp-control-gallery-items-remove{visibility:visible;opacity:1}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img.active{-webkit-box-shadow:0 0 0 1px #fff, 0 0 0 4px #33b3db;box-shadow:0 0 0 1px #fff, 0 0 0 4px #33b3db}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-add{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;color:#6c7781;text-align:center;cursor:pointer;background-color:#fff;border:1px solid #ccd3da;border-radius:3px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-add>span{position:absolute;top:50%;left:50%;width:24px;height:24px;margin-top:-12px;margin-left:-12px;line-height:24px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-add:hover{color:#555;background-color:#f7f7f7}.vp-input{width:100%}.post-type-vp_lists .CodeMirror{width:100%;text-align:left;border:1px solid #ddd}.post-type-vp_lists .CodeMirror .CodeMirror-matchingbracket{color:inherit;background:rgba(255,150,0,0.3)}.post-type-vp_lists [class*="CodeMirror-lint-message"],.post-type-vp_lists .CodeMirror-lint-marker-multiple,.post-type-vp_lists [class*="CodeMirror-lint-marker"]{background-image:none}.post-type-vp_lists .CodeMirror-lint-marker-error,.post-type-vp_lists .CodeMirror-lint-marker-warning{cursor:help}.post-type-vp_lists .CodeMirror-lint-marker-multiple{position:absolute;top:0}.post-type-vp_lists [class*="CodeMirror-lint-marker"]::before{position:relative;top:-2px;font:400 18px/1 dashicons}.post-type-vp_lists [class*="CodeMirror-lint-message"]::before{position:absolute;left:16px;font:400 16px/1 dashicons}.post-type-vp_lists .CodeMirror-lint-message-error,.post-type-vp_lists .CodeMirror-lint-message-warning{padding:3px 12px 3px 28px;margin:5px 0 2px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1)}.post-type-vp_lists .CodeMirror-lint-message-warning{background-color:#fff8e5;border-left:4px solid #ffb900}.post-type-vp_lists .CodeMirror-lint-message-warning::before,.post-type-vp_lists .CodeMirror-lint-marker-warning::before{content:"\f534";color:#f6a306}.post-type-vp_lists .CodeMirror-lint-message-error{background-color:#fbeaea;border-left:4px solid #dc3232}.post-type-vp_lists .CodeMirror-lint-message-error::before,.post-type-vp_lists .CodeMirror-lint-marker-error::before{content:"\f153";color:#dc3232}.post-type-vp_lists .CodeMirror-lint-tooltip{background:0 0;border:none;border-radius:0;direction:ltr}@media (max-width: 850px){.vp-steps__right,.vp-steps__step{float:none;width:100%}}
|
1 |
/*!
|
2 |
* Name : Visual Portfolio
|
3 |
+
* Version : 1.6.0
|
4 |
* Author : nK https://nkdev.info
|
5 |
*/.dashicons-visual-portfolio,.dashicons-visual-portfolio-gray,.mce-widget .mce-i-visual-portfolio{background-image:url("../images/icon.svg");background-repeat:no-repeat;background-position:center center;background-size:15px;opacity:.6}.mce-widget .mce-i-visual-portfolio{background-image:url("../images/icon-mce.svg");opacity:1}.menu-top.current .dashicons-visual-portfolio,.menu-top:hover .dashicons-visual-portfolio,.wp-has-current-submenu .dashicons-visual-portfolio{opacity:1}.dashicons-visual-portfolio-gray,.mce-i-visual-portfolio-gray{background-image:url("../images/icon-gray.svg")}.vc_element-icon[data-is-container="true"].icon-visual-portfolio,.vc_element-icon.icon-visual-portfolio{background-position:50% 50%}.vc_element-icon.icon-visual-portfolio,.vc_control-visual-portfolio{position:relative;overflow:hidden;background-image:url("../images/icon-vc.png");background-position:50% 50%;background-size:cover;border-radius:3px}.vc_add-element-container .icon-visual-portfolio{position:absolute}.vc_control-visual-portfolio{display:inline-block;width:18px;height:18px;margin:0 2px;cursor:pointer}.vc_controls-row .vc_control-visual-portfolio{float:right;margin:4px}.vc_control-visual-portfolio-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.vp-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-sizing:border-box;box-sizing:border-box;margin-right:-15px;margin-left:-15px}.vp-col-1,.vp-col-2,.vp-col-3,.vp-col-4,.vp-col-5,.vp-col-6,.vp-col-7,.vp-col-8,.vp-col-9,.vp-col-10,.vp-col-11,.vp-col-12{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:15px;padding-left:15px}.vp-col-1{-ms-flex-preferred-size:8.33333%;flex-basis:8.33333%;max-width:8.33333%}.vp-col-2{-ms-flex-preferred-size:16.66667%;flex-basis:16.66667%;max-width:16.66667%}.vp-col-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.vp-col-4{-ms-flex-preferred-size:33.33333%;flex-basis:33.33333%;max-width:33.33333%}.vp-col-5{-ms-flex-preferred-size:41.66667%;flex-basis:41.66667%;max-width:41.66667%}.vp-col-6{-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.vp-col-7{-ms-flex-preferred-size:58.33333%;flex-basis:58.33333%;max-width:58.33333%}.vp-col-8{-ms-flex-preferred-size:66.66667%;flex-basis:66.66667%;max-width:66.66667%}.vp-col-9{-ms-flex-preferred-size:75%;flex-basis:75%;max-width:75%}.vp-col-10{-ms-flex-preferred-size:83.33333%;flex-basis:83.33333%;max-width:83.33333%}.vp-col-11{-ms-flex-preferred-size:91.66667%;flex-basis:91.66667%;max-width:91.66667%}.vp-col-12{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.vp-col-clearfix{-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.vp-col-clearfix .vp-control-html{margin-bottom:0}.post-type-vp_lists.post-php,.post-type-vp_lists.post-new-php{background-color:#edeff0}.post-type-vp_lists.post-php #wpcontent,.post-type-vp_lists.post-new-php #wpcontent{padding-left:0}.post-type-vp_lists.post-php .wrap,.post-type-vp_lists.post-new-php .wrap{margin:0}.post-type-vp_lists.post-php #poststuff,.post-type-vp_lists.post-new-php #poststuff{padding-top:0}.post-type-vp_lists.post-php #wpfooter,.post-type-vp_lists.post-new-php #wpfooter{display:none}.post-type-vp_lists.post-php #wpbody-content,.post-type-vp_lists.post-new-php #wpbody-content{padding-bottom:0}.post-type-vp_lists.post-php #post-body.columns-2 #postbox-container-1,.post-type-vp_lists.post-new-php #post-body.columns-2 #postbox-container-1{position:fixed;top:0;right:300px;bottom:0;width:300px;overflow:auto;-webkit-overflow-scrolling:touch}html.wp-toolbar .post-type-vp_lists.post-php #post-body.columns-2 #postbox-container-1,html.wp-toolbar .post-type-vp_lists.post-new-php #post-body.columns-2 #postbox-container-1{top:32px}@media only screen and (max-width: 850px){.post-type-vp_lists.post-php #post-body.columns-2 #postbox-container-1,.post-type-vp_lists.post-new-php #post-body.columns-2 #postbox-container-1{position:relative;top:auto;right:auto;bottom:auto;width:100%;margin-right:0}}.post-type-vp_lists.post-php #postbox-container-2,.post-type-vp_lists.post-new-php #postbox-container-2{position:absolute;top:0;right:0;bottom:0;left:0;width:calc(100% - 300px);min-height:calc(100vh - 32px);overflow:auto;-webkit-overflow-scrolling:touch}@media only screen and (max-width: 850px){.post-type-vp_lists.post-php #postbox-container-2,.post-type-vp_lists.post-new-php #postbox-container-2{right:0;bottom:auto;width:100%}}.post-type-vp_lists.post-php .columns-2 #side-sortables,.post-type-vp_lists.post-new-php .columns-2 #side-sortables{width:auto}.post-type-vp_lists.post-php .notice,.post-type-vp_lists.post-new-php .notice{margin:0;margin-right:300px;margin-bottom:1px}@media only screen and (max-width: 850px){.post-type-vp_lists.post-php .notice,.post-type-vp_lists.post-new-php .notice{margin-right:0}}.post-type-vp_lists.post-php #poststuff .postbox,.post-type-vp_lists.post-new-php #poststuff .postbox{margin-bottom:0;border-color:#e2e4e7;border-top:0;border-right:0}.post-type-vp_lists.post-php #poststuff .postbox>h2,.post-type-vp_lists.post-new-php #poststuff .postbox>h2{padding:15px;border-bottom:none}.post-type-vp_lists.post-php #poststuff .postbox>.handlediv,.post-type-vp_lists.post-new-php #poststuff .postbox>.handlediv{height:50px}.post-type-vp_lists.post-php #poststuff .postbox>.inside,.post-type-vp_lists.post-new-php #poststuff .postbox>.inside{padding:15px;padding-top:0}.vp-control{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:19px}.vp-control>label{width:100%;margin-bottom:5px}.vp-control>.vp-control-description{width:100%;margin:2px 0 5px;font-size:13px;font-style:italic;color:#666}.vp-control.vp-control-checkbox,.vp-control.vp-control-toggle{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.vp-control.vp-control-checkbox>label,.vp-control.vp-control-toggle>label{margin-bottom:0}.vp-control.vp-control-textarea textarea{width:100%}.vp-image-picker{display:none}.vp-image-picker,.vp-image-picker *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-image-picker+ul.thumbnails.image_picker_selector li{margin:0 10px 10px 0}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail{padding:0;cursor:pointer;border:none}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail img{display:block;border:2px solid transparent}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail.selected{background-color:transparent}.vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail.selected img{border-color:#0073aa}.vp-image-picker+ul.thumbnails.image_picker_selector .group_title{padding-top:5px;padding-left:5px;font-weight:500}.vp-control-range [type="number"]{width:50px;margin-left:10px}.vp-control-range [type="range"]{-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;padding:0;background:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vp-control-range [type="range"]::-webkit-slider-thumb{-webkit-box-sizing:border-box;box-sizing:border-box;width:18px;height:18px;margin-top:-7px;cursor:pointer;background:#555d66;background-clip:padding-box;border:4px solid transparent;border-radius:50%;-webkit-appearance:none;appearance:none}.vp-control-range [type="range"]::-moz-range-thumb{box-sizing:border-box;width:18px;height:18px;cursor:pointer;background:#555d66;background-clip:padding-box;border:4px solid transparent;border-radius:50%}.vp-control-range [type="range"]::-ms-thumb{box-sizing:border-box;width:14px;height:14px;margin-top:0;cursor:pointer;background:#555d66;background-clip:padding-box;border:2px solid transparent;border-radius:50%}.vp-control-range [type="range"]:focus{outline:none}.vp-control-range [type="range"]:focus::-webkit-slider-thumb{color:#191e23;background-color:#fff;outline:2px solid transparent;outline-offset:-2px;-webkit-box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff;box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff}.vp-control-range [type="range"]:focus::-moz-range-thumb{color:#191e23;background-color:#fff;outline:2px solid transparent;outline-offset:-2px;box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff}.vp-control-range [type="range"]:focus::-ms-thumb{color:#191e23;background-color:#fff;outline:2px solid transparent;outline-offset:-2px;box-shadow:inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff}.vp-control-range [type="range"]::-webkit-slider-runnable-track{height:3px;margin-top:-4px;cursor:pointer;background:#e2e4e7;border-radius:1.5px}.vp-control-range [type="range"]::-moz-range-track{height:3px;cursor:pointer;background:#e2e4e7;border-radius:1.5px}.vp-control-range [type="range"]::-ms-track{height:3px;margin-top:-4px;color:transparent;cursor:pointer;background:#e2e4e7;border-color:transparent;border-radius:1.5px}.vp-control-toggle,.vp-control-toggle *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-control-toggle .vp-toggle{position:relative}.vp-control-toggle .vp-toggle .vp-toggle__track{content:"";display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:36px;height:18px;vertical-align:top;background-color:#fff;border:2px solid #6c7781;border-radius:9px;-webkit-transition:background .2s ease;transition:background .2s ease}.vp-control-toggle .vp-toggle .vp-toggle__track::after{content:"";position:absolute;display:block;top:50%;right:5px;width:3px;height:3px;margin-top:-3px;border:1.5px solid #6c7781;border-radius:3px}.vp-control-toggle .vp-toggle:hover .vp-toggle__track{background-color:#e2e4e7}.vp-control-toggle .vp-toggle [type="checkbox"]:checked ~ .vp-toggle__track{background-color:#33b3db;border:2px solid #33b3db}.vp-control-toggle .vp-toggle [type="checkbox"]:checked ~ .vp-toggle__track::after{top:50%;right:auto;left:8px;width:0;height:5px;margin-top:-3px;border:0;border-right:2px solid #fff;border-radius:0}.vp-control-toggle .vp-toggle .vp-toggle__thumb{position:absolute;display:block;top:4px;left:4px;width:10px;height:10px;background-color:#6c7781;border:5px solid #6c7781;border-radius:50%;-webkit-transition:-webkit-transform .1s ease;transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease, -webkit-transform .1s ease}.vp-control-toggle .vp-toggle [type="checkbox"]:focus ~ .vp-toggle__track{-webkit-box-shadow:0 0 0 2px #fff, 0 0 0 3px #6c7781;box-shadow:0 0 0 2px #fff, 0 0 0 3px #6c7781}.vp-control-toggle .vp-toggle [type="checkbox"]:checked ~ .vp-toggle__thumb{background-color:#fff;border-width:0;-webkit-transform:translateX(18px);transform:translateX(18px)}.vp-control-toggle .vp-toggle [type="checkbox"]{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;margin:0;opacity:0;z-index:1}.vp-control-image-dropdown{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;padding:5px 7px;cursor:pointer;background-color:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);box-shadow:inset 0 1px 2px rgba(0,0,0,0.07)}.vp-control-image-dropdown,.vp-control-image-dropdown *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-control-image-dropdown::before{content:"";position:absolute;display:block;top:50%;right:6px;width:0;height:0;margin-top:-2px;border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px}.vp-control-image-dropdown.active::before{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.vp-control-image-dropdown .vp-control-image-dropdown__preview{display:block;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:32px}.vp-control-image-dropdown .vp-control-image-dropdown__preview img{display:block;width:100%;height:auto}.vp-control-image-dropdown .vp-control-image-dropdown__title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding-left:10px}.vp-control-image-dropdown .vp-control-image-dropdown__content{position:absolute;display:none;top:100%;left:0;width:100%;max-width:285px;margin-top:7px;margin-left:-1px;cursor:default;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.04);box-shadow:0 1px 1px rgba(0,0,0,0.04);z-index:1}.vp-control-image-dropdown .vp-control-image-dropdown__content>div{width:100%;max-height:250px;padding:4px;overflow:auto}.vp-control-image-dropdown .vp-control-image-dropdown__content::before{content:"";position:absolute;display:block;top:-5px;left:10px;width:0;height:0;border-right:5px solid transparent;border-bottom:5px solid #e5e5e5;border-left:5px solid transparent}.vp-control-image-dropdown .vp-control-image-dropdown__content::after{content:"";position:absolute;display:block;top:-7px;right:0;left:0;height:7px}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector,.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector .group>ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li{display:block;-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;float:none;max-width:25%;margin:0}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li.group,.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li.group_title{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li .thumbnail{padding:3px}.vp-control-image-dropdown .vp-control-image-dropdown__content .vp-image-picker+ul.thumbnails.image_picker_selector li img{width:100%;height:auto}.vp-control-image-dropdown.active .vp-control-image-dropdown__content{display:block}.vp-oembed-preview{position:relative;width:100%;padding-top:56.25%;color:#a2a2a2;background-color:#f1f1f1;border:1px solid #e8e8e8}.vp-oembed-preview::after{content:"\f126";position:absolute;display:block;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:dashicons;font-size:20px;font-style:normal;font-weight:400;line-height:1;text-align:center;text-decoration:inherit;vertical-align:top;z-index:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vp-oembed-preview>iframe{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.vp-portfolio__thumbnail{position:relative;display:block;max-width:70px;padding-top:100%;overflow:hidden;border-radius:3px}.vp-portfolio__thumbnail img{position:absolute;display:block;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.vp-portfolio__thumbnail:empty{background-color:#f1f1f1;border:1px solid #e8e8e8}.vp-portfolio__thumbnail:empty,.vp-portfolio__thumbnail:empty:hover,.vp-portfolio__thumbnail:empty:active,.vp-portfolio__thumbnail:empty:focus{color:#a2a2a2}.vp-portfolio__thumbnail:empty::after{content:"\f128";position:absolute;display:block;top:50%;left:50%;width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:dashicons;font-size:20px;font-style:normal;font-weight:400;line-height:1;text-align:center;text-decoration:inherit;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-list-table th.column-portfolio_post_thumbs{width:70px}.wp-list-table th.column-vp_lists_post_shortcode{width:250px}@media screen and (max-width: 782px){.wp-list-table th.column-portfolio_post_thumbs{display:none}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-portfolio_post_thumbs{float:left;width:70px !important;min-width:70px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-portfolio_post_thumbs::before{content:none}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-title{overflow:hidden;clear:right}}.vp-portfolio-list .vp-portfolio-list__icon span{display:block;width:120px;height:120px;margin:0 auto;margin-top:60px;background-size:105px}.vp-portfolio-list .vp-portfolio-list__text{text-align:center}.vp-portfolio-list .vp-portfolio-list__text p{margin-top:30px;margin-bottom:30px;font-size:15px;font-weight:500;color:#8e8e8e}.vp-portfolio-list .vp-portfolio-list__text .button-hero{display:inline-block}.vp_list_preview{padding:0 12px;margin-right:-12px;margin-left:-12px}.vp_list_preview iframe{width:100%;min-height:120px;-webkit-transition:height .3s;transition:height .3s}.vp-content-source{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-right:9px;padding-left:9px;margin-right:-15px;margin-left:-15px}.vp-content-source .vp-content-source__item{position:relative;width:70px;height:50px;padding:12px;margin:0 5px;color:#6c7781;text-align:center;cursor:pointer;border:1px solid transparent;border-radius:3px}.vp-content-source .vp-content-source__item.active,.vp-content-source .vp-content-source__item:hover{color:#555;background-color:#ecf0f4}.vp-content-source .vp-content-source__item.active{color:#fff;background-color:#6c7781;border-color:#6c7781}.vp-content-source .vp-content-source__item .vp-content-source__item-icon>span{width:24px;height:24px;margin-top:2px;font-size:24px}.vp-content-source .vp-content-source__item .vp-content-source__item-title{position:absolute;top:58%;right:8px;left:8px;font-weight:500}.vp-content-source .vp-content-source__item-content{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:100%}.vp-content-source .vp-content-source__item-content>div{position:relative;display:none;padding:0 15px;padding-bottom:1px;margin-top:12px;margin-right:-9px;margin-bottom:-14px;margin-left:-9px;overflow:hidden;background-color:#f9f9fa;border-top:1px solid #eee}.vp-content-source .vp-content-source__item-content>div:empty{display:none !important}.vp-content-source .vp-content-source__item-content>div.active{display:block}.vp-select2{width:100%}.vp-select2+.select2{width:100%}.post-attributes-label+.vp-select2+.select2{margin-top:5px}.vp-select2+.select2 ul,.vp-select2+.select2 li{margin-bottom:0}.vp-select2+.select2 .select2-selection{border:1px solid #ddd;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.07);box-shadow:inset 0 1px 2px rgba(0,0,0,0.07)}.vp-select2+.select2.select2-container--open .select2-selection{outline:none}.vp-select2+.select2 .select2-selection--multiple{min-height:27px}.vp-select2+.select2 .select2-selection--multiple .select2-selection__choice{padding:3px 8px;margin-top:3px;color:#fff;background-color:#6c7781;border-color:#6c7781}.vp-select2+.select2 .select2-selection--multiple .select2-selection__choice__remove{float:right;margin-right:0;margin-left:3px;color:inherit;opacity:.5}.select2-vp-container ul,.select2-vp-container li{margin-bottom:0}.select2-vp-container .select2-dropdown{border-color:#ddd}.select2-vp-container .select2-search--dropdown .select2-search__field{padding:3px 4px;border:1px solid #ddd;outline:none;-webkit-box-shadow:none;box-shadow:none}.select2-vp-container .select2-results__option[aria-selected="true"]{background-color:#efeeee}.select2-vp-container .select2-results__option--highlighted[aria-selected]{background-color:#33b3db}.vp-select2-ajax__result{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.vp-select2-ajax__result .vp-select2-ajax__result-img{position:relative;-webkit-box-flex:0;-ms-flex:0 0 35px;flex:0 0 35px;background-color:rgba(0,0,0,0.1);background-position:center center;background-size:cover;border-radius:3px}.vp-select2-ajax__result .vp-select2-ajax__result-img::after{content:"";display:block;width:100%;padding-top:100%}.vp-select2-ajax__result .vp-select2-ajax__result-data{padding-left:10px}.vp-select2-ajax__result .vp-select2-ajax__result-title{font-size:16px;font-weight:500;line-height:1}.vp-select2-ajax__result .vp-select2-ajax__result-post-type{font-size:12px;opacity:.5}.vp-control-gallery .vp-control-gallery-additional-data{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;top:0;right:-350px;bottom:0;width:350px;padding:15px 13px;overflow:auto;background-color:#fff;border-left:1px solid #eaeaea;-webkit-transition:.15s right;transition:.15s right}.vp-control-gallery .vp-control-gallery-additional-data.active{right:0}.vp-control-gallery .vp-control-gallery-additional-data.active+.vp-control-gallery-items{margin-right:335px}@media (max-width: 910px){.vp-control-gallery .vp-control-gallery-additional-data{position:relative;display:none;right:0;width:120%;height:auto;margin-bottom:30px;border:1px solid #eaeaea}.vp-control-gallery .vp-control-gallery-additional-data.active{display:block}.vp-control-gallery .vp-control-gallery-additional-data.active+.vp-control-gallery-items{margin-right:-15px}}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview{display:-webkit-box;display:-ms-flexbox;display:flex;padding:15px 13px;margin:-15px -13px;margin-bottom:15px;border-bottom:1px solid #eaeaea}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview .vp-control-gallery-additional-data-preview-image{margin-right:15px}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview .vp-control-gallery-additional-data-preview-image img{display:block;width:70px;border-radius:3px;-webkit-box-shadow:0 0 0 1px #fff, 0 0 0 2px #eaeaea;box-shadow:0 0 0 1px #fff, 0 0 0 2px #eaeaea}.vp-control-gallery .vp-control-gallery-additional-data .vp-control-gallery-additional-data-preview .vp-control-gallery-additional-data-preview-size{color:#8f9498}.vp-control-gallery .vp-control-gallery-items{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:start;align-content:flex-start;width:120%;height:325px;padding:7px;margin:-12px;margin-bottom:-25px;overflow:auto;-webkit-transition:.15s margin-right;transition:.15s margin-right}.vp-control-gallery .vp-control-gallery-items::after{content:"";display:block;width:100%}.vp-control-gallery .vp-control-gallery-items>div{position:relative;display:block;width:calc(12.5% - 10px);margin:5px;cursor:move;cursor:-webkit-grab;cursor:grab;border-radius:3px}@media (max-width: 1350px){.vp-control-gallery .vp-control-gallery-items>div{width:calc(14.22% - 10px)}}@media (max-width: 1250px){.vp-control-gallery .vp-control-gallery-items>div{width:calc(16.66% - 10px)}}@media (max-width: 1100px){.vp-control-gallery .vp-control-gallery-items>div{width:calc(25% - 10px)}}.vp-control-gallery .vp-control-gallery-items>div::after{content:"";display:block;padding-top:100%}.vp-control-gallery .vp-control-gallery-items>div.sortable-ghost{opacity:.4}.vp-control-gallery .vp-control-gallery-items>div img{position:absolute;display:block;top:0;left:0;width:100%;height:100%;border-radius:3px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img .vp-control-gallery-items-remove{position:absolute;top:-5px;right:-5px;width:20px;height:20px;color:#fff;cursor:pointer;visibility:hidden;background-color:#dc3232;border-radius:50%;opacity:0;-webkit-transition:.15s visibility, .15s opacity;transition:.15s visibility, .15s opacity}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img .vp-control-gallery-items-remove span{width:20px;height:20px;font-size:10px;line-height:20px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img:hover .vp-control-gallery-items-remove{visibility:visible;opacity:1}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-img.active{-webkit-box-shadow:0 0 0 1px #fff, 0 0 0 4px #33b3db;box-shadow:0 0 0 1px #fff, 0 0 0 4px #33b3db}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-add{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;color:#6c7781;text-align:center;cursor:pointer;background-color:#fff;border:1px solid #ccd3da;border-radius:3px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-add>span{position:absolute;top:50%;left:50%;width:24px;height:24px;margin-top:-12px;margin-left:-12px;line-height:24px}.vp-control-gallery .vp-control-gallery-items>.vp-control-gallery-items-add:hover{color:#555;background-color:#f7f7f7}.vp-input{width:100%}.post-type-vp_lists .CodeMirror{width:100%;text-align:left;border:1px solid #ddd}.post-type-vp_lists .CodeMirror .CodeMirror-matchingbracket{color:inherit;background:rgba(255,150,0,0.3)}.post-type-vp_lists [class*="CodeMirror-lint-message"],.post-type-vp_lists .CodeMirror-lint-marker-multiple,.post-type-vp_lists [class*="CodeMirror-lint-marker"]{background-image:none}.post-type-vp_lists .CodeMirror-lint-marker-error,.post-type-vp_lists .CodeMirror-lint-marker-warning{cursor:help}.post-type-vp_lists .CodeMirror-lint-marker-multiple{position:absolute;top:0}.post-type-vp_lists [class*="CodeMirror-lint-marker"]::before{position:relative;top:-2px;font:400 18px/1 dashicons}.post-type-vp_lists [class*="CodeMirror-lint-message"]::before{position:absolute;left:16px;font:400 16px/1 dashicons}.post-type-vp_lists .CodeMirror-lint-message-error,.post-type-vp_lists .CodeMirror-lint-message-warning{padding:3px 12px 3px 28px;margin:5px 0 2px;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1)}.post-type-vp_lists .CodeMirror-lint-message-warning{background-color:#fff8e5;border-left:4px solid #ffb900}.post-type-vp_lists .CodeMirror-lint-message-warning::before,.post-type-vp_lists .CodeMirror-lint-marker-warning::before{content:"\f534";color:#f6a306}.post-type-vp_lists .CodeMirror-lint-message-error{background-color:#fbeaea;border-left:4px solid #dc3232}.post-type-vp_lists .CodeMirror-lint-message-error::before,.post-type-vp_lists .CodeMirror-lint-marker-error::before{content:"\f153";color:#dc3232}.post-type-vp_lists .CodeMirror-lint-tooltip{background:0 0;border:none;border-radius:0;direction:ltr}@media (max-width: 850px){.vp-steps__right,.vp-steps__step{float:none;width:100%}}
|
assets/admin/images/layouts/tiles-2-3.svg
CHANGED
@@ -9,6 +9,4 @@
|
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="30" height="40" />
|
11 |
<rect class="cls-1" x="34" y="0" width="31" height="40" />
|
12 |
-
<rect class="cls-1" x="0" y="44" width="30" height="21" />
|
13 |
-
<rect class="cls-1" x="34" y="44" width="31" height="21" />
|
14 |
</svg>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="30" height="40" />
|
11 |
<rect class="cls-1" x="34" y="0" width="31" height="40" />
|
|
|
|
|
12 |
</svg>
|
assets/admin/images/layouts/tiles-2-4.svg
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
</style>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="30" height="40" />
|
11 |
-
<rect class="cls-1" x="34" y="0" width="31" height="
|
12 |
<rect class="cls-1" x="0" y="44" width="30" height="21" />
|
13 |
-
<rect class="cls-1" x="34" y="
|
14 |
</svg>
|
8 |
</style>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="30" height="40" />
|
11 |
+
<rect class="cls-1" x="34" y="0" width="31" height="40" />
|
12 |
<rect class="cls-1" x="0" y="44" width="30" height="21" />
|
13 |
+
<rect class="cls-1" x="34" y="44" width="31" height="21" />
|
14 |
</svg>
|
assets/admin/images/layouts/tiles-2-5.svg
CHANGED
@@ -7,9 +7,8 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="
|
11 |
-
<rect class="cls-1" x="34" y="0" width="
|
12 |
-
<rect class="cls-1" x="0" y="
|
13 |
-
<rect class="cls-1" x="34" y="
|
14 |
-
<rect class="cls-1" x="0" y="62" width="30" height="3" />
|
15 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="30" height="40" />
|
11 |
+
<rect class="cls-1" x="34" y="0" width="31" height="21" />
|
12 |
+
<rect class="cls-1" x="0" y="44" width="30" height="21" />
|
13 |
+
<rect class="cls-1" x="34" y="25" width="31" height="40" />
|
|
|
14 |
</svg>
|
assets/admin/images/layouts/tiles-2-6.svg
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="65" height="65" viewBox="0 0 65 65">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: #cfcfcf;
|
6 |
+
fill-rule: evenodd;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="31" height="21" />
|
11 |
+
<rect class="cls-1" x="34" y="0" width="30" height="33" />
|
12 |
+
<rect class="cls-1" x="0" y="25" width="30" height="33" />
|
13 |
+
<rect class="cls-1" x="34" y="37" width="30" height="28" />
|
14 |
+
<rect class="cls-1" x="0" y="62" width="30" height="3" />
|
15 |
+
</svg>
|
assets/admin/images/layouts/tiles-3-10.svg
CHANGED
@@ -7,11 +7,16 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
-
<rect class="cls-1" x="23" y="0" width="
|
|
|
12 |
|
13 |
-
<rect class="cls-1" x="0" y="
|
14 |
-
|
15 |
-
|
16 |
-
<rect class="cls-1" x="
|
|
|
|
|
|
|
|
|
17 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="16" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="36" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="16" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="20" width="19" height="16" />
|
15 |
+
<rect class="cls-1" x="46" y="20" width="19" height="36" />
|
16 |
+
|
17 |
+
<rect class="cls-1" x="0" y="40" width="19" height="36" />
|
18 |
+
<rect class="cls-1" x="23" y="40" width="19" height="16" />
|
19 |
+
|
20 |
+
<rect class="cls-1" x="23" y="59" width="19" height="16" />
|
21 |
+
<rect class="cls-1" x="46" y="59" width="19" height="16" />
|
22 |
</svg>
|
assets/admin/images/layouts/tiles-3-11.svg
CHANGED
@@ -7,11 +7,17 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
-
<rect class="cls-1" x="23" y="0" width="
|
|
|
12 |
|
13 |
-
<rect class="cls-1" x="
|
14 |
-
<rect class="cls-1" x="
|
15 |
-
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
17 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="16" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="16" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="36" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="20" width="19" height="16" />
|
15 |
+
<rect class="cls-1" x="23" y="20" width="19" height="16" />
|
16 |
+
<rect class="cls-1" x="46" y="20" width="19" height="16" />
|
17 |
+
|
18 |
+
<rect class="cls-1" x="0" y="40" width="19" height="36" />
|
19 |
+
<rect class="cls-1" x="23" y="40" width="19" height="36" />
|
20 |
+
<rect class="cls-1" x="46" y="40" width="19" height="16" />
|
21 |
+
|
22 |
+
<rect class="cls-1" x="46" y="59" width="19" height="16" />
|
23 |
</svg>
|
assets/admin/images/layouts/tiles-3-12.svg
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="65" height="65" viewBox="0 0 65 65">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: #cfcfcf;
|
6 |
+
fill-rule: evenodd;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="16" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="16" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="36" />
|
13 |
+
|
14 |
+
<rect class="cls-1" x="0" y="20" width="19" height="16" />
|
15 |
+
<rect class="cls-1" x="23" y="20" width="19" height="16" />
|
16 |
+
|
17 |
+
<rect class="cls-1" x="0" y="40" width="19" height="16" />
|
18 |
+
<rect class="cls-1" x="23" y="40" width="19" height="36" />
|
19 |
+
<rect class="cls-1" x="46" y="40" width="19" height="36" />
|
20 |
+
|
21 |
+
<rect class="cls-1" x="0" y="59" width="19" height="16" />
|
22 |
+
</svg>
|
assets/admin/images/layouts/tiles-3-13.svg
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="65" height="65" viewBox="0 0 65 65">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: #cfcfcf;
|
6 |
+
fill-rule: evenodd;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="19" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="42" height="42" />
|
12 |
+
|
13 |
+
<rect class="cls-1" x="0" y="23" width="19" height="19" />
|
14 |
+
|
15 |
+
<rect class="cls-1" x="0" y="46" width="42" height="19" />
|
16 |
+
<rect class="cls-1" x="46" y="46" width="19" height="19" />
|
17 |
+
</svg>
|
assets/admin/images/layouts/tiles-3-14.svg
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="65" height="65" viewBox="0 0 65 65">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: #cfcfcf;
|
6 |
+
fill-rule: evenodd;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="19" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="42" height="42" />
|
12 |
+
|
13 |
+
<rect class="cls-1" x="0" y="23" width="19" height="19" />
|
14 |
+
|
15 |
+
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
16 |
+
<rect class="cls-1" x="23" y="46" width="19" height="19" />
|
17 |
+
<rect class="cls-1" x="46" y="46" width="19" height="19" />
|
18 |
+
</svg>
|
assets/admin/images/layouts/tiles-3-15.svg
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="65" height="65" viewBox="0 0 65 65">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: #cfcfcf;
|
6 |
+
fill-rule: evenodd;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="42" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="42" height="19" />
|
12 |
+
|
13 |
+
<rect class="cls-1" x="23" y="23" width="19" height="19" />
|
14 |
+
<rect class="cls-1" x="46" y="23" width="19" height="42" />
|
15 |
+
|
16 |
+
<rect class="cls-1" x="0" y="46" width="42" height="19" />
|
17 |
+
</svg>
|
assets/admin/images/layouts/tiles-3-3.svg
CHANGED
@@ -7,15 +7,11 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
-
<rect class="cls-1" x="23" y="0" width="19" height="
|
12 |
-
<rect class="cls-1" x="46" y="0" width="19" height="
|
13 |
|
14 |
-
<rect class="cls-1" x="0" y="
|
15 |
-
<rect class="cls-1" x="23" y="
|
16 |
-
<rect class="cls-1" x="46" y="
|
17 |
-
|
18 |
-
<rect class="cls-1" x="0" y="50" width="19" height="15" />
|
19 |
-
<rect class="cls-1" x="23" y="50" width="19" height="15" />
|
20 |
-
<rect class="cls-1" x="46" y="50" width="19" height="15" />
|
21 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="26" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="26" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="26" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="30" width="19" height="26" />
|
15 |
+
<rect class="cls-1" x="23" y="30" width="19" height="26" />
|
16 |
+
<rect class="cls-1" x="46" y="30" width="19" height="26" />
|
|
|
|
|
|
|
|
|
17 |
</svg>
|
assets/admin/images/layouts/tiles-3-4.svg
CHANGED
@@ -7,14 +7,15 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
-
<rect class="cls-1" x="23" y="0" width="19" height="
|
12 |
-
<rect class="cls-1" x="46" y="0" width="19" height="
|
13 |
|
14 |
-
<rect class="cls-1" x="0" y="
|
15 |
-
<rect class="cls-1" x="23" y="
|
|
|
16 |
|
17 |
-
<rect class="cls-1" x="0" y="
|
18 |
-
<rect class="cls-1" x="23" y="
|
19 |
-
<rect class="cls-1" x="46" y="
|
20 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="15" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="15" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="15" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="19" width="19" height="27" />
|
15 |
+
<rect class="cls-1" x="23" y="19" width="19" height="27" />
|
16 |
+
<rect class="cls-1" x="46" y="19" width="19" height="27" />
|
17 |
|
18 |
+
<rect class="cls-1" x="0" y="50" width="19" height="15" />
|
19 |
+
<rect class="cls-1" x="23" y="50" width="19" height="15" />
|
20 |
+
<rect class="cls-1" x="46" y="50" width="19" height="15" />
|
21 |
</svg>
|
assets/admin/images/layouts/tiles-3-5.svg
CHANGED
@@ -7,12 +7,12 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
<rect class="cls-1" x="23" y="0" width="19" height="19" />
|
12 |
-
<rect class="cls-1" x="46" y="0" width="19" height="
|
13 |
|
|
|
14 |
<rect class="cls-1" x="23" y="23" width="19" height="19" />
|
15 |
-
<rect class="cls-1" x="46" y="23" width="19" height="19" />
|
16 |
|
17 |
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
18 |
<rect class="cls-1" x="23" y="46" width="19" height="19" />
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="19" />
|
11 |
<rect class="cls-1" x="23" y="0" width="19" height="19" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="42" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="23" width="19" height="19" />
|
15 |
<rect class="cls-1" x="23" y="23" width="19" height="19" />
|
|
|
16 |
|
17 |
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
18 |
<rect class="cls-1" x="23" y="46" width="19" height="19" />
|
assets/admin/images/layouts/tiles-3-6.svg
CHANGED
@@ -7,11 +7,11 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
-
<rect class="cls-1" x="23" y="0" width="19" height="
|
12 |
<rect class="cls-1" x="46" y="0" width="19" height="19" />
|
13 |
|
14 |
-
<rect class="cls-1" x="
|
15 |
<rect class="cls-1" x="46" y="23" width="19" height="19" />
|
16 |
|
17 |
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="42" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="19" />
|
12 |
<rect class="cls-1" x="46" y="0" width="19" height="19" />
|
13 |
|
14 |
+
<rect class="cls-1" x="23" y="23" width="19" height="19" />
|
15 |
<rect class="cls-1" x="46" y="23" width="19" height="19" />
|
16 |
|
17 |
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
assets/admin/images/layouts/tiles-3-7.svg
CHANGED
@@ -15,5 +15,6 @@
|
|
15 |
<rect class="cls-1" x="46" y="23" width="19" height="19" />
|
16 |
|
17 |
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
18 |
-
<rect class="cls-1" x="23" y="46" width="
|
|
|
19 |
</svg>
|
15 |
<rect class="cls-1" x="46" y="23" width="19" height="19" />
|
16 |
|
17 |
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
18 |
+
<rect class="cls-1" x="23" y="46" width="19" height="19" />
|
19 |
+
<rect class="cls-1" x="46" y="46" width="19" height="19" />
|
20 |
</svg>
|
assets/admin/images/layouts/tiles-3-8.svg
CHANGED
@@ -7,17 +7,13 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="19" height="
|
11 |
-
<rect class="cls-1" x="23" y="0" width="19" height="
|
12 |
-
<rect class="cls-1" x="46" y="0" width="19" height="
|
13 |
|
14 |
-
<rect class="cls-1" x="0" y="
|
15 |
-
<rect class="cls-1" x="46" y="
|
16 |
|
17 |
-
<rect class="cls-1" x="0" y="
|
18 |
-
<rect class="cls-1" x="23" y="
|
19 |
-
|
20 |
-
<rect class="cls-1" x="0" y="59" width="19" height="16" />
|
21 |
-
<rect class="cls-1" x="23" y="59" width="19" height="16" />
|
22 |
-
<rect class="cls-1" x="46" y="59" width="19" height="16" />
|
23 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="19" height="19" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="42" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="19" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="23" width="19" height="19" />
|
15 |
+
<rect class="cls-1" x="46" y="23" width="19" height="19" />
|
16 |
|
17 |
+
<rect class="cls-1" x="0" y="46" width="19" height="19" />
|
18 |
+
<rect class="cls-1" x="23" y="46" width="42" height="19" />
|
|
|
|
|
|
|
|
|
19 |
</svg>
|
assets/admin/images/layouts/tiles-3-9.svg
CHANGED
@@ -8,15 +8,16 @@
|
|
8 |
</style>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="19" height="16" />
|
11 |
-
<rect class="cls-1" x="23" y="0" width="19" height="
|
12 |
-
<rect class="cls-1" x="46" y="0" width="19" height="
|
13 |
|
14 |
<rect class="cls-1" x="0" y="20" width="19" height="16" />
|
15 |
-
<rect class="cls-1" x="
|
16 |
|
17 |
<rect class="cls-1" x="0" y="40" width="19" height="16" />
|
18 |
-
<rect class="cls-1" x="23" y="40" width="19" height="
|
19 |
-
<rect class="cls-1" x="46" y="40" width="19" height="36" />
|
20 |
|
21 |
<rect class="cls-1" x="0" y="59" width="19" height="16" />
|
|
|
|
|
22 |
</svg>
|
8 |
</style>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="19" height="16" />
|
11 |
+
<rect class="cls-1" x="23" y="0" width="19" height="36" />
|
12 |
+
<rect class="cls-1" x="46" y="0" width="19" height="16" />
|
13 |
|
14 |
<rect class="cls-1" x="0" y="20" width="19" height="16" />
|
15 |
+
<rect class="cls-1" x="46" y="20" width="19" height="36" />
|
16 |
|
17 |
<rect class="cls-1" x="0" y="40" width="19" height="16" />
|
18 |
+
<rect class="cls-1" x="23" y="40" width="19" height="16" />
|
|
|
19 |
|
20 |
<rect class="cls-1" x="0" y="59" width="19" height="16" />
|
21 |
+
<rect class="cls-1" x="23" y="59" width="19" height="16" />
|
22 |
+
<rect class="cls-1" x="46" y="59" width="19" height="16" />
|
23 |
</svg>
|
assets/admin/images/layouts/tiles-4-3.svg
CHANGED
@@ -8,16 +8,22 @@
|
|
8 |
</style>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="13" height="13" />
|
11 |
-
<rect class="cls-1" x="17" y="0" width="13" height="
|
12 |
-
<rect class="cls-1" x="34" y="0" width="
|
|
|
13 |
|
14 |
-
<rect class="cls-1" x="0" y="17" width="13" height="
|
15 |
-
<rect class="cls-1" x="17" y="
|
|
|
|
|
16 |
|
17 |
-
<rect class="cls-1" x="0" y="
|
18 |
-
<rect class="cls-1" x="
|
19 |
-
<rect class="cls-1" x="
|
|
|
20 |
|
21 |
-
<rect class="cls-1" x="
|
22 |
-
<rect class="cls-1" x="
|
|
|
|
|
23 |
</svg>
|
8 |
</style>
|
9 |
</defs>
|
10 |
<rect class="cls-1" x="0" y="0" width="13" height="13" />
|
11 |
+
<rect class="cls-1" x="17" y="0" width="13" height="20" />
|
12 |
+
<rect class="cls-1" x="34" y="0" width="13" height="13" />
|
13 |
+
<rect class="cls-1" x="51" y="0" width="13" height="20" />
|
14 |
|
15 |
+
<rect class="cls-1" x="0" y="17" width="13" height="20" />
|
16 |
+
<rect class="cls-1" x="17" y="24" width="13" height="13" />
|
17 |
+
<rect class="cls-1" x="34" y="17" width="13" height="20" />
|
18 |
+
<rect class="cls-1" x="51" y="24" width="13" height="13" />
|
19 |
|
20 |
+
<rect class="cls-1" x="0" y="41" width="13" height="13" />
|
21 |
+
<rect class="cls-1" x="17" y="41" width="13" height="20" />
|
22 |
+
<rect class="cls-1" x="34" y="41" width="13" height="13" />
|
23 |
+
<rect class="cls-1" x="51" y="41" width="13" height="20" />
|
24 |
|
25 |
+
<rect class="cls-1" x="0" y="58" width="13" height="20" />
|
26 |
+
<rect class="cls-1" x="17" y="65" width="13" height="13" />
|
27 |
+
<rect class="cls-1" x="34" y="58" width="13" height="20" />
|
28 |
+
<rect class="cls-1" x="51" y="65" width="13" height="13" />
|
29 |
</svg>
|
assets/admin/images/layouts/tiles-4-4.svg
CHANGED
@@ -7,11 +7,17 @@
|
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
-
<rect class="cls-1" x="0" y="0" width="
|
11 |
-
<rect class="cls-1" x="
|
12 |
-
<rect class="cls-1" x="34" y="
|
13 |
|
14 |
-
<rect class="cls-1" x="
|
15 |
-
<rect class="cls-1" x="
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
</svg>
|
7 |
}
|
8 |
</style>
|
9 |
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="13" height="13" />
|
11 |
+
<rect class="cls-1" x="17" y="0" width="13" height="13" />
|
12 |
+
<rect class="cls-1" x="34" y="0" width="30" height="30" />
|
13 |
|
14 |
+
<rect class="cls-1" x="0" y="17" width="13" height="13" />
|
15 |
+
<rect class="cls-1" x="17" y="17" width="13" height="13" />
|
16 |
+
|
17 |
+
<rect class="cls-1" x="0" y="34" width="30" height="30" />
|
18 |
+
<rect class="cls-1" x="34" y="34" width="13" height="13" />
|
19 |
+
<rect class="cls-1" x="51" y="34" width="13" height="13" />
|
20 |
+
|
21 |
+
<rect class="cls-1" x="34" y="51" width="13" height="13" />
|
22 |
+
<rect class="cls-1" x="51" y="51" width="13" height="13" />
|
23 |
</svg>
|
assets/admin/images/layouts/tiles-4-5.svg
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="65" height="65" viewBox="0 0 65 65">
|
2 |
+
<defs>
|
3 |
+
<style>
|
4 |
+
.cls-1 {
|
5 |
+
fill: #cfcfcf;
|
6 |
+
fill-rule: evenodd;
|
7 |
+
}
|
8 |
+
</style>
|
9 |
+
</defs>
|
10 |
+
<rect class="cls-1" x="0" y="0" width="30" height="30" />
|
11 |
+
<rect class="cls-1" x="34" y="0" width="30" height="13" />
|
12 |
+
<rect class="cls-1" x="34" y="17" width="30" height="13" />
|
13 |
+
|
14 |
+
<rect class="cls-1" x="34" y="34" width="30" height="30" />
|
15 |
+
<rect class="cls-1" x="0" y="34" width="30" height="13" />
|
16 |
+
<rect class="cls-1" x="0" y="51" width="30" height="13" />
|
17 |
+
</svg>
|
assets/admin/js/gutenberg-block.min.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
!function(t){function e(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var o={};e.m=t,e.c=o,e.d=function(t,o,n){e.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,"a",o),o},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=13)}([function(t,e){(function(e){t.exports=e}).call(e,{})},,,,,,,,,,,,,function(t,e,o){t.exports=o(14)},function(t,e,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=o(15),r=o.n(n),l=o(16),a=o.n(l),s=o(17),i=o.n(s),c=wp.i18n.__,u=wp.element,p=u.Fragment,f=u.RawHTML,d=wp.blocks.registerBlockType,v=wp.components,m=v.Placeholder,y=v.Spinner,h=v.SelectControl,g=v.withAPIData;d("nk/visual-portfolio",{title:"Visual Portfolio",icon:wp.element.createElement("img",{className:"visual-portfolio-gutenberg-icon",src:a.a,alt:"visual-portfolio-icon"}),category:"common",keywords:["visual portfolio","vp","portfolio"],supports:{anchor:!0,className:!0,html:!1,ghostkitIndents:!0,ghostkitDisplay:!0},attributes:{id:{type:"string"}},edit:g(function(){return{portfolioLayouts:"/visual-portfolio/v1/get_layouts/"}})(function(t){var e=t.portfolioLayouts,o=t.attributes,n=t.className,l=t.setAttributes,a=o.id,s=o.ghostkitClassname,u=!1,f=!1;return s&&(n=r()(n,s)),e&&e.data&&e.data.success?(u=[{label:c("--- Select layout ---"),value:""}],Object.keys(e.data.response).map(function(t){var o=e.data.response[t];u.push({label:"#"+o.id+" - "+o.title,value:o.id}),a&&parseInt(a,10)===o.id&&(f=o.edit_url)})):a&&(u=[{label:"#"+a,value:a}]),wp.element.createElement(m,{icon:wp.element.createElement("img",{className:"visual-portfolio-gutenberg-icon",src:i.a,alt:"visual-portfolio-icon"}),label:c("Visual Portfolio"),className:n},!Array.isArray(u)&&wp.element.createElement(y,null),Array.isArray(u)&&u.length&&wp.element.createElement(p,null,f&&wp.element.createElement("a",{href:f,target:"_blank"},c("Edit Layout")),wp.element.createElement(h,{value:a,onChange:function(t){return l({id:t})},options:u})),Array.isArray(u)&&!u.length&&c("No portfolio layouts found."))}),save:function(t){var e=t.attributes,o=t.className,n=e.id,r="[visual_portfolio";return n&&(r+=' id="'+n+'"'),o&&(r+=' class="'+o+'"'),r+="]",wp.element.createElement(f,null,r)}})},function(t,e,o){var n,r,l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};/*!
|
2 |
Copyright (c) 2016 Jed Watson.
|
3 |
Licensed under the MIT License (MIT), see
|
4 |
http://jedwatson.github.io/classnames
|
1 |
+
!function(t){function e(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var o={};e.m=t,e.c=o,e.d=function(t,o,n){e.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,"a",o),o},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=13)}([function(t,e){(function(e){t.exports=e}).call(e,{})},,,,,,,,,,,,,function(t,e,o){t.exports=o(14)},function(t,e,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=o(15),r=o.n(n),l=o(16),a=o.n(l),s=o(17),i=o.n(s),c=wp.i18n.__,u=wp.element,p=u.Fragment,f=u.RawHTML,d=wp.blocks.registerBlockType,v=wp.components,m=v.Placeholder,y=v.Spinner,h=v.SelectControl,g=v.withAPIData;d("nk/visual-portfolio",{title:"Visual Portfolio",icon:wp.element.createElement("img",{className:"dashicon visual-portfolio-gutenberg-icon",src:a.a,alt:"visual-portfolio-icon"}),category:"common",keywords:["visual portfolio","vp","portfolio"],supports:{anchor:!0,className:!0,html:!1,align:["wide","full"],ghostkitIndents:!0,ghostkitDisplay:!0},attributes:{id:{type:"string"}},edit:g(function(){return{portfolioLayouts:"/visual-portfolio/v1/get_layouts/"}})(function(t){var e=t.portfolioLayouts,o=t.attributes,n=t.className,l=t.setAttributes,a=o.id,s=o.ghostkitClassname,u=!1,f=!1;return s&&(n=r()(n,s)),e&&e.data&&e.data.success?(u=[{label:c("--- Select layout ---"),value:""}],Object.keys(e.data.response).map(function(t){var o=e.data.response[t];u.push({label:"#"+o.id+" - "+o.title,value:o.id}),a&&parseInt(a,10)===o.id&&(f=o.edit_url)})):a&&(u=[{label:"#"+a,value:a}]),wp.element.createElement(m,{icon:wp.element.createElement("img",{className:"visual-portfolio-gutenberg-icon",src:i.a,alt:"visual-portfolio-icon"}),label:c("Visual Portfolio"),className:n},!Array.isArray(u)&&wp.element.createElement(y,null),Array.isArray(u)&&u.length&&wp.element.createElement(p,null,f&&wp.element.createElement("a",{href:f,target:"_blank"},c("Edit Layout")),wp.element.createElement(h,{value:a,onChange:function(t){return l({id:t})},options:u})),Array.isArray(u)&&!u.length&&c("No portfolio layouts found."))}),save:function(t){var e=t.attributes,o=t.className,n=e.id,r="[visual_portfolio";return n&&(r+=' id="'+n+'"'),o&&(r+=' class="'+o+'"'),r+="]",wp.element.createElement(f,null,r)}})},function(t,e,o){var n,r,l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};/*!
|
2 |
Copyright (c) 2016 Jed Watson.
|
3 |
Licensed under the MIT License (MIT), see
|
4 |
http://jedwatson.github.io/classnames
|
assets/admin/js/mce-dropdown.min.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
!function(t){function i(n){if(o[n])return o[n].exports;var e=o[n]={i:n,l:!1,exports:{}};return t[n].call(e.exports,e,e.exports,i),e.l=!0,e.exports}var o={};i.m=t,i.c=o,i.d=function(t,o,n){i.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(o,"a",o),o},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p="",i(i.s=5)}({5:function(t,i,o){t.exports=o(6)},6:function(t,i){/*!
|
2 |
* Name : Visual Portfolio
|
3 |
-
* Version : 1.
|
4 |
* Author : nK https://nkdev.info
|
5 |
*/
|
6 |
var o=window,n=o.tinymce,e=o.VPTinyMCEOptions;if(void 0!==e&&e.length){var u=[{text:"",value:""}];Object.keys(e).forEach(function(t){u.push({text:e[t].title,value:e[t].id})}),n.create("tinymce.plugins.visual_portfolio",{init:function(t){t.addButton("visual_portfolio",{type:"listbox",title:"Visual Portfolio",icon:"visual-portfolio",classes:"visual-portfolio-btn",onclick:function(){this.menu&&this.menu.$el.find(".mce-first").hide()},onselect:function(){this.value()&&t.insertContent('[visual_portfolio id="'+this.value()+'"]'),this.value("")},values:u,value:""})}}),n.PluginManager.add("visual_portfolio",n.plugins.visual_portfolio)}}});
|
1 |
!function(t){function i(n){if(o[n])return o[n].exports;var e=o[n]={i:n,l:!1,exports:{}};return t[n].call(e.exports,e,e.exports,i),e.l=!0,e.exports}var o={};i.m=t,i.c=o,i.d=function(t,o,n){i.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},i.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(o,"a",o),o},i.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},i.p="",i(i.s=5)}({5:function(t,i,o){t.exports=o(6)},6:function(t,i){/*!
|
2 |
* Name : Visual Portfolio
|
3 |
+
* Version : 1.6.0
|
4 |
* Author : nK https://nkdev.info
|
5 |
*/
|
6 |
var o=window,n=o.tinymce,e=o.VPTinyMCEOptions;if(void 0!==e&&e.length){var u=[{text:"",value:""}];Object.keys(e).forEach(function(t){u.push({text:e[t].title,value:e[t].id})}),n.create("tinymce.plugins.visual_portfolio",{init:function(t){t.addButton("visual_portfolio",{type:"listbox",title:"Visual Portfolio",icon:"visual-portfolio",classes:"visual-portfolio-btn",onclick:function(){this.menu&&this.menu.$el.find(".mce-first").hide()},onselect:function(){this.value()&&t.insertContent('[visual_portfolio id="'+this.value()+'"]'),this.value("")},values:u,value:""})}}),n.PluginManager.add("visual_portfolio",n.plugins.visual_portfolio)}}});
|
assets/admin/js/script.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){function t(n){if(a[n])return a[n].exports;var i=a[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var a={};t.m=e,t.c=a,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=9)}({10:function(e,t){function a(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}function n(){h[_.is(":checked")?"show":"hide"]()}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=jQuery,r=window,l=r.ajaxurl,c=r.VPAdminVariables,s=r.Tooltip,d=r.CodeMirror,p=r.emmetCodeMirror,v=o("body"),m=o(window),u=o('form[name="post"]'),f=o('[name="post_type"]'),g=o("#postID").val();v.on("focus",'[name="vp_list_shortcode"], [name="vp_filter_shortcode"]',function(){this.select()}),v.on("click",".vp-onclick-selection",function(){window.getSelection().selectAllChildren(this)});var h=o("#vp_format_video"),_=o("#post-format-video");h.length&&_.length&&(n(),v.on("change","[name=post_format]",function(){n()}));var y=null,b=void 0;v.on("change input",'.vp-input[name="video_url"]',function(){null!==y&&y.abort();var e=o(this);e.next(".vp-oembed-preview").html(""),clearTimeout(b),b=setTimeout(function(){y=o.ajax({url:l,method:"GET",dataType:"json",data:{action:"vp_find_oembed",q:e.val(),nonce:c.nonce},complete:function(t){var a=t.responseJSON;a&&void 0!==a.html&&e.next(".vp-oembed-preview").html(a.html)}})},250)}),void 0!==s&&o('[data-hint]:not([data-hint=""]):not([data-hint="false"])').each(function(){var e=o(this);new s(this,{placement:e.attr("data-hint-place")||"top",title:e.attr("data-hint"),container:o("body")[0],boundariesElement:"viewport"})}),function(){function e(e,t){var a=e.find('[data-image-id="'+t+'"]'),n={id:t};return a.find("[data-additional]").each(function(){var e=o(this),t=e.attr("data-additional");if(n[t]=e.html(),"true"===e.attr("data-to-json"))try{n[t]=JSON.parse(n[t])}catch(e){n[t]=""}}),n}function t(e,t){var a=e.find('[data-image-id="'+t+'"]'),n={};return a.find("[data-meta]").each(function(){n[o(this).attr("data-meta")]=o(this).html()}),n}function n(t){var a=[];t.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img").each(function(){a.push(e(t,o(this).attr("data-image-id")))});var n=JSON.stringify(a),i=t.children("textarea");n!==i.val()&&i.val(n).change()}function r(n,i){var r=n.children("textarea").attr("name"),l=n.children(".vp-control-gallery-additional-data"),c=l.children(".vp-control-gallery-additional-data-preview"),s=n.children(".vp-control-gallery-items").find('.vp-control-gallery-items-img[data-image-id="'+i+'"]'),d=e(n,i),p=t(n,i);d&&Object.keys(d).forEach(function(t){var i=l.find('[name="'+r+"_additional_"+t+'"], [name="'+r+"_additional_"+t+'[]"]').val(d[t]||"");if(i.hasClass("vp-select2")){if(i.hasClass("vp-select2-tags")){var c=[],s=[];n.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img").each(function(){var i=e(n,o(this).attr("data-image-id"));i&&void 0!==i[t]&&i[t]&&(c=[].concat(a(new Set([].concat(a(c),a(i[t]))))))}),c.forEach(function(e){s.push(new window.Option(e,e,!1,!1))}),i.html(s.length?s:""),i.val(void 0!==d[t]&&d[t]?d[t]:"")}i.trigger("change")}}),c.find(".vp-control-gallery-additional-data-preview-image img").attr("src",s.children("img").attr("src")||""),c.find(".vp-control-gallery-additional-data-preview-name").html(p.filename),c.find(".vp-control-gallery-additional-data-preview-size").html(p.width+"x"+p.height+" ("+p.filesizeHumanReadable+")"),c.find(".vp-control-gallery-additional-data-preview-edit a").attr("href",p.editLink.replace("&","&")),s.siblings().removeClass("active"),s.addClass("active"),l.addClass("active"),S=T.find(".vp-control-gallery-additional-data.active").length}function s(e,t){if(L&&(t=!1,L=!1),c&&c.css_editor_error_notice){var a=!1;if(1===e.length?a=c.css_editor_error_notice.singular.replace("%d","1"):e.length>1&&(a=c.css_editor_error_notice.plural.replace("%d",String(e.length))),a){var n=z.prev("#vp_custom_css_notice");if(n.length||t||(n=o('<div class="notice notice-error inline" id="vp_custom_css_notice"></div>'),z.before(n)),!n.length)return;var i='<p class="notification-message">'+a+'</p><p><input id="vp_custom_css_notice_prevent" type="checkbox"><label for="vp_custom_css_notice_prevent">'+c.css_editor_error_checkbox+"</label></p>";n.html(i)}else z.prev("#vp_custom_css_notice").remove()}}if("vp_lists"===f.val()&&u.length){var h=o(".vp-content-source"),_=h.find('[name="vp_content_source"]');h.on("click",".vp-content-source__item",function(){var e=o(this).attr("data-content");h.find('[data-content="'+e+'"]').addClass("active").siblings().removeClass("active"),_.val(e).change()}),h.children('[data-content="'+_.val()+'"]').click(),o.fn.conditionize&&u.conditionize(),o(".vp-control-range").each(function(){var e=o(this).find("input"),t=e.filter('[type="hidden"]');e.on("change input",function(a){e.val(o(this).val()),t.trigger("vp-fake-"+a.type)})}),o.fn.wpColorPicker&&o(".vp-color-picker").each(function(){function e(e){if(a)return void(a=!1);clearTimeout(t),t=setTimeout(function(){o(e.target).change()},300)}var t=void 0,a=!0;o(this).data("change",e).wpColorPicker()}),o.fn.imagepicker&&o(".vp-image-picker").imagepicker();var y=o(".vp_list_preview iframe"),b=!1,w=!1,k=o('<form target="vp_list_preview_iframe" method="post" style="display: none">').attr("action",y.attr("src")).insertAfter(u);o.fn.iFrameResize&&y.iFrameResize({interval:10});var C=void 0;u.on("change input vp-fake-change vp-fake-input",'[name*="vp_"]',function(e){var t=o(this);if(!t.closest(".vp-no-reload").length){var a={name:t.attr("name"),value:t.is("[type=checkbox], [type=radio]")?t.is(":checked"):t.val(),reload:"change"===e.type||"vp-fake-change"===e.type,jQuery:w,$portfolio:b},n=k.find('[name="'+a.name+'"]');n.length||(n=o('<input type="hidden" name="'+a.name+'" />').appendTo(k)),n.attr("value",a.value),m.trigger("vp-preview-change",a),!a.reload&&b||(clearTimeout(C),C=setTimeout(function(){w=!1,b=!1,k.submit()},400))}}),y.on("load",function(){w=this.contentWindow.jQuery,b=w(".vp-portfolio")}),m.on("vp-preview-change",function(e,t){if(t.$portfolio)switch(t.name){case"vp_layout":case"vp_tiles_type":case"vp_masonry_columns":case"vp_items_gap":var a=t.name;a=a.substring(3),a=a.replace("_","-"),t.$portfolio.attr("data-vp-"+a,t.value),t.$portfolio.vpf("init"),t.reload=!1;break;case"vp_filter_align":t.$portfolio.find(".vp-filter").removeClass("vp-filter__align-center vp-filter__align-left vp-filter__align-right").addClass("vp-filter__align-"+t.value),t.reload=!1;break;case"vp_pagination_align":t.$portfolio.find(".vp-pagination").removeClass("vp-pagination__align-center vp-pagination__align-left vp-pagination__align-right").addClass("vp-pagination__align-"+t.value),t.reload=!1;break;case"vp_custom_css":var n=t.$portfolio.closest("html"),i="vp-custom-css-"+g+"-inline-css",o=n.find("#"+i);o.length||(o=t.jQuery('<style id="'+i+'">'),n.find("body").prepend(o)),o.html(t.value),t.reload=!1;break;case"vp_list_name":case"vp_stretch":t.reload=!1}}),v.on("click",".vp-control-image-dropdown",function(e){o(e.target).closest(".vp-control-image-dropdown__content").length||o(this).toggleClass("active")}),v.on("mousedown",function(e){var t=o(e.target).closest(".vp-control-image-dropdown");o(".vp-control-image-dropdown.active").each(function(){this!==t[0]&&o(this).removeClass("active")})}),v.on("change",".vp-control-image-dropdown .vp-image-picker",function(){var e=o(this),t=e.data("picker");if(t){var a=t.select.find('option[value="'+t.select.val()+'"]'),n=a.parent("optgroup"),i=e.closest(".vp-control-image-dropdown"),r=a.attr("data-img-src");i.length&&(i.children(".vp-control-image-dropdown__preview").html('<img src="'+r+'" alt="">'),n.length&&i.children(".vp-control-image-dropdown__title").html(n.attr("label")))}});var x=o('[name="vp_list_name"]'),j=o('[name="post_title"]');x.length&&j.length&&(x.on("input",function(){j.val()!==x.val()&&j.val(x.val()).change()}),j.on("input",function(){x.val(j.val())})),o.fn.select2&&o(".vp-select2").each(function(){var e=o(this),t={width:"100%",minimumResultsForSearch:e.hasClass("vp-select2-nosearch")?-1:1,tags:e.hasClass("vp-select2-tags")},a=!!e.attr("data-post-type")&&o(e.attr("data-post-type"));e.closest(".vp-select2-posts-ajax").length&&(t=o.extend({minimumInputLength:1,ajax:{url:l,dataType:"json",delay:250,data:function(e){return{action:"vp_find_posts",q:e.term,post_type:!!a&&a.val(),nonce:c.nonce}},processResults:function(e){return{results:!(!e||!e.length)&&e}},cache:!0},escapeMarkup:function(e){return e},templateResult:function(e){if(e.loading)return e.text;var t="";e.title&&(t=e.title);var a="";e.post_type&&(a=e.post_type);var n="";return e.img&&(n="style=\"background-image: url('"+e.img+"');\""),'<div class="vp-select2-ajax__result"><div class="vp-select2-ajax__result-img" '+n+'></div><div class="vp-select2-ajax__result-data"><div class="vp-select2-ajax__result-title">'+t+'</div><div class="vp-select2-ajax__result-post-type">'+a+"</div></div></div>"},templateSelection:function(e){return e.title||e.text}},t)),e.closest(".vp-select2-taxonomies-ajax").length&&(t=o.extend({minimumInputLength:1,ajax:{url:l,dataType:"json",delay:250,data:function(e){return{action:"vp_find_taxonomies",q:e.term,post_type:!!a&&a.val(),nonce:c.nonce}},processResults:function(e){var t=[];return e&&Object.keys(e).forEach(function(a){t.push({text:a,children:e[a]})}),{results:t}},cache:!0}},t)),e.select2(t).data("select2").$dropdown.addClass("select2-vp-container")});var T=o(".vp-control-gallery"),S=0;if(o.fn.sortable&&(T.each(function(){var e=o(this),t=e.children(".vp-control-gallery-items-default");e.children(".vp-control-gallery-items").sortable({animation:150,draggable:".vp-control-gallery-items-img",onUpdate:function(){n(e)}}),e.on("click",".vp-control-gallery-items-remove",function(t){t.preventDefault(),o(this).parent().remove(),n(e)}),e.on("click",".vp-control-gallery-items-add",function(a){a.preventDefault();var i=e.data("wp-frame");return i?void i.open():wp.media?(i=wp.media({title:"Select or Upload Images",button:{text:"Use this images"},multiple:!0,library:{type:"image"}}),e.data("wp-frame",i),i.on("select",function(){var a=i.state().get("selection").models;a&&a.length&&(a.forEach(function(a){var n=a.changed.url;a.changed.sizes&&a.changed.sizes.thumbnail&&(n=a.changed.sizes.thumbnail.url);var i=t.children().clone();i.attr("data-image-id",a.id),i.children("img").attr("src",n),i.find('[data-meta="width"]').html(a.changed.width),i.find('[data-meta="height"]').html(a.changed.height),i.find('[data-meta="filename"]').html(a.changed.filename),i.find('[data-meta="editLink"]').html(a.changed.editLink),i.find('[data-meta="filesizeHumanReadable"]').html(a.changed.filesizeHumanReadable),e.find(".vp-control-gallery-items-add").before(i)}),n(e))}),void i.open()):void console.error("Can't access wp.media object.")}),e.on("click",".vp-control-gallery-items-img",function(t){t.preventDefault(),r(e,o(this).attr("data-image-id"))});var a=void 0;e.on("change input",".vp-control-gallery-additional-data [name]",function(){clearTimeout(a),a=setTimeout(function(){var t=e.children(".vp-control-gallery-additional-data"),a=e.children("textarea").attr("name"),r=e.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img.active").attr("data-image-id");if(r){var l=e.children(".vp-control-gallery-items").find('[data-image-id="'+r+'"]');t.find('[name*="'+a+'_additional_"]').each(function(){var e=o(this).attr("name").replace(a+"_additional_","").replace("[]",""),t=o(this).val()||"";"object"===(void 0===t?"undefined":i(t))&&(t=JSON.stringify(t)),l.find('[data-additional="'+e+'"]').html(t||"")}),n(e)}},200)})}),T.length)){var E=T.children(".vp-control-gallery-additional-data");o(document).on("mousedown",function(e){if(S){var t=e.target;o(t).closest(".vp-control-gallery-additional-data, .vp-control-gallery-items-img, .select2-vp-container").length||(E.removeClass("active"),T.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img.active").removeClass("active"),S=T.find(".vp-control-gallery-additional-data.active").length)}})}var z=o('[name="vp_custom_css"]'),A=!1,L=!0;if(void 0!==d&&z.length){if(c&&c.classnames){var O=d.hint.css;d.hint.css=function(e){var t=e.getCursor(),a=O(e)||{from:t,to:e.getCursor(),list:[]},n=e.getTokenAt(t);return"top"===n.state.state&&0===n.string.indexOf(".")&&(a={from:d.Pos(t.line,n.start),to:d.Pos(t.line,n.end),list:[]},c.classnames.forEach(function(e){-1!==e.indexOf(n.string)&&a.list.push(e)})),a}}var $=d.fromTextArea(z[0],{mode:"css",theme:"eclipse",indentUnit:4,autoCloseTags:!0,autoCloseBrackets:!0,matchBrackets:!0,foldGutter:!0,lint:{options:{errors:!0,"box-model":!0,"display-property-grouping":!0,"duplicate-properties":!0,"known-properties":!0,"outline-none":!0},onUpdateLinting:function(e,t,a){var n=[];e.forEach(function(e){"error"===e.severity&&n.push(e)}),a.vcLintErrors=n,A||s(a.vcLintErrors,!0)}},lineNumbers:!0,lineWrapping:!0,scrollPastEnd:!0,emmet_active:!0,emmet:!0,styleActiveLine:!0,continueComments:!0,scrollbarStyle:"simple",extraKeys:{"Ctrl-Space":"autocomplete","Ctrl-/":"toggleComment","Cmd-/":"toggleComment","Alt-F":"findPersistent"},gutters:["CodeMirror-lint-markers","CodeMirror-linenumbers","CodeMirror-foldgutter"]});p($),z.data("CodeMirrorInstance",$),$.on("change",function(){$.save(),z.change()}),$.on("keyup",function(e,t){var a=/^[a-zA-Z]$/.test(t.key);if(!e.state.completionActive||!a){var n=e.getTokenAt(e.getCursor());if("string"!==n.type&&"comment"!==n.type){var i=e.doc.getLine(e.doc.getCursor().line).substr(0,e.doc.getCursor().ch);(a||":"===t.key||" "===t.key&&/:\s+$/.test(i))&&e.showHint({completeSingle:!1})}}})}var M=!1;v.on("click","#publish:not(.disabled)",function(e){if(M=!0,!A){var t=o(this),a=z.length&&z.data("CodeMirrorInstance");a&&a.vcLintErrors&&a.vcLintErrors.length&&(e.preventDefault(),t.addClass("disabled button-disabled button-primary-disabled"),setTimeout(function(){t.removeClass("disabled button-disabled button-primary-disabled")},1500),s(a.vcLintErrors,!1),o("html,body").animate({scrollTop:o("#vp_custom_css").offset().top-100},300),a.focus(),a.setCursor(a.vcLintErrors[0].from.line))}});var P=u.serialize();o(window).on("beforeunload",function(){return M?void(M=!1):P!==u.serialize()||void 0}),v.on("change","#vp_custom_css_notice_prevent",function(){A=!0,o(this).closest(".notice").slideUp()})}}()},9:function(e,t,a){e.exports=a(10)}});
|
1 |
+
!function(e){function t(n){if(a[n])return a[n].exports;var i=a[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var a={};t.m=e,t.c=a,t.d=function(e,a,n){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(a,"a",a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=9)}({10:function(e,t){function a(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}return Array.from(e)}function n(){h[_.is(":checked")?"show":"hide"]()}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=jQuery,r=window,l=r.ajaxurl,s=r.VPAdminVariables,c=r.Tooltip,d=r.CodeMirror,p=r.emmetCodeMirror,v=o("body"),m=o(window),u=o('form[name="post"]'),f=o('[name="post_type"]'),g=o("#postID, #post_ID").eq(0).val();v.on("focus",'[name="vp_list_shortcode"], [name="vp_filter_shortcode"]',function(){this.select()}),v.on("click",".vp-onclick-selection",function(){window.getSelection().selectAllChildren(this)});var h=o("#vp_format_video"),_=o("#post-format-video");h.length&&_.length&&(n(),v.on("change","[name=post_format]",function(){n()}));var y=null,b=void 0;v.on("change input",'.vp-input[name="video_url"]',function(){null!==y&&y.abort();var e=o(this);e.next(".vp-oembed-preview").html(""),clearTimeout(b),b=setTimeout(function(){y=o.ajax({url:l,method:"GET",dataType:"json",data:{action:"vp_find_oembed",q:e.val(),nonce:s.nonce},complete:function(t){var a=t.responseJSON;a&&void 0!==a.html&&e.next(".vp-oembed-preview").html(a.html)}})},250)}),void 0!==c&&o('[data-hint]:not([data-hint=""]):not([data-hint="false"])').each(function(){var e=o(this);new c(this,{placement:e.attr("data-hint-place")||"top",title:e.attr("data-hint"),container:o("body")[0],boundariesElement:"viewport"})}),function(){function e(){var e="",t=o('[name="vp_controls_styles"]'),a=".vp-id-"+g,n=t.val();o('.vp-control-style [type="hidden"]').each(function(){var t=o(this),n=t.closest(".vp-control");if("none"!==n.css("display")){var i=n.find(t.attr("data-style-from")).val();e&&(e+=" "),e+=a+" "+t.attr("data-style-element")+" { "+t.attr("data-style-property")+": "+i+"; }"}}),n!==e&&t.val(e).trigger("vp-fake-change")}function t(e,t){var a=e.find('[data-image-id="'+t+'"]'),n={id:t};return a.find("[data-additional]").each(function(){var e=o(this),t=e.attr("data-additional");if(n[t]=e.html(),"true"===e.attr("data-to-json"))try{n[t]=JSON.parse(n[t])}catch(e){n[t]=""}}),n}function n(e,t){var a=e.find('[data-image-id="'+t+'"]'),n={};return a.find("[data-meta]").each(function(){n[o(this).attr("data-meta")]=o(this).html()}),n}function r(e){var a=[];e.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img").each(function(){a.push(t(e,o(this).attr("data-image-id")))});var n=JSON.stringify(a),i=e.children("textarea");n!==i.val()&&i.val(n).change()}function c(e,i){var r=e.children("textarea").attr("name"),l=e.children(".vp-control-gallery-additional-data"),s=l.children(".vp-control-gallery-additional-data-preview"),c=e.children(".vp-control-gallery-items").find('.vp-control-gallery-items-img[data-image-id="'+i+'"]'),d=t(e,i),p=n(e,i);d&&Object.keys(d).forEach(function(n){var i=l.find('[name="'+r+"_additional_"+n+'"], [name="'+r+"_additional_"+n+'[]"]').val(d[n]||"");if(i.hasClass("vp-select2")){if(i.hasClass("vp-select2-tags")){var s=[],c=[];e.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img").each(function(){var i=t(e,o(this).attr("data-image-id"));i&&void 0!==i[n]&&i[n]&&(s=[].concat(a(new Set([].concat(a(s),a(i[n]))))))}),s.forEach(function(e){c.push(new window.Option(e,e,!1,!1))}),i.html(c.length?c:""),i.val(void 0!==d[n]&&d[n]?d[n]:"")}i.trigger("change")}}),s.find(".vp-control-gallery-additional-data-preview-image img").attr("src",c.children("img").attr("src")||""),s.find(".vp-control-gallery-additional-data-preview-name").html(p.filename),s.find(".vp-control-gallery-additional-data-preview-size").html(p.width+"x"+p.height+" ("+p.filesizeHumanReadable+")"),s.find(".vp-control-gallery-additional-data-preview-edit a").attr("href",p.editLink.replace("&","&")),c.siblings().removeClass("active"),c.addClass("active"),l.addClass("active"),E=S.find(".vp-control-gallery-additional-data.active").length}function h(e,t){if(O&&(t=!1,O=!1),s&&s.css_editor_error_notice){var a=!1;if(1===e.length?a=s.css_editor_error_notice.singular.replace("%d","1"):e.length>1&&(a=s.css_editor_error_notice.plural.replace("%d",String(e.length))),a){var n=A.prev("#vp_custom_css_notice");if(n.length||t||(n=o('<div class="notice notice-error inline" id="vp_custom_css_notice"></div>'),A.before(n)),!n.length)return;var i='<p class="notification-message">'+a+'</p><p><input id="vp_custom_css_notice_prevent" type="checkbox"><label for="vp_custom_css_notice_prevent">'+s.css_editor_error_checkbox+"</label></p>";n.html(i)}else A.prev("#vp_custom_css_notice").remove()}}if("vp_lists"===f.val()&&u.length){var _=o(".vp-content-source"),y=_.find('[name="vp_content_source"]');_.on("click",".vp-content-source__item",function(){var e=o(this).attr("data-content");_.find('[data-content="'+e+'"]').addClass("active").siblings().removeClass("active"),y.val(e).change()}),_.children('[data-content="'+y.val()+'"]').click(),o.fn.conditionize&&u.conditionize(),o(".vp-control-range").each(function(){var e=o(this).find("input"),t=e.filter('[type="hidden"]');e.on("change input",function(a){e.val(o(this).val()),t.trigger("vp-fake-"+a.type)})}),o.fn.wpColorPicker&&o(".vp-color-picker").each(function(){function e(e){if(a)return void(a=!1);clearTimeout(t),t=setTimeout(function(){o(e.target).change()},300)}var t=void 0,a=!0;o(this).data("change",e).wpColorPicker()}),o.fn.imagepicker&&o(".vp-image-picker").imagepicker();var b=o(".vp_list_preview iframe"),w=!1,k=!1,C=o('<form target="vp_list_preview_iframe" method="post" style="display: none">').attr("action",b.attr("src")).insertAfter(u);o.fn.iFrameResize&&b.iFrameResize({interval:10});var x=void 0;u.on("change input vp-fake-change vp-fake-input",'[name*="vp_"]',function(t){var a=o(this);if(!a.closest(".vp-no-reload").length){if(o('[name="'+a.attr("name")+'__style[]"]').length)return void e();var n={name:a.attr("name"),value:a.is("[type=checkbox], [type=radio]")?a.is(":checked"):a.val(),reload:"change"===t.type||"vp-fake-change"===t.type,jQuery:k,$portfolio:w},i=C.find('[name="'+n.name+'"]');i.length||(i=o('<input type="hidden" name="'+n.name+'" />').appendTo(C)),i.attr("value",n.value),m.trigger("vp-preview-change",n),n.reload||e(),!n.reload&&w||(clearTimeout(x),x=setTimeout(function(){k=!1,w=!1,C.submit()},400))}}),b.on("load",function(){k=this.contentWindow.jQuery,w=k(".vp-portfolio"),e()}),m.on("vp-preview-change",function(e,t){if(t.$portfolio)switch(t.name){case"vp_layout":case"vp_tiles_type":case"vp_masonry_columns":case"vp_justified_row_height":case"vp_justified_row_height_tolerance":case"vp_slider_effect":case"vp_slider_speed":case"vp_slider_autoplay":case"vp_slider_centered_slides":case"vp_slider_loop":case"vp_slider_free_mode":case"vp_slider_arrows":case"vp_slider_arrows_icon_prev":case"vp_slider_arrows_icon_next":case"vp_slider_bullets":case"vp_slider_bullets_dynamic":case"vp_items_gap":var a=t.name;a=a.substring(3),a=a.replace(/_/g,"-"),t.$portfolio.attr("data-vp-"+a,t.value),t.$portfolio.vpf("init"),t.reload=!1;break;case"vp_filter_align":t.$portfolio.find(".vp-filter").removeClass("vp-filter__align-center vp-filter__align-left vp-filter__align-right").addClass("vp-filter__align-"+t.value),t.reload=!1;break;case"vp_pagination_align":t.$portfolio.find(".vp-pagination").removeClass("vp-pagination__align-center vp-pagination__align-left vp-pagination__align-right").addClass("vp-pagination__align-"+t.value),t.reload=!1;break;case"vp_controls_styles":var n=t.$portfolio.closest("html"),i="vp-controls-styles-"+g+"-inline-css",o=n.find("#"+i);o.length||(o=t.jQuery('<style id="'+i+'">'),n.find("body").prepend(o)),o.html(t.value),t.reload=!1;break;case"vp_custom_css":var r=t.$portfolio.closest("html"),l="vp-custom-css-"+g+"-inline-css",s=r.find("#"+l);s.length||(s=t.jQuery('<style id="'+l+'">'),r.find("body").prepend(s)),s.html(t.value),t.reload=!1;break;case"vp_list_name":case"vp_stretch":t.reload=!1}}),v.on("click",".vp-control-image-dropdown",function(e){o(e.target).closest(".vp-control-image-dropdown__content").length||o(this).toggleClass("active")}),v.on("mousedown",function(e){var t=o(e.target).closest(".vp-control-image-dropdown");o(".vp-control-image-dropdown.active").each(function(){this!==t[0]&&o(this).removeClass("active")})}),v.on("change",".vp-control-image-dropdown .vp-image-picker",function(){var e=o(this),t=e.data("picker");if(t){var a=t.select.find('option[value="'+t.select.val()+'"]'),n=a.parent("optgroup"),i=e.closest(".vp-control-image-dropdown"),r=a.attr("data-img-src");i.length&&(i.children(".vp-control-image-dropdown__preview").html('<img src="'+r+'" alt="">'),n.length&&i.children(".vp-control-image-dropdown__title").html(n.attr("label")))}});var j=o('[name="vp_list_name"]'),T=o('[name="post_title"]');j.length&&T.length&&(j.on("input",function(){T.val()!==j.val()&&T.val(j.val()).change()}),T.on("input",function(){j.val(T.val())})),o.fn.select2&&o(".vp-select2").each(function(){var e=o(this),t={width:"100%",minimumResultsForSearch:e.hasClass("vp-select2-nosearch")?-1:1,tags:e.hasClass("vp-select2-tags")},a=!!e.attr("data-post-type")&&o(e.attr("data-post-type"));e.closest(".vp-select2-posts-ajax").length&&(t=o.extend({minimumInputLength:1,ajax:{url:l,dataType:"json",delay:250,data:function(e){return{action:"vp_find_posts",q:e.term,post_type:!!a&&a.val(),nonce:s.nonce}},processResults:function(e){return{results:!(!e||!e.length)&&e}},cache:!0},escapeMarkup:function(e){return e},templateResult:function(e){if(e.loading)return e.text;var t="";e.title&&(t=e.title);var a="";e.post_type&&(a=e.post_type);var n="";return e.img&&(n="style=\"background-image: url('"+e.img+"');\""),'<div class="vp-select2-ajax__result"><div class="vp-select2-ajax__result-img" '+n+'></div><div class="vp-select2-ajax__result-data"><div class="vp-select2-ajax__result-title">'+t+'</div><div class="vp-select2-ajax__result-post-type">'+a+"</div></div></div>"},templateSelection:function(e){return e.title||e.text}},t)),e.closest(".vp-select2-taxonomies-ajax").length&&(t=o.extend({minimumInputLength:1,ajax:{url:l,dataType:"json",delay:250,data:function(e){return{action:"vp_find_taxonomies",q:e.term,post_type:!!a&&a.val(),nonce:s.nonce}},processResults:function(e){var t=[];return e&&Object.keys(e).forEach(function(a){t.push({text:a,children:e[a]})}),{results:t}},cache:!0}},t)),e.select2(t).data("select2").$dropdown.addClass("select2-vp-container")});var S=o(".vp-control-gallery"),E=0;if(o.fn.sortable&&(S.each(function(){var e=o(this),t=e.children(".vp-control-gallery-items-default");e.children(".vp-control-gallery-items").sortable({animation:150,draggable:".vp-control-gallery-items-img",onUpdate:function(){r(e)}}),e.on("click",".vp-control-gallery-items-remove",function(t){t.preventDefault(),o(this).parent().remove(),r(e)}),e.on("click",".vp-control-gallery-items-add",function(a){a.preventDefault();var n=e.data("wp-frame");return n?void n.open():wp.media?(n=wp.media({title:"Select or Upload Images",button:{text:"Use this images"},multiple:!0,library:{type:"image"}}),e.data("wp-frame",n),n.on("select",function(){var a=n.state().get("selection").models;a&&a.length&&(a.forEach(function(a){var n=a.changed.url;a.changed.sizes&&a.changed.sizes.thumbnail&&(n=a.changed.sizes.thumbnail.url);var i=t.children().clone();i.attr("data-image-id",a.id),i.children("img").attr("src",n),i.find('[data-meta="width"]').html(a.changed.width),i.find('[data-meta="height"]').html(a.changed.height),i.find('[data-meta="filename"]').html(a.changed.filename),i.find('[data-meta="editLink"]').html(a.changed.editLink),i.find('[data-meta="filesizeHumanReadable"]').html(a.changed.filesizeHumanReadable),e.find(".vp-control-gallery-items-add").before(i)}),r(e))}),void n.open()):void console.error("Can't access wp.media object.")}),e.on("click",".vp-control-gallery-items-img",function(t){t.preventDefault(),c(e,o(this).attr("data-image-id"))});var a=void 0;e.on("change input",".vp-control-gallery-additional-data [name]",function(){clearTimeout(a),a=setTimeout(function(){var t=e.children(".vp-control-gallery-additional-data"),a=e.children("textarea").attr("name"),n=e.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img.active").attr("data-image-id");if(n){var l=e.children(".vp-control-gallery-items").find('[data-image-id="'+n+'"]');t.find('[name*="'+a+'_additional_"]').each(function(){var e=o(this).attr("name").replace(a+"_additional_","").replace("[]",""),t=o(this).val()||"";"object"===(void 0===t?"undefined":i(t))&&(t=JSON.stringify(t)),l.find('[data-additional="'+e+'"]').html(t||"")}),r(e)}},200)})}),S.length)){var z=S.children(".vp-control-gallery-additional-data");o(document).on("mousedown",function(e){if(E){var t=e.target;o(t).closest(".vp-control-gallery-additional-data, .vp-control-gallery-items-img, .select2-vp-container").length||(z.removeClass("active"),S.children(".vp-control-gallery-items").find(".vp-control-gallery-items-img.active").removeClass("active"),E=S.find(".vp-control-gallery-additional-data.active").length)}})}var A=o('[name="vp_custom_css"]'),L=!1,O=!0;if(void 0!==d&&A.length){if(s&&s.classnames){var $=d.hint.css;d.hint.css=function(e){var t=e.getCursor(),a=$(e)||{from:t,to:e.getCursor(),list:[]},n=e.getTokenAt(t);return"top"===n.state.state&&0===n.string.indexOf(".")&&(a={from:d.Pos(t.line,n.start),to:d.Pos(t.line,n.end),list:[]},s.classnames.forEach(function(e){-1!==e.indexOf(n.string)&&a.list.push(e)})),a}}var M=d.fromTextArea(A[0],{mode:"css",theme:"eclipse",indentUnit:4,autoCloseTags:!0,autoCloseBrackets:!0,matchBrackets:!0,foldGutter:!0,lint:{options:{errors:!0,"box-model":!0,"display-property-grouping":!0,"duplicate-properties":!0,"known-properties":!0,"outline-none":!0},onUpdateLinting:function(e,t,a){var n=[];e.forEach(function(e){"error"===e.severity&&n.push(e)}),a.vcLintErrors=n,L||h(a.vcLintErrors,!0)}},lineNumbers:!0,lineWrapping:!0,scrollPastEnd:!0,emmet_active:!0,emmet:!0,styleActiveLine:!0,continueComments:!0,scrollbarStyle:"simple",extraKeys:{"Ctrl-Space":"autocomplete","Ctrl-/":"toggleComment","Cmd-/":"toggleComment","Alt-F":"findPersistent"},gutters:["CodeMirror-lint-markers","CodeMirror-linenumbers","CodeMirror-foldgutter"]});p(M),A.data("CodeMirrorInstance",M),M.on("change",function(){M.save(),A.change()}),M.on("keyup",function(e,t){var a=/^[a-zA-Z]$/.test(t.key);if(!e.state.completionActive||!a){var n=e.getTokenAt(e.getCursor());if("string"!==n.type&&"comment"!==n.type){var i=e.doc.getLine(e.doc.getCursor().line).substr(0,e.doc.getCursor().ch);(a||":"===t.key||" "===t.key&&/:\s+$/.test(i))&&e.showHint({completeSingle:!1})}}})}var P=!1;v.on("click","#publish:not(.disabled)",function(e){if(P=!0,!L){var t=o(this),a=A.length&&A.data("CodeMirrorInstance");a&&a.vcLintErrors&&a.vcLintErrors.length&&(e.preventDefault(),t.addClass("disabled button-disabled button-primary-disabled"),setTimeout(function(){t.removeClass("disabled button-disabled button-primary-disabled")},1500),h(a.vcLintErrors,!1),o("html,body").animate({scrollTop:o("#vp_custom_css").offset().top-100},300),a.focus(),a.setCursor(a.vcLintErrors[0].from.line))}});var R=u.serialize();o(window).on("beforeunload",function(){return P?void(P=!1):R!==u.serialize()||void 0}),v.on("change","#vp_custom_css_notice_prevent",function(){L=!0,o(this).closest(".notice").slideUp()})}}()},9:function(e,t,a){e.exports=a(10)}});
|
assets/admin/js/vc-frontend.min.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
* Additional js for frontend VC
|
3 |
*
|
4 |
* Name : Visual Portfolio
|
5 |
-
* Version : 1.
|
6 |
* Author : nK https://nkdev.info
|
7 |
*/
|
8 |
var t=window,o=t.vc;jQuery(function(){void 0!==o&&o.events.on("shortcodes:add shortcodeView:updated",function(e){if("visual_portfolio"===e.settings.base){var n=o.$frame[0].contentWindow,t=!!n&&n.jQuery;if(t){var r=t(e.view.el).children(".vp-portfolio");r.length&&void 0!==r.vpf&&r.vpf()}}})})}});
|
2 |
* Additional js for frontend VC
|
3 |
*
|
4 |
* Name : Visual Portfolio
|
5 |
+
* Version : 1.6.0
|
6 |
* Author : nK https://nkdev.info
|
7 |
*/
|
8 |
var t=window,o=t.vc;jQuery(function(){void 0!==o&&o.events.on("shortcodes:add shortcodeView:updated",function(e){if("visual_portfolio"===e.settings.base){var n=o.$frame[0].contentWindow,t=!!n&&n.jQuery;if(t){var r=t(e.view.el).children(".vp-portfolio");r.length&&void 0!==r.vpf&&r.vpf()}}})})}});
|
assets/css/style.min.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/*!
|
2 |
* Name : Visual Portfolio
|
3 |
-
* Version : 1.
|
4 |
* Author : nK https://nkdev.info
|
5 |
-
*/.vp-portfolio{position:relative;min-height:114px}.vp-portfolio,.vp-portfolio *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-portfolio__items{-webkit-transition:.3s height ease-in-out, .3s transform ease-in-out;transition:.3s height ease-in-out, .3s transform ease-in-out}.vp-portfolio::after,.vp-portfolio__items::after{content:"";display:block;clear:both}.vp-portfolio__items-wrap,.vp-portfolio__filter-wrap,.vp-portfolio__pagination-wrap,.vp-portfolio__item{position:relative;overflow:hidden}.vp-portfolio__items-wrap,.vp-portfolio__filter-wrap,.vp-portfolio__pagination-wrap{visibility:hidden;opacity:0;-webkit-transition:.
|
1 |
/*!
|
2 |
* Name : Visual Portfolio
|
3 |
+
* Version : 1.6.0
|
4 |
* Author : nK https://nkdev.info
|
5 |
+
*/.vp-portfolio{position:relative;min-height:114px}.vp-portfolio,.vp-portfolio *{-webkit-box-sizing:border-box;box-sizing:border-box}.vp-portfolio__items{-webkit-transition:.3s height ease-in-out, .3s transform ease-in-out;transition:.3s height ease-in-out, .3s transform ease-in-out;will-change:height, transform}.vp-portfolio::after,.vp-portfolio__items::after{content:"";display:block;clear:both}.vp-portfolio__items-wrap,.vp-portfolio__filter-wrap,.vp-portfolio__pagination-wrap,.vp-portfolio__item{position:relative;overflow:hidden}.vp-portfolio__items-wrap,.vp-portfolio__filter-wrap,.vp-portfolio__pagination-wrap{visibility:hidden;opacity:0;-webkit-transition:.3s opacity, .3s visibility;transition:.3s opacity, .3s visibility;will-change:opacity, visibility}.vp-portfolio__item-wrap{position:relative;float:left;width:33.333%}.vp-portfolio__item .vp-portfolio__item-img img,.vp-portfolio__item .vp-portfolio__item-img a{display:block;width:100%;height:auto}.vp-portfolio__preloader-wrap{visibility:visible;opacity:1;-webkit-transition:.3s opacity, .3s visibility;transition:.3s opacity, .3s visibility;will-change:opacity, visibility}.vp-portfolio__preloader{position:absolute;left:50%;width:23px;height:24px;margin-top:45px;margin-left:-11px;-webkit-animation:vp-preloader 2s linear infinite;animation:vp-preloader 2s linear infinite}.vp-portfolio__preloader span{position:absolute;display:block;top:0;left:0;width:10px;height:7px;background-color:#8a8a8a}.vp-portfolio__preloader span:nth-of-type(1){height:14px}.vp-portfolio__preloader span:nth-of-type(2){left:12px}.vp-portfolio__preloader span:nth-of-type(3){top:16px}.vp-portfolio__preloader span:nth-of-type(4){top:9px;left:12px;height:14px}@-webkit-keyframes vp-preloader{0%,100%{opacity:.5}40%,60%{opacity:1}}@keyframes vp-preloader{0%,100%{opacity:.5}40%,60%{opacity:1}}[data-vp-layout="tiles"] .vp-portfolio__item-img img,[data-vp-layout="tiles"] .vp-portfolio__item-img{position:absolute;top:0;right:0;bottom:0;left:0}[data-vp-layout="tiles"] .vp-portfolio__item-img-wrap{position:relative;display:block;overflow:hidden}[data-vp-layout="tiles"] .vp-portfolio__item-img-wrap::before{content:"";display:block;margin-top:56%}[data-vp-layout="tiles"] .vp-portfolio__item-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;font-family:"object-fit: cover; object-position: 50% 50%;"}[data-vp-layout="justified"] .vp-portfolio__items{-webkit-transition:.2s height ease-in-out;transition:.2s height ease-in-out;will-change:height}[data-vp-layout="justified"] .vp-portfolio__item-wrap{float:left;top:0;left:0;-webkit-transition:.2s transform ease-in-out, .2s width ease-in-out, .2s height ease-in-out;transition:.2s transform ease-in-out, .2s width ease-in-out, .2s height ease-in-out;will-change:transform, width, height}[data-vp-layout="slider"] .vp-portfolio__item-wrap{float:none;width:auto}[data-vp-layout="slider"] .vp-portfolio__item-img-wrap{position:relative;display:block;overflow:hidden}[data-vp-layout="slider"] .vp-portfolio__item-img-wrap::before{content:"";display:block}[data-vp-layout="slider"] .vp-portfolio__item-img img{-o-object-fit:cover;object-fit:cover;-o-object-position:50% 50%;object-position:50% 50%;font-family:"object-fit: cover; object-position: 50% 50%;"}[data-vp-layout="slider"] .vp-portfolio__items-arrow{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;top:50%;width:40px;height:40px;margin-top:-20px;color:#6c7781;cursor:pointer;background-color:#fff;border-radius:50%;-webkit-box-shadow:0 0 7px 2px rgba(0,0,0,0.04);box-shadow:0 0 7px 2px rgba(0,0,0,0.04);opacity:.5;-webkit-transition:.2s opacity ease-in-out, .2s box-shadow ease-in-out;transition:.2s opacity ease-in-out, .2s box-shadow ease-in-out;will-change:opacity, box-shadow;z-index:1}[data-vp-layout="slider"] .vp-portfolio__items-arrow::after{content:"";position:absolute;display:block;top:-10px;right:-10px;bottom:-10px;left:-10px}[data-vp-layout="slider"] .vp-portfolio__items-arrow:hover{-webkit-box-shadow:0 2px 15px 2px rgba(0,0,0,0.04);box-shadow:0 2px 15px 2px rgba(0,0,0,0.04);opacity:1}[data-vp-layout="slider"] .vp-portfolio__items-arrow-prev{left:10px}[data-vp-layout="slider"] .vp-portfolio__items-arrow-next{right:10px}[data-vp-layout="slider"][data-vp-slider-bullets="true"] .vp-portfolio__items-wrap{padding-bottom:25px}[data-vp-layout="slider"][data-vp-slider-bullets="true"] .vp-portfolio__items-wrap .vp-portfolio__items-arrow{margin-top:-32.5px}[data-vp-layout="slider"] .vp-portfolio__items-bullets{position:absolute;margin-bottom:-15px;text-align:center;z-index:1}[data-vp-layout="slider"] .vp-portfolio__items-bullets.swiper-pagination-bullets-dynamic{margin-bottom:-7px}[data-vp-layout="slider"] .vp-portfolio__items-bullets>span{position:relative;cursor:pointer;background-color:#6c7781;opacity:.2;-webkit-transition:.15s opacity ease-in-out;transition:.15s opacity ease-in-out;will-change:opacity}[data-vp-layout="slider"] .vp-portfolio__items-bullets>span:hover{opacity:.5}[data-vp-layout="slider"] .vp-portfolio__items-bullets>span.swiper-pagination-bullet-active{opacity:1}[data-vp-layout="slider"] .vp-portfolio__items-bullets>span::after{content:"";position:absolute;display:block;top:-4px;right:-4px;bottom:-4px;left:-4px}.vp-portfolio.vp-portfolio__ready{min-height:initial}.vp-portfolio.vp-portfolio__ready .vp-portfolio__items-wrap,.vp-portfolio.vp-portfolio__ready .vp-portfolio__filter-wrap,.vp-portfolio.vp-portfolio__ready .vp-portfolio__pagination-wrap{visibility:visible;opacity:1}.vp-portfolio.vp-portfolio__ready .vp-portfolio__preloader-wrap{visibility:hidden;opacity:0}.vp-portfolio.vp-portfolio__ready .vp-portfolio__preloader-wrap .vp-portfolio__preloader{-webkit-animation:none;animation:none}.vp-single-filter.vp-single-filter__ready .vp-portfolio__filter-wrap{visibility:visible;opacity:1}.vp-portfolio.vp-portfolio__loading::before{content:"";position:absolute;display:block;top:0;right:0;bottom:0;left:0;z-index:1}.vp-portfolio.vp-portfolio__loading .vp-portfolio__items-wrap,.vp-portfolio.vp-portfolio__loading .vp-portfolio__filter-wrap,.vp-portfolio.vp-portfolio__loading .vp-portfolio__pagination-wrap{opacity:.5}.vp-portfolio__item-popup{display:none}.vp-pswp{z-index:100000}.vp-pswp .pswp__caption{background-color:rgba(0,0,0,0.75)}.vp-pswp .pswp__caption>div{max-width:600px;font-size:12px;color:#fff}.vp-pswp .pswp__caption a{color:inherit}.vp-pswp .pswp__caption a:hover{opacity:.8}.vp-pswp .pswp__caption .vp-portfolio__item-meta-title{margin-top:0;margin-bottom:3px;font-size:14px;color:inherit}.vp-pswp .pswp__caption .vp-portfolio__item-meta-title a{text-decoration:none}.vp-pswp .pswp__preloader{position:absolute;right:0;bottom:0;z-index:1}.vp-pswp .vp-pswp-video{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;max-width:1920px;height:100%;margin:0 auto;line-height:0;text-align:left;vertical-align:middle;z-index:1045}.vp-pswp .vp-pswp-video>div{position:relative;width:100%;height:0;padding-bottom:56.25%}.vp-pswp .vp-pswp-video>div iframe{position:absolute;top:0;left:0;width:100%;height:100%;margin:0}.vp-pswp .vp-pswp-video>div video{width:100% !important;height:auto !important;margin:0}img.visual-portfolio-lazyload:not(.lazyloaded){background-color:rgba(171,173,191,0.1)}
|
assets/js/script-preview.min.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
!function(t){function e(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var o={};e.m=t,e.c=o,e.d=function(t,o,n){e.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,"a",o),o},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=1)}([,function(t,e,o){t.exports=o(2)},function(t,e){/*!
|
2 |
* Name : Visual Portfolio
|
3 |
-
* Version : 1.
|
4 |
* Author : nK https://nkdev.info
|
5 |
*/
|
6 |
!function(t){var e=t("#vp_preview > .vp-portfolio");e.on("click",".vp-portfolio__item, .vp-portfolio__item a",function(t){t.preventDefault(),t.stopPropagation()}),window.iFrameResizer={heightCalculationMethod:function(){return e.outerHeight(!0)}}}(jQuery)}]);
|
1 |
!function(t){function e(n){if(o[n])return o[n].exports;var r=o[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var o={};e.m=t,e.c=o,e.d=function(t,o,n){e.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,"a",o),o},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=1)}([,function(t,e,o){t.exports=o(2)},function(t,e){/*!
|
2 |
* Name : Visual Portfolio
|
3 |
+
* Version : 1.6.0
|
4 |
* Author : nK https://nkdev.info
|
5 |
*/
|
6 |
!function(t){var e=t("#vp_preview > .vp-portfolio");e.on("click",".vp-portfolio__item, .vp-portfolio__item a",function(t){t.preventDefault(),t.stopPropagation()}),window.iFrameResizer={heightCalculationMethod:function(){return e.outerHeight(!0)}}}(jQuery)}]);
|
assets/js/script.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t){function e(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,e),s.l=!0,s.exports}var i={};e.m=t,e.c=i,e.d=function(t,i,o){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([,,,function(t,e,i){t.exports=i(4)},function(t,e){function i(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}return Array.from(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(){c=_.width(),h=_.height()}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=jQuery,p=window,l=p.VPData,d=p.objectFitImages,v=p.PhotoSwipe,f=p.PhotoSwipeUI_Default,m=l.__,u=l.settingsPopupGallery,_=a(window),c=0,h=0;s(),_.on("resize load orientationchange",s);var w=[320,576,768,992,1200];void 0!==d&&d();var y=function(){function t(e,i){o(this,t);var s=this;s.$item=e;for(var r=e[0].className.split(/\s+/),n=0;n<r.length;n++)r[n]&&/^vp-uid-/.test(r[n])&&(s.uid=r[n].replace(/^vp-uid-/,"")),r[n]&&/^vp-id-/.test(r[n])&&(s.id=r[n].replace(/^vp-id-/,""));if(!s.uid)return void console.error(m.couldnt_retrieve_vp);s.$items_wrap=e.find(".vp-portfolio__items"),s.$pagination=e.find(".vp-portfolio__pagination-wrap"),s.$filter=e.find(".vp-portfolio__filter-wrap"),s.id&&(s.$filter=s.$filter.add(".vp-single-filter.vp-id-"+s.id+" .vp-portfolio__filter-wrap")),s.userOptions=i,s.firstRun=!0,s.init()}return n(t,[{key:"emitEvent",value:function(t,e){e=e?[this].concat(e):[this],this.$item.trigger(t+".vpf.vpf-uid-"+this.uid,e)}},{key:"init",value:function(){var t=this;t.firstRun||t.destroy(),t.destroyed=!1,t.initOptions(),t.initEvents(),t.initLayout(),t.initCustomColors(),t.initPhotoswipe(),t.$items_wrap.imagesLoaded(function(){t.$item.addClass("vp-portfolio__ready"),t.id&&a(".vp-single-filter.vp-id-"+t.id).addClass("vp-single-filter__ready"),t.initIsotope(),t.initFjGallery(),t.initSwiper(),t.emitEvent("imagesLoaded")}),t.emitEvent("init"),t.firstRun=!1}},{key:"destroy",value:function(){var t=this;t.$item.removeClass("vp-portfolio__ready"),t.id&&a(".vp-single-filter.vp-id-"+t.id).removeClass("vp-single-filter__ready"),t.destroyEvents(),t.removeStyle(),t.renderStyle(),t.destroyPhotoswipe(),t.destroyIsotope(),t.destroyFjGallery(),t.destroySwiper(),t.emitEvent("destroy"),t.destroyed=!0}},{key:"addStyle",value:function(t,e,i){i=i||"";var o=this,s=o.uid;o.stylesList||(o.stylesList={}),void 0===o.stylesList[s]&&(o.stylesList[s]={}),void 0===o.stylesList[s][i]&&(o.stylesList[s][i]={}),void 0===o.stylesList[s][i][t]&&(o.stylesList[s][i][t]={}),o.stylesList[s][i][t]=a.extend(o.stylesList[s][i][t],e),o.emitEvent("addStyle",[t,e,i,o.stylesList])}},{key:"removeStyle",value:function(t,e,i){i=i||"";var o=this,s=o.uid;o.stylesList||(o.stylesList={}),void 0===o.stylesList[s]||t||(o.stylesList[s]={}),void 0!==o.stylesList[s]&&void 0!==o.stylesList[s][i]&&void 0!==o.stylesList[s][i][t]&&t&&delete o.stylesList[s][i][t],o.emitEvent("removeStyle",[t,e,o.stylesList])}},{key:"renderStyle",value:function(){var t=this,e=t.uid,i="";t.stylesList||(t.stylesList={}),void 0!==t.stylesList[e]&&Object.keys(t.stylesList[e]).forEach(function(o){o&&(i+="@media "+o+" {"),Object.keys(t.stylesList[e][o]).forEach(function(s){i+=".vp-uid-"+e+" "+s+" {",Object.keys(t.stylesList[e][o][s]).forEach(function(r){i+=r+":"+t.stylesList[e][o][s][r]+";"}),i+="}"}),o&&(i+="}")});var o=a("#vp-style-"+e);o.length||(o=a("<style>").attr("id","vp-style-"+e).appendTo("head")),o.html(i),t.emitEvent("renderStyle",[i,t.stylesList,o])}},{key:"firstToLowerCase",value:function(t){return t.substr(0,1).toLowerCase()+t.substr(1)}},{key:"initOptions",value:function(t){var e=this;e.defaults={layout:"tile",itemsGap:0,tilesType:"3|1,1|",masonryColumns:3,justifiedRowHeight:250,justifiedRowHeightTolerance:.25,pagination:"load-more"},t&&(e.userOptions=t);var i=e.$item[0].dataset,o={};Object.keys(i).forEach(function(t){t&&"vp"===t.substring(0,2)&&(o[e.firstToLowerCase(t.substring(2))]=i[t])}),e.options=a.extend({},e.defaults,o,e.userOptions),e.emitEvent("initOptions")}},{key:"isCrossLine",value:function(t,e,i,o){var s=(o.x-i.x)*(t.y-i.y)-(o.y-i.y)*(t.x-i.x),r=(o.x-i.x)*(e.y-i.y)-(o.y-i.y)*(e.x-i.x),n=(e.x-t.x)*(i.y-t.y)-(e.y-t.y)*(i.x-t.x),a=(e.x-t.x)*(o.y-t.y)-(e.y-t.y)*(o.x-t.x);return s*r<=0&&n*a<=0}},{key:"initEvents",value:function(){function t(){var t=i.$item[0].getBoundingClientRect(),e=t.left,o=c-t.right,s=parseFloat(i.$item.css("margin-left")||0),r=parseFloat(i.$item.css("margin-right")||0);i.$item.css({"margin-left":s-e,"margin-right":r-o})}function e(){var t=i.$item[0].getBoundingClientRect();t.bottom>0&&t.bottom-n<=h&&i.loadNewItems(i.options.nextPageUrl,!1,function(){e()})}var i=this,o=".vpf.vpf-uid-"+i.uid;if(i.$item.hasClass("vp-portfolio__stretch")&&(_.on("load"+o+" resize"+o+" orientationchange"+o,function(){t()}),t()),"fly"===i.options.itemsStyle){var s={};_.on("mousemove"+o,function(t){s={x:t.clientX,y:t.clientY}}),i.$item.on("mouseenter"+o+" mouseleave"+o,".vp-portfolio__item",function(t){var e=a(this),o=e[0].getBoundingClientRect(),r=e.find(".vp-portfolio__item-overlay"),n="mouseenter"===t.type,p="0%",l="0%",d={x:t.clientX,y:t.clientY},v=i.isCrossLine({x:o.left,y:o.top},{x:o.left+o.width,y:o.top},d,s),f=i.isCrossLine({x:o.left,y:o.top+o.height},{x:o.left+o.width,y:o.top+o.height},d,s),m=i.isCrossLine({x:o.left,y:o.top},{x:o.left,y:o.top+o.height},d,s),u=i.isCrossLine({x:o.left+o.width,y:o.top},{x:o.left+o.width,y:o.top+o.height},d,s);if(!(v||f||m||u)){var _=(o.width/2-d.x+o.left)/(o.width/2),c=(o.height/2-d.y+o.top)/(o.height/2);Math.abs(_)>Math.abs(c)?_>0?m=!0:u=!0:c>0?v=!0:f=!0}v?l="-10"+l:f?l="10"+l:m?p="-10"+p:u&&(p="10"+p),n&&(r.css({transition:"none",transform:"translateX("+p+") translateY("+l+") translateZ(0)"}),r[0].offsetHeight),r.css({transition:".2s transform ease-in-out",transform:"translateX("+(n?"0%":p)+") translateY("+(n?"0%":l)+") translateZ(0)"})})}i.$filter.on("click"+o,".vp-filter .vp-filter__item a",function(t){t.preventDefault();var e=a(this);i.loading||e.closest(".vp-filter__item").addClass("vp-filter__item-active").siblings().removeClass("vp-filter__item-active"),i.loadNewItems(e.attr("href"),!0)}),i.$item.on("click"+o,".vp-pagination .vp-pagination__item a",function(t){t.preventDefault();var e=a(this);e.hasClass("vp-pagination__no-more")&&"paged"!==i.options.pagination||i.loadNewItems(e.attr("href"),"paged"===i.options.pagination)}),i.$item.on("click"+o,".vp-portfolio__items .vp-portfolio__item-meta-category a",function(t){t.preventDefault(),t.stopPropagation(),i.loadNewItems(a(this).attr("href"),!0)});var r=void 0,n=250;"infinite"===i.options.pagination&&(_.on("load"+o+" scroll"+o+" resize"+o+" orientationchange"+o,function(){clearTimeout(r),r=setTimeout(function(){e()},60)}),e()),i.emitEvent("initEvents")}},{key:"destroyEvents",value:function(){var t=this,e=".vpf.vpf-uid-"+t.uid;t.$item.off(e),t.$filter.off(e),_.off(e),t.emitEvent("destroyEvents")}},{key:"getTilesSettings",value:function(){var t=this,e=t.options.tilesType.split(/[:|]/);return void 0===e[e.length-1]||e[e.length-1]||e.pop(),e}},{key:"initLayout",value:function(){var t=this;if(t.options.layout)switch(t.options.layout){case"tiles":var e=t.getTilesSettings(),i=parseInt(e[0],10)||1;if(e.shift(),t.addStyle(".vp-portfolio__item-wrap",{width:100/i+"%"}),e&&e.length)for(var o=0;o<e.length;o++){var s=e[o].split(","),r=parseFloat(s[0])||1,n=parseFloat(s[1])||1,a=".vp-portfolio__item-wrap";e.length>1&&(a+=":nth-of-type("+e.length+"n+"+(o+1)+")"),r&&1!==r&&t.addStyle(a,{width:100*r/i+"%"}),t.addStyle(a+" .vp-portfolio__item-img-wrap::before",{"margin-top":100*n+"%"})}for(var p=i-1,l=Math.min(w.length-1,p);l>=0;l--)p>0&&void 0!==w[l]&&(t.addStyle(".vp-portfolio__item-wrap",{width:100/p+"%"},"screen and (max-width: "+w[l]+"px)"),t.addStyle(".vp-portfolio__item-wrap:nth-of-type(n)",{width:100/p+"%"},"screen and (max-width: "+w[l]+"px)")),p-=1;break;case"masonry":t.addStyle(".vp-portfolio__item-wrap",{width:100/t.options.masonryColumns+"%"});for(var d=t.options.masonryColumns,v=d-1,f=Math.min(w.length-1,v);f>=0;f--)v>0&&void 0!==w[f]&&t.addStyle(".vp-portfolio__item-wrap",{width:100/v+"%"},"screen and (max-width: "+w[f]+"px)"),v-=1;case"justified":break;case"slider":"auto"!==t.options.sliderItemsHeight&&("auto"===t.options.sliderSlidesPerView?t.options.sliderItemsHeight.indexOf("%")===t.options.sliderItemsHeight.length-1?(t.addStyle(".vp-portfolio__items-wrap::before",{content:'""',display:"block",width:"100%","margin-top":isNaN(t.options.sliderItemsHeight)?t.options.sliderItemsHeight:t.options.sliderItemsHeight+"px"}),t.addStyle(".vp-portfolio__items",{position:"absolute",top:0,left:0,right:0,bottom:0}),t.addStyle(".vp-portfolio__item-wrap",{height:"true"===t.options.sliderBullets?"calc( 100% - 25px )":"100%"}),t.addStyle(".vp-portfolio__item, .vp-portfolio__item-img-wrap, .vp-portfolio__item-img, .vp-portfolio__item-wrap .vp-portfolio__item .vp-portfolio__item-img a, .vp-portfolio__item-wrap .vp-portfolio__item .vp-portfolio__item-img img",{width:"auto",height:"100%"})):t.addStyle(".vp-portfolio__item .vp-portfolio__item-img img",{width:"auto",height:isNaN(t.options.sliderItemsHeight)?t.options.sliderItemsHeight:t.options.sliderItemsHeight+"px"}):(t.addStyle(".vp-portfolio__item-img-wrap::before",{"margin-top":isNaN(t.options.sliderItemsHeight)?t.options.sliderItemsHeight:t.options.sliderItemsHeight+"px"}),t.addStyle(".vp-portfolio__item-img img, .vp-portfolio__item-img",{position:"absolute",top:0,right:0,bottom:0,left:0}),t.addStyle(".vp-portfolio__item .vp-portfolio__item-img img",{width:"100%",height:"100%"})))}var m=parseInt(t.options.itemsGap,10);if(m&&("tiles"===t.options.layout||"masonry"===t.options.layout)){t.addStyle(".vp-portfolio__items",{"margin-left":"-"+m+"px","margin-top":"-"+m+"px"});var u=m+"px";t.addStyle(".vp-portfolio__item-wrap .vp-portfolio__item",{"margin-left":u,"margin-top":u}),"tiles"===t.options.layout&&(t.addStyle(".vp-portfolio__item-wrap .vp-portfolio__item-img-wrap",{"margin-left":"-"+u,"margin-top":"-"+u}),t.addStyle(".vp-portfolio__item-wrap .vp-portfolio__item-img",{left:u,top:u}))}t.renderStyle(),t.emitEvent("initLayout")}},{key:"initCustomColors",value:function(){var t=this;t.$item.find("[data-vp-bg-color]").each(function(){var e=a(this).attr("data-vp-bg-color");t.addStyle('[data-vp-bg-color="'+e+'"]',{"background-color":e+" !important"})}),t.$item.find("[data-vp-text-color]").each(function(){var e=a(this).attr("data-vp-text-color");t.addStyle('[data-vp-text-color="'+e+'"]',{color:e+" !important"})}),t.renderStyle(),t.emitEvent("initCustomColors")}},{key:"initIsotope",value:function(t){var e=this;"tiles"!==e.options.layout&&"masonry"!==e.options.layout||(e.$items_wrap.isotope(t||{itemSelector:".vp-portfolio__item-wrap",layoutMode:"masonry",transitionDuration:"0.3s",percentPosition:!0}),e.emitEvent("initIsotope",[t]))}},{key:"destroyIsotope",value:function(){var t=this;t.$items_wrap.data("isotope")&&(t.$items_wrap.isotope("destroy"),t.emitEvent("destroyIsotope"))}},{key:"initFjGallery",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this;"justified"===i.options.layout&&(i.$items_wrap.fjGallery(!1!==t?t:{gutter:parseFloat(i.options.itemsGap)||0,rowHeight:parseFloat(i.options.justifiedRowHeight)||200,rowHeightTolerance:parseFloat(i.options.justifiedRowHeightTolerance)||0,itemSelector:".vp-portfolio__item-wrap",imageSelector:".vp-portfolio__item-img img"},e),i.emitEvent("initFjGallery",[t]))}},{key:"destroyFjGallery",value:function(){var t=this;t.$items_wrap[0].fjGallery&&(t.$items_wrap.fjGallery("destroy"),t.emitEvent("destroyFjGallery"))}},{key:"initSwiper",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this;if("slider"===e.options.layout&&void 0!==window.Swiper){var i=e.$items_wrap.parent();i.addClass("swiper-container"),e.$items_wrap.addClass("swiper-wrapper"),e.$items_wrap.children().addClass("swiper-slide"),"true"!==e.options.sliderArrows||i.find(".vp-portfolio__items-arrow").length||i.append('\n <div class="vp-portfolio__items-arrow vp-portfolio__items-arrow-prev"><span class="'+e.options.sliderArrowsIconPrev+'"></span></div>\n <div class="vp-portfolio__items-arrow vp-portfolio__items-arrow-next"><span class="'+e.options.sliderArrowsIconNext+'"></span></div>\n '),"true"!==e.options.sliderBullets||i.find(".vp-portfolio__items-bullets").length||i.append('<div class="vp-portfolio__items-bullets"></div>');var o=e.options.sliderSlidesPerView||3,s={};if(!isNaN(o))for(var r=o-1,n=Math.min(w.length-1,r);n>=0;n--)r>0&&void 0!==w[n]&&(s[w[n]]={slidesPerView:r}),r-=1;new window.Swiper(i[0],t||{speed:1e3*(parseFloat(e.options.sliderSpeed,10)||0),autoHeight:"auto"===e.options.sliderItemsHeight,effect:e.options.sliderEffect||"slide",spaceBetween:parseFloat(e.options.itemsGap)||0,centeredSlides:"true"===e.options.sliderCenteredSlides,freeMode:"true"===e.options.sliderFreeMode,loop:"true"===e.options.sliderLoop,autoplay:parseFloat(e.options.sliderAutoplay)>0&&{delay:1e3*parseFloat(e.options.sliderAutoplay),disableOnInteraction:!1},navigation:"true"===e.options.sliderArrows&&{nextEl:".vp-portfolio__items-arrow-next",prevEl:".vp-portfolio__items-arrow-prev"},pagination:"true"===e.options.sliderBullets&&{el:".vp-portfolio__items-bullets",clickable:!0,dynamicBullets:"true"===e.options.sliderBulletsDynamic},slidesPerView:o,breakpoints:s,keyboard:!0,grabCursor:!0}),e.emitEvent("initSwiper",[t])}}},{key:"destroySwiper",value:function(){var t=this,e=t.$items_wrap.parent()[0].swiper;if(e){e.destroy();var i=t.$items_wrap.parent();i.removeClass("swiper-container"),t.$items_wrap.removeClass("swiper-wrapper"),t.$items_wrap.children().removeClass("swiper-slide"),i.find(".vp-portfolio__items-arrow, .vp-portfolio__items-bullets").remove(),t.emitEvent("destroySwiper")}}},{key:"initPhotoswipe",value:function(){function t(e,i){if(void 0===i)return void(e&&e.itemHolders.length&&e.itemHolders.forEach(function(i){i.item&&i.item.html&&t(e,i.item)}));var o=e.viewportSize.x*window.devicePixelRatio,s=e.viewportSize.y*window.devicePixelRatio,r=i.vw/i.vh,n=void 0,p=a(i.container),l=e.options.barsSize,d=0,v=0;l&&(d=l.top&&"auto"!==l.top?l.top:0,v=l.bottom&&"auto"!==l.bottom?l.bottom:0),s-=d+v,n=r>o/s?o:s*r,p.find(".vp-pswp-video").css("max-width",n),p.css({top:d,bottom:v})}var e=this;if(void 0!==v&&e.options.itemsClickAction&&"popup_gallery"===e.options.itemsClickAction&&!e.$item.closest("#vp_preview").length){if(!a(".vp-pswp").length){var i="\n <div class=\"pswp vp-pswp vp-pswp-uid-'}"+e.uid+'" tabindex="-1" role="dialog" aria-hidden="true">\n <div class="pswp__bg"></div>\n <div class="pswp__scroll-wrap">\n <div class="pswp__container">\n <div class="pswp__item"></div>\n <div class="pswp__item"></div>\n <div class="pswp__item"></div>\n </div>\n <div class="pswp__ui pswp__ui--hidden">\n <div class="pswp__top-bar">\n <div class="pswp__counter"></div>\n <a class="pswp__button pswp__button--close" title="'+m.pswp_close+'"></a>\n <a class="pswp__button pswp__button--share" title="'+m.pswp_share+'"></a>\n <a class="pswp__button pswp__button--fs" title="'+m.pswp_fs+'"></a>\n <a class="pswp__button pswp__button--zoom" title="'+m.pswp_zoom+'"></a>\n </div>\n <div class="pswp__preloader">\n <div class="pswp__preloader__icn">\n <div class="pswp__preloader__cut">\n <div class="pswp__preloader__donut"></div>\n </div>\n </div>\n </div>\n <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">\n <div class="pswp__share-tooltip"></div>\n </div>\n <a class="pswp__button pswp__button--arrow--left" title="'+m.pswp_prev+'"></a>\n <a class="pswp__button pswp__button--arrow--right" title="'+m.pswp_next+'"></a>\n <div class="pswp__caption">\n <div class="pswp__caption__center"></div>\n </div>\n </div>\n </div>\n </div>\n ';a("body").append(i)}var o=function(t){var e=a(t).find(".vp-portfolio__item-wrap"),i=[],o=void 0,s=void 0,r=void 0,n=void 0,p=void 0;return e.each(function(){if(o=a(this).find(".vp-portfolio__item-popup"),s=(o.attr("data-vp-popup-img-size")||"1920x1080").split("x"),r=(o.attr("data-vp-popup-video-size")||"1920x1080").split("x"),p=o.attr("data-vp-popup-video"))n={html:p,vw:parseInt(r[0],10),vh:parseInt(r[1],10)};else{n={src:o.attr("data-vp-popup-img"),w:parseInt(s[0],10),h:parseInt(s[1],10)};var t=o.html();t&&(n.title=t),n.el=this;var e=o.attr("data-vp-popup-md-img")||n.src;e&&(s=(o.attr("data-vp-popup-md-img-size")||o.attr("data-vp-popup-img-size")||"1920x1080").split("x"),n.m={src:e,w:parseInt(s[0],10),h:parseInt(s[1],10)}),n.o={src:n.src,w:n.w,h:n.h}}i.push(n)}),i},s=function(i,s,r,n){var p=a(".vp-pswp")[0],l=o(s),d={captionAndToolbarShowEmptyCaptions:!1,closeEl:u.show_close_button,captionEl:u.show_caption,fullscreenEl:u.show_fullscreen_button,zoomEl:u.show_zoom_button,shareEl:u.show_share_button,counterEl:u.show_counter,arrowEl:u.show_arrows,shareButtons:[{id:"facebook",label:m.pswp_share_fb,url:"https://www.facebook.com/sharer/sharer.php?u={{url}}"},{id:"twitter",label:m.pswp_share_tw,url:"https://twitter.com/intent/tweet?text={{text}}&url={{url}}"},{id:"pinterest",label:m.pswp_share_pin,url:"https://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"}],bgOpacity:1,tapToClose:!0,tapToToggleControls:!1,showHideOpacity:!0,galleryUID:e.uid};if(n)if(d.galleryPIDs){for(var _=0;_<l.length;_++)if(l[_].pid===i){d.index=_;break}}else d.index=parseInt(i,10)-1;else d.index=parseInt(i,10);if(!Number.isNaN(d.index)){r&&(d.showAnimationDuration=0);var c=new v(p,f,l,d),h=void 0,w=!1,y=!0,g=void 0;c.listen("beforeResize",function(){h=c.viewportSize.x*window.devicePixelRatio,w&&h<1e3?(w=!1,g=!0):!w&&h>=1e3&&(w=!0,g=!0),g&&!y&&c.invalidateCurrItems(),y&&(y=!1),g=!1}),c.listen("gettingData",function(t,e){e.html||(w?(e.src=e.o.src,e.w=e.o.w,e.h=e.o.h):(e.src=e.m.src,e.w=e.m.w,e.h=e.m.h))}),c.listen("resize",function(){t(this)}),c.listen("afterChange",function(){t(this)}),c.listen("destroy",function(){var t=this;t&&t.itemHolders.length&&t.itemHolders.forEach(function(t){t.el&&a(t.el).find(".vp-pswp-video").remove()})}),c.init()}};e.$item.on("click.vpf.vpf-uid-"+e.uid,".vp-portfolio__item",function(t){t.preventDefault();var i=0,o=this;e.$item.find(".vp-portfolio__item").each(function(t){return this!==o||(i=t,!1)}),s(i,e.$item[0])});var r=function(){var t=window.location.hash.substring(1),e={};if(t.length<5)return e;for(var i=t.split("&"),o=0;o<i.length;o++)if(i[o]){var s=i[o].split("=");s.length<2||(e[s[0]]=s[1])}return e}();r.pid&&r.gid===e.uid&&s(r.pid,e.$item[0],!0,!0)}}},{key:"destroyPhotoswipe",value:function(){var t=this;t.$item.off("click.vpf.vpf-uid-"+t.uid),a(".vp-pswp-uid-"+t.uid).remove()}},{key:"addItems",value:function(t,e){var i=this,o=i.$items_wrap.data("isotope"),s=i.$items_wrap[0].fjGallery,r=i.$items_wrap.parent()[0].swiper;if(o){if(e){var n=i.$items_wrap.find(".vp-portfolio__item-wrap");i.$items_wrap.isotope("remove",n),i.$items_wrap.prepend(t).isotope("prepended",t)}else i.$items_wrap.append(t).isotope("appended",t);i.initIsotope("layout"),i.$items_wrap.imagesLoaded().progress(function(){i.initIsotope("layout")})}else if(s)e?(i.destroyFjGallery(),i.$items_wrap.find(".vp-portfolio__item-wrap").remove(),i.$items_wrap.prepend(t),i.initFjGallery()):(i.$items_wrap.append(t),i.initFjGallery("appendImages",t));else if(r){e&&r.removeAllSlides();var a=[];t.addClass("swiper-slide").each(function(){a.push(this)}),r.appendSlide(a)}i.emitEvent("addItems",[t,e])}},{key:"removeItems",value:function(t){var e=this;e.$items_wrap.data("isotope")&&e.$items_wrap.isotope("remove",t),e.emitEvent("removeItems",[t])}},{key:"loadNewItems",value:function(t,e,i){var o=this;!o.loading&&t&&(o.loading=!0,o.$item.addClass("vp-portfolio__loading"),o.emitEvent("startLoadingNewItems",[t]),a.get(t,{},function(t){t=t.replace("<body",'<body><div id="vp-infinite-load-body"').replace("</body>","</div></body>");var s=a(t).filter("#vp-infinite-load-body"),r=s.find(".vp-portfolio.vp-uid-"+o.uid);if(r.length){var n=r.find(".vp-portfolio__items").html();o.$filter.length&&o.$filter.each(function(){var t=a(this),e="";e=t.parent().hasClass("vp-single-filter")?s.find('[class="'+t.parent().attr("class").replace(" vp-single-filter__ready","")+'"] .vp-portfolio__filter-wrap').html():r.find(".vp-portfolio__filter-wrap").html(),t.html(e)}),o.$pagination.length&&o.$pagination.html(r.find(".vp-portfolio__pagination-wrap").html()),o.addItems(a(n),e),o.emitEvent("loadedNewItems",[r,r,t])}var p=r.attr("data-vp-next-page-url");o.options.nextPageUrl=p,o.$item.attr("data-vp-next-page-url",p),o.$item.removeClass("vp-portfolio__loading"),o.loading=!1,o.emitEvent("endLoadingNewItems"),o.initCustomColors(),i&&i()}))}}]),t}(),g=function(t){var e=Array.prototype.slice.call(arguments,1),o=void 0;return this.each(function(){if(void 0===o)if("object"===(void 0===t?"undefined":r(t))||void 0===t)this.vpf||(this.vpf=new y(a(this),t));else if(this.vpf){var s;o=(s=this.vpf)[t].apply(s,i(e))}}),void 0!==o?o:this};g.constructor=y;var b=jQuery.fn.vpf;jQuery.fn.vpf=g,jQuery.fn.vpf.noConflict=function(){return jQuery.fn.vpf=b,this},a(function(){a(".vp-portfolio").vpf()})}]);
|
1 |
+
!function(t){function e(o){if(i[o])return i[o].exports;var s=i[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,e),s.l=!0,s.exports}var i={};e.m=t,e.c=i,e.d=function(t,i,o){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([,,,function(t,e,i){t.exports=i(4)},function(t,e){function i(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}return Array.from(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(){_=c.width(),h=c.height()}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=function(){function t(t,e){for(var i=0;i<e.length;i++){var o=e[i];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,i,o){return i&&t(e.prototype,i),o&&t(e,o),e}}(),a=jQuery,p=window,l=p.VPData,d=p.objectFitImages,v=p.PhotoSwipe,f=p.PhotoSwipeUI_Default,m=l.__,u=l.settingsPopupGallery,c=a(window),_=0,h=0;s(),c.on("resize load orientationchange",s);var w=[320,576,768,992,1200];void 0!==d&&d();var y=function(){function t(e,i){o(this,t);var s=this;s.$item=e;for(var r=e[0].className.split(/\s+/),n=0;n<r.length;n++)r[n]&&/^vp-uid-/.test(r[n])&&(s.uid=r[n].replace(/^vp-uid-/,"")),r[n]&&/^vp-id-/.test(r[n])&&(s.id=r[n].replace(/^vp-id-/,""));if(!s.uid)return void console.error(m.couldnt_retrieve_vp);s.$items_wrap=e.find(".vp-portfolio__items"),s.$pagination=e.find(".vp-portfolio__pagination-wrap"),s.$filter=e.find(".vp-portfolio__filter-wrap"),s.id&&(s.$filter=s.$filter.add(".vp-single-filter.vp-id-"+s.id+" .vp-portfolio__filter-wrap")),s.userOptions=i,s.firstRun=!0,s.init()}return n(t,[{key:"emitEvent",value:function(t,e){e=e?[this].concat(e):[this],this.$item.trigger(t+".vpf.vpf-uid-"+this.uid,e)}},{key:"init",value:function(){var t=this;t.firstRun||t.destroy(),t.destroyed=!1,t.initOptions(),t.initEvents(),t.initLayout(),t.initCustomColors(),t.initPhotoswipe(),t.emitEvent("init"),t.$item.addClass("vp-portfolio__ready"),t.id&&a(".vp-single-filter.vp-id-"+t.id).addClass("vp-single-filter__ready"),t.initIsotope(),t.initFjGallery(),t.initSwiper(),t.resized(),t.firstRun=!1}},{key:"resized",value:function(){if("function"==typeof window.Event)window.dispatchEvent(new window.Event("resize"));else{var t=window.document.createEvent("UIEvents");t.initUIEvent("resize",!0,!1,window,0),window.dispatchEvent(t)}this.emitEvent("resized")}},{key:"destroy",value:function(){var t=this;t.$item.removeClass("vp-portfolio__ready"),t.id&&a(".vp-single-filter.vp-id-"+t.id).removeClass("vp-single-filter__ready"),t.destroyEvents(),t.removeStyle(),t.renderStyle(),t.destroyPhotoswipe(),t.destroyIsotope(),t.destroyFjGallery(),t.destroySwiper(),t.emitEvent("destroy"),t.destroyed=!0}},{key:"addStyle",value:function(t,e,i){i=i||"";var o=this,s=o.uid;o.stylesList||(o.stylesList={}),void 0===o.stylesList[s]&&(o.stylesList[s]={}),void 0===o.stylesList[s][i]&&(o.stylesList[s][i]={}),void 0===o.stylesList[s][i][t]&&(o.stylesList[s][i][t]={}),o.stylesList[s][i][t]=a.extend(o.stylesList[s][i][t],e),o.emitEvent("addStyle",[t,e,i,o.stylesList])}},{key:"removeStyle",value:function(t,e,i){i=i||"";var o=this,s=o.uid;o.stylesList||(o.stylesList={}),void 0===o.stylesList[s]||t||(o.stylesList[s]={}),void 0!==o.stylesList[s]&&void 0!==o.stylesList[s][i]&&void 0!==o.stylesList[s][i][t]&&t&&delete o.stylesList[s][i][t],o.emitEvent("removeStyle",[t,e,o.stylesList])}},{key:"renderStyle",value:function(){var t=this,e=t.uid,i="";t.stylesList||(t.stylesList={}),void 0!==t.stylesList[e]&&Object.keys(t.stylesList[e]).forEach(function(o){o&&(i+="@media "+o+" {"),Object.keys(t.stylesList[e][o]).forEach(function(s){i+=".vp-uid-"+e+" "+s+" {",Object.keys(t.stylesList[e][o][s]).forEach(function(r){i+=r+":"+t.stylesList[e][o][s][r]+";"}),i+="}"}),o&&(i+="}")});var o=a("#vp-style-"+e);o.length||(o=a("<style>").attr("id","vp-style-"+e).appendTo("head")),o.html(i),t.emitEvent("renderStyle",[i,t.stylesList,o])}},{key:"firstToLowerCase",value:function(t){return t.substr(0,1).toLowerCase()+t.substr(1)}},{key:"initOptions",value:function(t){var e=this;e.defaults={layout:"tile",itemsGap:0,tilesType:"3|1,1|",masonryColumns:3,justifiedRowHeight:250,justifiedRowHeightTolerance:.25,pagination:"load-more"},t&&(e.userOptions=t);var i=e.$item[0].dataset,o={};Object.keys(i).forEach(function(t){t&&"vp"===t.substring(0,2)&&(o[e.firstToLowerCase(t.substring(2))]=i[t])}),e.options=a.extend({},e.defaults,o,e.userOptions),e.emitEvent("initOptions")}},{key:"isCrossLine",value:function(t,e,i,o){var s=(o.x-i.x)*(t.y-i.y)-(o.y-i.y)*(t.x-i.x),r=(o.x-i.x)*(e.y-i.y)-(o.y-i.y)*(e.x-i.x),n=(e.x-t.x)*(i.y-t.y)-(e.y-t.y)*(i.x-t.x),a=(e.x-t.x)*(o.y-t.y)-(e.y-t.y)*(o.x-t.x);return s*r<=0&&n*a<=0}},{key:"initEvents",value:function(){function t(){var t=i.$item[0].getBoundingClientRect(),e=t.left,o=_-t.right,s=parseFloat(i.$item.css("margin-left")||0),r=parseFloat(i.$item.css("margin-right")||0);i.$item.css({"margin-left":s-e,"margin-right":r-o})}function e(){var t=i.$item[0].getBoundingClientRect();t.bottom>0&&t.bottom-n<=h&&i.loadNewItems(i.options.nextPageUrl,!1,function(){e()})}var i=this,o=".vpf.vpf-uid-"+i.uid;if(i.$item.hasClass("vp-portfolio__stretch")&&(c.on("load"+o+" resize"+o+" orientationchange"+o,function(){t()}),t()),"fly"===i.options.itemsStyle){var s={};c.on("mousemove"+o,function(t){s={x:t.clientX,y:t.clientY}}),i.$item.on("mouseenter"+o+" mouseleave"+o,".vp-portfolio__item",function(t){var e=a(this),o=e[0].getBoundingClientRect(),r=e.find(".vp-portfolio__item-overlay"),n="mouseenter"===t.type,p="0%",l="0%",d={x:t.clientX,y:t.clientY},v=i.isCrossLine({x:o.left,y:o.top},{x:o.left+o.width,y:o.top},d,s),f=i.isCrossLine({x:o.left,y:o.top+o.height},{x:o.left+o.width,y:o.top+o.height},d,s),m=i.isCrossLine({x:o.left,y:o.top},{x:o.left,y:o.top+o.height},d,s),u=i.isCrossLine({x:o.left+o.width,y:o.top},{x:o.left+o.width,y:o.top+o.height},d,s);if(!(v||f||m||u)){var c=(o.width/2-d.x+o.left)/(o.width/2),_=(o.height/2-d.y+o.top)/(o.height/2);Math.abs(c)>Math.abs(_)?c>0?m=!0:u=!0:_>0?v=!0:f=!0}v?l="-10"+l:f?l="10"+l:m?p="-10"+p:u&&(p="10"+p),n&&(r.css({transition:"none",transform:"translateX("+p+") translateY("+l+") translateZ(0)"}),r[0].offsetHeight),r.css({transition:".2s transform ease-in-out",transform:"translateX("+(n?"0%":p)+") translateY("+(n?"0%":l)+") translateZ(0)"})})}i.$filter.on("click"+o,".vp-filter .vp-filter__item a",function(t){t.preventDefault();var e=a(this);i.loading||e.closest(".vp-filter__item").addClass("vp-filter__item-active").siblings().removeClass("vp-filter__item-active"),i.loadNewItems(e.attr("href"),!0)}),i.$item.on("click"+o,".vp-pagination .vp-pagination__item a",function(t){t.preventDefault();var e=a(this);e.hasClass("vp-pagination__no-more")&&"paged"!==i.options.pagination||i.loadNewItems(e.attr("href"),"paged"===i.options.pagination)}),i.$item.on("click"+o,".vp-portfolio__items .vp-portfolio__item-meta-category a",function(t){t.preventDefault(),t.stopPropagation(),i.loadNewItems(a(this).attr("href"),!0)});var r=void 0,n=250;"infinite"===i.options.pagination&&(c.on("load"+o+" scroll"+o+" resize"+o+" orientationchange"+o,function(){clearTimeout(r),r=setTimeout(function(){e()},60)}),e()),i.$item.on("transitionend"+o,".vp-portfolio__items",function(t){t.currentTarget===t.target&&i.resized()}),i.emitEvent("initEvents")}},{key:"destroyEvents",value:function(){var t=this,e=".vpf.vpf-uid-"+t.uid;t.$item.off(e),t.$filter.off(e),c.off(e),t.emitEvent("destroyEvents")}},{key:"getTilesSettings",value:function(){var t=this,e=t.options.tilesType.split(/[:|]/);return void 0===e[e.length-1]||e[e.length-1]||e.pop(),e}},{key:"initLayout",value:function(){var t=this;if(t.options.layout)switch(t.options.layout){case"tiles":var e=t.getTilesSettings(),i=parseInt(e[0],10)||1;if(e.shift(),t.addStyle(".vp-portfolio__item-wrap",{width:100/i+"%"}),e&&e.length)for(var o=0;o<e.length;o++){var s=e[o].split(","),r=parseFloat(s[0])||1,n=parseFloat(s[1])||1,a=".vp-portfolio__item-wrap";e.length>1&&(a+=":nth-of-type("+e.length+"n+"+(o+1)+")"),r&&1!==r&&t.addStyle(a,{width:100*r/i+"%"}),t.addStyle(a+" .vp-portfolio__item-img-wrap::before",{"margin-top":100*n+"%"})}for(var p=i-1,l=Math.min(w.length-1,p);l>=0;l--)p>0&&void 0!==w[l]&&(t.addStyle(".vp-portfolio__item-wrap",{width:100/p+"%"},"screen and (max-width: "+w[l]+"px)"),t.addStyle(".vp-portfolio__item-wrap:nth-of-type(n)",{width:100/p+"%"},"screen and (max-width: "+w[l]+"px)")),p-=1;break;case"masonry":t.addStyle(".vp-portfolio__item-wrap",{width:100/t.options.masonryColumns+"%"});for(var d=t.options.masonryColumns,v=d-1,f=Math.min(w.length-1,v);f>=0;f--)v>0&&void 0!==w[f]&&t.addStyle(".vp-portfolio__item-wrap",{width:100/v+"%"},"screen and (max-width: "+w[f]+"px)"),v-=1;case"justified":break;case"slider":"auto"!==t.options.sliderItemsHeight&&("auto"===t.options.sliderSlidesPerView?t.options.sliderItemsHeight.indexOf("%")===t.options.sliderItemsHeight.length-1?(t.addStyle(".vp-portfolio__items-wrap::before",{content:'""',display:"block",width:"100%","margin-top":isNaN(t.options.sliderItemsHeight)?t.options.sliderItemsHeight:t.options.sliderItemsHeight+"px"}),t.addStyle(".vp-portfolio__items",{position:"absolute",top:0,left:0,right:0,bottom:0}),t.addStyle(".vp-portfolio__item-wrap",{height:"true"===t.options.sliderBullets?"calc( 100% - 25px )":"100%"}),t.addStyle(".vp-portfolio__item, .vp-portfolio__item-img-wrap, .vp-portfolio__item-img, .vp-portfolio__item-wrap .vp-portfolio__item .vp-portfolio__item-img a, .vp-portfolio__item-wrap .vp-portfolio__item .vp-portfolio__item-img img",{width:"auto",height:"100%"})):t.addStyle(".vp-portfolio__item .vp-portfolio__item-img img",{width:"auto",height:isNaN(t.options.sliderItemsHeight)?t.options.sliderItemsHeight:t.options.sliderItemsHeight+"px"}):(t.addStyle(".vp-portfolio__item-img-wrap::before",{"margin-top":isNaN(t.options.sliderItemsHeight)?t.options.sliderItemsHeight:t.options.sliderItemsHeight+"px"}),t.addStyle(".vp-portfolio__item-img img, .vp-portfolio__item-img",{position:"absolute",top:0,right:0,bottom:0,left:0}),t.addStyle(".vp-portfolio__item .vp-portfolio__item-img img",{width:"100%",height:"100%"})))}var m=parseInt(t.options.itemsGap,10);if(m&&("tiles"===t.options.layout||"masonry"===t.options.layout)){t.addStyle(".vp-portfolio__items",{"margin-left":"-"+m+"px","margin-top":"-"+m+"px"});var u=m+"px";t.addStyle(".vp-portfolio__item-wrap .vp-portfolio__item",{"margin-left":u,"margin-top":u}),"tiles"===t.options.layout&&(t.addStyle(".vp-portfolio__item-wrap .vp-portfolio__item-img-wrap",{"margin-left":"-"+u,"margin-top":"-"+u}),t.addStyle(".vp-portfolio__item-wrap .vp-portfolio__item-img",{left:u,top:u}))}t.renderStyle(),t.emitEvent("initLayout")}},{key:"initCustomColors",value:function(){var t=this;t.$item.find("[data-vp-bg-color]").each(function(){var e=a(this).attr("data-vp-bg-color");t.addStyle('[data-vp-bg-color="'+e+'"]',{"background-color":e+" !important"})}),t.$item.find("[data-vp-text-color]").each(function(){var e=a(this).attr("data-vp-text-color");t.addStyle('[data-vp-text-color="'+e+'"]',{color:e+" !important"})}),t.renderStyle(),t.emitEvent("initCustomColors")}},{key:"initIsotope",value:function(t){var e=this;"tiles"!==e.options.layout&&"masonry"!==e.options.layout||(e.$items_wrap.isotope(t||{itemSelector:".vp-portfolio__item-wrap",layoutMode:"masonry",transitionDuration:"0.3s",percentPosition:!0}),e.emitEvent("initIsotope",[t]))}},{key:"destroyIsotope",value:function(){var t=this;t.$items_wrap.data("isotope")&&(t.$items_wrap.isotope("destroy"),t.emitEvent("destroyIsotope"))}},{key:"initFjGallery",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this;"justified"===i.options.layout&&(i.$items_wrap.fjGallery(!1!==t?t:{gutter:parseFloat(i.options.itemsGap)||0,rowHeight:parseFloat(i.options.justifiedRowHeight)||200,rowHeightTolerance:parseFloat(i.options.justifiedRowHeightTolerance)||0,itemSelector:".vp-portfolio__item-wrap",imageSelector:".vp-portfolio__item-img img"},e),i.emitEvent("initFjGallery",[t]))}},{key:"destroyFjGallery",value:function(){var t=this;t.$items_wrap.data("fjGallery")&&(t.$items_wrap.fjGallery("destroy"),t.emitEvent("destroyFjGallery"))}},{key:"initSwiper",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this;if("slider"===e.options.layout&&void 0!==window.Swiper){var i=e.$items_wrap.parent();i.addClass("swiper-container"),e.$items_wrap.addClass("swiper-wrapper"),e.$items_wrap.children().addClass("swiper-slide"),"true"!==e.options.sliderArrows||i.find(".vp-portfolio__items-arrow").length||i.append('\n <div class="vp-portfolio__items-arrow vp-portfolio__items-arrow-prev"><span class="'+e.options.sliderArrowsIconPrev+'"></span></div>\n <div class="vp-portfolio__items-arrow vp-portfolio__items-arrow-next"><span class="'+e.options.sliderArrowsIconNext+'"></span></div>\n '),"true"!==e.options.sliderBullets||i.find(".vp-portfolio__items-bullets").length||i.append('<div class="vp-portfolio__items-bullets"></div>');var o=e.options.sliderSlidesPerView||3,s={};if(!isNaN(o))for(var r=o-1,n=Math.min(w.length-1,r);n>=0;n--)r>0&&void 0!==w[n]&&(s[w[n]]={slidesPerView:r}),r-=1;new window.Swiper(i[0],t||{speed:1e3*(parseFloat(e.options.sliderSpeed)||0),autoHeight:"auto"===e.options.sliderItemsHeight,effect:e.options.sliderEffect||"slide",spaceBetween:parseFloat(e.options.itemsGap)||0,centeredSlides:"true"===e.options.sliderCenteredSlides,freeMode:"true"===e.options.sliderFreeMode,loop:"true"===e.options.sliderLoop,autoplay:parseFloat(e.options.sliderAutoplay)>0&&{delay:1e3*parseFloat(e.options.sliderAutoplay),disableOnInteraction:!1},navigation:"true"===e.options.sliderArrows&&{nextEl:".vp-portfolio__items-arrow-next",prevEl:".vp-portfolio__items-arrow-prev"},pagination:"true"===e.options.sliderBullets&&{el:".vp-portfolio__items-bullets",clickable:!0,dynamicBullets:"true"===e.options.sliderBulletsDynamic},slidesPerView:o,breakpoints:s,keyboard:!0,grabCursor:!0}),e.emitEvent("initSwiper",[t])}}},{key:"destroySwiper",value:function(){var t=this,e=t.$items_wrap.parent(),i=e[0].swiper;i&&(i.destroy(),e.removeClass("swiper-container"),t.$items_wrap.removeClass("swiper-wrapper"),t.$items_wrap.children().removeClass("swiper-slide"),e.find(".vp-portfolio__items-arrow, .vp-portfolio__items-bullets").remove(),t.emitEvent("destroySwiper"))}},{key:"initPhotoswipe",value:function(){function t(e,i){if(void 0===i)return void(e&&e.itemHolders.length&&e.itemHolders.forEach(function(i){i.item&&i.item.html&&t(e,i.item)}));var o=e.viewportSize.x,s=e.viewportSize.y,r=i.vw/i.vh,n=void 0,p=a(i.container),l=e.options.barsSize,d=0,v=0;l&&(d=l.top&&"auto"!==l.top?l.top:0,v=l.bottom&&"auto"!==l.bottom?l.bottom:0),s-=d+v,n=r>o/s?o:s*r,p.find(".vp-pswp-video").css("max-width",n),p.css({top:d,bottom:v})}var e=this;if(void 0!==v&&e.options.itemsClickAction&&"popup_gallery"===e.options.itemsClickAction&&!e.$item.closest("#vp_preview").length){if(!a(".vp-pswp").length){var i="\n <div class=\"pswp vp-pswp vp-pswp-uid-'}"+e.uid+'" tabindex="-1" role="dialog" aria-hidden="true">\n <div class="pswp__bg"></div>\n <div class="pswp__scroll-wrap">\n <div class="pswp__container">\n <div class="pswp__item"></div>\n <div class="pswp__item"></div>\n <div class="pswp__item"></div>\n </div>\n <div class="pswp__ui pswp__ui--hidden">\n <div class="pswp__top-bar">\n <div class="pswp__counter"></div>\n <a class="pswp__button pswp__button--close" title="'+m.pswp_close+'"></a>\n <a class="pswp__button pswp__button--share" title="'+m.pswp_share+'"></a>\n <a class="pswp__button pswp__button--fs" title="'+m.pswp_fs+'"></a>\n <a class="pswp__button pswp__button--zoom" title="'+m.pswp_zoom+'"></a>\n </div>\n <div class="pswp__preloader">\n <div class="pswp__preloader__icn">\n <div class="pswp__preloader__cut">\n <div class="pswp__preloader__donut"></div>\n </div>\n </div>\n </div>\n <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">\n <div class="pswp__share-tooltip"></div>\n </div>\n <a class="pswp__button pswp__button--arrow--left" title="'+m.pswp_prev+'"></a>\n <a class="pswp__button pswp__button--arrow--right" title="'+m.pswp_next+'"></a>\n <div class="pswp__caption">\n <div class="pswp__caption__center"></div>\n </div>\n </div>\n </div>\n </div>\n ';a("body").append(i)}var o=function(t){var e=a(t).find(".vp-portfolio__item-wrap"),i=[],o=void 0,s=void 0,r=void 0,n=void 0,p=void 0;return e.each(function(){if(o=a(this).find(".vp-portfolio__item-popup"),s=(o.attr("data-vp-popup-img-size")||"1920x1080").split("x"),r=(o.attr("data-vp-popup-video-size")||"1920x1080").split("x"),p=o.attr("data-vp-popup-video"))n={html:p,vw:parseInt(r[0],10),vh:parseInt(r[1],10)};else{n={src:o.attr("data-vp-popup-img"),w:parseInt(s[0],10),h:parseInt(s[1],10)};var t=o.html();t&&(n.title=t),n.el=this;var e=o.attr("data-vp-popup-md-img")||n.src;e&&(s=(o.attr("data-vp-popup-md-img-size")||o.attr("data-vp-popup-img-size")||"1920x1080").split("x"),n.m={src:e,w:parseInt(s[0],10),h:parseInt(s[1],10)}),n.o={src:n.src,w:n.w,h:n.h}}i.push(n)}),i},s=function(i,s,r,n){var p=a(".vp-pswp")[0],l=o(s),d={captionAndToolbarShowEmptyCaptions:!1,closeEl:u.show_close_button,captionEl:u.show_caption,fullscreenEl:u.show_fullscreen_button,zoomEl:u.show_zoom_button,shareEl:u.show_share_button,counterEl:u.show_counter,arrowEl:u.show_arrows,shareButtons:[{id:"facebook",label:m.pswp_share_fb,url:"https://www.facebook.com/sharer/sharer.php?u={{url}}"},{id:"twitter",label:m.pswp_share_tw,url:"https://twitter.com/intent/tweet?text={{text}}&url={{url}}"},{id:"pinterest",label:m.pswp_share_pin,url:"https://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}"}],bgOpacity:1,tapToClose:!0,tapToToggleControls:!1,showHideOpacity:!0,galleryUID:e.uid};if(n)if(d.galleryPIDs){for(var c=0;c<l.length;c++)if(l[c].pid===i){d.index=c;break}}else d.index=parseInt(i,10)-1;else d.index=parseInt(i,10);if(!Number.isNaN(d.index)){r&&(d.showAnimationDuration=0);var _=new v(p,f,l,d),h=void 0,w=!1,y=!0,g=void 0;_.listen("beforeResize",function(){h=_.viewportSize.x*window.devicePixelRatio,w&&h<1e3?(w=!1,g=!0):!w&&h>=1e3&&(w=!0,g=!0),g&&!y&&_.invalidateCurrItems(),y&&(y=!1),g=!1}),_.listen("gettingData",function(t,e){e.html||(w?(e.src=e.o.src,e.w=e.o.w,e.h=e.o.h):(e.src=e.m.src,e.w=e.m.w,e.h=e.m.h))}),_.listen("resize",function(){t(this)}),_.listen("afterChange",function(){t(this)}),_.listen("destroy",function(){var t=this;t&&t.itemHolders.length&&t.itemHolders.forEach(function(t){t.el&&a(t.el).find(".vp-pswp-video").remove()})}),_.init()}};e.$item.on("click.vpf.vpf-uid-"+e.uid,".vp-portfolio__item",function(t){t.preventDefault();var i=0,o=this;e.$item.find(".vp-portfolio__item").each(function(t){return this!==o||(i=t,!1)}),s(i,e.$item[0])});var r=function(){var t=window.location.hash.substring(1),e={};if(t.length<5)return e;for(var i=t.split("&"),o=0;o<i.length;o++)if(i[o]){var s=i[o].split("=");s.length<2||(e[s[0]]=s[1])}return e}();r.pid&&r.gid===e.uid&&s(r.pid,e.$item[0],!0,!0)}}},{key:"destroyPhotoswipe",value:function(){var t=this;t.$item.off("click.vpf.vpf-uid-"+t.uid),a(".vp-pswp-uid-"+t.uid).remove()}},{key:"addItems",value:function(t,e){var i=this,o=i.$items_wrap.data("isotope"),s=i.$items_wrap.data("fjGallery"),r=i.$items_wrap.parent()[0].swiper;if(o){if(e){var n=i.$items_wrap.find(".vp-portfolio__item-wrap");i.$items_wrap.isotope("remove",n),i.$items_wrap.prepend(t).isotope("prepended",t)}else i.$items_wrap.append(t).isotope("appended",t);setTimeout(function(){i.initIsotope("layout")},0)}else if(s)e?(i.destroyFjGallery(),i.$items_wrap.find(".vp-portfolio__item-wrap").remove(),i.$items_wrap.prepend(t),i.initFjGallery()):(i.$items_wrap.append(t),i.initFjGallery("appendImages",t));else if(r){e&&r.removeAllSlides();var a=[];t.addClass("swiper-slide").each(function(){a.push(this)}),r.appendSlide(a)}i.emitEvent("addItems",[t,e])}},{key:"removeItems",value:function(t){var e=this;e.$items_wrap.data("isotope")&&e.$items_wrap.isotope("remove",t),e.emitEvent("removeItems",[t])}},{key:"loadNewItems",value:function(t,e,i){var o=this;!o.loading&&t&&(o.loading=!0,o.$item.addClass("vp-portfolio__loading"),o.emitEvent("startLoadingNewItems",[t]),a.get(t,{},function(t){t=t.replace("<body",'<body><div id="vp-infinite-load-body"').replace("</body>","</div></body>");var s=a(t).filter("#vp-infinite-load-body"),r=s.find(".vp-portfolio.vp-uid-"+o.uid);if(r.length){var n=r.find(".vp-portfolio__items").html();o.$filter.length&&o.$filter.each(function(){var t=a(this),e="";e=t.parent().hasClass("vp-single-filter")?s.find('[class="'+t.parent().attr("class").replace(" vp-single-filter__ready","")+'"] .vp-portfolio__filter-wrap').html():r.find(".vp-portfolio__filter-wrap").html(),t.html(e)}),o.$pagination.length&&o.$pagination.html(r.find(".vp-portfolio__pagination-wrap").html()),o.addItems(a(n),e),o.emitEvent("loadedNewItems",[r,r,t])}var p=r.attr("data-vp-next-page-url");o.options.nextPageUrl=p,o.$item.attr("data-vp-next-page-url",p),o.$item.removeClass("vp-portfolio__loading"),o.loading=!1,o.emitEvent("endLoadingNewItems"),o.initCustomColors(),i&&i()}))}}]),t}(),g=function(t){var e=Array.prototype.slice.call(arguments,1),o=void 0;return this.each(function(){if(void 0===o)if("object"===(void 0===t?"undefined":r(t))||void 0===t)this.vpf||(this.vpf=new y(a(this),t));else if(this.vpf){var s;o=(s=this.vpf)[t].apply(s,i(e))}}),void 0!==o?o:this};g.constructor=y;var b=jQuery.fn.vpf;jQuery.fn.vpf=g,jQuery.fn.vpf.noConflict=function(){return jQuery.fn.vpf=b,this},a(function(){a(".vp-portfolio").vpf()})}]);
|
assets/vendor/flickr-justified-gallery/fjGallery.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
/*!
|
2 |
* Name : Flickr's Justified Gallery [fjGallery]
|
3 |
-
* Version : 1.0.
|
4 |
* Author : nK <https://nkdev.info>
|
5 |
* GitHub : https://github.com/nk-o/flickr-justified-gallery
|
6 |
*/
|
@@ -319,6 +319,27 @@ _global.window.fjGallery.noConflict = function () {
|
|
319 |
|
320 |
// jQuery support
|
321 |
if (typeof _global.jQuery !== 'undefined') {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
var jQueryPlugin = function jQueryPlugin() {
|
323 |
var args = arguments || [];
|
324 |
Array.prototype.unshift.call(args, this);
|
1 |
/*!
|
2 |
* Name : Flickr's Justified Gallery [fjGallery]
|
3 |
+
* Version : 1.0.2
|
4 |
* Author : nK <https://nkdev.info>
|
5 |
* GitHub : https://github.com/nk-o/flickr-justified-gallery
|
6 |
*/
|
319 |
|
320 |
// jQuery support
|
321 |
if (typeof _global.jQuery !== 'undefined') {
|
322 |
+
// add data to jQuery .data('fjGallery')
|
323 |
+
var oldInit = _global.window.fjGallery.constructor.prototype.init;
|
324 |
+
_global.window.fjGallery.constructor.prototype.init = function () {
|
325 |
+
this.jQcontainer = (0, _global.jQuery)(this.$container);
|
326 |
+
this.jQcontainer.data('fjGallery', this);
|
327 |
+
if (oldInit) {
|
328 |
+
oldInit.call(this);
|
329 |
+
}
|
330 |
+
};
|
331 |
+
|
332 |
+
// remove data from jQuery .data('fjGallery')
|
333 |
+
var oldDestroy = _global.window.fjGallery.constructor.prototype.destroy;
|
334 |
+
_global.window.fjGallery.constructor.prototype.destroy = function () {
|
335 |
+
if (this.jQcontainer) {
|
336 |
+
this.jQcontainer.removeData('fjGallery');
|
337 |
+
}
|
338 |
+
if (oldDestroy) {
|
339 |
+
oldDestroy.call(this);
|
340 |
+
}
|
341 |
+
};
|
342 |
+
|
343 |
var jQueryPlugin = function jQueryPlugin() {
|
344 |
var args = arguments || [];
|
345 |
Array.prototype.unshift.call(args, this);
|
assets/vendor/flickr-justified-gallery/fjGallery.min.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
/*!
|
2 |
* Name : Flickr's Justified Gallery [fjGallery]
|
3 |
-
* Version : 1.0.
|
4 |
* Author : nK <https://nkdev.info>
|
5 |
* GitHub : https://github.com/nk-o/flickr-justified-gallery
|
6 |
-
*/!function(
|
7 |
/*!
|
8 |
* @name JavaScript/NodeJS Merge v1.2.0
|
9 |
* @author yeikos
|
@@ -11,15 +11,15 @@
|
|
11 |
|
12 |
* Copyright 2014 yeikos - MIT license
|
13 |
* https://raw.github.com/yeikos/js.merge/master/LICENSE
|
14 |
-
*/!function(t){var u=function(t){return e(!0===t,!1,arguments)};function l(t,e){if("object"!==h(t))return e;for(var
|
15 |
/*!
|
16 |
* Copyright 2016 Yahoo Inc.
|
17 |
* Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.
|
18 |
* @license
|
19 |
-
*/var p=
|
20 |
/*!
|
21 |
* Copyright 2016 Yahoo Inc.
|
22 |
* Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.
|
23 |
* @license
|
24 |
-
*/var c=
|
25 |
//# sourceMappingURL=fjGallery.min.js.map
|
1 |
/*!
|
2 |
* Name : Flickr's Justified Gallery [fjGallery]
|
3 |
+
* Version : 1.0.2
|
4 |
* Author : nK <https://nkdev.info>
|
5 |
* GitHub : https://github.com/nk-o/flickr-justified-gallery
|
6 |
+
*/!function(o){var i={};function n(t){if(i[t])return i[t].exports;var e=i[t]={i:t,l:!1,exports:{}};return o[t].call(e.exports,e,e.exports,n),e.l=!0,e.exports}n.m=o,n.c=i,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:o})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=3)}([function(o,t,e){"use strict";(function(t){var e;e="undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{},o.exports=e}).call(t,e(5))},function(t,e,o){"use strict";(function(o){var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};
|
7 |
/*!
|
8 |
* @name JavaScript/NodeJS Merge v1.2.0
|
9 |
* @author yeikos
|
11 |
|
12 |
* Copyright 2014 yeikos - MIT license
|
13 |
* https://raw.github.com/yeikos/js.merge/master/LICENSE
|
14 |
+
*/!function(t){var u=function(t){return e(!0===t,!1,arguments)};function l(t,e){if("object"!==h(t))return e;for(var o in e)"object"===h(t[o])&&"object"===h(e[o])?t[o]=l(t[o],e[o]):t[o]=e[o];return t}function e(t,e,o){var i=o[0],n=o.length;(t||"object"!==h(i))&&(i={});for(var r=0;r<n;++r){var a=o[r];if("object"===h(a))for(var s in a){var c=t?u.clone(a[s]):a[s];i[s]=e?l(i[s],c):c}}return i}function h(t){return{}.toString.call(t).slice(8,-1).toLowerCase()}u.recursive=function(t){return e(!0===t,!0,arguments)},u.clone=function(t){var e,o,i=t,n=h(t);if("array"===n)for(i=[],o=t.length,e=0;e<o;++e)i[e]=u.clone(t[e]);else if("object"===n)for(e in i={},t)i[e]=u.clone(t[e]);return i},t?o.exports=u:window.merge=u}("object"===t(o)&&o&&"object"===t(o.exports)&&o.exports)}).call(e,o(8)(t))},function(t,e,o){"use strict";t.exports=function(t){"complete"===document.readyState||"interactive"===document.readyState?t.call():document.attachEvent?document.attachEvent("onreadystatechange",function(){"interactive"===document.readyState&&t.call()}):document.addEventListener&&document.addEventListener("DOMContentLoaded",t)}},function(t,e,o){t.exports=o(4)},function(t,e,o){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=s(o(2)),r=o(0),a=s(o(6));function s(t){return t&&t.__esModule?t:{default:t}}var c=r.window.fjGallery;if(r.window.fjGallery=a.default,r.window.fjGallery.noConflict=function(){return r.window.fjGallery=c,this},void 0!==r.jQuery){var u=r.window.fjGallery.constructor.prototype.init;r.window.fjGallery.constructor.prototype.init=function(){this.jQcontainer=(0,r.jQuery)(this.$container),this.jQcontainer.data("fjGallery",this),u&&u.call(this)};var l=r.window.fjGallery.constructor.prototype.destroy;r.window.fjGallery.constructor.prototype.destroy=function(){this.jQcontainer&&this.jQcontainer.removeData("fjGallery"),l&&l.call(this)};var h=function(){var t=arguments||[];Array.prototype.unshift.call(t,this);var e=a.default.apply(r.window,t);return"object"!==(void 0===e?"undefined":i(e))?e:this};h.constructor=a.default.constructor;var f=r.jQuery.fn.fjGallery;r.jQuery.fn.fjGallery=h,r.jQuery.fn.fjGallery.noConflict=function(){return r.jQuery.fn.fjGallery=f,this}}(0,n.default)(function(){(0,a.default)(document.querySelectorAll(".fj-gallery"))})},function(t,e,o){"use strict";var i,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"===("undefined"==typeof window?"undefined":n(window))&&(i=window)}t.exports=i},function(t,e,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function i(t,e){for(var o=0;o<e.length;o++){var i=e[o];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,e,o){return e&&i(t.prototype,e),o&&i(t,o),t}}(),s=h(o(7)),c=h(o(1)),n=h(o(2)),r=h(o(9)),u=h(o(10)),l=o(0);function h(t){return t&&t.__esModule?t:{default:t}}var f=[];function d(){(0,r.default)(function(){f.forEach(function(t){t.resize()})})}l.window.addEventListener("resize",d),l.window.addEventListener("orientationchange",d),l.window.addEventListener("load",d),(0,n.default)(function(){d()});var p=0,g=function(){function r(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r);var o=this;o.instanceID=p++,o.$container=t,o.images=[],o.defaults={itemSelector:".fj-gallery-item",imageSelector:"img",gutter:10,rowHeight:320,rowHeightTolerance:.25,resizeThrottle:200,onInit:null,onDestroy:null,onAppendImages:null,onBeforeJustify:null,onJustify:null};var i=o.$container.dataset||{},n={};Object.keys(i).forEach(function(t){var e=t.substr(0,1).toLowerCase()+t.substr(1);e&&void 0!==o.defaults[e]&&(n[e]=i[t])}),o.options=(0,c.default)({},o.defaults,n,e),o.pureOptions=(0,c.default)({},o.options),o.resize=(0,s.default)(o.options.resizeThrottle,o.resize),o.init()}return i(r,[{key:"css",value:function(e,o){return"string"==typeof o?l.window.getComputedStyle(e).getPropertyValue(o):(o.transform&&(o["-webkit-transform"]=o.transform),Object.keys(o).forEach(function(t){e.style[t]=o[t]}),e)}},{key:"addToFjGalleryList",value:function(){f.push(this),d()}},{key:"removeFromFjGalleryList",value:function(){var o=this;f.forEach(function(t,e){t.instanceID===o.instanceID&&f.splice(e,1)})}},{key:"init",value:function(){var t=this;t.appendImages(t.$container.querySelectorAll(t.options.itemSelector)),t.addToFjGalleryList(),t.options.onInit&&t.options.onInit.call(t)}},{key:"appendImages",value:function(t){var f=this;l.window.jQuery&&t instanceof l.window.jQuery&&(t=t.get()),t&&t.length&&(t.forEach(function(t){if(t&&!t.fjGalleryImage&&t.querySelector){var h=t.querySelector(f.options.imageSelector);if(h){t.fjGalleryImage=f;var e={$item:t,$image:h,width:parseFloat(h.getAttribute("width"))||!1,height:parseFloat(h.getAttribute("height"))||!1,loadSizes:function(){var t,e,o,i,n,r,a,s,c,u,l=this;t=h,o=void 0,n=i=!(e=function(t){l.width===t.width&&l.height===t.height||(l.width=t.width,l.height=t.height,f.resize())}),r=function(){i?e(i):(i={width:t.naturalWidth,height:t.naturalHeight},e(i),clearInterval(o),n&&u())},a=function(){r()},s=function(){r()},u=function(){n=!1,t.removeEventListener("load",a),t.removeEventListener("error",s)},(c=function(){0<t.naturalWidth&&r()})(),i||(n=!0,t.addEventListener("load",a),t.addEventListener("error",s),o=setInterval(c,100))}};e.loadSizes(),f.images.push(e)}}}),f.options.onAppendImages&&f.options.onAppendImages.call(f,[t]),f.justify())}},{key:"justify",value:function(){var e=this,o=[];e.options.onBeforeJustify&&e.options.onBeforeJustify.call(e),e.images.forEach(function(t){t.width&&t.height&&o.push(t.width/t.height)});var i=(0,u.default)(o,{containerWidth:e.$container.getBoundingClientRect().width,containerPadding:{top:parseFloat(e.css(e.$container,"padding-top"))||0,right:parseFloat(e.css(e.$container,"padding-right"))||0,bottom:parseFloat(e.css(e.$container,"padding-bottom"))||0,left:parseFloat(e.css(e.$container,"padding-left"))||0},boxSpacing:e.options.gutter,targetRowHeight:e.options.rowHeight,targetRowHeightTolerance:e.options.rowHeightTolerance});e.css(e.$container,{height:i.containerHeight+"px"});var n=0;e.images.forEach(function(t){t.width&&t.height&&(e.css(t.$item,{position:"absolute",transform:"translateX("+i.boxes[n].left+"px) translateY("+i.boxes[n].top+"px) translateZ(0)",width:i.boxes[n].width+"px",height:i.boxes[n].height+"px"}),n++)}),e.options.onJustify&&e.options.onJustify.call(e)}},{key:"updateOptions",value:function(t){this.options=(0,c.default)({},this.options,t),this.justify()}},{key:"destroy",value:function(){var e=this;e.removeFromFjGalleryList(),e.options.onDestroy&&e.options.onDestroy.call(e),e.css(e.$container,{height:""}),e.images.forEach(function(t){e.css(t.$item,{position:"",transform:"",width:"",height:""})}),e.images.forEach(function(t){delete t.$item.fjGalleryImage}),delete e.$container.fjGallery}},{key:"resize",value:function(){this.justify()}}]),r}(),y=function(t){("object"===("undefined"==typeof HTMLElement?"undefined":a(HTMLElement))?t instanceof HTMLElement:t&&"object"===(void 0===t?"undefined":a(t))&&null!==t&&1===t.nodeType&&"string"==typeof t.nodeName)&&(t=[t]);for(var e=arguments[1],o=Array.prototype.slice.call(arguments,2),i=t.length,n=0,r=void 0;n<i;n++)if("object"===(void 0===e?"undefined":a(e))||void 0===e?t[n].fjGallery||(t[n].fjGallery=new g(t[n],e)):t[n].fjGallery&&(r=t[n].fjGallery[e].apply(t[n].fjGallery,o)),void 0!==r)return r;return t};y.constructor=g,e.default=y},function(t,e,o){"use strict";t.exports=function(n,r,a,s){var c,u=0;return"boolean"!=typeof r&&(s=a,a=r,r=void 0),function(){var t=this,e=Number(new Date)-u,o=arguments;function i(){u=Number(new Date),a.apply(t,o)}s&&!c&&i(),c&&clearTimeout(c),void 0===s&&n<e?i():!0!==r&&(c=setTimeout(s?function(){c=void 0}:i,void 0===s?n-e:n))}}},function(t,e,o){"use strict";t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,o){"use strict";var i=o(0),n=i.requestAnimationFrame||i.webkitRequestAnimationFrame||i.mozRequestAnimationFrame||function(t){var e=+new Date,o=Math.max(0,16-(e-r)),i=setTimeout(t,o);return r=e,i},r=+new Date;var a=i.cancelAnimationFrame||i.webkitCancelAnimationFrame||i.mozCancelAnimationFrame||clearTimeout;Function.prototype.bind&&(n=n.bind(i),a=a.bind(i)),(t.exports=n).cancel=a},function(t,e,o){"use strict";
|
15 |
/*!
|
16 |
* Copyright 2016 Yahoo Inc.
|
17 |
* Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.
|
18 |
* @license
|
19 |
+
*/var p=o(1),i=o(11);function g(t,e){var o;return!1!==t.fullWidthBreakoutRowCadence&&(e._rows.length+1)%t.fullWidthBreakoutRowCadence==0&&(o=!0),new i({top:e._containerHeight,left:t.containerPadding.left,width:t.containerWidth-t.containerPadding.left-t.containerPadding.right,spacing:t.boxSpacing.horizontal,targetRowHeight:t.targetRowHeight,targetRowHeightTolerance:t.targetRowHeightTolerance,edgeCaseMinRowHeight:.5*t.targetRowHeight,edgeCaseMaxRowHeight:2*t.targetRowHeight,rightToLeft:!1,isBreakoutRow:o,widowLayoutStyle:t.widowLayoutStyle})}function y(t,e,o){return e._rows.push(o),e._layoutItems=e._layoutItems.concat(o.getItems()),e._containerHeight+=o.height+t.boxSpacing.vertical,o.items}t.exports=function(t,e){var o,i,n,r,a,s,c,u={},l={},h={containerWidth:1060,containerPadding:10,boxSpacing:10,targetRowHeight:320,targetRowHeightTolerance:.25,maxNumRows:Number.POSITIVE_INFINITY,forceAspectRatio:!1,showWidows:!0,fullWidthBreakoutRowCadence:!1,widowLayoutStyle:"left"},f={},d={};return u=p(h,e=e||{}),f.top=isNaN(parseFloat(u.containerPadding.top))?u.containerPadding:u.containerPadding.top,f.right=isNaN(parseFloat(u.containerPadding.right))?u.containerPadding:u.containerPadding.right,f.bottom=isNaN(parseFloat(u.containerPadding.bottom))?u.containerPadding:u.containerPadding.bottom,f.left=isNaN(parseFloat(u.containerPadding.left))?u.containerPadding:u.containerPadding.left,d.horizontal=isNaN(parseFloat(u.boxSpacing.horizontal))?u.boxSpacing:u.boxSpacing.horizontal,d.vertical=isNaN(parseFloat(u.boxSpacing.vertical))?u.boxSpacing:u.boxSpacing.vertical,u.containerPadding=f,u.boxSpacing=d,l._layoutItems=[],l._awakeItems=[],l._inViewportItems=[],l._leadingOrphans=[],l._trailingOrphans=[],l._containerHeight=u.containerPadding.top,l._rows=[],l._orphans=[],u._widowCount=0,o=u,i=l,n=t.map(function(t){return t.width&&t.height?{aspectRatio:t.width/t.height}:{aspectRatio:t}}),c=[],o.forceAspectRatio&&n.forEach(function(t){t.forcedAspectRatio=!0,t.aspectRatio=o.forceAspectRatio}),n.some(function(t,e){if(isNaN(t.aspectRatio))throw new Error("Item "+e+" has an invalid aspect ratio");if(a||(a=g(o,i)),r=a.addItem(t),a.isLayoutComplete()){if(c=c.concat(y(o,i,a)),i._rows.length>=o.maxNumRows)return!(a=null);if(a=g(o,i),!r&&(r=a.addItem(t),a.isLayoutComplete())){if(c=c.concat(y(o,i,a)),i._rows.length>=o.maxNumRows)return!(a=null);a=g(o,i)}}}),a&&a.getItems().length&&o.showWidows&&(i._rows.length?(s=i._rows[i._rows.length-1].isBreakoutRow?i._rows[i._rows.length-1].targetRowHeight:i._rows[i._rows.length-1].height,a.forceComplete(!1,s)):a.forceComplete(!1),c=c.concat(y(o,i,a)),o._widowCount=a.getItems().length),i._containerHeight=i._containerHeight-o.boxSpacing.vertical,i._containerHeight=i._containerHeight+o.containerPadding.bottom,{containerHeight:i._containerHeight,widowCount:o._widowCount,boxes:i._layoutItems}}},function(t,e,o){"use strict";
|
20 |
/*!
|
21 |
* Copyright 2016 Yahoo Inc.
|
22 |
* Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.
|
23 |
* @license
|
24 |
+
*/var c=o(1);(t.exports=function(t){this.top=t.top,this.left=t.left,this.width=t.width,this.spacing=t.spacing,this.targetRowHeight=t.targetRowHeight,this.targetRowHeightTolerance=t.targetRowHeightTolerance,this.minAspectRatio=this.width/t.targetRowHeight*(1-t.targetRowHeightTolerance),this.maxAspectRatio=this.width/t.targetRowHeight*(1+t.targetRowHeightTolerance),this.edgeCaseMinRowHeight=t.edgeCaseMinRowHeight,this.edgeCaseMaxRowHeight=t.edgeCaseMaxRowHeight,this.widowLayoutStyle=t.widowLayoutStyle,this.isBreakoutRow=t.isBreakoutRow,this.items=[],this.height=0}).prototype={addItem:function(t){var e,o,i,n=this.items.concat(t),r=this.width-(n.length-1)*this.spacing,a=n.reduce(function(t,e){return t+e.aspectRatio},0),s=r/this.targetRowHeight;return this.isBreakoutRow&&0===this.items.length&&1<=t.aspectRatio?(this.items.push(t),this.completeLayout(r/t.aspectRatio,"justify"),!0):a<this.minAspectRatio?(this.items.push(c(t)),!0):a>this.maxAspectRatio?0===this.items.length?(this.items.push(c(t)),this.completeLayout(r/a,"justify"),!0):(e=this.width-(this.items.length-1)*this.spacing,o=this.items.reduce(function(t,e){return t+e.aspectRatio},0),i=e/this.targetRowHeight,Math.abs(a-s)>Math.abs(o-i)?(this.completeLayout(e/o,"justify"),!1):(this.items.push(c(t)),this.completeLayout(r/a,"justify"),!0)):(this.items.push(c(t)),this.completeLayout(r/a,"justify"),!0)},isLayoutComplete:function(){return 0<this.height},completeLayout:function(t,e){var o,i,n,r,a,s=this.left,c=this.width-(this.items.length-1)*this.spacing;(void 0===e||["justify","center","left"].indexOf(e)<0)&&(e="left"),t!==(i=Math.max(this.edgeCaseMinRowHeight,Math.min(t,this.edgeCaseMaxRowHeight)))?(this.height=i,o=c/i/(c/t)):(this.height=t,o=1),this.items.forEach(function(t){t.top=this.top,t.width=t.aspectRatio*this.height*o,t.height=this.height,t.left=s,s+=t.width+this.spacing},this),"justify"===e?(s-=this.spacing+this.left,n=(s-this.width)/this.items.length,r=this.items.map(function(t,e){return Math.round((e+1)*n)}),1===this.items.length?this.items[0].width-=Math.round(n):this.items.forEach(function(t,e){0<e?(t.left-=r[e-1],t.width-=r[e]-r[e-1]):t.width-=r[e]})):"center"===e&&(a=(this.width-s)/2,this.items.forEach(function(t){t.left+=a+this.spacing},this))},forceComplete:function(t,e){"number"==typeof e?this.completeLayout(e,this.widowLayoutStyle):this.completeLayout(this.targetRowHeight,this.widowLayoutStyle)},getItems:function(){return this.items}}}]);
|
25 |
//# sourceMappingURL=fjGallery.min.js.map
|
assets/vendor/flickr-justified-gallery/fjGallery.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["fjGallery.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","global","win","window","self","_typeof","Symbol","iterator","obj","constructor","isNode","Public","clone","merge","arguments","merge_recursive","base","extend","typeOf","key","recursive","argv","result","size","length","index","item","sitem","input","toString","slice","toLowerCase","output","type","callback","document","readyState","attachEvent","addEventListener","_liteReady2","_interopRequireDefault","_global","_fjGallery2","default","oldPlugin","fjGallery","noConflict","this","jQuery","jQueryPlugin","args","Array","unshift","res","apply","oldJqPlugin","fn","querySelectorAll","g","Function","eval","e","value","_createClass","defineProperties","target","props","descriptor","writable","Constructor","protoProps","staticProps","_throttle2","_merge2","_rafl2","_justifiedLayout2","fjGalleryList","updateFjGallery","forEach","resize","instanceID","container","userOptions","instance","TypeError","_classCallCheck","$container","images","defaults","itemSelector","imageSelector","gutter","rowHeight","rowHeightTolerance","resizeThrottle","onInit","onDestroy","onAppendImages","onBeforeJustify","onJustify","dataOptions","dataset","pureDataOptions","keys","loweCaseOption","substr","options","pureOptions","init","el","styles","getComputedStyle","getPropertyValue","transform","style","push","splice","appendImages","addToFjGalleryList","$images","$item","fjGalleryImage","querySelector","$image","data","width","parseFloat","getAttribute","height","loadSizes","img","cb","interval","hasSize","addedListeners","onHasSize","onLoaded","onError","checkSize","removeListeners","itemData","dimensions","naturalWidth","naturalHeight","clearInterval","removeEventListener","setInterval","justify","justifyArray","justifiedData","containerWidth","getBoundingClientRect","containerPadding","top","css","right","bottom","left","boxSpacing","targetRowHeight","targetRowHeightTolerance","containerHeight","position","boxes","removeFromFjGalleryList","val","plugin","items","HTMLElement","nodeType","nodeName","len","k","ret","delay","noTrailing","debounceMode","timeoutID","lastExec","undefined","elapsed","Number","Date","exec","clearTimeout","setTimeout","webpackPolyfill","deprecate","paths","children","request","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","curr","ms","Math","max","prev","req","cancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","bind","Row","createNewRow","layoutConfig","layoutData","isBreakoutRow","fullWidthBreakoutRowCadence","_rows","_containerHeight","spacing","horizontal","edgeCaseMinRowHeight","edgeCaseMaxRowHeight","rightToLeft","widowLayoutStyle","addRow","row","_layoutItems","concat","getItems","vertical","config","itemLayoutData","itemAdded","currentRow","nextToLastRowHeight","laidOutItems","maxNumRows","POSITIVE_INFINITY","forceAspectRatio","showWidows","isNaN","_awakeItems","_inViewportItems","_leadingOrphans","_trailingOrphans","_orphans","_widowCount","map","aspectRatio","forcedAspectRatio","some","Error","addItem","isLayoutComplete","forceComplete","widowCount","params","minAspectRatio","maxAspectRatio","previousRowWidthWithoutSpacing","previousAspectRatio","previousTargetAspectRatio","newItems","rowWidthWithoutSpacing","newAspectRatio","reduce","sum","targetAspectRatio","completeLayout","abs","newHeight","clampedToNativeRatio","clampedHeight","errorWidthPerItem","roundedCumulativeErrors","centerOffset","itemWidthSum","indexOf","min","round","fitToWidth"],"mappings":"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","file":"fjGallery.min.js","sourcesContent":["/*!\n * Name : Flickr's Justified Gallery [fjGallery]\n * Version : 1.0.1\n * Author : nK <https://nkdev.info>\n * GitHub : https://github.com/nk-o/flickr-justified-gallery\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\r\n * @name JavaScript/NodeJS Merge v1.2.0\r\n * @author yeikos\r\n * @repository https://github.com/yeikos/js.merge\r\n\r\n * Copyright 2014 yeikos - MIT license\r\n * https://raw.github.com/yeikos/js.merge/master/LICENSE\r\n */\n\n;(function (isNode) {\n\n\t/**\r\n * Merge one or more objects \r\n * @param bool? clone\r\n * @param mixed,... arguments\r\n * @return object\r\n */\n\n\tvar Public = function Public(clone) {\n\n\t\treturn merge(clone === true, false, arguments);\n\t},\n\t publicName = 'merge';\n\n\t/**\r\n * Merge two or more objects recursively \r\n * @param bool? clone\r\n * @param mixed,... arguments\r\n * @return object\r\n */\n\n\tPublic.recursive = function (clone) {\n\n\t\treturn merge(clone === true, true, arguments);\n\t};\n\n\t/**\r\n * Clone the input removing any reference\r\n * @param mixed input\r\n * @return mixed\r\n */\n\n\tPublic.clone = function (input) {\n\n\t\tvar output = input,\n\t\t type = typeOf(input),\n\t\t index,\n\t\t size;\n\n\t\tif (type === 'array') {\n\n\t\t\toutput = [];\n\t\t\tsize = input.length;\n\n\t\t\tfor (index = 0; index < size; ++index) {\n\n\t\t\t\toutput[index] = Public.clone(input[index]);\n\t\t\t}\n\t\t} else if (type === 'object') {\n\n\t\t\toutput = {};\n\n\t\t\tfor (index in input) {\n\n\t\t\t\toutput[index] = Public.clone(input[index]);\n\t\t\t}\n\t\t}\n\n\t\treturn output;\n\t};\n\n\t/**\r\n * Merge two objects recursively\r\n * @param mixed input\r\n * @param mixed extend\r\n * @return mixed\r\n */\n\n\tfunction merge_recursive(base, extend) {\n\n\t\tif (typeOf(base) !== 'object') return extend;\n\n\t\tfor (var key in extend) {\n\n\t\t\tif (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {\n\n\t\t\t\tbase[key] = merge_recursive(base[key], extend[key]);\n\t\t\t} else {\n\n\t\t\t\tbase[key] = extend[key];\n\t\t\t}\n\t\t}\n\n\t\treturn base;\n\t}\n\n\t/**\r\n * Merge two or more objects\r\n * @param bool clone\r\n * @param bool recursive\r\n * @param array argv\r\n * @return object\r\n */\n\n\tfunction merge(clone, recursive, argv) {\n\n\t\tvar result = argv[0],\n\t\t size = argv.length;\n\n\t\tif (clone || typeOf(result) !== 'object') result = {};\n\n\t\tfor (var index = 0; index < size; ++index) {\n\n\t\t\tvar item = argv[index],\n\t\t\t type = typeOf(item);\n\n\t\t\tif (type !== 'object') continue;\n\n\t\t\tfor (var key in item) {\n\n\t\t\t\tvar sitem = clone ? Public.clone(item[key]) : item[key];\n\n\t\t\t\tif (recursive) {\n\n\t\t\t\t\tresult[key] = merge_recursive(result[key], sitem);\n\t\t\t\t} else {\n\n\t\t\t\t\tresult[key] = sitem;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\r\n * Get type of variable\r\n * @param mixed input\r\n * @return string\r\n *\r\n * @see http://jsperf.com/typeofvar\r\n */\n\n\tfunction typeOf(input) {\n\n\t\treturn {}.toString.call(input).slice(8, -1).toLowerCase();\n\t}\n\n\tif (isNode) {\n\n\t\tmodule.exports = Public;\n\t} else {\n\n\t\twindow[publicName] = Public;\n\t}\n})(( false ? 'undefined' : _typeof(module)) === 'object' && module && _typeof(module.exports) === 'object' && module.exports);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8)(module)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (callback) {\n\n\tif (document.readyState === 'complete' || document.readyState === 'interactive') {\n\t\t// Already ready or interactive, execute callback\n\t\tcallback.call();\n\t} else if (document.attachEvent) {\n\t\t// Old browsers\n\t\tdocument.attachEvent('onreadystatechange', function () {\n\t\t\tif (document.readyState === 'interactive') callback.call();\n\t\t});\n\t} else if (document.addEventListener) {\n\t\t// Modern browsers\n\t\tdocument.addEventListener('DOMContentLoaded', callback);\n\t}\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(4);\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _liteReady = __webpack_require__(2);\n\nvar _liteReady2 = _interopRequireDefault(_liteReady);\n\nvar _global = __webpack_require__(0);\n\nvar _fjGallery = __webpack_require__(6);\n\nvar _fjGallery2 = _interopRequireDefault(_fjGallery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// no conflict\nvar oldPlugin = _global.window.fjGallery;\n_global.window.fjGallery = _fjGallery2.default;\n_global.window.fjGallery.noConflict = function () {\n _global.window.fjGallery = oldPlugin;\n return this;\n};\n\n// jQuery support\nif (typeof _global.jQuery !== 'undefined') {\n var jQueryPlugin = function jQueryPlugin() {\n var args = arguments || [];\n Array.prototype.unshift.call(args, this);\n var res = _fjGallery2.default.apply(_global.window, args);\n return (typeof res === 'undefined' ? 'undefined' : _typeof(res)) !== 'object' ? res : this;\n };\n jQueryPlugin.constructor = _fjGallery2.default.constructor;\n\n // no conflict\n var oldJqPlugin = _global.jQuery.fn.fjGallery;\n _global.jQuery.fn.fjGallery = jQueryPlugin;\n _global.jQuery.fn.fjGallery.noConflict = function () {\n _global.jQuery.fn.fjGallery = oldJqPlugin;\n return this;\n };\n}\n\n// .fj-gallery initialization\n(0, _liteReady2.default)(function () {\n (0, _fjGallery2.default)(document.querySelectorAll('.fj-gallery'));\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _throttle = __webpack_require__(7);\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _merge = __webpack_require__(1);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _liteReady = __webpack_require__(2);\n\nvar _liteReady2 = _interopRequireDefault(_liteReady);\n\nvar _rafl = __webpack_require__(9);\n\nvar _rafl2 = _interopRequireDefault(_rafl);\n\nvar _justifiedLayout = __webpack_require__(10);\n\nvar _justifiedLayout2 = _interopRequireDefault(_justifiedLayout);\n\nvar _global = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// list with all fjGallery instances\n// need to render all in one scroll/resize event\nvar fjGalleryList = [];\n\nfunction updateFjGallery() {\n (0, _rafl2.default)(function () {\n fjGalleryList.forEach(function (item) {\n item.resize();\n });\n });\n}\n\n_global.window.addEventListener('resize', updateFjGallery);\n_global.window.addEventListener('orientationchange', updateFjGallery);\n_global.window.addEventListener('load', updateFjGallery);\n(0, _liteReady2.default)(function () {\n updateFjGallery();\n});\n\n// get image dimensions\n// thanks https://gist.github.com/dimsemenov/5382856\nfunction getImgDemensions(img, cb) {\n var interval = void 0;\n var hasSize = false;\n var addedListeners = false;\n\n var onHasSize = function onHasSize() {\n if (hasSize) {\n cb(hasSize);\n return;\n }\n\n hasSize = {\n width: img.naturalWidth,\n height: img.naturalHeight\n };\n cb(hasSize);\n\n clearInterval(interval);\n if (addedListeners) {\n // eslint-disable-next-line no-use-before-define\n removeListeners();\n }\n };\n var onLoaded = function onLoaded() {\n onHasSize();\n };\n var onError = function onError() {\n onHasSize();\n };\n var checkSize = function checkSize() {\n if (img.naturalWidth > 0) {\n onHasSize();\n }\n };\n var addListeners = function addListeners() {\n addedListeners = true;\n img.addEventListener('load', onLoaded);\n img.addEventListener('error', onError);\n };\n var removeListeners = function removeListeners() {\n addedListeners = false;\n img.removeEventListener('load', onLoaded);\n img.removeEventListener('error', onError);\n };\n\n checkSize();\n\n if (!hasSize) {\n addListeners();\n interval = setInterval(checkSize, 100);\n }\n}\n\nvar instanceID = 0;\n\n// fjGallery class\n\nvar fjGallery = function () {\n function fjGallery(container, userOptions) {\n _classCallCheck(this, fjGallery);\n\n var self = this;\n\n self.instanceID = instanceID++;\n\n self.$container = container;\n\n self.images = [];\n\n self.defaults = {\n itemSelector: '.fj-gallery-item',\n imageSelector: 'img',\n gutter: 10, // supports object like `{ horizontal: 10, vertical: 10 }`.\n rowHeight: 320,\n rowHeightTolerance: 0.25, // [0, 1]\n resizeThrottle: 200,\n\n // events\n onInit: null, // function() {}\n onDestroy: null, // function() {}\n onAppendImages: null, // function() {}\n onBeforeJustify: null, // function() {}\n onJustify: null // function() {}\n };\n\n // prepare data-options\n var dataOptions = self.$container.dataset || {};\n var pureDataOptions = {};\n Object.keys(dataOptions).forEach(function (key) {\n var loweCaseOption = key.substr(0, 1).toLowerCase() + key.substr(1);\n if (loweCaseOption && typeof self.defaults[loweCaseOption] !== 'undefined') {\n pureDataOptions[loweCaseOption] = dataOptions[key];\n }\n });\n\n self.options = (0, _merge2.default)({}, self.defaults, pureDataOptions, userOptions);\n self.pureOptions = (0, _merge2.default)({}, self.options);\n\n // throttle for resize\n self.resize = (0, _throttle2.default)(self.options.resizeThrottle, self.resize);\n\n self.init();\n }\n\n // add styles to element\n\n\n _createClass(fjGallery, [{\n key: 'css',\n value: function css(el, styles) {\n if (typeof styles === 'string') {\n return _global.window.getComputedStyle(el).getPropertyValue(styles);\n }\n\n // add transform property with vendor prefix\n if (styles.transform) {\n styles['-webkit-transform'] = styles.transform;\n }\n\n Object.keys(styles).forEach(function (key) {\n el.style[key] = styles[key];\n });\n return el;\n }\n\n // add to fjGallery instances list\n\n }, {\n key: 'addToFjGalleryList',\n value: function addToFjGalleryList() {\n fjGalleryList.push(this);\n updateFjGallery();\n }\n\n // remove from fjGallery instances list\n\n }, {\n key: 'removeFromFjGalleryList',\n value: function removeFromFjGalleryList() {\n var self = this;\n\n fjGalleryList.forEach(function (item, key) {\n if (item.instanceID === self.instanceID) {\n fjGalleryList.splice(key, 1);\n }\n });\n }\n }, {\n key: 'init',\n value: function init() {\n var self = this;\n\n self.appendImages(self.$container.querySelectorAll(self.options.itemSelector));\n\n self.addToFjGalleryList();\n\n // call onInit event\n if (self.options.onInit) {\n self.options.onInit.call(self);\n }\n }\n\n // append images\n\n }, {\n key: 'appendImages',\n value: function appendImages($images) {\n var self = this;\n\n // check if jQuery\n if (_global.window.jQuery && $images instanceof _global.window.jQuery) {\n $images = $images.get();\n }\n\n if (!$images || !$images.length) {\n return;\n }\n\n $images.forEach(function ($item) {\n // if $images is jQuery, for some reason in this array there is undefined item, that not a DOM,\n // so we need to check for $item.querySelector.\n if ($item && !$item.fjGalleryImage && $item.querySelector) {\n var $image = $item.querySelector(self.options.imageSelector);\n\n if ($image) {\n $item.fjGalleryImage = self;\n var data = {\n $item: $item,\n $image: $image,\n width: parseFloat($image.getAttribute('width')) || false,\n height: parseFloat($image.getAttribute('height')) || false,\n loadSizes: function loadSizes() {\n var itemData = this;\n getImgDemensions($image, function (dimensions) {\n if (itemData.width !== dimensions.width || itemData.height !== dimensions.height) {\n itemData.width = dimensions.width;\n itemData.height = dimensions.height;\n self.resize();\n }\n });\n }\n };\n data.loadSizes();\n\n self.images.push(data);\n }\n }\n });\n\n // call onAppendImages event\n if (self.options.onAppendImages) {\n self.options.onAppendImages.call(self, [$images]);\n }\n\n self.justify();\n }\n\n // justify images\n\n }, {\n key: 'justify',\n value: function justify() {\n var self = this;\n var justifyArray = [];\n\n // call onBeforeJustify event\n if (self.options.onBeforeJustify) {\n self.options.onBeforeJustify.call(self);\n }\n\n self.images.forEach(function (data) {\n if (data.width && data.height) {\n justifyArray.push(data.width / data.height);\n }\n });\n\n var justifiedData = (0, _justifiedLayout2.default)(justifyArray, {\n containerWidth: self.$container.getBoundingClientRect().width,\n containerPadding: {\n top: parseFloat(self.css(self.$container, 'padding-top')) || 0,\n right: parseFloat(self.css(self.$container, 'padding-right')) || 0,\n bottom: parseFloat(self.css(self.$container, 'padding-bottom')) || 0,\n left: parseFloat(self.css(self.$container, 'padding-left')) || 0\n },\n boxSpacing: self.options.gutter,\n targetRowHeight: self.options.rowHeight,\n targetRowHeightTolerance: self.options.rowHeightTolerance\n });\n\n self.css(self.$container, {\n height: justifiedData.containerHeight + 'px'\n });\n\n var i = 0;\n self.images.forEach(function (data) {\n if (data.width && data.height) {\n self.css(data.$item, {\n position: 'absolute',\n transform: 'translateX(' + justifiedData.boxes[i].left + 'px) translateY(' + justifiedData.boxes[i].top + 'px) translateZ(0)',\n width: justifiedData.boxes[i].width + 'px',\n height: justifiedData.boxes[i].height + 'px'\n });\n i++;\n }\n });\n\n // call onJustify event\n if (self.options.onJustify) {\n self.options.onJustify.call(self);\n }\n }\n\n // update options and resize gallery items\n\n }, {\n key: 'updateOptions',\n value: function updateOptions(options) {\n var self = this;\n self.options = (0, _merge2.default)({}, self.options, options);\n self.justify();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var self = this;\n\n self.removeFromFjGalleryList();\n\n // call onDestroy event\n if (self.options.onDestroy) {\n self.options.onDestroy.call(self);\n }\n\n // remove styles.\n self.css(self.$container, {\n height: ''\n });\n self.images.forEach(function (data) {\n self.css(data.$item, {\n position: '',\n transform: '',\n width: '',\n height: ''\n });\n });\n\n // delete fjGalleryImage instance from images\n self.images.forEach(function (val) {\n delete val.$item.fjGalleryImage;\n });\n\n // delete fjGallery instance from container\n delete self.$container.fjGallery;\n }\n }, {\n key: 'resize',\n value: function resize() {\n var self = this;\n\n self.justify();\n }\n }]);\n\n return fjGallery;\n}();\n\n// global definition\n\n\nvar plugin = function plugin(items) {\n // check for dom element\n // thanks: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n if ((typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === 'object' ? items instanceof HTMLElement : items && (typeof items === 'undefined' ? 'undefined' : _typeof(items)) === 'object' && items !== null && items.nodeType === 1 && typeof items.nodeName === 'string') {\n items = [items];\n }\n\n var options = arguments[1];\n var args = Array.prototype.slice.call(arguments, 2);\n var len = items.length;\n var k = 0;\n var ret = void 0;\n\n for (k; k < len; k++) {\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' || typeof options === 'undefined') {\n if (!items[k].fjGallery) {\n // eslint-disable-next-line new-cap\n items[k].fjGallery = new fjGallery(items[k], options);\n }\n } else if (items[k].fjGallery) {\n // eslint-disable-next-line prefer-spread\n ret = items[k].fjGallery[options].apply(items[k].fjGallery, args);\n }\n if (typeof ret !== 'undefined') {\n return ret;\n }\n }\n\n return items;\n};\nplugin.constructor = fjGallery;\n\nexports.default = plugin;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} noTrailing Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} debounceMode If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nmodule.exports = function (delay, noTrailing, callback, debounceMode) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif (typeof noTrailing !== 'boolean') {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper() {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (debounceMode && !timeoutID) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\t\t} else if (noTrailing !== true) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar global = __webpack_require__(0);\n\n/**\n * `requestAnimationFrame()`\n */\n\nvar request = global.requestAnimationFrame || global.webkitRequestAnimationFrame || global.mozRequestAnimationFrame || fallback;\n\nvar prev = +new Date();\nfunction fallback(fn) {\n var curr = +new Date();\n var ms = Math.max(0, 16 - (curr - prev));\n var req = setTimeout(fn, ms);\n return prev = curr, req;\n}\n\n/**\n * `cancelAnimationFrame()`\n */\n\nvar cancel = global.cancelAnimationFrame || global.webkitCancelAnimationFrame || global.mozCancelAnimationFrame || clearTimeout;\n\nif (Function.prototype.bind) {\n request = request.bind(global);\n cancel = cancel.bind(global);\n}\n\nexports = module.exports = request;\nexports.cancel = cancel;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * Copyright 2016 Yahoo Inc.\n * Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.\n * @license\n */\n\n\n\nvar merge = __webpack_require__(1),\n Row = __webpack_require__(11);\n\n/**\n * Create a new, empty row.\n *\n * @method createNewRow\n * @param layoutConfig {Object} The layout configuration\n * @param layoutData {Object} The current state of the layout\n * @return A new, empty row of the type specified by this layout.\n */\n\nfunction createNewRow(layoutConfig, layoutData) {\n\n\tvar isBreakoutRow;\n\n\t// Work out if this is a full width breakout row\n\tif (layoutConfig.fullWidthBreakoutRowCadence !== false) {\n\t\tif ((layoutData._rows.length + 1) % layoutConfig.fullWidthBreakoutRowCadence === 0) {\n\t\t\tisBreakoutRow = true;\n\t\t}\n\t}\n\n\treturn new Row({\n\t\ttop: layoutData._containerHeight,\n\t\tleft: layoutConfig.containerPadding.left,\n\t\twidth: layoutConfig.containerWidth - layoutConfig.containerPadding.left - layoutConfig.containerPadding.right,\n\t\tspacing: layoutConfig.boxSpacing.horizontal,\n\t\ttargetRowHeight: layoutConfig.targetRowHeight,\n\t\ttargetRowHeightTolerance: layoutConfig.targetRowHeightTolerance,\n\t\tedgeCaseMinRowHeight: 0.5 * layoutConfig.targetRowHeight,\n\t\tedgeCaseMaxRowHeight: 2 * layoutConfig.targetRowHeight,\n\t\trightToLeft: false,\n\t\tisBreakoutRow: isBreakoutRow,\n\t\twidowLayoutStyle: layoutConfig.widowLayoutStyle\n\t});\n}\n\n/**\n * Add a completed row to the layout.\n * Note: the row must have already been completed.\n *\n * @method addRow\n * @param layoutConfig {Object} The layout configuration\n * @param layoutData {Object} The current state of the layout\n * @param row {Row} The row to add.\n * @return {Array} Each item added to the row.\n */\n\nfunction addRow(layoutConfig, layoutData, row) {\n\n\tlayoutData._rows.push(row);\n\tlayoutData._layoutItems = layoutData._layoutItems.concat(row.getItems());\n\n\t// Increment the container height\n\tlayoutData._containerHeight += row.height + layoutConfig.boxSpacing.vertical;\n\n\treturn row.items;\n}\n\n/**\n * Calculate the current layout for all items in the list that require layout.\n * \"Layout\" means geometry: position within container and size\n *\n * @method computeLayout\n * @param layoutConfig {Object} The layout configuration\n * @param layoutData {Object} The current state of the layout\n * @param itemLayoutData {Array} Array of items to lay out, with data required to lay out each item\n * @return {Object} The newly-calculated layout, containing the new container height, and lists of layout items\n */\n\nfunction computeLayout(layoutConfig, layoutData, itemLayoutData) {\n\n\tvar laidOutItems = [],\n\t itemAdded,\n\t currentRow,\n\t nextToLastRowHeight;\n\n\t// Apply forced aspect ratio if specified, and set a flag.\n\tif (layoutConfig.forceAspectRatio) {\n\t\titemLayoutData.forEach(function (itemData) {\n\t\t\titemData.forcedAspectRatio = true;\n\t\t\titemData.aspectRatio = layoutConfig.forceAspectRatio;\n\t\t});\n\t}\n\n\t// Loop through the items\n\titemLayoutData.some(function (itemData, i) {\n\n\t\tif (isNaN(itemData.aspectRatio)) {\n\t\t\tthrow new Error(\"Item \" + i + \" has an invalid aspect ratio\");\n\t\t}\n\n\t\t// If not currently building up a row, make a new one.\n\t\tif (!currentRow) {\n\t\t\tcurrentRow = createNewRow(layoutConfig, layoutData);\n\t\t}\n\n\t\t// Attempt to add item to the current row.\n\t\titemAdded = currentRow.addItem(itemData);\n\n\t\tif (currentRow.isLayoutComplete()) {\n\n\t\t\t// Row is filled; add it and start a new one\n\t\t\tlaidOutItems = laidOutItems.concat(addRow(layoutConfig, layoutData, currentRow));\n\n\t\t\tif (layoutData._rows.length >= layoutConfig.maxNumRows) {\n\t\t\t\tcurrentRow = null;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tcurrentRow = createNewRow(layoutConfig, layoutData);\n\n\t\t\t// Item was rejected; add it to its own row\n\t\t\tif (!itemAdded) {\n\n\t\t\t\titemAdded = currentRow.addItem(itemData);\n\n\t\t\t\tif (currentRow.isLayoutComplete()) {\n\n\t\t\t\t\t// If the rejected item fills a row on its own, add the row and start another new one\n\t\t\t\t\tlaidOutItems = laidOutItems.concat(addRow(layoutConfig, layoutData, currentRow));\n\t\t\t\t\tif (layoutData._rows.length >= layoutConfig.maxNumRows) {\n\t\t\t\t\t\tcurrentRow = null;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentRow = createNewRow(layoutConfig, layoutData);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Handle any leftover content (orphans) depending on where they lie\n\t// in this layout update, and in the total content set.\n\tif (currentRow && currentRow.getItems().length && layoutConfig.showWidows) {\n\n\t\t// Last page of all content or orphan suppression is suppressed; lay out orphans.\n\t\tif (layoutData._rows.length) {\n\n\t\t\t// Only Match previous row's height if it exists and it isn't a breakout row\n\t\t\tif (layoutData._rows[layoutData._rows.length - 1].isBreakoutRow) {\n\t\t\t\tnextToLastRowHeight = layoutData._rows[layoutData._rows.length - 1].targetRowHeight;\n\t\t\t} else {\n\t\t\t\tnextToLastRowHeight = layoutData._rows[layoutData._rows.length - 1].height;\n\t\t\t}\n\n\t\t\tcurrentRow.forceComplete(false, nextToLastRowHeight);\n\t\t} else {\n\n\t\t\t// ...else use target height if there is no other row height to reference.\n\t\t\tcurrentRow.forceComplete(false);\n\t\t}\n\n\t\tlaidOutItems = laidOutItems.concat(addRow(layoutConfig, layoutData, currentRow));\n\t\tlayoutConfig._widowCount = currentRow.getItems().length;\n\t}\n\n\t// We need to clean up the bottom container padding\n\t// First remove the height added for box spacing\n\tlayoutData._containerHeight = layoutData._containerHeight - layoutConfig.boxSpacing.vertical;\n\t// Then add our bottom container padding\n\tlayoutData._containerHeight = layoutData._containerHeight + layoutConfig.containerPadding.bottom;\n\n\treturn {\n\t\tcontainerHeight: layoutData._containerHeight,\n\t\twidowCount: layoutConfig._widowCount,\n\t\tboxes: layoutData._layoutItems\n\t};\n}\n\n/**\n * Takes in a bunch of box data and config. Returns\n * geometry to lay them out in a justified view.\n *\n * @method covertSizesToAspectRatios\n * @param sizes {Array} Array of objects with widths and heights\n * @return {Array} A list of aspect ratios\n */\n\nmodule.exports = function (input, config) {\n\tvar layoutConfig = {};\n\tvar layoutData = {};\n\n\t// Defaults\n\tvar defaults = {\n\t\tcontainerWidth: 1060,\n\t\tcontainerPadding: 10,\n\t\tboxSpacing: 10,\n\t\ttargetRowHeight: 320,\n\t\ttargetRowHeightTolerance: 0.25,\n\t\tmaxNumRows: Number.POSITIVE_INFINITY,\n\t\tforceAspectRatio: false,\n\t\tshowWidows: true,\n\t\tfullWidthBreakoutRowCadence: false,\n\t\twidowLayoutStyle: 'left'\n\t};\n\n\tvar containerPadding = {};\n\tvar boxSpacing = {};\n\n\tconfig = config || {};\n\n\t// Merge defaults and config passed in\n\tlayoutConfig = merge(defaults, config);\n\n\t// Sort out padding and spacing values\n\tcontainerPadding.top = !isNaN(parseFloat(layoutConfig.containerPadding.top)) ? layoutConfig.containerPadding.top : layoutConfig.containerPadding;\n\tcontainerPadding.right = !isNaN(parseFloat(layoutConfig.containerPadding.right)) ? layoutConfig.containerPadding.right : layoutConfig.containerPadding;\n\tcontainerPadding.bottom = !isNaN(parseFloat(layoutConfig.containerPadding.bottom)) ? layoutConfig.containerPadding.bottom : layoutConfig.containerPadding;\n\tcontainerPadding.left = !isNaN(parseFloat(layoutConfig.containerPadding.left)) ? layoutConfig.containerPadding.left : layoutConfig.containerPadding;\n\tboxSpacing.horizontal = !isNaN(parseFloat(layoutConfig.boxSpacing.horizontal)) ? layoutConfig.boxSpacing.horizontal : layoutConfig.boxSpacing;\n\tboxSpacing.vertical = !isNaN(parseFloat(layoutConfig.boxSpacing.vertical)) ? layoutConfig.boxSpacing.vertical : layoutConfig.boxSpacing;\n\n\tlayoutConfig.containerPadding = containerPadding;\n\tlayoutConfig.boxSpacing = boxSpacing;\n\n\t// Local\n\tlayoutData._layoutItems = [];\n\tlayoutData._awakeItems = [];\n\tlayoutData._inViewportItems = [];\n\tlayoutData._leadingOrphans = [];\n\tlayoutData._trailingOrphans = [];\n\tlayoutData._containerHeight = layoutConfig.containerPadding.top;\n\tlayoutData._rows = [];\n\tlayoutData._orphans = [];\n\tlayoutConfig._widowCount = 0;\n\n\t// Convert widths and heights to aspect ratios if we need to\n\treturn computeLayout(layoutConfig, layoutData, input.map(function (item) {\n\t\tif (item.width && item.height) {\n\t\t\treturn { aspectRatio: item.width / item.height };\n\t\t} else {\n\t\t\treturn { aspectRatio: item };\n\t\t}\n\t}));\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*!\n * Copyright 2016 Yahoo Inc.\n * Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.\n * @license\n */\n\nvar merge = __webpack_require__(1);\n\n/**\n * Row\n * Wrapper for each row in a justified layout.\n * Stores relevant values and provides methods for calculating layout of individual rows.\n *\n * @param {Object} layoutConfig - The same as that passed\n * @param {Object} Initialization parameters. The following are all required:\n * @param params.top {Number} Top of row, relative to container\n * @param params.left {Number} Left side of row relative to container (equal to container left padding)\n * @param params.width {Number} Width of row, not including container padding\n * @param params.spacing {Number} Horizontal spacing between items\n * @param params.targetRowHeight {Number} Layout algorithm will aim for this row height\n * @param params.targetRowHeightTolerance {Number} Row heights may vary +/- (`targetRowHeight` x `targetRowHeightTolerance`)\n * @param params.edgeCaseMinRowHeight {Number} Absolute minimum row height for edge cases that cannot be resolved within tolerance.\n * @param params.edgeCaseMaxRowHeight {Number} Absolute maximum row height for edge cases that cannot be resolved within tolerance.\n * @param params.isBreakoutRow {Boolean} Is this row in particular one of those breakout rows? Always false if it's not that kind of photo list\n * @param params.widowLayoutStyle {String} If widows are visible, how should they be laid out?\n * @constructor\n */\n\nvar Row = module.exports = function (params) {\n\n\t// Top of row, relative to container\n\tthis.top = params.top;\n\n\t// Left side of row relative to container (equal to container left padding)\n\tthis.left = params.left;\n\n\t// Width of row, not including container padding\n\tthis.width = params.width;\n\n\t// Horizontal spacing between items\n\tthis.spacing = params.spacing;\n\n\t// Row height calculation values\n\tthis.targetRowHeight = params.targetRowHeight;\n\tthis.targetRowHeightTolerance = params.targetRowHeightTolerance;\n\tthis.minAspectRatio = this.width / params.targetRowHeight * (1 - params.targetRowHeightTolerance);\n\tthis.maxAspectRatio = this.width / params.targetRowHeight * (1 + params.targetRowHeightTolerance);\n\n\t// Edge case row height minimum/maximum\n\tthis.edgeCaseMinRowHeight = params.edgeCaseMinRowHeight;\n\tthis.edgeCaseMaxRowHeight = params.edgeCaseMaxRowHeight;\n\n\t// Widow layout direction\n\tthis.widowLayoutStyle = params.widowLayoutStyle;\n\n\t// Full width breakout rows\n\tthis.isBreakoutRow = params.isBreakoutRow;\n\n\t// Store layout data for each item in row\n\tthis.items = [];\n\n\t// Height remains at 0 until it's been calculated\n\tthis.height = 0;\n};\n\nRow.prototype = {\n\n\t/**\n * Attempt to add a single item to the row.\n * This is the heart of the justified algorithm.\n * This method is direction-agnostic; it deals only with sizes, not positions.\n *\n * If the item fits in the row, without pushing row height beyond min/max tolerance,\n * the item is added and the method returns true.\n *\n * If the item leaves row height too high, there may be room to scale it down and add another item.\n * In this case, the item is added and the method returns true, but the row is incomplete.\n *\n * If the item leaves row height too short, there are too many items to fit within tolerance.\n * The method will either accept or reject the new item, favoring the resulting row height closest to within tolerance.\n * If the item is rejected, left/right padding will be required to fit the row height within tolerance;\n * if the item is accepted, top/bottom cropping will be required to fit the row height within tolerance.\n *\n * @method addItem\n * @param itemData {Object} Item layout data, containing item aspect ratio.\n * @return {Boolean} True if successfully added; false if rejected.\n */\n\n\taddItem: function addItem(itemData) {\n\n\t\tvar newItems = this.items.concat(itemData),\n\n\t\t// Calculate aspect ratios for items only; exclude spacing\n\t\trowWidthWithoutSpacing = this.width - (newItems.length - 1) * this.spacing,\n\t\t newAspectRatio = newItems.reduce(function (sum, item) {\n\t\t\treturn sum + item.aspectRatio;\n\t\t}, 0),\n\t\t targetAspectRatio = rowWidthWithoutSpacing / this.targetRowHeight,\n\t\t previousRowWidthWithoutSpacing,\n\t\t previousAspectRatio,\n\t\t previousTargetAspectRatio;\n\n\t\t// Handle big full-width breakout photos if we're doing them\n\t\tif (this.isBreakoutRow) {\n\t\t\t// Only do it if there's no other items in this row\n\t\t\tif (this.items.length === 0) {\n\t\t\t\t// Only go full width if this photo is a square or landscape\n\t\t\t\tif (itemData.aspectRatio >= 1) {\n\t\t\t\t\t// Close out the row with a full width photo\n\t\t\t\t\tthis.items.push(itemData);\n\t\t\t\t\tthis.completeLayout(rowWidthWithoutSpacing / itemData.aspectRatio, 'justify');\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (newAspectRatio < this.minAspectRatio) {\n\n\t\t\t// New aspect ratio is too narrow / scaled row height is too tall.\n\t\t\t// Accept this item and leave row open for more items.\n\n\t\t\tthis.items.push(merge(itemData));\n\t\t\treturn true;\n\t\t} else if (newAspectRatio > this.maxAspectRatio) {\n\n\t\t\t// New aspect ratio is too wide / scaled row height will be too short.\n\t\t\t// Accept item if the resulting aspect ratio is closer to target than it would be without the item.\n\t\t\t// NOTE: Any row that falls into this block will require cropping/padding on individual items.\n\n\t\t\tif (this.items.length === 0) {\n\n\t\t\t\t// When there are no existing items, force acceptance of the new item and complete the layout.\n\t\t\t\t// This is the pano special case.\n\t\t\t\tthis.items.push(merge(itemData));\n\t\t\t\tthis.completeLayout(rowWidthWithoutSpacing / newAspectRatio, 'justify');\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Calculate width/aspect ratio for row before adding new item\n\t\t\tpreviousRowWidthWithoutSpacing = this.width - (this.items.length - 1) * this.spacing;\n\t\t\tpreviousAspectRatio = this.items.reduce(function (sum, item) {\n\t\t\t\treturn sum + item.aspectRatio;\n\t\t\t}, 0);\n\t\t\tpreviousTargetAspectRatio = previousRowWidthWithoutSpacing / this.targetRowHeight;\n\n\t\t\tif (Math.abs(newAspectRatio - targetAspectRatio) > Math.abs(previousAspectRatio - previousTargetAspectRatio)) {\n\n\t\t\t\t// Row with new item is us farther away from target than row without; complete layout and reject item.\n\t\t\t\tthis.completeLayout(previousRowWidthWithoutSpacing / previousAspectRatio, 'justify');\n\t\t\t\treturn false;\n\t\t\t} else {\n\n\t\t\t\t// Row with new item is us closer to target than row without;\n\t\t\t\t// accept the new item and complete the row layout.\n\t\t\t\tthis.items.push(merge(itemData));\n\t\t\t\tthis.completeLayout(rowWidthWithoutSpacing / newAspectRatio, 'justify');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// New aspect ratio / scaled row height is within tolerance;\n\t\t\t// accept the new item and complete the row layout.\n\t\t\tthis.items.push(merge(itemData));\n\t\t\tthis.completeLayout(rowWidthWithoutSpacing / newAspectRatio, 'justify');\n\t\t\treturn true;\n\t\t}\n\t},\n\n\t/**\n * Check if a row has completed its layout.\n *\n * @method isLayoutComplete\n * @return {Boolean} True if complete; false if not.\n */\n\n\tisLayoutComplete: function isLayoutComplete() {\n\t\treturn this.height > 0;\n\t},\n\n\t/**\n * Set row height and compute item geometry from that height.\n * Will justify items within the row unless instructed not to.\n *\n * @method completeLayout\n * @param newHeight {Number} Set row height to this value.\n * @param widowLayoutStyle {String} How should widows display? Supported: left | justify | center\n */\n\n\tcompleteLayout: function completeLayout(newHeight, widowLayoutStyle) {\n\n\t\tvar itemWidthSum = this.left,\n\t\t rowWidthWithoutSpacing = this.width - (this.items.length - 1) * this.spacing,\n\t\t clampedToNativeRatio,\n\t\t clampedHeight,\n\t\t errorWidthPerItem,\n\t\t roundedCumulativeErrors,\n\t\t singleItemGeometry,\n\t\t centerOffset;\n\n\t\t// Justify unless explicitly specified otherwise.\n\t\tif (typeof widowLayoutStyle === 'undefined' || ['justify', 'center', 'left'].indexOf(widowLayoutStyle) < 0) {\n\t\t\twidowLayoutStyle = 'left';\n\t\t}\n\n\t\t// Clamp row height to edge case minimum/maximum.\n\t\tclampedHeight = Math.max(this.edgeCaseMinRowHeight, Math.min(newHeight, this.edgeCaseMaxRowHeight));\n\n\t\tif (newHeight !== clampedHeight) {\n\n\t\t\t// If row height was clamped, the resulting row/item aspect ratio will be off,\n\t\t\t// so force it to fit the width (recalculate aspectRatio to match clamped height).\n\t\t\t// NOTE: this will result in cropping/padding commensurate to the amount of clamping.\n\t\t\tthis.height = clampedHeight;\n\t\t\tclampedToNativeRatio = rowWidthWithoutSpacing / clampedHeight / (rowWidthWithoutSpacing / newHeight);\n\t\t} else {\n\n\t\t\t// If not clamped, leave ratio at 1.0.\n\t\t\tthis.height = newHeight;\n\t\t\tclampedToNativeRatio = 1.0;\n\t\t}\n\n\t\t// Compute item geometry based on newHeight.\n\t\tthis.items.forEach(function (item) {\n\n\t\t\titem.top = this.top;\n\t\t\titem.width = item.aspectRatio * this.height * clampedToNativeRatio;\n\t\t\titem.height = this.height;\n\n\t\t\t// Left-to-right.\n\t\t\t// TODO right to left\n\t\t\t// item.left = this.width - itemWidthSum - item.width;\n\t\t\titem.left = itemWidthSum;\n\n\t\t\t// Increment width.\n\t\t\titemWidthSum += item.width + this.spacing;\n\t\t}, this);\n\n\t\t// If specified, ensure items fill row and distribute error\n\t\t// caused by rounding width and height across all items.\n\t\tif (widowLayoutStyle === 'justify') {\n\n\t\t\titemWidthSum -= this.spacing + this.left;\n\n\t\t\terrorWidthPerItem = (itemWidthSum - this.width) / this.items.length;\n\t\t\troundedCumulativeErrors = this.items.map(function (item, i) {\n\t\t\t\treturn Math.round((i + 1) * errorWidthPerItem);\n\t\t\t});\n\n\t\t\tif (this.items.length === 1) {\n\n\t\t\t\t// For rows with only one item, adjust item width to fill row.\n\t\t\t\tsingleItemGeometry = this.items[0];\n\t\t\t\tsingleItemGeometry.width -= Math.round(errorWidthPerItem);\n\t\t\t} else {\n\n\t\t\t\t// For rows with multiple items, adjust item width and shift items to fill the row,\n\t\t\t\t// while maintaining equal spacing between items in the row.\n\t\t\t\tthis.items.forEach(function (item, i) {\n\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\titem.left -= roundedCumulativeErrors[i - 1];\n\t\t\t\t\t\titem.width -= roundedCumulativeErrors[i] - roundedCumulativeErrors[i - 1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\titem.width -= roundedCumulativeErrors[i];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (widowLayoutStyle === 'center') {\n\n\t\t\t// Center widows\n\t\t\tcenterOffset = (this.width - itemWidthSum) / 2;\n\n\t\t\tthis.items.forEach(function (item) {\n\t\t\t\titem.left += centerOffset + this.spacing;\n\t\t\t}, this);\n\t\t}\n\t},\n\n\t/**\n * Force completion of row layout with current items.\n *\n * @method forceComplete\n * @param fitToWidth {Boolean} Stretch current items to fill the row width.\n * This will likely result in padding.\n * @param fitToWidth {Number}\n */\n\n\tforceComplete: function forceComplete(fitToWidth, rowHeight) {\n\n\t\t// TODO Handle fitting to width\n\t\t// var rowWidthWithoutSpacing = this.width - (this.items.length - 1) * this.spacing,\n\t\t// \tcurrentAspectRatio = this.items.reduce(function (sum, item) {\n\t\t// \t\treturn sum + item.aspectRatio;\n\t\t// \t}, 0);\n\n\t\tif (typeof rowHeight === 'number') {\n\n\t\t\tthis.completeLayout(rowHeight, this.widowLayoutStyle);\n\t\t} else {\n\n\t\t\t// Complete using target row height.\n\t\t\tthis.completeLayout(this.targetRowHeight, this.widowLayoutStyle);\n\t\t}\n\t},\n\n\t/**\n * Return layout data for items within row.\n * Note: returns actual list, not a copy.\n *\n * @method getItems\n * @return Layout data for items within row.\n */\n\n\tgetItems: function getItems() {\n\t\treturn this.items;\n\t}\n\n};\n\n/***/ })\n/******/ ]);"]}
|
1 |
+
{"version":3,"sources":["fjGallery.js"],"names":["modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","global","win","window","self","_typeof","Symbol","iterator","obj","constructor","isNode","Public","clone","merge","arguments","merge_recursive","base","extend","typeOf","key","recursive","argv","result","size","length","index","item","sitem","input","toString","slice","toLowerCase","output","type","callback","document","readyState","attachEvent","addEventListener","_liteReady2","_interopRequireDefault","_global","_fjGallery2","default","oldPlugin","fjGallery","noConflict","this","jQuery","oldInit","init","jQcontainer","$container","data","oldDestroy","destroy","removeData","jQueryPlugin","args","Array","unshift","res","apply","oldJqPlugin","fn","querySelectorAll","g","Function","eval","e","value","_createClass","defineProperties","target","props","descriptor","writable","Constructor","protoProps","staticProps","_throttle2","_merge2","_rafl2","_justifiedLayout2","fjGalleryList","updateFjGallery","forEach","resize","instanceID","container","userOptions","instance","TypeError","_classCallCheck","images","defaults","itemSelector","imageSelector","gutter","rowHeight","rowHeightTolerance","resizeThrottle","onInit","onDestroy","onAppendImages","onBeforeJustify","onJustify","dataOptions","dataset","pureDataOptions","keys","loweCaseOption","substr","options","pureOptions","el","styles","getComputedStyle","getPropertyValue","transform","style","push","splice","appendImages","addToFjGalleryList","$images","$item","fjGalleryImage","querySelector","$image","width","parseFloat","getAttribute","height","loadSizes","img","cb","interval","hasSize","addedListeners","onHasSize","onLoaded","onError","checkSize","removeListeners","itemData","dimensions","naturalWidth","naturalHeight","clearInterval","removeEventListener","setInterval","justify","justifyArray","justifiedData","containerWidth","getBoundingClientRect","containerPadding","top","css","right","bottom","left","boxSpacing","targetRowHeight","targetRowHeightTolerance","containerHeight","position","boxes","removeFromFjGalleryList","val","plugin","items","HTMLElement","nodeType","nodeName","len","k","ret","delay","noTrailing","debounceMode","timeoutID","lastExec","undefined","elapsed","Number","Date","exec","clearTimeout","setTimeout","webpackPolyfill","deprecate","paths","children","request","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","curr","ms","Math","max","prev","req","cancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","bind","Row","createNewRow","layoutConfig","layoutData","isBreakoutRow","fullWidthBreakoutRowCadence","_rows","_containerHeight","spacing","horizontal","edgeCaseMinRowHeight","edgeCaseMaxRowHeight","rightToLeft","widowLayoutStyle","addRow","row","_layoutItems","concat","getItems","vertical","config","itemLayoutData","itemAdded","currentRow","nextToLastRowHeight","laidOutItems","maxNumRows","POSITIVE_INFINITY","forceAspectRatio","showWidows","isNaN","_awakeItems","_inViewportItems","_leadingOrphans","_trailingOrphans","_orphans","_widowCount","map","aspectRatio","forcedAspectRatio","some","Error","addItem","isLayoutComplete","forceComplete","widowCount","params","minAspectRatio","maxAspectRatio","previousRowWidthWithoutSpacing","previousAspectRatio","previousTargetAspectRatio","newItems","rowWidthWithoutSpacing","newAspectRatio","reduce","sum","targetAspectRatio","completeLayout","abs","newHeight","clampedToNativeRatio","clampedHeight","errorWidthPerItem","roundedCumulativeErrors","centerOffset","itemWidthSum","indexOf","min","round","fitToWidth"],"mappings":"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","file":"fjGallery.min.js","sourcesContent":["/*!\n * Name : Flickr's Justified Gallery [fjGallery]\n * Version : 1.0.2\n * Author : nK <https://nkdev.info>\n * GitHub : https://github.com/nk-o/flickr-justified-gallery\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {\n\nvar win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\r\n * @name JavaScript/NodeJS Merge v1.2.0\r\n * @author yeikos\r\n * @repository https://github.com/yeikos/js.merge\r\n\r\n * Copyright 2014 yeikos - MIT license\r\n * https://raw.github.com/yeikos/js.merge/master/LICENSE\r\n */\n\n;(function (isNode) {\n\n\t/**\r\n * Merge one or more objects \r\n * @param bool? clone\r\n * @param mixed,... arguments\r\n * @return object\r\n */\n\n\tvar Public = function Public(clone) {\n\n\t\treturn merge(clone === true, false, arguments);\n\t},\n\t publicName = 'merge';\n\n\t/**\r\n * Merge two or more objects recursively \r\n * @param bool? clone\r\n * @param mixed,... arguments\r\n * @return object\r\n */\n\n\tPublic.recursive = function (clone) {\n\n\t\treturn merge(clone === true, true, arguments);\n\t};\n\n\t/**\r\n * Clone the input removing any reference\r\n * @param mixed input\r\n * @return mixed\r\n */\n\n\tPublic.clone = function (input) {\n\n\t\tvar output = input,\n\t\t type = typeOf(input),\n\t\t index,\n\t\t size;\n\n\t\tif (type === 'array') {\n\n\t\t\toutput = [];\n\t\t\tsize = input.length;\n\n\t\t\tfor (index = 0; index < size; ++index) {\n\n\t\t\t\toutput[index] = Public.clone(input[index]);\n\t\t\t}\n\t\t} else if (type === 'object') {\n\n\t\t\toutput = {};\n\n\t\t\tfor (index in input) {\n\n\t\t\t\toutput[index] = Public.clone(input[index]);\n\t\t\t}\n\t\t}\n\n\t\treturn output;\n\t};\n\n\t/**\r\n * Merge two objects recursively\r\n * @param mixed input\r\n * @param mixed extend\r\n * @return mixed\r\n */\n\n\tfunction merge_recursive(base, extend) {\n\n\t\tif (typeOf(base) !== 'object') return extend;\n\n\t\tfor (var key in extend) {\n\n\t\t\tif (typeOf(base[key]) === 'object' && typeOf(extend[key]) === 'object') {\n\n\t\t\t\tbase[key] = merge_recursive(base[key], extend[key]);\n\t\t\t} else {\n\n\t\t\t\tbase[key] = extend[key];\n\t\t\t}\n\t\t}\n\n\t\treturn base;\n\t}\n\n\t/**\r\n * Merge two or more objects\r\n * @param bool clone\r\n * @param bool recursive\r\n * @param array argv\r\n * @return object\r\n */\n\n\tfunction merge(clone, recursive, argv) {\n\n\t\tvar result = argv[0],\n\t\t size = argv.length;\n\n\t\tif (clone || typeOf(result) !== 'object') result = {};\n\n\t\tfor (var index = 0; index < size; ++index) {\n\n\t\t\tvar item = argv[index],\n\t\t\t type = typeOf(item);\n\n\t\t\tif (type !== 'object') continue;\n\n\t\t\tfor (var key in item) {\n\n\t\t\t\tvar sitem = clone ? Public.clone(item[key]) : item[key];\n\n\t\t\t\tif (recursive) {\n\n\t\t\t\t\tresult[key] = merge_recursive(result[key], sitem);\n\t\t\t\t} else {\n\n\t\t\t\t\tresult[key] = sitem;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\r\n * Get type of variable\r\n * @param mixed input\r\n * @return string\r\n *\r\n * @see http://jsperf.com/typeofvar\r\n */\n\n\tfunction typeOf(input) {\n\n\t\treturn {}.toString.call(input).slice(8, -1).toLowerCase();\n\t}\n\n\tif (isNode) {\n\n\t\tmodule.exports = Public;\n\t} else {\n\n\t\twindow[publicName] = Public;\n\t}\n})(( false ? 'undefined' : _typeof(module)) === 'object' && module && _typeof(module.exports) === 'object' && module.exports);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(8)(module)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (callback) {\n\n\tif (document.readyState === 'complete' || document.readyState === 'interactive') {\n\t\t// Already ready or interactive, execute callback\n\t\tcallback.call();\n\t} else if (document.attachEvent) {\n\t\t// Old browsers\n\t\tdocument.attachEvent('onreadystatechange', function () {\n\t\t\tif (document.readyState === 'interactive') callback.call();\n\t\t});\n\t} else if (document.addEventListener) {\n\t\t// Modern browsers\n\t\tdocument.addEventListener('DOMContentLoaded', callback);\n\t}\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(4);\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _liteReady = __webpack_require__(2);\n\nvar _liteReady2 = _interopRequireDefault(_liteReady);\n\nvar _global = __webpack_require__(0);\n\nvar _fjGallery = __webpack_require__(6);\n\nvar _fjGallery2 = _interopRequireDefault(_fjGallery);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// no conflict\nvar oldPlugin = _global.window.fjGallery;\n_global.window.fjGallery = _fjGallery2.default;\n_global.window.fjGallery.noConflict = function () {\n _global.window.fjGallery = oldPlugin;\n return this;\n};\n\n// jQuery support\nif (typeof _global.jQuery !== 'undefined') {\n // add data to jQuery .data('fjGallery')\n var oldInit = _global.window.fjGallery.constructor.prototype.init;\n _global.window.fjGallery.constructor.prototype.init = function () {\n this.jQcontainer = (0, _global.jQuery)(this.$container);\n this.jQcontainer.data('fjGallery', this);\n if (oldInit) {\n oldInit.call(this);\n }\n };\n\n // remove data from jQuery .data('fjGallery')\n var oldDestroy = _global.window.fjGallery.constructor.prototype.destroy;\n _global.window.fjGallery.constructor.prototype.destroy = function () {\n if (this.jQcontainer) {\n this.jQcontainer.removeData('fjGallery');\n }\n if (oldDestroy) {\n oldDestroy.call(this);\n }\n };\n\n var jQueryPlugin = function jQueryPlugin() {\n var args = arguments || [];\n Array.prototype.unshift.call(args, this);\n var res = _fjGallery2.default.apply(_global.window, args);\n return (typeof res === 'undefined' ? 'undefined' : _typeof(res)) !== 'object' ? res : this;\n };\n jQueryPlugin.constructor = _fjGallery2.default.constructor;\n\n // no conflict\n var oldJqPlugin = _global.jQuery.fn.fjGallery;\n _global.jQuery.fn.fjGallery = jQueryPlugin;\n _global.jQuery.fn.fjGallery.noConflict = function () {\n _global.jQuery.fn.fjGallery = oldJqPlugin;\n return this;\n };\n}\n\n// .fj-gallery initialization\n(0, _liteReady2.default)(function () {\n (0, _fjGallery2.default)(document.querySelectorAll('.fj-gallery'));\n});\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar g;\n\n// This works in non-strict mode\ng = function () {\n\treturn this;\n}();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _throttle = __webpack_require__(7);\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _merge = __webpack_require__(1);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _liteReady = __webpack_require__(2);\n\nvar _liteReady2 = _interopRequireDefault(_liteReady);\n\nvar _rafl = __webpack_require__(9);\n\nvar _rafl2 = _interopRequireDefault(_rafl);\n\nvar _justifiedLayout = __webpack_require__(10);\n\nvar _justifiedLayout2 = _interopRequireDefault(_justifiedLayout);\n\nvar _global = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// list with all fjGallery instances\n// need to render all in one scroll/resize event\nvar fjGalleryList = [];\n\nfunction updateFjGallery() {\n (0, _rafl2.default)(function () {\n fjGalleryList.forEach(function (item) {\n item.resize();\n });\n });\n}\n\n_global.window.addEventListener('resize', updateFjGallery);\n_global.window.addEventListener('orientationchange', updateFjGallery);\n_global.window.addEventListener('load', updateFjGallery);\n(0, _liteReady2.default)(function () {\n updateFjGallery();\n});\n\n// get image dimensions\n// thanks https://gist.github.com/dimsemenov/5382856\nfunction getImgDemensions(img, cb) {\n var interval = void 0;\n var hasSize = false;\n var addedListeners = false;\n\n var onHasSize = function onHasSize() {\n if (hasSize) {\n cb(hasSize);\n return;\n }\n\n hasSize = {\n width: img.naturalWidth,\n height: img.naturalHeight\n };\n cb(hasSize);\n\n clearInterval(interval);\n if (addedListeners) {\n // eslint-disable-next-line no-use-before-define\n removeListeners();\n }\n };\n var onLoaded = function onLoaded() {\n onHasSize();\n };\n var onError = function onError() {\n onHasSize();\n };\n var checkSize = function checkSize() {\n if (img.naturalWidth > 0) {\n onHasSize();\n }\n };\n var addListeners = function addListeners() {\n addedListeners = true;\n img.addEventListener('load', onLoaded);\n img.addEventListener('error', onError);\n };\n var removeListeners = function removeListeners() {\n addedListeners = false;\n img.removeEventListener('load', onLoaded);\n img.removeEventListener('error', onError);\n };\n\n checkSize();\n\n if (!hasSize) {\n addListeners();\n interval = setInterval(checkSize, 100);\n }\n}\n\nvar instanceID = 0;\n\n// fjGallery class\n\nvar fjGallery = function () {\n function fjGallery(container, userOptions) {\n _classCallCheck(this, fjGallery);\n\n var self = this;\n\n self.instanceID = instanceID++;\n\n self.$container = container;\n\n self.images = [];\n\n self.defaults = {\n itemSelector: '.fj-gallery-item',\n imageSelector: 'img',\n gutter: 10, // supports object like `{ horizontal: 10, vertical: 10 }`.\n rowHeight: 320,\n rowHeightTolerance: 0.25, // [0, 1]\n resizeThrottle: 200,\n\n // events\n onInit: null, // function() {}\n onDestroy: null, // function() {}\n onAppendImages: null, // function() {}\n onBeforeJustify: null, // function() {}\n onJustify: null // function() {}\n };\n\n // prepare data-options\n var dataOptions = self.$container.dataset || {};\n var pureDataOptions = {};\n Object.keys(dataOptions).forEach(function (key) {\n var loweCaseOption = key.substr(0, 1).toLowerCase() + key.substr(1);\n if (loweCaseOption && typeof self.defaults[loweCaseOption] !== 'undefined') {\n pureDataOptions[loweCaseOption] = dataOptions[key];\n }\n });\n\n self.options = (0, _merge2.default)({}, self.defaults, pureDataOptions, userOptions);\n self.pureOptions = (0, _merge2.default)({}, self.options);\n\n // throttle for resize\n self.resize = (0, _throttle2.default)(self.options.resizeThrottle, self.resize);\n\n self.init();\n }\n\n // add styles to element\n\n\n _createClass(fjGallery, [{\n key: 'css',\n value: function css(el, styles) {\n if (typeof styles === 'string') {\n return _global.window.getComputedStyle(el).getPropertyValue(styles);\n }\n\n // add transform property with vendor prefix\n if (styles.transform) {\n styles['-webkit-transform'] = styles.transform;\n }\n\n Object.keys(styles).forEach(function (key) {\n el.style[key] = styles[key];\n });\n return el;\n }\n\n // add to fjGallery instances list\n\n }, {\n key: 'addToFjGalleryList',\n value: function addToFjGalleryList() {\n fjGalleryList.push(this);\n updateFjGallery();\n }\n\n // remove from fjGallery instances list\n\n }, {\n key: 'removeFromFjGalleryList',\n value: function removeFromFjGalleryList() {\n var self = this;\n\n fjGalleryList.forEach(function (item, key) {\n if (item.instanceID === self.instanceID) {\n fjGalleryList.splice(key, 1);\n }\n });\n }\n }, {\n key: 'init',\n value: function init() {\n var self = this;\n\n self.appendImages(self.$container.querySelectorAll(self.options.itemSelector));\n\n self.addToFjGalleryList();\n\n // call onInit event\n if (self.options.onInit) {\n self.options.onInit.call(self);\n }\n }\n\n // append images\n\n }, {\n key: 'appendImages',\n value: function appendImages($images) {\n var self = this;\n\n // check if jQuery\n if (_global.window.jQuery && $images instanceof _global.window.jQuery) {\n $images = $images.get();\n }\n\n if (!$images || !$images.length) {\n return;\n }\n\n $images.forEach(function ($item) {\n // if $images is jQuery, for some reason in this array there is undefined item, that not a DOM,\n // so we need to check for $item.querySelector.\n if ($item && !$item.fjGalleryImage && $item.querySelector) {\n var $image = $item.querySelector(self.options.imageSelector);\n\n if ($image) {\n $item.fjGalleryImage = self;\n var data = {\n $item: $item,\n $image: $image,\n width: parseFloat($image.getAttribute('width')) || false,\n height: parseFloat($image.getAttribute('height')) || false,\n loadSizes: function loadSizes() {\n var itemData = this;\n getImgDemensions($image, function (dimensions) {\n if (itemData.width !== dimensions.width || itemData.height !== dimensions.height) {\n itemData.width = dimensions.width;\n itemData.height = dimensions.height;\n self.resize();\n }\n });\n }\n };\n data.loadSizes();\n\n self.images.push(data);\n }\n }\n });\n\n // call onAppendImages event\n if (self.options.onAppendImages) {\n self.options.onAppendImages.call(self, [$images]);\n }\n\n self.justify();\n }\n\n // justify images\n\n }, {\n key: 'justify',\n value: function justify() {\n var self = this;\n var justifyArray = [];\n\n // call onBeforeJustify event\n if (self.options.onBeforeJustify) {\n self.options.onBeforeJustify.call(self);\n }\n\n self.images.forEach(function (data) {\n if (data.width && data.height) {\n justifyArray.push(data.width / data.height);\n }\n });\n\n var justifiedData = (0, _justifiedLayout2.default)(justifyArray, {\n containerWidth: self.$container.getBoundingClientRect().width,\n containerPadding: {\n top: parseFloat(self.css(self.$container, 'padding-top')) || 0,\n right: parseFloat(self.css(self.$container, 'padding-right')) || 0,\n bottom: parseFloat(self.css(self.$container, 'padding-bottom')) || 0,\n left: parseFloat(self.css(self.$container, 'padding-left')) || 0\n },\n boxSpacing: self.options.gutter,\n targetRowHeight: self.options.rowHeight,\n targetRowHeightTolerance: self.options.rowHeightTolerance\n });\n\n self.css(self.$container, {\n height: justifiedData.containerHeight + 'px'\n });\n\n var i = 0;\n self.images.forEach(function (data) {\n if (data.width && data.height) {\n self.css(data.$item, {\n position: 'absolute',\n transform: 'translateX(' + justifiedData.boxes[i].left + 'px) translateY(' + justifiedData.boxes[i].top + 'px) translateZ(0)',\n width: justifiedData.boxes[i].width + 'px',\n height: justifiedData.boxes[i].height + 'px'\n });\n i++;\n }\n });\n\n // call onJustify event\n if (self.options.onJustify) {\n self.options.onJustify.call(self);\n }\n }\n\n // update options and resize gallery items\n\n }, {\n key: 'updateOptions',\n value: function updateOptions(options) {\n var self = this;\n self.options = (0, _merge2.default)({}, self.options, options);\n self.justify();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var self = this;\n\n self.removeFromFjGalleryList();\n\n // call onDestroy event\n if (self.options.onDestroy) {\n self.options.onDestroy.call(self);\n }\n\n // remove styles.\n self.css(self.$container, {\n height: ''\n });\n self.images.forEach(function (data) {\n self.css(data.$item, {\n position: '',\n transform: '',\n width: '',\n height: ''\n });\n });\n\n // delete fjGalleryImage instance from images\n self.images.forEach(function (val) {\n delete val.$item.fjGalleryImage;\n });\n\n // delete fjGallery instance from container\n delete self.$container.fjGallery;\n }\n }, {\n key: 'resize',\n value: function resize() {\n var self = this;\n\n self.justify();\n }\n }]);\n\n return fjGallery;\n}();\n\n// global definition\n\n\nvar plugin = function plugin(items) {\n // check for dom element\n // thanks: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n if ((typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === 'object' ? items instanceof HTMLElement : items && (typeof items === 'undefined' ? 'undefined' : _typeof(items)) === 'object' && items !== null && items.nodeType === 1 && typeof items.nodeName === 'string') {\n items = [items];\n }\n\n var options = arguments[1];\n var args = Array.prototype.slice.call(arguments, 2);\n var len = items.length;\n var k = 0;\n var ret = void 0;\n\n for (k; k < len; k++) {\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' || typeof options === 'undefined') {\n if (!items[k].fjGallery) {\n // eslint-disable-next-line new-cap\n items[k].fjGallery = new fjGallery(items[k], options);\n }\n } else if (items[k].fjGallery) {\n // eslint-disable-next-line prefer-spread\n ret = items[k].fjGallery[options].apply(items[k].fjGallery, args);\n }\n if (typeof ret !== 'undefined') {\n return ret;\n }\n }\n\n return items;\n};\nplugin.constructor = fjGallery;\n\nexports.default = plugin;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} noTrailing Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} debounceMode If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nmodule.exports = function (delay, noTrailing, callback, debounceMode) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif (typeof noTrailing !== 'boolean') {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper() {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (debounceMode && !timeoutID) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\t\t} else if (noTrailing !== true) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function () {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function get() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar global = __webpack_require__(0);\n\n/**\n * `requestAnimationFrame()`\n */\n\nvar request = global.requestAnimationFrame || global.webkitRequestAnimationFrame || global.mozRequestAnimationFrame || fallback;\n\nvar prev = +new Date();\nfunction fallback(fn) {\n var curr = +new Date();\n var ms = Math.max(0, 16 - (curr - prev));\n var req = setTimeout(fn, ms);\n return prev = curr, req;\n}\n\n/**\n * `cancelAnimationFrame()`\n */\n\nvar cancel = global.cancelAnimationFrame || global.webkitCancelAnimationFrame || global.mozCancelAnimationFrame || clearTimeout;\n\nif (Function.prototype.bind) {\n request = request.bind(global);\n cancel = cancel.bind(global);\n}\n\nexports = module.exports = request;\nexports.cancel = cancel;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * Copyright 2016 Yahoo Inc.\n * Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.\n * @license\n */\n\n\n\nvar merge = __webpack_require__(1),\n Row = __webpack_require__(11);\n\n/**\n * Create a new, empty row.\n *\n * @method createNewRow\n * @param layoutConfig {Object} The layout configuration\n * @param layoutData {Object} The current state of the layout\n * @return A new, empty row of the type specified by this layout.\n */\n\nfunction createNewRow(layoutConfig, layoutData) {\n\n\tvar isBreakoutRow;\n\n\t// Work out if this is a full width breakout row\n\tif (layoutConfig.fullWidthBreakoutRowCadence !== false) {\n\t\tif ((layoutData._rows.length + 1) % layoutConfig.fullWidthBreakoutRowCadence === 0) {\n\t\t\tisBreakoutRow = true;\n\t\t}\n\t}\n\n\treturn new Row({\n\t\ttop: layoutData._containerHeight,\n\t\tleft: layoutConfig.containerPadding.left,\n\t\twidth: layoutConfig.containerWidth - layoutConfig.containerPadding.left - layoutConfig.containerPadding.right,\n\t\tspacing: layoutConfig.boxSpacing.horizontal,\n\t\ttargetRowHeight: layoutConfig.targetRowHeight,\n\t\ttargetRowHeightTolerance: layoutConfig.targetRowHeightTolerance,\n\t\tedgeCaseMinRowHeight: 0.5 * layoutConfig.targetRowHeight,\n\t\tedgeCaseMaxRowHeight: 2 * layoutConfig.targetRowHeight,\n\t\trightToLeft: false,\n\t\tisBreakoutRow: isBreakoutRow,\n\t\twidowLayoutStyle: layoutConfig.widowLayoutStyle\n\t});\n}\n\n/**\n * Add a completed row to the layout.\n * Note: the row must have already been completed.\n *\n * @method addRow\n * @param layoutConfig {Object} The layout configuration\n * @param layoutData {Object} The current state of the layout\n * @param row {Row} The row to add.\n * @return {Array} Each item added to the row.\n */\n\nfunction addRow(layoutConfig, layoutData, row) {\n\n\tlayoutData._rows.push(row);\n\tlayoutData._layoutItems = layoutData._layoutItems.concat(row.getItems());\n\n\t// Increment the container height\n\tlayoutData._containerHeight += row.height + layoutConfig.boxSpacing.vertical;\n\n\treturn row.items;\n}\n\n/**\n * Calculate the current layout for all items in the list that require layout.\n * \"Layout\" means geometry: position within container and size\n *\n * @method computeLayout\n * @param layoutConfig {Object} The layout configuration\n * @param layoutData {Object} The current state of the layout\n * @param itemLayoutData {Array} Array of items to lay out, with data required to lay out each item\n * @return {Object} The newly-calculated layout, containing the new container height, and lists of layout items\n */\n\nfunction computeLayout(layoutConfig, layoutData, itemLayoutData) {\n\n\tvar laidOutItems = [],\n\t itemAdded,\n\t currentRow,\n\t nextToLastRowHeight;\n\n\t// Apply forced aspect ratio if specified, and set a flag.\n\tif (layoutConfig.forceAspectRatio) {\n\t\titemLayoutData.forEach(function (itemData) {\n\t\t\titemData.forcedAspectRatio = true;\n\t\t\titemData.aspectRatio = layoutConfig.forceAspectRatio;\n\t\t});\n\t}\n\n\t// Loop through the items\n\titemLayoutData.some(function (itemData, i) {\n\n\t\tif (isNaN(itemData.aspectRatio)) {\n\t\t\tthrow new Error(\"Item \" + i + \" has an invalid aspect ratio\");\n\t\t}\n\n\t\t// If not currently building up a row, make a new one.\n\t\tif (!currentRow) {\n\t\t\tcurrentRow = createNewRow(layoutConfig, layoutData);\n\t\t}\n\n\t\t// Attempt to add item to the current row.\n\t\titemAdded = currentRow.addItem(itemData);\n\n\t\tif (currentRow.isLayoutComplete()) {\n\n\t\t\t// Row is filled; add it and start a new one\n\t\t\tlaidOutItems = laidOutItems.concat(addRow(layoutConfig, layoutData, currentRow));\n\n\t\t\tif (layoutData._rows.length >= layoutConfig.maxNumRows) {\n\t\t\t\tcurrentRow = null;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tcurrentRow = createNewRow(layoutConfig, layoutData);\n\n\t\t\t// Item was rejected; add it to its own row\n\t\t\tif (!itemAdded) {\n\n\t\t\t\titemAdded = currentRow.addItem(itemData);\n\n\t\t\t\tif (currentRow.isLayoutComplete()) {\n\n\t\t\t\t\t// If the rejected item fills a row on its own, add the row and start another new one\n\t\t\t\t\tlaidOutItems = laidOutItems.concat(addRow(layoutConfig, layoutData, currentRow));\n\t\t\t\t\tif (layoutData._rows.length >= layoutConfig.maxNumRows) {\n\t\t\t\t\t\tcurrentRow = null;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentRow = createNewRow(layoutConfig, layoutData);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Handle any leftover content (orphans) depending on where they lie\n\t// in this layout update, and in the total content set.\n\tif (currentRow && currentRow.getItems().length && layoutConfig.showWidows) {\n\n\t\t// Last page of all content or orphan suppression is suppressed; lay out orphans.\n\t\tif (layoutData._rows.length) {\n\n\t\t\t// Only Match previous row's height if it exists and it isn't a breakout row\n\t\t\tif (layoutData._rows[layoutData._rows.length - 1].isBreakoutRow) {\n\t\t\t\tnextToLastRowHeight = layoutData._rows[layoutData._rows.length - 1].targetRowHeight;\n\t\t\t} else {\n\t\t\t\tnextToLastRowHeight = layoutData._rows[layoutData._rows.length - 1].height;\n\t\t\t}\n\n\t\t\tcurrentRow.forceComplete(false, nextToLastRowHeight);\n\t\t} else {\n\n\t\t\t// ...else use target height if there is no other row height to reference.\n\t\t\tcurrentRow.forceComplete(false);\n\t\t}\n\n\t\tlaidOutItems = laidOutItems.concat(addRow(layoutConfig, layoutData, currentRow));\n\t\tlayoutConfig._widowCount = currentRow.getItems().length;\n\t}\n\n\t// We need to clean up the bottom container padding\n\t// First remove the height added for box spacing\n\tlayoutData._containerHeight = layoutData._containerHeight - layoutConfig.boxSpacing.vertical;\n\t// Then add our bottom container padding\n\tlayoutData._containerHeight = layoutData._containerHeight + layoutConfig.containerPadding.bottom;\n\n\treturn {\n\t\tcontainerHeight: layoutData._containerHeight,\n\t\twidowCount: layoutConfig._widowCount,\n\t\tboxes: layoutData._layoutItems\n\t};\n}\n\n/**\n * Takes in a bunch of box data and config. Returns\n * geometry to lay them out in a justified view.\n *\n * @method covertSizesToAspectRatios\n * @param sizes {Array} Array of objects with widths and heights\n * @return {Array} A list of aspect ratios\n */\n\nmodule.exports = function (input, config) {\n\tvar layoutConfig = {};\n\tvar layoutData = {};\n\n\t// Defaults\n\tvar defaults = {\n\t\tcontainerWidth: 1060,\n\t\tcontainerPadding: 10,\n\t\tboxSpacing: 10,\n\t\ttargetRowHeight: 320,\n\t\ttargetRowHeightTolerance: 0.25,\n\t\tmaxNumRows: Number.POSITIVE_INFINITY,\n\t\tforceAspectRatio: false,\n\t\tshowWidows: true,\n\t\tfullWidthBreakoutRowCadence: false,\n\t\twidowLayoutStyle: 'left'\n\t};\n\n\tvar containerPadding = {};\n\tvar boxSpacing = {};\n\n\tconfig = config || {};\n\n\t// Merge defaults and config passed in\n\tlayoutConfig = merge(defaults, config);\n\n\t// Sort out padding and spacing values\n\tcontainerPadding.top = !isNaN(parseFloat(layoutConfig.containerPadding.top)) ? layoutConfig.containerPadding.top : layoutConfig.containerPadding;\n\tcontainerPadding.right = !isNaN(parseFloat(layoutConfig.containerPadding.right)) ? layoutConfig.containerPadding.right : layoutConfig.containerPadding;\n\tcontainerPadding.bottom = !isNaN(parseFloat(layoutConfig.containerPadding.bottom)) ? layoutConfig.containerPadding.bottom : layoutConfig.containerPadding;\n\tcontainerPadding.left = !isNaN(parseFloat(layoutConfig.containerPadding.left)) ? layoutConfig.containerPadding.left : layoutConfig.containerPadding;\n\tboxSpacing.horizontal = !isNaN(parseFloat(layoutConfig.boxSpacing.horizontal)) ? layoutConfig.boxSpacing.horizontal : layoutConfig.boxSpacing;\n\tboxSpacing.vertical = !isNaN(parseFloat(layoutConfig.boxSpacing.vertical)) ? layoutConfig.boxSpacing.vertical : layoutConfig.boxSpacing;\n\n\tlayoutConfig.containerPadding = containerPadding;\n\tlayoutConfig.boxSpacing = boxSpacing;\n\n\t// Local\n\tlayoutData._layoutItems = [];\n\tlayoutData._awakeItems = [];\n\tlayoutData._inViewportItems = [];\n\tlayoutData._leadingOrphans = [];\n\tlayoutData._trailingOrphans = [];\n\tlayoutData._containerHeight = layoutConfig.containerPadding.top;\n\tlayoutData._rows = [];\n\tlayoutData._orphans = [];\n\tlayoutConfig._widowCount = 0;\n\n\t// Convert widths and heights to aspect ratios if we need to\n\treturn computeLayout(layoutConfig, layoutData, input.map(function (item) {\n\t\tif (item.width && item.height) {\n\t\t\treturn { aspectRatio: item.width / item.height };\n\t\t} else {\n\t\t\treturn { aspectRatio: item };\n\t\t}\n\t}));\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/*!\n * Copyright 2016 Yahoo Inc.\n * Licensed under the terms of the MIT license. Please see LICENSE file in the project root for terms.\n * @license\n */\n\nvar merge = __webpack_require__(1);\n\n/**\n * Row\n * Wrapper for each row in a justified layout.\n * Stores relevant values and provides methods for calculating layout of individual rows.\n *\n * @param {Object} layoutConfig - The same as that passed\n * @param {Object} Initialization parameters. The following are all required:\n * @param params.top {Number} Top of row, relative to container\n * @param params.left {Number} Left side of row relative to container (equal to container left padding)\n * @param params.width {Number} Width of row, not including container padding\n * @param params.spacing {Number} Horizontal spacing between items\n * @param params.targetRowHeight {Number} Layout algorithm will aim for this row height\n * @param params.targetRowHeightTolerance {Number} Row heights may vary +/- (`targetRowHeight` x `targetRowHeightTolerance`)\n * @param params.edgeCaseMinRowHeight {Number} Absolute minimum row height for edge cases that cannot be resolved within tolerance.\n * @param params.edgeCaseMaxRowHeight {Number} Absolute maximum row height for edge cases that cannot be resolved within tolerance.\n * @param params.isBreakoutRow {Boolean} Is this row in particular one of those breakout rows? Always false if it's not that kind of photo list\n * @param params.widowLayoutStyle {String} If widows are visible, how should they be laid out?\n * @constructor\n */\n\nvar Row = module.exports = function (params) {\n\n\t// Top of row, relative to container\n\tthis.top = params.top;\n\n\t// Left side of row relative to container (equal to container left padding)\n\tthis.left = params.left;\n\n\t// Width of row, not including container padding\n\tthis.width = params.width;\n\n\t// Horizontal spacing between items\n\tthis.spacing = params.spacing;\n\n\t// Row height calculation values\n\tthis.targetRowHeight = params.targetRowHeight;\n\tthis.targetRowHeightTolerance = params.targetRowHeightTolerance;\n\tthis.minAspectRatio = this.width / params.targetRowHeight * (1 - params.targetRowHeightTolerance);\n\tthis.maxAspectRatio = this.width / params.targetRowHeight * (1 + params.targetRowHeightTolerance);\n\n\t// Edge case row height minimum/maximum\n\tthis.edgeCaseMinRowHeight = params.edgeCaseMinRowHeight;\n\tthis.edgeCaseMaxRowHeight = params.edgeCaseMaxRowHeight;\n\n\t// Widow layout direction\n\tthis.widowLayoutStyle = params.widowLayoutStyle;\n\n\t// Full width breakout rows\n\tthis.isBreakoutRow = params.isBreakoutRow;\n\n\t// Store layout data for each item in row\n\tthis.items = [];\n\n\t// Height remains at 0 until it's been calculated\n\tthis.height = 0;\n};\n\nRow.prototype = {\n\n\t/**\n * Attempt to add a single item to the row.\n * This is the heart of the justified algorithm.\n * This method is direction-agnostic; it deals only with sizes, not positions.\n *\n * If the item fits in the row, without pushing row height beyond min/max tolerance,\n * the item is added and the method returns true.\n *\n * If the item leaves row height too high, there may be room to scale it down and add another item.\n * In this case, the item is added and the method returns true, but the row is incomplete.\n *\n * If the item leaves row height too short, there are too many items to fit within tolerance.\n * The method will either accept or reject the new item, favoring the resulting row height closest to within tolerance.\n * If the item is rejected, left/right padding will be required to fit the row height within tolerance;\n * if the item is accepted, top/bottom cropping will be required to fit the row height within tolerance.\n *\n * @method addItem\n * @param itemData {Object} Item layout data, containing item aspect ratio.\n * @return {Boolean} True if successfully added; false if rejected.\n */\n\n\taddItem: function addItem(itemData) {\n\n\t\tvar newItems = this.items.concat(itemData),\n\n\t\t// Calculate aspect ratios for items only; exclude spacing\n\t\trowWidthWithoutSpacing = this.width - (newItems.length - 1) * this.spacing,\n\t\t newAspectRatio = newItems.reduce(function (sum, item) {\n\t\t\treturn sum + item.aspectRatio;\n\t\t}, 0),\n\t\t targetAspectRatio = rowWidthWithoutSpacing / this.targetRowHeight,\n\t\t previousRowWidthWithoutSpacing,\n\t\t previousAspectRatio,\n\t\t previousTargetAspectRatio;\n\n\t\t// Handle big full-width breakout photos if we're doing them\n\t\tif (this.isBreakoutRow) {\n\t\t\t// Only do it if there's no other items in this row\n\t\t\tif (this.items.length === 0) {\n\t\t\t\t// Only go full width if this photo is a square or landscape\n\t\t\t\tif (itemData.aspectRatio >= 1) {\n\t\t\t\t\t// Close out the row with a full width photo\n\t\t\t\t\tthis.items.push(itemData);\n\t\t\t\t\tthis.completeLayout(rowWidthWithoutSpacing / itemData.aspectRatio, 'justify');\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (newAspectRatio < this.minAspectRatio) {\n\n\t\t\t// New aspect ratio is too narrow / scaled row height is too tall.\n\t\t\t// Accept this item and leave row open for more items.\n\n\t\t\tthis.items.push(merge(itemData));\n\t\t\treturn true;\n\t\t} else if (newAspectRatio > this.maxAspectRatio) {\n\n\t\t\t// New aspect ratio is too wide / scaled row height will be too short.\n\t\t\t// Accept item if the resulting aspect ratio is closer to target than it would be without the item.\n\t\t\t// NOTE: Any row that falls into this block will require cropping/padding on individual items.\n\n\t\t\tif (this.items.length === 0) {\n\n\t\t\t\t// When there are no existing items, force acceptance of the new item and complete the layout.\n\t\t\t\t// This is the pano special case.\n\t\t\t\tthis.items.push(merge(itemData));\n\t\t\t\tthis.completeLayout(rowWidthWithoutSpacing / newAspectRatio, 'justify');\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// Calculate width/aspect ratio for row before adding new item\n\t\t\tpreviousRowWidthWithoutSpacing = this.width - (this.items.length - 1) * this.spacing;\n\t\t\tpreviousAspectRatio = this.items.reduce(function (sum, item) {\n\t\t\t\treturn sum + item.aspectRatio;\n\t\t\t}, 0);\n\t\t\tpreviousTargetAspectRatio = previousRowWidthWithoutSpacing / this.targetRowHeight;\n\n\t\t\tif (Math.abs(newAspectRatio - targetAspectRatio) > Math.abs(previousAspectRatio - previousTargetAspectRatio)) {\n\n\t\t\t\t// Row with new item is us farther away from target than row without; complete layout and reject item.\n\t\t\t\tthis.completeLayout(previousRowWidthWithoutSpacing / previousAspectRatio, 'justify');\n\t\t\t\treturn false;\n\t\t\t} else {\n\n\t\t\t\t// Row with new item is us closer to target than row without;\n\t\t\t\t// accept the new item and complete the row layout.\n\t\t\t\tthis.items.push(merge(itemData));\n\t\t\t\tthis.completeLayout(rowWidthWithoutSpacing / newAspectRatio, 'justify');\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else {\n\n\t\t\t// New aspect ratio / scaled row height is within tolerance;\n\t\t\t// accept the new item and complete the row layout.\n\t\t\tthis.items.push(merge(itemData));\n\t\t\tthis.completeLayout(rowWidthWithoutSpacing / newAspectRatio, 'justify');\n\t\t\treturn true;\n\t\t}\n\t},\n\n\t/**\n * Check if a row has completed its layout.\n *\n * @method isLayoutComplete\n * @return {Boolean} True if complete; false if not.\n */\n\n\tisLayoutComplete: function isLayoutComplete() {\n\t\treturn this.height > 0;\n\t},\n\n\t/**\n * Set row height and compute item geometry from that height.\n * Will justify items within the row unless instructed not to.\n *\n * @method completeLayout\n * @param newHeight {Number} Set row height to this value.\n * @param widowLayoutStyle {String} How should widows display? Supported: left | justify | center\n */\n\n\tcompleteLayout: function completeLayout(newHeight, widowLayoutStyle) {\n\n\t\tvar itemWidthSum = this.left,\n\t\t rowWidthWithoutSpacing = this.width - (this.items.length - 1) * this.spacing,\n\t\t clampedToNativeRatio,\n\t\t clampedHeight,\n\t\t errorWidthPerItem,\n\t\t roundedCumulativeErrors,\n\t\t singleItemGeometry,\n\t\t centerOffset;\n\n\t\t// Justify unless explicitly specified otherwise.\n\t\tif (typeof widowLayoutStyle === 'undefined' || ['justify', 'center', 'left'].indexOf(widowLayoutStyle) < 0) {\n\t\t\twidowLayoutStyle = 'left';\n\t\t}\n\n\t\t// Clamp row height to edge case minimum/maximum.\n\t\tclampedHeight = Math.max(this.edgeCaseMinRowHeight, Math.min(newHeight, this.edgeCaseMaxRowHeight));\n\n\t\tif (newHeight !== clampedHeight) {\n\n\t\t\t// If row height was clamped, the resulting row/item aspect ratio will be off,\n\t\t\t// so force it to fit the width (recalculate aspectRatio to match clamped height).\n\t\t\t// NOTE: this will result in cropping/padding commensurate to the amount of clamping.\n\t\t\tthis.height = clampedHeight;\n\t\t\tclampedToNativeRatio = rowWidthWithoutSpacing / clampedHeight / (rowWidthWithoutSpacing / newHeight);\n\t\t} else {\n\n\t\t\t// If not clamped, leave ratio at 1.0.\n\t\t\tthis.height = newHeight;\n\t\t\tclampedToNativeRatio = 1.0;\n\t\t}\n\n\t\t// Compute item geometry based on newHeight.\n\t\tthis.items.forEach(function (item) {\n\n\t\t\titem.top = this.top;\n\t\t\titem.width = item.aspectRatio * this.height * clampedToNativeRatio;\n\t\t\titem.height = this.height;\n\n\t\t\t// Left-to-right.\n\t\t\t// TODO right to left\n\t\t\t// item.left = this.width - itemWidthSum - item.width;\n\t\t\titem.left = itemWidthSum;\n\n\t\t\t// Increment width.\n\t\t\titemWidthSum += item.width + this.spacing;\n\t\t}, this);\n\n\t\t// If specified, ensure items fill row and distribute error\n\t\t// caused by rounding width and height across all items.\n\t\tif (widowLayoutStyle === 'justify') {\n\n\t\t\titemWidthSum -= this.spacing + this.left;\n\n\t\t\terrorWidthPerItem = (itemWidthSum - this.width) / this.items.length;\n\t\t\troundedCumulativeErrors = this.items.map(function (item, i) {\n\t\t\t\treturn Math.round((i + 1) * errorWidthPerItem);\n\t\t\t});\n\n\t\t\tif (this.items.length === 1) {\n\n\t\t\t\t// For rows with only one item, adjust item width to fill row.\n\t\t\t\tsingleItemGeometry = this.items[0];\n\t\t\t\tsingleItemGeometry.width -= Math.round(errorWidthPerItem);\n\t\t\t} else {\n\n\t\t\t\t// For rows with multiple items, adjust item width and shift items to fill the row,\n\t\t\t\t// while maintaining equal spacing between items in the row.\n\t\t\t\tthis.items.forEach(function (item, i) {\n\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\titem.left -= roundedCumulativeErrors[i - 1];\n\t\t\t\t\t\titem.width -= roundedCumulativeErrors[i] - roundedCumulativeErrors[i - 1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\titem.width -= roundedCumulativeErrors[i];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (widowLayoutStyle === 'center') {\n\n\t\t\t// Center widows\n\t\t\tcenterOffset = (this.width - itemWidthSum) / 2;\n\n\t\t\tthis.items.forEach(function (item) {\n\t\t\t\titem.left += centerOffset + this.spacing;\n\t\t\t}, this);\n\t\t}\n\t},\n\n\t/**\n * Force completion of row layout with current items.\n *\n * @method forceComplete\n * @param fitToWidth {Boolean} Stretch current items to fill the row width.\n * This will likely result in padding.\n * @param fitToWidth {Number}\n */\n\n\tforceComplete: function forceComplete(fitToWidth, rowHeight) {\n\n\t\t// TODO Handle fitting to width\n\t\t// var rowWidthWithoutSpacing = this.width - (this.items.length - 1) * this.spacing,\n\t\t// \tcurrentAspectRatio = this.items.reduce(function (sum, item) {\n\t\t// \t\treturn sum + item.aspectRatio;\n\t\t// \t}, 0);\n\n\t\tif (typeof rowHeight === 'number') {\n\n\t\t\tthis.completeLayout(rowHeight, this.widowLayoutStyle);\n\t\t} else {\n\n\t\t\t// Complete using target row height.\n\t\t\tthis.completeLayout(this.targetRowHeight, this.widowLayoutStyle);\n\t\t}\n\t},\n\n\t/**\n * Return layout data for items within row.\n * Note: returns actual list, not a copy.\n *\n * @method getItems\n * @return Layout data for items within row.\n */\n\n\tgetItems: function getItems() {\n\t\treturn this.items;\n\t}\n\n};\n\n/***/ })\n/******/ ]);"]}
|
assets/vendor/lazysizes/lazysizes.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
/*! lazysizes - v4.0.3 */
|
2 |
+
!function(a,b){var c=b(a,a.document);a.lazySizes=c,"object"==typeof module&&module.exports&&(module.exports=c)}(window,function(a,b){"use strict";if(b.getElementsByClassName){var c,d,e=b.documentElement,f=a.Date,g=a.HTMLPictureElement,h="addEventListener",i="getAttribute",j=a[h],k=a.setTimeout,l=a.requestAnimationFrame||k,m=a.requestIdleCallback,n=/^picture$/i,o=["load","error","lazyincluded","_lazyloaded"],p={},q=Array.prototype.forEach,r=function(a,b){return p[b]||(p[b]=new RegExp("(\\s|^)"+b+"(\\s|$)")),p[b].test(a[i]("class")||"")&&p[b]},s=function(a,b){r(a,b)||a.setAttribute("class",(a[i]("class")||"").trim()+" "+b)},t=function(a,b){var c;(c=r(a,b))&&a.setAttribute("class",(a[i]("class")||"").replace(c," "))},u=function(a,b,c){var d=c?h:"removeEventListener";c&&u(a,b),o.forEach(function(c){a[d](c,b)})},v=function(a,d,e,f,g){var h=b.createEvent("CustomEvent");return e||(e={}),e.instance=c,h.initCustomEvent(d,!f,!g,e),a.dispatchEvent(h),h},w=function(b,c){var e;!g&&(e=a.picturefill||d.pf)?e({reevaluate:!0,elements:[b]}):c&&c.src&&(b.src=c.src)},x=function(a,b){return(getComputedStyle(a,null)||{})[b]},y=function(a,b,c){for(c=c||a.offsetWidth;c<d.minSize&&b&&!a._lazysizesWidth;)c=b.offsetWidth,b=b.parentNode;return c},z=function(){var a,c,d=[],e=[],f=d,g=function(){var b=f;for(f=d.length?e:d,a=!0,c=!1;b.length;)b.shift()();a=!1},h=function(d,e){a&&!e?d.apply(this,arguments):(f.push(d),c||(c=!0,(b.hidden?k:l)(g)))};return h._lsFlush=g,h}(),A=function(a,b){return b?function(){z(a)}:function(){var b=this,c=arguments;z(function(){a.apply(b,c)})}},B=function(a){var b,c=0,e=d.throttleDelay,g=d.ricTimeout,h=function(){b=!1,c=f.now(),a()},i=m&&g>49?function(){m(h,{timeout:g}),g!==d.ricTimeout&&(g=d.ricTimeout)}:A(function(){k(h)},!0);return function(a){var d;(a=a===!0)&&(g=33),b||(b=!0,d=e-(f.now()-c),0>d&&(d=0),a||9>d?i():k(i,d))}},C=function(a){var b,c,d=99,e=function(){b=null,a()},g=function(){var a=f.now()-c;d>a?k(g,d-a):(m||e)(e)};return function(){c=f.now(),b||(b=k(g,d))}};!function(){var b,c={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};d=a.lazySizesConfig||a.lazysizesConfig||{};for(b in c)b in d||(d[b]=c[b]);a.lazySizesConfig=d,k(function(){d.init&&F()})}();var D=function(){var g,l,m,o,p,y,D,F,G,H,I,J,K,L,M=/^img$/i,N=/^iframe$/i,O="onscroll"in a&&!/glebot/.test(navigator.userAgent),P=0,Q=0,R=0,S=-1,T=function(a){R--,a&&a.target&&u(a.target,T),(!a||0>R||!a.target)&&(R=0)},U=function(a,c){var d,f=a,g="hidden"==x(b.body,"visibility")||"hidden"!=x(a,"visibility");for(F-=c,I+=c,G-=c,H+=c;g&&(f=f.offsetParent)&&f!=b.body&&f!=e;)g=(x(f,"opacity")||1)>0,g&&"visible"!=x(f,"overflow")&&(d=f.getBoundingClientRect(),g=H>d.left&&G<d.right&&I>d.top-1&&F<d.bottom+1);return g},V=function(){var a,f,h,j,k,m,n,p,q,r=c.elements;if((o=d.loadMode)&&8>R&&(a=r.length)){f=0,S++,null==K&&("expand"in d||(d.expand=e.clientHeight>500&&e.clientWidth>500?500:370),J=d.expand,K=J*d.expFactor),K>Q&&1>R&&S>2&&o>2&&!b.hidden?(Q=K,S=0):Q=o>1&&S>1&&6>R?J:P;for(;a>f;f++)if(r[f]&&!r[f]._lazyRace)if(O)if((p=r[f][i]("data-expand"))&&(m=1*p)||(m=Q),q!==m&&(y=innerWidth+m*L,D=innerHeight+m,n=-1*m,q=m),h=r[f].getBoundingClientRect(),(I=h.bottom)>=n&&(F=h.top)<=D&&(H=h.right)>=n*L&&(G=h.left)<=y&&(I||H||G||F)&&(d.loadHidden||"hidden"!=x(r[f],"visibility"))&&(l&&3>R&&!p&&(3>o||4>S)||U(r[f],m))){if(ba(r[f]),k=!0,R>9)break}else!k&&l&&!j&&4>R&&4>S&&o>2&&(g[0]||d.preloadAfterLoad)&&(g[0]||!p&&(I||H||G||F||"auto"!=r[f][i](d.sizesAttr)))&&(j=g[0]||r[f]);else ba(r[f]);j&&!k&&ba(j)}},W=B(V),X=function(a){s(a.target,d.loadedClass),t(a.target,d.loadingClass),u(a.target,Z),v(a.target,"lazyloaded")},Y=A(X),Z=function(a){Y({target:a.target})},$=function(a,b){try{a.contentWindow.location.replace(b)}catch(c){a.src=b}},_=function(a){var b,c=a[i](d.srcsetAttr);(b=d.customMedia[a[i]("data-media")||a[i]("media")])&&a.setAttribute("media",b),c&&a.setAttribute("srcset",c)},aa=A(function(a,b,c,e,f){var g,h,j,l,o,p;(o=v(a,"lazybeforeunveil",b)).defaultPrevented||(e&&(c?s(a,d.autosizesClass):a.setAttribute("sizes",e)),h=a[i](d.srcsetAttr),g=a[i](d.srcAttr),f&&(j=a.parentNode,l=j&&n.test(j.nodeName||"")),p=b.firesLoad||"src"in a&&(h||g||l),o={target:a},p&&(u(a,T,!0),clearTimeout(m),m=k(T,2500),s(a,d.loadingClass),u(a,Z,!0)),l&&q.call(j.getElementsByTagName("source"),_),h?a.setAttribute("srcset",h):g&&!l&&(N.test(a.nodeName)?$(a,g):a.src=g),f&&(h||l)&&w(a,{src:g})),a._lazyRace&&delete a._lazyRace,t(a,d.lazyClass),z(function(){(!p||a.complete&&a.naturalWidth>1)&&(p?T(o):R--,X(o))},!0)}),ba=function(a){var b,c=M.test(a.nodeName),e=c&&(a[i](d.sizesAttr)||a[i]("sizes")),f="auto"==e;(!f&&l||!c||!a[i]("src")&&!a.srcset||a.complete||r(a,d.errorClass)||!r(a,d.lazyClass))&&(b=v(a,"lazyunveilread").detail,f&&E.updateElem(a,!0,a.offsetWidth),a._lazyRace=!0,R++,aa(a,b,f,e,c))},ca=function(){if(!l){if(f.now()-p<999)return void k(ca,999);var a=C(function(){d.loadMode=3,W()});l=!0,d.loadMode=3,W(),j("scroll",function(){3==d.loadMode&&(d.loadMode=2),a()},!0)}};return{_:function(){p=f.now(),c.elements=b.getElementsByClassName(d.lazyClass),g=b.getElementsByClassName(d.lazyClass+" "+d.preloadClass),L=d.hFac,j("scroll",W,!0),j("resize",W,!0),a.MutationObserver?new MutationObserver(W).observe(e,{childList:!0,subtree:!0,attributes:!0}):(e[h]("DOMNodeInserted",W,!0),e[h]("DOMAttrModified",W,!0),setInterval(W,999)),j("hashchange",W,!0),["focus","mouseover","click","load","transitionend","animationend","webkitAnimationEnd"].forEach(function(a){b[h](a,W,!0)}),/d$|^c/.test(b.readyState)?ca():(j("load",ca),b[h]("DOMContentLoaded",W),k(ca,2e4)),c.elements.length?(V(),z._lsFlush()):W()},checkElems:W,unveil:ba}}(),E=function(){var a,c=A(function(a,b,c,d){var e,f,g;if(a._lazysizesWidth=d,d+="px",a.setAttribute("sizes",d),n.test(b.nodeName||""))for(e=b.getElementsByTagName("source"),f=0,g=e.length;g>f;f++)e[f].setAttribute("sizes",d);c.detail.dataAttr||w(a,c.detail)}),e=function(a,b,d){var e,f=a.parentNode;f&&(d=y(a,f,d),e=v(a,"lazybeforesizes",{width:d,dataAttr:!!b}),e.defaultPrevented||(d=e.detail.width,d&&d!==a._lazysizesWidth&&c(a,f,e,d)))},f=function(){var b,c=a.length;if(c)for(b=0;c>b;b++)e(a[b])},g=C(f);return{_:function(){a=b.getElementsByClassName(d.autosizesClass),j("resize",g)},checkElems:g,updateElem:e}}(),F=function(){F.i||(F.i=!0,E._(),D._())};return c={cfg:d,autoSizer:E,loader:D,init:F,uP:w,aC:s,rC:t,hC:r,fire:v,gW:y,rAF:z}}});
|
class-visual-portfolio.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* Plugin Name: Visual Portfolio
|
4 |
* Description: Portfolio post type with visual editor
|
5 |
-
* Version: 1.
|
6 |
* Author: nK
|
7 |
* Author URI: https://nkdev.info
|
8 |
* License: GPLv2 or later
|
@@ -124,6 +124,7 @@ class Visual_Portfolio {
|
|
124 |
|
125 |
// template_redirect is used instead of wp_enqueue_scripts just because some plugins use it and included an old isotope plugin. So, it was conflicted.
|
126 |
add_action( 'template_redirect', array( $this, 'register_scripts' ), 9 );
|
|
|
127 |
}
|
128 |
|
129 |
/**
|
@@ -156,7 +157,7 @@ class Visual_Portfolio {
|
|
156 |
|
157 |
// fjGallery.
|
158 |
if ( apply_filters( 'vpf_enqueue_plugin_flickr_justified_gallery', true ) ) {
|
159 |
-
wp_register_script( 'flickr-justified-gallery', visual_portfolio()->plugin_url . 'assets/vendor/flickr-justified-gallery/fjGallery.min.js', array( 'jquery' ), '1.0.
|
160 |
|
161 |
$vp_deps[] = 'flickr-justified-gallery';
|
162 |
}
|
@@ -197,9 +198,16 @@ class Visual_Portfolio {
|
|
197 |
$vp_deps[] = 'font-awesome-v4-shims';
|
198 |
}
|
199 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
// Visual Portfolio.
|
201 |
-
wp_register_script( 'visual-portfolio', visual_portfolio()->plugin_url . 'assets/js/script.min.js', $vp_deps, '1.
|
202 |
-
wp_register_style( 'visual-portfolio', visual_portfolio()->plugin_url . 'assets/css/style.min.css', $vp_style_deps, '1.
|
203 |
|
204 |
// Visual Portfolio data.
|
205 |
$data_init = array(
|
@@ -228,6 +236,13 @@ class Visual_Portfolio {
|
|
228 |
wp_localize_script( 'visual-portfolio', 'VPData', $data_init );
|
229 |
}
|
230 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
/**
|
232 |
* Init variables
|
233 |
*/
|
@@ -275,6 +290,7 @@ class Visual_Portfolio {
|
|
275 |
*/
|
276 |
private function include_dependencies() {
|
277 |
require_once( $this->plugin_path . 'classes/class-extend.php' );
|
|
|
278 |
require_once( $this->plugin_path . 'classes/class-settings.php' );
|
279 |
require_once( $this->plugin_path . 'classes/class-rest.php' );
|
280 |
require_once( $this->plugin_path . 'classes/class-get-portfolio.php' );
|
@@ -328,7 +344,7 @@ class Visual_Portfolio {
|
|
328 |
|
329 |
if ( file_exists( get_stylesheet_directory() . '/visual-portfolio/' . $template_name . '.css' ) ) {
|
330 |
// Child Theme (or just theme).
|
331 |
-
$template = trailingslashit( get_stylesheet_directory_uri() ) . '
|
332 |
} else if ( file_exists( get_template_directory() . '/visual-portfolio/' . $template_name . '.css' ) ) {
|
333 |
// Parent Theme (if parent exists).
|
334 |
$template = trailingslashit( get_template_directory_uri() ) . 'visual-portfolio/' . $template_name . '.css';
|
2 |
/**
|
3 |
* Plugin Name: Visual Portfolio
|
4 |
* Description: Portfolio post type with visual editor
|
5 |
+
* Version: 1.6.0
|
6 |
* Author: nK
|
7 |
* Author URI: https://nkdev.info
|
8 |
* License: GPLv2 or later
|
124 |
|
125 |
// template_redirect is used instead of wp_enqueue_scripts just because some plugins use it and included an old isotope plugin. So, it was conflicted.
|
126 |
add_action( 'template_redirect', array( $this, 'register_scripts' ), 9 );
|
127 |
+
add_action( 'wp_enqueue_scripts', array( $this, 'wp_enqueue_scripts' ), 9 );
|
128 |
}
|
129 |
|
130 |
/**
|
157 |
|
158 |
// fjGallery.
|
159 |
if ( apply_filters( 'vpf_enqueue_plugin_flickr_justified_gallery', true ) ) {
|
160 |
+
wp_register_script( 'flickr-justified-gallery', visual_portfolio()->plugin_url . 'assets/vendor/flickr-justified-gallery/fjGallery.min.js', array( 'jquery' ), '1.0.2', true );
|
161 |
|
162 |
$vp_deps[] = 'flickr-justified-gallery';
|
163 |
}
|
198 |
$vp_deps[] = 'font-awesome-v4-shims';
|
199 |
}
|
200 |
|
201 |
+
// LazySizes.
|
202 |
+
if ( apply_filters( 'vpf_enqueue_plugin_lazysizes', true ) ) {
|
203 |
+
wp_register_script( 'lazysizes', visual_portfolio()->plugin_url . 'assets/vendor/lazysizes/lazysizes.min.js', array( 'jquery' ), '4.0.4', true );
|
204 |
+
|
205 |
+
$vp_deps[] = 'lazysizes';
|
206 |
+
}
|
207 |
+
|
208 |
// Visual Portfolio.
|
209 |
+
wp_register_script( 'visual-portfolio', visual_portfolio()->plugin_url . 'assets/js/script.min.js', $vp_deps, '1.6.0', true );
|
210 |
+
wp_register_style( 'visual-portfolio', visual_portfolio()->plugin_url . 'assets/css/style.min.css', $vp_style_deps, '1.6.0' );
|
211 |
|
212 |
// Visual Portfolio data.
|
213 |
$data_init = array(
|
236 |
wp_localize_script( 'visual-portfolio', 'VPData', $data_init );
|
237 |
}
|
238 |
|
239 |
+
/**
|
240 |
+
* Enqueue main style to prevent first-page load layout issues if the page contains portfolio.
|
241 |
+
*/
|
242 |
+
public function wp_enqueue_scripts() {
|
243 |
+
wp_enqueue_style( 'visual-portfolio' );
|
244 |
+
}
|
245 |
+
|
246 |
/**
|
247 |
* Init variables
|
248 |
*/
|
290 |
*/
|
291 |
private function include_dependencies() {
|
292 |
require_once( $this->plugin_path . 'classes/class-extend.php' );
|
293 |
+
require_once( $this->plugin_path . 'classes/class-images.php' );
|
294 |
require_once( $this->plugin_path . 'classes/class-settings.php' );
|
295 |
require_once( $this->plugin_path . 'classes/class-rest.php' );
|
296 |
require_once( $this->plugin_path . 'classes/class-get-portfolio.php' );
|
344 |
|
345 |
if ( file_exists( get_stylesheet_directory() . '/visual-portfolio/' . $template_name . '.css' ) ) {
|
346 |
// Child Theme (or just theme).
|
347 |
+
$template = trailingslashit( get_stylesheet_directory_uri() ) . 'visual-portfolio/' . $template_name . '.css';
|
348 |
} else if ( file_exists( get_template_directory() . '/visual-portfolio/' . $template_name . '.css' ) ) {
|
349 |
// Parent Theme (if parent exists).
|
350 |
$template = trailingslashit( get_template_directory_uri() ) . 'visual-portfolio/' . $template_name . '.css';
|
classes/class-admin.php
CHANGED
@@ -149,8 +149,8 @@ class Visual_Portfolio_Admin {
|
|
149 |
wp_enqueue_script( 'tooltip.js', visual_portfolio()->plugin_url . 'assets/vendor/popper.js/tooltip.min.js', array( 'popper.js' ), '1.14.3', true );
|
150 |
wp_enqueue_style( 'popper.js', visual_portfolio()->plugin_url . 'assets/vendor/popper.js/popper.css', '', '1.14.3' );
|
151 |
|
152 |
-
wp_enqueue_script( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/js/script.min.js', array( 'jquery' ), '1.
|
153 |
-
wp_enqueue_style( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/css/style.min.css', '', '1.
|
154 |
wp_localize_script( 'visual-portfolio-admin', 'VPAdminVariables', $data_init );
|
155 |
}
|
156 |
|
@@ -646,14 +646,18 @@ class Visual_Portfolio_Admin {
|
|
646 |
),
|
647 |
array(
|
648 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-3.svg',
|
649 |
-
'value' => '2|1,1.
|
650 |
),
|
651 |
array(
|
652 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-4.svg',
|
653 |
-
'value' => '2|1,1.2|1,
|
654 |
),
|
655 |
array(
|
656 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-5.svg',
|
|
|
|
|
|
|
|
|
657 |
'value' => '2|1,0.67|1,1|1,1|1,1|1,1|1,0.67|',
|
658 |
),
|
659 |
array(
|
@@ -666,38 +670,54 @@ class Visual_Portfolio_Admin {
|
|
666 |
),
|
667 |
array(
|
668 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-3.svg',
|
669 |
-
'value' => '3|1,1
|
670 |
),
|
671 |
array(
|
672 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-4.svg',
|
673 |
-
'value' => '3|1,1|1,1|1,
|
674 |
),
|
675 |
array(
|
676 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-5.svg',
|
677 |
-
'value' => '3|1,
|
678 |
),
|
679 |
array(
|
680 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-6.svg',
|
681 |
-
'value' => '3|1,
|
682 |
),
|
683 |
array(
|
684 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-7.svg',
|
685 |
-
'value' => '3|1,1|1,2|1,1|1,1|1,1|1,1|
|
686 |
),
|
687 |
array(
|
688 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-8.svg',
|
689 |
-
'value' => '3|1,
|
690 |
),
|
691 |
array(
|
692 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-9.svg',
|
693 |
-
'value' => '3|1,0.8|1,0.8|1,1.6|1,0.8|1,0.8|1,0.8|1,
|
694 |
),
|
695 |
array(
|
696 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-10.svg',
|
697 |
-
'value' => '3|1,1|
|
698 |
),
|
699 |
array(
|
700 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-11.svg',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
701 |
'value' => '3|1,2|2,0.5|1,1|1,2|2,0.5|',
|
702 |
),
|
703 |
array(
|
@@ -710,10 +730,14 @@ class Visual_Portfolio_Admin {
|
|
710 |
),
|
711 |
array(
|
712 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-4-3.svg',
|
713 |
-
'value' => '4|1,
|
714 |
),
|
715 |
array(
|
716 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-4-4.svg',
|
|
|
|
|
|
|
|
|
717 |
'value' => '4|2,1|2,0.5|2,0.5|2,0.5|2,1|2,0.5|',
|
718 |
),
|
719 |
),
|
@@ -1064,6 +1088,12 @@ class Visual_Portfolio_Admin {
|
|
1064 |
'name' => 'bg_color',
|
1065 |
'default' => '#212125',
|
1066 |
'alpha' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
1067 |
),
|
1068 |
array(
|
1069 |
'type' => 'color',
|
@@ -1071,6 +1101,12 @@ class Visual_Portfolio_Admin {
|
|
1071 |
'name' => 'text_color',
|
1072 |
'default' => '#fff',
|
1073 |
'alpha' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
1074 |
),
|
1075 |
),
|
1076 |
),
|
@@ -1093,6 +1129,12 @@ class Visual_Portfolio_Admin {
|
|
1093 |
'name' => 'bg_color',
|
1094 |
'default' => '#fff',
|
1095 |
'alpha' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
1096 |
),
|
1097 |
array(
|
1098 |
'type' => 'color',
|
@@ -1100,6 +1142,12 @@ class Visual_Portfolio_Admin {
|
|
1100 |
'name' => 'text_color',
|
1101 |
'default' => '#000',
|
1102 |
'alpha' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
1103 |
),
|
1104 |
),
|
1105 |
),
|
@@ -1122,6 +1170,12 @@ class Visual_Portfolio_Admin {
|
|
1122 |
'name' => 'bg_color',
|
1123 |
'default' => 'rgba(0, 0, 0, 0.85)',
|
1124 |
'alpha' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
1125 |
),
|
1126 |
array(
|
1127 |
'type' => 'color',
|
@@ -1129,6 +1183,12 @@ class Visual_Portfolio_Admin {
|
|
1129 |
'name' => 'text_color',
|
1130 |
'default' => '#fff',
|
1131 |
'alpha' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
1132 |
),
|
1133 |
),
|
1134 |
),
|
@@ -1347,7 +1407,7 @@ class Visual_Portfolio_Admin {
|
|
1347 |
),
|
1348 |
), Visual_Portfolio_Extend::filters() );
|
1349 |
|
1350 |
-
//
|
1351 |
$filters_selector = array();
|
1352 |
foreach ( $filters as $name => $filter ) {
|
1353 |
$filters_selector[ $name ] = $filter['title'];
|
@@ -1369,7 +1429,7 @@ class Visual_Portfolio_Admin {
|
|
1369 |
}
|
1370 |
foreach ( $filter['controls'] as $field ) {
|
1371 |
$field['category'] = 'filter';
|
1372 |
-
$field['name'] = '
|
1373 |
|
1374 |
// condition names prefix fix.
|
1375 |
if ( isset( $field['condition'] ) ) {
|
@@ -1434,18 +1494,85 @@ class Visual_Portfolio_Admin {
|
|
1434 |
/**
|
1435 |
* Pagination
|
1436 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1437 |
Visual_Portfolio_Controls::register(
|
1438 |
array(
|
1439 |
'category' => 'pagination',
|
|
|
1440 |
'type' => 'select2',
|
1441 |
'name' => 'vp_pagination',
|
1442 |
'default' => 'load-more',
|
1443 |
'options' => array(
|
1444 |
-
'false' => esc_html__( 'Disabled', 'visual-portfolio' ),
|
1445 |
'paged' => esc_html__( 'Paged', 'visual-portfolio' ),
|
1446 |
'load-more' => esc_html__( 'Load More', 'visual-portfolio' ),
|
1447 |
'infinite' => esc_html__( 'Infinite', 'visual-portfolio' ),
|
1448 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1449 |
)
|
1450 |
);
|
1451 |
Visual_Portfolio_Controls::register(
|
@@ -1455,6 +1582,11 @@ class Visual_Portfolio_Admin {
|
|
1455 |
'description' => esc_html__( 'Note: you will see the "Load More" pagination in the preview. "Infinite" pagination will be visible on the site.', 'visual-portfolio' ),
|
1456 |
'name' => 'vp_pagination_infinite_notice',
|
1457 |
'condition' => array(
|
|
|
|
|
|
|
|
|
|
|
1458 |
array(
|
1459 |
'control' => 'vp_pagination',
|
1460 |
'operator' => '==',
|
@@ -1476,6 +1608,11 @@ class Visual_Portfolio_Admin {
|
|
1476 |
'right' => esc_html__( 'Right', 'visual-portfolio' ),
|
1477 |
),
|
1478 |
'condition' => array(
|
|
|
|
|
|
|
|
|
|
|
1479 |
array(
|
1480 |
'control' => 'vp_pagination',
|
1481 |
'operator' => '!=',
|
@@ -1492,6 +1629,11 @@ class Visual_Portfolio_Admin {
|
|
1492 |
'name' => 'vp_pagination_paged__show_arrows',
|
1493 |
'default' => true,
|
1494 |
'condition' => array(
|
|
|
|
|
|
|
|
|
|
|
1495 |
array(
|
1496 |
'control' => 'vp_pagination',
|
1497 |
'value' => 'paged',
|
@@ -1499,6 +1641,56 @@ class Visual_Portfolio_Admin {
|
|
1499 |
),
|
1500 |
)
|
1501 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1502 |
Visual_Portfolio_Controls::register(
|
1503 |
array(
|
1504 |
'category' => 'pagination',
|
@@ -1507,6 +1699,11 @@ class Visual_Portfolio_Admin {
|
|
1507 |
'name' => 'vp_pagination_paged__show_numbers',
|
1508 |
'default' => true,
|
1509 |
'condition' => array(
|
|
|
|
|
|
|
|
|
|
|
1510 |
array(
|
1511 |
'control' => 'vp_pagination',
|
1512 |
'value' => 'paged',
|
@@ -1529,6 +1726,20 @@ class Visual_Portfolio_Admin {
|
|
1529 |
)
|
1530 |
);
|
1531 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1532 |
/**
|
1533 |
* Content Source
|
1534 |
*/
|
@@ -1838,15 +2049,18 @@ class Visual_Portfolio_Admin {
|
|
1838 |
|
1839 |
Visual_Portfolio_Controls::get(
|
1840 |
array(
|
1841 |
-
'type'
|
1842 |
-
'label'
|
1843 |
'description' => esc_html__( 'Place the shortcode where you want to show the portfolio list.', 'visual-portfolio' ),
|
1844 |
-
'name'
|
1845 |
-
'value'
|
1846 |
'readonly' => true,
|
1847 |
)
|
1848 |
);
|
1849 |
|
|
|
|
|
|
|
1850 |
?>
|
1851 |
|
1852 |
<style>
|
@@ -1854,6 +2068,7 @@ class Visual_Portfolio_Admin {
|
|
1854 |
margin-top: -21px;
|
1855 |
border-top: none;
|
1856 |
}
|
|
|
1857 |
#post-body-content,
|
1858 |
#submitdiv .handlediv,
|
1859 |
#submitdiv .hndle,
|
@@ -2067,7 +2282,7 @@ class Visual_Portfolio_Admin {
|
|
2067 |
|
2068 |
foreach ( $meta as $item ) {
|
2069 |
if ( isset( $_POST[ $item ] ) ) {
|
2070 |
-
if ( 'vp_custom_css' === $item ) {
|
2071 |
$result = wp_kses( wp_unslash( $_POST[ $item ] ), array( '\'', '\"' ) );
|
2072 |
} else {
|
2073 |
$result = sanitize_text_field( wp_unslash( $_POST[ $item ] ) );
|
@@ -2240,7 +2455,7 @@ class Visual_Portfolio_Admin {
|
|
2240 |
'post_type' => get_post_type( get_the_ID() ),
|
2241 |
);
|
2242 |
}
|
2243 |
-
|
2244 |
}
|
2245 |
|
2246 |
echo json_encode( $result );
|
149 |
wp_enqueue_script( 'tooltip.js', visual_portfolio()->plugin_url . 'assets/vendor/popper.js/tooltip.min.js', array( 'popper.js' ), '1.14.3', true );
|
150 |
wp_enqueue_style( 'popper.js', visual_portfolio()->plugin_url . 'assets/vendor/popper.js/popper.css', '', '1.14.3' );
|
151 |
|
152 |
+
wp_enqueue_script( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/js/script.min.js', array( 'jquery' ), '1.6.0', true );
|
153 |
+
wp_enqueue_style( 'visual-portfolio-admin', visual_portfolio()->plugin_url . 'assets/admin/css/style.min.css', '', '1.6.0' );
|
154 |
wp_localize_script( 'visual-portfolio-admin', 'VPAdminVariables', $data_init );
|
155 |
}
|
156 |
|
646 |
),
|
647 |
array(
|
648 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-3.svg',
|
649 |
+
'value' => '2|1,1.34|',
|
650 |
),
|
651 |
array(
|
652 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-4.svg',
|
653 |
+
'value' => '2|1,1.2|1,1.2|1,0.67|1,0.67|',
|
654 |
),
|
655 |
array(
|
656 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-5.svg',
|
657 |
+
'value' => '2|1,1.2|1,0.67|1,1.2|1,0.67|',
|
658 |
+
),
|
659 |
+
array(
|
660 |
+
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-2-6.svg',
|
661 |
'value' => '2|1,0.67|1,1|1,1|1,1|1,1|1,0.67|',
|
662 |
),
|
663 |
array(
|
670 |
),
|
671 |
array(
|
672 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-3.svg',
|
673 |
+
'value' => '3|1,1.3|',
|
674 |
),
|
675 |
array(
|
676 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-4.svg',
|
677 |
+
'value' => '3|1,1|1,1|1,1|1,1.3|1,1.3|1,1.3|',
|
678 |
),
|
679 |
array(
|
680 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-5.svg',
|
681 |
+
'value' => '3|1,1|1,1|1,2|1,1|1,1|1,1|1,1|1,1|',
|
682 |
),
|
683 |
array(
|
684 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-6.svg',
|
685 |
+
'value' => '3|1,2|1,1|1,1|1,1|1,1|1,1|1,1|1,1|',
|
686 |
),
|
687 |
array(
|
688 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-7.svg',
|
689 |
+
'value' => '3|1,1|1,2|1,1|1,1|1,1|1,1|1,1|1,1|',
|
690 |
),
|
691 |
array(
|
692 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-8.svg',
|
693 |
+
'value' => '3|1,1|1,2|1,1|1,1|1,1|1,1|2,0.5|',
|
694 |
),
|
695 |
array(
|
696 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-9.svg',
|
697 |
+
'value' => '3|1,0.8|1,1.6|1,0.8|1,0.8|1,1.6|1,0.8|1,0.8|1,0.8|1,0.8|1,0.8|',
|
698 |
),
|
699 |
array(
|
700 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-10.svg',
|
701 |
+
'value' => '3|1,0.8|1,1.6|1,0.8|1,0.8|1,1.6|1,1.6|1,0.8|1,0.8|1,0.8|',
|
702 |
),
|
703 |
array(
|
704 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-11.svg',
|
705 |
+
'value' => '3|1,0.8|1,0.8|1,1.6|1,0.8|1,0.8|1,1.6|1,1.6|1,0.8|1,0.8|',
|
706 |
+
),
|
707 |
+
array(
|
708 |
+
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-12.svg',
|
709 |
+
'value' => '3|1,0.8|1,0.8|1,1.6|1,0.8|1,0.8|1,0.8|1,1.6|1,1.6|1,0.8|',
|
710 |
+
),
|
711 |
+
array(
|
712 |
+
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-13.svg',
|
713 |
+
'value' => '3|1,1|2,1|1,1|2,0.5|1,1|',
|
714 |
+
),
|
715 |
+
array(
|
716 |
+
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-14.svg',
|
717 |
+
'value' => '3|1,1|2,1|1,1|1,1|1,1|1,1|2,0.5|1,1|',
|
718 |
+
),
|
719 |
+
array(
|
720 |
+
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-3-15.svg',
|
721 |
'value' => '3|1,2|2,0.5|1,1|1,2|2,0.5|',
|
722 |
),
|
723 |
array(
|
730 |
),
|
731 |
array(
|
732 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-4-3.svg',
|
733 |
+
'value' => '4|1,0.8|1,1|1,0.8|1,1|1,1|1,1|1,0.8|1,0.8|',
|
734 |
),
|
735 |
array(
|
736 |
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-4-4.svg',
|
737 |
+
'value' => '4|1,1|1,1|2,1|1,1|1,1|2,1|1,1|1,1|1,1|1,1|',
|
738 |
+
),
|
739 |
+
array(
|
740 |
+
'url' => visual_portfolio()->plugin_url . 'assets/admin/images/layouts/tiles-4-5.svg',
|
741 |
'value' => '4|2,1|2,0.5|2,0.5|2,0.5|2,1|2,0.5|',
|
742 |
),
|
743 |
),
|
1088 |
'name' => 'bg_color',
|
1089 |
'default' => '#212125',
|
1090 |
'alpha' => true,
|
1091 |
+
'style' => array(
|
1092 |
+
array(
|
1093 |
+
'element' => '.vp-portfolio__items-style-fly .vp-portfolio__item-overlay',
|
1094 |
+
'property' => 'background-color',
|
1095 |
+
),
|
1096 |
+
),
|
1097 |
),
|
1098 |
array(
|
1099 |
'type' => 'color',
|
1101 |
'name' => 'text_color',
|
1102 |
'default' => '#fff',
|
1103 |
'alpha' => true,
|
1104 |
+
'style' => array(
|
1105 |
+
array(
|
1106 |
+
'element' => '.vp-portfolio__items-style-fly .vp-portfolio__item-overlay',
|
1107 |
+
'property' => 'color',
|
1108 |
+
),
|
1109 |
+
),
|
1110 |
),
|
1111 |
),
|
1112 |
),
|
1129 |
'name' => 'bg_color',
|
1130 |
'default' => '#fff',
|
1131 |
'alpha' => true,
|
1132 |
+
'style' => array(
|
1133 |
+
array(
|
1134 |
+
'element' => '.vp-portfolio__items-style-emerge .vp-portfolio__item-overlay',
|
1135 |
+
'property' => 'background-color',
|
1136 |
+
),
|
1137 |
+
),
|
1138 |
),
|
1139 |
array(
|
1140 |
'type' => 'color',
|
1142 |
'name' => 'text_color',
|
1143 |
'default' => '#000',
|
1144 |
'alpha' => true,
|
1145 |
+
'style' => array(
|
1146 |
+
array(
|
1147 |
+
'element' => '.vp-portfolio__items-style-emerge .vp-portfolio__item-overlay',
|
1148 |
+
'property' => 'color',
|
1149 |
+
),
|
1150 |
+
),
|
1151 |
),
|
1152 |
),
|
1153 |
),
|
1170 |
'name' => 'bg_color',
|
1171 |
'default' => 'rgba(0, 0, 0, 0.85)',
|
1172 |
'alpha' => true,
|
1173 |
+
'style' => array(
|
1174 |
+
array(
|
1175 |
+
'element' => '.vp-portfolio__items-style-fade .vp-portfolio__item-overlay',
|
1176 |
+
'property' => 'background-color',
|
1177 |
+
),
|
1178 |
+
),
|
1179 |
),
|
1180 |
array(
|
1181 |
'type' => 'color',
|
1183 |
'name' => 'text_color',
|
1184 |
'default' => '#fff',
|
1185 |
'alpha' => true,
|
1186 |
+
'style' => array(
|
1187 |
+
array(
|
1188 |
+
'element' => '.vp-portfolio__items-style-fade .vp-portfolio__item-overlay',
|
1189 |
+
'property' => 'color',
|
1190 |
+
),
|
1191 |
+
),
|
1192 |
),
|
1193 |
),
|
1194 |
),
|
1407 |
),
|
1408 |
), Visual_Portfolio_Extend::filters() );
|
1409 |
|
1410 |
+
// Filters selector.
|
1411 |
$filters_selector = array();
|
1412 |
foreach ( $filters as $name => $filter ) {
|
1413 |
$filters_selector[ $name ] = $filter['title'];
|
1429 |
}
|
1430 |
foreach ( $filter['controls'] as $field ) {
|
1431 |
$field['category'] = 'filter';
|
1432 |
+
$field['name'] = 'vp_filter_' . $name . '__' . $field['name'];
|
1433 |
|
1434 |
// condition names prefix fix.
|
1435 |
if ( isset( $field['condition'] ) ) {
|
1494 |
/**
|
1495 |
* Pagination
|
1496 |
*/
|
1497 |
+
$pagination = array_merge( array(
|
1498 |
+
// False.
|
1499 |
+
'false' => array(
|
1500 |
+
'title' => esc_html__( 'Disabled', 'visual-portfolio' ),
|
1501 |
+
'controls' => array(),
|
1502 |
+
),
|
1503 |
+
|
1504 |
+
// Default.
|
1505 |
+
'default' => array(
|
1506 |
+
'title' => esc_html__( 'Default', 'visual-portfolio' ),
|
1507 |
+
'controls' => array(),
|
1508 |
+
),
|
1509 |
+
), Visual_Portfolio_Extend::pagination() );
|
1510 |
+
|
1511 |
+
// Pagination selector.
|
1512 |
+
$pagination_selector = array();
|
1513 |
+
foreach ( $pagination as $name => $pagin ) {
|
1514 |
+
$pagination_selector[ $name ] = $pagin['title'];
|
1515 |
+
}
|
1516 |
+
Visual_Portfolio_Controls::register(
|
1517 |
+
array(
|
1518 |
+
'category' => 'pagination',
|
1519 |
+
'type' => 'select2',
|
1520 |
+
'name' => 'vp_pagination_style',
|
1521 |
+
'default' => 'default',
|
1522 |
+
'options' => $pagination_selector,
|
1523 |
+
)
|
1524 |
+
);
|
1525 |
+
|
1526 |
+
// pagination options.
|
1527 |
+
foreach ( $pagination as $name => $pagin ) {
|
1528 |
+
if ( ! isset( $pagin['controls'] ) ) {
|
1529 |
+
continue;
|
1530 |
+
}
|
1531 |
+
foreach ( $pagin['controls'] as $field ) {
|
1532 |
+
$field['category'] = 'pagination';
|
1533 |
+
$field['name'] = 'vp_pagination_' . $name . '__' . $field['name'];
|
1534 |
+
|
1535 |
+
// condition names prefix fix.
|
1536 |
+
if ( isset( $field['condition'] ) ) {
|
1537 |
+
foreach ( $field['condition'] as $k => $cond ) {
|
1538 |
+
if ( isset( $cond['control'] ) ) {
|
1539 |
+
$field['condition'][ $k ]['control'] = 'vp_' . $name . '_' . $cond['control'];
|
1540 |
+
}
|
1541 |
+
}
|
1542 |
+
}
|
1543 |
+
|
1544 |
+
$field['condition'] = array_merge(
|
1545 |
+
isset( $field['condition'] ) ? $field['condition'] : array(),
|
1546 |
+
array(
|
1547 |
+
array(
|
1548 |
+
'control' => 'vp_pagination_style',
|
1549 |
+
'value' => $name,
|
1550 |
+
),
|
1551 |
+
)
|
1552 |
+
);
|
1553 |
+
Visual_Portfolio_Controls::register( $field );
|
1554 |
+
}
|
1555 |
+
}
|
1556 |
+
|
1557 |
Visual_Portfolio_Controls::register(
|
1558 |
array(
|
1559 |
'category' => 'pagination',
|
1560 |
+
'label' => esc_html__( 'Type', 'visual-portfolio' ),
|
1561 |
'type' => 'select2',
|
1562 |
'name' => 'vp_pagination',
|
1563 |
'default' => 'load-more',
|
1564 |
'options' => array(
|
|
|
1565 |
'paged' => esc_html__( 'Paged', 'visual-portfolio' ),
|
1566 |
'load-more' => esc_html__( 'Load More', 'visual-portfolio' ),
|
1567 |
'infinite' => esc_html__( 'Infinite', 'visual-portfolio' ),
|
1568 |
),
|
1569 |
+
'condition' => array(
|
1570 |
+
array(
|
1571 |
+
'control' => 'vp_pagination_style',
|
1572 |
+
'operator' => '!=',
|
1573 |
+
'value' => 'false',
|
1574 |
+
),
|
1575 |
+
),
|
1576 |
)
|
1577 |
);
|
1578 |
Visual_Portfolio_Controls::register(
|
1582 |
'description' => esc_html__( 'Note: you will see the "Load More" pagination in the preview. "Infinite" pagination will be visible on the site.', 'visual-portfolio' ),
|
1583 |
'name' => 'vp_pagination_infinite_notice',
|
1584 |
'condition' => array(
|
1585 |
+
array(
|
1586 |
+
'control' => 'vp_pagination_style',
|
1587 |
+
'operator' => '!=',
|
1588 |
+
'value' => 'false',
|
1589 |
+
),
|
1590 |
array(
|
1591 |
'control' => 'vp_pagination',
|
1592 |
'operator' => '==',
|
1608 |
'right' => esc_html__( 'Right', 'visual-portfolio' ),
|
1609 |
),
|
1610 |
'condition' => array(
|
1611 |
+
array(
|
1612 |
+
'control' => 'vp_pagination_style',
|
1613 |
+
'operator' => '!=',
|
1614 |
+
'value' => 'false',
|
1615 |
+
),
|
1616 |
array(
|
1617 |
'control' => 'vp_pagination',
|
1618 |
'operator' => '!=',
|
1629 |
'name' => 'vp_pagination_paged__show_arrows',
|
1630 |
'default' => true,
|
1631 |
'condition' => array(
|
1632 |
+
array(
|
1633 |
+
'control' => 'vp_pagination_style',
|
1634 |
+
'operator' => '!=',
|
1635 |
+
'value' => 'false',
|
1636 |
+
),
|
1637 |
array(
|
1638 |
'control' => 'vp_pagination',
|
1639 |
'value' => 'paged',
|
1641 |
),
|
1642 |
)
|
1643 |
);
|
1644 |
+
Visual_Portfolio_Controls::register(
|
1645 |
+
array(
|
1646 |
+
'category' => 'pagination',
|
1647 |
+
'type' => 'text',
|
1648 |
+
'name' => 'vp_pagination_paged__arrows_icon_prev',
|
1649 |
+
'default' => 'fas fa-angle-left',
|
1650 |
+
'placeholder' => esc_attr__( 'Prev arrow icon', 'visual-portfolio' ),
|
1651 |
+
'hint' => esc_attr__( 'Prev arrow icon', 'visual-portfolio' ),
|
1652 |
+
'hint_place' => 'left',
|
1653 |
+
'condition' => array(
|
1654 |
+
array(
|
1655 |
+
'control' => 'vp_pagination_style',
|
1656 |
+
'operator' => '!=',
|
1657 |
+
'value' => 'false',
|
1658 |
+
),
|
1659 |
+
array(
|
1660 |
+
'control' => 'vp_pagination',
|
1661 |
+
'value' => 'paged',
|
1662 |
+
),
|
1663 |
+
array(
|
1664 |
+
'control' => 'vp_pagination_paged__show_arrows',
|
1665 |
+
),
|
1666 |
+
),
|
1667 |
+
)
|
1668 |
+
);
|
1669 |
+
Visual_Portfolio_Controls::register(
|
1670 |
+
array(
|
1671 |
+
'category' => 'pagination',
|
1672 |
+
'type' => 'text',
|
1673 |
+
'name' => 'vp_pagination_paged__arrows_icon_next',
|
1674 |
+
'default' => 'fas fa-angle-right',
|
1675 |
+
'placeholder' => esc_attr__( 'Next arrow icon', 'visual-portfolio' ),
|
1676 |
+
'hint' => esc_attr__( 'Next arrow icon', 'visual-portfolio' ),
|
1677 |
+
'hint_place' => 'left',
|
1678 |
+
'condition' => array(
|
1679 |
+
array(
|
1680 |
+
'control' => 'vp_pagination_style',
|
1681 |
+
'operator' => '!=',
|
1682 |
+
'value' => 'false',
|
1683 |
+
),
|
1684 |
+
array(
|
1685 |
+
'control' => 'vp_pagination',
|
1686 |
+
'value' => 'paged',
|
1687 |
+
),
|
1688 |
+
array(
|
1689 |
+
'control' => 'vp_pagination_paged__show_arrows',
|
1690 |
+
),
|
1691 |
+
),
|
1692 |
+
)
|
1693 |
+
);
|
1694 |
Visual_Portfolio_Controls::register(
|
1695 |
array(
|
1696 |
'category' => 'pagination',
|
1699 |
'name' => 'vp_pagination_paged__show_numbers',
|
1700 |
'default' => true,
|
1701 |
'condition' => array(
|
1702 |
+
array(
|
1703 |
+
'control' => 'vp_pagination_style',
|
1704 |
+
'operator' => '!=',
|
1705 |
+
'value' => 'false',
|
1706 |
+
),
|
1707 |
array(
|
1708 |
'control' => 'vp_pagination',
|
1709 |
'value' => 'paged',
|
1726 |
)
|
1727 |
);
|
1728 |
|
1729 |
+
/**
|
1730 |
+
* Custom controls styles.
|
1731 |
+
*/
|
1732 |
+
Visual_Portfolio_Controls::register(
|
1733 |
+
array(
|
1734 |
+
'category' => 'controls_styles',
|
1735 |
+
'type' => 'textarea',
|
1736 |
+
'name' => 'vp_controls_styles',
|
1737 |
+
'default' => '',
|
1738 |
+
'readonly' => true,
|
1739 |
+
'wrapper_class' => 'vp-controls-styles',
|
1740 |
+
)
|
1741 |
+
);
|
1742 |
+
|
1743 |
/**
|
1744 |
* Content Source
|
1745 |
*/
|
2049 |
|
2050 |
Visual_Portfolio_Controls::get(
|
2051 |
array(
|
2052 |
+
'type' => 'text',
|
2053 |
+
'label' => esc_html__( 'Shortcode', 'visual-portfolio' ),
|
2054 |
'description' => esc_html__( 'Place the shortcode where you want to show the portfolio list.', 'visual-portfolio' ),
|
2055 |
+
'name' => 'vp_list_shortcode',
|
2056 |
+
'value' => $post->ID ? '[visual_portfolio id="' . $post->ID . '" class=""]' : '',
|
2057 |
'readonly' => true,
|
2058 |
)
|
2059 |
);
|
2060 |
|
2061 |
+
// custom controls styles.
|
2062 |
+
Visual_Portfolio_Controls::get_registered( 'controls_styles' );
|
2063 |
+
|
2064 |
?>
|
2065 |
|
2066 |
<style>
|
2068 |
margin-top: -21px;
|
2069 |
border-top: none;
|
2070 |
}
|
2071 |
+
.vp-controls-styles,
|
2072 |
#post-body-content,
|
2073 |
#submitdiv .handlediv,
|
2074 |
#submitdiv .hndle,
|
2282 |
|
2283 |
foreach ( $meta as $item ) {
|
2284 |
if ( isset( $_POST[ $item ] ) ) {
|
2285 |
+
if ( 'vp_custom_css' === $item || 'vp_controls_styles' === $item ) {
|
2286 |
$result = wp_kses( wp_unslash( $_POST[ $item ] ), array( '\'', '\"' ) );
|
2287 |
} else {
|
2288 |
$result = sanitize_text_field( wp_unslash( $_POST[ $item ] ) );
|
2455 |
'post_type' => get_post_type( get_the_ID() ),
|
2456 |
);
|
2457 |
}
|
2458 |
+
$the_query->reset_postdata();
|
2459 |
}
|
2460 |
|
2461 |
echo json_encode( $result );
|
classes/class-controls.php
CHANGED
@@ -71,6 +71,15 @@ class Visual_Portfolio_Controls {
|
|
71 |
*/
|
72 |
),
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
'class' => '',
|
75 |
'wrapper_class' => '',
|
76 |
);
|
@@ -133,6 +142,8 @@ class Visual_Portfolio_Controls {
|
|
133 |
<?php
|
134 |
self::print_label( $args );
|
135 |
|
|
|
|
|
136 |
if ( method_exists( __CLASS__, 'print_control_' . $args['type'] ) ) {
|
137 |
call_user_func( array( __CLASS__, 'print_control_' . $args['type'] ), $args );
|
138 |
}
|
@@ -276,6 +287,34 @@ class Visual_Portfolio_Controls {
|
|
276 |
<?php
|
277 |
}
|
278 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
279 |
/**
|
280 |
* Print control description.
|
281 |
*
|
71 |
*/
|
72 |
),
|
73 |
|
74 |
+
// style.
|
75 |
+
'style' => array(
|
76 |
+
/**
|
77 |
+
* Array of arrays with data:
|
78 |
+
* 'element' - CSS selector string (.vp-portfolio__item, .vp-portfolio__item-overlay, etc).
|
79 |
+
* 'property' - CSS property (color, font-size, etc).
|
80 |
+
*/
|
81 |
+
),
|
82 |
+
|
83 |
'class' => '',
|
84 |
'wrapper_class' => '',
|
85 |
);
|
142 |
<?php
|
143 |
self::print_label( $args );
|
144 |
|
145 |
+
self::print_style( $args );
|
146 |
+
|
147 |
if ( method_exists( __CLASS__, 'print_control_' . $args['type'] ) ) {
|
148 |
call_user_func( array( __CLASS__, 'print_control_' . $args['type'] ), $args );
|
149 |
}
|
287 |
<?php
|
288 |
}
|
289 |
|
290 |
+
/**
|
291 |
+
* Print control style.
|
292 |
+
*
|
293 |
+
* @param array $args - control args.
|
294 |
+
*/
|
295 |
+
public static function print_style( $args = array() ) {
|
296 |
+
if ( ! $args['style'] || empty( $args['style'] ) ) {
|
297 |
+
return;
|
298 |
+
}
|
299 |
+
?>
|
300 |
+
<div class="vp-control-style">
|
301 |
+
<?php
|
302 |
+
foreach ( $args['style'] as $style ) {
|
303 |
+
?>
|
304 |
+
<input type="hidden"
|
305 |
+
name="<?php echo esc_attr( $args['name'] ); ?>__style[]"
|
306 |
+
data-style-from="[name='<?php echo esc_attr( $args['name'] ); ?>']"
|
307 |
+
data-style-element="<?php echo esc_attr( $style['element'] ); ?>"
|
308 |
+
data-style-property="<?php echo esc_attr( $style['property'] ); ?>"
|
309 |
+
value=""
|
310 |
+
>
|
311 |
+
<?php
|
312 |
+
}
|
313 |
+
?>
|
314 |
+
</div>
|
315 |
+
<?php
|
316 |
+
}
|
317 |
+
|
318 |
/**
|
319 |
* Print control description.
|
320 |
*
|
classes/class-extend.php
CHANGED
@@ -87,6 +87,26 @@ class Visual_Portfolio_Extend {
|
|
87 |
return apply_filters( 'vpf_extend_filters', array() );
|
88 |
}
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
/**
|
91 |
* Portfolio Data Attributes.
|
92 |
*
|
87 |
return apply_filters( 'vpf_extend_filters', array() );
|
88 |
}
|
89 |
|
90 |
+
/**
|
91 |
+
* Additional Pagination.
|
92 |
+
*
|
93 |
+
* @return array
|
94 |
+
*/
|
95 |
+
public static function pagination() {
|
96 |
+
/*
|
97 |
+
* Example:
|
98 |
+
array(
|
99 |
+
'new_pagination' => array(
|
100 |
+
'title' => esc_html__( 'New Pagination', 'visual-portfolio' ),
|
101 |
+
'controls' => array(
|
102 |
+
... controls ...
|
103 |
+
),
|
104 |
+
),
|
105 |
+
)
|
106 |
+
*/
|
107 |
+
return apply_filters( 'vpf_extend_pagination', array() );
|
108 |
+
}
|
109 |
+
|
110 |
/**
|
111 |
* Portfolio Data Attributes.
|
112 |
*
|
classes/class-get-portfolio.php
CHANGED
@@ -76,11 +76,12 @@ class Visual_Portfolio_Get {
|
|
76 |
* Check if portfolio showed in preview mode.
|
77 |
*/
|
78 |
public static function is_preview() {
|
79 |
-
|
80 |
-
$
|
81 |
-
$
|
|
|
82 |
|
83 |
-
return '
|
84 |
}
|
85 |
|
86 |
/**
|
@@ -165,6 +166,9 @@ class Visual_Portfolio_Get {
|
|
165 |
|
166 |
$start_page = self::get_current_page_number();
|
167 |
|
|
|
|
|
|
|
168 |
$is_images = 'images' === $options['vp_content_source'];
|
169 |
if ( $is_images ) {
|
170 |
$query_opts = self::get_query_params( $options );
|
@@ -261,9 +265,9 @@ class Visual_Portfolio_Get {
|
|
261 |
<?php
|
262 |
foreach ( $data_atts as $name => $data ) {
|
263 |
if ( 'data-vp-next-page-url' === $name ) {
|
264 |
-
echo esc_html( $name ) . '="' . esc_url( $data ) . '"';
|
265 |
} else {
|
266 |
-
echo esc_html( $name ) . '="' . esc_attr( $data ) . '"';
|
267 |
}
|
268 |
}
|
269 |
?>
|
@@ -292,14 +296,11 @@ class Visual_Portfolio_Get {
|
|
292 |
self::filter( $options );
|
293 |
|
294 |
// Insert styles.
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
break;
|
299 |
-
default:
|
300 |
-
visual_portfolio()->include_template_style( 'visual-portfolio-items-style-' . $options['vp_items_style'], 'items-list/items-style/' . $options['vp_items_style'] . '/style' );
|
301 |
-
break;
|
302 |
}
|
|
|
303 |
?>
|
304 |
|
305 |
<div class="vp-portfolio__items-wrap">
|
@@ -309,6 +310,7 @@ class Visual_Portfolio_Get {
|
|
309 |
'url' => '',
|
310 |
'title' => '',
|
311 |
'excerpt' => '',
|
|
|
312 |
'format' => '',
|
313 |
'published' => '',
|
314 |
'published_time' => '',
|
@@ -317,13 +319,18 @@ class Visual_Portfolio_Get {
|
|
317 |
'image_id' => '',
|
318 |
'image_allowed_html' => array(
|
319 |
'img' => array(
|
320 |
-
'src'
|
321 |
-
'srcset'
|
322 |
-
'sizes'
|
323 |
-
'alt'
|
324 |
-
'class'
|
325 |
-
'width'
|
326 |
-
'height'
|
|
|
|
|
|
|
|
|
|
|
327 |
),
|
328 |
),
|
329 |
'img_size_popup' => $img_size_popup,
|
@@ -387,7 +394,7 @@ class Visual_Portfolio_Get {
|
|
387 |
|
388 |
self::each_item( $args );
|
389 |
}
|
390 |
-
} else if ( isset( $portfolio_query )
|
391 |
while ( $portfolio_query->have_posts() ) {
|
392 |
$portfolio_query->the_post();
|
393 |
|
@@ -437,6 +444,8 @@ class Visual_Portfolio_Get {
|
|
437 |
'categories' => $categories,
|
438 |
) );
|
439 |
|
|
|
|
|
440 |
// Excerpt.
|
441 |
if ( isset( $args['opts']['show_excerpt'] ) && $args['opts']['show_excerpt'] ) {
|
442 |
$args['excerpt'] = wp_trim_words( do_shortcode( has_excerpt() ? get_the_excerpt() : get_the_content() ), $args['opts']['excerpt_words_count'], '...' );
|
@@ -452,7 +461,7 @@ class Visual_Portfolio_Get {
|
|
452 |
self::each_item( $args );
|
453 |
}
|
454 |
|
455 |
-
|
456 |
}
|
457 |
|
458 |
?>
|
@@ -471,6 +480,17 @@ class Visual_Portfolio_Get {
|
|
471 |
|
472 |
<?php
|
473 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
474 |
// Add custom styles.
|
475 |
if ( $options['vp_custom_css'] ) {
|
476 |
$custom_css_handle = 'vp-custom-css-' . $atts['id'];
|
@@ -482,6 +502,10 @@ class Visual_Portfolio_Get {
|
|
482 |
wp_add_inline_style( $custom_css_handle, $css );
|
483 |
}
|
484 |
|
|
|
|
|
|
|
|
|
485 |
$return = ob_get_contents();
|
486 |
ob_end_clean();
|
487 |
return $return;
|
@@ -851,38 +875,43 @@ class Visual_Portfolio_Get {
|
|
851 |
*/
|
852 |
$term_ids = array();
|
853 |
$term_taxonomies = array();
|
|
|
|
|
|
|
854 |
$portfolio_query = new WP_Query( $query_opts );
|
855 |
-
|
856 |
-
|
857 |
-
|
858 |
-
|
859 |
-
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
}
|
866 |
|
867 |
-
|
868 |
-
|
869 |
-
|
870 |
-
|
871 |
-
|
872 |
|
873 |
-
|
874 |
-
|
875 |
-
|
876 |
-
|
877 |
-
|
878 |
-
|
879 |
-
|
880 |
-
}
|
881 |
}
|
882 |
}
|
883 |
}
|
884 |
-
wp_reset_postdata();
|
885 |
}
|
|
|
|
|
|
|
|
|
|
|
886 |
|
887 |
// Get all available terms and then pick only needed by ID
|
888 |
// we need this to support reordering plugins.
|
@@ -935,12 +964,29 @@ class Visual_Portfolio_Get {
|
|
935 |
)
|
936 |
);
|
937 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
938 |
$args = array(
|
939 |
'class' => 'vp-filter',
|
940 |
'items' => $terms,
|
941 |
'align' => $vp_options['vp_filter_align'],
|
942 |
'show_count' => $vp_options['vp_filter_show_count'],
|
943 |
-
'
|
|
|
944 |
);
|
945 |
|
946 |
if ( $vp_options['vp_filter_align'] ) {
|
@@ -951,17 +997,15 @@ class Visual_Portfolio_Get {
|
|
951 |
<div class="vp-portfolio__filter-wrap">
|
952 |
<?php
|
953 |
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
break;
|
959 |
-
default:
|
960 |
-
visual_portfolio()->include_template( 'items-list/filter/' . $vp_options['vp_filter'] . '/filter', $args );
|
961 |
-
visual_portfolio()->include_template_style( 'visual-portfolio-filter-' . $vp_options['vp_filter'], 'items-list/filter/' . $vp_options['vp_filter'] . '/style' );
|
962 |
-
break;
|
963 |
}
|
964 |
|
|
|
|
|
|
|
965 |
?>
|
966 |
</div>
|
967 |
<?php
|
@@ -990,7 +1034,7 @@ class Visual_Portfolio_Get {
|
|
990 |
*/
|
991 |
private static function each_item( $args ) {
|
992 |
// prepare image.
|
993 |
-
$args['image'] =
|
994 |
|
995 |
// prepare date.
|
996 |
if ( isset( $args['opts']['show_date'] ) ) {
|
@@ -1061,7 +1105,7 @@ class Visual_Portfolio_Get {
|
|
1061 |
|
1062 |
// No Image.
|
1063 |
if ( ! $args['image'] && $args['no_image'] ) {
|
1064 |
-
$args['image'] =
|
1065 |
}
|
1066 |
?>
|
1067 |
|
@@ -1092,16 +1136,12 @@ class Visual_Portfolio_Get {
|
|
1092 |
?>
|
1093 |
<div class="vp-portfolio__item">
|
1094 |
<?php
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
visual_portfolio()->include_template( 'items-list/items-style/meta', $args );
|
1099 |
-
break;
|
1100 |
-
default:
|
1101 |
-
visual_portfolio()->include_template( 'items-list/items-style/' . $args['vp_opts']['vp_items_style'] . '/image', $args );
|
1102 |
-
visual_portfolio()->include_template( 'items-list/items-style/' . $args['vp_opts']['vp_items_style'] . '/meta', $args );
|
1103 |
-
break;
|
1104 |
}
|
|
|
|
|
1105 |
?>
|
1106 |
</div>
|
1107 |
</div>
|
@@ -1118,10 +1158,26 @@ class Visual_Portfolio_Get {
|
|
1118 |
* 'next_page_url'.
|
1119 |
*/
|
1120 |
private static function pagination( $vp_options, $args ) {
|
1121 |
-
if ( ! $vp_options['vp_pagination'] ) {
|
1122 |
return;
|
1123 |
}
|
1124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1125 |
$args = array(
|
1126 |
'type' => $vp_options['vp_pagination'],
|
1127 |
'next_page_url' => $args['next_page_url'],
|
@@ -1129,7 +1185,8 @@ class Visual_Portfolio_Get {
|
|
1129 |
'max_pages' => $args['max_pages'],
|
1130 |
'class' => 'vp-pagination',
|
1131 |
'align' => $vp_options['vp_pagination_align'],
|
1132 |
-
'
|
|
|
1133 |
);
|
1134 |
|
1135 |
if ( ! $args['next_page_url'] ) {
|
@@ -1144,10 +1201,16 @@ class Visual_Portfolio_Get {
|
|
1144 |
<div class="vp-portfolio__pagination-wrap">
|
1145 |
<?php
|
1146 |
|
|
|
|
|
|
|
|
|
|
|
1147 |
switch ( $vp_options['vp_pagination'] ) {
|
1148 |
case 'infinite':
|
1149 |
case 'load-more':
|
1150 |
-
visual_portfolio()->include_template( 'items-list/pagination/' . $vp_options['vp_pagination'], $args );
|
|
|
1151 |
break;
|
1152 |
default:
|
1153 |
$pagination_links = paginate_links(
|
@@ -1217,7 +1280,12 @@ class Visual_Portfolio_Get {
|
|
1217 |
|
1218 |
if ( ! empty( $filtered_links ) ) {
|
1219 |
$args['items'] = $filtered_links;
|
1220 |
-
|
|
|
|
|
|
|
|
|
|
|
1221 |
}
|
1222 |
|
1223 |
break;
|
@@ -1226,15 +1294,13 @@ class Visual_Portfolio_Get {
|
|
1226 |
?>
|
1227 |
</div>
|
1228 |
<?php
|
1229 |
-
|
1230 |
-
visual_portfolio()->include_template_style( 'visual-portfolio-pagination-default', 'items-list/pagination/style' );
|
1231 |
}
|
1232 |
|
1233 |
/**
|
1234 |
* Return current url without page variables.
|
1235 |
*
|
1236 |
-
* @param string $current_url - custom page url.
|
1237 |
-
* @param array
|
1238 |
* @return string
|
1239 |
*/
|
1240 |
private static function get_nopaging_url( $current_url = false, $query_arg = array() ) {
|
76 |
* Check if portfolio showed in preview mode.
|
77 |
*/
|
78 |
public static function is_preview() {
|
79 |
+
// phpcs:disable
|
80 |
+
$frame = isset( $_GET['vp_preview_frame'] ) ? esc_attr( wp_unslash( $_GET['vp_preview_frame'] ) ) : false;
|
81 |
+
$id = isset( $_GET['vp_preview_frame_id'] ) ? esc_attr( wp_unslash( $_GET['vp_preview_frame_id'] ) ) : false;
|
82 |
+
// phpcs:enable
|
83 |
|
84 |
+
return 'true' === $frame && $id;
|
85 |
}
|
86 |
|
87 |
/**
|
166 |
|
167 |
$start_page = self::get_current_page_number();
|
168 |
|
169 |
+
// stupid hack as wp_reset_postdata() function is not working for me...
|
170 |
+
$old_post = $GLOBALS['post'];
|
171 |
+
|
172 |
$is_images = 'images' === $options['vp_content_source'];
|
173 |
if ( $is_images ) {
|
174 |
$query_opts = self::get_query_params( $options );
|
265 |
<?php
|
266 |
foreach ( $data_atts as $name => $data ) {
|
267 |
if ( 'data-vp-next-page-url' === $name ) {
|
268 |
+
echo esc_html( $name ) . '="' . esc_url( $data ) . '" ';
|
269 |
} else {
|
270 |
+
echo esc_html( $name ) . '="' . esc_attr( $data ) . '" ';
|
271 |
}
|
272 |
}
|
273 |
?>
|
296 |
self::filter( $options );
|
297 |
|
298 |
// Insert styles.
|
299 |
+
$items_style_pref = '';
|
300 |
+
if ( 'default' !== $options['vp_items_style'] ) {
|
301 |
+
$items_style_pref = '/' . $options['vp_items_style'];
|
|
|
|
|
|
|
|
|
302 |
}
|
303 |
+
visual_portfolio()->include_template_style( 'visual-portfolio-items-style-' . $options['vp_items_style'], 'items-list/items-style' . $items_style_pref . '/style' );
|
304 |
?>
|
305 |
|
306 |
<div class="vp-portfolio__items-wrap">
|
310 |
'url' => '',
|
311 |
'title' => '',
|
312 |
'excerpt' => '',
|
313 |
+
'comments_number' => '',
|
314 |
'format' => '',
|
315 |
'published' => '',
|
316 |
'published_time' => '',
|
319 |
'image_id' => '',
|
320 |
'image_allowed_html' => array(
|
321 |
'img' => array(
|
322 |
+
'src' => array(),
|
323 |
+
'srcset' => array(),
|
324 |
+
'sizes' => array(),
|
325 |
+
'alt' => array(),
|
326 |
+
'class' => array(),
|
327 |
+
'width' => array(),
|
328 |
+
'height' => array(),
|
329 |
+
|
330 |
+
// Lazyload support.
|
331 |
+
'data-src' => array(),
|
332 |
+
'data-sizes' => array(),
|
333 |
+
'data-srcset' => array(),
|
334 |
),
|
335 |
),
|
336 |
'img_size_popup' => $img_size_popup,
|
394 |
|
395 |
self::each_item( $args );
|
396 |
}
|
397 |
+
} else if ( isset( $portfolio_query ) ) {
|
398 |
while ( $portfolio_query->have_posts() ) {
|
399 |
$portfolio_query->the_post();
|
400 |
|
444 |
'categories' => $categories,
|
445 |
) );
|
446 |
|
447 |
+
$args['comments_number'] = get_comments_number();
|
448 |
+
|
449 |
// Excerpt.
|
450 |
if ( isset( $args['opts']['show_excerpt'] ) && $args['opts']['show_excerpt'] ) {
|
451 |
$args['excerpt'] = wp_trim_words( do_shortcode( has_excerpt() ? get_the_excerpt() : get_the_content() ), $args['opts']['excerpt_words_count'], '...' );
|
461 |
self::each_item( $args );
|
462 |
}
|
463 |
|
464 |
+
$portfolio_query->reset_postdata();
|
465 |
}
|
466 |
|
467 |
?>
|
480 |
|
481 |
<?php
|
482 |
|
483 |
+
// Add controls styles.
|
484 |
+
if ( $options['vp_controls_styles'] ) {
|
485 |
+
$controls_css_handle = 'vp-controls-styles-' . $atts['id'];
|
486 |
+
$css = wp_kses( $options['vp_controls_styles'], array( '\'', '\"' ) );
|
487 |
+
$css = str_replace( '>', '>', $css );
|
488 |
+
|
489 |
+
wp_register_style( $controls_css_handle, false );
|
490 |
+
wp_enqueue_style( $controls_css_handle );
|
491 |
+
wp_add_inline_style( $controls_css_handle, $css );
|
492 |
+
}
|
493 |
+
|
494 |
// Add custom styles.
|
495 |
if ( $options['vp_custom_css'] ) {
|
496 |
$custom_css_handle = 'vp-custom-css-' . $atts['id'];
|
502 |
wp_add_inline_style( $custom_css_handle, $css );
|
503 |
}
|
504 |
|
505 |
+
// stupid hack as wp_reset_postdata() function is not working for me...
|
506 |
+
// phpcs:ignore
|
507 |
+
$GLOBALS['post'] = $old_post;
|
508 |
+
|
509 |
$return = ob_get_contents();
|
510 |
ob_end_clean();
|
511 |
return $return;
|
875 |
*/
|
876 |
$term_ids = array();
|
877 |
$term_taxonomies = array();
|
878 |
+
|
879 |
+
// stupid hack as wp_reset_postdata() function is not working for me...
|
880 |
+
$old_post = $GLOBALS['post'];
|
881 |
$portfolio_query = new WP_Query( $query_opts );
|
882 |
+
while ( $portfolio_query->have_posts() ) {
|
883 |
+
$portfolio_query->the_post();
|
884 |
+
$all_taxonomies = get_object_taxonomies( get_post() );
|
885 |
+
|
886 |
+
foreach ( $all_taxonomies as $cat ) {
|
887 |
+
// allow only category taxonomies like category, portfolio_category, etc...
|
888 |
+
// + support for jetpack portfolio-type.
|
889 |
+
if ( strpos( $cat, 'category' ) === false && strpos( $cat, 'jetpack-portfolio-type' ) === false ) {
|
890 |
+
continue;
|
891 |
+
}
|
|
|
892 |
|
893 |
+
// Retrieve terms.
|
894 |
+
$category = get_the_terms( get_post(), $cat );
|
895 |
+
if ( ! $category ) {
|
896 |
+
continue;
|
897 |
+
}
|
898 |
|
899 |
+
// Prepare each terms array.
|
900 |
+
foreach ( $category as $key => $cat_item ) {
|
901 |
+
if ( ! in_array( $cat_item->term_id, $term_ids ) ) {
|
902 |
+
$term_ids[] = $cat_item->term_id;
|
903 |
+
}
|
904 |
+
if ( ! in_array( $cat_item->taxonomy, $term_taxonomies ) ) {
|
905 |
+
$term_taxonomies[] = $cat_item->taxonomy;
|
|
|
906 |
}
|
907 |
}
|
908 |
}
|
|
|
909 |
}
|
910 |
+
$portfolio_query->reset_postdata();
|
911 |
+
|
912 |
+
// stupid hack as wp_reset_postdata() function is not working for me...
|
913 |
+
// phpcs:ignore
|
914 |
+
$GLOBALS['post'] = $old_post;
|
915 |
|
916 |
// Get all available terms and then pick only needed by ID
|
917 |
// we need this to support reordering plugins.
|
964 |
)
|
965 |
);
|
966 |
|
967 |
+
// get options for the current filter.
|
968 |
+
$filter_options = array();
|
969 |
+
$filter_options_slug = 'vp_filter_' . $vp_options['vp_filter'] . '__';
|
970 |
+
foreach ( $vp_options as $k => $opt ) {
|
971 |
+
// add option to array.
|
972 |
+
if ( substr( $k, 0, strlen( $filter_options_slug ) ) === $filter_options_slug ) {
|
973 |
+
$opt_name = str_replace( $filter_options_slug, '', $k );
|
974 |
+
$filter_options[ $opt_name ] = $opt;
|
975 |
+
}
|
976 |
+
|
977 |
+
// remove style options from the options list.
|
978 |
+
if ( substr( $k, 0, strlen( $filter_options_slug ) ) === $filter_options_slug ) {
|
979 |
+
unset( $vp_options[ $k ] );
|
980 |
+
}
|
981 |
+
}
|
982 |
+
|
983 |
$args = array(
|
984 |
'class' => 'vp-filter',
|
985 |
'items' => $terms,
|
986 |
'align' => $vp_options['vp_filter_align'],
|
987 |
'show_count' => $vp_options['vp_filter_show_count'],
|
988 |
+
'opts' => $filter_options,
|
989 |
+
'vp_opts' => $vp_options,
|
990 |
);
|
991 |
|
992 |
if ( $vp_options['vp_filter_align'] ) {
|
997 |
<div class="vp-portfolio__filter-wrap">
|
998 |
<?php
|
999 |
|
1000 |
+
$filter_style_pref = '';
|
1001 |
+
|
1002 |
+
if ( 'default' !== $vp_options['vp_filter'] ) {
|
1003 |
+
$filter_style_pref = '/' . $vp_options['vp_filter'];
|
|
|
|
|
|
|
|
|
|
|
1004 |
}
|
1005 |
|
1006 |
+
visual_portfolio()->include_template( 'items-list/filter' . $filter_style_pref . '/filter', $args );
|
1007 |
+
visual_portfolio()->include_template_style( 'visual-portfolio-filter-' . $vp_options['vp_filter'], 'items-list/filter' . $filter_style_pref . '/style' );
|
1008 |
+
|
1009 |
?>
|
1010 |
</div>
|
1011 |
<?php
|
1034 |
*/
|
1035 |
private static function each_item( $args ) {
|
1036 |
// prepare image.
|
1037 |
+
$args['image'] = Visual_Portfolio_Images::get_attachment_image( $args['image_id'], $args['img_size'] );
|
1038 |
|
1039 |
// prepare date.
|
1040 |
if ( isset( $args['opts']['show_date'] ) ) {
|
1105 |
|
1106 |
// No Image.
|
1107 |
if ( ! $args['image'] && $args['no_image'] ) {
|
1108 |
+
$args['image'] = Visual_Portfolio_Images::get_attachment_image( $args['no_image'], $args['img_size'] );
|
1109 |
}
|
1110 |
?>
|
1111 |
|
1136 |
?>
|
1137 |
<div class="vp-portfolio__item">
|
1138 |
<?php
|
1139 |
+
$items_style_pref = '';
|
1140 |
+
if ( 'default' !== $args['vp_opts']['vp_items_style'] ) {
|
1141 |
+
$items_style_pref = '/' . $args['vp_opts']['vp_items_style'];
|
|
|
|
|
|
|
|
|
|
|
|
|
1142 |
}
|
1143 |
+
visual_portfolio()->include_template( 'items-list/items-style' . $items_style_pref . '/image', $args );
|
1144 |
+
visual_portfolio()->include_template( 'items-list/items-style' . $items_style_pref . '/meta', $args );
|
1145 |
?>
|
1146 |
</div>
|
1147 |
</div>
|
1158 |
* 'next_page_url'.
|
1159 |
*/
|
1160 |
private static function pagination( $vp_options, $args ) {
|
1161 |
+
if ( ! $vp_options['vp_pagination_style'] || ! $vp_options['vp_pagination'] ) {
|
1162 |
return;
|
1163 |
}
|
1164 |
|
1165 |
+
// get options for the current pagination.
|
1166 |
+
$pagination_options = array();
|
1167 |
+
$pagination_options_slug = 'vp_pagination_' . $vp_options['vp_pagination_style'] . '__';
|
1168 |
+
foreach ( $vp_options as $k => $opt ) {
|
1169 |
+
// add option to array.
|
1170 |
+
if ( substr( $k, 0, strlen( $pagination_options_slug ) ) === $pagination_options_slug ) {
|
1171 |
+
$opt_name = str_replace( $pagination_options_slug, '', $k );
|
1172 |
+
$pagination_options[ $opt_name ] = $opt;
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
// remove style options from the options list.
|
1176 |
+
if ( substr( $k, 0, strlen( $pagination_options_slug ) ) === $pagination_options_slug ) {
|
1177 |
+
unset( $vp_options[ $k ] );
|
1178 |
+
}
|
1179 |
+
}
|
1180 |
+
|
1181 |
$args = array(
|
1182 |
'type' => $vp_options['vp_pagination'],
|
1183 |
'next_page_url' => $args['next_page_url'],
|
1185 |
'max_pages' => $args['max_pages'],
|
1186 |
'class' => 'vp-pagination',
|
1187 |
'align' => $vp_options['vp_pagination_align'],
|
1188 |
+
'opts' => $pagination_options,
|
1189 |
+
'vp_opts' => $vp_options,
|
1190 |
);
|
1191 |
|
1192 |
if ( ! $args['next_page_url'] ) {
|
1201 |
<div class="vp-portfolio__pagination-wrap">
|
1202 |
<?php
|
1203 |
|
1204 |
+
$pagination_style_pref = '';
|
1205 |
+
if ( 'default' !== $vp_options['vp_pagination_style'] ) {
|
1206 |
+
$pagination_style_pref = '/' . $vp_options['vp_pagination_style'];
|
1207 |
+
}
|
1208 |
+
|
1209 |
switch ( $vp_options['vp_pagination'] ) {
|
1210 |
case 'infinite':
|
1211 |
case 'load-more':
|
1212 |
+
visual_portfolio()->include_template( 'items-list/pagination' . $pagination_style_pref . '/' . $vp_options['vp_pagination'], $args );
|
1213 |
+
visual_portfolio()->include_template_style( 'visual-portfolio-pagination-' . $vp_options['vp_pagination_style'], 'items-list/pagination' . $pagination_style_pref . '/style' );
|
1214 |
break;
|
1215 |
default:
|
1216 |
$pagination_links = paginate_links(
|
1280 |
|
1281 |
if ( ! empty( $filtered_links ) ) {
|
1282 |
$args['items'] = $filtered_links;
|
1283 |
+
if ( $vp_options['vp_pagination_paged__show_arrows'] ) {
|
1284 |
+
$args['arrows_icon_prev'] = $vp_options['vp_pagination_paged__arrows_icon_prev'];
|
1285 |
+
$args['arrows_icon_next'] = $vp_options['vp_pagination_paged__arrows_icon_next'];
|
1286 |
+
}
|
1287 |
+
visual_portfolio()->include_template( 'items-list/pagination' . $pagination_style_pref . '/paged', $args );
|
1288 |
+
visual_portfolio()->include_template_style( 'visual-portfolio-pagination-' . $vp_options['vp_pagination_style'], 'items-list/pagination/style' );
|
1289 |
}
|
1290 |
|
1291 |
break;
|
1294 |
?>
|
1295 |
</div>
|
1296 |
<?php
|
|
|
|
|
1297 |
}
|
1298 |
|
1299 |
/**
|
1300 |
* Return current url without page variables.
|
1301 |
*
|
1302 |
+
* @param string|boolean $current_url - custom page url.
|
1303 |
+
* @param array $query_arg - custom query arg.
|
1304 |
* @return string
|
1305 |
*/
|
1306 |
private static function get_nopaging_url( $current_url = false, $query_arg = array() ) {
|
classes/class-images.php
ADDED
@@ -0,0 +1,215 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Prepare placeholder and lazy load.
|
4 |
+
*
|
5 |
+
* @package visual-portfolio/images
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
9 |
+
exit;
|
10 |
+
}
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Class Visual_Portfolio_Images
|
14 |
+
*/
|
15 |
+
class Visual_Portfolio_Images {
|
16 |
+
/**
|
17 |
+
* When image process in progress with method get_attachment_image, this variable will be 'true'.
|
18 |
+
*
|
19 |
+
* @var bool
|
20 |
+
*/
|
21 |
+
public static $image_processing = false;
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Visual_Portfolio_Images constructor.
|
25 |
+
*/
|
26 |
+
public static function construct() {
|
27 |
+
// Prepare images base64 placeholders.
|
28 |
+
// Thanks https://wordpress.org/plugins/powerkit/.
|
29 |
+
add_action( 'init', 'Visual_Portfolio_Images::allow_lazy_attributes' );
|
30 |
+
add_filter( 'kses_allowed_protocols', 'Visual_Portfolio_Images::kses_allowed_protocols', 15 );
|
31 |
+
add_filter( 'wp_update_attachment_metadata', 'Visual_Portfolio_Images::generate_attachment_placeholder', 15 );
|
32 |
+
add_filter( 'wp_generate_attachment_metadata', 'Visual_Portfolio_Images::generate_attachment_placeholder', 15 );
|
33 |
+
add_filter( 'wp_get_attachment_image_attributes', 'Visual_Portfolio_Images::add_image_placeholders', 15, 3 );
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Allow attributes of Lazy Load for wp_kses.
|
38 |
+
*/
|
39 |
+
public static function allow_lazy_attributes() {
|
40 |
+
global $allowedposttags;
|
41 |
+
|
42 |
+
if ( $allowedposttags ) {
|
43 |
+
foreach ( $allowedposttags as $key => & $tags ) {
|
44 |
+
if ( 'img' === $key ) {
|
45 |
+
$tags['data-src'] = true;
|
46 |
+
$tags['data-sizes'] = true;
|
47 |
+
$tags['data-srcset'] = true;
|
48 |
+
}
|
49 |
+
}
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* Fix img src attribute correction in wp_kses.
|
55 |
+
*
|
56 |
+
* @param array $protocols protocols array.
|
57 |
+
*
|
58 |
+
* @return array
|
59 |
+
*/
|
60 |
+
public static function kses_allowed_protocols( $protocols ) {
|
61 |
+
$protocols[] = 'data';
|
62 |
+
return $protocols;
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* Get attachment image wrapper.
|
67 |
+
*
|
68 |
+
* @param int $attachment_id attachment image id.
|
69 |
+
* @param string|array $size image size.
|
70 |
+
* @param bool $icon icon.
|
71 |
+
* @param string|array $attr image attributes.
|
72 |
+
*
|
73 |
+
* @return string
|
74 |
+
*/
|
75 |
+
public static function get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = false, $attr = '' ) {
|
76 |
+
self::$image_processing = true;
|
77 |
+
$image = wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
|
78 |
+
self::$image_processing = false;
|
79 |
+
return $image;
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Generation placeholder.
|
84 |
+
*
|
85 |
+
* @param int $width Width of image.
|
86 |
+
* @param int $height Height of image.
|
87 |
+
*
|
88 |
+
* @return string
|
89 |
+
*/
|
90 |
+
public static function get_image_placeholder( $width = 1, $height = 1 ) {
|
91 |
+
// 'pk' slug just because this code is from Powerkit plugin,
|
92 |
+
// so we need to be compatible with it.
|
93 |
+
$transient = sprintf( 'pk_image_placeholder_%s_%s', $width, $height );
|
94 |
+
|
95 |
+
$placeholder_image = get_transient( $transient );
|
96 |
+
|
97 |
+
if ( ! $placeholder_image ) {
|
98 |
+
ob_start();
|
99 |
+
|
100 |
+
$image = imagecreate( $width, $height );
|
101 |
+
$background = imagecolorallocatealpha( $image, 0, 0, 255, 127 );
|
102 |
+
|
103 |
+
imagepng( $image, null, 9 );
|
104 |
+
imagecolordeallocate( $image, $background );
|
105 |
+
imagedestroy( $image );
|
106 |
+
|
107 |
+
$placeholder_code = ob_get_clean();
|
108 |
+
|
109 |
+
$placeholder_image = 'data:image/png;base64,' . base64_encode( $placeholder_code );
|
110 |
+
|
111 |
+
set_transient( $transient, $placeholder_image );
|
112 |
+
}
|
113 |
+
|
114 |
+
return $placeholder_image;
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Attachment metadata filter.
|
119 |
+
*
|
120 |
+
* @param array $metadata - attachment meta data.
|
121 |
+
*
|
122 |
+
* @return array
|
123 |
+
*/
|
124 |
+
public static function generate_attachment_placeholder( $metadata ) {
|
125 |
+
// Generate image full size.
|
126 |
+
if ( isset( $metadata['width'] ) && isset( $metadata['height'] ) ) {
|
127 |
+
$metadata['placeholder'] = self::get_image_placeholder( $metadata['width'], $metadata['height'] );
|
128 |
+
}
|
129 |
+
|
130 |
+
// Generate image sizes.
|
131 |
+
if ( isset( $metadata['sizes'] ) ) {
|
132 |
+
foreach ( $metadata['sizes'] as $slug => & $size ) {
|
133 |
+
// Ignore lqip size.
|
134 |
+
if ( preg_match( '/powerkit-lqip/', $slug ) ) {
|
135 |
+
continue;
|
136 |
+
}
|
137 |
+
// Ignore retina size.
|
138 |
+
if ( preg_match( '/-2x$/', $slug ) ) {
|
139 |
+
continue;
|
140 |
+
}
|
141 |
+
if ( isset( $size['width'] ) && isset( $size['height'] ) ) {
|
142 |
+
$size['placeholder'] = self::get_image_placeholder( $size['width'], $size['height'] );
|
143 |
+
}
|
144 |
+
}
|
145 |
+
}
|
146 |
+
|
147 |
+
return $metadata;
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Add placeholder for Visual Portfolio images.
|
152 |
+
*
|
153 |
+
* @param array $attr Attributes for the image markup.
|
154 |
+
* @param WP_Post $attachment Image attachment post.
|
155 |
+
* @param string|array $size Requested size. Image size or array of width and height values
|
156 |
+
* (in that order). Default 'thumbnail'.
|
157 |
+
*
|
158 |
+
* @return array
|
159 |
+
*/
|
160 |
+
public static function add_image_placeholders( $attr, $attachment, $size ) {
|
161 |
+
// Is string.
|
162 |
+
if ( ! is_string( $size ) ) {
|
163 |
+
return $attr;
|
164 |
+
}
|
165 |
+
|
166 |
+
// Use only when called class method get_attachment_image.
|
167 |
+
if ( ! self::$image_processing ) {
|
168 |
+
return $attr;
|
169 |
+
}
|
170 |
+
|
171 |
+
// Lazyload already added.
|
172 |
+
if ( strpos( $attr['class'], 'lazyload' ) !== false || isset( $attr['data-src'] ) ) {
|
173 |
+
return $attr;
|
174 |
+
}
|
175 |
+
|
176 |
+
// Get attachment id.
|
177 |
+
$attachment_id = null;
|
178 |
+
|
179 |
+
if ( isset( $attachment->ID ) ) {
|
180 |
+
$attachment_id = $attachment->ID;
|
181 |
+
} elseif ( isset( $attachment['ID'] ) ) {
|
182 |
+
$attachment_id = $attachment['ID'];
|
183 |
+
}
|
184 |
+
|
185 |
+
// Default Placeholder.
|
186 |
+
$placeholder = false;
|
187 |
+
|
188 |
+
// The right Image Placeholder.
|
189 |
+
$metadata = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
|
190 |
+
|
191 |
+
if ( isset( $metadata['sizes'][ $size ]['placeholder'] ) ) {
|
192 |
+
$placeholder = $metadata['sizes'][ $size ]['placeholder'];
|
193 |
+
} elseif ( isset( $metadata['placeholder'] ) ) {
|
194 |
+
$placeholder = $metadata['placeholder'];
|
195 |
+
}
|
196 |
+
|
197 |
+
// lazy placeholder.
|
198 |
+
if ( $placeholder ) {
|
199 |
+
$attr['data-sizes'] = 'auto';
|
200 |
+
$attr['data-src'] = $attr['src'];
|
201 |
+
$attr['src'] = $placeholder;
|
202 |
+
}
|
203 |
+
|
204 |
+
$attr['class'] .= ' visual-portfolio-lazyload lazyload';
|
205 |
+
|
206 |
+
// Set Src Set.
|
207 |
+
if ( isset( $attr['srcset'] ) ) {
|
208 |
+
$attr['data-srcset'] = $attr['srcset'];
|
209 |
+
unset( $attr['srcset'] );
|
210 |
+
}
|
211 |
+
|
212 |
+
return $attr;
|
213 |
+
}
|
214 |
+
}
|
215 |
+
Visual_Portfolio_Images::construct();
|
languages/visual-portfolio.pot
CHANGED
@@ -15,19 +15,19 @@ msgstr ""
|
|
15 |
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
|
18 |
-
#: dist/visual-portfolio/class-visual-portfolio.php:
|
19 |
msgid "Small (VP)"
|
20 |
msgstr ""
|
21 |
|
22 |
-
#: dist/visual-portfolio/class-visual-portfolio.php:
|
23 |
msgid "Medium (VP)"
|
24 |
msgstr ""
|
25 |
|
26 |
-
#: dist/visual-portfolio/class-visual-portfolio.php:
|
27 |
msgid "Large (VP)"
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: dist/visual-portfolio/class-visual-portfolio.php:
|
31 |
msgid "Extra Large (VP)"
|
32 |
msgstr ""
|
33 |
|
@@ -101,7 +101,7 @@ msgstr ""
|
|
101 |
msgid "Portfolio Categories"
|
102 |
msgstr ""
|
103 |
|
104 |
-
#: dist/visual-portfolio/classes/class-admin.php:238, dist/visual-portfolio/classes/class-controls.php:
|
105 |
msgid "Categories"
|
106 |
msgstr ""
|
107 |
|
@@ -147,7 +147,7 @@ msgstr ""
|
|
147 |
msgid "Search Portfolio Layout"
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: dist/visual-portfolio/classes/class-admin.php:337, dist/visual-portfolio/classes/class-controls.php:
|
151 |
msgid "Video"
|
152 |
msgstr ""
|
153 |
|
@@ -167,7 +167,7 @@ msgstr ""
|
|
167 |
msgid "Thumbnail"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: dist/visual-portfolio/classes/class-admin.php:559, dist/visual-portfolio/classes/class-admin.php:
|
171 |
msgid "Shortcode"
|
172 |
msgstr ""
|
173 |
|
@@ -175,7 +175,7 @@ msgstr ""
|
|
175 |
msgid "Tiles"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: dist/visual-portfolio/classes/class-admin.php:630
|
179 |
msgid "Type"
|
180 |
msgstr ""
|
181 |
|
@@ -183,472 +183,472 @@ msgstr ""
|
|
183 |
msgid "Select tiles type"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
187 |
msgid "Masonry"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
191 |
msgid "Columns"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
195 |
msgid "Justified"
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
199 |
msgid "Row height"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
203 |
msgid "Row height tolerance"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
207 |
msgid "Slider"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
211 |
msgid "Effect"
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
215 |
msgid "Slide"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
219 |
msgid "Coverflow"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
223 |
msgid "Fade"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
227 |
msgid "Speed (seconds)"
|
228 |
msgstr ""
|
229 |
|
230 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
231 |
msgid "Autoplay (seconds)"
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
235 |
msgid "Items height"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
239 |
msgid "Auto"
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
243 |
msgid "Static (px)"
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
247 |
msgid "Dynamic (%)"
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
251 |
msgid "Slides per view"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
255 |
msgid "Custom"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
259 |
msgid "Centered slides"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
263 |
msgid "Loop"
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
267 |
msgid "Free scroll"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
271 |
msgid "Show arrows"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
275 |
msgid "Prev arrow icon"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
279 |
msgid "Next arrow icon"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
283 |
msgid "Show bullets"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
287 |
msgid "Dynamic bullets"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
291 |
msgid "Gap"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
295 |
msgid "Items per page"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
299 |
msgid "Stretch"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
303 |
msgid "Break container and display it wide"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
307 |
msgid "Default"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
311 |
msgid "Fly"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
315 |
msgid "Overlay background color"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
319 |
msgid "Overlay text color"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
323 |
msgid "Emerge"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
327 |
msgid "Show title"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
331 |
msgid "Show categories"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
335 |
msgid "Categories count"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
339 |
msgid "Show date"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
343 |
msgid "False"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
347 |
msgid "Show"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
351 |
msgid "Human Format"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
355 |
msgid ""
|
356 |
"Date format
|
357 |
" Example: F j, Y"
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
361 |
msgid "Show excerpt"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
365 |
msgid "Excerpt words count"
|
366 |
msgstr ""
|
367 |
|
368 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
369 |
msgid "Show icon"
|
370 |
msgstr ""
|
371 |
|
372 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
373 |
msgid "Standard icon"
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
377 |
msgid "Video icon"
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
381 |
msgid "Caption align"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
385 |
msgid "Disabled"
|
386 |
msgstr ""
|
387 |
|
388 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
389 |
msgid "URL"
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
393 |
msgid "Popup Gallery"
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
397 |
msgid "Align"
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
401 |
msgid "Center"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
405 |
msgid "Left"
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
409 |
msgid "Right"
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
413 |
msgid "Show count"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
417 |
msgid "Paged"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
421 |
msgid "Load More"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
425 |
msgid "Infinite"
|
426 |
msgstr ""
|
427 |
|
428 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
429 |
msgid "Note: you will see the \"Load More\" pagination in the preview. \"Infinite\" pagination will be visible on the site."
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
433 |
msgid "Show numbers"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
437 |
msgid "Data source"
|
438 |
msgstr ""
|
439 |
|
440 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
441 |
msgid "Specific posts"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
445 |
msgid "Excluded posts"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
449 |
msgid "Custom query"
|
450 |
msgstr ""
|
451 |
|
452 |
#. translators: %1$s - escaped url.
|
453 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
454 |
msgid "Build custom query according to <a href=\"%1$s\">WordPress Codex</a>."
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
458 |
msgid "Taxonomies"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
462 |
msgid "Taxonomies relation"
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
466 |
msgid "OR"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
470 |
msgid "AND"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
474 |
msgid "Order by"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
478 |
msgid "Date"
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
482 |
msgid "Title"
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
486 |
msgid "ID"
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
490 |
msgid "Random"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
494 |
msgid "Order direction"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
498 |
msgid "DESC"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
502 |
msgid "ASC"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
506 |
msgid "Name & Shortcode"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
510 |
msgid "Layout"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
514 |
msgid "Items Style"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
518 |
msgid "Items Click Action"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
522 |
msgid "Filter"
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
526 |
msgid "Pagination"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
530 |
msgid "Preview"
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
534 |
msgid "Content Source"
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
538 |
msgid "Custom CSS"
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
542 |
msgid "Name"
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
546 |
msgid "Place the shortcode where you want to show the portfolio list."
|
547 |
msgstr ""
|
548 |
|
549 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
550 |
msgid "Filter Shortcode"
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
554 |
msgid "Place the shortcode where you want to show the filter."
|
555 |
msgstr ""
|
556 |
|
557 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
558 |
msgid "Portfolio"
|
559 |
msgstr ""
|
560 |
|
561 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
562 |
msgid "Post-Based"
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
566 |
msgid "Images"
|
567 |
msgstr ""
|
568 |
|
569 |
#. translators: %1$s - escaped url.
|
570 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
571 |
msgid "Portfolio items list from <a href=\"%1$s\" target=\"_blank\">%2$s</a>"
|
572 |
msgstr ""
|
573 |
|
574 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
575 |
msgid "Available classes:"
|
576 |
msgstr ""
|
577 |
|
578 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
579 |
msgid " - use this classname for each styles you added. It is the main Visual Portfolio wrapper."
|
580 |
msgstr ""
|
581 |
|
582 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
583 |
msgid " - items wrapper."
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
587 |
msgid " - single item wrapper."
|
588 |
msgstr ""
|
589 |
|
590 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
591 |
msgid " - filter wrapper."
|
592 |
msgstr ""
|
593 |
|
594 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
595 |
msgid " - pagination wrapper."
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
599 |
msgid "Specific Posts"
|
600 |
msgstr ""
|
601 |
|
602 |
-
#: dist/visual-portfolio/classes/class-admin.php:
|
603 |
msgid "Custom Query"
|
604 |
msgstr ""
|
605 |
|
606 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
607 |
msgid "Top"
|
608 |
msgstr ""
|
609 |
|
610 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
611 |
msgid "Bottom"
|
612 |
msgstr ""
|
613 |
|
614 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
615 |
msgid "Description"
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
619 |
msgid "Format"
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
623 |
msgid "Standard"
|
624 |
msgstr ""
|
625 |
|
626 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
627 |
msgid "Video URL"
|
628 |
msgstr ""
|
629 |
|
630 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
631 |
msgid "https://..."
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
635 |
msgid "By default used full image url, you can use custom one"
|
636 |
msgstr ""
|
637 |
|
638 |
-
#: dist/visual-portfolio/classes/class-controls.php:
|
639 |
msgid "Edit"
|
640 |
msgstr ""
|
641 |
|
642 |
-
#: dist/visual-portfolio/classes/class-get-portfolio.php:
|
643 |
msgid "No items found."
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: dist/visual-portfolio/classes/class-get-portfolio.php:
|
647 |
msgid "All"
|
648 |
msgstr ""
|
649 |
|
650 |
#. translators: %s - published in human format.
|
651 |
-
#: dist/visual-portfolio/classes/class-get-portfolio.php:
|
652 |
msgid "%s ago"
|
653 |
msgstr ""
|
654 |
|
15 |
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
|
18 |
+
#: dist/visual-portfolio/class-visual-portfolio.php:280
|
19 |
msgid "Small (VP)"
|
20 |
msgstr ""
|
21 |
|
22 |
+
#: dist/visual-portfolio/class-visual-portfolio.php:281
|
23 |
msgid "Medium (VP)"
|
24 |
msgstr ""
|
25 |
|
26 |
+
#: dist/visual-portfolio/class-visual-portfolio.php:282
|
27 |
msgid "Large (VP)"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: dist/visual-portfolio/class-visual-portfolio.php:283
|
31 |
msgid "Extra Large (VP)"
|
32 |
msgstr ""
|
33 |
|
101 |
msgid "Portfolio Categories"
|
102 |
msgstr ""
|
103 |
|
104 |
+
#: dist/visual-portfolio/classes/class-admin.php:238, dist/visual-portfolio/classes/class-controls.php:590
|
105 |
msgid "Categories"
|
106 |
msgstr ""
|
107 |
|
147 |
msgid "Search Portfolio Layout"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: dist/visual-portfolio/classes/class-admin.php:337, dist/visual-portfolio/classes/class-controls.php:602
|
151 |
msgid "Video"
|
152 |
msgstr ""
|
153 |
|
167 |
msgid "Thumbnail"
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: dist/visual-portfolio/classes/class-admin.php:559, dist/visual-portfolio/classes/class-admin.php:2053
|
171 |
msgid "Shortcode"
|
172 |
msgstr ""
|
173 |
|
175 |
msgid "Tiles"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: dist/visual-portfolio/classes/class-admin.php:630, dist/visual-portfolio/classes/class-admin.php:1560
|
179 |
msgid "Type"
|
180 |
msgstr ""
|
181 |
|
183 |
msgid "Select tiles type"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: dist/visual-portfolio/classes/class-admin.php:750
|
187 |
msgid "Masonry"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: dist/visual-portfolio/classes/class-admin.php:754
|
191 |
msgid "Columns"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: dist/visual-portfolio/classes/class-admin.php:765
|
195 |
msgid "Justified"
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: dist/visual-portfolio/classes/class-admin.php:769
|
199 |
msgid "Row height"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: dist/visual-portfolio/classes/class-admin.php:777
|
203 |
msgid "Row height tolerance"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: dist/visual-portfolio/classes/class-admin.php:789
|
207 |
msgid "Slider"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: dist/visual-portfolio/classes/class-admin.php:793
|
211 |
msgid "Effect"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: dist/visual-portfolio/classes/class-admin.php:797
|
215 |
msgid "Slide"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: dist/visual-portfolio/classes/class-admin.php:798
|
219 |
msgid "Coverflow"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: dist/visual-portfolio/classes/class-admin.php:799, dist/visual-portfolio/classes/class-admin.php:1157
|
223 |
msgid "Fade"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: dist/visual-portfolio/classes/class-admin.php:804
|
227 |
msgid "Speed (seconds)"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: dist/visual-portfolio/classes/class-admin.php:813
|
231 |
msgid "Autoplay (seconds)"
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: dist/visual-portfolio/classes/class-admin.php:822
|
235 |
msgid "Items height"
|
236 |
msgstr ""
|
237 |
|
238 |
+
#: dist/visual-portfolio/classes/class-admin.php:826, dist/visual-portfolio/classes/class-admin.php:865
|
239 |
msgid "Auto"
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: dist/visual-portfolio/classes/class-admin.php:827
|
243 |
msgid "Static (px)"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: dist/visual-portfolio/classes/class-admin.php:828
|
247 |
msgid "Dynamic (%)"
|
248 |
msgstr ""
|
249 |
|
250 |
+
#: dist/visual-portfolio/classes/class-admin.php:861
|
251 |
msgid "Slides per view"
|
252 |
msgstr ""
|
253 |
|
254 |
+
#: dist/visual-portfolio/classes/class-admin.php:866
|
255 |
msgid "Custom"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: dist/visual-portfolio/classes/class-admin.php:897
|
259 |
msgid "Centered slides"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: dist/visual-portfolio/classes/class-admin.php:910
|
263 |
msgid "Loop"
|
264 |
msgstr ""
|
265 |
|
266 |
+
#: dist/visual-portfolio/classes/class-admin.php:916
|
267 |
msgid "Free scroll"
|
268 |
msgstr ""
|
269 |
|
270 |
+
#: dist/visual-portfolio/classes/class-admin.php:922, dist/visual-portfolio/classes/class-admin.php:1628, dist/visual-portfolio/classes/class-settings.php:139
|
271 |
msgid "Show arrows"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: dist/visual-portfolio/classes/class-admin.php:930, dist/visual-portfolio/classes/class-admin.php:931, dist/visual-portfolio/classes/class-admin.php:1650, dist/visual-portfolio/classes/class-admin.php:1651
|
275 |
msgid "Prev arrow icon"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: dist/visual-portfolio/classes/class-admin.php:943, dist/visual-portfolio/classes/class-admin.php:944, dist/visual-portfolio/classes/class-admin.php:1675, dist/visual-portfolio/classes/class-admin.php:1676
|
279 |
msgid "Next arrow icon"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: dist/visual-portfolio/classes/class-admin.php:954
|
283 |
msgid "Show bullets"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: dist/visual-portfolio/classes/class-admin.php:960
|
287 |
msgid "Dynamic bullets"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: dist/visual-portfolio/classes/class-admin.php:1023
|
291 |
msgid "Gap"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: dist/visual-portfolio/classes/class-admin.php:1035
|
295 |
msgid "Items per page"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: dist/visual-portfolio/classes/class-admin.php:1047
|
299 |
msgid "Stretch"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: dist/visual-portfolio/classes/class-admin.php:1050
|
303 |
msgid "Break container and display it wide"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: dist/visual-portfolio/classes/class-admin.php:1061, dist/visual-portfolio/classes/class-admin.php:1405, dist/visual-portfolio/classes/class-admin.php:1506
|
307 |
msgid "Default"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: dist/visual-portfolio/classes/class-admin.php:1075
|
311 |
msgid "Fly"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: dist/visual-portfolio/classes/class-admin.php:1087, dist/visual-portfolio/classes/class-admin.php:1128, dist/visual-portfolio/classes/class-admin.php:1169
|
315 |
msgid "Overlay background color"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: dist/visual-portfolio/classes/class-admin.php:1100, dist/visual-portfolio/classes/class-admin.php:1141, dist/visual-portfolio/classes/class-admin.php:1182
|
319 |
msgid "Overlay text color"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: dist/visual-portfolio/classes/class-admin.php:1116
|
323 |
msgid "Emerge"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: dist/visual-portfolio/classes/class-admin.php:1224
|
327 |
msgid "Show title"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: dist/visual-portfolio/classes/class-admin.php:1232
|
331 |
msgid "Show categories"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: dist/visual-portfolio/classes/class-admin.php:1238
|
335 |
msgid "Categories count"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: dist/visual-portfolio/classes/class-admin.php:1253
|
339 |
msgid "Show date"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: dist/visual-portfolio/classes/class-admin.php:1257
|
343 |
msgid "False"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: dist/visual-portfolio/classes/class-admin.php:1258
|
347 |
msgid "Show"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: dist/visual-portfolio/classes/class-admin.php:1259
|
351 |
msgid "Human Format"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: dist/visual-portfolio/classes/class-admin.php:1267
|
355 |
msgid ""
|
356 |
"Date format
|
357 |
" Example: F j, Y"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: dist/visual-portfolio/classes/class-admin.php:1279
|
361 |
msgid "Show excerpt"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: dist/visual-portfolio/classes/class-admin.php:1285
|
365 |
msgid "Excerpt words count"
|
366 |
msgstr ""
|
367 |
|
368 |
+
#: dist/visual-portfolio/classes/class-admin.php:1300
|
369 |
msgid "Show icon"
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: dist/visual-portfolio/classes/class-admin.php:1308, dist/visual-portfolio/classes/class-admin.php:1309
|
373 |
msgid "Standard icon"
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: dist/visual-portfolio/classes/class-admin.php:1321, dist/visual-portfolio/classes/class-admin.php:1322
|
377 |
msgid "Video icon"
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: dist/visual-portfolio/classes/class-admin.php:1334
|
381 |
msgid "Caption align"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: dist/visual-portfolio/classes/class-admin.php:1387, dist/visual-portfolio/classes/class-admin.php:1399, dist/visual-portfolio/classes/class-admin.php:1500
|
385 |
msgid "Disabled"
|
386 |
msgstr ""
|
387 |
|
388 |
+
#: dist/visual-portfolio/classes/class-admin.php:1388, dist/visual-portfolio/classes/class-controls.php:619
|
389 |
msgid "URL"
|
390 |
msgstr ""
|
391 |
|
392 |
+
#: dist/visual-portfolio/classes/class-admin.php:1389, dist/visual-portfolio/classes/class-settings.php:104
|
393 |
msgid "Popup Gallery"
|
394 |
msgstr ""
|
395 |
|
396 |
+
#: dist/visual-portfolio/classes/class-admin.php:1460, dist/visual-portfolio/classes/class-admin.php:1602
|
397 |
msgid "Align"
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: dist/visual-portfolio/classes/class-admin.php:1464, dist/visual-portfolio/classes/class-admin.php:1606, dist/visual-portfolio/classes/class-controls.php:529, dist/visual-portfolio/classes/class-controls.php:538, dist/visual-portfolio/classes/class-controls.php:542, dist/visual-portfolio/classes/class-controls.php:555
|
401 |
msgid "Center"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: dist/visual-portfolio/classes/class-admin.php:1465, dist/visual-portfolio/classes/class-admin.php:1607, dist/visual-portfolio/classes/class-controls.php:532, dist/visual-portfolio/classes/class-controls.php:545, dist/visual-portfolio/classes/class-controls.php:558
|
405 |
msgid "Left"
|
406 |
msgstr ""
|
407 |
|
408 |
+
#: dist/visual-portfolio/classes/class-admin.php:1466, dist/visual-portfolio/classes/class-admin.php:1608, dist/visual-portfolio/classes/class-controls.php:535, dist/visual-portfolio/classes/class-controls.php:548, dist/visual-portfolio/classes/class-controls.php:561
|
409 |
msgid "Right"
|
410 |
msgstr ""
|
411 |
|
412 |
+
#: dist/visual-portfolio/classes/class-admin.php:1481
|
413 |
msgid "Show count"
|
414 |
msgstr ""
|
415 |
|
416 |
+
#: dist/visual-portfolio/classes/class-admin.php:1565
|
417 |
msgid "Paged"
|
418 |
msgstr ""
|
419 |
|
420 |
+
#: dist/visual-portfolio/classes/class-admin.php:1566, dist/visual-portfolio/templates/items-list/pagination/infinite.php:18
|
421 |
msgid "Load More"
|
422 |
msgstr ""
|
423 |
|
424 |
+
#: dist/visual-portfolio/classes/class-admin.php:1567
|
425 |
msgid "Infinite"
|
426 |
msgstr ""
|
427 |
|
428 |
+
#: dist/visual-portfolio/classes/class-admin.php:1582
|
429 |
msgid "Note: you will see the \"Load More\" pagination in the preview. \"Infinite\" pagination will be visible on the site."
|
430 |
msgstr ""
|
431 |
|
432 |
+
#: dist/visual-portfolio/classes/class-admin.php:1698
|
433 |
msgid "Show numbers"
|
434 |
msgstr ""
|
435 |
|
436 |
+
#: dist/visual-portfolio/classes/class-admin.php:1762
|
437 |
msgid "Data source"
|
438 |
msgstr ""
|
439 |
|
440 |
+
#: dist/visual-portfolio/classes/class-admin.php:1774
|
441 |
msgid "Specific posts"
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: dist/visual-portfolio/classes/class-admin.php:1795
|
445 |
msgid "Excluded posts"
|
446 |
msgstr ""
|
447 |
|
448 |
+
#: dist/visual-portfolio/classes/class-admin.php:1823
|
449 |
msgid "Custom query"
|
450 |
msgstr ""
|
451 |
|
452 |
#. translators: %1$s - escaped url.
|
453 |
+
#: dist/visual-portfolio/classes/class-admin.php:1825
|
454 |
msgid "Build custom query according to <a href=\"%1$s\">WordPress Codex</a>."
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: dist/visual-portfolio/classes/class-admin.php:1851
|
458 |
msgid "Taxonomies"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: dist/visual-portfolio/classes/class-admin.php:1878
|
462 |
msgid "Taxonomies relation"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: dist/visual-portfolio/classes/class-admin.php:1882
|
466 |
msgid "OR"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: dist/visual-portfolio/classes/class-admin.php:1883
|
470 |
msgid "AND"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: dist/visual-portfolio/classes/class-admin.php:1904
|
474 |
msgid "Order by"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: dist/visual-portfolio/classes/class-admin.php:1908
|
478 |
msgid "Date"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: dist/visual-portfolio/classes/class-admin.php:1909, dist/visual-portfolio/classes/class-controls.php:580
|
482 |
msgid "Title"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: dist/visual-portfolio/classes/class-admin.php:1910
|
486 |
msgid "ID"
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: dist/visual-portfolio/classes/class-admin.php:1911
|
490 |
msgid "Random"
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: dist/visual-portfolio/classes/class-admin.php:1920
|
494 |
msgid "Order direction"
|
495 |
msgstr ""
|
496 |
|
497 |
+
#: dist/visual-portfolio/classes/class-admin.php:1924
|
498 |
msgid "DESC"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: dist/visual-portfolio/classes/class-admin.php:1925
|
502 |
msgid "ASC"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: dist/visual-portfolio/classes/class-admin.php:1960
|
506 |
msgid "Name & Shortcode"
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: dist/visual-portfolio/classes/class-admin.php:1968
|
510 |
msgid "Layout"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: dist/visual-portfolio/classes/class-admin.php:1976
|
514 |
msgid "Items Style"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: dist/visual-portfolio/classes/class-admin.php:1984
|
518 |
msgid "Items Click Action"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: dist/visual-portfolio/classes/class-admin.php:1992
|
522 |
msgid "Filter"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: dist/visual-portfolio/classes/class-admin.php:2000
|
526 |
msgid "Pagination"
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: dist/visual-portfolio/classes/class-admin.php:2009
|
530 |
msgid "Preview"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: dist/visual-portfolio/classes/class-admin.php:2017
|
534 |
msgid "Content Source"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: dist/visual-portfolio/classes/class-admin.php:2025
|
538 |
msgid "Custom CSS"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: dist/visual-portfolio/classes/class-admin.php:2044
|
542 |
msgid "Name"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: dist/visual-portfolio/classes/class-admin.php:2054
|
546 |
msgid "Place the shortcode where you want to show the portfolio list."
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: dist/visual-portfolio/classes/class-admin.php:2120
|
550 |
msgid "Filter Shortcode"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: dist/visual-portfolio/classes/class-admin.php:2121
|
554 |
msgid "Place the shortcode where you want to show the filter."
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: dist/visual-portfolio/classes/class-admin.php:2188
|
558 |
msgid "Portfolio"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: dist/visual-portfolio/classes/class-admin.php:2194
|
562 |
msgid "Post-Based"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: dist/visual-portfolio/classes/class-admin.php:2200
|
566 |
msgid "Images"
|
567 |
msgstr ""
|
568 |
|
569 |
#. translators: %1$s - escaped url.
|
570 |
+
#: dist/visual-portfolio/classes/class-admin.php:2219
|
571 |
msgid "Portfolio items list from <a href=\"%1$s\" target=\"_blank\">%2$s</a>"
|
572 |
msgstr ""
|
573 |
|
574 |
+
#: dist/visual-portfolio/classes/class-admin.php:2255
|
575 |
msgid "Available classes:"
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: dist/visual-portfolio/classes/class-admin.php:2258
|
579 |
msgid " - use this classname for each styles you added. It is the main Visual Portfolio wrapper."
|
580 |
msgstr ""
|
581 |
|
582 |
+
#: dist/visual-portfolio/classes/class-admin.php:2259
|
583 |
msgid " - items wrapper."
|
584 |
msgstr ""
|
585 |
|
586 |
+
#: dist/visual-portfolio/classes/class-admin.php:2260
|
587 |
msgid " - single item wrapper."
|
588 |
msgstr ""
|
589 |
|
590 |
+
#: dist/visual-portfolio/classes/class-admin.php:2261
|
591 |
msgid " - filter wrapper."
|
592 |
msgstr ""
|
593 |
|
594 |
+
#: dist/visual-portfolio/classes/class-admin.php:2262
|
595 |
msgid " - pagination wrapper."
|
596 |
msgstr ""
|
597 |
|
598 |
+
#: dist/visual-portfolio/classes/class-admin.php:2322
|
599 |
msgid "Specific Posts"
|
600 |
msgstr ""
|
601 |
|
602 |
+
#: dist/visual-portfolio/classes/class-admin.php:2323
|
603 |
msgid "Custom Query"
|
604 |
msgstr ""
|
605 |
|
606 |
+
#: dist/visual-portfolio/classes/class-controls.php:527
|
607 |
msgid "Top"
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: dist/visual-portfolio/classes/class-controls.php:553
|
611 |
msgid "Bottom"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: dist/visual-portfolio/classes/class-controls.php:585
|
615 |
msgid "Description"
|
616 |
msgstr ""
|
617 |
|
618 |
+
#: dist/visual-portfolio/classes/class-controls.php:597
|
619 |
msgid "Format"
|
620 |
msgstr ""
|
621 |
|
622 |
+
#: dist/visual-portfolio/classes/class-controls.php:601
|
623 |
msgid "Standard"
|
624 |
msgstr ""
|
625 |
|
626 |
+
#: dist/visual-portfolio/classes/class-controls.php:607
|
627 |
msgid "Video URL"
|
628 |
msgstr ""
|
629 |
|
630 |
+
#: dist/visual-portfolio/classes/class-controls.php:608, dist/visual-portfolio/classes/class-controls.php:621
|
631 |
msgid "https://..."
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: dist/visual-portfolio/classes/class-controls.php:620
|
635 |
msgid "By default used full image url, you can use custom one"
|
636 |
msgstr ""
|
637 |
|
638 |
+
#: dist/visual-portfolio/classes/class-controls.php:638
|
639 |
msgid "Edit"
|
640 |
msgstr ""
|
641 |
|
642 |
+
#: dist/visual-portfolio/classes/class-get-portfolio.php:192
|
643 |
msgid "No items found."
|
644 |
msgstr ""
|
645 |
|
646 |
+
#: dist/visual-portfolio/classes/class-get-portfolio.php:958
|
647 |
msgid "All"
|
648 |
msgstr ""
|
649 |
|
650 |
#. translators: %s - published in human format.
|
651 |
+
#: dist/visual-portfolio/classes/class-get-portfolio.php:1043
|
652 |
msgid "%s ago"
|
653 |
msgstr ""
|
654 |
|
readme.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Requires at least: 4.0.0
|
5 |
* Tested up to: 4.9
|
6 |
* Requires PHP: 5.4
|
7 |
-
* Stable tag: 1.
|
8 |
* License: GPLv2 or later
|
9 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -53,8 +53,8 @@ See **Online Demo** here - [https://demo.nkdev.info/#visual-portfolio](https://d
|
|
53 |
|
54 |
## Real Examples ##
|
55 |
|
56 |
-
[Piroll - Portfolio Theme](https://demo.nkdev.info/#piroll)
|
57 |
-
[Snow - Portfolio Theme](https://demo.nkdev.info/#snow)
|
58 |
|
59 |
|
60 |
|
@@ -105,6 +105,7 @@ Available filters:
|
|
105 |
* **vpf_enqueue_plugin_photoswipe**
|
106 |
* **vpf_enqueue_plugin_swiper**
|
107 |
* **vpf_enqueue_plugin_font_awesome**
|
|
|
108 |
|
109 |
Note: some functionality depends on these plugins and you may break the portfolio.
|
110 |
|
@@ -191,9 +192,26 @@ Available events:
|
|
191 |
|
192 |
Note: Make sure that you added template in **your_theme/visual-portfolio/items-list/filter/new_filter**. See the structure of default templates to getting started.
|
193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
194 |
### DEV: Controls. ####
|
195 |
|
196 |
-
These controls you can use in
|
197 |
|
198 |
* The list of options, that available in all controls:
|
199 |
|
@@ -223,6 +241,14 @@ These controls you can use in filters to extend Portfolio options (read **DEV: W
|
|
223 |
* 'value' - condition value.
|
224 |
*/
|
225 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
|
227 |
'class' => '',
|
228 |
'wrapper_class' => '',
|
@@ -363,18 +389,58 @@ Available events:
|
|
363 |
* **addStyle.vpf** [ selector, styles, media, stylesList ] - called after added new custom styles.
|
364 |
* **removeStyle.vpf** [ selector, styles, stylesList ] - called after removed custom styles.
|
365 |
* **renderStyle.vpf** [ stylesString, stylesList, $style ] - called after rendered custom styles.
|
366 |
-
* **imagesLoaded.vpf** - called after images loaded.
|
367 |
* **initIsotope.vpf** - called after Isotope inited.
|
368 |
* **destroyIsotope.vpf** - called after Isotope destroyed.
|
369 |
* **initFjGallery.vpf** - called after fjGallery inited.
|
370 |
* **destroyFjGallery.vpf** - called after fjGallery destroyed.
|
371 |
|
372 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
|
374 |
|
375 |
|
376 |
## Changelog ##
|
377 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
= 1.5.0 =
|
379 |
* added Slider (+ Carousel, Coverflow) layout
|
380 |
* added capabilities check when generated preview page
|
4 |
* Requires at least: 4.0.0
|
5 |
* Tested up to: 4.9
|
6 |
* Requires PHP: 5.4
|
7 |
+
* Stable tag: 1.6.0
|
8 |
* License: GPLv2 or later
|
9 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
53 |
|
54 |
## Real Examples ##
|
55 |
|
56 |
+
* [Piroll - Portfolio Theme](https://demo.nkdev.info/#piroll)
|
57 |
+
* [Snow - Portfolio Theme](https://demo.nkdev.info/#snow)
|
58 |
|
59 |
|
60 |
|
105 |
* **vpf_enqueue_plugin_photoswipe**
|
106 |
* **vpf_enqueue_plugin_swiper**
|
107 |
* **vpf_enqueue_plugin_font_awesome**
|
108 |
+
* **vpf_enqueue_plugin_font_lazysizes**
|
109 |
|
110 |
Note: some functionality depends on these plugins and you may break the portfolio.
|
111 |
|
192 |
|
193 |
Note: Make sure that you added template in **your_theme/visual-portfolio/items-list/filter/new_filter**. See the structure of default templates to getting started.
|
194 |
|
195 |
+
* **vpf_extend_pagination** [ $pagination ] - custom pagination.
|
196 |
+
|
197 |
+
add_filter( 'vpf_extend_pagination', 'my_pagination_vpf_extend_pagination' );
|
198 |
+
|
199 |
+
function my_pagination_vpf_extend_pagination( $pagination ) {
|
200 |
+
return array_merge( $pagination, array(
|
201 |
+
'new_pagination' => array(
|
202 |
+
'title' => esc_html__( 'New Pagination', 'visual-portfolio' ),
|
203 |
+
'controls' => array(
|
204 |
+
... controls (read below) ...
|
205 |
+
),
|
206 |
+
),
|
207 |
+
) );
|
208 |
+
}
|
209 |
+
|
210 |
+
Note: Make sure that you added template in **your_theme/visual-portfolio/items-list/pagination/new_pagination**. See the structure of default templates to getting started.
|
211 |
+
|
212 |
### DEV: Controls. ####
|
213 |
|
214 |
+
These controls you can use in filers to extend Portfolio options (read **DEV: WP filters.** in FAQ).
|
215 |
|
216 |
* The list of options, that available in all controls:
|
217 |
|
241 |
* 'value' - condition value.
|
242 |
*/
|
243 |
),
|
244 |
+
|
245 |
+
// custom styles.
|
246 |
+
'style' => array(
|
247 |
+
array(
|
248 |
+
'element' => '.vp-portfolio__item-overlay',
|
249 |
+
'property' => 'background-color',
|
250 |
+
),
|
251 |
+
),
|
252 |
|
253 |
'class' => '',
|
254 |
'wrapper_class' => '',
|
389 |
* **addStyle.vpf** [ selector, styles, media, stylesList ] - called after added new custom styles.
|
390 |
* **removeStyle.vpf** [ selector, styles, stylesList ] - called after removed custom styles.
|
391 |
* **renderStyle.vpf** [ stylesString, stylesList, $style ] - called after rendered custom styles.
|
|
|
392 |
* **initIsotope.vpf** - called after Isotope inited.
|
393 |
* **destroyIsotope.vpf** - called after Isotope destroyed.
|
394 |
* **initFjGallery.vpf** - called after fjGallery inited.
|
395 |
* **destroyFjGallery.vpf** - called after fjGallery destroyed.
|
396 |
|
397 |
|
398 |
+
### DEV: jQuery methods. ####
|
399 |
+
|
400 |
+
Sometimes you may need to call Visual Portfolio methods manually, for example when you use AJAX page load, you will need to reinitialize portfolio, so you can use public methods. Example:
|
401 |
+
|
402 |
+
// Initialize.
|
403 |
+
$( '.vp-portfolio' ).vpf();
|
404 |
+
|
405 |
+
// Destroy.
|
406 |
+
$( '.vp-portfolio' ).vpf( 'destroy' );
|
407 |
+
|
408 |
+
Available methods:
|
409 |
+
|
410 |
+
* **init** - init/reinit portfolio
|
411 |
+
* **destroy** - destroy portfolio
|
412 |
+
* **resized** - portfolio was resized
|
413 |
+
* **addStyle** [ selector, styles, media ] - add custom styles to the current portfolio
|
414 |
+
* **removeStyle** [ selector, styles, media ] - remove custom styles from the current portfolio
|
415 |
+
* **renderStyle** - render custom styles
|
416 |
+
* **addItems** [ $items, removeExisting ] - add new items to portfolio (called after AJAX loading)
|
417 |
+
* **removeItems** [ $items ] - remove some items from portfolio (called after AJAX loading in Paged pagination)
|
418 |
|
419 |
|
420 |
|
421 |
## Changelog ##
|
422 |
|
423 |
+
= 1.6.0 =
|
424 |
+
* NOTE: strongly recommend to regenerate thumbnails on your site using [this plugin](https://wordpress.org/plugins/regenerate-thumbnails/)
|
425 |
+
* added lazy loading for images
|
426 |
+
* added will-change styles in templates (animations should work smoother)
|
427 |
+
* added new Tiles
|
428 |
+
* added pagination paged arrows options
|
429 |
+
* added align wide and full options in Gutenberg block
|
430 |
+
* added support for custom controls styles (developers could create their own controls and add custom styles). Read FAQ for more information
|
431 |
+
* added custom control options in filter templates (helpful for developers)
|
432 |
+
* added pagination style and possibility to extend it from 3rd-party code
|
433 |
+
* added portfolio item comments number data for templates
|
434 |
+
* added 'resized' event for developers
|
435 |
+
* always enqueued main style on all pages
|
436 |
+
* changed carousel arrows shadow
|
437 |
+
* fixed validation errors (added space between data attributes)
|
438 |
+
* fixed video popup position
|
439 |
+
* fixed portfolio bugged reload in preview
|
440 |
+
* renamed nk-spinner to vp-spinner
|
441 |
+
* removed double slash in custom theme template styles urls
|
442 |
+
* removed imagesloaded usage
|
443 |
+
|
444 |
= 1.5.0 =
|
445 |
* added Slider (+ Carousel, Coverflow) layout
|
446 |
* added capabilities check when generated preview page
|
templates/items-list/filter/style.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.vp-filter__style-default{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:-3px;margin-bottom:17px;list-style-type:none}.vp-filter__style-default .vp-filter__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-filter__style-default.vp-filter__align-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.vp-filter__style-default.vp-filter__align-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.vp-filter__style-default .vp-filter__item{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding:0;margin:3px;text-align:center;list-style-type:none}.vp-filter__style-default .vp-filter__item>*{display:block;min-width:40px;padding:8px 16px;line-height:1.4;color:inherit;text-decoration:none;background-color:#fff;border:1px solid #eaeaea;-webkit-transition:.2s border-color, .2s background-color, .2s color;transition:.2s border-color, .2s background-color, .2s color}.vp-filter__style-default .vp-filter__item:not(.vp-filter__item-active)>a:hover{border:1px solid #bfbfbf}.vp-filter__style-default .vp-filter__item.vp-filter__item-active>*{color:#fff;cursor:default;background-color:#6c7781;border:1px solid #6c7781}.vp-filter__style-default .vp-filter__item .vp-filter__item-count{float:right;margin-left:8px;font-size:60%}
|
1 |
+
.vp-filter__style-default{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:-3px;margin-bottom:17px;list-style-type:none}.vp-filter__style-default .vp-filter__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-filter__style-default.vp-filter__align-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.vp-filter__style-default.vp-filter__align-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.vp-filter__style-default .vp-filter__item{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding:0;margin:3px;text-align:center;list-style-type:none}.vp-filter__style-default .vp-filter__item>*{display:block;min-width:40px;padding:8px 16px;line-height:1.4;color:inherit;text-decoration:none;background-color:#fff;border:1px solid #eaeaea;-webkit-transition:.2s border-color, .2s background-color, .2s color;transition:.2s border-color, .2s background-color, .2s color;will-change:border-color, background-color, color}.vp-filter__style-default .vp-filter__item:not(.vp-filter__item-active)>a:hover{border:1px solid #bfbfbf}.vp-filter__style-default .vp-filter__item.vp-filter__item-active>*{color:#fff;cursor:default;background-color:#6c7781;border:1px solid #6c7781}.vp-filter__style-default .vp-filter__item .vp-filter__item-count{float:right;margin-left:8px;font-size:60%}
|
templates/items-list/filter/style.scss
CHANGED
@@ -40,6 +40,7 @@
|
|
40 |
background-color: #fff;
|
41 |
border: 1px solid #eaeaea;
|
42 |
transition: .2s border-color, .2s background-color, .2s color;
|
|
|
43 |
}
|
44 |
|
45 |
&:not(.vp-filter__item-active) > a:hover {
|
40 |
background-color: #fff;
|
41 |
border: 1px solid #eaeaea;
|
42 |
transition: .2s border-color, .2s background-color, .2s color;
|
43 |
+
will-change: border-color, background-color, color;
|
44 |
}
|
45 |
|
46 |
&:not(.vp-filter__item-active) > a:hover {
|
templates/items-list/items-style/emerge/meta.php
CHANGED
@@ -13,7 +13,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
13 |
|
14 |
?>
|
15 |
|
16 |
-
<div class="vp-portfolio__item-overlay vp-portfolio__item-align-<?php echo esc_attr( $opts['align'] ); ?>"
|
17 |
<div class="vp-portfolio__item-meta">
|
18 |
<?php
|
19 |
|
13 |
|
14 |
?>
|
15 |
|
16 |
+
<div class="vp-portfolio__item-overlay vp-portfolio__item-align-<?php echo esc_attr( $opts['align'] ); ?>">
|
17 |
<div class="vp-portfolio__item-meta">
|
18 |
<?php
|
19 |
|
templates/items-list/items-style/emerge/style.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.vp-portfolio__items-style-emerge .vp-portfolio__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-overlay{position:absolute;bottom:0;left:0;width:100%;max-height:50%;padding:15px 32px;color:#000;background-color:#fff;-webkit-transition:0.5s -webkit-transform cubic-bezier(0.07, 0.72, 0.24, 1);transition:0.5s -webkit-transform cubic-bezier(0.07, 0.72, 0.24, 1);transition:0.5s transform cubic-bezier(0.07, 0.72, 0.24, 1);transition:0.5s transform cubic-bezier(0.07, 0.72, 0.24, 1), 0.5s -webkit-transform cubic-bezier(0.07, 0.72, 0.24, 1);-webkit-transform:translateY(100%);transform:translateY(100%)}.vp-portfolio__items-style-emerge .vp-portfolio__item-overlay::before{content:"";position:absolute;display:block;top:0;right:0;left:-20px;height:600%;background-color:inherit;-webkit-transition:.5s transform ease;transition:.5s transform ease;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:100% 0;transform-origin:100% 0;z-index:-1}.vp-portfolio__items-style-emerge .vp-portfolio__item-img img{-webkit-transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1), -webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1)}.vp-portfolio__items-style-emerge .vp-portfolio__item:hover .vp-portfolio__item-img img{-webkit-transform:scale(1.1);transform:scale(1.1)}.vp-portfolio__items-style-emerge .vp-portfolio__item:hover .vp-portfolio__item-overlay{-webkit-transform:translateY(0);transform:translateY(0)}.vp-portfolio__items-style-emerge .vp-portfolio__item:hover .vp-portfolio__item-overlay::before{-webkit-transform:rotate(3deg);transform:rotate(3deg)}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta *+*{margin-top:4px}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta a{color:inherit;text-decoration:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta a:hover{opacity:.8}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-title{margin-bottom:0;font-size:1.3em;color:inherit}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-date{font-size:.85em}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;bottom:100%;left:0;padding:0;margin-right:0;margin-bottom:0;margin-left:0;list-style-type:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category{padding:0;margin:0}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category a::after{content:", "}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category:last-of-type a::after{content:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-excerpt{opacity:.8}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-left{text-align:left}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-center{text-align:center}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-center .vp-portfolio__item-meta-categories{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-right{text-align:right}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-right .vp-portfolio__item-meta-categories{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
|
1 |
+
.vp-portfolio__items-style-emerge .vp-portfolio__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-overlay{position:absolute;bottom:0;left:0;width:100%;max-height:50%;padding:15px 32px;color:#000;background-color:#fff;-webkit-transition:0.5s -webkit-transform cubic-bezier(0.07, 0.72, 0.24, 1);transition:0.5s -webkit-transform cubic-bezier(0.07, 0.72, 0.24, 1);transition:0.5s transform cubic-bezier(0.07, 0.72, 0.24, 1);transition:0.5s transform cubic-bezier(0.07, 0.72, 0.24, 1), 0.5s -webkit-transform cubic-bezier(0.07, 0.72, 0.24, 1);-webkit-transform:translateY(100%);transform:translateY(100%);will-change:transform}.vp-portfolio__items-style-emerge .vp-portfolio__item-overlay::before{content:"";position:absolute;display:block;top:0;right:0;left:-20px;height:600%;background-color:inherit;-webkit-transition:.5s transform ease;transition:.5s transform ease;-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:100% 0;transform-origin:100% 0;will-change:transform;z-index:-1}.vp-portfolio__items-style-emerge .vp-portfolio__item-img img{-webkit-transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1), -webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);will-change:transform}.vp-portfolio__items-style-emerge .vp-portfolio__item:hover .vp-portfolio__item-img img{-webkit-transform:scale(1.1);transform:scale(1.1)}.vp-portfolio__items-style-emerge .vp-portfolio__item:hover .vp-portfolio__item-overlay{-webkit-transform:translateY(0);transform:translateY(0)}.vp-portfolio__items-style-emerge .vp-portfolio__item:hover .vp-portfolio__item-overlay::before{-webkit-transform:rotate(3deg);transform:rotate(3deg)}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta *+*{margin-top:4px}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta a{color:inherit;text-decoration:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta a:hover{opacity:.8}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-title{margin-bottom:0;font-size:1.3em;color:inherit}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-date{font-size:.85em}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;bottom:100%;left:0;padding:0;margin-right:0;margin-bottom:0;margin-left:0;list-style-type:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category{padding:0;margin:0}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category a::after{content:", "}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category:last-of-type a::after{content:none}.vp-portfolio__items-style-emerge .vp-portfolio__item-meta-excerpt{opacity:.8}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-left{text-align:left}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-center{text-align:center}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-center .vp-portfolio__item-meta-categories{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-right{text-align:right}.vp-portfolio__items-style-emerge .vp-portfolio__item-align-right .vp-portfolio__item-meta-categories{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
|
templates/items-list/items-style/emerge/style.scss
CHANGED
@@ -18,6 +18,7 @@
|
|
18 |
background-color: #fff;
|
19 |
transition: .5s transform cubic-bezier(.07, .72, .24, 1);
|
20 |
transform: translateY(100%);
|
|
|
21 |
|
22 |
&::before {
|
23 |
content: "";
|
@@ -31,6 +32,7 @@
|
|
31 |
transition: .5s transform ease;
|
32 |
transform: rotate(0deg);
|
33 |
transform-origin: 100% 0;
|
|
|
34 |
z-index: -1;
|
35 |
}
|
36 |
}
|
@@ -38,6 +40,7 @@
|
|
38 |
// Transitions
|
39 |
.vp-portfolio__item-img img {
|
40 |
transition: transform 2s cubic-bezier(.08, .43, .24, 1);
|
|
|
41 |
}
|
42 |
|
43 |
.vp-portfolio__item:hover {
|
18 |
background-color: #fff;
|
19 |
transition: .5s transform cubic-bezier(.07, .72, .24, 1);
|
20 |
transform: translateY(100%);
|
21 |
+
will-change: transform;
|
22 |
|
23 |
&::before {
|
24 |
content: "";
|
32 |
transition: .5s transform ease;
|
33 |
transform: rotate(0deg);
|
34 |
transform-origin: 100% 0;
|
35 |
+
will-change: transform;
|
36 |
z-index: -1;
|
37 |
}
|
38 |
}
|
40 |
// Transitions
|
41 |
.vp-portfolio__item-img img {
|
42 |
transition: transform 2s cubic-bezier(.08, .43, .24, 1);
|
43 |
+
will-change: transform;
|
44 |
}
|
45 |
|
46 |
.vp-portfolio__item:hover {
|
templates/items-list/items-style/fade/meta.php
CHANGED
@@ -21,9 +21,7 @@ if ( ! $args['url'] ) {
|
|
21 |
<?php if ( $args['url'] ) : ?>
|
22 |
href="<?php echo esc_url( $args['url'] ); ?>"
|
23 |
<?php endif; ?>
|
24 |
-
class="vp-portfolio__item-overlay vp-portfolio__item-align-<?php echo esc_attr( $opts['align'] ); ?>"
|
25 |
-
data-vp-bg-color="<?php echo esc_attr( $opts['bg_color'] ); ?>"
|
26 |
-
data-vp-text-color="<?php echo esc_attr( $opts['text_color'] ); ?>">
|
27 |
<div class="vp-portfolio__item-meta">
|
28 |
<?php
|
29 |
|
21 |
<?php if ( $args['url'] ) : ?>
|
22 |
href="<?php echo esc_url( $args['url'] ); ?>"
|
23 |
<?php endif; ?>
|
24 |
+
class="vp-portfolio__item-overlay vp-portfolio__item-align-<?php echo esc_attr( $opts['align'] ); ?>">
|
|
|
|
|
25 |
<div class="vp-portfolio__item-meta">
|
26 |
<?php
|
27 |
|
templates/items-list/items-style/fade/style.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.vp-portfolio__items-style-fade .vp-portfolio__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-portfolio__items-style-fade .vp-portfolio__item-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:20px;color:#fff;text-decoration:none;background-color:rgba(0,0,0,0.85);opacity:0;-webkit-transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1)}.vp-portfolio__items-style-fade .vp-portfolio__item-meta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;text-align:center;-webkit-transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1),-webkit-transform 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1),-webkit-transform 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:transform 1s cubic-bezier(0.07, 0.72, 0.24, 1),opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:transform 1s cubic-bezier(0.07, 0.72, 0.24, 1),opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1),-webkit-transform 1s cubic-bezier(0.07, 0.72, 0.24, 1);-webkit-transform:scale(0.8);transform:scale(0.8)}.vp-portfolio__items-style-fade .vp-portfolio__item-meta *+*{margin-top:4px}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-title{margin-bottom:0;font-size:1.3em;color:inherit}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-date{font-size:.85em}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-icon{font-size:2em}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-icon+*{margin-top:15px}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-categories{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;bottom:0;left:0;padding:0;margin:0 -5px;list-style-type:none}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category{display:block;padding:4px 15px;margin:0 5px;color:#fff;background-color:#3c3c3c}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-excerpt{opacity:.8}.vp-portfolio__items-style-fade .vp-portfolio__item-img img{-webkit-transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1), -webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1)}.vp-portfolio__items-style-fade .vp-portfolio__item:hover .vp-portfolio__item-overlay{opacity:1}.vp-portfolio__items-style-fade .vp-portfolio__item:hover .vp-portfolio__item-meta{-webkit-transform:scale(1);transform:scale(1)}.vp-portfolio__items-style-fade .vp-portfolio__item:hover .vp-portfolio__item-img img{-webkit-transform:scale(1.1);transform:scale(1.1)}.vp-portfolio__items-style-fade .vp-portfolio__item-align-left .vp-portfolio__item-meta{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;text-align:left}.vp-portfolio__items-style-fade .vp-portfolio__item-align-right .vp-portfolio__item-meta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;text-align:right}.vp-portfolio__items-style-fade .vp-portfolio__item-align-top-center .vp-portfolio__item-meta{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:center}.vp-portfolio__items-style-fade .vp-portfolio__item-align-top-left .vp-portfolio__item-meta{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.vp-portfolio__items-style-fade .vp-portfolio__item-align-top-right .vp-portfolio__item-meta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:right}.vp-portfolio__items-style-fade .vp-portfolio__item-align-bottom-center .vp-portfolio__item-meta{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:center}.vp-portfolio__items-style-fade .vp-portfolio__item-align-bottom-left .vp-portfolio__item-meta{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:left}.vp-portfolio__items-style-fade .vp-portfolio__item-align-bottom-right .vp-portfolio__item-meta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}
|
1 |
+
.vp-portfolio__items-style-fade .vp-portfolio__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-portfolio__items-style-fade .vp-portfolio__item-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:20px;color:#fff;text-decoration:none;background-color:rgba(0,0,0,0.85);opacity:0;-webkit-transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1);will-change:opacity}.vp-portfolio__items-style-fade .vp-portfolio__item-meta{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;text-align:center;-webkit-transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1),-webkit-transform 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1),-webkit-transform 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:transform 1s cubic-bezier(0.07, 0.72, 0.24, 1),opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1);transition:transform 1s cubic-bezier(0.07, 0.72, 0.24, 1),opacity 1s cubic-bezier(0.07, 0.72, 0.24, 1),-webkit-transform 1s cubic-bezier(0.07, 0.72, 0.24, 1);-webkit-transform:scale(0.8);transform:scale(0.8);will-change:transform, opacity}.vp-portfolio__items-style-fade .vp-portfolio__item-meta *+*{margin-top:4px}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-title{margin-bottom:0;font-size:1.3em;color:inherit}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-date{font-size:.85em}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-icon{font-size:2em}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-icon+*{margin-top:15px}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-categories{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;bottom:0;left:0;padding:0;margin:0 -5px;list-style-type:none}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category{display:block;padding:4px 15px;margin:0 5px;color:#fff;background-color:#3c3c3c}.vp-portfolio__items-style-fade .vp-portfolio__item-meta-excerpt{opacity:.8}.vp-portfolio__items-style-fade .vp-portfolio__item-img img{-webkit-transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1), -webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);will-change:transform}.vp-portfolio__items-style-fade .vp-portfolio__item:hover .vp-portfolio__item-overlay{opacity:1}.vp-portfolio__items-style-fade .vp-portfolio__item:hover .vp-portfolio__item-meta{-webkit-transform:scale(1);transform:scale(1)}.vp-portfolio__items-style-fade .vp-portfolio__item:hover .vp-portfolio__item-img img{-webkit-transform:scale(1.1);transform:scale(1.1)}.vp-portfolio__items-style-fade .vp-portfolio__item-align-left .vp-portfolio__item-meta{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;text-align:left}.vp-portfolio__items-style-fade .vp-portfolio__item-align-right .vp-portfolio__item-meta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;text-align:right}.vp-portfolio__items-style-fade .vp-portfolio__item-align-top-center .vp-portfolio__item-meta{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:center}.vp-portfolio__items-style-fade .vp-portfolio__item-align-top-left .vp-portfolio__item-meta{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:left}.vp-portfolio__items-style-fade .vp-portfolio__item-align-top-right .vp-portfolio__item-meta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;text-align:right}.vp-portfolio__items-style-fade .vp-portfolio__item-align-bottom-center .vp-portfolio__item-meta{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:center}.vp-portfolio__items-style-fade .vp-portfolio__item-align-bottom-left .vp-portfolio__item-meta{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:left}.vp-portfolio__items-style-fade .vp-portfolio__item-align-bottom-right .vp-portfolio__item-meta{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;text-align:right}
|
templates/items-list/items-style/fade/style.scss
CHANGED
@@ -19,6 +19,7 @@
|
|
19 |
background-color: rgba(0, 0, 0, .85);
|
20 |
opacity: 0;
|
21 |
transition: opacity 1s cubic-bezier(.07, .72, .24, 1);
|
|
|
22 |
}
|
23 |
|
24 |
// meta
|
@@ -34,6 +35,7 @@
|
|
34 |
text-align: center;
|
35 |
transition: transform 1s cubic-bezier(.07, .72, .24, 1), opacity 1s cubic-bezier(.07, .72, .24, 1);
|
36 |
transform: scale(.8);
|
|
|
37 |
|
38 |
* + * {
|
39 |
margin-top: 4px;
|
@@ -79,6 +81,7 @@
|
|
79 |
// Transitions
|
80 |
.vp-portfolio__item-img img {
|
81 |
transition: transform 2s cubic-bezier(.08, .43, .24, 1);
|
|
|
82 |
}
|
83 |
& .vp-portfolio__item:hover {
|
84 |
.vp-portfolio__item-overlay {
|
19 |
background-color: rgba(0, 0, 0, .85);
|
20 |
opacity: 0;
|
21 |
transition: opacity 1s cubic-bezier(.07, .72, .24, 1);
|
22 |
+
will-change: opacity;
|
23 |
}
|
24 |
|
25 |
// meta
|
35 |
text-align: center;
|
36 |
transition: transform 1s cubic-bezier(.07, .72, .24, 1), opacity 1s cubic-bezier(.07, .72, .24, 1);
|
37 |
transform: scale(.8);
|
38 |
+
will-change: transform, opacity;
|
39 |
|
40 |
* + * {
|
41 |
margin-top: 4px;
|
81 |
// Transitions
|
82 |
.vp-portfolio__item-img img {
|
83 |
transition: transform 2s cubic-bezier(.08, .43, .24, 1);
|
84 |
+
will-change: transform;
|
85 |
}
|
86 |
& .vp-portfolio__item:hover {
|
87 |
.vp-portfolio__item-overlay {
|
templates/items-list/items-style/fly/meta.php
CHANGED
@@ -21,9 +21,7 @@ if ( ! $args['url'] ) {
|
|
21 |
<?php if ( $args['url'] ) : ?>
|
22 |
href="<?php echo esc_url( $args['url'] ); ?>"
|
23 |
<?php endif; ?>
|
24 |
-
class="vp-portfolio__item-overlay vp-portfolio__item-align-<?php echo esc_attr( $opts['align'] ); ?>"
|
25 |
-
data-vp-bg-color="<?php echo esc_attr( $opts['bg_color'] ); ?>"
|
26 |
-
data-vp-text-color="<?php echo esc_attr( $opts['text_color'] ); ?>">
|
27 |
<div class="vp-portfolio__item-meta">
|
28 |
<?php
|
29 |
|
21 |
<?php if ( $args['url'] ) : ?>
|
22 |
href="<?php echo esc_url( $args['url'] ); ?>"
|
23 |
<?php endif; ?>
|
24 |
+
class="vp-portfolio__item-overlay vp-portfolio__item-align-<?php echo esc_attr( $opts['align'] ); ?>">
|
|
|
|
|
25 |
<div class="vp-portfolio__item-meta">
|
26 |
<?php
|
27 |
|
templates/items-list/items-style/style.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.vp-portfolio__items-style-default .vp-portfolio__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-portfolio__items-style-default .vp-portfolio__item-img{overflow:hidden}.vp-portfolio__items-style-default .vp-portfolio__item-img img{-webkit-transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1), -webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1)}.vp-portfolio__items-style-default .vp-portfolio__item:hover .vp-portfolio__item-img img{-webkit-transform:scale(1.1);transform:scale(1.1)}.vp-portfolio__items-style-default .vp-portfolio__item-meta{position:relative;padding:10px 15px}.vp-portfolio__items-style-default .vp-portfolio__item-meta *+*{margin-top:4px}.vp-portfolio__items-style-default .vp-portfolio__item-meta-title{margin-bottom:0;font-size:1.3em}.vp-portfolio__items-style-default .vp-portfolio__item-meta-title a{color:inherit;text-decoration:none}.vp-portfolio__items-style-default .vp-portfolio__item-meta-title a:hover{color:#007acc}.vp-portfolio__items-style-default .vp-portfolio__item-meta-date{font-size:.85em}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;bottom:100%;left:0;padding:15px 10px;margin:0;list-style-type:none}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category{padding:0;margin:0 5px}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category a{display:block;padding:4px 15px;color:#fff;text-decoration:none;background-color:#3c3c3c;-webkit-transition:.2s background-color;transition:.2s background-color}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category a:hover{background-color:#545454}.vp-portfolio__items-style-default .vp-portfolio__item-meta-excerpt{opacity:.8}.vp-portfolio__items-style-default .vp-portfolio__item-align-left{text-align:left}.vp-portfolio__items-style-default .vp-portfolio__item-align-center{text-align:center}.vp-portfolio__items-style-default .vp-portfolio__item-align-right{text-align:right}
|
1 |
+
.vp-portfolio__items-style-default .vp-portfolio__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-portfolio__items-style-default .vp-portfolio__item-img{overflow:hidden}.vp-portfolio__items-style-default .vp-portfolio__item-img img{-webkit-transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:-webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);transition:transform 2s cubic-bezier(0.08, 0.43, 0.24, 1), -webkit-transform 2s cubic-bezier(0.08, 0.43, 0.24, 1);will-change:transform}.vp-portfolio__items-style-default .vp-portfolio__item:hover .vp-portfolio__item-img img{-webkit-transform:scale(1.1);transform:scale(1.1)}.vp-portfolio__items-style-default .vp-portfolio__item-meta{position:relative;padding:10px 15px}.vp-portfolio__items-style-default .vp-portfolio__item-meta *+*{margin-top:4px}.vp-portfolio__items-style-default .vp-portfolio__item-meta-title{margin-bottom:0;font-size:1.3em}.vp-portfolio__items-style-default .vp-portfolio__item-meta-title a{color:inherit;text-decoration:none}.vp-portfolio__items-style-default .vp-portfolio__item-meta-title a:hover{color:#007acc}.vp-portfolio__items-style-default .vp-portfolio__item-meta-date{font-size:.85em}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;bottom:100%;left:0;padding:15px 10px;margin:0;list-style-type:none}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category{padding:0;margin:0 5px}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category a{display:block;padding:4px 15px;color:#fff;text-decoration:none;background-color:#3c3c3c;-webkit-transition:.2s background-color;transition:.2s background-color;will-change:background-color}.vp-portfolio__items-style-default .vp-portfolio__item-meta-categories .vp-portfolio__item-meta-category a:hover{background-color:#545454}.vp-portfolio__items-style-default .vp-portfolio__item-meta-excerpt{opacity:.8}.vp-portfolio__items-style-default .vp-portfolio__item-align-left{text-align:left}.vp-portfolio__items-style-default .vp-portfolio__item-align-center{text-align:center}.vp-portfolio__items-style-default .vp-portfolio__item-align-right{text-align:right}
|
templates/items-list/items-style/style.scss
CHANGED
@@ -1,90 +1,92 @@
|
|
1 |
-
/**
|
2 |
-
* Default items style
|
3 |
-
*/
|
4 |
-
.vp-portfolio__items-style-default {
|
5 |
-
.vp-portfolio__item a {
|
6 |
-
outline: none;
|
7 |
-
box-shadow: none;
|
8 |
-
}
|
9 |
-
|
10 |
-
// Transitions
|
11 |
-
.vp-portfolio__item-img {
|
12 |
-
overflow: hidden;
|
13 |
-
}
|
14 |
-
.vp-portfolio__item-img img {
|
15 |
-
transition: transform 2s cubic-bezier(.08, .43, .24, 1);
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
|
|
|
1 |
+
/**
|
2 |
+
* Default items style
|
3 |
+
*/
|
4 |
+
.vp-portfolio__items-style-default {
|
5 |
+
.vp-portfolio__item a {
|
6 |
+
outline: none;
|
7 |
+
box-shadow: none;
|
8 |
+
}
|
9 |
+
|
10 |
+
// Transitions
|
11 |
+
.vp-portfolio__item-img {
|
12 |
+
overflow: hidden;
|
13 |
+
}
|
14 |
+
.vp-portfolio__item-img img {
|
15 |
+
transition: transform 2s cubic-bezier(.08, .43, .24, 1);
|
16 |
+
will-change: transform;
|
17 |
+
}
|
18 |
+
.vp-portfolio__item:hover {
|
19 |
+
.vp-portfolio__item-img img {
|
20 |
+
transform: scale(1.1);
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
// meta
|
25 |
+
.vp-portfolio__item-meta {
|
26 |
+
position: relative;
|
27 |
+
padding: 10px 15px;
|
28 |
+
|
29 |
+
* + * {
|
30 |
+
margin-top: 4px;
|
31 |
+
}
|
32 |
+
}
|
33 |
+
.vp-portfolio__item-meta-title {
|
34 |
+
margin-bottom: 0;
|
35 |
+
font-size: 1.3em;
|
36 |
+
|
37 |
+
a {
|
38 |
+
color: inherit;
|
39 |
+
text-decoration: none;
|
40 |
+
|
41 |
+
&:hover {
|
42 |
+
color: #007acc;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
}
|
46 |
+
.vp-portfolio__item-meta-date {
|
47 |
+
font-size: .85em;
|
48 |
+
}
|
49 |
+
.vp-portfolio__item-meta-categories {
|
50 |
+
position: absolute;
|
51 |
+
display: flex;
|
52 |
+
flex-wrap: wrap;
|
53 |
+
bottom: 100%;
|
54 |
+
left: 0;
|
55 |
+
padding: 15px 10px;
|
56 |
+
margin: 0;
|
57 |
+
list-style-type: none;
|
58 |
+
|
59 |
+
.vp-portfolio__item-meta-category {
|
60 |
+
padding: 0;
|
61 |
+
margin: 0 5px;
|
62 |
+
|
63 |
+
a {
|
64 |
+
display: block;
|
65 |
+
padding: 4px 15px;
|
66 |
+
color: #fff;
|
67 |
+
text-decoration: none;
|
68 |
+
background-color: #3c3c3c;
|
69 |
+
transition: .2s background-color;
|
70 |
+
will-change: background-color;
|
71 |
+
|
72 |
+
&:hover {
|
73 |
+
background-color: #545454;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
78 |
+
.vp-portfolio__item-meta-excerpt {
|
79 |
+
opacity: .8;
|
80 |
+
}
|
81 |
+
|
82 |
+
// align
|
83 |
+
.vp-portfolio__item-align-left {
|
84 |
+
text-align: left;
|
85 |
+
}
|
86 |
+
.vp-portfolio__item-align-center {
|
87 |
+
text-align: center;
|
88 |
+
}
|
89 |
+
.vp-portfolio__item-align-right {
|
90 |
+
text-align: right;
|
91 |
+
}
|
92 |
+
}
|
templates/items-list/pagination/paged.php
CHANGED
@@ -20,9 +20,9 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
20 |
<?php if ( $item['url'] ) : ?>
|
21 |
<a href="<?php echo esc_url( $item['url'] ); ?>">
|
22 |
<?php if ( $item['is_prev_arrow'] ) : ?>
|
23 |
-
<span class="
|
24 |
<?php elseif ( $item['is_next_arrow'] ) : ?>
|
25 |
-
<span class="
|
26 |
<?php else : ?>
|
27 |
<?php echo esc_html( $item['label'] ); ?>
|
28 |
<?php endif; ?>
|
20 |
<?php if ( $item['url'] ) : ?>
|
21 |
<a href="<?php echo esc_url( $item['url'] ); ?>">
|
22 |
<?php if ( $item['is_prev_arrow'] ) : ?>
|
23 |
+
<span class="<?php echo esc_attr( $args['arrows_icon_prev'] ); ?>"></span>
|
24 |
<?php elseif ( $item['is_next_arrow'] ) : ?>
|
25 |
+
<span class="<?php echo esc_attr( $args['arrows_icon_next'] ); ?>"></span>
|
26 |
<?php else : ?>
|
27 |
<?php echo esc_html( $item['label'] ); ?>
|
28 |
<?php endif; ?>
|
templates/items-list/pagination/style.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.vp-pagination__style-default{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:-3px;margin-top:17px;list-style-type:none}.vp-pagination__style-default .vp-pagination__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-pagination__style-default.vp-pagination__align-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.vp-pagination__style-default.vp-pagination__align-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.vp-pagination__style-default .vp-pagination__item{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding:0;margin:3px;text-align:center;list-style-type:none}.vp-pagination__style-default .vp-pagination__item>*{display:block;min-width:40px;padding:8px 16px;line-height:1.4;color:inherit;text-decoration:none;background-color:#fff;border:1px solid #eaeaea;-webkit-transition:.2s border-color, .2s background-color, .2s color;transition:.2s border-color, .2s background-color, .2s color}.vp-pagination__style-default .vp-pagination__item:not(.vp-pagination__item-active)>a:hover{border:1px solid #bfbfbf}.vp-pagination__style-default .vp-pagination__item.vp-pagination__item-active>*{color:#fff;cursor:default;background-color:#6c7781;border:1px solid #6c7781}.vp-pagination__style-default .vp-pagination__load-more>.vp-pagination__load-more-no-more,.vp-pagination__style-default .vp-pagination__load-more>.vp-pagination__load-more-loading,.vp-portfolio__loading .vp-pagination__style-default .vp-pagination__load-more>span,.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more>span,.vp-portfolio__loading .vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more>.vp-pagination__load-more-no-more{display:none}.vp-pagination__style-default .vp-pagination__load-more>span,.vp-portfolio__loading .vp-pagination__style-default .vp-pagination__load-more>.vp-pagination__load-more-loading,.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more>.vp-pagination__load-more-no-more{display:block}.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more,.vp-portfolio__loading .vp-pagination__style-default .vp-pagination__load-more{pointer-events:none;cursor:default;background-color:transparent;border:none;-webkit-transition:none;transition:none}.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more{opacity:.5}.vp-spinner{position:relative;display:inline-block;width:20px;height:20px;margin-top:-2px;vertical-align:middle;border-radius:50%;-webkit-box-shadow:inset 0 0 0 2px rgba(0,0,0,0.1);box-shadow:inset 0 0 0 2px rgba(0,0,0,0.1)}.vp-spinner i{position:absolute;display:block;width:7px;height:7px;overflow:hidden;-webkit-transform-origin:10px 10px;transform-origin:10px 10px;-webkit-animation:
|
1 |
+
.vp-pagination__style-default{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding:0;margin:-3px;margin-top:17px;list-style-type:none}.vp-pagination__style-default .vp-pagination__item a{outline:none;-webkit-box-shadow:none;box-shadow:none}.vp-pagination__style-default.vp-pagination__align-left{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.vp-pagination__style-default.vp-pagination__align-right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.vp-pagination__style-default .vp-pagination__item{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;padding:0;margin:3px;text-align:center;list-style-type:none}.vp-pagination__style-default .vp-pagination__item>*{display:block;min-width:40px;padding:8px 16px;line-height:1.4;color:inherit;text-decoration:none;background-color:#fff;border:1px solid #eaeaea;-webkit-transition:.2s border-color, .2s background-color, .2s color;transition:.2s border-color, .2s background-color, .2s color;will-change:border-color, background-color, color}.vp-pagination__style-default .vp-pagination__item:not(.vp-pagination__item-active)>a:hover{border:1px solid #bfbfbf}.vp-pagination__style-default .vp-pagination__item.vp-pagination__item-active>*{color:#fff;cursor:default;background-color:#6c7781;border:1px solid #6c7781}.vp-pagination__style-default .vp-pagination__load-more>.vp-pagination__load-more-no-more,.vp-pagination__style-default .vp-pagination__load-more>.vp-pagination__load-more-loading,.vp-portfolio__loading .vp-pagination__style-default .vp-pagination__load-more>span,.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more>span,.vp-portfolio__loading .vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more>.vp-pagination__load-more-no-more{display:none}.vp-pagination__style-default .vp-pagination__load-more>span,.vp-portfolio__loading .vp-pagination__style-default .vp-pagination__load-more>.vp-pagination__load-more-loading,.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more>.vp-pagination__load-more-no-more{display:block}.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more,.vp-portfolio__loading .vp-pagination__style-default .vp-pagination__load-more{pointer-events:none;cursor:default;background-color:transparent;border:none;-webkit-transition:none;transition:none}.vp-pagination__style-default.vp-pagination__no-more .vp-pagination__load-more{opacity:.5}.vp-spinner{position:relative;display:inline-block;width:20px;height:20px;margin-top:-2px;vertical-align:middle;border-radius:50%;-webkit-box-shadow:inset 0 0 0 2px rgba(0,0,0,0.1);box-shadow:inset 0 0 0 2px rgba(0,0,0,0.1)}.vp-spinner i{position:absolute;display:block;width:7px;height:7px;overflow:hidden;-webkit-transform-origin:10px 10px;transform-origin:10px 10px;-webkit-animation:vp-spinner .4s infinite linear;animation:vp-spinner .4s infinite linear}.vp-spinner i::after{content:"";display:block;width:20px;height:20px;border-radius:50%;-webkit-box-shadow:inset 0 0 0 2px #6c7781;box-shadow:inset 0 0 0 2px #6c7781}@-webkit-keyframes vp-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes vp-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
|
templates/items-list/pagination/style.scss
CHANGED
@@ -40,6 +40,7 @@
|
|
40 |
background-color: #fff;
|
41 |
border: 1px solid #eaeaea;
|
42 |
transition: .2s border-color, .2s background-color, .2s color;
|
|
|
43 |
}
|
44 |
|
45 |
&:not(.vp-pagination__item-active) > a:hover {
|
@@ -107,7 +108,7 @@ $weight: 2px !default;
|
|
107 |
height: $size_inner;
|
108 |
overflow: hidden;
|
109 |
transform-origin: $size / 2 $size / 2;
|
110 |
-
animation:
|
111 |
|
112 |
&::after {
|
113 |
content: "";
|
@@ -120,7 +121,7 @@ $weight: 2px !default;
|
|
120 |
}
|
121 |
}
|
122 |
|
123 |
-
@keyframes
|
124 |
100% {
|
125 |
transform: rotate(360deg);
|
126 |
}
|
40 |
background-color: #fff;
|
41 |
border: 1px solid #eaeaea;
|
42 |
transition: .2s border-color, .2s background-color, .2s color;
|
43 |
+
will-change: border-color, background-color, color;
|
44 |
}
|
45 |
|
46 |
&:not(.vp-pagination__item-active) > a:hover {
|
108 |
height: $size_inner;
|
109 |
overflow: hidden;
|
110 |
transform-origin: $size / 2 $size / 2;
|
111 |
+
animation: vp-spinner .4s infinite linear;
|
112 |
|
113 |
&::after {
|
114 |
content: "";
|
121 |
}
|
122 |
}
|
123 |
|
124 |
+
@keyframes vp-spinner {
|
125 |
100% {
|
126 |
transform: rotate(360deg);
|
127 |
}
|