Plugin Directory

Changeset 3454326


Ignore:
Timestamp:
02/05/2026 07:44:45 AM (7 weeks ago)
Author:
addonsorg
Message:

Release new version

Location:
pdf-for-gravity-forms
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • pdf-for-gravity-forms/tags/6.5.1/backend/css/main.css

    r3448704 r3454326  
    14411441    font-weight: 600;
    14421442    min-width: 200px;
    1443     padding: 0;
     1443    padding: 15px 30px;
    14441444}
    14451445.yeepdf-setup-title-input {
    14461446  width: 100%;
    1447   padding: 0 50px;
     1447  padding: 0 0px;
    14481448}
    14491449.yeepdf-setup-title-input input, .yeepdf-setup-title-input select {
  • pdf-for-gravity-forms/tags/6.5.1/backend/src/main.js

    r3448704 r3454326  
    1 (function($) {
    2     "use strict";
    3     $( document ).ready( function () {
    4         // Save bulder to josn
    5         $.fn.yeepdf_save_type = function (type) {
    6             var html_emlement = $(this);
    7             var type = $(this).data("type");
    8             var container_style = {};
    9             var container_attr = {};
    10             var inner_style = {};
    11             var inner_attr = {};
    12             var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
    13             var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
    14             var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
    15             //Save style container
    16             $.each( style_container_element, function( key, value ) {
    17                 var data = html_emlement.css(value);
    18                 container_style[value] = data;
    19             });
    20             //Save style inner
    21             $.each( style_inner_element, function( key, value ) {
    22                 var style_content= {};
    23                 $.each( value , function( index, style ) {
    24                   var data = html_emlement.find(key).css(style);
    25                   switch(style) {
    26                     case "border-style":
    27                     case "border-color":
    28                       break;
    29                     case "width":
    30                       var el = html_emlement.find(key)[0];
    31                       var data1 = el ? el.style.width : "auto";
    32                       style_content[style] = data1;
    33                       break;
    34                     case "height":
    35                       var el = html_emlement.find(key)[0];
    36                       var data1 = el ? el.style.height : "auto";
    37                       style_content[style] = data1;
    38                       break;
    39                     case "border-width":
    40                       var border_style = html_emlement.find(key).css("border-style");
    41                       var border_color = html_emlement.find(key).css("border-color");
    42                       style_content["border"] = data +" "+ border_style + " " +border_color;
    43                       break;
    44                     default:
    45                       style_content[style] = data
    46                       break
    47                   }
    48                 })
    49                 inner_style[key] = style_content;
    50             });
    51             //Save attr
    52             $.each( attr_inner_element, function( key, value ) {
    53                 var attr_content= {};
    54                 $.each( value , function( index, style ) {
    55                     switch(style) {
    56                       case "text":
    57                         var data = html_emlement.find(key).html();
    58                         break;
    59                       case "menu":
    60                         var menu = {};
    61                         var i =0;
    62                         html_emlement.find( ".yeepdf-menu td" ).each(function() {
    63                               var text_menu = $(this).find("a").html();
    64                               var href = $(this).find("a").attr("href");
    65                               var background = $(this).find("a").css("background-color");
    66                               var color = $(this).find("a").css("color");
    67                               color = $.email_builder_cover_color(color);
    68                               background = $.email_builder_cover_color(background);
    69                               menu[i] = {"text":text_menu,"background":background,"color":color,"href":href} ;
    70                               i++;
    71                           });
    72                         var data = menu;
    73                         break;
    74                       case "value_select":
    75                         let select = {};
    76                         var i =0;
    77                         html_emlement.find( "option" ).each(function() {
    78                             let vl = $(this).val();
    79                             select[i] = {"value":vl,"text":vl} ;
    80                             i++;
    81                         })
    82                         var data = select;
    83                         break;
    84                       case "value_checkbox":
    85                       case "value_radio":
    86                         let checkbox = {};
    87                         var i =0;
    88                         html_emlement.find( "input" ).each(function() {
    89                             let vl = $(this).val();
    90                             checkbox[i] = {"value":vl,"text":vl} ;
    91                             i++;
    92                         })
    93                         var data = checkbox;
    94                         break;
    95                       case "html":
    96                       case "html_hide":
    97                       case "html_not_change":
    98                         var data = html_emlement.find(key).html();
    99                         break;
    100                       case "html_hide_table":
    101                         var data = html_emlement.find(key).html();
    102                         data = (data === undefined || data === null) ? "" : data.toString();
    103                         const regex = /font-family[^;]+;/g;
    104                         data = data.replaceAll(regex, "");
    105                         break;   
    106                       default:
    107                         var data = html_emlement.find(key).attr(style);
     1(function ($) {
     2  "use strict";
     3  $(document).ready(function () {
     4    // Save bulder to josn
     5    $.fn.yeepdf_save_type = function (type) {
     6      var html_emlement = $(this);
     7      var type = $(this).data("type");
     8      var container_style = {};
     9      var container_attr = {};
     10      var inner_style = {};
     11      var inner_attr = {};
     12      var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
     13      var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
     14      var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
     15      //Save style container
     16      $.each(style_container_element, function (key, value) {
     17        var data = html_emlement.css(value);
     18        container_style[value] = data;
     19      });
     20      //Save style inner
     21      $.each(style_inner_element, function (key, value) {
     22        var style_content = {};
     23        $.each(value, function (index, style) {
     24          var data = html_emlement.find(key).css(style);
     25          switch (style) {
     26            case "border-style":
     27            case "border-color":
     28              break;
     29            case "width":
     30              var el = html_emlement.find(key)[0];
     31              var data1 = el ? el.style.width : "auto";
     32              style_content[style] = data1;
     33              break;
     34            case "height":
     35              var el = html_emlement.find(key)[0];
     36              var data1 = el ? el.style.height : "auto";
     37              style_content[style] = data1;
     38              break;
     39            case "border-width":
     40              var border_style = html_emlement.find(key).css("border-style");
     41              var border_color = html_emlement.find(key).css("border-color");
     42              style_content["border"] = data + " " + border_style + " " + border_color;
     43              break;
     44            default:
     45              style_content[style] = data
     46              break
     47          }
     48        })
     49        inner_style[key] = style_content;
     50      });
     51      //Save attr
     52      $.each(attr_inner_element, function (key, value) {
     53        var attr_content = {};
     54        $.each(value, function (index, style) {
     55          switch (style) {
     56            case "text":
     57              var data = html_emlement.find(key).html();
     58              break;
     59            case "menu":
     60              var menu = {};
     61              var i = 0;
     62              html_emlement.find(".yeepdf-menu td").each(function () {
     63                var text_menu = $(this).find("a").html();
     64                var href = $(this).find("a").attr("href");
     65                var background = $(this).find("a").css("background-color");
     66                var color = $(this).find("a").css("color");
     67                color = $.email_builder_cover_color(color);
     68                background = $.email_builder_cover_color(background);
     69                menu[i] = { "text": text_menu, "background": background, "color": color, "href": href };
     70                i++;
     71              });
     72              var data = menu;
     73              break;
     74            case "value_select":
     75              let select = [];
     76              html_emlement.find("option").each(function () {
     77                let vl = $(this).val();
     78                select.push({
     79                  value: vl,
     80                  text: vl
     81                });
     82                i++;
     83              })
     84              var data = select;
     85              break;
     86            case "value_checkbox":
     87            case "value_radio":
     88              let checkbox = [];
     89              html_emlement.find("input").each(function () {
     90                let vl = $(this).val();
     91                checkbox.push({
     92                  value: vl,
     93                  text: vl
     94                });
     95              })
     96              var data = checkbox;
     97              break;
     98            case "html":
     99            case "html_hide":
     100            case "html_not_change":
     101              var data = html_emlement.find(key).html();
     102              break;
     103            case "html_hide_table":
     104              var data = html_emlement.find(key).html();
     105              data = (data === undefined || data === null) ? "" : data.toString();
     106              const regex = /font-family[^;]+;/g;
     107              data = data.replaceAll(regex, "");
     108              break;
     109            default:
     110              var data = html_emlement.find(key).attr(style);
     111          }
     112          // Preserve arrays/objects (value_checkbox, value_select, value_radio)
     113          // Only cast primitives to string
     114          if (typeof data === 'object') {
     115            attr_content[style] = data;
     116          } else {
     117            data = (data === undefined || data === null) ? "" : data.toString();
     118            attr_content[style] = data;
     119          }
     120        })
     121        inner_attr[key] = attr_content;
     122      });
     123      var condition = "";
     124      condition = html_emlement.attr("data-condition");
     125      if (condition === undefined || condition == "") {
     126        condition = "";
     127      }
     128      return { "type": type, "container_style": container_style, "inner_style": inner_style, "inner_attr": inner_attr, "condition": condition };
     129    }
     130    //Click editor -> set element
     131    var ajax_change_editor = null;
     132    $.fn.yeepdf_set_type_editor = function (row) {
     133      var builder = $(this);
     134      var type = $(this).data("type");
     135      if (typeof type === "undefined") {
     136        return
     137      }
     138      var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
     139      var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
     140      //set editor in container element style
     141      $.each(style_container_element, function (key, value) {
     142        $.yeepdf_set_css_element(key, value, builder);
     143      });
     144      $.each(attr_container_element, function (key, value) {
     145        var data = $(key).val();
     146        if ($(key).attr("type") == "checkbox") {
     147          if ($(key).is(':checked')) {
     148            data = "ok";
     149          } else {
     150            data = "not";
     151          }
     152        }
     153        builder.attr(value, data);
     154      });
     155      var condition = $(".builder__editor--item-condition .builder__editor--condition").val();
     156      builder.attr("data-condition", condition);
     157      //Element
     158      if (builder.closest(".builder-elements").length > 0) {
     159        var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
     160        var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
     161        //set editor in element style
     162        $.each(style_inner_element, function (key, value) {
     163          $.each(value, function (index, style) {
     164            $.yeepdf_set_css_element(index, style, builder, key, value);
     165          })
     166        });
     167        //set editor in  element attr
     168        $.each(attr_inner_element, function (key, value) {
     169          $.each(value, function (index, attr) {
     170            var data = $(index).val();
     171            var data_value = $(index).data("after_value");
     172            if (data_value !== undefined) {
     173              data += data_value;
     174            }
     175            switch (attr) {
     176              case "data-col":
     177                //table col
     178                if (data > 0) {
     179                  var html_table = builder.find(key);
     180                  var count_col = html_table.find("th").length;
     181                  var table_th_header = html_table.find("th").last().html();
     182                  var table_td_header = html_table.find("td").last().html();;
     183                  if (data > count_col) {
     184                    var count_col_plus = count_col;
     185                    for (count_col_plus; count_col_plus < data; count_col_plus++) {
     186                      html_table.find("thead tr").append('<th contenteditable="true">' + +'</th>');
     187                      html_table.find("tbody tr").append('<td contenteditable="true">' + table_td_header + '</td>');
    108188                    }
    109                     data = (data === undefined || data === null) ? "" : data.toString();
    110                     attr_content[style] = data
    111                 })
    112                 inner_attr[key] = attr_content;
    113             });
    114             var condition = "";
    115             condition = html_emlement.attr("data-condition");
    116             if( condition === undefined || condition == "" ){
    117                 condition = "";
    118             }
    119             return {"type":type,"container_style":container_style,"inner_style":inner_style,"inner_attr":inner_attr,"condition":condition };
    120         }
    121          //Click editor -> set element
    122         var ajax_change_editor = null;
    123         $.fn.yeepdf_set_type_editor = function ( row ) {
    124                 var builder = $(this);
    125                 var type = $(this).data("type");
    126                 if (typeof type === "undefined") {
    127                     return
    128                 }
    129                 var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
    130                 var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
    131                 //set editor in container element style
    132                 $.each( style_container_element, function( key, value ) {
    133                     $.yeepdf_set_css_element(key,value,builder);
     189                  } else if (data < count_col) {
     190                    var count_col_minus = count_col;
     191                    var count_col_new = data;
     192                    for (count_col_minus; count_col_new < count_col_minus; count_col_minus--) {
     193                      html_table.find("thead tr th:last").remove();
     194                      $(html_table.find("tbody tr")).each(function () {
     195                        $(this).find('td:last').remove();
     196                      });
     197                    }
     198                  }
     199                  builder.find(key).attr(attr, data);
     200                  tinymce.init({
     201                    selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
     202                    inline: true,
     203                    menubar: true,
     204                    toolbar: false
     205                  });
     206                  $(".yeepdf-table-builder").resizableColumns();
     207                }
     208                break;
     209              case "data-row":
     210                //table col
     211                if (data > 1) {
     212                  var html_table = builder.find(key);
     213                  var count_row = html_table.find("tr").length;
     214                  var table_tr = html_table.find("tr").last().html();
     215                  if (data > count_row) {
     216                    var count_col_plus = count_row;
     217                    for (count_col_plus; count_col_plus < data; count_col_plus++) {
     218                      var class_tr = "yeepdf-table-builder-tr-even";
     219                      if (count_col_plus % 2 == 0) {
     220                        class_tr = "yeepdf-table-builder-tr-odd";
     221                      }
     222                      html_table.find("tbody").append('<tr class="' + class_tr + '">' + table_tr + '</tr>');
     223                    }
     224                  } else if (data < count_row) {
     225                    var count_col_minus = count_row;
     226                    var count_col_new = data;
     227                    for (count_col_minus; count_col_new < count_col_minus; count_col_minus--) {
     228                      html_table.find("tr:last").remove();
     229                    }
     230                  }
     231                  builder.find(key).attr(attr, data);
     232                  tinymce.init({
     233                    selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
     234                    inline: true,
     235                    menubar: true,
     236                    toolbar: false
     237                  });
     238                  $(".yeepdf-table-builder").resizableColumns();
     239                }
     240                break;
     241              case "html_not_change":
     242                break;
     243              case "html":
     244                //change shortcode
     245                if (data == "") {
     246                  data = tinymce.activeEditor.getContent();
     247                }
     248                if (type == "order_detail") {
     249                } else {
     250                  builder.find(key).html($.yeepdf_replace_shorcode(data));
     251                }
     252                break;
     253              case "text":
     254                builder.find(key).html(data);
     255                break;
     256              case "menu":
     257                var tr = $('<tr class="links"></tr');
     258                var i_menu = 0;
     259                $(".builder__editor--item-menu .menu-content-tool li.data").each(function () {
     260                  var text_menu = $(this).find(".text").val();
     261                  var href = $(this).find(".text_url").val();
     262                  var background = $(this).find(".text_background").val();
     263                  var color = $(this).find(".text_color").val();
     264                  var td = $('<td align="center" valign="top"><a target="_blank" href=""></a></td>');
     265                  td.find("a").css("background-color", background);
     266                  td.find("a").css("color", color);
     267                  td.find("a").attr("href", href);
     268                  td.find("a").html(text_menu);
     269                  td.appendTo(tr);
     270                  i_menu++;
    134271                });
    135                 $.each( attr_container_element, function( key, value ) {
    136                     var data = $(key).val();
    137                     if( $(key).attr("type") == "checkbox" ){
    138                         if(  $(key).is(':checked') ){
    139                           data = "ok";
    140                         }else{
    141                           data = "not";
    142                         }
    143                     }
    144                     builder.attr(value,data);
    145                 });
    146                 var condition = $(".builder__editor--item-condition .builder__editor--condition").val();
    147                 builder.attr("data-condition",condition);
    148                 //Element
    149                 if( builder.closest(".builder-elements").length > 0 ) {
    150                     var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
    151                     var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
    152                     //set editor in element style
    153                     $.each( style_inner_element, function( key, value ) {
    154                         $.each( value , function( index, style ) {
    155                           $.yeepdf_set_css_element(index,style,builder,key,value);
    156                         })
    157                     });
    158                     //set editor in  element attr
    159                     $.each( attr_inner_element, function( key, value ) {
    160                         $.each( value , function( index, attr ) {
    161                             var data = $(index).val();
    162                             var data_value = $(index).data("after_value");
    163                             if (data_value !== undefined) {
    164                                 data +=data_value;
    165                             }
    166                             switch(attr) {
    167                               case "data-col":
    168                                 //table col
    169                                 if(data > 0){
    170                                   var html_table = builder.find(key);
    171                                   var count_col = html_table.find("th").length;
    172                                   var table_th_header = html_table.find("th").last().html();
    173                                   var table_td_header = html_table.find("td").last().html();;
    174                                   if(data > count_col){
    175                                     var count_col_plus = count_col;
    176                                     for (count_col_plus; count_col_plus < data; count_col_plus++) {
    177                                       html_table.find("thead tr").append('<th contenteditable="true">'+  +'</th>');
    178                                       html_table.find("tbody tr").append('<td contenteditable="true">'+table_td_header+'</td>');
    179                                     } 
    180                                   }else if(data < count_col){
    181                                     var count_col_minus = count_col;
    182                                     var count_col_new = data;
    183                                     for (count_col_minus;  count_col_new < count_col_minus; count_col_minus--) {
    184                                       html_table.find("thead tr th:last").remove();
    185                                       $(html_table.find("tbody tr")).each(function(){
    186                                         $(this).find('td:last').remove();
    187                                       });
    188                                     }
    189                                   }
    190                                   builder.find(key).attr(attr,data);
    191                                   tinymce.init({
    192                                     selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
    193                                     inline: true,
    194                                     menubar: true,
    195                                     toolbar: false
    196                                   });
    197                                   $(".yeepdf-table-builder").resizableColumns(); 
    198                                 }
    199                                 break;
    200                               case "data-row":
    201                                 //table col
    202                                 if(data > 1){
    203                                   var html_table = builder.find(key);
    204                                   var count_row = html_table.find("tr").length;
    205                                   var table_tr = html_table.find("tr").last().html();
    206                                   if(data > count_row){
    207                                     var count_col_plus = count_row;
    208                                     for (count_col_plus; count_col_plus < data; count_col_plus++) {
    209                                       var class_tr = "yeepdf-table-builder-tr-even";
    210                                       if(count_col_plus % 2 == 0){
    211                                         class_tr= "yeepdf-table-builder-tr-odd";
    212                                       }
    213                                       html_table.find("tbody").append('<tr class="'+class_tr+'">'+table_tr+'</tr>');
    214                                     } 
    215                                   }else if(data < count_row){
    216                                     var count_col_minus = count_row;
    217                                     var count_col_new = data;
    218                                     for (count_col_minus;  count_col_new < count_col_minus; count_col_minus--) {
    219                                       html_table.find("tr:last").remove();
    220                                     }
    221                                   }
    222                                   builder.find(key).attr(attr,data);
    223                                   tinymce.init({
    224                                     selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
    225                                     inline: true,
    226                                     menubar: true,
    227                                     toolbar: false
    228                                   });
    229                                   $(".yeepdf-table-builder").resizableColumns(); 
    230                                 }
    231                                 break;
    232                               case "html_not_change":
    233                                 break;
    234                               case "html":
    235                                 //change shortcode
    236                                 if(data == ""){
    237                                   data = tinymce.activeEditor.getContent();
    238                                 }
    239                                 if(type == "order_detail"){
    240                                 }else{
    241                                   builder.find(key).html($.yeepdf_replace_shorcode(data));
    242                                 }
    243                                 break;
    244                               case "text":
    245                                 builder.find(key).html(data);
    246                                 break;
    247                               case "menu":
    248                                 var tr = $('<tr class="links"></tr');
    249                                 var i_menu = 0;
    250                                 $( ".builder__editor--item-menu .menu-content-tool li.data" ).each(function() {
    251                                       var text_menu = $(this).find(".text").val();
    252                                       var href = $(this).find(".text_url").val();
    253                                       var background = $(this).find(".text_background").val();
    254                                       var color = $(this).find(".text_color").val();
    255                                       var td = $('<td align="center" valign="top"><a target="_blank" href=""></a></td>');
    256                                       td.find("a").css("background-color",background);
    257                                       td.find("a").css("color",color);
    258                                       td.find("a").attr("href",href);
    259                                       td.find("a").html(text_menu);
    260                                       td.appendTo(tr);
    261                                       i_menu++;
    262                                 });
    263                                 builder.find("tr").remove();
    264                                 tr.appendTo(builder.find("table"));
    265                                 var menu_width = 100 / i_menu;
    266                                 builder.find("td").css("width",menu_width);
    267                                 $.each( style_inner_element, function( key, value ) {
    268                                     $.each( value , function( index, style ) {
    269                                         $.yeepdf_set_css_element(index,style,builder,key,value);
    270                                     })
    271                                   });
    272                                 break;
    273                               case "value_select":
    274                                 if(data !=""){
    275                                   let options = data.split("\n");
    276                                   let options_html = "";
    277                                   $.each( options, function( key, value ) {
    278                                       options_html +='<option value="'+value+'">'+value+'</option>';
    279                                   });
    280                                   builder.find(key).html(options_html);
    281                                 }
    282                                 break;
    283                               case "value_checkbox":
    284                                 if(data !=""){
    285                                   let options = data.split("\n");
    286                                   let options_html = "";
    287                                   $.each( options, function( key, value ) {
    288                                       options_html +=' <input value="'+value+'" type="checkbox" /> '+value;
    289                                   });
    290                                   builder.find(key).html(options_html);
    291                                 }
    292                                 break;
    293                               case "value_radio":
    294                                 if(data !=""){
    295                                   let options = data.split("\n");
    296                                   let options_html = "";
    297                                   $.each( options, function( key, value ) {
    298                                       options_html +=' <input value="'+value+'" type="radio" /> '+value;
    299                                   });
    300                                   builder.find(key).html(options_html);
    301                                 }
    302                               break;
    303                             case "data-showimg":
    304                             case "data-sku":
    305                             case "data-totals":
    306                             case "data-showdes":
    307                                 var showimg = $(".builder__editor--item-detail-template .detail-img");
    308                                 if( showimg.is(":checked")){
    309                                   showimg ="yes";
    310                                 }else{
    311                                   showimg ="hidden";
    312                                 }
    313                                 var totals = $(".builder__editor--item-detail-template .detail-totals");
    314                                 if( totals.is(":checked")){
    315                                   totals ="yes";
    316                                 }else{
    317                                   totals ="hidden";
    318                                 }
    319                                 var sku = $(".builder__editor--item-detail-template .detail-sku");
    320                                 if( sku.is(":checked")){
    321                                   sku ="yes";
    322                                 }else{
    323                                   sku ="hidden";
    324                                 }
    325                                 var des = $(".builder__editor--item-detail-template .detail-des");
    326                                 if( des.is(":checked")){
    327                                   des ="yes";
    328                                 }else{
    329                                   des ="hidden";
    330                                 }
    331                                 var value = "";
    332                                 value = $(index).val();
    333                                 if($(index).attr("type") == "checkbox"){
    334                                   if( $(index).is(":checked")){
    335                                     value = "yes";
    336                                   }else{
    337                                     value = "hidden";
    338                                   }
    339                                 }else{
    340                                   value = data;
    341                                 }
    342                                 var shortcode ="[yeepdf_woo_order_detail show_img='"+showimg+"' item_totals='"+totals+"' item_sku='"+sku+"' show_des='"+des+"']";
    343                                 let count_hidden = $('th[data-sku="yes"],th[data-showimg="yes"],th[data-showdes="yes"]',builder).length;
    344                                 builder.find(".woo_totals th").attr("colspan",2 + parseInt(count_hidden));
    345                                 $(".builder-elements-content.wp_builder_pdf_focus .text-content-data").html(shortcode);
    346                                 builder.find(key).attr(attr,value);
    347                                 break 
    348                             default:
    349                               if($(index).attr("type") == "checkbox"){
    350                                 if( $(index).is(":checked")){
    351                                   data = "yes";
    352                                 }else{
    353                                   data = "no";
    354                                 }
    355                               }
    356                               builder.find(key).attr(attr,data);
    357                               break; 
    358                           }
    359                         })
    360                     });
    361                 }
    362           }
    363          //Click emlement -> get and show editor
    364           $.fn.yeepdf_load_type_editor = function (row ) {
    365             var type = $(this).data("type");
    366             var builder = $(this);
    367             var type_text = type;
    368             if( wp_builder_pdf["block"][type]["type_text"] !== undefined){
    369               type_text = wp_builder_pdf["block"][type]["type_text"];
    370             }
    371             $(".yeepdf-builder-goback .yeepdf-builder-goback_block").html(type_text);
    372             var show_class_container = wp_builder_pdf["block"][type]["editor"]["container"]["show"];
    373             var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
    374             var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
    375             //Show eidtor
    376             $.each( show_class_container, function( key, value ) {
    377               $(".builder__editor--item-"+value).removeClass("hidden");
    378             });
    379             //set editor in container element style
    380             $.each( style_container_element, function( key, value ) {
    381                 var data = builder.css(value);
    382                 if(value == "font-family"){
    383                     data = data.replaceAll('"',"");
    384                     if(data == ""){
    385                         data = 'dejavu sans';
    386                     }
    387                 }
    388                 $.yeepdf_set_css_editor(value,key,data,builder);
    389             });
    390             $.each( attr_container_element, function( key, value ) {
    391                 var data = builder.attr(value);
    392                 var type = $(key).attr("type");
    393                 if( type == "checkbox"){
    394                   if( data == "ok" || data == "yes"){
    395                     $(key).prop('checked', true);
    396                   }else{
    397                     $(key).prop('checked', false);
    398                   }
    399                 }
    400                 $(key).val(data);
    401             });
    402             var condition = builder.attr("data-condition");
    403             if( condition === undefined || condition == "" ){
    404                 condition = "";
    405             }
    406             $(".builder__editor--item-condition .builder__editor--condition").val(condition);
    407             if( !row ){
    408                 var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
    409                 var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
    410                 //set editor in element style
    411                 $.each( style_inner_element, function( key, value ) {
    412                   $.each( value , function( index, style ) {
    413                       var data = builder.find(key).css(style);
    414                       $.yeepdf_set_css_editor(style,index,data,builder);
     272                builder.find("tr").remove();
     273                tr.appendTo(builder.find("table"));
     274                var menu_width = 100 / i_menu;
     275                builder.find("td").css("width", menu_width);
     276                $.each(style_inner_element, function (key, value) {
     277                  $.each(value, function (index, style) {
     278                    $.yeepdf_set_css_element(index, style, builder, key, value);
    415279                  })
    416280                });
    417                 //set editor in  element attr
    418                 $.each( attr_inner_element, function( key, value ) {
    419                     $.each( value , function( index, attr ) {
    420                         switch(attr) {
    421                               case "data-type":
    422                                 var value =  builder.find(key).attr(attr);
    423                                 $(index).val(value);
    424                                 if( value == 0 ){
    425                                     $(".yeepdf-image-type-upload").removeClass("hidden");
    426                                     $(".yeepdf-image-type-field").addClass("hidden");
    427                                 }else{
    428                                     $(".yeepdf-image-type-upload").addClass("hidden");
    429                                     $(".yeepdf-image-type-field").removeClass("hidden");
    430                                 }
    431                                 break;
    432                               case "html_hide":
    433                               case "data-src":     
    434                                 break;
    435                               case "text":
    436                                 var data = builder.find(key).html();
    437                                 $(index).val(data);
    438                                 break;
    439                               case "html":
    440                               case "html_not_change": 
    441                                 if( builder.find(key+"-data").length > 0 ){
    442                                     var data = builder.find(key +"-data").html();
    443                                 }else{
    444                                     var data = builder.find(key).html();
    445                                 }
    446                                 tinyMCE.get('builder__editor--js').setContent(data);
    447                                 break;
    448                               case "html_ajax":
    449                                 var data = builder.find(key+"-data").html();
    450                                 tinyMCE.get('builder__editor--js').setContent(data);
    451                                 break;
    452                               case "menu":
    453                                 var html_menu=$("<ul></ul>");
    454                                 $( builder.find(".yeepdf-menu td") ).each(function() {
    455                                     var text_menu = $(this).find("a").html();
    456                                     var href = $(this).find("a").attr("href");
    457                                     var background = $(this).find("a").css("background-color");
    458                                     var color = $(this).find("a").css("color");
    459                                     color = $.email_builder_cover_color(color);
    460                                     background = $.email_builder_cover_color(background);
    461                                     var menu = $(".builder__editor--item-menu-hidden").clone().removeClass('hidden builder__editor--item-menu-hidden');
    462                                     menu.find(".text").val(text_menu);
    463                                     menu.find(".text_url").val(href);
    464                                     menu.find(".text_background").val(background);
    465                                     menu.find(".text_color").val(color);
    466                                     var container_li = $("<li class='data'></li>");
    467                                     menu.appendTo(container_li);
    468                                     container_li.appendTo(html_menu);
    469                                 });
    470                                 html_menu.removeClass('hidden');
    471                                 $(".builder__editor--item-menu .menu-content-tool ul").remove();
    472                                 html_menu.appendTo($(".menu-content-tool"));
    473                                 $('.menu-content-tool .text_background,.menu-content-tool .text_color').wpColorPicker({
    474                                     change: function(event, ui){
    475                                         $(".wp_builder_pdf_focus").yeepdf_set_type_editor();   
    476                                     }
    477                                 });
    478                                 break;
    479                               case "value_select":
    480                                 var value_select="";
    481                                 let i = 0;
    482                                 $( builder.find("select option") ).each(function() {
    483                                     if(i == 0){
    484                                       value_select += $(this).val();
    485                                     }else{
    486                                       value_select += "\n"+$(this).val();
    487                                     }
    488                                     i++;
    489                                 })
    490                                 $(index).val(value_select);
    491                                 break;
    492                               case "value_checkbox":
    493                               case "value_radio":
    494                                 let value_check="";
    495                                 let i_c = 0;
    496                                 $( builder.find(".yeepdf_checkbox_container input") ).each(function() {
    497                                     if(i_c == 0){
    498                                       value_check += $(this).val();
    499                                     }else{
    500                                       value_check += "\n"+$(this).val();
    501                                     }
    502                                     i_c++;
    503                                 })
    504                                 $(index).val(value_check);
    505                                 break;
    506                               default:
    507                                 var data = builder.find(key).attr(attr);
    508                                 var type = $(index).attr("type");
    509                                 if(type == "checkbox"){
    510                                   if( data == "ok" || data == "yes"){
    511                                       $(index).prop('checked', true);
    512                                   }else{
    513                                     $(index).prop('checked', false);
    514                                   }
    515                                 }else{
    516                                   $(index).val(data);
    517                                 }
    518                                 break;
    519                         }
    520                     })
     281                break;
     282              case "value_select":
     283                if (data != "") {
     284                  let options = data.split("\n");
     285                  let options_html = "";
     286                  $.each(options, function (key, value) {
     287                    options_html += '<option value="' + value + '">' + value + '</option>';
     288                  });
     289                  builder.find(key).html(options_html);
     290                }
     291                break;
     292              case "value_checkbox":
     293                if (data != "") {
     294                  let options = data.split("\n");
     295                  let options_html = "";
     296                  $.each(options, function (key, value) {
     297                    options_html += ' <input value="' + value + '" type="checkbox" /> ' + value;
     298                  });
     299                  builder.find(key).html(options_html);
     300                }
     301                break;
     302              case "value_radio":
     303                if (data != "") {
     304                  let options = data.split("\n");
     305                  let options_html = "";
     306                  $.each(options, function (key, value) {
     307                    options_html += ' <input value="' + value + '" type="radio" /> ' + value;
     308                  });
     309                  builder.find(key).html(options_html);
     310                }
     311                break;
     312              case "data-showimg":
     313              case "data-sku":
     314              case "data-totals":
     315              case "data-showdes":
     316                var showimg = $(".builder__editor--item-detail-template .detail-img");
     317                if (showimg.is(":checked")) {
     318                  showimg = "yes";
     319                } else {
     320                  showimg = "hidden";
     321                }
     322                var totals = $(".builder__editor--item-detail-template .detail-totals");
     323                if (totals.is(":checked")) {
     324                  totals = "yes";
     325                } else {
     326                  totals = "hidden";
     327                }
     328                var sku = $(".builder__editor--item-detail-template .detail-sku");
     329                if (sku.is(":checked")) {
     330                  sku = "yes";
     331                } else {
     332                  sku = "hidden";
     333                }
     334                var des = $(".builder__editor--item-detail-template .detail-des");
     335                if (des.is(":checked")) {
     336                  des = "yes";
     337                } else {
     338                  des = "hidden";
     339                }
     340                var value = "";
     341                value = $(index).val();
     342                if ($(index).attr("type") == "checkbox") {
     343                  if ($(index).is(":checked")) {
     344                    value = "yes";
     345                  } else {
     346                    value = "hidden";
     347                  }
     348                } else {
     349                  value = data;
     350                }
     351                var shortcode = "[yeepdf_woo_order_detail show_img='" + showimg + "' item_totals='" + totals + "' item_sku='" + sku + "' show_des='" + des + "']";
     352                let count_hidden = $('th[data-sku="yes"],th[data-showimg="yes"],th[data-showdes="yes"]', builder).length;
     353                builder.find(".woo_totals th").attr("colspan", 2 + parseInt(count_hidden));
     354                $(".builder-elements-content.wp_builder_pdf_focus .text-content-data").html(shortcode);
     355                builder.find(key).attr(attr, value);
     356                break
     357              default:
     358                if ($(index).attr("type") == "checkbox") {
     359                  if ($(index).is(":checked")) {
     360                    data = "yes";
     361                  } else {
     362                    data = "no";
     363                  }
     364                }
     365                builder.find(key).attr(attr, data);
     366                break;
     367            }
     368          })
     369        });
     370      }
     371    }
     372    //Click emlement -> get and show editor
     373    $.fn.yeepdf_load_type_editor = function (row) {
     374      var type = $(this).data("type");
     375      var builder = $(this);
     376      var type_text = type;
     377      if (wp_builder_pdf["block"][type]["type_text"] !== undefined) {
     378        type_text = wp_builder_pdf["block"][type]["type_text"];
     379      }
     380      $(".yeepdf-builder-goback .yeepdf-builder-goback_block").html(type_text);
     381      var show_class_container = wp_builder_pdf["block"][type]["editor"]["container"]["show"];
     382      var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
     383      var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
     384      //Show eidtor
     385      $.each(show_class_container, function (key, value) {
     386        $(".builder__editor--item-" + value).removeClass("hidden");
     387      });
     388      //set editor in container element style
     389      $.each(style_container_element, function (key, value) {
     390        var data = builder.css(value);
     391        if (value == "font-family") {
     392          data = data.replaceAll('"', "");
     393          if (data == "") {
     394            data = 'dejavu sans';
     395          }
     396        }
     397        $.yeepdf_set_css_editor(value, key, data, builder);
     398      });
     399      $.each(attr_container_element, function (key, value) {
     400        var data = builder.attr(value);
     401        var type = $(key).attr("type");
     402        if (type == "checkbox") {
     403          if (data == "ok" || data == "yes") {
     404            $(key).prop('checked', true);
     405          } else {
     406            $(key).prop('checked', false);
     407          }
     408        }
     409        $(key).val(data);
     410      });
     411      var condition = builder.attr("data-condition");
     412      if (condition === undefined || condition == "") {
     413        condition = "";
     414      }
     415      $(".builder__editor--item-condition .builder__editor--condition").val(condition);
     416      if (!row) {
     417        var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
     418        var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
     419        //set editor in element style
     420        $.each(style_inner_element, function (key, value) {
     421          $.each(value, function (index, style) {
     422            var data = builder.find(key).css(style);
     423            $.yeepdf_set_css_editor(style, index, data, builder);
     424          })
     425        });
     426        //set editor in  element attr
     427        $.each(attr_inner_element, function (key, value) {
     428          $.each(value, function (index, attr) {
     429            switch (attr) {
     430              case "data-type":
     431                var value = builder.find(key).attr(attr);
     432                $(index).val(value);
     433                if (value == 0) {
     434                  $(".yeepdf-image-type-upload").removeClass("hidden");
     435                  $(".yeepdf-image-type-field").addClass("hidden");
     436                } else {
     437                  $(".yeepdf-image-type-upload").addClass("hidden");
     438                  $(".yeepdf-image-type-field").removeClass("hidden");
     439                }
     440                break;
     441              case "html_hide":
     442              case "data-src":
     443                break;
     444              case "text":
     445                var data = builder.find(key).html();
     446                $(index).val(data);
     447                break;
     448              case "html":
     449              case "html_not_change":
     450                if (builder.find(key + "-data").length > 0) {
     451                  var data = builder.find(key + "-data").html();
     452                } else {
     453                  var data = builder.find(key).html();
     454                }
     455                tinyMCE.get('builder__editor--js').setContent(data);
     456                break;
     457              case "html_ajax":
     458                var data = builder.find(key + "-data").html();
     459                tinyMCE.get('builder__editor--js').setContent(data);
     460                break;
     461              case "menu":
     462                var html_menu = $("<ul></ul>");
     463                $(builder.find(".yeepdf-menu td")).each(function () {
     464                  var text_menu = $(this).find("a").html();
     465                  var href = $(this).find("a").attr("href");
     466                  var background = $(this).find("a").css("background-color");
     467                  var color = $(this).find("a").css("color");
     468                  color = $.email_builder_cover_color(color);
     469                  background = $.email_builder_cover_color(background);
     470                  var menu = $(".builder__editor--item-menu-hidden").clone().removeClass('hidden builder__editor--item-menu-hidden');
     471                  menu.find(".text").val(text_menu);
     472                  menu.find(".text_url").val(href);
     473                  menu.find(".text_background").val(background);
     474                  menu.find(".text_color").val(color);
     475                  var container_li = $("<li class='data'></li>");
     476                  menu.appendTo(container_li);
     477                  container_li.appendTo(html_menu);
    521478                });
     479                html_menu.removeClass('hidden');
     480                $(".builder__editor--item-menu .menu-content-tool ul").remove();
     481                html_menu.appendTo($(".menu-content-tool"));
     482                $('.menu-content-tool .text_background,.menu-content-tool .text_color').wpColorPicker({
     483                  change: function (event, ui) {
     484                    $(".wp_builder_pdf_focus").yeepdf_set_type_editor();
     485                  }
     486                });
     487                break;
     488              case "value_select":
     489                var value_select = "";
     490                let i = 0;
     491                $(builder.find("select option")).each(function () {
     492                  if (i == 0) {
     493                    value_select += $(this).val();
     494                  } else {
     495                    value_select += "\n" + $(this).val();
     496                  }
     497                  i++;
     498                })
     499                $(index).val(value_select);
     500                break;
     501              case "value_checkbox":
     502              case "value_radio":
     503                let value_check = "";
     504                let i_c = 0;
     505                $(builder.find(".yeepdf_checkbox_container input")).each(function () {
     506                  if (i_c == 0) {
     507                    value_check += $(this).val();
     508                  } else {
     509                    value_check += "\n" + $(this).val();
     510                  }
     511                  i_c++;
     512                })
     513                $(index).val(value_check);
     514                break;
     515              default:
     516                var data = builder.find(key).attr(attr);
     517                var type = $(index).attr("type");
     518                if (type == "checkbox") {
     519                  if (data == "ok" || data == "yes") {
     520                    $(index).prop('checked', true);
     521                  } else {
     522                    $(index).prop('checked', false);
     523                  }
     524                } else {
     525                  $(index).val(data);
     526                }
     527                break;
    522528            }
    523         }
    524         $.yeepdf_replace_shorcode = function (str) {
    525           if( str === undefined){
    526             return str;
    527           }
    528           if(str != ""){
    529               str = str.replace(/\[yeepdf_fontawesome unicode=['"]?([a-f0-9]+)['"]?\]/gi, function(match, unicode) {
    530                 return `<span class="fontawesome">&#x${unicode};</span>`;
    531               });
    532             }
    533             let re = new RegExp(yeepdf_script.builder_shorcode_re, "gi");
    534             str = str.replaceAll(re, function (matched) {
    535                 matched = matched.replace(/\[|\]/gi, "");
    536                 if(  yeepdf_script.builder_shorcode[matched] === undefined ){
    537                   return "["+matched+"]";
    538                 }else{
    539                   return yeepdf_script.builder_shorcode[matched];
    540                 }
    541             })
    542             return str;
    543         }
    544          // Drop emlement and load builder -> show data builder 
    545         $.yeepdf_load_type = function (type,elements,save_html=false) {
    546                 if( type in wp_builder_pdf["block"] ) {
    547                     var html = $(wp_builder_pdf["block"][type]["builder"]);
    548                 }else{
    549                     var html = $(wp_builder_pdf["block"]["text"]["builder"]);
    550                 }     
    551                 if( elements ){
    552                     var container_style = elements.container_style;
    553                     var inner_style = elements.inner_style;
    554                     var inner_attr = elements.inner_attr;
    555                     html.find(".builder-elements-content").css(container_style);
    556                     $.each( inner_style, function( key, value ) {
    557                         if( value != "") {
    558                           html.find(key).css(value);
    559                         }
    560                     });
    561                     if( elements.condition != ""){
    562                         html.find(".builder-elements-content").attr("data-condition",elements.condition);
    563                     }
    564                     $.each( inner_attr, function( key, value ) {
    565                             var check_type_img = 0;
    566                             $.each( value, function( k, v ) {
    567                                 switch(k) {
    568                                       case "html_hide_table":
    569                                         if(v != ""){
    570                                           v = v.replace("medium-editor medium-editor-element","");
    571                                         }
    572                                         html.find(key).html(v);
    573                                         break;
    574                                       case "text":
    575                                       case "html_hide":
    576                                         if( save_html ) {
    577                                             if( type == "qrcode" ){
    578                                                 var v = '[yeepdf_qrcode]'+v+'[/yeepdf_qrcode]';
    579                                             }else if( type == "barcode") {
    580                                                 var v = '[yeepdf_barcode]'+v+'[/yeepdf_barcode]';
    581                                             }
    582                                         }
    583                                         html.find(key).html(v);
    584                                         break;
    585                                       case "html":;
    586                                         var v_hide = inner_attr[".text-content-data"]["html_hide"];
    587                                         if(v_hide != ""){
    588                                           if(v_hide.search("=")>0){
    589                                             v_hide = v;
    590                                           }
    591                                         }
    592                                         v_hide = $.yeepdf_replace_shorcode(v_hide);
    593                                         html.find(key).html(v_hide);
    594                                         break;
    595                                       case "data-src":
    596                                         html.find(key).attr("src",v);
    597                                         html.find(key).attr(k,v);
    598                                         break;
    599                                       case "menu":
    600                                         var menu_main ="";
    601                                         var width = 100 / _.size(v);
    602                                         $.each( v, function(menu_key, menu ) {
    603                                           menu_main += '<td style="width:'+width+'%" align="center" valign="top"><a style="color:'+menu.color+';background-color:'+menu.background+';" target="_blank" href="'+menu.href+'">'+menu.text+'</a></td>';
    604                                         })
    605                                         html.find("tr").html(menu_main);
    606                                         $.each( inner_style, function( key, value ) {
    607                                             if( value != "") {
    608                                               html.find(key).css(value);
    609                                             } 
    610                                         });
    611                                         break;
    612                                       case "value_select":
    613                                         let option_main ="";
    614                                         $.each( v, function(option_key, options ) {
    615                                           option_main += '<option value="'+options.value+'">'+options.text+'</option>';
    616                                         })
    617                                         html.find("select").html(option_main);
    618                                         break;
    619                                       case "value_checkbox":
    620                                         let input_checkbox ="";
    621                                         $.each( v, function(option_key, options ) {
    622                                           input_checkbox += ' <input  type="checkbox" value="'+options.value+'"/> '+options.text;
    623                                         })
    624                                         html.find(key).html(input_checkbox);
    625                                         break;
    626                                       case "value_radio":
    627                                         let input_radio ="";
    628                                         $.each( v, function(option_key, options ) {
    629                                           input_radio += ' <input  type="radio" value="'+options.value+'"/> '+options.text;
    630                                         })
    631                                         html.find(key).html(input_radio);
    632                                         break;
    633                                       case "data-type":
    634                                           check_type_img = v;
    635                                           html.find(key).attr(k,v);
    636                                           break;
    637                                       case "data-field":
    638                                           if( check_type_img == 1 && save_html ){
    639                                             html.find(key).attr("src",v);
    640                                           }
    641                                           html.find(key).attr(k,v);
    642                                           break;
    643                                       default:
    644                                         html.find(key).attr(k,v);
    645                                         break;
    646                                     }
    647                             })
    648                     });
    649                 }
    650             return html;
    651           }
    652           //Cover grb to hex
    653           $.email_builder_cover_color = function (rgb) {
    654               if (!rgb || typeof rgb !== 'string') return '';
    655               if( rgb == "" ){
    656                   return "";
    657               }
    658               if( "rgba(0,0,0,0)" == rgb.replace(/\s/g, '') ){
    659                   return "transparent";
    660               }
    661               rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
    662               return (rgb && rgb.length === 4) ? "#" +
    663                       ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
    664                       ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
    665                       ("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : '';
    666           }
    667         //set css edit
    668         $.youtube_parser =function( url ) {
    669             var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
    670             var match = url.match(regExp);
    671             return (match&&match[7].length==11)? match[7] : false;
    672         }
    673         $.yeepdf_background_img =function( data ) {
    674             var img = data.replace('url(','').replace(')','').replace(/\"/gi, "");
    675             return img
    676         }
    677         $.yeepdf_set_css_editor =function( style, index,data,builder) {
    678             switch(style) {
    679                 case "border-color":
    680                 case "background-color":
    681                 case "color":
    682                     data = $.email_builder_cover_color(data);
    683                     $(index).val(data);
    684                     $(index).closest(".wp-picker-container").find(".button").css("background-color",data);
    685                   break;
    686                 case "background-image":
    687                     if( data == "none"){
    688                       data = "";
    689                     }else{
    690                       data = $.yeepdf_background_img(data);
    691                     }
    692                     $(index).val(data);
    693                     break;
    694                 case "width":
    695                     if(builder.find("img").length > 0) {
    696                       //image
    697                       var data1 = builder.find("img")[0].style.width;
    698                     }else{
    699                       //text
    700                       if(builder.find(".text-content")[0].style.width === undefined){
    701                         var data1 = "100%";
    702                       }else{
    703                         var data1 = builder.find(".text-content")[0].style.width;
    704                         if(data1 == ""){
    705                           data1 ="100%";
    706                         }
    707                       }
    708                     }
    709                     if(data1 == ""){
    710                       data = data.replace("px","");
    711                       data1 = data;
    712                     }
    713                     $(index).val(data1);
    714                     break;
    715                 case "height":
    716                   if(builder.find("img").length > 0) {
    717                     //image
    718                     var data1 = builder.find("img")[0].style.height;
    719                   }else{
    720                     //text
    721                     if(builder.find(".text-content")[0].style.height === undefined){
    722                       var data1 = "auto";
    723                     }else{
    724                       var data1 = builder.find(".text-content")[0].style.height;
    725                       if(data1 == ""){
    726                         data1 ="auto";
    727                       }
    728                     }
    729                   }
    730                     if(data1 == ""){
    731                       data = data.replace("px","");
    732                       data1 = data;
    733                     }
    734                     $(index).val(data1);
    735                     break;
    736                 case "text-align":
    737                     $(index).val(data);
    738                     $(index).closest(".builder__editor--item").find(".button__align").removeClass("active");
    739                     $(index).closest(".builder__editor--item").find(".builder__editor--align-"+data).addClass("active");
    740                     if( data == "stat")
    741                   break;
    742                 default:
    743                   data = data.replace("px","");
    744                   if(!isNaN(data)){
    745                     data = Math.ceil(data);
    746                   }
    747                   var type_text = $(index).attr("type");
    748                   if( type_text == "checkbox"){
    749                       if( data== "none"){
    750                         $(index).prop('checked', false);
    751                       }else{
    752                         $(index).prop('checked', true);
    753                       }
    754                   }
    755                   $(index).val(data);
    756               }
    757         }
    758       $.yeepdf_set_css_element =function( selector, style,builder="",key="",value="") {
    759         var data = $(selector).val();
    760         var data_value = $(selector).data("after_value");
    761         if (data_value !== undefined) {
    762           if(data.search("px") < 0){
    763             data +=data_value;
    764           }
    765         }
    766         if(key){
    767           builder = builder.find(key);
    768         }
    769         switch(style) {
    770           case "display":
    771             if( $(selector).is(':checked') ) {
    772               builder.css(style,"inline-block"); 
    773             }else{
    774                 builder.css(style,"none");
    775             }
    776             break;
    777           case "text":
    778             builder.html(data);
    779             break;
    780           case "width":
    781           case "height":
    782             if(data.search("%") > -1 || data.search("auto") > -1 ){
    783               data = data.replace("px", "");
    784             }
    785             builder.css(style,data);
    786             break;
    787           case "background-image":
    788             if( data == ""){
    789               builder.css("background-image","");
    790             }else{
    791               builder.css("background-image",'url("' + data + '")');
    792             }
    793             break;
    794           case "font-size":
    795               data = Number(data); 
    796               builder.css("font-size",data);
    797               break;
    798           case "border-style":
    799           case "border-color":
    800             break;
    801           case "border-width":
    802               var border_style = "solid";
    803               var border_color = "#000000";
    804               $.each( value, function( k_vl, v_vl ) {
    805                 if(v_vl == "border-style"){
    806                   border_style = $(k_vl).val();
    807                 }
    808                 if(v_vl == "border-color"){
    809                   border_color = $(k_vl).val();
    810                 }
    811               })
    812               builder.css("border",data +" "+ border_style + " " +border_color);
    813               break;
    814           default:
    815                 builder.css(style,data);
    816                 break;
    817         }   
    818       }
    819       //
    820       $("body").on("change",".pdf_creator_settings_template_type",function(e){
    821         var value = $(this).val();
    822         if(value == 1){
    823             $(".gform-kitchen-sink-template_id").removeClass("hidden");
    824             $(".gform-kitchen-sink-template_upload").addClass("hidden");
    825         }else{
    826             $(".gform-kitchen-sink-template_upload").removeClass("hidden");
    827             $(".gform-kitchen-sink-template_id").addClass("hidden");
     529          })
     530        });
     531      }
     532    }
     533    $.yeepdf_replace_shorcode = function (str) {
     534      if (str === undefined) {
     535        return str;
     536      }
     537      if (str != "") {
     538        str = str.replace(/\[yeepdf_fontawesome unicode=['"]?([a-f0-9]+)['"]?\]/gi, function (match, unicode) {
     539          return `<span class="fontawesome">&#x${unicode};</span>`;
     540        });
     541      }
     542      let re = new RegExp(yeepdf_script.builder_shorcode_re, "gi");
     543      str = str.replaceAll(re, function (matched) {
     544        matched = matched.replace(/\[|\]/gi, "");
     545        if (yeepdf_script.builder_shorcode[matched] === undefined) {
     546          return "[" + matched + "]";
     547        } else {
     548          return yeepdf_script.builder_shorcode[matched];
    828549        }
    829550      })
    830       $("body").on("change","#pdf_creator_conditional_logic",function(e){ 
    831         if( $(this).is(":checked")){
    832             $(".yeepdf-popup-content").removeClass("hidden");
    833         }else{
    834             $(".yeepdf-popup-content").addClass("hidden");
     551      return str;
     552    }
     553    // Drop emlement and load builder -> show data builder 
     554    $.yeepdf_load_type = function (type, elements, save_html = false) {
     555      if (type in wp_builder_pdf["block"]) {
     556        var html = $(wp_builder_pdf["block"][type]["builder"]);
     557      } else {
     558        var html = $(wp_builder_pdf["block"]["text"]["builder"]);
     559      }
     560      if (elements) {
     561        var container_style = elements.container_style;
     562        var inner_style = elements.inner_style;
     563        var inner_attr = elements.inner_attr;
     564        html.find(".builder-elements-content").css(container_style);
     565        $.each(inner_style, function (key, value) {
     566          if (value != "") {
     567            html.find(key).css(value);
     568          }
     569        });
     570        if (elements.condition != "") {
     571          html.find(".builder-elements-content").attr("data-condition", elements.condition);
    835572        }
    836       })
    837       $("body").on("change",".yeepdf_my_account_buttons",function(e){
    838           var value = $(this).val();
    839           if(value == "custom"){
    840             $(".yeepdf_my_account_buttons_custom").removeClass("hidden");
    841           }else{
    842             $(".yeepdf_my_account_buttons_custom").addClass("hidden");
    843           }
    844       })   
     573        $.each(inner_attr, function (key, value) {
     574          var check_type_img = 0;
     575          $.each(value, function (k, v) {
     576            switch (k) {
     577              case "html_hide_table":
     578                if (v != "") {
     579                  v = v.replace("medium-editor medium-editor-element", "");
     580                }
     581                html.find(key).html(v);
     582                break;
     583              case "text":
     584              case "html_hide":
     585                if (save_html) {
     586                  if (type == "qrcode") {
     587                    var v = '[yeepdf_qrcode]' + v + '[/yeepdf_qrcode]';
     588                  } else if (type == "barcode") {
     589                    var v = '[yeepdf_barcode]' + v + '[/yeepdf_barcode]';
     590                  }
     591                }
     592                html.find(key).html(v);
     593                break;
     594              case "html": ;
     595                var v_hide = inner_attr[".text-content-data"]["html_hide"];
     596                if (v_hide != "") {
     597                  if (v_hide.search("=") > 0) {
     598                    v_hide = v;
     599                  }
     600                }
     601                v_hide = $.yeepdf_replace_shorcode(v_hide);
     602                html.find(key).html(v_hide);
     603                break;
     604              case "data-src":
     605                html.find(key).attr("src", v);
     606                html.find(key).attr(k, v);
     607                break;
     608              case "menu":
     609                var menu_main = "";
     610                var width = 100 / _.size(v);
     611                $.each(v, function (menu_key, menu) {
     612                  menu_main += '<td style="width:' + width + '%" align="center" valign="top"><a style="color:' + menu.color + ';background-color:' + menu.background + ';" target="_blank" href="' + menu.href + '">' + menu.text + '</a></td>';
     613                })
     614                html.find("tr").html(menu_main);
     615                $.each(inner_style, function (key, value) {
     616                  if (value != "") {
     617                    html.find(key).css(value);
     618                  }
     619                });
     620                break;
     621              case "value_select":
     622                let option_main = "";
     623                if (Array.isArray(v)) {
     624                  $.each(v, function (option_key, options) {
     625                    option_main += '<option value="' + options.value + '">' + options.text + '</option>';
     626                  })
     627                }
     628                html.find("select").html(option_main);
     629                break;
     630              case "value_checkbox":
     631                let input_checkbox = "";
     632                if (Array.isArray(v)) {
     633                  $.each(v, function (option_key, options) {
     634                    input_checkbox += ' <input  type="checkbox" value="' + options.value + '"/> ' + options.text;
     635                  })
     636                }
     637                html.find(key).html(input_checkbox);
     638                break;
     639              case "value_radio":
     640                let input_radio = "";
     641                if (Array.isArray(v)) {
     642                  $.each(v, function (option_key, options) {
     643                    input_radio += ' <input  type="radio" value="' + options.value + '"/> ' + options.text;
     644                  })
     645                }
     646                html.find(key).html(input_radio);
     647                break;
     648              case "data-type":
     649                check_type_img = v;
     650                html.find(key).attr(k, v);
     651                break;
     652              case "data-field":
     653                if (check_type_img == 1 && save_html) {
     654                  html.find(key).attr("src", v);
     655                }
     656                html.find(key).attr(k, v);
     657                break;
     658              default:
     659                html.find(key).attr(k, v);
     660                break;
     661            }
     662          })
     663        });
     664      }
     665      return html;
     666    }
     667    //Cover grb to hex
     668    $.email_builder_cover_color = function (rgb) {
     669      if (!rgb || typeof rgb !== 'string') return '';
     670      if (rgb == "") {
     671        return "";
     672      }
     673      if ("rgba(0,0,0,0)" == rgb.replace(/\s/g, '')) {
     674        return "transparent";
     675      }
     676      rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
     677      return (rgb && rgb.length === 4) ? "#" +
     678        ("0" + parseInt(rgb[1], 10).toString(16)).slice(-2) +
     679        ("0" + parseInt(rgb[2], 10).toString(16)).slice(-2) +
     680        ("0" + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';
     681    }
     682    //set css edit
     683    $.youtube_parser = function (url) {
     684      var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
     685      var match = url.match(regExp);
     686      return (match && match[7].length == 11) ? match[7] : false;
     687    }
     688    $.yeepdf_background_img = function (data) {
     689      var img = data.replace('url(', '').replace(')', '').replace(/\"/gi, "");
     690      return img
     691    }
     692    $.yeepdf_set_css_editor = function (style, index, data, builder) {
     693      switch (style) {
     694        case "border-color":
     695        case "background-color":
     696        case "color":
     697          data = $.email_builder_cover_color(data);
     698          $(index).val(data);
     699          $(index).closest(".wp-picker-container").find(".button").css("background-color", data);
     700          break;
     701        case "background-image":
     702          if (data == "none") {
     703            data = "";
     704          } else {
     705            data = $.yeepdf_background_img(data);
     706          }
     707          $(index).val(data);
     708          break;
     709        case "width":
     710          if (builder.find("img").length > 0) {
     711            //image
     712            var data1 = builder.find("img")[0].style.width;
     713          } else {
     714            //text
     715            if (builder.find(".text-content")[0].style.width === undefined) {
     716              var data1 = "100%";
     717            } else {
     718              var data1 = builder.find(".text-content")[0].style.width;
     719              if (data1 == "") {
     720                data1 = "100%";
     721              }
     722            }
     723          }
     724          if (data1 == "") {
     725            data = data.replace("px", "");
     726            data1 = data;
     727          }
     728          $(index).val(data1);
     729          break;
     730        case "height":
     731          if (builder.find("img").length > 0) {
     732            //image
     733            var data1 = builder.find("img")[0].style.height;
     734          } else {
     735            //text
     736            if (builder.find(".text-content")[0].style.height === undefined) {
     737              var data1 = "auto";
     738            } else {
     739              var data1 = builder.find(".text-content")[0].style.height;
     740              if (data1 == "") {
     741                data1 = "auto";
     742              }
     743            }
     744          }
     745          if (data1 == "") {
     746            data = data.replace("px", "");
     747            data1 = data;
     748          }
     749          $(index).val(data1);
     750          break;
     751        case "text-align":
     752          $(index).val(data);
     753          $(index).closest(".builder__editor--item").find(".button__align").removeClass("active");
     754          $(index).closest(".builder__editor--item").find(".builder__editor--align-" + data).addClass("active");
     755          if (data == "stat")
     756            break;
     757        default:
     758          data = data.replace("px", "");
     759          if (!isNaN(data)) {
     760            data = Math.ceil(data);
     761          }
     762          var type_text = $(index).attr("type");
     763          if (type_text == "checkbox") {
     764            if (data == "none") {
     765              $(index).prop('checked', false);
     766            } else {
     767              $(index).prop('checked', true);
     768            }
     769          }
     770          $(index).val(data);
     771      }
     772    }
     773    $.yeepdf_set_css_element = function (selector, style, builder = "", key = "", value = "") {
     774      var data = $(selector).val();
     775      var data_value = $(selector).data("after_value");
     776      if (data_value !== undefined) {
     777        if (data.search("px") < 0) {
     778          data += data_value;
     779        }
     780      }
     781      if (key) {
     782        builder = builder.find(key);
     783      }
     784      switch (style) {
     785        case "display":
     786          if ($(selector).is(':checked')) {
     787            builder.css(style, "inline-block");
     788          } else {
     789            builder.css(style, "none");
     790          }
     791          break;
     792        case "text":
     793          builder.html(data);
     794          break;
     795        case "width":
     796        case "height":
     797          if (data.search("%") > -1 || data.search("auto") > -1) {
     798            data = data.replace("px", "");
     799          }
     800          builder.css(style, data);
     801          break;
     802        case "background-image":
     803          if (data == "") {
     804            builder.css("background-image", "");
     805          } else {
     806            builder.css("background-image", 'url("' + data + '")');
     807          }
     808          break;
     809        case "font-size":
     810          data = Number(data);
     811          builder.css("font-size", data);
     812          break;
     813        case "border-style":
     814        case "border-color":
     815          break;
     816        case "border-width":
     817          var border_style = "solid";
     818          var border_color = "#000000";
     819          $.each(value, function (k_vl, v_vl) {
     820            if (v_vl == "border-style") {
     821              border_style = $(k_vl).val();
     822            }
     823            if (v_vl == "border-color") {
     824              border_color = $(k_vl).val();
     825            }
     826          })
     827          builder.css("border", data + " " + border_style + " " + border_color);
     828          break;
     829        default:
     830          builder.css(style, data);
     831          break;
     832      }
     833    }
     834    //
     835    $("body").on("change", ".pdf_creator_settings_template_type", function (e) {
     836      var value = $(this).val();
     837      if (value == 1) {
     838        $(".gform-kitchen-sink-template_id").removeClass("hidden");
     839        $(".gform-kitchen-sink-template_upload").addClass("hidden");
     840      } else {
     841        $(".gform-kitchen-sink-template_upload").removeClass("hidden");
     842        $(".gform-kitchen-sink-template_id").addClass("hidden");
     843      }
    845844    })
     845    $("body").on("change", "#pdf_creator_conditional_logic", function (e) {
     846      if ($(this).is(":checked")) {
     847        $(".yeepdf-popup-content").removeClass("hidden");
     848      } else {
     849        $(".yeepdf-popup-content").addClass("hidden");
     850      }
     851    })
     852    $("body").on("change", ".yeepdf_my_account_buttons", function (e) {
     853      var value = $(this).val();
     854      if (value == "custom") {
     855        $(".yeepdf_my_account_buttons_custom").removeClass("hidden");
     856      } else {
     857        $(".yeepdf_my_account_buttons_custom").addClass("hidden");
     858      }
     859    })
     860  })
    846861})(jQuery);
  • pdf-for-gravity-forms/tags/6.5.1/backend/src/script.js

    r3448704 r3454326  
    1818          return true;
    1919        }
     20        console.log(datas);
    2021        $(".builder__list").html("");
    2122        $(".email-builder-main").css(datas["container"]);
     
    389390      e.preventDefault();
    390391      var attachment = $(this).closest(".grid-item").data("file");
     392     
    391393      $.getJSON(attachment, function (data) {
    392394        $(".data_email").val(data);
     
    443445      var attachment = $(this).closest(".grid-item").data("file");
    444446      $.getJSON(attachment, function (data) {
    445         $(".data_email").val(JSON.stringify(data));
     447        $(".data_email").val(data);
    446448        $(".builder__list").html("");
    447449        yeepdf_builder_main.json_to_builder();
  • pdf-for-gravity-forms/trunk/backend/css/main.css

    r3353035 r3454326  
    14411441    font-weight: 600;
    14421442    min-width: 200px;
    1443     padding: 0;
     1443    padding: 15px 30px;
    14441444}
    14451445.yeepdf-setup-title-input {
    14461446  width: 100%;
    1447   padding: 0 50px;
     1447  padding: 0 0px;
    14481448}
    14491449.yeepdf-setup-title-input input, .yeepdf-setup-title-input select {
  • pdf-for-gravity-forms/trunk/backend/src/main.js

    r3430005 r3454326  
    1 (function($) {
    2     "use strict";
    3     $( document ).ready( function () {
    4         // Save bulder to josn
    5         $.fn.yeepdf_save_type = function (type) {
    6             var html_emlement = $(this);
    7             var type = $(this).data("type");
    8             var container_style = {};
    9             var container_attr = {};
    10             var inner_style = {};
    11             var inner_attr = {};
    12             var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
    13             var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
    14             var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
    15             //Save style container
    16             $.each( style_container_element, function( key, value ) {
    17                 var data = html_emlement.css(value);
    18                 container_style[value] = data;
    19             });
    20             //Save style inner
    21             $.each( style_inner_element, function( key, value ) {
    22                 var style_content= {};
    23                 $.each( value , function( index, style ) {
    24                   var data = html_emlement.find(key).css(style);
    25                   switch(style) {
    26                     case "border-style":
    27                     case "border-color":
    28                       break;
    29                     case "width":
    30                       var el = html_emlement.find(key)[0];
    31                       var data1 = el ? el.style.width : "auto";
    32                       style_content[style] = data1;
    33                       break;
    34                     case "height":
    35                       var el = html_emlement.find(key)[0];
    36                       var data1 = el ? el.style.height : "auto";
    37                       style_content[style] = data1;
    38                       break;
    39                     case "border-width":
    40                       var border_style = html_emlement.find(key).css("border-style");
    41                       var border_color = html_emlement.find(key).css("border-color");
    42                       style_content["border"] = data +" "+ border_style + " " +border_color;
    43                       break;
    44                     default:
    45                       style_content[style] = data
    46                       break
    47                   }
    48                 })
    49                 inner_style[key] = style_content;
    50             });
    51             //Save attr
    52             $.each( attr_inner_element, function( key, value ) {
    53                 var attr_content= {};
    54                 $.each( value , function( index, style ) {
    55                     switch(style) {
    56                       case "text":
    57                         var data = html_emlement.find(key).html();
    58                         break;
    59                       case "menu":
    60                         var menu = {};
    61                         var i =0;
    62                         html_emlement.find( ".yeepdf-menu td" ).each(function() {
    63                               var text_menu = $(this).find("a").html();
    64                               var href = $(this).find("a").attr("href");
    65                               var background = $(this).find("a").css("background-color");
    66                               var color = $(this).find("a").css("color");
    67                               color = $.email_builder_cover_color(color);
    68                               background = $.email_builder_cover_color(background);
    69                               menu[i] = {"text":text_menu,"background":background,"color":color,"href":href} ;
    70                               i++;
    71                           });
    72                         var data = menu;
    73                         break;
    74                       case "value_select":
    75                         let select = {};
    76                         var i =0;
    77                         html_emlement.find( "option" ).each(function() {
    78                             let vl = $(this).val();
    79                             select[i] = {"value":vl,"text":vl} ;
    80                             i++;
    81                         })
    82                         var data = select;
    83                         break;
    84                       case "value_checkbox":
    85                       case "value_radio":
    86                         let checkbox = {};
    87                         var i =0;
    88                         html_emlement.find( "input" ).each(function() {
    89                             let vl = $(this).val();
    90                             checkbox[i] = {"value":vl,"text":vl} ;
    91                             i++;
    92                         })
    93                         var data = checkbox;
    94                         break;
    95                       case "html":
    96                       case "html_hide":
    97                       case "html_not_change":
    98                         var data = html_emlement.find(key).html();
    99                         break;
    100                       case "html_hide_table":
    101                         var data = html_emlement.find(key).html();
    102                         data = (data === undefined || data === null) ? "" : data.toString();
    103                         const regex = /font-family[^;]+;/g;
    104                         data = data.replaceAll(regex, "");
    105                         break;   
    106                       default:
    107                         var data = html_emlement.find(key).attr(style);
     1(function ($) {
     2  "use strict";
     3  $(document).ready(function () {
     4    // Save bulder to josn
     5    $.fn.yeepdf_save_type = function (type) {
     6      var html_emlement = $(this);
     7      var type = $(this).data("type");
     8      var container_style = {};
     9      var container_attr = {};
     10      var inner_style = {};
     11      var inner_attr = {};
     12      var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
     13      var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
     14      var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
     15      //Save style container
     16      $.each(style_container_element, function (key, value) {
     17        var data = html_emlement.css(value);
     18        container_style[value] = data;
     19      });
     20      //Save style inner
     21      $.each(style_inner_element, function (key, value) {
     22        var style_content = {};
     23        $.each(value, function (index, style) {
     24          var data = html_emlement.find(key).css(style);
     25          switch (style) {
     26            case "border-style":
     27            case "border-color":
     28              break;
     29            case "width":
     30              var el = html_emlement.find(key)[0];
     31              var data1 = el ? el.style.width : "auto";
     32              style_content[style] = data1;
     33              break;
     34            case "height":
     35              var el = html_emlement.find(key)[0];
     36              var data1 = el ? el.style.height : "auto";
     37              style_content[style] = data1;
     38              break;
     39            case "border-width":
     40              var border_style = html_emlement.find(key).css("border-style");
     41              var border_color = html_emlement.find(key).css("border-color");
     42              style_content["border"] = data + " " + border_style + " " + border_color;
     43              break;
     44            default:
     45              style_content[style] = data
     46              break
     47          }
     48        })
     49        inner_style[key] = style_content;
     50      });
     51      //Save attr
     52      $.each(attr_inner_element, function (key, value) {
     53        var attr_content = {};
     54        $.each(value, function (index, style) {
     55          switch (style) {
     56            case "text":
     57              var data = html_emlement.find(key).html();
     58              break;
     59            case "menu":
     60              var menu = {};
     61              var i = 0;
     62              html_emlement.find(".yeepdf-menu td").each(function () {
     63                var text_menu = $(this).find("a").html();
     64                var href = $(this).find("a").attr("href");
     65                var background = $(this).find("a").css("background-color");
     66                var color = $(this).find("a").css("color");
     67                color = $.email_builder_cover_color(color);
     68                background = $.email_builder_cover_color(background);
     69                menu[i] = { "text": text_menu, "background": background, "color": color, "href": href };
     70                i++;
     71              });
     72              var data = menu;
     73              break;
     74            case "value_select":
     75              let select = [];
     76              html_emlement.find("option").each(function () {
     77                let vl = $(this).val();
     78                select.push({
     79                  value: vl,
     80                  text: vl
     81                });
     82                i++;
     83              })
     84              var data = select;
     85              break;
     86            case "value_checkbox":
     87            case "value_radio":
     88              let checkbox = [];
     89              html_emlement.find("input").each(function () {
     90                let vl = $(this).val();
     91                checkbox.push({
     92                  value: vl,
     93                  text: vl
     94                });
     95              })
     96              var data = checkbox;
     97              break;
     98            case "html":
     99            case "html_hide":
     100            case "html_not_change":
     101              var data = html_emlement.find(key).html();
     102              break;
     103            case "html_hide_table":
     104              var data = html_emlement.find(key).html();
     105              data = (data === undefined || data === null) ? "" : data.toString();
     106              const regex = /font-family[^;]+;/g;
     107              data = data.replaceAll(regex, "");
     108              break;
     109            default:
     110              var data = html_emlement.find(key).attr(style);
     111          }
     112          // Preserve arrays/objects (value_checkbox, value_select, value_radio)
     113          // Only cast primitives to string
     114          if (typeof data === 'object') {
     115            attr_content[style] = data;
     116          } else {
     117            data = (data === undefined || data === null) ? "" : data.toString();
     118            attr_content[style] = data;
     119          }
     120        })
     121        inner_attr[key] = attr_content;
     122      });
     123      var condition = "";
     124      condition = html_emlement.attr("data-condition");
     125      if (condition === undefined || condition == "") {
     126        condition = "";
     127      }
     128      return { "type": type, "container_style": container_style, "inner_style": inner_style, "inner_attr": inner_attr, "condition": condition };
     129    }
     130    //Click editor -> set element
     131    var ajax_change_editor = null;
     132    $.fn.yeepdf_set_type_editor = function (row) {
     133      var builder = $(this);
     134      var type = $(this).data("type");
     135      if (typeof type === "undefined") {
     136        return
     137      }
     138      var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
     139      var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
     140      //set editor in container element style
     141      $.each(style_container_element, function (key, value) {
     142        $.yeepdf_set_css_element(key, value, builder);
     143      });
     144      $.each(attr_container_element, function (key, value) {
     145        var data = $(key).val();
     146        if ($(key).attr("type") == "checkbox") {
     147          if ($(key).is(':checked')) {
     148            data = "ok";
     149          } else {
     150            data = "not";
     151          }
     152        }
     153        builder.attr(value, data);
     154      });
     155      var condition = $(".builder__editor--item-condition .builder__editor--condition").val();
     156      builder.attr("data-condition", condition);
     157      //Element
     158      if (builder.closest(".builder-elements").length > 0) {
     159        var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
     160        var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
     161        //set editor in element style
     162        $.each(style_inner_element, function (key, value) {
     163          $.each(value, function (index, style) {
     164            $.yeepdf_set_css_element(index, style, builder, key, value);
     165          })
     166        });
     167        //set editor in  element attr
     168        $.each(attr_inner_element, function (key, value) {
     169          $.each(value, function (index, attr) {
     170            var data = $(index).val();
     171            var data_value = $(index).data("after_value");
     172            if (data_value !== undefined) {
     173              data += data_value;
     174            }
     175            switch (attr) {
     176              case "data-col":
     177                //table col
     178                if (data > 0) {
     179                  var html_table = builder.find(key);
     180                  var count_col = html_table.find("th").length;
     181                  var table_th_header = html_table.find("th").last().html();
     182                  var table_td_header = html_table.find("td").last().html();;
     183                  if (data > count_col) {
     184                    var count_col_plus = count_col;
     185                    for (count_col_plus; count_col_plus < data; count_col_plus++) {
     186                      html_table.find("thead tr").append('<th contenteditable="true">' + +'</th>');
     187                      html_table.find("tbody tr").append('<td contenteditable="true">' + table_td_header + '</td>');
    108188                    }
    109                     data = (data === undefined || data === null) ? "" : data.toString();
    110                     attr_content[style] = data
    111                 })
    112                 inner_attr[key] = attr_content;
    113             });
    114             var condition = "";
    115             condition = html_emlement.attr("data-condition");
    116             if( condition === undefined || condition == "" ){
    117                 condition = "";
    118             }
    119             return {"type":type,"container_style":container_style,"inner_style":inner_style,"inner_attr":inner_attr,"condition":condition };
    120         }
    121          //Click editor -> set element
    122         var ajax_change_editor = null;
    123         $.fn.yeepdf_set_type_editor = function ( row ) {
    124                 var builder = $(this);
    125                 var type = $(this).data("type");
    126                 if (typeof type === "undefined") {
    127                     return
    128                 }
    129                 var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
    130                 var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
    131                 //set editor in container element style
    132                 $.each( style_container_element, function( key, value ) {
    133                     $.yeepdf_set_css_element(key,value,builder);
     189                  } else if (data < count_col) {
     190                    var count_col_minus = count_col;
     191                    var count_col_new = data;
     192                    for (count_col_minus; count_col_new < count_col_minus; count_col_minus--) {
     193                      html_table.find("thead tr th:last").remove();
     194                      $(html_table.find("tbody tr")).each(function () {
     195                        $(this).find('td:last').remove();
     196                      });
     197                    }
     198                  }
     199                  builder.find(key).attr(attr, data);
     200                  tinymce.init({
     201                    selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
     202                    inline: true,
     203                    menubar: true,
     204                    toolbar: false
     205                  });
     206                  $(".yeepdf-table-builder").resizableColumns();
     207                }
     208                break;
     209              case "data-row":
     210                //table col
     211                if (data > 1) {
     212                  var html_table = builder.find(key);
     213                  var count_row = html_table.find("tr").length;
     214                  var table_tr = html_table.find("tr").last().html();
     215                  if (data > count_row) {
     216                    var count_col_plus = count_row;
     217                    for (count_col_plus; count_col_plus < data; count_col_plus++) {
     218                      var class_tr = "yeepdf-table-builder-tr-even";
     219                      if (count_col_plus % 2 == 0) {
     220                        class_tr = "yeepdf-table-builder-tr-odd";
     221                      }
     222                      html_table.find("tbody").append('<tr class="' + class_tr + '">' + table_tr + '</tr>');
     223                    }
     224                  } else if (data < count_row) {
     225                    var count_col_minus = count_row;
     226                    var count_col_new = data;
     227                    for (count_col_minus; count_col_new < count_col_minus; count_col_minus--) {
     228                      html_table.find("tr:last").remove();
     229                    }
     230                  }
     231                  builder.find(key).attr(attr, data);
     232                  tinymce.init({
     233                    selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
     234                    inline: true,
     235                    menubar: true,
     236                    toolbar: false
     237                  });
     238                  $(".yeepdf-table-builder").resizableColumns();
     239                }
     240                break;
     241              case "html_not_change":
     242                break;
     243              case "html":
     244                //change shortcode
     245                if (data == "") {
     246                  data = tinymce.activeEditor.getContent();
     247                }
     248                if (type == "order_detail") {
     249                } else {
     250                  builder.find(key).html($.yeepdf_replace_shorcode(data));
     251                }
     252                break;
     253              case "text":
     254                builder.find(key).html(data);
     255                break;
     256              case "menu":
     257                var tr = $('<tr class="links"></tr');
     258                var i_menu = 0;
     259                $(".builder__editor--item-menu .menu-content-tool li.data").each(function () {
     260                  var text_menu = $(this).find(".text").val();
     261                  var href = $(this).find(".text_url").val();
     262                  var background = $(this).find(".text_background").val();
     263                  var color = $(this).find(".text_color").val();
     264                  var td = $('<td align="center" valign="top"><a target="_blank" href=""></a></td>');
     265                  td.find("a").css("background-color", background);
     266                  td.find("a").css("color", color);
     267                  td.find("a").attr("href", href);
     268                  td.find("a").html(text_menu);
     269                  td.appendTo(tr);
     270                  i_menu++;
    134271                });
    135                 $.each( attr_container_element, function( key, value ) {
    136                     var data = $(key).val();
    137                     if( $(key).attr("type") == "checkbox" ){
    138                         if(  $(key).is(':checked') ){
    139                           data = "ok";
    140                         }else{
    141                           data = "not";
    142                         }
    143                     }
    144                     builder.attr(value,data);
    145                 });
    146                 var condition = $(".builder__editor--item-condition .builder__editor--condition").val();
    147                 builder.attr("data-condition",condition);
    148                 //Element
    149                 if( builder.closest(".builder-elements").length > 0 ) {
    150                     var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
    151                     var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
    152                     //set editor in element style
    153                     $.each( style_inner_element, function( key, value ) {
    154                         $.each( value , function( index, style ) {
    155                           $.yeepdf_set_css_element(index,style,builder,key,value);
    156                         })
    157                     });
    158                     //set editor in  element attr
    159                     $.each( attr_inner_element, function( key, value ) {
    160                         $.each( value , function( index, attr ) {
    161                             var data = $(index).val();
    162                             var data_value = $(index).data("after_value");
    163                             if (data_value !== undefined) {
    164                                 data +=data_value;
    165                             }
    166                             switch(attr) {
    167                               case "data-col":
    168                                 //table col
    169                                 if(data > 0){
    170                                   var html_table = builder.find(key);
    171                                   var count_col = html_table.find("th").length;
    172                                   var table_th_header = html_table.find("th").last().html();
    173                                   var table_td_header = html_table.find("td").last().html();;
    174                                   if(data > count_col){
    175                                     var count_col_plus = count_col;
    176                                     for (count_col_plus; count_col_plus < data; count_col_plus++) {
    177                                       html_table.find("thead tr").append('<th contenteditable="true">'+  +'</th>');
    178                                       html_table.find("tbody tr").append('<td contenteditable="true">'+table_td_header+'</td>');
    179                                     } 
    180                                   }else if(data < count_col){
    181                                     var count_col_minus = count_col;
    182                                     var count_col_new = data;
    183                                     for (count_col_minus;  count_col_new < count_col_minus; count_col_minus--) {
    184                                       html_table.find("thead tr th:last").remove();
    185                                       $(html_table.find("tbody tr")).each(function(){
    186                                         $(this).find('td:last').remove();
    187                                       });
    188                                     }
    189                                   }
    190                                   builder.find(key).attr(attr,data);
    191                                   tinymce.init({
    192                                     selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
    193                                     inline: true,
    194                                     menubar: true,
    195                                     toolbar: false
    196                                   });
    197                                   $(".yeepdf-table-builder").resizableColumns(); 
    198                                 }
    199                                 break;
    200                               case "data-row":
    201                                 //table col
    202                                 if(data > 1){
    203                                   var html_table = builder.find(key);
    204                                   var count_row = html_table.find("tr").length;
    205                                   var table_tr = html_table.find("tr").last().html();
    206                                   if(data > count_row){
    207                                     var count_col_plus = count_row;
    208                                     for (count_col_plus; count_col_plus < data; count_col_plus++) {
    209                                       var class_tr = "yeepdf-table-builder-tr-even";
    210                                       if(count_col_plus % 2 == 0){
    211                                         class_tr= "yeepdf-table-builder-tr-odd";
    212                                       }
    213                                       html_table.find("tbody").append('<tr class="'+class_tr+'">'+table_tr+'</tr>');
    214                                     } 
    215                                   }else if(data < count_row){
    216                                     var count_col_minus = count_row;
    217                                     var count_col_new = data;
    218                                     for (count_col_minus;  count_col_new < count_col_minus; count_col_minus--) {
    219                                       html_table.find("tr:last").remove();
    220                                     }
    221                                   }
    222                                   builder.find(key).attr(attr,data);
    223                                   tinymce.init({
    224                                     selector: '.yeepdf-table-builder th, .yeepdf-table-builder td',
    225                                     inline: true,
    226                                     menubar: true,
    227                                     toolbar: false
    228                                   });
    229                                   $(".yeepdf-table-builder").resizableColumns(); 
    230                                 }
    231                                 break;
    232                               case "html_not_change":
    233                                 break;
    234                               case "html":
    235                                 //change shortcode
    236                                 if(data == ""){
    237                                   data = tinymce.activeEditor.getContent();
    238                                 }
    239                                 if(type == "order_detail"){
    240                                 }else{
    241                                   builder.find(key).html($.yeepdf_replace_shorcode(data));
    242                                 }
    243                                 break;
    244                               case "text":
    245                                 builder.find(key).html(data);
    246                                 break;
    247                               case "menu":
    248                                 var tr = $('<tr class="links"></tr');
    249                                 var i_menu = 0;
    250                                 $( ".builder__editor--item-menu .menu-content-tool li.data" ).each(function() {
    251                                       var text_menu = $(this).find(".text").val();
    252                                       var href = $(this).find(".text_url").val();
    253                                       var background = $(this).find(".text_background").val();
    254                                       var color = $(this).find(".text_color").val();
    255                                       var td = $('<td align="center" valign="top"><a target="_blank" href=""></a></td>');
    256                                       td.find("a").css("background-color",background);
    257                                       td.find("a").css("color",color);
    258                                       td.find("a").attr("href",href);
    259                                       td.find("a").html(text_menu);
    260                                       td.appendTo(tr);
    261                                       i_menu++;
    262                                 });
    263                                 builder.find("tr").remove();
    264                                 tr.appendTo(builder.find("table"));
    265                                 var menu_width = 100 / i_menu;
    266                                 builder.find("td").css("width",menu_width);
    267                                 $.each( style_inner_element, function( key, value ) {
    268                                     $.each( value , function( index, style ) {
    269                                         $.yeepdf_set_css_element(index,style,builder,key,value);
    270                                     })
    271                                   });
    272                                 break;
    273                               case "value_select":
    274                                 if(data !=""){
    275                                   let options = data.split("\n");
    276                                   let options_html = "";
    277                                   $.each( options, function( key, value ) {
    278                                       options_html +='<option value="'+value+'">'+value+'</option>';
    279                                   });
    280                                   builder.find(key).html(options_html);
    281                                 }
    282                                 break;
    283                               case "value_checkbox":
    284                                 if(data !=""){
    285                                   let options = data.split("\n");
    286                                   let options_html = "";
    287                                   $.each( options, function( key, value ) {
    288                                       options_html +=' <input value="'+value+'" type="checkbox" /> '+value;
    289                                   });
    290                                   builder.find(key).html(options_html);
    291                                 }
    292                                 break;
    293                               case "value_radio":
    294                                 if(data !=""){
    295                                   let options = data.split("\n");
    296                                   let options_html = "";
    297                                   $.each( options, function( key, value ) {
    298                                       options_html +=' <input value="'+value+'" type="radio" /> '+value;
    299                                   });
    300                                   builder.find(key).html(options_html);
    301                                 }
    302                               break;
    303                             case "data-showimg":
    304                             case "data-sku":
    305                             case "data-totals":
    306                             case "data-showdes":
    307                                 var showimg = $(".builder__editor--item-detail-template .detail-img");
    308                                 if( showimg.is(":checked")){
    309                                   showimg ="yes";
    310                                 }else{
    311                                   showimg ="hidden";
    312                                 }
    313                                 var totals = $(".builder__editor--item-detail-template .detail-totals");
    314                                 if( totals.is(":checked")){
    315                                   totals ="yes";
    316                                 }else{
    317                                   totals ="hidden";
    318                                 }
    319                                 var sku = $(".builder__editor--item-detail-template .detail-sku");
    320                                 if( sku.is(":checked")){
    321                                   sku ="yes";
    322                                 }else{
    323                                   sku ="hidden";
    324                                 }
    325                                 var des = $(".builder__editor--item-detail-template .detail-des");
    326                                 if( des.is(":checked")){
    327                                   des ="yes";
    328                                 }else{
    329                                   des ="hidden";
    330                                 }
    331                                 var value = "";
    332                                 value = $(index).val();
    333                                 if($(index).attr("type") == "checkbox"){
    334                                   if( $(index).is(":checked")){
    335                                     value = "yes";
    336                                   }else{
    337                                     value = "hidden";
    338                                   }
    339                                 }else{
    340                                   value = data;
    341                                 }
    342                                 var shortcode ="[yeepdf_woo_order_detail show_img='"+showimg+"' item_totals='"+totals+"' item_sku='"+sku+"' show_des='"+des+"']";
    343                                 let count_hidden = $('th[data-sku="yes"],th[data-showimg="yes"],th[data-showdes="yes"]',builder).length;
    344                                 builder.find(".woo_totals th").attr("colspan",2 + parseInt(count_hidden));
    345                                 $(".builder-elements-content.wp_builder_pdf_focus .text-content-data").html(shortcode);
    346                                 builder.find(key).attr(attr,value);
    347                                 break 
    348                             default:
    349                               if($(index).attr("type") == "checkbox"){
    350                                 if( $(index).is(":checked")){
    351                                   data = "yes";
    352                                 }else{
    353                                   data = "no";
    354                                 }
    355                               }
    356                               builder.find(key).attr(attr,data);
    357                               break; 
    358                           }
    359                         })
    360                     });
    361                 }
    362           }
    363          //Click emlement -> get and show editor
    364           $.fn.yeepdf_load_type_editor = function (row ) {
    365             var type = $(this).data("type");
    366             var builder = $(this);
    367             var type_text = type;
    368             if( wp_builder_pdf["block"][type]["type_text"] !== undefined){
    369               type_text = wp_builder_pdf["block"][type]["type_text"];
    370             }
    371             $(".yeepdf-builder-goback .yeepdf-builder-goback_block").html(type_text);
    372             var show_class_container = wp_builder_pdf["block"][type]["editor"]["container"]["show"];
    373             var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
    374             var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
    375             //Show eidtor
    376             $.each( show_class_container, function( key, value ) {
    377               $(".builder__editor--item-"+value).removeClass("hidden");
    378             });
    379             //set editor in container element style
    380             $.each( style_container_element, function( key, value ) {
    381                 var data = builder.css(value);
    382                 if(value == "font-family"){
    383                     data = data.replaceAll('"',"");
    384                     if(data == ""){
    385                         data = 'dejavu sans';
    386                     }
    387                 }
    388                 $.yeepdf_set_css_editor(value,key,data,builder);
    389             });
    390             $.each( attr_container_element, function( key, value ) {
    391                 var data = builder.attr(value);
    392                 var type = $(key).attr("type");
    393                 if( type == "checkbox"){
    394                   if( data == "ok" || data == "yes"){
    395                     $(key).prop('checked', true);
    396                   }else{
    397                     $(key).prop('checked', false);
    398                   }
    399                 }
    400                 $(key).val(data);
    401             });
    402             var condition = builder.attr("data-condition");
    403             if( condition === undefined || condition == "" ){
    404                 condition = "";
    405             }
    406             $(".builder__editor--item-condition .builder__editor--condition").val(condition);
    407             if( !row ){
    408                 var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
    409                 var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
    410                 //set editor in element style
    411                 $.each( style_inner_element, function( key, value ) {
    412                   $.each( value , function( index, style ) {
    413                       var data = builder.find(key).css(style);
    414                       $.yeepdf_set_css_editor(style,index,data,builder);
     272                builder.find("tr").remove();
     273                tr.appendTo(builder.find("table"));
     274                var menu_width = 100 / i_menu;
     275                builder.find("td").css("width", menu_width);
     276                $.each(style_inner_element, function (key, value) {
     277                  $.each(value, function (index, style) {
     278                    $.yeepdf_set_css_element(index, style, builder, key, value);
    415279                  })
    416280                });
    417                 //set editor in  element attr
    418                 $.each( attr_inner_element, function( key, value ) {
    419                     $.each( value , function( index, attr ) {
    420                         switch(attr) {
    421                               case "data-type":
    422                                 var value =  builder.find(key).attr(attr);
    423                                 $(index).val(value);
    424                                 if( value == 0 ){
    425                                     $(".yeepdf-image-type-upload").removeClass("hidden");
    426                                     $(".yeepdf-image-type-field").addClass("hidden");
    427                                 }else{
    428                                     $(".yeepdf-image-type-upload").addClass("hidden");
    429                                     $(".yeepdf-image-type-field").removeClass("hidden");
    430                                 }
    431                                 break;
    432                               case "html_hide":
    433                               case "data-src":     
    434                                 break;
    435                               case "text":
    436                                 var data = builder.find(key).html();
    437                                 $(index).val(data);
    438                                 break;
    439                               case "html":
    440                               case "html_not_change": 
    441                                 if( builder.find(key+"-data").length > 0 ){
    442                                     var data = builder.find(key +"-data").html();
    443                                 }else{
    444                                     var data = builder.find(key).html();
    445                                 }
    446                                 tinyMCE.get('builder__editor--js').setContent(data);
    447                                 break;
    448                               case "html_ajax":
    449                                 var data = builder.find(key+"-data").html();
    450                                 tinyMCE.get('builder__editor--js').setContent(data);
    451                                 break;
    452                               case "menu":
    453                                 var html_menu=$("<ul></ul>");
    454                                 $( builder.find(".yeepdf-menu td") ).each(function() {
    455                                     var text_menu = $(this).find("a").html();
    456                                     var href = $(this).find("a").attr("href");
    457                                     var background = $(this).find("a").css("background-color");
    458                                     var color = $(this).find("a").css("color");
    459                                     color = $.email_builder_cover_color(color);
    460                                     background = $.email_builder_cover_color(background);
    461                                     var menu = $(".builder__editor--item-menu-hidden").clone().removeClass('hidden builder__editor--item-menu-hidden');
    462                                     menu.find(".text").val(text_menu);
    463                                     menu.find(".text_url").val(href);
    464                                     menu.find(".text_background").val(background);
    465                                     menu.find(".text_color").val(color);
    466                                     var container_li = $("<li class='data'></li>");
    467                                     menu.appendTo(container_li);
    468                                     container_li.appendTo(html_menu);
    469                                 });
    470                                 html_menu.removeClass('hidden');
    471                                 $(".builder__editor--item-menu .menu-content-tool ul").remove();
    472                                 html_menu.appendTo($(".menu-content-tool"));
    473                                 $('.menu-content-tool .text_background,.menu-content-tool .text_color').wpColorPicker({
    474                                     change: function(event, ui){
    475                                         $(".wp_builder_pdf_focus").yeepdf_set_type_editor();   
    476                                     }
    477                                 });
    478                                 break;
    479                               case "value_select":
    480                                 var value_select="";
    481                                 let i = 0;
    482                                 $( builder.find("select option") ).each(function() {
    483                                     if(i == 0){
    484                                       value_select += $(this).val();
    485                                     }else{
    486                                       value_select += "\n"+$(this).val();
    487                                     }
    488                                     i++;
    489                                 })
    490                                 $(index).val(value_select);
    491                                 break;
    492                               case "value_checkbox":
    493                               case "value_radio":
    494                                 let value_check="";
    495                                 let i_c = 0;
    496                                 $( builder.find(".yeepdf_checkbox_container input") ).each(function() {
    497                                     if(i_c == 0){
    498                                       value_check += $(this).val();
    499                                     }else{
    500                                       value_check += "\n"+$(this).val();
    501                                     }
    502                                     i_c++;
    503                                 })
    504                                 $(index).val(value_check);
    505                                 break;
    506                               default:
    507                                 var data = builder.find(key).attr(attr);
    508                                 var type = $(index).attr("type");
    509                                 if(type == "checkbox"){
    510                                   if( data == "ok" || data == "yes"){
    511                                       $(index).prop('checked', true);
    512                                   }else{
    513                                     $(index).prop('checked', false);
    514                                   }
    515                                 }else{
    516                                   $(index).val(data);
    517                                 }
    518                                 break;
    519                         }
    520                     })
     281                break;
     282              case "value_select":
     283                if (data != "") {
     284                  let options = data.split("\n");
     285                  let options_html = "";
     286                  $.each(options, function (key, value) {
     287                    options_html += '<option value="' + value + '">' + value + '</option>';
     288                  });
     289                  builder.find(key).html(options_html);
     290                }
     291                break;
     292              case "value_checkbox":
     293                if (data != "") {
     294                  let options = data.split("\n");
     295                  let options_html = "";
     296                  $.each(options, function (key, value) {
     297                    options_html += ' <input value="' + value + '" type="checkbox" /> ' + value;
     298                  });
     299                  builder.find(key).html(options_html);
     300                }
     301                break;
     302              case "value_radio":
     303                if (data != "") {
     304                  let options = data.split("\n");
     305                  let options_html = "";
     306                  $.each(options, function (key, value) {
     307                    options_html += ' <input value="' + value + '" type="radio" /> ' + value;
     308                  });
     309                  builder.find(key).html(options_html);
     310                }
     311                break;
     312              case "data-showimg":
     313              case "data-sku":
     314              case "data-totals":
     315              case "data-showdes":
     316                var showimg = $(".builder__editor--item-detail-template .detail-img");
     317                if (showimg.is(":checked")) {
     318                  showimg = "yes";
     319                } else {
     320                  showimg = "hidden";
     321                }
     322                var totals = $(".builder__editor--item-detail-template .detail-totals");
     323                if (totals.is(":checked")) {
     324                  totals = "yes";
     325                } else {
     326                  totals = "hidden";
     327                }
     328                var sku = $(".builder__editor--item-detail-template .detail-sku");
     329                if (sku.is(":checked")) {
     330                  sku = "yes";
     331                } else {
     332                  sku = "hidden";
     333                }
     334                var des = $(".builder__editor--item-detail-template .detail-des");
     335                if (des.is(":checked")) {
     336                  des = "yes";
     337                } else {
     338                  des = "hidden";
     339                }
     340                var value = "";
     341                value = $(index).val();
     342                if ($(index).attr("type") == "checkbox") {
     343                  if ($(index).is(":checked")) {
     344                    value = "yes";
     345                  } else {
     346                    value = "hidden";
     347                  }
     348                } else {
     349                  value = data;
     350                }
     351                var shortcode = "[yeepdf_woo_order_detail show_img='" + showimg + "' item_totals='" + totals + "' item_sku='" + sku + "' show_des='" + des + "']";
     352                let count_hidden = $('th[data-sku="yes"],th[data-showimg="yes"],th[data-showdes="yes"]', builder).length;
     353                builder.find(".woo_totals th").attr("colspan", 2 + parseInt(count_hidden));
     354                $(".builder-elements-content.wp_builder_pdf_focus .text-content-data").html(shortcode);
     355                builder.find(key).attr(attr, value);
     356                break
     357              default:
     358                if ($(index).attr("type") == "checkbox") {
     359                  if ($(index).is(":checked")) {
     360                    data = "yes";
     361                  } else {
     362                    data = "no";
     363                  }
     364                }
     365                builder.find(key).attr(attr, data);
     366                break;
     367            }
     368          })
     369        });
     370      }
     371    }
     372    //Click emlement -> get and show editor
     373    $.fn.yeepdf_load_type_editor = function (row) {
     374      var type = $(this).data("type");
     375      var builder = $(this);
     376      var type_text = type;
     377      if (wp_builder_pdf["block"][type]["type_text"] !== undefined) {
     378        type_text = wp_builder_pdf["block"][type]["type_text"];
     379      }
     380      $(".yeepdf-builder-goback .yeepdf-builder-goback_block").html(type_text);
     381      var show_class_container = wp_builder_pdf["block"][type]["editor"]["container"]["show"];
     382      var style_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["style"];
     383      var attr_container_element = wp_builder_pdf["block"][type]["editor"]["container"]["attr"];
     384      //Show eidtor
     385      $.each(show_class_container, function (key, value) {
     386        $(".builder__editor--item-" + value).removeClass("hidden");
     387      });
     388      //set editor in container element style
     389      $.each(style_container_element, function (key, value) {
     390        var data = builder.css(value);
     391        if (value == "font-family") {
     392          data = data.replaceAll('"', "");
     393          if (data == "") {
     394            data = 'dejavu sans';
     395          }
     396        }
     397        $.yeepdf_set_css_editor(value, key, data, builder);
     398      });
     399      $.each(attr_container_element, function (key, value) {
     400        var data = builder.attr(value);
     401        var type = $(key).attr("type");
     402        if (type == "checkbox") {
     403          if (data == "ok" || data == "yes") {
     404            $(key).prop('checked', true);
     405          } else {
     406            $(key).prop('checked', false);
     407          }
     408        }
     409        $(key).val(data);
     410      });
     411      var condition = builder.attr("data-condition");
     412      if (condition === undefined || condition == "") {
     413        condition = "";
     414      }
     415      $(".builder__editor--item-condition .builder__editor--condition").val(condition);
     416      if (!row) {
     417        var attr_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["attr"];
     418        var style_inner_element = wp_builder_pdf["block"][type]["editor"]["inner"]["style"];
     419        //set editor in element style
     420        $.each(style_inner_element, function (key, value) {
     421          $.each(value, function (index, style) {
     422            var data = builder.find(key).css(style);
     423            $.yeepdf_set_css_editor(style, index, data, builder);
     424          })
     425        });
     426        //set editor in  element attr
     427        $.each(attr_inner_element, function (key, value) {
     428          $.each(value, function (index, attr) {
     429            switch (attr) {
     430              case "data-type":
     431                var value = builder.find(key).attr(attr);
     432                $(index).val(value);
     433                if (value == 0) {
     434                  $(".yeepdf-image-type-upload").removeClass("hidden");
     435                  $(".yeepdf-image-type-field").addClass("hidden");
     436                } else {
     437                  $(".yeepdf-image-type-upload").addClass("hidden");
     438                  $(".yeepdf-image-type-field").removeClass("hidden");
     439                }
     440                break;
     441              case "html_hide":
     442              case "data-src":
     443                break;
     444              case "text":
     445                var data = builder.find(key).html();
     446                $(index).val(data);
     447                break;
     448              case "html":
     449              case "html_not_change":
     450                if (builder.find(key + "-data").length > 0) {
     451                  var data = builder.find(key + "-data").html();
     452                } else {
     453                  var data = builder.find(key).html();
     454                }
     455                tinyMCE.get('builder__editor--js').setContent(data);
     456                break;
     457              case "html_ajax":
     458                var data = builder.find(key + "-data").html();
     459                tinyMCE.get('builder__editor--js').setContent(data);
     460                break;
     461              case "menu":
     462                var html_menu = $("<ul></ul>");
     463                $(builder.find(".yeepdf-menu td")).each(function () {
     464                  var text_menu = $(this).find("a").html();
     465                  var href = $(this).find("a").attr("href");
     466                  var background = $(this).find("a").css("background-color");
     467                  var color = $(this).find("a").css("color");
     468                  color = $.email_builder_cover_color(color);
     469                  background = $.email_builder_cover_color(background);
     470                  var menu = $(".builder__editor--item-menu-hidden").clone().removeClass('hidden builder__editor--item-menu-hidden');
     471                  menu.find(".text").val(text_menu);
     472                  menu.find(".text_url").val(href);
     473                  menu.find(".text_background").val(background);
     474                  menu.find(".text_color").val(color);
     475                  var container_li = $("<li class='data'></li>");
     476                  menu.appendTo(container_li);
     477                  container_li.appendTo(html_menu);
    521478                });
     479                html_menu.removeClass('hidden');
     480                $(".builder__editor--item-menu .menu-content-tool ul").remove();
     481                html_menu.appendTo($(".menu-content-tool"));
     482                $('.menu-content-tool .text_background,.menu-content-tool .text_color').wpColorPicker({
     483                  change: function (event, ui) {
     484                    $(".wp_builder_pdf_focus").yeepdf_set_type_editor();
     485                  }
     486                });
     487                break;
     488              case "value_select":
     489                var value_select = "";
     490                let i = 0;
     491                $(builder.find("select option")).each(function () {
     492                  if (i == 0) {
     493                    value_select += $(this).val();
     494                  } else {
     495                    value_select += "\n" + $(this).val();
     496                  }
     497                  i++;
     498                })
     499                $(index).val(value_select);
     500                break;
     501              case "value_checkbox":
     502              case "value_radio":
     503                let value_check = "";
     504                let i_c = 0;
     505                $(builder.find(".yeepdf_checkbox_container input")).each(function () {
     506                  if (i_c == 0) {
     507                    value_check += $(this).val();
     508                  } else {
     509                    value_check += "\n" + $(this).val();
     510                  }
     511                  i_c++;
     512                })
     513                $(index).val(value_check);
     514                break;
     515              default:
     516                var data = builder.find(key).attr(attr);
     517                var type = $(index).attr("type");
     518                if (type == "checkbox") {
     519                  if (data == "ok" || data == "yes") {
     520                    $(index).prop('checked', true);
     521                  } else {
     522                    $(index).prop('checked', false);
     523                  }
     524                } else {
     525                  $(index).val(data);
     526                }
     527                break;
    522528            }
    523         }
    524         $.yeepdf_replace_shorcode = function (str) {
    525           if( str === undefined){
    526             return str;
    527           }
    528           if(str != ""){
    529               str = str.replace(/\[yeepdf_fontawesome unicode=['"]?([a-f0-9]+)['"]?\]/gi, function(match, unicode) {
    530                 return `<span class="fontawesome">&#x${unicode};</span>`;
    531               });
    532             }
    533             let re = new RegExp(yeepdf_script.builder_shorcode_re, "gi");
    534             str = str.replaceAll(re, function (matched) {
    535                 matched = matched.replace(/\[|\]/gi, "");
    536                 if(  yeepdf_script.builder_shorcode[matched] === undefined ){
    537                   return "["+matched+"]";
    538                 }else{
    539                   return yeepdf_script.builder_shorcode[matched];
    540                 }
    541             })
    542             return str;
    543         }
    544          // Drop emlement and load builder -> show data builder 
    545         $.yeepdf_load_type = function (type,elements,save_html=false) {
    546                 if( type in wp_builder_pdf["block"] ) {
    547                     var html = $(wp_builder_pdf["block"][type]["builder"]);
    548                 }else{
    549                     var html = $(wp_builder_pdf["block"]["text"]["builder"]);
    550                 }     
    551                 if( elements ){
    552                     var container_style = elements.container_style;
    553                     var inner_style = elements.inner_style;
    554                     var inner_attr = elements.inner_attr;
    555                     html.find(".builder-elements-content").css(container_style);
    556                     $.each( inner_style, function( key, value ) {
    557                         if( value != "") {
    558                           html.find(key).css(value);
    559                         }
    560                     });
    561                     if( elements.condition != ""){
    562                         html.find(".builder-elements-content").attr("data-condition",elements.condition);
    563                     }
    564                     $.each( inner_attr, function( key, value ) {
    565                             var check_type_img = 0;
    566                             $.each( value, function( k, v ) {
    567                                 switch(k) {
    568                                       case "html_hide_table":
    569                                         if(v != ""){
    570                                           v = v.replace("medium-editor medium-editor-element","");
    571                                         }
    572                                         html.find(key).html(v);
    573                                         break;
    574                                       case "text":
    575                                       case "html_hide":
    576                                         if( save_html ) {
    577                                             if( type == "qrcode" ){
    578                                                 var v = '[yeepdf_qrcode]'+v+'[/yeepdf_qrcode]';
    579                                             }else if( type == "barcode") {
    580                                                 var v = '[yeepdf_barcode]'+v+'[/yeepdf_barcode]';
    581                                             }
    582                                         }
    583                                         html.find(key).html(v);
    584                                         break;
    585                                       case "html":;
    586                                         var v_hide = inner_attr[".text-content-data"]["html_hide"];
    587                                         if(v_hide != ""){
    588                                           if(v_hide.search("=")>0){
    589                                             v_hide = v;
    590                                           }
    591                                         }
    592                                         v_hide = $.yeepdf_replace_shorcode(v_hide);
    593                                         html.find(key).html(v_hide);
    594                                         break;
    595                                       case "data-src":
    596                                         html.find(key).attr("src",v);
    597                                         html.find(key).attr(k,v);
    598                                         break;
    599                                       case "menu":
    600                                         var menu_main ="";
    601                                         var width = 100 / _.size(v);
    602                                         $.each( v, function(menu_key, menu ) {
    603                                           menu_main += '<td style="width:'+width+'%" align="center" valign="top"><a style="color:'+menu.color+';background-color:'+menu.background+';" target="_blank" href="'+menu.href+'">'+menu.text+'</a></td>';
    604                                         })
    605                                         html.find("tr").html(menu_main);
    606                                         $.each( inner_style, function( key, value ) {
    607                                             if( value != "") {
    608                                               html.find(key).css(value);
    609                                             } 
    610                                         });
    611                                         break;
    612                                       case "value_select":
    613                                         let option_main ="";
    614                                         $.each( v, function(option_key, options ) {
    615                                           option_main += '<option value="'+options.value+'">'+options.text+'</option>';
    616                                         })
    617                                         html.find("select").html(option_main);
    618                                         break;
    619                                       case "value_checkbox":
    620                                         let input_checkbox ="";
    621                                         $.each( v, function(option_key, options ) {
    622                                           input_checkbox += ' <input  type="checkbox" value="'+options.value+'"/> '+options.text;
    623                                         })
    624                                         html.find(key).html(input_checkbox);
    625                                         break;
    626                                       case "value_radio":
    627                                         let input_radio ="";
    628                                         $.each( v, function(option_key, options ) {
    629                                           input_radio += ' <input  type="radio" value="'+options.value+'"/> '+options.text;
    630                                         })
    631                                         html.find(key).html(input_radio);
    632                                         break;
    633                                       case "data-type":
    634                                           check_type_img = v;
    635                                           html.find(key).attr(k,v);
    636                                           break;
    637                                       case "data-field":
    638                                           if( check_type_img == 1 && save_html ){
    639                                             html.find(key).attr("src",v);
    640                                           }
    641                                           html.find(key).attr(k,v);
    642                                           break;
    643                                       default:
    644                                         html.find(key).attr(k,v);
    645                                         break;
    646                                     }
    647                             })
    648                     });
    649                 }
    650             return html;
    651           }
    652           //Cover grb to hex
    653           $.email_builder_cover_color = function (rgb) {
    654               if (!rgb || typeof rgb !== 'string') return '';
    655               if( rgb == "" ){
    656                   return "";
    657               }
    658               if( "rgba(0,0,0,0)" == rgb.replace(/\s/g, '') ){
    659                   return "transparent";
    660               }
    661               rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
    662               return (rgb && rgb.length === 4) ? "#" +
    663                       ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
    664                       ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
    665                       ("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : '';
    666           }
    667         //set css edit
    668         $.youtube_parser =function( url ) {
    669             var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
    670             var match = url.match(regExp);
    671             return (match&&match[7].length==11)? match[7] : false;
    672         }
    673         $.yeepdf_background_img =function( data ) {
    674             var img = data.replace('url(','').replace(')','').replace(/\"/gi, "");
    675             return img
    676         }
    677         $.yeepdf_set_css_editor =function( style, index,data,builder) {
    678             switch(style) {
    679                 case "border-color":
    680                 case "background-color":
    681                 case "color":
    682                     data = $.email_builder_cover_color(data);
    683                     $(index).val(data);
    684                     $(index).closest(".wp-picker-container").find(".button").css("background-color",data);
    685                   break;
    686                 case "background-image":
    687                     if( data == "none"){
    688                       data = "";
    689                     }else{
    690                       data = $.yeepdf_background_img(data);
    691                     }
    692                     $(index).val(data);
    693                     break;
    694                 case "width":
    695                     if(builder.find("img").length > 0) {
    696                       //image
    697                       var data1 = builder.find("img")[0].style.width;
    698                     }else{
    699                       //text
    700                       if(builder.find(".text-content")[0].style.width === undefined){
    701                         var data1 = "100%";
    702                       }else{
    703                         var data1 = builder.find(".text-content")[0].style.width;
    704                         if(data1 == ""){
    705                           data1 ="100%";
    706                         }
    707                       }
    708                     }
    709                     if(data1 == ""){
    710                       data = data.replace("px","");
    711                       data1 = data;
    712                     }
    713                     $(index).val(data1);
    714                     break;
    715                 case "height":
    716                   if(builder.find("img").length > 0) {
    717                     //image
    718                     var data1 = builder.find("img")[0].style.height;
    719                   }else{
    720                     //text
    721                     if(builder.find(".text-content")[0].style.height === undefined){
    722                       var data1 = "auto";
    723                     }else{
    724                       var data1 = builder.find(".text-content")[0].style.height;
    725                       if(data1 == ""){
    726                         data1 ="auto";
    727                       }
    728                     }
    729                   }
    730                     if(data1 == ""){
    731                       data = data.replace("px","");
    732                       data1 = data;
    733                     }
    734                     $(index).val(data1);
    735                     break;
    736                 case "text-align":
    737                     $(index).val(data);
    738                     $(index).closest(".builder__editor--item").find(".button__align").removeClass("active");
    739                     $(index).closest(".builder__editor--item").find(".builder__editor--align-"+data).addClass("active");
    740                     if( data == "stat")
    741                   break;
    742                 default:
    743                   data = data.replace("px","");
    744                   if(!isNaN(data)){
    745                     data = Math.ceil(data);
    746                   }
    747                   var type_text = $(index).attr("type");
    748                   if( type_text == "checkbox"){
    749                       if( data== "none"){
    750                         $(index).prop('checked', false);
    751                       }else{
    752                         $(index).prop('checked', true);
    753                       }
    754                   }
    755                   $(index).val(data);
    756               }
    757         }
    758       $.yeepdf_set_css_element =function( selector, style,builder="",key="",value="") {
    759         var data = $(selector).val();
    760         var data_value = $(selector).data("after_value");
    761         if (data_value !== undefined) {
    762           if(data.search("px") < 0){
    763             data +=data_value;
    764           }
    765         }
    766         if(key){
    767           builder = builder.find(key);
    768         }
    769         switch(style) {
    770           case "display":
    771             if( $(selector).is(':checked') ) {
    772               builder.css(style,"inline-block"); 
    773             }else{
    774                 builder.css(style,"none");
    775             }
    776             break;
    777           case "text":
    778             builder.html(data);
    779             break;
    780           case "width":
    781           case "height":
    782             if(data.search("%") > -1 || data.search("auto") > -1 ){
    783               data = data.replace("px", "");
    784             }
    785             builder.css(style,data);
    786             break;
    787           case "background-image":
    788             if( data == ""){
    789               builder.css("background-image","");
    790             }else{
    791               builder.css("background-image",'url("' + data + '")');
    792             }
    793             break;
    794           case "font-size":
    795               data = Number(data); 
    796               builder.css("font-size",data);
    797               break;
    798           case "border-style":
    799           case "border-color":
    800             break;
    801           case "border-width":
    802               var border_style = "solid";
    803               var border_color = "#000000";
    804               $.each( value, function( k_vl, v_vl ) {
    805                 if(v_vl == "border-style"){
    806                   border_style = $(k_vl).val();
    807                 }
    808                 if(v_vl == "border-color"){
    809                   border_color = $(k_vl).val();
    810                 }
    811               })
    812               builder.css("border",data +" "+ border_style + " " +border_color);
    813               break;
    814           default:
    815                 builder.css(style,data);
    816                 break;
    817         }   
    818       }
    819       //
    820       $("body").on("change",".pdf_creator_settings_template_type",function(e){
    821         var value = $(this).val();
    822         if(value == 1){
    823             $(".gform-kitchen-sink-template_id").removeClass("hidden");
    824             $(".gform-kitchen-sink-template_upload").addClass("hidden");
    825         }else{
    826             $(".gform-kitchen-sink-template_upload").removeClass("hidden");
    827             $(".gform-kitchen-sink-template_id").addClass("hidden");
     529          })
     530        });
     531      }
     532    }
     533    $.yeepdf_replace_shorcode = function (str) {
     534      if (str === undefined) {
     535        return str;
     536      }
     537      if (str != "") {
     538        str = str.replace(/\[yeepdf_fontawesome unicode=['"]?([a-f0-9]+)['"]?\]/gi, function (match, unicode) {
     539          return `<span class="fontawesome">&#x${unicode};</span>`;
     540        });
     541      }
     542      let re = new RegExp(yeepdf_script.builder_shorcode_re, "gi");
     543      str = str.replaceAll(re, function (matched) {
     544        matched = matched.replace(/\[|\]/gi, "");
     545        if (yeepdf_script.builder_shorcode[matched] === undefined) {
     546          return "[" + matched + "]";
     547        } else {
     548          return yeepdf_script.builder_shorcode[matched];
    828549        }
    829550      })
    830       $("body").on("change","#pdf_creator_conditional_logic",function(e){ 
    831         if( $(this).is(":checked")){
    832             $(".yeepdf-popup-content").removeClass("hidden");
    833         }else{
    834             $(".yeepdf-popup-content").addClass("hidden");
     551      return str;
     552    }
     553    // Drop emlement and load builder -> show data builder 
     554    $.yeepdf_load_type = function (type, elements, save_html = false) {
     555      if (type in wp_builder_pdf["block"]) {
     556        var html = $(wp_builder_pdf["block"][type]["builder"]);
     557      } else {
     558        var html = $(wp_builder_pdf["block"]["text"]["builder"]);
     559      }
     560      if (elements) {
     561        var container_style = elements.container_style;
     562        var inner_style = elements.inner_style;
     563        var inner_attr = elements.inner_attr;
     564        html.find(".builder-elements-content").css(container_style);
     565        $.each(inner_style, function (key, value) {
     566          if (value != "") {
     567            html.find(key).css(value);
     568          }
     569        });
     570        if (elements.condition != "") {
     571          html.find(".builder-elements-content").attr("data-condition", elements.condition);
    835572        }
    836       })
    837       $("body").on("change",".yeepdf_my_account_buttons",function(e){
    838           var value = $(this).val();
    839           if(value == "custom"){
    840             $(".yeepdf_my_account_buttons_custom").removeClass("hidden");
    841           }else{
    842             $(".yeepdf_my_account_buttons_custom").addClass("hidden");
    843           }
    844       })   
     573        $.each(inner_attr, function (key, value) {
     574          var check_type_img = 0;
     575          $.each(value, function (k, v) {
     576            switch (k) {
     577              case "html_hide_table":
     578                if (v != "") {
     579                  v = v.replace("medium-editor medium-editor-element", "");
     580                }
     581                html.find(key).html(v);
     582                break;
     583              case "text":
     584              case "html_hide":
     585                if (save_html) {
     586                  if (type == "qrcode") {
     587                    var v = '[yeepdf_qrcode]' + v + '[/yeepdf_qrcode]';
     588                  } else if (type == "barcode") {
     589                    var v = '[yeepdf_barcode]' + v + '[/yeepdf_barcode]';
     590                  }
     591                }
     592                html.find(key).html(v);
     593                break;
     594              case "html": ;
     595                var v_hide = inner_attr[".text-content-data"]["html_hide"];
     596                if (v_hide != "") {
     597                  if (v_hide.search("=") > 0) {
     598                    v_hide = v;
     599                  }
     600                }
     601                v_hide = $.yeepdf_replace_shorcode(v_hide);
     602                html.find(key).html(v_hide);
     603                break;
     604              case "data-src":
     605                html.find(key).attr("src", v);
     606                html.find(key).attr(k, v);
     607                break;
     608              case "menu":
     609                var menu_main = "";
     610                var width = 100 / _.size(v);
     611                $.each(v, function (menu_key, menu) {
     612                  menu_main += '<td style="width:' + width + '%" align="center" valign="top"><a style="color:' + menu.color + ';background-color:' + menu.background + ';" target="_blank" href="' + menu.href + '">' + menu.text + '</a></td>';
     613                })
     614                html.find("tr").html(menu_main);
     615                $.each(inner_style, function (key, value) {
     616                  if (value != "") {
     617                    html.find(key).css(value);
     618                  }
     619                });
     620                break;
     621              case "value_select":
     622                let option_main = "";
     623                if (Array.isArray(v)) {
     624                  $.each(v, function (option_key, options) {
     625                    option_main += '<option value="' + options.value + '">' + options.text + '</option>';
     626                  })
     627                }
     628                html.find("select").html(option_main);
     629                break;
     630              case "value_checkbox":
     631                let input_checkbox = "";
     632                if (Array.isArray(v)) {
     633                  $.each(v, function (option_key, options) {
     634                    input_checkbox += ' <input  type="checkbox" value="' + options.value + '"/> ' + options.text;
     635                  })
     636                }
     637                html.find(key).html(input_checkbox);
     638                break;
     639              case "value_radio":
     640                let input_radio = "";
     641                if (Array.isArray(v)) {
     642                  $.each(v, function (option_key, options) {
     643                    input_radio += ' <input  type="radio" value="' + options.value + '"/> ' + options.text;
     644                  })
     645                }
     646                html.find(key).html(input_radio);
     647                break;
     648              case "data-type":
     649                check_type_img = v;
     650                html.find(key).attr(k, v);
     651                break;
     652              case "data-field":
     653                if (check_type_img == 1 && save_html) {
     654                  html.find(key).attr("src", v);
     655                }
     656                html.find(key).attr(k, v);
     657                break;
     658              default:
     659                html.find(key).attr(k, v);
     660                break;
     661            }
     662          })
     663        });
     664      }
     665      return html;
     666    }
     667    //Cover grb to hex
     668    $.email_builder_cover_color = function (rgb) {
     669      if (!rgb || typeof rgb !== 'string') return '';
     670      if (rgb == "") {
     671        return "";
     672      }
     673      if ("rgba(0,0,0,0)" == rgb.replace(/\s/g, '')) {
     674        return "transparent";
     675      }
     676      rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
     677      return (rgb && rgb.length === 4) ? "#" +
     678        ("0" + parseInt(rgb[1], 10).toString(16)).slice(-2) +
     679        ("0" + parseInt(rgb[2], 10).toString(16)).slice(-2) +
     680        ("0" + parseInt(rgb[3], 10).toString(16)).slice(-2) : '';
     681    }
     682    //set css edit
     683    $.youtube_parser = function (url) {
     684      var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/;
     685      var match = url.match(regExp);
     686      return (match && match[7].length == 11) ? match[7] : false;
     687    }
     688    $.yeepdf_background_img = function (data) {
     689      var img = data.replace('url(', '').replace(')', '').replace(/\"/gi, "");
     690      return img
     691    }
     692    $.yeepdf_set_css_editor = function (style, index, data, builder) {
     693      switch (style) {
     694        case "border-color":
     695        case "background-color":
     696        case "color":
     697          data = $.email_builder_cover_color(data);
     698          $(index).val(data);
     699          $(index).closest(".wp-picker-container").find(".button").css("background-color", data);
     700          break;
     701        case "background-image":
     702          if (data == "none") {
     703            data = "";
     704          } else {
     705            data = $.yeepdf_background_img(data);
     706          }
     707          $(index).val(data);
     708          break;
     709        case "width":
     710          if (builder.find("img").length > 0) {
     711            //image
     712            var data1 = builder.find("img")[0].style.width;
     713          } else {
     714            //text
     715            if (builder.find(".text-content")[0].style.width === undefined) {
     716              var data1 = "100%";
     717            } else {
     718              var data1 = builder.find(".text-content")[0].style.width;
     719              if (data1 == "") {
     720                data1 = "100%";
     721              }
     722            }
     723          }
     724          if (data1 == "") {
     725            data = data.replace("px", "");
     726            data1 = data;
     727          }
     728          $(index).val(data1);
     729          break;
     730        case "height":
     731          if (builder.find("img").length > 0) {
     732            //image
     733            var data1 = builder.find("img")[0].style.height;
     734          } else {
     735            //text
     736            if (builder.find(".text-content")[0].style.height === undefined) {
     737              var data1 = "auto";
     738            } else {
     739              var data1 = builder.find(".text-content")[0].style.height;
     740              if (data1 == "") {
     741                data1 = "auto";
     742              }
     743            }
     744          }
     745          if (data1 == "") {
     746            data = data.replace("px", "");
     747            data1 = data;
     748          }
     749          $(index).val(data1);
     750          break;
     751        case "text-align":
     752          $(index).val(data);
     753          $(index).closest(".builder__editor--item").find(".button__align").removeClass("active");
     754          $(index).closest(".builder__editor--item").find(".builder__editor--align-" + data).addClass("active");
     755          if (data == "stat")
     756            break;
     757        default:
     758          data = data.replace("px", "");
     759          if (!isNaN(data)) {
     760            data = Math.ceil(data);
     761          }
     762          var type_text = $(index).attr("type");
     763          if (type_text == "checkbox") {
     764            if (data == "none") {
     765              $(index).prop('checked', false);
     766            } else {
     767              $(index).prop('checked', true);
     768            }
     769          }
     770          $(index).val(data);
     771      }
     772    }
     773    $.yeepdf_set_css_element = function (selector, style, builder = "", key = "", value = "") {
     774      var data = $(selector).val();
     775      var data_value = $(selector).data("after_value");
     776      if (data_value !== undefined) {
     777        if (data.search("px") < 0) {
     778          data += data_value;
     779        }
     780      }
     781      if (key) {
     782        builder = builder.find(key);
     783      }
     784      switch (style) {
     785        case "display":
     786          if ($(selector).is(':checked')) {
     787            builder.css(style, "inline-block");
     788          } else {
     789            builder.css(style, "none");
     790          }
     791          break;
     792        case "text":
     793          builder.html(data);
     794          break;
     795        case "width":
     796        case "height":
     797          if (data.search("%") > -1 || data.search("auto") > -1) {
     798            data = data.replace("px", "");
     799          }
     800          builder.css(style, data);
     801          break;
     802        case "background-image":
     803          if (data == "") {
     804            builder.css("background-image", "");
     805          } else {
     806            builder.css("background-image", 'url("' + data + '")');
     807          }
     808          break;
     809        case "font-size":
     810          data = Number(data);
     811          builder.css("font-size", data);
     812          break;
     813        case "border-style":
     814        case "border-color":
     815          break;
     816        case "border-width":
     817          var border_style = "solid";
     818          var border_color = "#000000";
     819          $.each(value, function (k_vl, v_vl) {
     820            if (v_vl == "border-style") {
     821              border_style = $(k_vl).val();
     822            }
     823            if (v_vl == "border-color") {
     824              border_color = $(k_vl).val();
     825            }
     826          })
     827          builder.css("border", data + " " + border_style + " " + border_color);
     828          break;
     829        default:
     830          builder.css(style, data);
     831          break;
     832      }
     833    }
     834    //
     835    $("body").on("change", ".pdf_creator_settings_template_type", function (e) {
     836      var value = $(this).val();
     837      if (value == 1) {
     838        $(".gform-kitchen-sink-template_id").removeClass("hidden");
     839        $(".gform-kitchen-sink-template_upload").addClass("hidden");
     840      } else {
     841        $(".gform-kitchen-sink-template_upload").removeClass("hidden");
     842        $(".gform-kitchen-sink-template_id").addClass("hidden");
     843      }
    845844    })
     845    $("body").on("change", "#pdf_creator_conditional_logic", function (e) {
     846      if ($(this).is(":checked")) {
     847        $(".yeepdf-popup-content").removeClass("hidden");
     848      } else {
     849        $(".yeepdf-popup-content").addClass("hidden");
     850      }
     851    })
     852    $("body").on("change", ".yeepdf_my_account_buttons", function (e) {
     853      var value = $(this).val();
     854      if (value == "custom") {
     855        $(".yeepdf_my_account_buttons_custom").removeClass("hidden");
     856      } else {
     857        $(".yeepdf_my_account_buttons_custom").addClass("hidden");
     858      }
     859    })
     860  })
    846861})(jQuery);
  • pdf-for-gravity-forms/trunk/backend/src/script.js

    r3436495 r3454326  
    1818          return true;
    1919        }
     20        console.log(datas);
    2021        $(".builder__list").html("");
    2122        $(".email-builder-main").css(datas["container"]);
     
    389390      e.preventDefault();
    390391      var attachment = $(this).closest(".grid-item").data("file");
     392     
    391393      $.getJSON(attachment, function (data) {
    392394        $(".data_email").val(data);
     
    443445      var attachment = $(this).closest(".grid-item").data("file");
    444446      $.getJSON(attachment, function (data) {
    445         $(".data_email").val(JSON.stringify(data));
     447        $(".data_email").val(data);
    446448        $(".builder__list").html("");
    447449        yeepdf_builder_main.json_to_builder();
Note: See TracChangeset for help on using the changeset viewer.