/home/bonphmya/mercandestockages.store/wp-content/themes/digitaz/inc/elementor/class-elementor.php
<?php

if (!defined('ABSPATH')) {
    exit;
}

if (!class_exists('Digitaz_Elementor')) :

    /**
     * The Digitaz Elementor Integration class
     */
    class Digitaz_Elementor {
        private $suffix = '';

        public function __construct() {
            $this->suffix = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) ? '' : '.min';

            add_action('wp', [$this, 'register_auto_scripts_frontend']);
            add_action('elementor/init', array($this, 'add_category'));
            add_action('wp_enqueue_scripts', [$this, 'add_scripts'], 15);
            add_action('elementor/widgets/register', array($this, 'customs_widgets'));
            add_action('elementor/widgets/register', array($this, 'include_widgets'));
            add_action('elementor/frontend/after_enqueue_scripts', [$this, 'add_js']);

            // Custom Animation Scroll
            add_filter('elementor/controls/animations/additional_animations', [$this, 'add_animations_scroll']);

            // Elementor Fix Noitice WooCommerce
            add_action('elementor/editor/before_enqueue_scripts', array($this, 'woocommerce_fix_notice'));

            // Backend
            add_action('elementor/editor/after_enqueue_styles', [$this, 'add_style_editor'], 99);

            // Add Icon Custom
            add_action('elementor/icons_manager/native', [$this, 'add_icons_native']);
            add_action('elementor/controls/controls_registered', [$this, 'add_icons']);

            // Add Breakpoints
            add_action('wp_enqueue_scripts', 'digitaz_elementor_breakpoints', 9999);

            if (!digitaz_is_elementor_pro_activated()) {
                require trailingslashit(get_template_directory()) . 'inc/elementor/custom-css.php';
                require trailingslashit(get_template_directory()) . 'inc/elementor/sticky-section.php';
                if (is_admin()) {
                    add_action('manage_elementor_library_posts_columns', [$this, 'admin_columns_headers']);
                    add_action('manage_elementor_library_posts_custom_column', [$this, 'admin_columns_content'], 10, 2);
                }
            }

            add_filter('elementor/fonts/additional_fonts', [$this, 'additional_fonts']);
            add_action('wp_enqueue_scripts', [$this, 'elementor_kit']);
        }

        public function elementor_kit() {
            $active_kit_id = Elementor\Plugin::$instance->kits_manager->get_active_id();
            Elementor\Plugin::$instance->kits_manager->frontend_before_enqueue_styles();
            $myvals = get_post_meta($active_kit_id, '_elementor_page_settings', true);
            if (!empty($myvals)) {
                $css = '';
                foreach ($myvals['system_colors'] as $key => $value) {
                    $css .= $value['color'] !== '' ? '--' . $value['_id'] . ':' . $value['color'] . ';' : '';
                }

                $var = "body{{$css}}";
                wp_add_inline_style('digitaz-style', $var);
            }
        }

        public function additional_fonts($fonts) {
            $fonts["Heebo"]     = 'googlefonts';
            return $fonts;
        }

        public function admin_columns_headers($defaults) {
            $defaults['shortcode'] = esc_html__('Shortcode', 'digitaz');

            return $defaults;
        }

        public function admin_columns_content($column_name, $post_id) {
            if ('shortcode' === $column_name) {
                ob_start();
                ?>
                <input class="elementor-shortcode-input" type="text" readonly onfocus="this.select()" value="[hfe_template id='<?php echo esc_attr($post_id); ?>']"/>
                <?php
                ob_get_contents();
            }
        }

        public function add_js() {
            global $digitaz_version;
            wp_enqueue_script('digitaz-elementor-frontend', get_theme_file_uri('/assets/js/elementor-frontend.js'), [], $digitaz_version);
        }

        public function add_style_editor() {
            global $digitaz_version;
            wp_enqueue_style('digitaz-elementor-editor-icon', get_theme_file_uri('/assets/css/admin/elementor/icons.css'), [], $digitaz_version);
        }

        public function add_scripts() {
            global $digitaz_version;
            $suffix = (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) ? '' : '.min';
            wp_enqueue_style('digitaz-elementor', get_template_directory_uri() . '/assets/css/base/elementor.css', '', $digitaz_version);
            wp_style_add_data('digitaz-elementor', 'rtl', 'replace');

            // Add Scripts
            wp_register_script('tweenmax', get_theme_file_uri('/assets/js/vendor/TweenMax.min.js'), array('jquery'), '1.11.1');
            wp_register_script('parallaxmouse', get_theme_file_uri('/assets/js/vendor/jquery-parallax.js'), array('jquery'), $digitaz_version);

            if (digitaz_elementor_check_type('animated-bg-parallax')) {
                wp_enqueue_script('tweenmax');
                wp_enqueue_script('jquery-panr', get_theme_file_uri('/assets/js/vendor/jquery-panr' . $suffix . '.js'), array('jquery'), '0.0.1');
            }
        }


        public function register_auto_scripts_frontend() {
            global $digitaz_version;
            wp_register_script('digitaz-elementor-brand', get_theme_file_uri('/assets/js/elementor/brand.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-countdown', get_theme_file_uri('/assets/js/elementor/countdown.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-dokan-store', get_theme_file_uri('/assets/js/elementor/dokan-store.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-image-gallery', get_theme_file_uri('/assets/js/elementor/image-gallery.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-posts-grid', get_theme_file_uri('/assets/js/elementor/posts-grid.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-product-categories', get_theme_file_uri('/assets/js/elementor/product-categories.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-product-tab', get_theme_file_uri('/assets/js/elementor/product-tab.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-products', get_theme_file_uri('/assets/js/elementor/products.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-tabs', get_theme_file_uri('/assets/js/elementor/tabs.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-team-box', get_theme_file_uri('/assets/js/elementor/team-box.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-testimonial', get_theme_file_uri('/assets/js/elementor/testimonial.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
            wp_register_script('digitaz-elementor-video', get_theme_file_uri('/assets/js/elementor/video.js'), array('jquery','elementor-frontend'), $digitaz_version, true);
           
        }

        public function add_category() {
            Elementor\Plugin::instance()->elements_manager->add_category(
                'digitaz-addons',
                array(
                    'title' => esc_html__('Digitaz Addons', 'digitaz'),
                    'icon'  => 'fa fa-plug',
                ),
                1);
        }

        public function add_animations_scroll($animations) {
            $animations['Digitaz Animation'] = [
                'opal-move-up'    => 'Move Up',
                'opal-move-down'  => 'Move Down',
                'opal-move-left'  => 'Move Left',
                'opal-move-right' => 'Move Right',
                'opal-flip'       => 'Flip',
                'opal-helix'      => 'Helix',
                'opal-scale-up'   => 'Scale',
                'opal-am-popup'   => 'Popup',
            ];

            return $animations;
        }

        public function customs_widgets() {
            $files = glob(get_theme_file_path('/inc/elementor/custom-widgets/*.php'));
            foreach ($files as $file) {
                if (file_exists($file)) {
                    require_once $file;
                }
            }
        }

        /**
         * @param $widgets_manager Elementor\Widgets_Manager
         */
        public function include_widgets($widgets_manager) {
            $files = glob(get_theme_file_path('/inc/elementor/widgets/*.php'));
            foreach ($files as $file) {
                if (file_exists($file)) {
                    require_once $file;
                }
            }
        }

        public function woocommerce_fix_notice() {
            if (digitaz_is_woocommerce_activated()) {
                remove_action('woocommerce_cart_is_empty', 'woocommerce_output_all_notices', 5);
                remove_action('woocommerce_shortcode_before_product_cat_loop', 'woocommerce_output_all_notices', 10);
                remove_action('woocommerce_before_shop_loop', 'woocommerce_output_all_notices', 10);
                remove_action('woocommerce_before_single_product', 'woocommerce_output_all_notices', 10);
                remove_action('woocommerce_before_cart', 'woocommerce_output_all_notices', 10);
                remove_action('woocommerce_before_checkout_form', 'woocommerce_output_all_notices', 10);
                remove_action('woocommerce_account_content', 'woocommerce_output_all_notices', 10);
                remove_action('woocommerce_before_customer_login_form', 'woocommerce_output_all_notices', 10);
            }
        }

        public function add_icons( $manager ) {
            $new_icons = json_decode( '{"digitaz-icon-account":"account","digitaz-icon-address":"address","digitaz-icon-angle-down":"angle-down","digitaz-icon-angle-left":"angle-left","digitaz-icon-angle-right":"angle-right","digitaz-icon-angle-up":"angle-up","digitaz-icon-arrow-drop-down-fill":"arrow-drop-down-fill","digitaz-icon-bag-alt":"bag-alt","digitaz-icon-calendar":"calendar","digitaz-icon-camera-line":"camera-line","digitaz-icon-cart-plus":"cart-plus","digitaz-icon-cart":"cart","digitaz-icon-chat":"chat","digitaz-icon-check-square-solid":"check-square-solid","digitaz-icon-chevron-double-left":"chevron-double-left","digitaz-icon-chevron-double-right":"chevron-double-right","digitaz-icon-clock":"clock","digitaz-icon-compare":"compare","digitaz-icon-computer-line":"computer-line","digitaz-icon-customer-service-2-line":"customer-service-2-line","digitaz-icon-customer-service":"customer-service","digitaz-icon-discount":"discount","digitaz-icon-drop-left":"drop-left","digitaz-icon-drop-right":"drop-right","digitaz-icon-eye":"eye","digitaz-icon-facebook-f":"facebook-f","digitaz-icon-featured":"featured","digitaz-icon-filter-ul":"filter-ul","digitaz-icon-free-shipping":"free-shipping","digitaz-icon-funds-line":"funds-line","digitaz-icon-gamepad-line":"gamepad-line","digitaz-icon-google-plus-g":"google-plus-g","digitaz-icon-heart-1":"heart-1","digitaz-icon-left-arrow":"left-arrow","digitaz-icon-linkedin-in":"linkedin-in","digitaz-icon-list-ul":"list-ul","digitaz-icon-map-marker-alt":"map-marker-alt","digitaz-icon-medal-2-line":"medal-2-line","digitaz-icon-mission":"mission","digitaz-icon-mouse-line":"mouse-line","digitaz-icon-offer":"offer","digitaz-icon-pen":"pen","digitaz-icon-phone":"phone","digitaz-icon-play-circle":"play-circle","digitaz-icon-popular":"popular","digitaz-icon-quote":"quote","digitaz-icon-return":"return","digitaz-icon-right-arrow-cicrle":"right-arrow-cicrle","digitaz-icon-right-arrow":"right-arrow","digitaz-icon-secure-payment":"secure-payment","digitaz-icon-shopping-bag":"shopping-bag","digitaz-icon-sliders-v":"sliders-v","digitaz-icon-star-alt":"star-alt","digitaz-icon-tablet-line":"tablet-line","digitaz-icon-truck-line":"truck-line","digitaz-icon-tv-line":"tv-line","digitaz-icon-twitte-1":"twitte-1","digitaz-icon-values":"values","digitaz-icon-vision":"vision","digitaz-icon-watches":"watches","digitaz-icon-360":"360","digitaz-icon-bars":"bars","digitaz-icon-cart-empty":"cart-empty","digitaz-icon-check-square":"check-square","digitaz-icon-circle":"circle","digitaz-icon-cloud-download-alt":"cloud-download-alt","digitaz-icon-comment":"comment","digitaz-icon-comments":"comments","digitaz-icon-contact":"contact","digitaz-icon-credit-card":"credit-card","digitaz-icon-dot-circle":"dot-circle","digitaz-icon-edit":"edit","digitaz-icon-envelope":"envelope","digitaz-icon-expand-alt":"expand-alt","digitaz-icon-external-link-alt":"external-link-alt","digitaz-icon-file-alt":"file-alt","digitaz-icon-file-archive":"file-archive","digitaz-icon-filter":"filter","digitaz-icon-folder-open":"folder-open","digitaz-icon-folder":"folder","digitaz-icon-frown":"frown","digitaz-icon-gift":"gift","digitaz-icon-grid":"grid","digitaz-icon-grip-horizontal":"grip-horizontal","digitaz-icon-heart-fill":"heart-fill","digitaz-icon-heart":"heart","digitaz-icon-history":"history","digitaz-icon-home":"home","digitaz-icon-info-circle":"info-circle","digitaz-icon-instagram":"instagram","digitaz-icon-level-up-alt":"level-up-alt","digitaz-icon-list":"list","digitaz-icon-map-marker-check":"map-marker-check","digitaz-icon-meh":"meh","digitaz-icon-minus-circle":"minus-circle","digitaz-icon-minus":"minus","digitaz-icon-mobile-android-alt":"mobile-android-alt","digitaz-icon-money-bill":"money-bill","digitaz-icon-pencil-alt":"pencil-alt","digitaz-icon-plus-circle":"plus-circle","digitaz-icon-plus":"plus","digitaz-icon-random":"random","digitaz-icon-reply-all":"reply-all","digitaz-icon-reply":"reply","digitaz-icon-search-plus":"search-plus","digitaz-icon-search":"search","digitaz-icon-shield-check":"shield-check","digitaz-icon-shopping-basket":"shopping-basket","digitaz-icon-shopping-cart":"shopping-cart","digitaz-icon-sign-out-alt":"sign-out-alt","digitaz-icon-smile":"smile","digitaz-icon-spinner":"spinner","digitaz-icon-square":"square","digitaz-icon-star":"star","digitaz-icon-store":"store","digitaz-icon-sync":"sync","digitaz-icon-tachometer-alt":"tachometer-alt","digitaz-icon-thumbtack":"thumbtack","digitaz-icon-ticket":"ticket","digitaz-icon-times-circle":"times-circle","digitaz-icon-times-square":"times-square","digitaz-icon-times":"times","digitaz-icon-trophy-alt":"trophy-alt","digitaz-icon-truck":"truck","digitaz-icon-user":"user","digitaz-icon-video":"video","digitaz-icon-wishlist-empty":"wishlist-empty","digitaz-icon-adobe":"adobe","digitaz-icon-amazon":"amazon","digitaz-icon-android":"android","digitaz-icon-angular":"angular","digitaz-icon-apper":"apper","digitaz-icon-apple":"apple","digitaz-icon-atlassian":"atlassian","digitaz-icon-behance":"behance","digitaz-icon-bitbucket":"bitbucket","digitaz-icon-bitcoin":"bitcoin","digitaz-icon-bity":"bity","digitaz-icon-bluetooth":"bluetooth","digitaz-icon-btc":"btc","digitaz-icon-centos":"centos","digitaz-icon-chrome":"chrome","digitaz-icon-codepen":"codepen","digitaz-icon-cpanel":"cpanel","digitaz-icon-discord":"discord","digitaz-icon-dochub":"dochub","digitaz-icon-docker":"docker","digitaz-icon-dribbble":"dribbble","digitaz-icon-dropbox":"dropbox","digitaz-icon-drupal":"drupal","digitaz-icon-ebay":"ebay","digitaz-icon-facebook":"facebook","digitaz-icon-figma":"figma","digitaz-icon-firefox":"firefox","digitaz-icon-google-plus":"google-plus","digitaz-icon-google":"google","digitaz-icon-grunt":"grunt","digitaz-icon-gulp":"gulp","digitaz-icon-html5":"html5","digitaz-icon-joomla":"joomla","digitaz-icon-link-brand":"link-brand","digitaz-icon-linkedin":"linkedin","digitaz-icon-mailchimp":"mailchimp","digitaz-icon-opencart":"opencart","digitaz-icon-paypal":"paypal","digitaz-icon-pinterest-p":"pinterest-p","digitaz-icon-reddit":"reddit","digitaz-icon-skype":"skype","digitaz-icon-slack":"slack","digitaz-icon-snapchat":"snapchat","digitaz-icon-spotify":"spotify","digitaz-icon-trello":"trello","digitaz-icon-twitter":"twitter","digitaz-icon-vimeo":"vimeo","digitaz-icon-whatsapp":"whatsapp","digitaz-icon-wordpress":"wordpress","digitaz-icon-yoast":"yoast","digitaz-icon-youtube":"youtube"}', true );
			$icons     = $manager->get_control( 'icon' )->get_settings( 'options' );
			$new_icons = array_merge(
				$new_icons,
				$icons
			);
			// Then we set a new list of icons as the options of the icon control
			$manager->get_control( 'icon' )->set_settings( 'options', $new_icons ); 
        }

        public function add_icons_native($tabs) {
            global $digitaz_version;
            $tabs['opal-custom'] = [
                'name'          => 'digitaz-icon',
                'label'         => esc_html__('Digitaz Icon', 'digitaz'),
                'prefix'        => 'digitaz-icon-',
                'displayPrefix' => 'digitaz-icon-',
                'labelIcon'     => 'fab fa-font-awesome-alt',
                'ver'           => $digitaz_version,
                'fetchJson'     => get_theme_file_uri('/inc/elementor/icons.json'),
                'native'        => true,
            ];

            return $tabs;
        }
    }

endif;

return new Digitaz_Elementor();