Hotel Raxa - Advanced Booking System Implementation
🏨 Hotel Booking Enhancements: - Implemented Eagle Booking Advanced Pricing add-on - Added Booking.com-style rate management system - Created professional calendar interface for pricing - Integrated deals and discounts functionality 💰 Advanced Pricing Features: - Dynamic pricing models (per room, per person, per adult) - Base rates, adult rates, and child rates management - Length of stay discounts and early bird deals - Mobile rates and secret deals implementation - Seasonal promotions and flash sales 📅 Availability Management: - Real-time availability tracking - Stop sell and restriction controls - Closed to arrival/departure functionality - Minimum/maximum stay requirements - Automatic sold-out management 💳 Payment Integration: - Maintained Redsys payment gateway integration - Seamless integration with existing Eagle Booking - No modifications to core Eagle Booking plugin 🛠️ Technical Implementation: - Custom database tables for advanced pricing - WordPress hooks and filters integration - AJAX-powered admin interface - Data migration from existing Eagle Booking - Professional calendar view for revenue management 📊 Admin Interface: - Booking.com-style management dashboard - Visual rate and availability calendar - Bulk operations for date ranges - Statistics and analytics dashboard - Modal dialogs for quick editing 🔧 Code Quality: - WordPress coding standards compliance - Secure database operations with prepared statements - Proper input validation and sanitization - Error handling and logging - Responsive admin interface 🤖 Generated with Claude Code (https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1974
wp-content/plugins/eagle-booking/include/redux/inc/lib/browser.php
Normal file
1974
wp-content/plugins/eagle-booking/include/redux/inc/lib/browser.php
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,370 @@
|
||||
<?php
|
||||
/** Array of dashicons
|
||||
* Contributed by Kevin Provance <kevin.provance@gmail.com>
|
||||
* Last updated' April 28, 2023
|
||||
*
|
||||
* @package Redux Framework
|
||||
*/
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
add_filter( 'redux/fonts/dashicons dashicons', 'redux_get_dashicons dashicons' );
|
||||
|
||||
/**
|
||||
* Dashicons icon set'
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function redux_get_dashicons(): array {
|
||||
return array(
|
||||
'dashicons dashicons-admin-appearance',
|
||||
'dashicons dashicons-admin-collapse',
|
||||
'dashicons dashicons-admin-comments',
|
||||
'dashicons dashicons-admin-customizer',
|
||||
'dashicons dashicons-admin-generic',
|
||||
'dashicons dashicons-admin-home',
|
||||
'dashicons dashicons-admin-links',
|
||||
'dashicons dashicons-admin-media',
|
||||
'dashicons dashicons-admin-multisite',
|
||||
'dashicons dashicons-admin-network',
|
||||
'dashicons dashicons-admin-page',
|
||||
'dashicons dashicons-admin-plugins',
|
||||
'dashicons dashicons-admin-post',
|
||||
'dashicons dashicons-admin-settings',
|
||||
'dashicons dashicons-admin-site-alt',
|
||||
'dashicons dashicons-admin-site-alt2',
|
||||
'dashicons dashicons-admin-site-alt3',
|
||||
'dashicons dashicons-admin-site',
|
||||
'dashicons dashicons-admin-tools',
|
||||
'dashicons dashicons-admin-users',
|
||||
'dashicons dashicons-airplane',
|
||||
'dashicons dashicons-album',
|
||||
'dashicons dashicons-align-center',
|
||||
'dashicons dashicons-align-full-width',
|
||||
'dashicons dashicons-align-left',
|
||||
'dashicons dashicons-align-none',
|
||||
'dashicons dashicons-align-pull-left',
|
||||
'dashicons dashicons-align-pull-right',
|
||||
'dashicons dashicons-align-right',
|
||||
'dashicons dashicons-align-wide',
|
||||
'dashicons dashicons-amazon',
|
||||
'dashicons dashicons-analytics',
|
||||
'dashicons dashicons-archive',
|
||||
'dashicons dashicons-arrow-down-alt',
|
||||
'dashicons dashicons-arrow-down-alt2',
|
||||
'dashicons dashicons-arrow-down',
|
||||
'dashicons dashicons-arrow-left-alt',
|
||||
'dashicons dashicons-arrow-left-alt2',
|
||||
'dashicons dashicons-arrow-left',
|
||||
'dashicons dashicons-arrow-right-alt',
|
||||
'dashicons dashicons-arrow-right-alt2',
|
||||
'dashicons dashicons-arrow-right',
|
||||
'dashicons dashicons-arrow-up-alt',
|
||||
'dashicons dashicons-arrow-up-alt2',
|
||||
'dashicons dashicons-arrow-up-duplicate',
|
||||
'dashicons dashicons-arrow-up',
|
||||
'dashicons dashicons-art',
|
||||
'dashicons dashicons-awards',
|
||||
'dashicons dashicons-backup',
|
||||
'dashicons dashicons-bank',
|
||||
'dashicons dashicons-beer',
|
||||
'dashicons dashicons-bell',
|
||||
'dashicons dashicons-block-default',
|
||||
'dashicons dashicons-book-alt',
|
||||
'dashicons dashicons-book',
|
||||
'dashicons dashicons-buddicons-activity',
|
||||
'dashicons dashicons-buddicons-bbpress-logo',
|
||||
'dashicons dashicons-buddicons-buddypress-logo',
|
||||
'dashicons dashicons-buddicons-community',
|
||||
'dashicons dashicons-buddicons-forums',
|
||||
'dashicons dashicons-buddicons-friends',
|
||||
'dashicons dashicons-buddicons-groups',
|
||||
'dashicons dashicons-buddicons-pm',
|
||||
'dashicons dashicons-buddicons-replies',
|
||||
'dashicons dashicons-buddicons-topics',
|
||||
'dashicons dashicons-buddicons-tracking',
|
||||
'dashicons dashicons-building',
|
||||
'dashicons dashicons-businessman',
|
||||
'dashicons dashicons-businessperson',
|
||||
'dashicons dashicons-businesswoman',
|
||||
'dashicons dashicons-button',
|
||||
'dashicons dashicons-calculator',
|
||||
'dashicons dashicons-calendar-alt',
|
||||
'dashicons dashicons-calendar',
|
||||
'dashicons dashicons-camera-alt',
|
||||
'dashicons dashicons-camera',
|
||||
'dashicons dashicons-car',
|
||||
'dashicons dashicons-carrot',
|
||||
'dashicons dashicons-cart',
|
||||
'dashicons dashicons-category',
|
||||
'dashicons dashicons-chart-area',
|
||||
'dashicons dashicons-chart-bar',
|
||||
'dashicons dashicons-chart-line',
|
||||
'dashicons dashicons-chart-pie',
|
||||
'dashicons dashicons-clipboard',
|
||||
'dashicons dashicons-clock',
|
||||
'dashicons dashicons-cloud-saved',
|
||||
'dashicons dashicons-cloud-upload',
|
||||
'dashicons dashicons-cloud',
|
||||
'dashicons dashicons-code-standards',
|
||||
'dashicons dashicons-coffee',
|
||||
'dashicons dashicons-color-picker',
|
||||
'dashicons dashicons-columns',
|
||||
'dashicons dashicons-controls-back',
|
||||
'dashicons dashicons-controls-forward',
|
||||
'dashicons dashicons-controls-pause',
|
||||
'dashicons dashicons-controls-play',
|
||||
'dashicons dashicons-controls-repeat',
|
||||
'dashicons dashicons-controls-skipback',
|
||||
'dashicons dashicons-controls-skipforward',
|
||||
'dashicons dashicons-controls-volumeoff',
|
||||
'dashicons dashicons-controls-volumeon',
|
||||
'dashicons dashicons-cover-image',
|
||||
'dashicons dashicons-dashboard',
|
||||
'dashicons dashicons-database-add',
|
||||
'dashicons dashicons-database-export',
|
||||
'dashicons dashicons-database-import',
|
||||
'dashicons dashicons-database-remove',
|
||||
'dashicons dashicons-database-view',
|
||||
'dashicons dashicons-database',
|
||||
'dashicons dashicons-desktop',
|
||||
'dashicons dashicons-dismiss',
|
||||
'dashicons dashicons-download',
|
||||
'dashicons dashicons-drumstick',
|
||||
'dashicons dashicons-edit-large',
|
||||
'dashicons dashicons-edit-page',
|
||||
'dashicons dashicons-edit',
|
||||
'dashicons dashicons-editor-aligncenter',
|
||||
'dashicons dashicons-editor-alignleft',
|
||||
'dashicons dashicons-editor-alignright',
|
||||
'dashicons dashicons-editor-bold',
|
||||
'dashicons dashicons-editor-break',
|
||||
'dashicons dashicons-editor-code-duplicate',
|
||||
'dashicons dashicons-editor-code',
|
||||
'dashicons dashicons-editor-contract',
|
||||
'dashicons dashicons-editor-customchar',
|
||||
'dashicons dashicons-editor-expand',
|
||||
'dashicons dashicons-editor-help',
|
||||
'dashicons dashicons-editor-indent',
|
||||
'dashicons dashicons-editor-insertmore',
|
||||
'dashicons dashicons-editor-italic',
|
||||
'dashicons dashicons-editor-justify',
|
||||
'dashicons dashicons-editor-kitchensink',
|
||||
'dashicons dashicons-editor-ltr',
|
||||
'dashicons dashicons-editor-ol-rtl',
|
||||
'dashicons dashicons-editor-ol',
|
||||
'dashicons dashicons-editor-outdent',
|
||||
'dashicons dashicons-editor-paragraph',
|
||||
'dashicons dashicons-editor-paste-text',
|
||||
'dashicons dashicons-editor-paste-word',
|
||||
'dashicons dashicons-editor-quote',
|
||||
'dashicons dashicons-editor-removeformatting',
|
||||
'dashicons dashicons-editor-rtl',
|
||||
'dashicons dashicons-editor-spellcheck',
|
||||
'dashicons dashicons-editor-strikethrough',
|
||||
'dashicons dashicons-editor-table',
|
||||
'dashicons dashicons-editor-textcolor',
|
||||
'dashicons dashicons-editor-ul',
|
||||
'dashicons dashicons-editor-underline',
|
||||
'dashicons dashicons-editor-unlink',
|
||||
'dashicons dashicons-editor-video',
|
||||
'dashicons dashicons-ellipsis',
|
||||
'dashicons dashicons-email-alt',
|
||||
'dashicons dashicons-email-alt2',
|
||||
'dashicons dashicons-email',
|
||||
'dashicons dashicons-embed-audio',
|
||||
'dashicons dashicons-embed-generic',
|
||||
'dashicons dashicons-embed-photo',
|
||||
'dashicons dashicons-embed-post',
|
||||
'dashicons dashicons-embed-video',
|
||||
'dashicons dashicons-excerpt-view',
|
||||
'dashicons dashicons-exit',
|
||||
'dashicons dashicons-external',
|
||||
'dashicons dashicons-facebook-alt',
|
||||
'dashicons dashicons-facebook',
|
||||
'dashicons dashicons-feedback',
|
||||
'dashicons dashicons-filter',
|
||||
'dashicons dashicons-flag',
|
||||
'dashicons dashicons-food',
|
||||
'dashicons dashicons-format-aside',
|
||||
'dashicons dashicons-format-audio',
|
||||
'dashicons dashicons-format-chat',
|
||||
'dashicons dashicons-format-gallery',
|
||||
'dashicons dashicons-format-image',
|
||||
'dashicons dashicons-format-quote',
|
||||
'dashicons dashicons-format-status',
|
||||
'dashicons dashicons-format-video',
|
||||
'dashicons dashicons-forms',
|
||||
'dashicons dashicons-fullscreen-alt',
|
||||
'dashicons dashicons-fullscreen-exit-alt',
|
||||
'dashicons dashicons-games',
|
||||
'dashicons dashicons-google',
|
||||
'dashicons dashicons-googleplus',
|
||||
'dashicons dashicons-grid-view',
|
||||
'dashicons dashicons-groups',
|
||||
'dashicons dashicons-hammer',
|
||||
'dashicons dashicons-heading',
|
||||
'dashicons dashicons-heart',
|
||||
'dashicons dashicons-hidden',
|
||||
'dashicons dashicons-hourglass',
|
||||
'dashicons dashicons-html',
|
||||
'dashicons dashicons-id-alt',
|
||||
'dashicons dashicons-id',
|
||||
'dashicons dashicons-image-crop',
|
||||
'dashicons dashicons-image-filter',
|
||||
'dashicons dashicons-image-flip-horizontal',
|
||||
'dashicons dashicons-image-flip-vertical',
|
||||
'dashicons dashicons-image-rotate-left',
|
||||
'dashicons dashicons-image-rotate-right',
|
||||
'dashicons dashicons-image-rotate',
|
||||
'dashicons dashicons-images-alt',
|
||||
'dashicons dashicons-images-alt2',
|
||||
'dashicons dashicons-index-card',
|
||||
'dashicons dashicons-info-outline',
|
||||
'dashicons dashicons-info',
|
||||
'dashicons dashicons-insert-after',
|
||||
'dashicons dashicons-insert-before',
|
||||
'dashicons dashicons-insert',
|
||||
'dashicons dashicons-instagram',
|
||||
'dashicons dashicons-laptop',
|
||||
'dashicons dashicons-layout',
|
||||
'dashicons dashicons-leftright',
|
||||
'dashicons dashicons-lightbulb',
|
||||
'dashicons dashicons-linkedin',
|
||||
'dashicons dashicons-list-view',
|
||||
'dashicons dashicons-location-alt',
|
||||
'dashicons dashicons-location',
|
||||
'dashicons dashicons-lock-duplicate',
|
||||
'dashicons dashicons-lock',
|
||||
'dashicons dashicons-marker',
|
||||
'dashicons dashicons-media-archive',
|
||||
'dashicons dashicons-media-audio',
|
||||
'dashicons dashicons-media-code',
|
||||
'dashicons dashicons-media-default',
|
||||
'dashicons dashicons-media-document',
|
||||
'dashicons dashicons-media-interactive',
|
||||
'dashicons dashicons-media-spreadsheet',
|
||||
'dashicons dashicons-media-text',
|
||||
'dashicons dashicons-media-video',
|
||||
'dashicons dashicons-megaphone',
|
||||
'dashicons dashicons-menu-alt',
|
||||
'dashicons dashicons-menu-alt2',
|
||||
'dashicons dashicons-menu-alt3',
|
||||
'dashicons dashicons-menu',
|
||||
'dashicons dashicons-microphone',
|
||||
'dashicons dashicons-migrate',
|
||||
'dashicons dashicons-minus',
|
||||
'dashicons dashicons-money-alt',
|
||||
'dashicons dashicons-money',
|
||||
'dashicons dashicons-move',
|
||||
'dashicons dashicons-nametag',
|
||||
'dashicons dashicons-networking',
|
||||
'dashicons dashicons-no-alt',
|
||||
'dashicons dashicons-no',
|
||||
'dashicons dashicons-open-folder',
|
||||
'dashicons dashicons-palmtree',
|
||||
'dashicons dashicons-paperclip',
|
||||
'dashicons dashicons-pdf',
|
||||
'dashicons dashicons-performance',
|
||||
'dashicons dashicons-pets',
|
||||
'dashicons dashicons-phone',
|
||||
'dashicons dashicons-pinterest',
|
||||
'dashicons dashicons-playlist-audio',
|
||||
'dashicons dashicons-playlist-video',
|
||||
'dashicons dashicons-plugins-checked',
|
||||
'dashicons dashicons-plus-alt',
|
||||
'dashicons dashicons-plus-alt2',
|
||||
'dashicons dashicons-plus',
|
||||
'dashicons dashicons-podio',
|
||||
'dashicons dashicons-portfolio',
|
||||
'dashicons dashicons-post-status',
|
||||
'dashicons dashicons-pressthis',
|
||||
'dashicons dashicons-printer',
|
||||
'dashicons dashicons-privacy',
|
||||
'dashicons dashicons-products',
|
||||
'dashicons dashicons-randomize',
|
||||
'dashicons dashicons-reddit',
|
||||
'dashicons dashicons-redo',
|
||||
'dashicons dashicons-remove',
|
||||
'dashicons dashicons-rest-api',
|
||||
'dashicons dashicons-rss',
|
||||
'dashicons dashicons-saved',
|
||||
'dashicons dashicons-schedule',
|
||||
'dashicons dashicons-screenoptions',
|
||||
'dashicons dashicons-search',
|
||||
'dashicons dashicons-share-alt',
|
||||
'dashicons dashicons-share-alt2',
|
||||
'dashicons dashicons-share',
|
||||
'dashicons dashicons-shield-alt',
|
||||
'dashicons dashicons-shield',
|
||||
'dashicons dashicons-shortcode',
|
||||
'dashicons dashicons-slides',
|
||||
'dashicons dashicons-smartphone',
|
||||
'dashicons dashicons-smiley',
|
||||
'dashicons dashicons-sort',
|
||||
'dashicons dashicons-sos',
|
||||
'dashicons dashicons-spotify',
|
||||
'dashicons dashicons-star-empty',
|
||||
'dashicons dashicons-star-filled',
|
||||
'dashicons dashicons-star-half',
|
||||
'dashicons dashicons-sticky',
|
||||
'dashicons dashicons-store',
|
||||
'dashicons dashicons-superhero-alt',
|
||||
'dashicons dashicons-superhero',
|
||||
'dashicons dashicons-table-col-after',
|
||||
'dashicons dashicons-table-col-before',
|
||||
'dashicons dashicons-table-col-delete',
|
||||
'dashicons dashicons-table-row-after',
|
||||
'dashicons dashicons-table-row-before',
|
||||
'dashicons dashicons-table-row-delete',
|
||||
'dashicons dashicons-tablet',
|
||||
'dashicons dashicons-tag',
|
||||
'dashicons dashicons-tagcloud',
|
||||
'dashicons dashicons-testimonial',
|
||||
'dashicons dashicons-text-page',
|
||||
'dashicons dashicons-text',
|
||||
'dashicons dashicons-thumbs-down',
|
||||
'dashicons dashicons-thumbs-up',
|
||||
'dashicons dashicons-tickets-alt',
|
||||
'dashicons dashicons-tickets',
|
||||
'dashicons dashicons-tide',
|
||||
'dashicons dashicons-translation',
|
||||
'dashicons dashicons-trash',
|
||||
'dashicons dashicons-twitch',
|
||||
'dashicons dashicons-twitter-alt',
|
||||
'dashicons dashicons-twitter',
|
||||
'dashicons dashicons-undo',
|
||||
'dashicons dashicons-universal-access-alt',
|
||||
'dashicons dashicons-universal-access',
|
||||
'dashicons dashicons-unlock',
|
||||
'dashicons dashicons-update-alt',
|
||||
'dashicons dashicons-update',
|
||||
'dashicons dashicons-upload',
|
||||
'dashicons dashicons-vault',
|
||||
'dashicons dashicons-video-alt',
|
||||
'dashicons dashicons-video-alt2',
|
||||
'dashicons dashicons-video-alt3',
|
||||
'dashicons dashicons-visibility',
|
||||
'dashicons dashicons-warning',
|
||||
'dashicons dashicons-welcome-add-page',
|
||||
'dashicons dashicons-welcome-comments',
|
||||
'dashicons dashicons-welcome-learn-more',
|
||||
'dashicons dashicons-welcome-view-site',
|
||||
'dashicons dashicons-welcome-widgets-menus',
|
||||
'dashicons dashicons-welcome-write-blog',
|
||||
'dashicons dashicons-whatsapp',
|
||||
'dashicons dashicons-wordpress-alt',
|
||||
'dashicons dashicons-wordpress',
|
||||
'dashicons dashicons-xing',
|
||||
'dashicons dashicons-yes-alt',
|
||||
'dashicons dashicons-yes',
|
||||
'dashicons dashicons-youtube',
|
||||
'dashicons dashicons-editor-distractionfree',
|
||||
'dashicons dashicons-exerpt-view',
|
||||
'dashicons dashicons-format-links',
|
||||
'dashicons dashicons-format-standard',
|
||||
'dashicons dashicons-post-trash',
|
||||
'dashicons dashicons-share1',
|
||||
'dashicons dashicons-welcome-edit-page',
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,320 @@
|
||||
<?php
|
||||
/** Array of Elusive Icons
|
||||
* Contributed by @WhatJustHappened
|
||||
* Last updated' 14 Sept' 2013
|
||||
*
|
||||
* @package Redux Framework/Fields/Select
|
||||
*/
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
add_filter( 'redux/font-icons', 'redux_get_font_icons' );
|
||||
|
||||
/**
|
||||
* Elusive icon set'
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function redux_get_font_icons() :array {
|
||||
return array(
|
||||
'el el-address-book-alt',
|
||||
'el el-address-book',
|
||||
'el el-adjust-alt',
|
||||
'el el-adjust',
|
||||
'el el-adult',
|
||||
'el el-align-center',
|
||||
'el el-align-justify',
|
||||
'el el-align-left',
|
||||
'el el-align-right',
|
||||
'el el-arrow-down',
|
||||
'el el-arrow-left',
|
||||
'el el-arrow-right',
|
||||
'el el-arrow-up',
|
||||
'el el-asl',
|
||||
'el el-asterisk',
|
||||
'el el-backward',
|
||||
'el el-ban-circle',
|
||||
'el el-barcode',
|
||||
'el el-behance',
|
||||
'el el-bell',
|
||||
'el el-blind',
|
||||
'el el-blogger',
|
||||
'el el-bold',
|
||||
'el el-book',
|
||||
'el el-bookmark-empty',
|
||||
'el el-bookmark',
|
||||
'el el-braille',
|
||||
'el el-briefcase',
|
||||
'el el-broom',
|
||||
'el el-brush',
|
||||
'el el-bulb',
|
||||
'el el-bullhorn',
|
||||
'el el-calendar-sign',
|
||||
'el el-calendar',
|
||||
'el el-camera',
|
||||
'el el-car',
|
||||
'el el-caret-down',
|
||||
'el el-caret-left',
|
||||
'el el-caret-right',
|
||||
'el el-caret-up',
|
||||
'el el-cc',
|
||||
'el el-certificate',
|
||||
'el el-check-empty',
|
||||
'el el-check',
|
||||
'el el-chevron-down',
|
||||
'el el-chevron-left',
|
||||
'el el-chevron-right',
|
||||
'el el-chevron-up',
|
||||
'el el-child',
|
||||
'el el-circle-arrow-down',
|
||||
'el el-circle-arrow-left',
|
||||
'el el-circle-arrow-right',
|
||||
'el el-circle-arrow-up',
|
||||
'el el-cloud-alt',
|
||||
'el el-cloud',
|
||||
'el el-cog-alt',
|
||||
'el el-cog',
|
||||
'el el-cogs',
|
||||
'el el-comment-alt',
|
||||
'el el-comment',
|
||||
'el el-compass-alt',
|
||||
'el el-compass',
|
||||
'el el-credit-card',
|
||||
'el el-css',
|
||||
'el el-dashboard',
|
||||
'el el-delicious',
|
||||
'el el-deviantart',
|
||||
'el el-digg',
|
||||
'el el-download-alt',
|
||||
'el el-download',
|
||||
'el el-dribbble',
|
||||
'el el-edit',
|
||||
'el el-eject',
|
||||
'el el-envelope-alt',
|
||||
'el el-envelope',
|
||||
'el el-error-alt',
|
||||
'el el-error',
|
||||
'el el-eur',
|
||||
'el el-exclamation-sign',
|
||||
'el el-eye-close',
|
||||
'el el-eye-open',
|
||||
'el el-facebook',
|
||||
'el el-facetime-video',
|
||||
'el el-fast-backward',
|
||||
'el el-fast-forward',
|
||||
'el el-female',
|
||||
'el el-file-alt',
|
||||
'el el-file-edit-alt',
|
||||
'el el-file-edit',
|
||||
'el el-file-new-alt',
|
||||
'el el-file-new',
|
||||
'el el-file',
|
||||
'el el-film',
|
||||
'el el-filter',
|
||||
'el el-fire',
|
||||
'el el-flag-alt',
|
||||
'el el-flag',
|
||||
'el el-flickr',
|
||||
'el el-folder-close',
|
||||
'el el-folder-open',
|
||||
'el el-folder-sign',
|
||||
'el el-folder',
|
||||
'el el-font',
|
||||
'el el-fontsize',
|
||||
'el el-fork',
|
||||
'el el-forward-alt',
|
||||
'el el-forward',
|
||||
'el el-foursquare',
|
||||
'el el-friendfeed-rect',
|
||||
'el el-friendfeed',
|
||||
'el el-fullscreen',
|
||||
'el el-gbp',
|
||||
'el el-gift',
|
||||
'el el-github-text',
|
||||
'el el-github',
|
||||
'el el-glass',
|
||||
'el el-glasses',
|
||||
'el el-globe-alt',
|
||||
'el el-globe',
|
||||
'el el-googleplus',
|
||||
'el el-graph-alt',
|
||||
'el el-graph',
|
||||
'el el-group-alt',
|
||||
'el el-group',
|
||||
'el el-guidedog',
|
||||
'el el-hand-down',
|
||||
'el el-hand-left',
|
||||
'el el-hand-right',
|
||||
'el el-hand-up',
|
||||
'el el-hdd',
|
||||
'el el-headphones',
|
||||
'el el-hearing-impaired',
|
||||
'el el-heart-alt',
|
||||
'el el-heart-empty',
|
||||
'el el-heart',
|
||||
'el el-home-alt',
|
||||
'el el-home',
|
||||
'el el-hourglass',
|
||||
'el el-idea-alt',
|
||||
'el el-idea',
|
||||
'el el-inbox-alt',
|
||||
'el el-inbox-box',
|
||||
'el el-inbox',
|
||||
'el el-indent-left',
|
||||
'el el-indent-right',
|
||||
'el el-info-circle',
|
||||
'el el-instagram',
|
||||
'el el-iphone-home',
|
||||
'el el-italic',
|
||||
'el el-key',
|
||||
'el el-laptop-alt',
|
||||
'el el-laptop',
|
||||
'el el-lastfm',
|
||||
'el el-leaf',
|
||||
'el el-lines',
|
||||
'el el-link',
|
||||
'el el-linkedin',
|
||||
'el el-list-alt',
|
||||
'el el-list',
|
||||
'el el-livejournal',
|
||||
'el el-lock-alt',
|
||||
'el el-lock',
|
||||
'el el-magic',
|
||||
'el el-magnet',
|
||||
'el el-male',
|
||||
'el el-map-marker-alt',
|
||||
'el el-map-marker',
|
||||
'el el-mic-alt',
|
||||
'el el-mic',
|
||||
'el el-minus-sign',
|
||||
'el el-minus',
|
||||
'el el-move',
|
||||
'el el-music',
|
||||
'el el-myspace',
|
||||
'el el-network',
|
||||
'el el-off',
|
||||
'el el-ok-circle',
|
||||
'el el-ok-sign',
|
||||
'el el-ok',
|
||||
'el el-opensource',
|
||||
'el el-paper-clip-alt',
|
||||
'el el-paper-clip',
|
||||
'el el-path',
|
||||
'el el-pause-alt',
|
||||
'el el-pause',
|
||||
'el el-pencil-alt',
|
||||
'el el-pencil',
|
||||
'el el-person',
|
||||
'el el-phone-alt',
|
||||
'el el-phone',
|
||||
'el el-photo-alt',
|
||||
'el el-photo',
|
||||
'el el-picasa',
|
||||
'el el-picture',
|
||||
'el el-plane',
|
||||
'el el-play-alt',
|
||||
'el el-play-circle',
|
||||
'el el-play',
|
||||
'el el-plus-sign',
|
||||
'el el-plus',
|
||||
'el el-podcast',
|
||||
'el el-print',
|
||||
'el el-puzzle',
|
||||
'el el-qrcode',
|
||||
'el el-question-sign',
|
||||
'el el-question',
|
||||
'el el-quote-alt',
|
||||
'el el-quotes',
|
||||
'el el-random',
|
||||
'el el-record',
|
||||
'el el-reddit',
|
||||
'el el-refresh',
|
||||
'el el-remove-circle',
|
||||
'el el-remove-sign',
|
||||
'el el-remove',
|
||||
'el el-repeat-alt',
|
||||
'el el-repeat',
|
||||
'el el-resize-full',
|
||||
'el el-resize-horizontal',
|
||||
'el el-resize-small',
|
||||
'el el-resize-vertical',
|
||||
'el el-return-key',
|
||||
'el el-retweet',
|
||||
'el el-reverse-alt',
|
||||
'el el-road',
|
||||
'el el-rss',
|
||||
'el el-scissors',
|
||||
'el el-screen-alt',
|
||||
'el el-screen',
|
||||
'el el-screenshot',
|
||||
'el el-search-alt',
|
||||
'el el-search',
|
||||
'el el-share-alt',
|
||||
'el el-share',
|
||||
'el el-shopping-cart-sign',
|
||||
'el el-shopping-cart',
|
||||
'el el-signal',
|
||||
'el el-skype',
|
||||
'el el-slideshare',
|
||||
'el el-smiley-alt',
|
||||
'el el-smiley',
|
||||
'el el-soundcloud',
|
||||
'el el-speaker',
|
||||
'el el-spotify',
|
||||
'el el-stackoverflow',
|
||||
'el el-star-alt',
|
||||
'el el-star-empty',
|
||||
'el el-star',
|
||||
'el el-step-backward',
|
||||
'el el-step-forward',
|
||||
'el el-stop-alt',
|
||||
'el el-stop',
|
||||
'el el-stumbleupon',
|
||||
'el el-tag',
|
||||
'el el-tags',
|
||||
'el el-tasks',
|
||||
'el el-text-height',
|
||||
'el el-text-width',
|
||||
'el el-th-large',
|
||||
'el el-th-list',
|
||||
'el el-th',
|
||||
'el el-thumbs-down',
|
||||
'el el-thumbs-up',
|
||||
'el el-time-alt',
|
||||
'el el-time',
|
||||
'el el-tint',
|
||||
'el el-torso',
|
||||
'el el-trash-alt',
|
||||
'el el-trash',
|
||||
'el el-tumblr',
|
||||
'el el-twitter',
|
||||
'el el-universal-access',
|
||||
'el el-unlock-alt',
|
||||
'el el-unlock',
|
||||
'el el-upload',
|
||||
'el el-usd',
|
||||
'el el-user',
|
||||
'el el-viadeo',
|
||||
'el el-video-alt',
|
||||
'el el-video-chat',
|
||||
'el el-video',
|
||||
'el el-view-mode',
|
||||
'el el-vimeo',
|
||||
'el el-vkontakte',
|
||||
'el el-volume-down',
|
||||
'el el-volume-off',
|
||||
'el el-volume-up',
|
||||
'el el-w3c',
|
||||
'el el-warning-sign',
|
||||
'el el-website-alt',
|
||||
'el el-website',
|
||||
'el el-wheelchair',
|
||||
'el el-wordpress',
|
||||
'el el-wrench-alt',
|
||||
'el el-wrench',
|
||||
'el el-youtube',
|
||||
'el el-zoom-in',
|
||||
'el el-zoom-out',
|
||||
);
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
/**
|
||||
* Get Font Awesome font classes.
|
||||
*
|
||||
* Used with Gulp compiler to pull Font Awesome font class names
|
||||
* and compile them into a function to be used with icon_Select field.
|
||||
*
|
||||
* @package Redux
|
||||
* @author Kevin Provance <kevin.provance@gmail.com>
|
||||
*
|
||||
* @version 4.4.2
|
||||
*/
|
||||
|
||||
$output = '<?php' . "\r";
|
||||
$output .= '/**' . "\r";
|
||||
$output .= ' * Redux Icon Select Font Awesome 6 Free icon array.' . "\r";
|
||||
$output .= ' *' . "\r";
|
||||
$output .= ' * @package Redux' . "\r";
|
||||
$output .= ' * @author Kevin Provance <kevin.provance@gmail.com>' . "\r";
|
||||
$output .= ' */' . "\r\r";
|
||||
$output .= "defined( 'ABSPATH' ) || exit;\r\r";
|
||||
$output .= '';
|
||||
$output .= "if ( ! function_exists( 'redux_icon_select_fa_6_free' ) ) {\r\r";
|
||||
$output .= "\t" . '/**' . "\r";
|
||||
$output .= "\t" . ' * Array of free Font Awesome 6 icons.' . "\r";
|
||||
$output .= "\t" . ' *' . "\r";
|
||||
$output .= "\t" . ' * @return array' . "\r";
|
||||
$output .= "\t" . ' */' . "\r";
|
||||
$output .= "\t" . 'function redux_icon_select_fa_6_free(): array {' . "\r";
|
||||
$output .= "\t\t" . 'return array( ' . fa_icons() . ' );' . "\r";
|
||||
$output .= "\t" . '}' . "\r";
|
||||
$output .= '}' . "\r";
|
||||
|
||||
file_put_contents( dirname( __DIR__ ) . '/lib/font-awesome-6-free.php', $output );
|
||||
|
||||
// print_r ( fa_icons() );
|
||||
|
||||
/**
|
||||
* Get Font Awesome metadata.
|
||||
*
|
||||
* @return false|string
|
||||
*/
|
||||
function fa_icons() {
|
||||
$content = file_get_contents( 'https://raw.githubusercontent.com/FortAwesome/Font-Awesome/6.x/metadata/icons.json' );
|
||||
$json = json_decode( $content );
|
||||
$icons = '';
|
||||
|
||||
foreach ( $json as $icon => $value ) {
|
||||
foreach ( $value->styles as $style ) {
|
||||
$icon = 'fa' . substr( $style, 0, 1 ) . ' fa-' . $icon;
|
||||
|
||||
$icons .= "'" . $icon . "', ";
|
||||
}
|
||||
}
|
||||
|
||||
return substr( $icons, 0, -2 );
|
||||
}
|
||||
@@ -0,0 +1,270 @@
|
||||
<?php
|
||||
/**
|
||||
* Redux Gradient Filters Class
|
||||
*
|
||||
* @class Redux_Gradient_Filters
|
||||
* @version 4.1.30
|
||||
* @package Redux Framework
|
||||
*/
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
if ( ! class_exists( 'Redux_Gradient_Filters' ) ) {
|
||||
|
||||
/**
|
||||
* Class Redux_Gradient_Filters
|
||||
*/
|
||||
class Redux_Gradient_Filters {
|
||||
|
||||
/**
|
||||
* Render select boxes.
|
||||
*
|
||||
* @param array $data Data.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function render_select( array $data ): string {
|
||||
extract( $data ); // phpcs:ignore WordPress.PHP.DontExtract
|
||||
|
||||
$output = '';
|
||||
|
||||
if ( $field['gradient-type'] ) {
|
||||
$select2_default = array(
|
||||
'width' => 'resolve',
|
||||
'allowClear' => false,
|
||||
'theme' => 'default',
|
||||
'minimumResultsForSearch' => 3,
|
||||
);
|
||||
|
||||
$select2_default = Redux_Functions::sanitize_camel_case_array_keys( $select2_default );
|
||||
|
||||
$select2_data = Redux_Functions::create_data_string( $select2_default );
|
||||
|
||||
$output .= '<div class="redux-gradient-type">';
|
||||
$output .= '<strong>' . esc_html__( 'Gradient Type ', 'redux-framework' ) . '</strong> ';
|
||||
$output .= '<select ';
|
||||
$output .= 'class="redux-gradient-select select2-container"';
|
||||
$output .= 'data-placeholder="' . esc_attr__( 'Type', 'redux-framework' ) . '" ' . $select2_data . ' ';
|
||||
$output .= 'name="' . esc_attr( $field['name'] . $field['name_suffix'] ) . '[gradient-type]"';
|
||||
$output .= 'data-value="' . esc_attr( $value['gradient-type'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '">';
|
||||
|
||||
$arr = array(
|
||||
esc_html__( 'linear', 'redux-framework' ),
|
||||
esc_html__( 'radial', 'redux-framework' ),
|
||||
);
|
||||
|
||||
foreach ( $arr as $v ) {
|
||||
$output .= '<option value="' . esc_attr( $v ) . '" ' . selected( $value['gradient-type'], $v, false ) . '>' . esc_html( ucfirst( $v ) ) . '</option>';
|
||||
}
|
||||
|
||||
$output .= '</select>';
|
||||
$output .= '</div>';
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render sliders.
|
||||
*
|
||||
* @param array $data Data.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function render_sliders( array $data ): string {
|
||||
extract( $data ); // phpcs:ignore WordPress.PHP.DontExtract
|
||||
|
||||
$output = '';
|
||||
|
||||
if ( $field['gradient-reach'] ) {
|
||||
$output .= '<div class="slider-from-reach">';
|
||||
$output .= '<div class="label">' . esc_html__( 'From Reach ', 'redux-framework' ) . ': <strong>' . esc_html( $value['gradient-reach']['from'] ) . '%</strong></div>';
|
||||
$output .= '<div ';
|
||||
$output .= 'class="redux-gradient-slider redux-color-gradient redux-gradient-from-reach color-gradient-input ' . esc_attr( $field['class'] ) . '"';
|
||||
$output .= 'id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '-from"';
|
||||
$output .= 'data-min="0"';
|
||||
$output .= 'data-max="100"';
|
||||
$output .= 'data-step="1"';
|
||||
$output .= 'data-rtl="' . esc_attr( is_rtl() ) . '"';
|
||||
$output .= 'data-label="' . esc_attr__( 'From Reach', 'redux-framework' ) . '"';
|
||||
$output .= 'data-default = "' . esc_attr( $value['gradient-reach']['from'] ) . '">';
|
||||
$output .= '</div>';
|
||||
$output .= '<input ';
|
||||
$output .= 'type="hidden"';
|
||||
$output .= 'id="redux-slider-value-' . esc_attr( $field['id'] ) . '-from"';
|
||||
$output .= 'class="color-gradient-reach-from"';
|
||||
$output .= 'name="' . esc_attr( $field['name'] . $field['name_suffix'] ) . '[gradient-reach][from]"';
|
||||
$output .= 'value="' . esc_attr( $value['gradient-reach']['from'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= '/>';
|
||||
$output .= '</div>';
|
||||
|
||||
$output .= '<div class="slider-to-reach">';
|
||||
$output .= '<div class="label">' . esc_html__( 'To Reach', 'redux-framework' ) . ': <strong>' . esc_html( $value['gradient-reach']['to'] ) . '%</strong></div>';
|
||||
$output .= '<div ';
|
||||
$output .= 'class="redux-gradient-slider redux-color-gradient redux-gradient-reach-to color-gradient-input ' . esc_attr( $field['class'] ) . '"';
|
||||
$output .= 'id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '-to"';
|
||||
$output .= 'data-min="0"';
|
||||
$output .= 'data-max="100"';
|
||||
$output .= 'data-step="1"';
|
||||
$output .= 'data-rtl="' . esc_attr( is_rtl() ) . '"';
|
||||
$output .= 'data-label="' . esc_attr__( 'To Reach', 'redux-framework' ) . '"';
|
||||
$output .= 'data-default = "' . esc_attr( $value['gradient-reach']['to'] ) . '">';
|
||||
$output .= '</div>';
|
||||
$output .= '<input ';
|
||||
$output .= 'type="hidden"';
|
||||
$output .= 'id="redux-slider-value-' . esc_attr( $field['id'] ) . '-to"';
|
||||
$output .= 'class="color-gradient-reach-to"';
|
||||
$output .= 'name="' . esc_attr( $field['name'] . $field['name_suffix'] ) . '[gradient-reach][to]"';
|
||||
$output .= 'value="' . esc_attr( $value['gradient-reach']['to'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= '/>';
|
||||
$output .= '</div>';
|
||||
}
|
||||
|
||||
if ( $field['gradient-angle'] ) {
|
||||
$style = '';
|
||||
if ( 'radial' === $value['gradient-type'] ) {
|
||||
$style = 'style="display:none;"';
|
||||
}
|
||||
|
||||
$output .= '<div class="slider-gradient-angle" ' . $style . '>';
|
||||
$output .= '<div class="label">' . esc_html__( 'Gradient Angle', 'redux-framework' ) . ': <strong>' . $value['gradient-angle'] . '°</strong></div>';
|
||||
$output .= '<div ';
|
||||
$output .= 'class="redux-gradient-slider redux-color-gradient redux-gradient-angle color-gradient-input ' . esc_attr( $field['class'] ) . '"';
|
||||
$output .= 'id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '-angle"';
|
||||
$output .= 'data-min="0"';
|
||||
$output .= 'data-max="360"';
|
||||
$output .= 'data-step="1"';
|
||||
$output .= 'data-rtl="' . esc_attr( is_rtl() ) . '"';
|
||||
$output .= 'data-label="' . esc_attr__( 'Gradient Angle', 'redux-framework' ) . '"';
|
||||
$output .= 'data-default = "' . esc_attr( $value['gradient-angle'] ) . '">';
|
||||
$output .= '</div>';
|
||||
$output .= '<input ';
|
||||
$output .= 'type="hidden"';
|
||||
$output .= 'id="redux-slider-value-' . esc_attr( $field['id'] ) . '-angle"';
|
||||
$output .= 'class="color-gradient-angle"';
|
||||
$output .= 'name="' . esc_attr( $field['name'] . $field['name_suffix'] ) . '[gradient-angle]"';
|
||||
$output .= 'value="' . esc_attr( $value['gradient-angle'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= '/>';
|
||||
$output .= '</div>';
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render preview.
|
||||
*
|
||||
* @param array $data Data.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function render_preview( array $data ): string {
|
||||
extract( $data ); // phpcs:ignore WordPress.PHP.DontExtract
|
||||
|
||||
$output = '';
|
||||
|
||||
$css = '';
|
||||
if ( false === $field['preview'] ) {
|
||||
$css .= 'display:none;';
|
||||
}
|
||||
|
||||
$css .= self::get_output( $value );
|
||||
|
||||
$css .= 'height: ' . $field['preview_height'] . ';';
|
||||
|
||||
$output .= '<div class="redux-gradient-preview" style="' . esc_attr( $css ) . '"></div>';
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get CSS output.
|
||||
*
|
||||
* @param mixed $data Data.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_output( $data ): string {
|
||||
if ( ! is_array( $data ) ) {
|
||||
return $data;
|
||||
}
|
||||
|
||||
$angle = $data['gradient-angle'];
|
||||
|
||||
$w3c_angle = abs( $angle - 450 ) % 360;
|
||||
|
||||
$colors = $data['from'] . ' ' . $data['gradient-reach']['from'] . '%, ' . $data['to'] . ' ' . $data['gradient-reach']['to'] . '%)';
|
||||
|
||||
if ( 'linear' === $data['gradient-type'] ) {
|
||||
$result_w3c = 'linear-gradient(' . $w3c_angle . 'deg,' . $colors;
|
||||
$result = 'linear-gradient(' . $angle . 'deg,' . $colors;
|
||||
} else {
|
||||
$result_w3c = 'radial-gradient(center, ellipse cover, ' . $colors;
|
||||
$result = 'radial-gradient(center, ellipse cover,' . $colors;
|
||||
}
|
||||
|
||||
return 'background:' . $result_w3c . ';background:-moz-' . $result . ';background:-webkit-' . $result . ';background:-o-' . $result . ';background:-ms-' . $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue support files.
|
||||
*
|
||||
* @param array $field Field array.
|
||||
* @param bool $filters_enabled Enable filter bit.
|
||||
*/
|
||||
public static function enqueue( array $field, bool $filters_enabled ) {
|
||||
$min = Redux_Functions::is_min();
|
||||
|
||||
if ( $filters_enabled ) {
|
||||
if ( $field['gradient-type'] ) {
|
||||
if ( ! wp_style_is( 'select2-css' ) ) {
|
||||
wp_enqueue_style( 'select2-css' );
|
||||
}
|
||||
|
||||
if ( ! wp_script_is( 'select2-js' ) ) {
|
||||
wp_enqueue_script( 'select2-js' );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! wp_style_is( 'redux-nouislider' ) ) {
|
||||
wp_enqueue_style(
|
||||
'redux-nouislider',
|
||||
Redux_Core::$url . 'assets/css/vendor/nouislider' . $min . '.css',
|
||||
array(),
|
||||
'5.0.0'
|
||||
);
|
||||
|
||||
wp_enqueue_script(
|
||||
'redux-nouislider',
|
||||
Redux_Core::$url . 'assets/js/vendor/nouislider/redux.jquery.nouislider' . $min . '.js',
|
||||
array( 'jquery' ),
|
||||
'5.0.0',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
wp_enqueue_script(
|
||||
'redux-gradient-filters',
|
||||
Redux_Core::$url . 'inc/lib/gradient-filters/gradient-filters' . Redux_Functions::isMin() . '.js',
|
||||
array( 'jquery' ),
|
||||
Redux_Core::$version,
|
||||
true
|
||||
);
|
||||
|
||||
wp_enqueue_style(
|
||||
'redux-gradient-filters',
|
||||
Redux_Core::$url . 'inc/lib/gradient-filters/gradient-filters.css',
|
||||
array(),
|
||||
Redux_Core::$version
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
.redux-main .redux-gradient-preview { height: 150px; margin-top: 10px; border-radius: 4px; }
|
||||
|
||||
.redux-main .redux-gradient-slider { margin-top: 10px; margin-right: 35px; }
|
||||
|
||||
.redux-main .redux-gradient-type, .redux-main div.colorGradient { vertical-align: top; }
|
||||
|
||||
.redux-main .redux-gradient-type .wp-picker-container, .redux-main .redux-gradient-type .color-transparency-check, .redux-main div.colorGradient .wp-picker-container, .redux-main div.colorGradient .color-transparency-check { display: inline; }
|
||||
|
||||
.redux-main .redux-gradient-type { margin-right: 20px; }
|
||||
|
||||
.redux-main .redux-gradient-type select { width: 100px; }
|
||||
|
||||
.redux-main .slider-gradient-angle { width: 33% !important; margin-top: 10px; }
|
||||
|
||||
.redux-main .slider-gradient-angle input { width: 33%; }
|
||||
|
||||
.redux-main .slider-from-reach, .redux-main .slider-to-reach, .redux-main .slider-gradient-angle { margin-top: 10px; width: 33%; }
|
||||
|
||||
.redux-main .slider-from-reach .label, .redux-main .slider-to-reach .label, .redux-main .slider-gradient-angle .label { display: block; position: relative; font-size: 12px !important; text-align: left; color: #999999; margin: 4px 0 2px 0 !important; cursor: default; }
|
||||
|
||||
.redux-main .slider-from-reach input:not(.slider-gradient-angle), .redux-main .slider-to-reach input:not(.slider-gradient-angle), .redux-main .slider-gradient-angle input:not(.slider-gradient-angle) { width: 90%; }
|
||||
|
||||
.redux-main .slider-to-reach, .redux-main .slider-from-reach, .redux-main .slider-gradient-angle { display: inline-block; margin-bottom: 10px; }
|
||||
|
||||
.redux-main .slider-to-reach strong, .redux-main .slider-from-reach strong, .redux-main .slider-gradient-angle strong { margin-bottom: 5px; margin-left: 3px; font-size: 12px; color: #999; }
|
||||
|
||||
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZGllbnQtZmlsdGVycy5jc3MiLCJzb3VyY2VzIjpbImdyYWRpZW50LWZpbHRlcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUNJLFdBRE8sQ0FDUCx1QkFBdUIsQ0FBQyxFQUNwQixNQUFNLEVBQUUsS0FBSyxFQUNiLFVBQVUsRUFBRSxJQUFJLEVBQ2hCLGFBQWEsRUFBRSxHQUFHLEdBQ3JCOztBQUxMLEFBT0ksV0FQTyxDQU9QLHNCQUFzQixDQUFDLEVBQ25CLFVBQVUsRUFBRSxJQUFJLEVBQ2hCLFlBQVksRUFBRSxJQUFJLEdBQ3JCOztBQVZMLEFBWUksV0FaTyxDQVlQLG9CQUFvQixFQVp4QixXQUFXLENBWWUsR0FBRyxBQUFBLGNBQWMsQ0FBQSxFQUNuQyxjQUFjLEVBQUUsR0FBRyxHQUl0Qjs7QUFqQkwsQUFjUSxXQWRHLENBWVAsb0JBQW9CLENBRWhCLG9CQUFvQixFQWQ1QixXQUFXLENBWVAsb0JBQW9CLENBRU0seUJBQXlCLEVBZHZELFdBQVcsQ0FZZSxHQUFHLEFBQUEsY0FBYyxDQUVuQyxvQkFBb0IsRUFkNUIsV0FBVyxDQVllLEdBQUcsQUFBQSxjQUFjLENBRWIseUJBQXlCLENBQUMsRUFDNUMsT0FBTyxFQUFFLE1BQU0sR0FDbEI7O0FBaEJULEFBbUJJLFdBbkJPLENBbUJQLG9CQUFvQixDQUFDLEVBQ2pCLFlBQVksRUFBRSxJQUFJLEdBS3JCOztBQXpCTCxBQXNCUSxXQXRCRyxDQW1CUCxvQkFBb0IsQ0FHaEIsTUFBTSxDQUFDLEVBQ0gsS0FBSyxFQUFFLEtBQUssR0FDZjs7QUF4QlQsQUEyQkksV0EzQk8sQ0EyQlAsc0JBQXNCLENBQUMsRUFDbkIsS0FBSyxFQUFFLEdBQUcsQ0FBQSxVQUFVLEVBQ3BCLFVBQVUsRUFBRSxJQUFJLEdBS25COztBQWxDTCxBQStCUSxXQS9CRyxDQTJCUCxzQkFBc0IsQ0FJbEIsS0FBSyxDQUFDLEVBQ0YsS0FBSyxFQUFFLEdBQUcsR0FDYjs7QUFqQ1QsQUFvQ0ksV0FwQ08sQ0FvQ1Asa0JBQWtCLEVBcEN0QixXQUFXLENBcUNQLGdCQUFnQixFQXJDcEIsV0FBVyxDQXNDUCxzQkFBc0IsQ0FBQyxFQUNuQixVQUFVLEVBQUUsSUFBSSxFQUNoQixLQUFLLEVBQUUsR0FBRyxHQWViOztBQXZETCxBQTBDUSxXQTFDRyxDQW9DUCxrQkFBa0IsQ0FNZCxNQUFNLEVBMUNkLFdBQVcsQ0FxQ1AsZ0JBQWdCLENBS1osTUFBTSxFQTFDZCxXQUFXLENBc0NQLHNCQUFzQixDQUlsQixNQUFNLENBQUMsRUFDSCxPQUFPLEVBQUUsS0FBSyxFQUNkLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFNBQVMsRUFBRSxlQUFlLEVBQzFCLFVBQVUsRUFBRSxJQUFJLEVBQ2hCLEtBQUssRUFBRSxPQUFPLEVBQ2QsTUFBTSxFQUFFLHNCQUFzQixFQUM5QixNQUFNLEVBQUUsT0FBTyxHQUNsQjs7QUFsRFQsQUFvRFEsV0FwREcsQ0FvQ1Asa0JBQWtCLENBZ0JkLEtBQUssQUFBQSxJQUFLLENBQUEsc0JBQXNCLEdBcER4QyxXQUFXLENBcUNQLGdCQUFnQixDQWVaLEtBQUssQUFBQSxJQUFLLENBQUEsc0JBQXNCLEdBcER4QyxXQUFXLENBc0NQLHNCQUFzQixDQWNsQixLQUFLLEFBQUEsSUFBSyxDQUFBLHNCQUFzQixFQUFFLEVBQzlCLEtBQUssRUFBRSxHQUFHLEdBQ2I7O0FBdERULEFBeURJLFdBekRPLENBeURQLGdCQUFnQixFQXpEcEIsV0FBVyxDQTBEUCxrQkFBa0IsRUExRHRCLFdBQVcsQ0EyRFAsc0JBQXNCLENBQUMsRUFDbkIsT0FBTyxFQUFFLFlBQVksRUFDckIsYUFBYSxFQUFFLElBQUksR0FRdEI7O0FBckVMLEFBK0RRLFdBL0RHLENBeURQLGdCQUFnQixDQU1aLE1BQU0sRUEvRGQsV0FBVyxDQTBEUCxrQkFBa0IsQ0FLZCxNQUFNLEVBL0RkLFdBQVcsQ0EyRFAsc0JBQXNCLENBSWxCLE1BQU0sQ0FBQyxFQUNILGFBQWEsRUFBRSxHQUFHLEVBQ2xCLFdBQVcsRUFBRSxHQUFHLEVBQ2hCLFNBQVMsRUFBRSxJQUFJLEVBQ2YsS0FBSyxFQUFFLElBQUksR0FDZCJ9 */
|
||||
|
||||
/*# sourceMappingURL=gradient-filters.css.map */
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,130 @@
|
||||
/* global jQuery, redux_change, redux */
|
||||
|
||||
(function( $ ) {
|
||||
'use strict';
|
||||
|
||||
redux.field_objects = redux.field_objects || {};
|
||||
redux.field_objects.gradient_filters = redux.field_objects.gradient_filters || {};
|
||||
|
||||
redux.field_objects.gradient_filters.sliderInit = function( el, mode ) {
|
||||
el.find( '.redux-gradient-slider' ).each(
|
||||
function() {
|
||||
var mainID = $( this ).data( 'id' );
|
||||
var minVal = $( this ).data( 'min' );
|
||||
var maxVal = $( this ).data( 'max' );
|
||||
var step = $( this ).data( 'step' );
|
||||
var def = $( this ).data( 'default' );
|
||||
var label = $( this ).data( 'label' );
|
||||
var rtl = Boolean( $( this ).data( 'rtl' ) );
|
||||
var range = [minVal, maxVal];
|
||||
|
||||
var slider = $( this ).reduxNoUiSlider(
|
||||
{
|
||||
range: range,
|
||||
start: def,
|
||||
handles: 1,
|
||||
step: step,
|
||||
connect: 'lower',
|
||||
behaviour: 'tap-drag',
|
||||
rtl: rtl,
|
||||
serialization: {
|
||||
resolution: 1
|
||||
},
|
||||
slide: function() {
|
||||
var sliderID = $( this ).data( 'id' );
|
||||
var unit;
|
||||
|
||||
if ( sliderID.indexOf( 'angle' ) !== -1 ) {
|
||||
unit = '°';
|
||||
} else {
|
||||
unit = '%';
|
||||
}
|
||||
|
||||
$( this ).next( '#redux-slider-value-' + mainID ).attr(
|
||||
'value',
|
||||
slider.val()
|
||||
);
|
||||
|
||||
$( this ).prev( 'label' ).html(
|
||||
label + ': <strong>' + slider.val() + unit + '</strong>'
|
||||
);
|
||||
|
||||
redux.field_objects.gradient_filters.changeValue( $( this ), true, mode );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
redux.field_objects.gradient_filters.selectChange = function( el, mode ) {
|
||||
$( el ).find( '.redux-gradient-select' ).on(
|
||||
'change',
|
||||
function() {
|
||||
var type = $( this ).val();
|
||||
var angle = el.find( '.slider-gradient-angle' );
|
||||
|
||||
if ( 'linear' === type ) {
|
||||
angle.fadeIn();
|
||||
} else {
|
||||
angle.fadeOut();
|
||||
}
|
||||
|
||||
redux.field_objects.gradient_filters.changeValue( $( this ), true, mode );
|
||||
}
|
||||
);
|
||||
|
||||
el.find( '.redux-gradient-select' ).select2();
|
||||
|
||||
};
|
||||
|
||||
redux.field_objects.gradient_filters.changeValue = function( el, update, mode ) {
|
||||
var parent = el.parents( '.redux-container-' + mode );
|
||||
var mainID = parent.data( 'id' );
|
||||
var preview = parent.find( '.redux-gradient-preview' );
|
||||
|
||||
var hide = preview.css( 'display' );
|
||||
|
||||
var colorFrom = parent.find( '#' + mainID + '-from' ).val();
|
||||
var colorTo = parent.find( '#' + mainID + '-to' ).val();
|
||||
|
||||
var type = parent.find( '.redux-gradient-select' ).val();
|
||||
|
||||
var result_w3c;
|
||||
var result;
|
||||
var fromReach;
|
||||
var toReach;
|
||||
var colors;
|
||||
|
||||
var angle = 0;
|
||||
var w3c_deg = Math.abs( angle - 450 ) % 360;
|
||||
|
||||
fromReach = parent.find( '#redux-slider-value-' + mainID + '-from' ).val();
|
||||
toReach = parent.find( '#redux-slider-value-' + mainID + '-to' ).val();
|
||||
angle = parent.find( '#redux-slider-value-' + mainID + '-angle' ).val();
|
||||
|
||||
colors = colorFrom + ' ' + fromReach + '%, ' + colorTo + ' ' + toReach + '%)';
|
||||
|
||||
if ( 'linear' === type ) {
|
||||
result_w3c = 'linear-gradient(' + w3c_deg + 'deg,' + colors;
|
||||
result = 'linear-gradient(' + angle + 'deg,' + colors;
|
||||
} else {
|
||||
result_w3c = 'radial-gradient(center, ellipse cover,' + colors;
|
||||
result = 'radial-gradient(center, ellipse cover,' + colors;
|
||||
}
|
||||
|
||||
if ( 'none' === hide ) {
|
||||
preview.fadeIn();
|
||||
}
|
||||
|
||||
preview.css( 'background', result_w3c );
|
||||
preview.css( 'background', '-moz-' + result );
|
||||
preview.css( 'background', '-webkit-' + result );
|
||||
preview.css( 'background', '-o-' + result );
|
||||
preview.css( 'background', '-ms-' + result );
|
||||
|
||||
if ( update ) {
|
||||
redux_change( el );
|
||||
}
|
||||
};
|
||||
})( jQuery );
|
||||
@@ -0,0 +1 @@
|
||||
!function(u){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.gradient_filters=redux.field_objects.gradient_filters||{},redux.field_objects.gradient_filters.sliderInit=function(e,s){e.find(".redux-gradient-slider").each(function(){var a=u(this).data("id"),e=u(this).data("min"),i=u(this).data("max"),d=u(this).data("step"),t=u(this).data("default"),r=u(this).data("label"),n=Boolean(u(this).data("rtl")),e=[e,i],l=u(this).reduxNoUiSlider({range:e,start:t,handles:1,step:d,connect:"lower",behaviour:"tap-drag",rtl:n,serialization:{resolution:1},slide:function(){var e=-1!==u(this).data("id").indexOf("angle")?"°":"%";u(this).next("#redux-slider-value-"+a).attr("value",l.val()),u(this).prev("label").html(r+": <strong>"+l.val()+e+"</strong>"),redux.field_objects.gradient_filters.changeValue(u(this),!0,s)}})})},redux.field_objects.gradient_filters.selectChange=function(i,d){u(i).find(".redux-gradient-select").on("change",function(){var e=u(this).val(),a=i.find(".slider-gradient-angle");"linear"===e?a.fadeIn():a.fadeOut(),redux.field_objects.gradient_filters.changeValue(u(this),!0,d)}),i.find(".redux-gradient-select").select2()},redux.field_objects.gradient_filters.changeValue=function(e,a,i){var d,i=e.parents(".redux-container-"+i),t=i.data("id"),r=i.find(".redux-gradient-preview"),n=r.css("display"),l=i.find("#"+t+"-from").val(),s=i.find("#"+t+"-to").val(),u=i.find(".redux-gradient-select").val(),c=Math.abs(-450)%360,o=i.find("#redux-slider-value-"+t+"-from").val(),f=i.find("#redux-slider-value-"+t+"-to").val(),i=i.find("#redux-slider-value-"+t+"-angle").val(),t=l+" "+o+"%, "+s+" "+f+"%)",l="linear"===u?(d="linear-gradient("+c+"deg,"+t,"linear-gradient("+i+"deg,"+t):d="radial-gradient(center, ellipse cover,"+t;"none"===n&&r.fadeIn(),r.css("background",d),r.css("background","-moz-"+l),r.css("background","-webkit-"+l),r.css("background","-o-"+l),r.css("background","-ms-"+l),a&&redux_change(e)}}(jQuery);
|
||||
@@ -0,0 +1,71 @@
|
||||
.redux-main {
|
||||
.redux-gradient-preview {
|
||||
height: 150px;
|
||||
margin-top: 10px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.redux-gradient-slider {
|
||||
margin-top: 10px;
|
||||
margin-right: 35px;
|
||||
}
|
||||
|
||||
.redux-gradient-type, div.colorGradient{
|
||||
vertical-align: top;
|
||||
.wp-picker-container, .color-transparency-check {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
.redux-gradient-type {
|
||||
margin-right: 20px;
|
||||
|
||||
select {
|
||||
width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
.slider-gradient-angle {
|
||||
width: 33%!important;
|
||||
margin-top: 10px;
|
||||
|
||||
input {
|
||||
width: 33%;
|
||||
}
|
||||
}
|
||||
|
||||
.slider-from-reach,
|
||||
.slider-to-reach,
|
||||
.slider-gradient-angle {
|
||||
margin-top: 10px;
|
||||
width: 33%;
|
||||
|
||||
.label {
|
||||
display: block;
|
||||
position: relative;
|
||||
font-size: 12px !important;
|
||||
text-align: left;
|
||||
color: #999999;
|
||||
margin: 4px 0 2px 0 !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
input:not(.slider-gradient-angle) {
|
||||
width: 90%;
|
||||
}
|
||||
}
|
||||
|
||||
.slider-to-reach,
|
||||
.slider-from-reach,
|
||||
.slider-gradient-angle {
|
||||
display: inline-block;
|
||||
margin-bottom: 10px;
|
||||
|
||||
strong {
|
||||
margin-bottom: 5px;
|
||||
margin-left: 3px;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
/**
|
||||
* Silence is golden.
|
||||
*
|
||||
* @package Redux
|
||||
*/
|
||||
|
||||
echo null;
|
||||
@@ -0,0 +1,189 @@
|
||||
<?php
|
||||
/**
|
||||
* Redux Image Filters Class
|
||||
*
|
||||
* @class Redux_Includes
|
||||
* @version 4.1.30
|
||||
* @package Redux Framework
|
||||
*/
|
||||
|
||||
defined( 'ABSPATH' ) || exit;
|
||||
|
||||
if ( ! class_exists( 'Redux_Image_Filters' ) ) {
|
||||
|
||||
/**
|
||||
* Class Redux_Image_Filters
|
||||
*/
|
||||
class Redux_Image_Filters {
|
||||
|
||||
/**
|
||||
* Render preview.
|
||||
*
|
||||
* @param array $data Data.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function render( array $data ): string {
|
||||
extract( $data ); // phpcs:ignore WordPress.PHP.DontExtract
|
||||
|
||||
$output = '';
|
||||
|
||||
$filter_arr = array(
|
||||
'grayscale',
|
||||
'blur',
|
||||
'sepia',
|
||||
'saturate',
|
||||
'opacity',
|
||||
'brightness',
|
||||
'contrast',
|
||||
'hue-rotate',
|
||||
'invert',
|
||||
);
|
||||
|
||||
// Make an array of in use filters.
|
||||
$in_use_filters = array();
|
||||
|
||||
foreach ( $filter_arr as $filter ) {
|
||||
if ( $field['filter'][ $filter ] ) {
|
||||
$in_use_filters[] = $filter;
|
||||
}
|
||||
}
|
||||
|
||||
$filters = rawurlencode( wp_json_encode( $in_use_filters ) );
|
||||
|
||||
$output .= '<div class="redux-' . $mode . '-filter-container" data-filters="' . $filters . '">';
|
||||
$output .= '<div class="container-label">' . esc_html__( 'Filters', 'redux-framework' ) . '</div>';
|
||||
|
||||
foreach ( $in_use_filters as $filter ) {
|
||||
$step = 1;
|
||||
$unit = self::get_filter_unit( $filter );
|
||||
|
||||
if ( 'grayscale' === $filter || 'invert' === $filter ) {
|
||||
$min = 0;
|
||||
$max = 100;
|
||||
} elseif ( 'blur' === $filter ) {
|
||||
$min = 0;
|
||||
$max = 30;
|
||||
} elseif ( 'sepia' === $filter || 'saturate' === $filter || 'opacity' === $filter ) {
|
||||
$min = 0;
|
||||
$max = 1;
|
||||
$step = .01;
|
||||
} elseif ( 'brightness' === $filter || 'contrast' === $filter ) {
|
||||
$min = 0;
|
||||
$max = 200;
|
||||
} elseif ( 'hue-rotate' === $filter ) {
|
||||
$min = 0;
|
||||
$max = 360;
|
||||
}
|
||||
|
||||
$disabled = 'pro-disabled';
|
||||
if ( $value['filter'][ $filter ]['checked'] ) {
|
||||
$disabled = '';
|
||||
}
|
||||
|
||||
$output .= '<div class="filter filter-' . $filter . '">';
|
||||
$output .= '<label for="' . esc_attr( $field['id'] ) . '-' . $filter . '" class="' . $disabled . '">';
|
||||
$output .= '<input type="checkbox" id="' . esc_attr( $field['id'] ) . '-' . $filter . '" class="checkbox" value="1"' . checked( $value['filter'][ $filter ]['checked'], '1', false ) . '/>';
|
||||
$output .= '<input type="hidden" data-val="1" value="' . esc_attr( $value['filter'][ $filter ]['checked'] ) . '" class="checkbox-check" name="' . esc_attr( $field['name'] . $field['name_suffix'] ) . '[filter][' . $filter . '][checked]"/>';
|
||||
$output .= ucfirst( $filter ) . ': ';
|
||||
$output .= '<span class="filter-value"><strong>' . $value['filter'][ $filter ]['value'] . $unit . '</strong></span>';
|
||||
$output .= '</label>';
|
||||
|
||||
$output .= '<div ';
|
||||
$output .= 'class="redux-' . $mode . '-slider redux-' . $mode . '-filter redux-filter redux-filter-' . $filter . esc_attr( $field['class'] ) . '"';
|
||||
$output .= 'id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] . '-' . $filter ) . '"';
|
||||
$output .= 'data-min="' . $min . '"';
|
||||
$output .= 'data-max="' . $max . '"';
|
||||
$output .= 'data-step="' . $step . '"';
|
||||
$output .= 'data-rtl="' . esc_attr( is_rtl() ) . '"';
|
||||
$output .= 'data-unit="' . $unit . '"';
|
||||
$output .= 'data-default = "' . esc_attr( $value['filter'][ $filter ]['value'] ) . '" ';
|
||||
$output .= disabled( filter_var( $value['filter'][ $filter ]['checked'], FILTER_VALIDATE_BOOLEAN ), false, false );
|
||||
$output .= '>';
|
||||
$output .= '</div>';
|
||||
|
||||
if ( '°' === $unit ) {
|
||||
$unit = 'deg';
|
||||
}
|
||||
|
||||
$output .= '<input ';
|
||||
$output .= 'type="hidden"';
|
||||
$output .= 'id="redux-slider-value-' . esc_attr( $field['id'] ) . '-' . $filter . '"';
|
||||
$output .= 'class="' . $mode . '-filter-' . $filter . '"';
|
||||
$output .= 'name="' . esc_attr( $field['name'] . $field['name_suffix'] ) . '[filter][' . $filter . '][value]"';
|
||||
$output .= 'value="' . esc_attr( $value['filter'][ $filter ]['value'] ) . '"';
|
||||
$output .= 'data-id="' . esc_attr( $field['id'] ) . '"';
|
||||
$output .= 'data-unit="' . $unit . '"';
|
||||
$output .= '/>';
|
||||
$output .= '</div>';
|
||||
}
|
||||
|
||||
$output .= '</div>';
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get filter unit.
|
||||
*
|
||||
* @param string $filter Filter type.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function get_filter_unit( string $filter ): string {
|
||||
if ( 'grayscale' === $filter || 'invert' === $filter || 'brightness' === $filter || 'contrast' === $filter ) {
|
||||
return '%';
|
||||
} elseif ( 'blur' === $filter ) {
|
||||
return 'px';
|
||||
} elseif ( 'hue-rotate' === $filter ) {
|
||||
return '°';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueue support files.
|
||||
*
|
||||
* @param bool $filters_enabled Filtered enabled bit.
|
||||
*/
|
||||
public static function enqueue( bool $filters_enabled ) {
|
||||
$min = Redux_Functions::is_min();
|
||||
|
||||
if ( $filters_enabled ) {
|
||||
if ( ! wp_style_is( 'redux-nouislider' ) ) {
|
||||
wp_enqueue_style(
|
||||
'redux-nouislider',
|
||||
Redux_Core::$url . 'assets/css/vendor/nouislider/redux.jquery.nouislider.css',
|
||||
array(),
|
||||
'5.0.0'
|
||||
);
|
||||
|
||||
wp_enqueue_script(
|
||||
'redux-nouislider',
|
||||
Redux_Core::$url . 'assets/js/vendor/nouislider/redux.jquery.nouislider' . $min . '.js',
|
||||
array( 'jquery' ),
|
||||
'5.0.0',
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
wp_enqueue_script(
|
||||
'redux-image-filters',
|
||||
Redux_Core::$url . 'inc/lib/image-filters/image-filters' . $min . '.js',
|
||||
array( 'jquery' ),
|
||||
Redux_Core::$version,
|
||||
true
|
||||
);
|
||||
|
||||
wp_enqueue_style(
|
||||
'redux-image-filters',
|
||||
Redux_Core::$url . 'inc/lib/image-filters/image-filters.css',
|
||||
array(),
|
||||
Redux_Core::$version
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
.redux-main .filter .redux-filter { width: 40%; display: inline-block; margin-left: 30px; }
|
||||
|
||||
.redux-main div[class^="redux-"][class$="-filter-container"] { padding-top: 20px; }
|
||||
|
||||
.redux-main div[class^="redux-"][class$="-filter-container"] .container-label { margin-bottom: 20px; padding-bottom: 1px; border-bottom: 1px solid #E7E7E7; font-weight: 600; font-size: 12px; color: #999; }
|
||||
|
||||
.redux-main div[class^="redux-"][class$="-filter-container"] .filter { display: inline-block; width: 47%; margin-bottom: 5px; }
|
||||
|
||||
.redux-main div[class^="redux-"][class$="-filter-container"] .filter label { display: inline-block; width: 135px; color: #999999; }
|
||||
|
||||
.redux-main div[class^="redux-"][class$="-filter-container"] .filter label.pro-disabled .filter-value { color: #cccccc; }
|
||||
|
||||
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmlsdGVycy5jc3MiLCJzb3VyY2VzIjpbImltYWdlLWZpbHRlcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUNJLFdBRE8sQ0FDUCxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQ2xCLEtBQUssRUFBRSxHQUFHLEVBQ1YsT0FBTyxFQUFFLFlBQVksRUFDckIsV0FBVyxFQUFFLElBQUksR0FDcEI7O0FBTEwsQUFPSSxXQVBPLENBT1AsR0FBRyxDQUFBLEFBQUEsS0FBQyxFQUFPLFFBQVEsQUFBZixFQUFnQixBQUFBLEtBQUMsRUFBTyxtQkFBbUIsQUFBMUIsRUFBNEIsRUFDN0MsV0FBVyxFQUFFLElBQUksR0E2QnBCOztBQXJDTCxBQVVRLFdBVkcsQ0FPUCxHQUFHLENBQUEsQUFBQSxLQUFDLEVBQU8sUUFBUSxBQUFmLEVBQWdCLEFBQUEsS0FBQyxFQUFPLG1CQUFtQixBQUExQixFQUdqQixnQkFBZ0IsQ0FBQyxFQUNiLGFBQWEsRUFBRSxJQUFJLEVBQ25CLGNBQWMsRUFBRSxHQUFHLEVBQ25CLGFBQWEsRUFBRSxpQkFBaUIsRUFDaEMsV0FBVyxFQUFFLEdBQUcsRUFDaEIsU0FBUyxFQUFFLElBQUksRUFDZixLQUFLLEVBQUUsSUFBSSxHQUNkOztBQWpCVCxBQW1CUSxXQW5CRyxDQU9QLEdBQUcsQ0FBQSxBQUFBLEtBQUMsRUFBTyxRQUFRLEFBQWYsRUFBZ0IsQUFBQSxLQUFDLEVBQU8sbUJBQW1CLEFBQTFCLEVBWWpCLE9BQU8sQ0FBQyxFQUNKLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEtBQUssRUFBRSxHQUFHLEVBQ1YsYUFBYSxFQUFFLEdBQUcsR0FjckI7O0FBcENULEFBd0JZLFdBeEJELENBT1AsR0FBRyxDQUFBLEFBQUEsS0FBQyxFQUFPLFFBQVEsQUFBZixFQUFnQixBQUFBLEtBQUMsRUFBTyxtQkFBbUIsQUFBMUIsRUFZakIsT0FBTyxDQUtILEtBQUssQ0FBQyxFQUNGLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEtBQUssRUFBRSxLQUFLLEVBQ1osS0FBSyxFQUFFLE9BQU8sR0FRakI7O0FBbkNiLEFBK0JvQixXQS9CVCxDQU9QLEdBQUcsQ0FBQSxBQUFBLEtBQUMsRUFBTyxRQUFRLEFBQWYsRUFBZ0IsQUFBQSxLQUFDLEVBQU8sbUJBQW1CLEFBQTFCLEVBWWpCLE9BQU8sQ0FLSCxLQUFLLEFBS0EsYUFBYSxDQUVWLGFBQWEsQ0FBQyxFQUNWLEtBQUssRUFBRSxPQUFPLEdBQ2pCIn0= */
|
||||
|
||||
/*# sourceMappingURL=image-filters.css.map */
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["image-filters.scss","image-filters.css"],"names":[],"mappings":"AAAA,oCAAA,UAOO,ECJC,qBAAqB,EDH7B,iBAOe,EAAA;;AAPf,+DAAA,iBAOe,EAAA;;AAPf,gFCWY,mBAAmB,EACnB,mBAAmB,EACnB,gCAAgC,EAChC,gBAAgB,EAChB,eAAe,EACf,WAAW,EAAA;;ADhBvB,uECoBY,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAAA;;ADtB9B,6ECyBgB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EAAA;;AD3B9B,wGCgCwB,cAAc,EAAA;;AApBtC,y/CAAy/C","file":"image-filters.css","sourcesContent":[".redux-main {\r\n .filter .redux-filter {\r\n width: 40%;\r\n display: inline-block;\r\n margin-left: 30px; \r\n }\r\n \r\n div[class^=\"redux-\"][class$=\"-filter-container\"] {\r\n padding-top: 20px;\r\n \r\n .container-label {\r\n margin-bottom: 20px;\r\n padding-bottom: 1px;\r\n border-bottom: 1px solid #E7E7E7; \r\n font-weight: 600;\r\n font-size: 12px;\r\n color: #999; \r\n }\r\n \r\n .filter {\r\n display: inline-block;\r\n width: 47%;\r\n margin-bottom: 5px;\r\n\r\n label {\r\n display: inline-block;\r\n width: 135px;\r\n color: #999999;\r\n\r\n &.pro-disabled {\r\n \r\n .filter-value {\r\n color: #cccccc;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}",".redux-main .filter .redux-filter { width: 40%; display: inline-block; margin-left: 30px; }\n\n.redux-main div[class^=\"redux-\"][class$=\"-filter-container\"] { padding-top: 20px; }\n\n.redux-main div[class^=\"redux-\"][class$=\"-filter-container\"] .container-label { margin-bottom: 20px; padding-bottom: 1px; border-bottom: 1px solid #E7E7E7; font-weight: 600; font-size: 12px; color: #999; }\n\n.redux-main div[class^=\"redux-\"][class$=\"-filter-container\"] .filter { display: inline-block; width: 47%; margin-bottom: 5px; }\n\n.redux-main div[class^=\"redux-\"][class$=\"-filter-container\"] .filter label { display: inline-block; width: 135px; color: #999999; }\n\n.redux-main div[class^=\"redux-\"][class$=\"-filter-container\"] .filter label.pro-disabled .filter-value { color: #cccccc; }\n\n/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmlsdGVycy5jc3MiLCJzb3VyY2VzIjpbImltYWdlLWZpbHRlcnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxBQUNJLFdBRE8sQ0FDUCxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQ2xCLEtBQUssRUFBRSxHQUFHLEVBQ1YsT0FBTyxFQUFFLFlBQVksRUFDckIsV0FBVyxFQUFFLElBQUksR0FDcEI7O0FBTEwsQUFPSSxXQVBPLENBT1AsR0FBRyxDQUFBLEFBQUEsS0FBQyxFQUFPLFFBQVEsQUFBZixFQUFnQixBQUFBLEtBQUMsRUFBTyxtQkFBbUIsQUFBMUIsRUFBNEIsRUFDN0MsV0FBVyxFQUFFLElBQUksR0E2QnBCOztBQXJDTCxBQVVRLFdBVkcsQ0FPUCxHQUFHLENBQUEsQUFBQSxLQUFDLEVBQU8sUUFBUSxBQUFmLEVBQWdCLEFBQUEsS0FBQyxFQUFPLG1CQUFtQixBQUExQixFQUdqQixnQkFBZ0IsQ0FBQyxFQUNiLGFBQWEsRUFBRSxJQUFJLEVBQ25CLGNBQWMsRUFBRSxHQUFHLEVBQ25CLGFBQWEsRUFBRSxpQkFBaUIsRUFDaEMsV0FBVyxFQUFFLEdBQUcsRUFDaEIsU0FBUyxFQUFFLElBQUksRUFDZixLQUFLLEVBQUUsSUFBSSxHQUNkOztBQWpCVCxBQW1CUSxXQW5CRyxDQU9QLEdBQUcsQ0FBQSxBQUFBLEtBQUMsRUFBTyxRQUFRLEFBQWYsRUFBZ0IsQUFBQSxLQUFDLEVBQU8sbUJBQW1CLEFBQTFCLEVBWWpCLE9BQU8sQ0FBQyxFQUNKLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEtBQUssRUFBRSxHQUFHLEVBQ1YsYUFBYSxFQUFFLEdBQUcsR0FjckI7O0FBcENULEFBd0JZLFdBeEJELENBT1AsR0FBRyxDQUFBLEFBQUEsS0FBQyxFQUFPLFFBQVEsQUFBZixFQUFnQixBQUFBLEtBQUMsRUFBTyxtQkFBbUIsQUFBMUIsRUFZakIsT0FBTyxDQUtILEtBQUssQ0FBQyxFQUNGLE9BQU8sRUFBRSxZQUFZLEVBQ3JCLEtBQUssRUFBRSxLQUFLLEVBQ1osS0FBSyxFQUFFLE9BQU8sR0FRakI7O0FBbkNiLEFBK0JvQixXQS9CVCxDQU9QLEdBQUcsQ0FBQSxBQUFBLEtBQUMsRUFBTyxRQUFRLEFBQWYsRUFBZ0IsQUFBQSxLQUFDLEVBQU8sbUJBQW1CLEFBQTFCLEVBWWpCLE9BQU8sQ0FLSCxLQUFLLEFBS0EsYUFBYSxDQUVWLGFBQWEsQ0FBQyxFQUNWLEtBQUssRUFBRSxPQUFPLEdBQ2pCIn0= */\n\n/*# sourceMappingURL=image-filters.css.map */\n"]}
|
||||
@@ -0,0 +1,141 @@
|
||||
/* global jQuery, redux_change, redux */
|
||||
|
||||
(function( $ ) {
|
||||
'use strict';
|
||||
|
||||
redux.field_objects = redux.field_objects || {};
|
||||
redux.field_objects.image_filters = redux.field_objects.image_filters || {};
|
||||
|
||||
redux.field_objects.image_filters.sliderInit = function( el, mode ) {
|
||||
el.find( '.redux-' + mode + '-slider' ).each(
|
||||
function() {
|
||||
var mainID = $( this ).data( 'id' );
|
||||
var minVal = $( this ).data( 'min' );
|
||||
var maxVal = $( this ).data( 'max' );
|
||||
var step = $( this ).data( 'step' );
|
||||
var def = $( this ).data( 'default' );
|
||||
var unit = $( this ).data( 'unit' );
|
||||
var rtl = Boolean( $( this ).data( 'rtl' ) );
|
||||
var range = [minVal, maxVal];
|
||||
|
||||
var slider = $( this ).reduxNoUiSlider(
|
||||
{
|
||||
range: range,
|
||||
start: def,
|
||||
handles: 1,
|
||||
step: step,
|
||||
connect: 'lower',
|
||||
behaviour: 'tap-drag',
|
||||
rtl: rtl,
|
||||
unit: unit,
|
||||
serialization: {
|
||||
resolution: step
|
||||
},
|
||||
slide: function() {
|
||||
var val = slider.val();
|
||||
|
||||
if ( '0.00' === val ) {
|
||||
val = 0;
|
||||
} else if ( '1.00' === val ) {
|
||||
val = 1;
|
||||
}
|
||||
|
||||
$( this ).next( '#redux-slider-value-' + mainID ).attr(
|
||||
'value',
|
||||
val
|
||||
);
|
||||
|
||||
$( this ).prev( 'label' ).find( 'span' ).html(
|
||||
'<strong>' + val + unit + '</strong>'
|
||||
);
|
||||
|
||||
redux.field_objects.image_filters.changeValue( $( this ), true, mode );
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
redux.field_objects.image_filters.changeValue = function( el, update, mode ) {
|
||||
var parent = el.parents( '.redux-container-' + mode );
|
||||
var container = parent.find( '.redux-' + mode + '-filter-container' );
|
||||
|
||||
var filterCSS = '';
|
||||
|
||||
var isChecked;
|
||||
var mainID;
|
||||
var preview;
|
||||
var img;
|
||||
var filters;
|
||||
var val;
|
||||
var unit;
|
||||
var hide;
|
||||
|
||||
if ( container.length > 0 ) {
|
||||
mainID = parent.data( 'id' );
|
||||
preview = parent.find( '.screenshot' );
|
||||
img = preview.find( 'img' );
|
||||
filters = container.data( 'filters' );
|
||||
|
||||
filters = decodeURIComponent( filters );
|
||||
filters = JSON.parse( filters );
|
||||
|
||||
$.each(
|
||||
filters,
|
||||
function( idx, filter ) {
|
||||
isChecked = container.find( '#' + mainID + '-' + filter ).is( ':checked' );
|
||||
|
||||
if ( true === isChecked ) {
|
||||
val = container.find( '#redux-slider-value-' + mainID + '-' + filter ).val();
|
||||
unit = container.find( '#redux-slider-value-' + mainID + '-' + filter ).data( 'unit' );
|
||||
|
||||
filterCSS = filterCSS + ' ' + filter + '(' + val + unit + ')';
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
img.css(
|
||||
{
|
||||
'filter': filterCSS,
|
||||
'-webkit-filter': filterCSS
|
||||
}
|
||||
);
|
||||
|
||||
hide = preview.css( 'display' );
|
||||
|
||||
if ( 'none' === hide ) {
|
||||
preview.fadeIn();
|
||||
}
|
||||
|
||||
if ( update ) {
|
||||
redux_change( el );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
redux.field_objects.image_filters.checkbox = function( el, mode ) {
|
||||
el.find( '.checkbox' ).on(
|
||||
'click',
|
||||
function() {
|
||||
var val = 0;
|
||||
var slider = $( this ).parent().next( '.redux-' + mode + '-slider' );
|
||||
var label = $( this ).parent( 'label' );
|
||||
|
||||
if ( $( this ).is( ':checked' ) ) {
|
||||
val = $( this ).parent().find( '.checkbox-check' ).attr( 'data-val' );
|
||||
|
||||
slider.attr( 'disabled', false );
|
||||
label.removeClass( 'pro-disabled' );
|
||||
} else {
|
||||
slider.attr( 'disabled', true );
|
||||
label.addClass( 'pro-disabled' );
|
||||
}
|
||||
|
||||
$( this ).parent().find( '.checkbox-check' ).val( val );
|
||||
|
||||
redux.field_objects.image_filters.changeValue( $( this ), true, mode );
|
||||
}
|
||||
);
|
||||
};
|
||||
} )( jQuery );
|
||||
1
wp-content/plugins/eagle-booking/include/redux/inc/lib/image-filters/image-filters.min.js
vendored
Normal file
1
wp-content/plugins/eagle-booking/include/redux/inc/lib/image-filters/image-filters.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(o){"use strict";redux.field_objects=redux.field_objects||{},redux.field_objects.image_filters=redux.field_objects.image_filters||{},redux.field_objects.image_filters.sliderInit=function(e,l){e.find(".redux-"+l+"-slider").each(function(){var i=o(this).data("id"),e=o(this).data("min"),t=o(this).data("max"),a=o(this).data("step"),d=o(this).data("default"),s=o(this).data("unit"),r=Boolean(o(this).data("rtl")),e=[e,t],n=o(this).reduxNoUiSlider({range:e,start:d,handles:1,step:a,connect:"lower",behaviour:"tap-drag",rtl:r,unit:s,serialization:{resolution:a},slide:function(){var e=n.val();"0.00"===e?e=0:"1.00"===e&&(e=1),o(this).next("#redux-slider-value-"+i).attr("value",e),o(this).prev("label").find("span").html("<strong>"+e+s+"</strong>"),redux.field_objects.image_filters.changeValue(o(this),!0,l)}})})},redux.field_objects.image_filters.changeValue=function(e,i,t){var a,d,s,r,n=e.parents(".redux-container-"+t),l=n.find(".redux-"+t+"-filter-container"),c="";0<l.length&&(a=n.data("id"),n=(t=n.find(".screenshot")).find("img"),d=l.data("filters"),d=decodeURIComponent(d),d=JSON.parse(d),o.each(d,function(e,i){!0===l.find("#"+a+"-"+i).is(":checked")&&(s=l.find("#redux-slider-value-"+a+"-"+i).val(),r=l.find("#redux-slider-value-"+a+"-"+i).data("unit"),c=c+" "+i+"("+s+r+")")}),n.css({filter:c,"-webkit-filter":c}),"none"===t.css("display")&&t.fadeIn(),i)&&redux_change(e)},redux.field_objects.image_filters.checkbox=function(e,a){e.find(".checkbox").on("click",function(){var e=0,i=o(this).parent().next(".redux-"+a+"-slider"),t=o(this).parent("label");o(this).is(":checked")?(e=o(this).parent().find(".checkbox-check").attr("data-val"),i.attr("disabled",!1),t.removeClass("pro-disabled")):(i.attr("disabled",!0),t.addClass("pro-disabled")),o(this).parent().find(".checkbox-check").val(e),redux.field_objects.image_filters.changeValue(o(this),!0,a)})}}(jQuery);
|
||||
@@ -0,0 +1,39 @@
|
||||
.redux-main {
|
||||
.filter .redux-filter {
|
||||
width: 40%;
|
||||
display: inline-block;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
div[class^="redux-"][class$="-filter-container"] {
|
||||
padding-top: 20px;
|
||||
|
||||
.container-label {
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 1px;
|
||||
border-bottom: 1px solid #E7E7E7;
|
||||
font-weight: 600;
|
||||
font-size: 12px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.filter {
|
||||
display: inline-block;
|
||||
width: 47%;
|
||||
margin-bottom: 5px;
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
width: 135px;
|
||||
color: #999999;
|
||||
|
||||
&.pro-disabled {
|
||||
|
||||
.filter-value {
|
||||
color: #cccccc;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
/**
|
||||
* Silence is golden.
|
||||
*
|
||||
* @package Redux
|
||||
*/
|
||||
|
||||
echo null;
|
||||
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
/**
|
||||
* Silence is golden.
|
||||
*
|
||||
* @package Redux Framework
|
||||
*/
|
||||
|
||||
echo null;
|
||||
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* Redux_Instances Functions
|
||||
*
|
||||
* @package Redux_Framework
|
||||
* @subpackage Core
|
||||
* @deprecated Maintained for backward compatibility with v3.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Retrieve an instance of ReduxFramework
|
||||
*
|
||||
* @depreciated
|
||||
*
|
||||
* @param string $opt_name the defined opt_name as passed in $args.
|
||||
*
|
||||
* @return object ReduxFramework
|
||||
*/
|
||||
function get_redux_instance( string $opt_name ) {
|
||||
_deprecated_function( __FUNCTION__, '4.0', 'Redux::instance($opt_name)' );
|
||||
|
||||
return Redux::instance( $opt_name );
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all instances of ReduxFramework
|
||||
* as an associative array.
|
||||
*
|
||||
* @depreciated
|
||||
* @return array format ['opt_name' => $ReduxFramework]
|
||||
*/
|
||||
function get_all_redux_instances(): array {
|
||||
_deprecated_function( __FUNCTION__, '4.0', 'Redux::all_instances()' );
|
||||
|
||||
return Redux::all_instances();
|
||||
}
|
||||
Reference in New Issue
Block a user