Plugin Directory

Changeset 3474408


Ignore:
Timestamp:
03/04/2026 10:09:55 AM (7 days ago)
Author:
triopsi
Message:

Update to version 2.0.2 from GitHub

Location:
extra-product-data-for-woocommerce
Files:
18 edited
1 copied

Legend:

Unmodified
Added
Removed
  • extra-product-data-for-woocommerce/tags/2.0.2/assets/js/wc-meta-boxes-product.min.js

    r3469202 r3474408  
    1010     * @link https://www.triopsi.dev
    1111     */
    12 constructor(){const t=e("#exprdawc_field_body").find("tr.exprdawc_attribute");this.fieldIndex=t.length,this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()}init(){this.bindEvents(),this.noEntryContent(),this.bindFormValidation()}bindEvents(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".exprdawc_attribute_type",this.openOptionsTable.bind(this)),e(document).on("click",".exprdawc_attribute_input_name",this.openOptionsTable.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),e(document).on("click",".exprdawc_adjust_price_field",this.togglePriceAdjustmentTable.bind(this)),e(document).on("change keyup",".field_option_table_value_td input",this.syncOptionValueToDefault.bind(this)),e(document).on("click",".exprdawc_copy_custom_field",this.exprdawc_copy_custom_field.bind(this)),e(document).on("change keyup","input.field_name",this.updateConditionalFieldOptions.bind(this)),this.toggleConditionalValueFieldAll(),this.initFieldTypeSettings(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){this.updateFieldIndices()}}),e(document).on("mouseenter",".exprdawc_options_table tbody",function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})}),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",function(){var t=e(this).val(),a=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&a.text(t)})}addCustomField(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append(`\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="${this.fieldIndex}">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" class="exprdawc_input exprdawc_textinput exprdawc_label field_name" name="extra_product_fields[${this.fieldIndex}][label]" placeholder="${exprdawc_admin_meta_boxes.label_placeholder}" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][type]" class="exprdawc_attribute_type">\n                                    <option value="text">${exprdawc_admin_meta_boxes.short_text}</option>\n                                    <option value="long_text">${exprdawc_admin_meta_boxes.long_text}</option>\n                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                    <option value="number">${exprdawc_admin_meta_boxes.number}</option>\n                                    <option value="date">${exprdawc_admin_meta_boxes.date}</option>\n                                    <option value="yes-no">${exprdawc_admin_meta_boxes.yes_no}</option>\n                                    <option value="radio">${exprdawc_admin_meta_boxes.radio}</option>\n                                    <option value="checkbox">${exprdawc_admin_meta_boxes.checkbox}</option>\n                                    <option value="select">${exprdawc_admin_meta_boxes.select}</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <button type="button" class="button exprdawc_copy_custom_field"><i class="dashicons dashicons-admin-page"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[${this.fieldIndex}][index]" value="${this.fieldIndex}"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_required_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][required]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.require_input}\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][autofocus]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_autofocus}\n                                                </label>\n                                                <label class="exprdawc_label" for="exprdawc_text_editable_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_editable_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[${this.fieldIndex}][editable]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_editable}\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[${this.fieldIndex}][conditional_logic]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_conditional_logic}\n                                                </label>\n\n                                                \x3c!-- Enable Price Adjustment and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_price_adjustment_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_price_adjustment_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_adjust_price_field checkbox" name="extra_product_fields[${this.fieldIndex}][adjust_price]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_price_adjustment}\n                                                </label>\n\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.placeholder_text}</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[${this.fieldIndex}][placeholder_text]" placeholder="${exprdawc_admin_meta_boxes.placeholder_text}" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.help_text}</label>\n                                                <input type="text" id="exprdawc_text_help_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[${this.fieldIndex}][help_text]" placeholder="${exprdawc_admin_meta_boxes.help_text}" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_${this.fieldIndex}">${exprdawc_admin_meta_boxes.autocomplete_function}</label>\n                                                <select id="exprdawc_autocomplete_function_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">${exprdawc_admin_meta_boxes.autocomplete_on}</option>\n                                                    <option value="off">${exprdawc_admin_meta_boxes.autocomplete_off}</option>\n                                                    <option value="address-level1">${exprdawc_admin_meta_boxes.address_level1}</option>\n                                                    <option value="address-level2">${exprdawc_admin_meta_boxes.address_level2}</option>\n                                                    <option value="address-level3">${exprdawc_admin_meta_boxes.address_level3}</option>\n                                                    <option value="address-level4">${exprdawc_admin_meta_boxes.address_level4}</option>\n                                                    <option value="address-line1">${exprdawc_admin_meta_boxes.address_line1}</option>\n                                                    <option value="address-line2">${exprdawc_admin_meta_boxes.address_line2}</option>\n                                                    <option value="address-line3">${exprdawc_admin_meta_boxes.address_line3}</option>\n                                                    <option value="bday">${exprdawc_admin_meta_boxes.bday}</option>\n                                                    <option value="bday-day">${exprdawc_admin_meta_boxes.bday_day}</option>\n                                                    <option value="bday-month">${exprdawc_admin_meta_boxes.bday_month}</option>\n                                                    <option value="bday-year">${exprdawc_admin_meta_boxes.bday_year}</option>\n                                                    <option value="cc-additional-name">${exprdawc_admin_meta_boxes.cc_additional_name}</option>\n                                                    <option value="cc-csc">${exprdawc_admin_meta_boxes.cc_csc}</option>\n                                                    <option value="cc-exp">${exprdawc_admin_meta_boxes.cc_exp}</option>\n                                                    <option value="cc-exp-month">${exprdawc_admin_meta_boxes.cc_exp_month}</option>\n                                                    <option value="cc-exp-year">${exprdawc_admin_meta_boxes.cc_exp_year}</option>\n                                                    <option value="cc-family-name">${exprdawc_admin_meta_boxes.cc_family_name}</option>\n                                                    <option value="cc-given-name">${exprdawc_admin_meta_boxes.cc_given_name}</option>\n                                                    <option value="cc-name">${exprdawc_admin_meta_boxes.cc_name}</option>\n                                                    <option value="cc-number">${exprdawc_admin_meta_boxes.cc_number}</option>\n                                                    <option value="cc-type">${exprdawc_admin_meta_boxes.cc_type}</option>\n                                                    <option value="country">${exprdawc_admin_meta_boxes.country}</option>\n                                                    <option value="country-name">${exprdawc_admin_meta_boxes.country_name}</option>\n                                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                                    <option value="language">${exprdawc_admin_meta_boxes.language}</option>\n                                                    <option value="photo">${exprdawc_admin_meta_boxes.photo}</option>\n                                                    <option value="postal-code">${exprdawc_admin_meta_boxes.postal_code}</option>\n                                                    <option value="sex">${exprdawc_admin_meta_boxes.sex}</option>\n                                                    <option value="street-address">${exprdawc_admin_meta_boxes.street_address}</option>\n                                                    <option value="tel">${exprdawc_admin_meta_boxes.tel}</option>\n                                                    <option value="tel-area-code">${exprdawc_admin_meta_boxes.tel_area_code}</option>\n                                                    <option value="tel-country-code">${exprdawc_admin_meta_boxes.tel_country_code}</option>\n                                                    <option value="tel-extension">${exprdawc_admin_meta_boxes.tel_extension}</option>\n                                                    <option value="tel-local">${exprdawc_admin_meta_boxes.tel_local}</option>\n                                                    <option value="tel-local-prefix">${exprdawc_admin_meta_boxes.tel_local_prefix}</option>\n                                                    <option value="tel-local-suffix">${exprdawc_admin_meta_boxes.tel_local_suffix}</option>\n                                                    <option value="tel-national">${exprdawc_admin_meta_boxes.tel_national}</option>\n                                                    <option value="transaction-amount">${exprdawc_admin_meta_boxes.transaction_amount}</option>\n                                                    <option value="transaction-currency">${exprdawc_admin_meta_boxes.transaction_currency}</option>\n                                                    <option value="url">${exprdawc_admin_meta_boxes.url}</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Price Adjustment --\x3e\n                                <table class="exprdawc_settings_table exprdawc_price_adjustment_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_type_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_type}</label>\n                                                <select id="exprdawc_price_adjustment_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                                    <option vlaue="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                                </select>\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_value_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_value}</label>\n                                                <input type="number" id="exprdawc_price_adjustment_value_${this.fieldIndex}" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" name="extra_product_fields[${this.fieldIndex}][price_adjustment_value]" value="0" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">${exprdawc_admin_meta_boxes.conditionals}</label>\n\t\t\t\t\t\t\t\t                <p>${exprdawc_admin_meta_boxes.conditionals_description}</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                                                                ${this.getAllFieldsOptions()}\n                                                                </select>\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                                                                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                                                                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                                                                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                                                                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                                                                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">${exprdawc_admin_meta_boxes.and}</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_${this.fieldIndex}">${exprdawc_admin_meta_boxes.rows}</label>\n                                                <input type="number" id="exprdawc_long_text_rows_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[${this.fieldIndex}][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_${this.fieldIndex}">${exprdawc_admin_meta_boxes.columns}</label>\n                                                <input type="number" id="exprdawc_long_text_cols_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[${this.fieldIndex}][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <textarea id="exprdawc_long_text_default_${this.fieldIndex}" class="exprdawc_textarea" rows="3" cols="30" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings for radio, checkboxes and selects --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.min_length}</label>\n                                                <input type="number" id="exprdawc_text_min_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[${this.fieldIndex}][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.max_length}</label>\n                                                <input type="number" id="exprdawc_text_max_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[${this.fieldIndex}][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <input type="text" id="exprdawc_text_default_${this.fieldIndex}" class="exprdawc_input exprdawc_text_default" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th class="field_option_table_label_th">${exprdawc_admin_meta_boxes.option_label}</th>\n                                            <th class="field_option_table_value_th">${exprdawc_admin_meta_boxes.option_value}</th>\n                                            <th class="field_option_table_selected_th">${exprdawc_admin_meta_boxes.default_selected}</th>\n                                            <th class="field_option_table_action_th">${exprdawc_admin_meta_boxes.action}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="6">\n                                                <button type="button" class="button add_option">${exprdawc_admin_meta_boxes.add_option}</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">${exprdawc_admin_meta_boxes.no_options}</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                `),this.noEntryContent(),this.updateFieldIndices(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}removeCustomField(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.updateFieldIndices(),this.noEntryContent()),!1}toggleOptions(t){this.setDirty();const a=e(t.currentTarget).closest("tr"),n=e(t.currentTarget).val(),d=a.next(".exprdawc_options"),i=d.find(".exprdawc_options_table"),o=d.find(".exprdawc_placeholder");"radio"===n||"checkbox"===n||"select"===n?(o.prop("disabled",!0),i.show(),d.find(".exprdawc_attribute_placeholder_text").hide()):(o.prop("disabled",!1),i.hide(),d.find(".exprdawc_attribute_placeholder_text").show()),"long_text"===e(t.currentTarget).val()?d.find(".exprdawc_long_text_table").show():d.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?d.find(".exprdawc_text_table").show():d.find(".exprdawc_text_table").hide()}toggleOptionsTable(t){const a=e(t.currentTarget);a.closest("tr").next(".exprdawc_options").toggle(),a.toggleClass("dashicons-arrow-down dashicons-arrow-up")}openOptionsTable(t){const a=e(t.currentTarget).closest("tr.exprdawc_attribute"),n=a.next(".exprdawc_options"),d=a.find(".toggle-options");n.show(),d.removeClass("dashicons-arrow-up").addClass("dashicons-arrow-down")}addOption(t){this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_options_table"),n=a.closest(".exprdawc_fields_table").data("index");if(null==n)return void console.error("exprdawc: actual_index is undefined or null",a);const d=a.find("tbody tr").length,i=a.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();let o="";a.closest(".exprdawc_options").find(".exprdawc_adjust_price_field").is(":checked")&&(o=`\n                    <td class="field_price_adjustment_type_${d} field_price_adjustment_type">\n                    <select name="extra_product_fields[${n}][options][${d}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                        <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                        <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                        <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                    </select>\n                    </td>\n                    <td class="field_price_adjustment_value_${d} field_price_adjustment_value">\n                        <input type="number" name="extra_product_fields[${n}][options][${d}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" step="0.01" placeholder="0.00" value="0" />\n                    </td>\n                `),"radio"===i||"select"===i?a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="radio" name="extra_product_fields[${n}][default]" value="${d}" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `):a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="checkbox" name="extra_product_fields[${n}][options][${d}][default]" value="1" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `),this.checkOptions(a.closest(".exprdawc_options"))}removeOption(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}checkOptions(e){const t=e.find(".exprdawc_options_table tbody"),a=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?a.show():a.hide()}syncOptionValueToDefault(t){const a=e(t.currentTarget),n=a.closest("tr"),d=a.closest(".exprdawc_options_table"),i=d.find("tbody tr").index(n),o=d.closest(".exprdawc_fields_table").data("index");if(null==o)return void console.error("exprdawc: actualIndex is undefined or null",d);const l=a.val(),_=d.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if("radio"===_||"select"===_){const e=d.find("tbody tr").eq(i).find('input[type="radio"]');if(e.length)e.val(l);else{const e=d.find('input[type="radio"][name^="extra_product_fields"]');e.length>i&&e.eq(i).val(l)}}}setDirty(){this.isDirty=!0,this.disableExportLink()}disableExportLink(){this.isDirty&&e(".exprdawc-export").hide()}noEntryContent(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,a=e(".exprdawc_no_entry_message"),n=e("#exprdatawc_table_header"),d=e(".exprdawc-export");t>0?(a.hide(),n.show(),d.show()):(a.show(),n.hide(),d.hide())}checkAutocompleteField(t){const a=e(t.currentTarget);if(a.is(":checked")){const t=e(".exprdawc_autocomplete_field").not(a).filter(":checked");if(t.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void a.prop("checked",!1);t.prop("checked",!1)}}}addRuleGroup(t){const a=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),n=a.find(".exprdawc_rule_group").length,d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=this.getRuleGroupHtml(d,n);a.append(i)}addRule(t){const a=e(t.currentTarget).closest(".exprdawc_rule_group"),n=a.index(),d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=a.find(".exprdawc_rule").length,o=this.getRuleHtml(d,n,i);a.append(o)}getRuleGroupHtml(e,t){return`\n            <div class="exprdawc_rule_group_container">\n                <h2>${exprdawc_admin_meta_boxes.or}</h2>\n                <div class="exprdawc_rule_group">\n                    ${this.getRuleHtml(e,t,0)}\n                </div>\n            </div>\n            `}getRuleHtml(e,t,a){return`\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                ${this.getAllFieldsOptions()}\n                </select>\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                </select>\n                <input type="text" name="extra_product_fields[${e}][conditional_rules][${t}][${a}][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ${exprdawc_admin_meta_boxes.and}</button>\n            </div>\n            `}toggleConditionalValueField(t){const a=e(t.currentTarget),n=a.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===a.val()||"field_is_empty"===a.val()||"field_is_not_empty"===a.val()?n.hide():n.show()}toggleConditionalValueFieldAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalValueField({currentTarget:t})})}togglePriceAdjustmentTableAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalTable({currentTarget:t})})}removeRule(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){const a=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===a.find(".exprdawc_rule").length&&a.remove()}return!1}getAllFieldsOptions(){let t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each(function(){const a=e(this).find(".exprdawc_attribute_input_name input").val();t+=`<option value="${a}">${a}</option>`}),t}toggleConditionalTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");a.is(":checked")?n.show():n.hide()}togglePriceAdjustmentTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_price_adjustment_table"),d=e(t.currentTarget).closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if(console.log(d),"radio"!==d&&"checkbox"!==d&&"select"!==d)a.is(":checked")?n.show():n.hide(),e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").remove(),e(".field_price_adjustment_type, .field_price_adjustment_value").remove();else{n.hide(),a.is(":checked")?(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").show(),e(".field_price_adjustment_type, .field_price_adjustment_value").show()):(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").hide(),e(".field_price_adjustment_type, .field_price_adjustment_value").hide());const d=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_options_table");console.log(d);const i=d.find("tbody tr").length;0===d.find("thead th.field_price_adjustment_type_th").length?(console.log("Adding extra columns"),console.log(d.find("thead th.field_option_table_action_th")),d.find("thead th.field_option_table_action_th").before(`\n                        <th class="field_price_adjustment_type_th">${exprdawc_admin_meta_boxes.price_adjustment_type}</th>\n                        <th class="field_price_adjustment_val_th">${exprdawc_admin_meta_boxes.price_adjustment_value}</th>\n                    `)):console.log("Extra columns already exist"),d.find("tbody tr").each(function(){0===e(this).find(".field_price_adjustment_type").length&&e(this).find(".field_option_table_action_td").before(`\n                            <td class="field_price_adjustment_type_${i} field_price_adjustment_type">\n                                <select name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                    <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                </select>\n                            </td>\n                            <td class="field_price_adjustment_value_${i} field_price_adjustment_value">\n                                <input type="number" name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" value="0" />\n                            </td>\n                            `)})}}initFieldTypeSettings(){e(".exprdawc_fields_wrapper").each((t,a)=>{const n=e(a).find(".exprdawc_attribute_type").val()||"text",d=e(a).find(".exprdawc_attribute_placeholder_text");"radio"===n||"checkbox"===n?d.hide():d.show()})}exprdawc_copy_custom_field(t){t.preventDefault(),this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_fields_wrapper"),n=a.clone();n.find("input, select").each(function(){const t=e(this);if(t.hasClass("field_name")||t.hasClass("exprdawc_placeholder")){const e=t.val(),a=e.match(/\d+$/);if(a){const n=e.replace(/\d+$/,parseInt(a[0],10)+1);t.val(n)}}t.is("select.exprdawc_conditional_field")&&t.val()&&t.find("option:last").prop("selected",!0),t.removeClass("exprdawc-invalid-field")}),n.removeClass("exprdawc-validation-error"),a.after(n),e(".exprdawc_attribute_type").trigger("change"),this.updateFieldIndices(),this.updateConditionalFieldOptions()}updateConditionalFieldOptions(){const t=this.getAllFieldsOptions();e("select.exprdawc_conditional_field").each(function(){const a=e(this),n=a.val();a.html(t),a.val(n)})}updateFieldIndices(){e("#exprdawc_field_body tr.exprdawc_fields_wrapper").each((t,a)=>{e(a).find(".exprdawc_fields_table").attr("data-index",t),e(a).find("input, select").each(function(){const a=e(this),n=a.attr("name");n&&a.attr("name",n.replace(/\[\d+\]/,`[${t}]`));const d=a.attr("id");d&&a.attr("id",d.replace(/_\d+$/,`_${t}`))})})}bindFormValidation(){e("#post").on("submit",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1}),e("#publish, #save-post").on("click",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1})}validateFields(){const t=e("#exprdawc_field_body").find("tr.exprdawc_fields_wrapper");if(0===t.length)return!0;let a=!1;if(t.each((t,n)=>{const d=e(n),i=d.find("input.exprdawc_label");""===i.val().trim()?(a=!0,d.addClass("exprdawc-validation-error"),i.addClass("exprdawc-invalid-field")):(d.removeClass("exprdawc-validation-error"),i.removeClass("exprdawc-invalid-field"))}),a){console.log(exprdawc_admin_meta_boxes.validation_warning);const e=exprdawc_admin_meta_boxes.validation_warning;return alert(e),!1}return!0}}});
     12constructor(){const t=e("#exprdawc_field_body").find("tr.exprdawc_attribute");this.fieldIndex=t.length,this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()}init(){this.bindEvents(),this.noEntryContent(),this.bindFormValidation()}bindEvents(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".exprdawc_attribute_type",this.openOptionsTable.bind(this)),e(document).on("click",".exprdawc_attribute_input_name",this.openOptionsTable.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),e(document).on("click",".exprdawc_adjust_price_field",this.togglePriceAdjustmentTable.bind(this)),e(document).on("change keyup keydown input",".field_option_table_value_td input",this.syncOptionValueToDefault.bind(this)),e(document).on("click",".exprdawc_copy_custom_field",this.exprdawc_copy_custom_field.bind(this)),e(document).on("change keyup keydown input","input.field_name",this.updateConditionalFieldOptions.bind(this)),this.toggleConditionalValueFieldAll(),this.initFieldTypeSettings(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){this.updateFieldIndices()}}),e(document).on("mouseenter",".exprdawc_options_table tbody",function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})}),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",function(){var t=e(this).val(),a=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&a.text(t)})}addCustomField(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append(`\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="${this.fieldIndex}">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" class="exprdawc_input exprdawc_textinput exprdawc_label field_name" name="extra_product_fields[${this.fieldIndex}][label]" placeholder="${exprdawc_admin_meta_boxes.label_placeholder}" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][type]" class="exprdawc_attribute_type">\n                                    <option value="text">${exprdawc_admin_meta_boxes.short_text}</option>\n                                    <option value="long_text">${exprdawc_admin_meta_boxes.long_text}</option>\n                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                    <option value="number">${exprdawc_admin_meta_boxes.number}</option>\n                                    <option value="date">${exprdawc_admin_meta_boxes.date}</option>\n                                    <option value="yes-no">${exprdawc_admin_meta_boxes.yes_no}</option>\n                                    <option value="radio">${exprdawc_admin_meta_boxes.radio}</option>\n                                    <option value="checkbox">${exprdawc_admin_meta_boxes.checkbox}</option>\n                                    <option value="select">${exprdawc_admin_meta_boxes.select}</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <button type="button" class="button exprdawc_copy_custom_field"><i class="dashicons dashicons-admin-page"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[${this.fieldIndex}][index]" value="${this.fieldIndex}"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_required_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][required]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.require_input}\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][autofocus]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_autofocus}\n                                                </label>\n                                                <label class="exprdawc_label" for="exprdawc_text_editable_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_editable_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[${this.fieldIndex}][editable]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_editable}\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[${this.fieldIndex}][conditional_logic]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_conditional_logic}\n                                                </label>\n\n                                                \x3c!-- Enable Price Adjustment and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_price_adjustment_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_price_adjustment_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_adjust_price_field checkbox" name="extra_product_fields[${this.fieldIndex}][adjust_price]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_price_adjustment}\n                                                </label>\n\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.placeholder_text}</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[${this.fieldIndex}][placeholder_text]" placeholder="${exprdawc_admin_meta_boxes.placeholder_text}" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.help_text}</label>\n                                                <input type="text" id="exprdawc_text_help_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[${this.fieldIndex}][help_text]" placeholder="${exprdawc_admin_meta_boxes.help_text}" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_${this.fieldIndex}">${exprdawc_admin_meta_boxes.autocomplete_function}</label>\n                                                <select id="exprdawc_autocomplete_function_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">${exprdawc_admin_meta_boxes.autocomplete_on}</option>\n                                                    <option value="off">${exprdawc_admin_meta_boxes.autocomplete_off}</option>\n                                                    <option value="address-level1">${exprdawc_admin_meta_boxes.address_level1}</option>\n                                                    <option value="address-level2">${exprdawc_admin_meta_boxes.address_level2}</option>\n                                                    <option value="address-level3">${exprdawc_admin_meta_boxes.address_level3}</option>\n                                                    <option value="address-level4">${exprdawc_admin_meta_boxes.address_level4}</option>\n                                                    <option value="address-line1">${exprdawc_admin_meta_boxes.address_line1}</option>\n                                                    <option value="address-line2">${exprdawc_admin_meta_boxes.address_line2}</option>\n                                                    <option value="address-line3">${exprdawc_admin_meta_boxes.address_line3}</option>\n                                                    <option value="bday">${exprdawc_admin_meta_boxes.bday}</option>\n                                                    <option value="bday-day">${exprdawc_admin_meta_boxes.bday_day}</option>\n                                                    <option value="bday-month">${exprdawc_admin_meta_boxes.bday_month}</option>\n                                                    <option value="bday-year">${exprdawc_admin_meta_boxes.bday_year}</option>\n                                                    <option value="cc-additional-name">${exprdawc_admin_meta_boxes.cc_additional_name}</option>\n                                                    <option value="cc-csc">${exprdawc_admin_meta_boxes.cc_csc}</option>\n                                                    <option value="cc-exp">${exprdawc_admin_meta_boxes.cc_exp}</option>\n                                                    <option value="cc-exp-month">${exprdawc_admin_meta_boxes.cc_exp_month}</option>\n                                                    <option value="cc-exp-year">${exprdawc_admin_meta_boxes.cc_exp_year}</option>\n                                                    <option value="cc-family-name">${exprdawc_admin_meta_boxes.cc_family_name}</option>\n                                                    <option value="cc-given-name">${exprdawc_admin_meta_boxes.cc_given_name}</option>\n                                                    <option value="cc-name">${exprdawc_admin_meta_boxes.cc_name}</option>\n                                                    <option value="cc-number">${exprdawc_admin_meta_boxes.cc_number}</option>\n                                                    <option value="cc-type">${exprdawc_admin_meta_boxes.cc_type}</option>\n                                                    <option value="country">${exprdawc_admin_meta_boxes.country}</option>\n                                                    <option value="country-name">${exprdawc_admin_meta_boxes.country_name}</option>\n                                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                                    <option value="language">${exprdawc_admin_meta_boxes.language}</option>\n                                                    <option value="photo">${exprdawc_admin_meta_boxes.photo}</option>\n                                                    <option value="postal-code">${exprdawc_admin_meta_boxes.postal_code}</option>\n                                                    <option value="sex">${exprdawc_admin_meta_boxes.sex}</option>\n                                                    <option value="street-address">${exprdawc_admin_meta_boxes.street_address}</option>\n                                                    <option value="tel">${exprdawc_admin_meta_boxes.tel}</option>\n                                                    <option value="tel-area-code">${exprdawc_admin_meta_boxes.tel_area_code}</option>\n                                                    <option value="tel-country-code">${exprdawc_admin_meta_boxes.tel_country_code}</option>\n                                                    <option value="tel-extension">${exprdawc_admin_meta_boxes.tel_extension}</option>\n                                                    <option value="tel-local">${exprdawc_admin_meta_boxes.tel_local}</option>\n                                                    <option value="tel-local-prefix">${exprdawc_admin_meta_boxes.tel_local_prefix}</option>\n                                                    <option value="tel-local-suffix">${exprdawc_admin_meta_boxes.tel_local_suffix}</option>\n                                                    <option value="tel-national">${exprdawc_admin_meta_boxes.tel_national}</option>\n                                                    <option value="transaction-amount">${exprdawc_admin_meta_boxes.transaction_amount}</option>\n                                                    <option value="transaction-currency">${exprdawc_admin_meta_boxes.transaction_currency}</option>\n                                                    <option value="url">${exprdawc_admin_meta_boxes.url}</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Price Adjustment --\x3e\n                                <table class="exprdawc_settings_table exprdawc_price_adjustment_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_type_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_type}</label>\n                                                <select id="exprdawc_price_adjustment_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                                    <option vlaue="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                                </select>\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_value_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_value}</label>\n                                                <input type="number" id="exprdawc_price_adjustment_value_${this.fieldIndex}" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" name="extra_product_fields[${this.fieldIndex}][price_adjustment_value]" value="0" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">${exprdawc_admin_meta_boxes.conditionals}</label>\n\t\t\t\t\t\t\t\t                <p>${exprdawc_admin_meta_boxes.conditionals_description}</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                                                                ${this.getAllFieldsOptions()}\n                                                                </select>\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                                                                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                                                                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                                                                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                                                                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                                                                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">${exprdawc_admin_meta_boxes.and}</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_${this.fieldIndex}">${exprdawc_admin_meta_boxes.rows}</label>\n                                                <input type="number" id="exprdawc_long_text_rows_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[${this.fieldIndex}][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_${this.fieldIndex}">${exprdawc_admin_meta_boxes.columns}</label>\n                                                <input type="number" id="exprdawc_long_text_cols_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[${this.fieldIndex}][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <textarea id="exprdawc_long_text_default_${this.fieldIndex}" class="exprdawc_textarea" rows="3" cols="30" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings for radio, checkboxes and selects --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.min_length}</label>\n                                                <input type="number" id="exprdawc_text_min_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[${this.fieldIndex}][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.max_length}</label>\n                                                <input type="number" id="exprdawc_text_max_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[${this.fieldIndex}][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <input type="text" id="exprdawc_text_default_${this.fieldIndex}" class="exprdawc_input exprdawc_text_default" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th class="field_option_table_label_th">${exprdawc_admin_meta_boxes.option_label}</th>\n                                            <th class="field_option_table_value_th">${exprdawc_admin_meta_boxes.option_value}</th>\n                                            <th class="field_option_table_selected_th">${exprdawc_admin_meta_boxes.default_selected}</th>\n                                            <th class="field_option_table_action_th">${exprdawc_admin_meta_boxes.action}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="6">\n                                                <button type="button" class="button add_option">${exprdawc_admin_meta_boxes.add_option}</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">${exprdawc_admin_meta_boxes.no_options}</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                `),this.noEntryContent(),this.updateFieldIndices(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}removeCustomField(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.updateFieldIndices(),this.noEntryContent()),!1}toggleOptions(t){this.setDirty();const a=e(t.currentTarget).closest("tr"),n=e(t.currentTarget).val(),d=a.next(".exprdawc_options"),i=d.find(".exprdawc_options_table"),o=d.find(".exprdawc_placeholder");"radio"===n||"checkbox"===n||"select"===n?(o.prop("disabled",!0),i.show(),d.find(".exprdawc_attribute_placeholder_text").hide()):(o.prop("disabled",!1),i.hide(),d.find(".exprdawc_attribute_placeholder_text").show()),"long_text"===e(t.currentTarget).val()?d.find(".exprdawc_long_text_table").show():d.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?d.find(".exprdawc_text_table").show():d.find(".exprdawc_text_table").hide()}toggleOptionsTable(t){const a=e(t.currentTarget);a.closest("tr").next(".exprdawc_options").toggle(),a.toggleClass("dashicons-arrow-down dashicons-arrow-up")}openOptionsTable(t){const a=e(t.currentTarget).closest("tr.exprdawc_attribute"),n=a.next(".exprdawc_options"),d=a.find(".toggle-options");n.show(),d.removeClass("dashicons-arrow-up").addClass("dashicons-arrow-down")}addOption(t){this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_options_table"),n=a.closest(".exprdawc_fields_table").data("index");if(null==n)return void console.error("exprdawc: actual_index is undefined or null",a);const d=a.find("tbody tr").length,i=a.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();let o="";a.closest(".exprdawc_options").find(".exprdawc_adjust_price_field").is(":checked")&&(o=`\n                    <td class="field_price_adjustment_type_${d} field_price_adjustment_type">\n                    <select name="extra_product_fields[${n}][options][${d}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                        <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                        <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                        <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                    </select>\n                    </td>\n                    <td class="field_price_adjustment_value_${d} field_price_adjustment_value">\n                        <input type="number" name="extra_product_fields[${n}][options][${d}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" step="0.01" placeholder="0.00" value="0" />\n                    </td>\n                `),"radio"===i||"select"===i?a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="radio" name="extra_product_fields[${n}][default]" value="${d}" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `):a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="checkbox" name="extra_product_fields[${n}][options][${d}][default]" value="1" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `),this.checkOptions(a.closest(".exprdawc_options"))}removeOption(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}checkOptions(e){const t=e.find(".exprdawc_options_table tbody"),a=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?a.show():a.hide()}syncOptionValueToDefault(t){const a=e(t.currentTarget),n=a.closest("tr"),d=a.closest(".exprdawc_options_table"),i=d.find("tbody tr").index(n),o=d.closest(".exprdawc_fields_table").data("index");if(null==o)return void console.error("exprdawc: actualIndex is undefined or null",d);const l=a.val(),_=d.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if("radio"===_||"select"===_){const e=d.find("tbody tr").eq(i).find('input[type="radio"]');if(e.length)e.val(l);else{const e=d.find('input[type="radio"][name^="extra_product_fields"]');e.length>i&&e.eq(i).val(l)}}}setDirty(){this.isDirty=!0,this.disableExportLink()}disableExportLink(){this.isDirty&&e(".exprdawc-export").hide()}noEntryContent(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,a=e(".exprdawc_no_entry_message"),n=e("#exprdatawc_table_header"),d=e(".exprdawc-export");t>0?(a.hide(),n.show(),d.show()):(a.show(),n.hide(),d.hide())}checkAutocompleteField(t){const a=e(t.currentTarget);if(a.is(":checked")){const t=e(".exprdawc_autocomplete_field").not(a).filter(":checked");if(t.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void a.prop("checked",!1);t.prop("checked",!1)}}}addRuleGroup(t){const a=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),n=a.find(".exprdawc_rule_group").length,d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=this.getRuleGroupHtml(d,n);a.append(i)}addRule(t){const a=e(t.currentTarget).closest(".exprdawc_rule_group"),n=a.index(),d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=a.find(".exprdawc_rule").length,o=this.getRuleHtml(d,n,i);a.append(o)}getRuleGroupHtml(e,t){return`\n            <div class="exprdawc_rule_group_container">\n                <h2>${exprdawc_admin_meta_boxes.or}</h2>\n                <div class="exprdawc_rule_group">\n                    ${this.getRuleHtml(e,t,0)}\n                </div>\n            </div>\n            `}getRuleHtml(e,t,a){return`\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                ${this.getAllFieldsOptions()}\n                </select>\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                </select>\n                <input type="text" name="extra_product_fields[${e}][conditional_rules][${t}][${a}][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ${exprdawc_admin_meta_boxes.and}</button>\n            </div>\n            `}toggleConditionalValueField(t){const a=e(t.currentTarget),n=a.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===a.val()||"field_is_empty"===a.val()||"field_is_not_empty"===a.val()?n.hide():n.show()}toggleConditionalValueFieldAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalValueField({currentTarget:t})})}togglePriceAdjustmentTableAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalTable({currentTarget:t})})}removeRule(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){const a=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===a.find(".exprdawc_rule").length&&a.remove()}return!1}getAllFieldsOptions(){let t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each(function(){const a=e(this).find(".exprdawc_attribute_input_name input").val();t+=`<option value="${a}">${a}</option>`}),t}toggleConditionalTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");a.is(":checked")?n.show():n.hide()}togglePriceAdjustmentTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_price_adjustment_table"),d=e(t.currentTarget).closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if(console.log(d),"radio"!==d&&"checkbox"!==d&&"select"!==d)a.is(":checked")?n.show():n.hide(),e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").remove(),e(".field_price_adjustment_type, .field_price_adjustment_value").remove();else{n.hide(),a.is(":checked")?(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").show(),e(".field_price_adjustment_type, .field_price_adjustment_value").show()):(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").hide(),e(".field_price_adjustment_type, .field_price_adjustment_value").hide());const d=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_options_table");console.log(d);const i=d.find("tbody tr").length;0===d.find("thead th.field_price_adjustment_type_th").length?(console.log("Adding extra columns"),console.log(d.find("thead th.field_option_table_action_th")),d.find("thead th.field_option_table_action_th").before(`\n                        <th class="field_price_adjustment_type_th">${exprdawc_admin_meta_boxes.price_adjustment_type}</th>\n                        <th class="field_price_adjustment_val_th">${exprdawc_admin_meta_boxes.price_adjustment_value}</th>\n                    `)):console.log("Extra columns already exist"),d.find("tbody tr").each(function(){0===e(this).find(".field_price_adjustment_type").length&&e(this).find(".field_option_table_action_td").before(`\n                            <td class="field_price_adjustment_type_${i} field_price_adjustment_type">\n                                <select name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                    <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                </select>\n                            </td>\n                            <td class="field_price_adjustment_value_${i} field_price_adjustment_value">\n                                <input type="number" name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" value="0" />\n                            </td>\n                            `)})}}initFieldTypeSettings(){e(".exprdawc_fields_wrapper").each((t,a)=>{const n=e(a).find(".exprdawc_attribute_type").val()||"text",d=e(a).find(".exprdawc_attribute_placeholder_text");"radio"===n||"checkbox"===n?d.hide():d.show()})}exprdawc_copy_custom_field(t){t.preventDefault(),this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_fields_wrapper"),n=a.clone();n.find("input, select").each(function(){const t=e(this);if(t.hasClass("field_name")||t.hasClass("exprdawc_placeholder")){const e=t.val(),a=e.match(/\d+$/);if(a){const n=e.replace(/\d+$/,parseInt(a[0],10)+1);t.val(n)}}t.is("select.exprdawc_conditional_field")&&t.val()&&t.find("option:last").prop("selected",!0),t.removeClass("exprdawc-invalid-field")}),n.removeClass("exprdawc-validation-error"),a.after(n),e(".exprdawc_attribute_type").trigger("change"),this.updateFieldIndices(),this.updateConditionalFieldOptions()}updateConditionalFieldOptions(){const t=this.getAllFieldsOptions();e("select.exprdawc_conditional_field").each(function(){const a=e(this),n=a.val();a.html(t),a.val(n)})}updateFieldIndices(){e("#exprdawc_field_body tr.exprdawc_fields_wrapper").each((t,a)=>{e(a).find(".exprdawc_fields_table").attr("data-index",t),e(a).find("input, select").each(function(){const a=e(this),n=a.attr("name");n&&a.attr("name",n.replace(/\[\d+\]/,`[${t}]`));const d=a.attr("id");d&&a.attr("id",d.replace(/_\d+$/,`_${t}`))})})}bindFormValidation(){e("#post").on("submit",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1}),e("#publish, #save-post").on("click",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1})}validateFields(){const t=e("#exprdawc_field_body").find("tr.exprdawc_fields_wrapper");if(0===t.length)return!0;let a=!1;if(t.each((t,n)=>{const d=e(n),i=d.find("input.exprdawc_label");""===i.val().trim()?(a=!0,d.addClass("exprdawc-validation-error"),i.addClass("exprdawc-invalid-field")):(d.removeClass("exprdawc-validation-error"),i.removeClass("exprdawc-invalid-field"))}),a){console.log(exprdawc_admin_meta_boxes.validation_warning);const e=exprdawc_admin_meta_boxes.validation_warning;return alert(e),!1}return!0}}});
  • extra-product-data-for-woocommerce/tags/2.0.2/extra-product-data-for-woocommerce.php

    r3469202 r3474408  
    33 * Plugin Name: Extra Product Data for WooCommerce
    44 * Description: Adds customizable input fields per product in WooCommerce, allowing users to enter extra details on the frontend .
    5  * Version: 2.0.1
     5 * Version: 2.0.2
    66 * Author: Triopsi
    77 * Author URI: https:// triopsi.dev
  • extra-product-data-for-woocommerce/tags/2.0.2/readme.txt

    r3469202 r3474408  
    55Tested up to: 6.7
    66Requires PHP: 8.2
    7 Stable tag: 2.0.1
     7Stable tag: 2.0.2
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    185185= 2.0.1 (25.02.2026) =
    186186* Fix and Bump Version to wg.org
     187
     188= 2.0.2 (04.03.2026) =
     189* Fix: Radio default on admin product page now also listens to input event
  • extra-product-data-for-woocommerce/tags/2.0.2/src/assets/js/wc-meta-boxes-product.js

    r3469202 r3474408  
    6666            $(document).on('change', '.exprdawc_conditional_logic_field', this.toggleConditionalTable.bind(this));
    6767            $(document).on('click', '.exprdawc_adjust_price_field', this.togglePriceAdjustmentTable.bind(this));
    68             $(document).on('change keyup', '.field_option_table_value_td input', this.syncOptionValueToDefault.bind(this));
     68            $(document).on('change keyup keydown input', '.field_option_table_value_td input', this.syncOptionValueToDefault.bind(this));
    6969            $(document).on('click', '.exprdawc_copy_custom_field', this.exprdawc_copy_custom_field.bind(this));
    70             $(document).on('change keyup', 'input.field_name', this.updateConditionalFieldOptions.bind(this));
     70            $(document).on('change keyup keydown input', 'input.field_name', this.updateConditionalFieldOptions.bind(this));
    7171
    7272            // Inits
  • extra-product-data-for-woocommerce/tags/2.0.2/src/constants.php

    r3469202 r3474408  
    3030
    3131// Useful global constants.
    32 $version = '2.0.1';
     32$version = '2.0.2';
    3333define( 'EXPRDAWC_VERSION', $version );
    3434define( 'EXPRDAWC_PLUGIN_MAIN_FILE', 'extra-product-data-for-woocommerce.php' );
  • extra-product-data-for-woocommerce/tags/2.0.2/vendor/autoload.php

    r3469202 r3474408  
    2020require_once __DIR__ . '/composer/autoload_real.php';
    2121
    22 return ComposerAutoloaderInitba855de335642eb08732e8874f52c56f::getLoader();
     22return ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18::getLoader();
  • extra-product-data-for-woocommerce/tags/2.0.2/vendor/composer/autoload_real.php

    r3469202 r3474408  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitba855de335642eb08732e8874f52c56f
     5class ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInitba855de335642eb08732e8874f52c56f', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInitba855de335642eb08732e8874f52c56f', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInitba855de335642eb08732e8874f52c56f::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • extra-product-data-for-woocommerce/tags/2.0.2/vendor/composer/autoload_static.php

    r3469202 r3474408  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitba855de335642eb08732e8874f52c56f
     7class ComposerStaticInit605971a92764ca4946e1fc35fff9aa18
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    3939    {
    4040        return \Closure::bind(function () use ($loader) {
    41             $loader->prefixLengthsPsr4 = ComposerStaticInitba855de335642eb08732e8874f52c56f::$prefixLengthsPsr4;
    42             $loader->prefixDirsPsr4 = ComposerStaticInitba855de335642eb08732e8874f52c56f::$prefixDirsPsr4;
    43             $loader->classMap = ComposerStaticInitba855de335642eb08732e8874f52c56f::$classMap;
     41            $loader->prefixLengthsPsr4 = ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::$prefixLengthsPsr4;
     42            $loader->prefixDirsPsr4 = ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::$prefixDirsPsr4;
     43            $loader->classMap = ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::$classMap;
    4444
    4545        }, null, ClassLoader::class);
  • extra-product-data-for-woocommerce/tags/2.0.2/vendor/composer/installed.php

    r3469202 r3474408  
    22    'root' => array(
    33        'name' => 'triopsi/extra-product-data-for-woocommerce',
    4         'pretty_version' => '2.0.1',
    5         'version' => '2.0.1.0',
     4        'pretty_version' => '2.0.2',
     5        'version' => '2.0.2.0',
    66        'reference' => null,
    77        'type' => 'project',
     
    1212    'versions' => array(
    1313        'triopsi/extra-product-data-for-woocommerce' => array(
    14             'pretty_version' => '2.0.1',
    15             'version' => '2.0.1.0',
     14            'pretty_version' => '2.0.2',
     15            'version' => '2.0.2.0',
    1616            'reference' => null,
    1717            'type' => 'project',
  • extra-product-data-for-woocommerce/trunk/assets/js/wc-meta-boxes-product.min.js

    r3469202 r3474408  
    1010     * @link https://www.triopsi.dev
    1111     */
    12 constructor(){const t=e("#exprdawc_field_body").find("tr.exprdawc_attribute");this.fieldIndex=t.length,this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()}init(){this.bindEvents(),this.noEntryContent(),this.bindFormValidation()}bindEvents(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".exprdawc_attribute_type",this.openOptionsTable.bind(this)),e(document).on("click",".exprdawc_attribute_input_name",this.openOptionsTable.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),e(document).on("click",".exprdawc_adjust_price_field",this.togglePriceAdjustmentTable.bind(this)),e(document).on("change keyup",".field_option_table_value_td input",this.syncOptionValueToDefault.bind(this)),e(document).on("click",".exprdawc_copy_custom_field",this.exprdawc_copy_custom_field.bind(this)),e(document).on("change keyup","input.field_name",this.updateConditionalFieldOptions.bind(this)),this.toggleConditionalValueFieldAll(),this.initFieldTypeSettings(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){this.updateFieldIndices()}}),e(document).on("mouseenter",".exprdawc_options_table tbody",function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})}),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",function(){var t=e(this).val(),a=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&a.text(t)})}addCustomField(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append(`\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="${this.fieldIndex}">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" class="exprdawc_input exprdawc_textinput exprdawc_label field_name" name="extra_product_fields[${this.fieldIndex}][label]" placeholder="${exprdawc_admin_meta_boxes.label_placeholder}" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][type]" class="exprdawc_attribute_type">\n                                    <option value="text">${exprdawc_admin_meta_boxes.short_text}</option>\n                                    <option value="long_text">${exprdawc_admin_meta_boxes.long_text}</option>\n                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                    <option value="number">${exprdawc_admin_meta_boxes.number}</option>\n                                    <option value="date">${exprdawc_admin_meta_boxes.date}</option>\n                                    <option value="yes-no">${exprdawc_admin_meta_boxes.yes_no}</option>\n                                    <option value="radio">${exprdawc_admin_meta_boxes.radio}</option>\n                                    <option value="checkbox">${exprdawc_admin_meta_boxes.checkbox}</option>\n                                    <option value="select">${exprdawc_admin_meta_boxes.select}</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <button type="button" class="button exprdawc_copy_custom_field"><i class="dashicons dashicons-admin-page"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[${this.fieldIndex}][index]" value="${this.fieldIndex}"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_required_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][required]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.require_input}\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][autofocus]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_autofocus}\n                                                </label>\n                                                <label class="exprdawc_label" for="exprdawc_text_editable_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_editable_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[${this.fieldIndex}][editable]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_editable}\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[${this.fieldIndex}][conditional_logic]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_conditional_logic}\n                                                </label>\n\n                                                \x3c!-- Enable Price Adjustment and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_price_adjustment_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_price_adjustment_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_adjust_price_field checkbox" name="extra_product_fields[${this.fieldIndex}][adjust_price]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_price_adjustment}\n                                                </label>\n\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.placeholder_text}</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[${this.fieldIndex}][placeholder_text]" placeholder="${exprdawc_admin_meta_boxes.placeholder_text}" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.help_text}</label>\n                                                <input type="text" id="exprdawc_text_help_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[${this.fieldIndex}][help_text]" placeholder="${exprdawc_admin_meta_boxes.help_text}" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_${this.fieldIndex}">${exprdawc_admin_meta_boxes.autocomplete_function}</label>\n                                                <select id="exprdawc_autocomplete_function_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">${exprdawc_admin_meta_boxes.autocomplete_on}</option>\n                                                    <option value="off">${exprdawc_admin_meta_boxes.autocomplete_off}</option>\n                                                    <option value="address-level1">${exprdawc_admin_meta_boxes.address_level1}</option>\n                                                    <option value="address-level2">${exprdawc_admin_meta_boxes.address_level2}</option>\n                                                    <option value="address-level3">${exprdawc_admin_meta_boxes.address_level3}</option>\n                                                    <option value="address-level4">${exprdawc_admin_meta_boxes.address_level4}</option>\n                                                    <option value="address-line1">${exprdawc_admin_meta_boxes.address_line1}</option>\n                                                    <option value="address-line2">${exprdawc_admin_meta_boxes.address_line2}</option>\n                                                    <option value="address-line3">${exprdawc_admin_meta_boxes.address_line3}</option>\n                                                    <option value="bday">${exprdawc_admin_meta_boxes.bday}</option>\n                                                    <option value="bday-day">${exprdawc_admin_meta_boxes.bday_day}</option>\n                                                    <option value="bday-month">${exprdawc_admin_meta_boxes.bday_month}</option>\n                                                    <option value="bday-year">${exprdawc_admin_meta_boxes.bday_year}</option>\n                                                    <option value="cc-additional-name">${exprdawc_admin_meta_boxes.cc_additional_name}</option>\n                                                    <option value="cc-csc">${exprdawc_admin_meta_boxes.cc_csc}</option>\n                                                    <option value="cc-exp">${exprdawc_admin_meta_boxes.cc_exp}</option>\n                                                    <option value="cc-exp-month">${exprdawc_admin_meta_boxes.cc_exp_month}</option>\n                                                    <option value="cc-exp-year">${exprdawc_admin_meta_boxes.cc_exp_year}</option>\n                                                    <option value="cc-family-name">${exprdawc_admin_meta_boxes.cc_family_name}</option>\n                                                    <option value="cc-given-name">${exprdawc_admin_meta_boxes.cc_given_name}</option>\n                                                    <option value="cc-name">${exprdawc_admin_meta_boxes.cc_name}</option>\n                                                    <option value="cc-number">${exprdawc_admin_meta_boxes.cc_number}</option>\n                                                    <option value="cc-type">${exprdawc_admin_meta_boxes.cc_type}</option>\n                                                    <option value="country">${exprdawc_admin_meta_boxes.country}</option>\n                                                    <option value="country-name">${exprdawc_admin_meta_boxes.country_name}</option>\n                                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                                    <option value="language">${exprdawc_admin_meta_boxes.language}</option>\n                                                    <option value="photo">${exprdawc_admin_meta_boxes.photo}</option>\n                                                    <option value="postal-code">${exprdawc_admin_meta_boxes.postal_code}</option>\n                                                    <option value="sex">${exprdawc_admin_meta_boxes.sex}</option>\n                                                    <option value="street-address">${exprdawc_admin_meta_boxes.street_address}</option>\n                                                    <option value="tel">${exprdawc_admin_meta_boxes.tel}</option>\n                                                    <option value="tel-area-code">${exprdawc_admin_meta_boxes.tel_area_code}</option>\n                                                    <option value="tel-country-code">${exprdawc_admin_meta_boxes.tel_country_code}</option>\n                                                    <option value="tel-extension">${exprdawc_admin_meta_boxes.tel_extension}</option>\n                                                    <option value="tel-local">${exprdawc_admin_meta_boxes.tel_local}</option>\n                                                    <option value="tel-local-prefix">${exprdawc_admin_meta_boxes.tel_local_prefix}</option>\n                                                    <option value="tel-local-suffix">${exprdawc_admin_meta_boxes.tel_local_suffix}</option>\n                                                    <option value="tel-national">${exprdawc_admin_meta_boxes.tel_national}</option>\n                                                    <option value="transaction-amount">${exprdawc_admin_meta_boxes.transaction_amount}</option>\n                                                    <option value="transaction-currency">${exprdawc_admin_meta_boxes.transaction_currency}</option>\n                                                    <option value="url">${exprdawc_admin_meta_boxes.url}</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Price Adjustment --\x3e\n                                <table class="exprdawc_settings_table exprdawc_price_adjustment_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_type_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_type}</label>\n                                                <select id="exprdawc_price_adjustment_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                                    <option vlaue="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                                </select>\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_value_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_value}</label>\n                                                <input type="number" id="exprdawc_price_adjustment_value_${this.fieldIndex}" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" name="extra_product_fields[${this.fieldIndex}][price_adjustment_value]" value="0" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">${exprdawc_admin_meta_boxes.conditionals}</label>\n\t\t\t\t\t\t\t\t                <p>${exprdawc_admin_meta_boxes.conditionals_description}</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                                                                ${this.getAllFieldsOptions()}\n                                                                </select>\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                                                                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                                                                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                                                                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                                                                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                                                                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">${exprdawc_admin_meta_boxes.and}</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_${this.fieldIndex}">${exprdawc_admin_meta_boxes.rows}</label>\n                                                <input type="number" id="exprdawc_long_text_rows_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[${this.fieldIndex}][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_${this.fieldIndex}">${exprdawc_admin_meta_boxes.columns}</label>\n                                                <input type="number" id="exprdawc_long_text_cols_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[${this.fieldIndex}][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <textarea id="exprdawc_long_text_default_${this.fieldIndex}" class="exprdawc_textarea" rows="3" cols="30" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings for radio, checkboxes and selects --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.min_length}</label>\n                                                <input type="number" id="exprdawc_text_min_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[${this.fieldIndex}][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.max_length}</label>\n                                                <input type="number" id="exprdawc_text_max_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[${this.fieldIndex}][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <input type="text" id="exprdawc_text_default_${this.fieldIndex}" class="exprdawc_input exprdawc_text_default" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th class="field_option_table_label_th">${exprdawc_admin_meta_boxes.option_label}</th>\n                                            <th class="field_option_table_value_th">${exprdawc_admin_meta_boxes.option_value}</th>\n                                            <th class="field_option_table_selected_th">${exprdawc_admin_meta_boxes.default_selected}</th>\n                                            <th class="field_option_table_action_th">${exprdawc_admin_meta_boxes.action}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="6">\n                                                <button type="button" class="button add_option">${exprdawc_admin_meta_boxes.add_option}</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">${exprdawc_admin_meta_boxes.no_options}</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                `),this.noEntryContent(),this.updateFieldIndices(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}removeCustomField(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.updateFieldIndices(),this.noEntryContent()),!1}toggleOptions(t){this.setDirty();const a=e(t.currentTarget).closest("tr"),n=e(t.currentTarget).val(),d=a.next(".exprdawc_options"),i=d.find(".exprdawc_options_table"),o=d.find(".exprdawc_placeholder");"radio"===n||"checkbox"===n||"select"===n?(o.prop("disabled",!0),i.show(),d.find(".exprdawc_attribute_placeholder_text").hide()):(o.prop("disabled",!1),i.hide(),d.find(".exprdawc_attribute_placeholder_text").show()),"long_text"===e(t.currentTarget).val()?d.find(".exprdawc_long_text_table").show():d.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?d.find(".exprdawc_text_table").show():d.find(".exprdawc_text_table").hide()}toggleOptionsTable(t){const a=e(t.currentTarget);a.closest("tr").next(".exprdawc_options").toggle(),a.toggleClass("dashicons-arrow-down dashicons-arrow-up")}openOptionsTable(t){const a=e(t.currentTarget).closest("tr.exprdawc_attribute"),n=a.next(".exprdawc_options"),d=a.find(".toggle-options");n.show(),d.removeClass("dashicons-arrow-up").addClass("dashicons-arrow-down")}addOption(t){this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_options_table"),n=a.closest(".exprdawc_fields_table").data("index");if(null==n)return void console.error("exprdawc: actual_index is undefined or null",a);const d=a.find("tbody tr").length,i=a.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();let o="";a.closest(".exprdawc_options").find(".exprdawc_adjust_price_field").is(":checked")&&(o=`\n                    <td class="field_price_adjustment_type_${d} field_price_adjustment_type">\n                    <select name="extra_product_fields[${n}][options][${d}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                        <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                        <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                        <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                    </select>\n                    </td>\n                    <td class="field_price_adjustment_value_${d} field_price_adjustment_value">\n                        <input type="number" name="extra_product_fields[${n}][options][${d}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" step="0.01" placeholder="0.00" value="0" />\n                    </td>\n                `),"radio"===i||"select"===i?a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="radio" name="extra_product_fields[${n}][default]" value="${d}" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `):a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="checkbox" name="extra_product_fields[${n}][options][${d}][default]" value="1" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `),this.checkOptions(a.closest(".exprdawc_options"))}removeOption(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}checkOptions(e){const t=e.find(".exprdawc_options_table tbody"),a=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?a.show():a.hide()}syncOptionValueToDefault(t){const a=e(t.currentTarget),n=a.closest("tr"),d=a.closest(".exprdawc_options_table"),i=d.find("tbody tr").index(n),o=d.closest(".exprdawc_fields_table").data("index");if(null==o)return void console.error("exprdawc: actualIndex is undefined or null",d);const l=a.val(),_=d.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if("radio"===_||"select"===_){const e=d.find("tbody tr").eq(i).find('input[type="radio"]');if(e.length)e.val(l);else{const e=d.find('input[type="radio"][name^="extra_product_fields"]');e.length>i&&e.eq(i).val(l)}}}setDirty(){this.isDirty=!0,this.disableExportLink()}disableExportLink(){this.isDirty&&e(".exprdawc-export").hide()}noEntryContent(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,a=e(".exprdawc_no_entry_message"),n=e("#exprdatawc_table_header"),d=e(".exprdawc-export");t>0?(a.hide(),n.show(),d.show()):(a.show(),n.hide(),d.hide())}checkAutocompleteField(t){const a=e(t.currentTarget);if(a.is(":checked")){const t=e(".exprdawc_autocomplete_field").not(a).filter(":checked");if(t.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void a.prop("checked",!1);t.prop("checked",!1)}}}addRuleGroup(t){const a=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),n=a.find(".exprdawc_rule_group").length,d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=this.getRuleGroupHtml(d,n);a.append(i)}addRule(t){const a=e(t.currentTarget).closest(".exprdawc_rule_group"),n=a.index(),d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=a.find(".exprdawc_rule").length,o=this.getRuleHtml(d,n,i);a.append(o)}getRuleGroupHtml(e,t){return`\n            <div class="exprdawc_rule_group_container">\n                <h2>${exprdawc_admin_meta_boxes.or}</h2>\n                <div class="exprdawc_rule_group">\n                    ${this.getRuleHtml(e,t,0)}\n                </div>\n            </div>\n            `}getRuleHtml(e,t,a){return`\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                ${this.getAllFieldsOptions()}\n                </select>\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                </select>\n                <input type="text" name="extra_product_fields[${e}][conditional_rules][${t}][${a}][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ${exprdawc_admin_meta_boxes.and}</button>\n            </div>\n            `}toggleConditionalValueField(t){const a=e(t.currentTarget),n=a.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===a.val()||"field_is_empty"===a.val()||"field_is_not_empty"===a.val()?n.hide():n.show()}toggleConditionalValueFieldAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalValueField({currentTarget:t})})}togglePriceAdjustmentTableAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalTable({currentTarget:t})})}removeRule(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){const a=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===a.find(".exprdawc_rule").length&&a.remove()}return!1}getAllFieldsOptions(){let t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each(function(){const a=e(this).find(".exprdawc_attribute_input_name input").val();t+=`<option value="${a}">${a}</option>`}),t}toggleConditionalTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");a.is(":checked")?n.show():n.hide()}togglePriceAdjustmentTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_price_adjustment_table"),d=e(t.currentTarget).closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if(console.log(d),"radio"!==d&&"checkbox"!==d&&"select"!==d)a.is(":checked")?n.show():n.hide(),e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").remove(),e(".field_price_adjustment_type, .field_price_adjustment_value").remove();else{n.hide(),a.is(":checked")?(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").show(),e(".field_price_adjustment_type, .field_price_adjustment_value").show()):(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").hide(),e(".field_price_adjustment_type, .field_price_adjustment_value").hide());const d=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_options_table");console.log(d);const i=d.find("tbody tr").length;0===d.find("thead th.field_price_adjustment_type_th").length?(console.log("Adding extra columns"),console.log(d.find("thead th.field_option_table_action_th")),d.find("thead th.field_option_table_action_th").before(`\n                        <th class="field_price_adjustment_type_th">${exprdawc_admin_meta_boxes.price_adjustment_type}</th>\n                        <th class="field_price_adjustment_val_th">${exprdawc_admin_meta_boxes.price_adjustment_value}</th>\n                    `)):console.log("Extra columns already exist"),d.find("tbody tr").each(function(){0===e(this).find(".field_price_adjustment_type").length&&e(this).find(".field_option_table_action_td").before(`\n                            <td class="field_price_adjustment_type_${i} field_price_adjustment_type">\n                                <select name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                    <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                </select>\n                            </td>\n                            <td class="field_price_adjustment_value_${i} field_price_adjustment_value">\n                                <input type="number" name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" value="0" />\n                            </td>\n                            `)})}}initFieldTypeSettings(){e(".exprdawc_fields_wrapper").each((t,a)=>{const n=e(a).find(".exprdawc_attribute_type").val()||"text",d=e(a).find(".exprdawc_attribute_placeholder_text");"radio"===n||"checkbox"===n?d.hide():d.show()})}exprdawc_copy_custom_field(t){t.preventDefault(),this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_fields_wrapper"),n=a.clone();n.find("input, select").each(function(){const t=e(this);if(t.hasClass("field_name")||t.hasClass("exprdawc_placeholder")){const e=t.val(),a=e.match(/\d+$/);if(a){const n=e.replace(/\d+$/,parseInt(a[0],10)+1);t.val(n)}}t.is("select.exprdawc_conditional_field")&&t.val()&&t.find("option:last").prop("selected",!0),t.removeClass("exprdawc-invalid-field")}),n.removeClass("exprdawc-validation-error"),a.after(n),e(".exprdawc_attribute_type").trigger("change"),this.updateFieldIndices(),this.updateConditionalFieldOptions()}updateConditionalFieldOptions(){const t=this.getAllFieldsOptions();e("select.exprdawc_conditional_field").each(function(){const a=e(this),n=a.val();a.html(t),a.val(n)})}updateFieldIndices(){e("#exprdawc_field_body tr.exprdawc_fields_wrapper").each((t,a)=>{e(a).find(".exprdawc_fields_table").attr("data-index",t),e(a).find("input, select").each(function(){const a=e(this),n=a.attr("name");n&&a.attr("name",n.replace(/\[\d+\]/,`[${t}]`));const d=a.attr("id");d&&a.attr("id",d.replace(/_\d+$/,`_${t}`))})})}bindFormValidation(){e("#post").on("submit",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1}),e("#publish, #save-post").on("click",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1})}validateFields(){const t=e("#exprdawc_field_body").find("tr.exprdawc_fields_wrapper");if(0===t.length)return!0;let a=!1;if(t.each((t,n)=>{const d=e(n),i=d.find("input.exprdawc_label");""===i.val().trim()?(a=!0,d.addClass("exprdawc-validation-error"),i.addClass("exprdawc-invalid-field")):(d.removeClass("exprdawc-validation-error"),i.removeClass("exprdawc-invalid-field"))}),a){console.log(exprdawc_admin_meta_boxes.validation_warning);const e=exprdawc_admin_meta_boxes.validation_warning;return alert(e),!1}return!0}}});
     12constructor(){const t=e("#exprdawc_field_body").find("tr.exprdawc_attribute");this.fieldIndex=t.length,this.fieldIndex=e("#exprdawc_field_body tr.exprdawc_attribute").length,this.isDirty=!1,this.init()}init(){this.bindEvents(),this.noEntryContent(),this.bindFormValidation()}bindEvents(){e("#exprdawc_add_custom_field").on("click",this.addCustomField.bind(this)),e(document).on("click",".exprdawc_remove_custom_field",this.removeCustomField.bind(this)),e(document).on("change",".exprdawc_attribute_type",this.toggleOptions.bind(this)),e(document).on("click",".exprdawc_attribute_type",this.openOptionsTable.bind(this)),e(document).on("click",".exprdawc_attribute_input_name",this.openOptionsTable.bind(this)),e(document).on("click",".toggle-options",this.toggleOptionsTable.bind(this)),e(document).on("click",".add_option",this.addOption.bind(this)),e(document).on("click",".remove_option",this.removeOption.bind(this)),e(document).on("change",".exprdawc_input",this.setDirty.bind(this)),e(document).on("change",".exprdawc_autocomplete_field",this.checkAutocompleteField.bind(this)),e(document).on("click",".add_rule_group",this.addRuleGroup.bind(this)),e(document).on("click",".add_rule",this.addRule.bind(this)),e(document).on("click",".remove_rule",this.removeRule.bind(this)),e(document).on("change",".exprdawc_conditional_operator",this.toggleConditionalValueField.bind(this)),e(document).on("change",".exprdawc_conditional_logic_field",this.toggleConditionalTable.bind(this)),e(document).on("click",".exprdawc_adjust_price_field",this.togglePriceAdjustmentTable.bind(this)),e(document).on("change keyup keydown input",".field_option_table_value_td input",this.syncOptionValueToDefault.bind(this)),e(document).on("click",".exprdawc_copy_custom_field",this.exprdawc_copy_custom_field.bind(this)),e(document).on("change keyup keydown input","input.field_name",this.updateConditionalFieldOptions.bind(this)),this.toggleConditionalValueFieldAll(),this.initFieldTypeSettings(),e(".exprdawc_field_table tbody").sortable({items:"tr.exprdawc_fields_wrapper",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")},update:function(e,t){this.updateFieldIndices()}}),e(document).on("mouseenter",".exprdawc_options_table tbody",function(){e(this).sortable({items:"tr",cursor:"move",axis:"y",handle:".move",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"wc-metabox-sortable-placeholder",start:function(e,t){t.item.css("background-color","#f6f6f6")},stop:function(e,t){t.item.removeAttr("style")}})}),e("#exprdawc_attribute_container").on("input",".exprdawc_attribute .exprdawc_attribute_input_name input",function(){var t=e(this).val(),a=e(this).closest(".exprdawc_attribute").find(".attribute_name");t&&a.text(t)})}addCustomField(){this.fieldIndex++,this.setDirty(),e("#exprdawc_field_body").append(`\n                <tr class="exprdawc_fields_wrapper">\n                <td colspan="5">\n                <table class="exprdawc_fields_table" data-index="${this.fieldIndex}">\n\t                <tbody>\n                        <tr class="exprdawc_attribute">\n                            <td class="move"><i class="dashicons dashicons-move"></i></td>\n                            <td class="cl-arr"><i class="dashicons dashicons-arrow-up toggle-options"></i></td>\n                            <td class="exprdawc_attribute_input_name">\n                                <input type="text" class="exprdawc_input exprdawc_textinput exprdawc_label field_name" name="extra_product_fields[${this.fieldIndex}][label]" placeholder="${exprdawc_admin_meta_boxes.label_placeholder}" />\n                            </td>\n                            <td>\n                                <select id="exprdawc_attribute_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][type]" class="exprdawc_attribute_type">\n                                    <option value="text">${exprdawc_admin_meta_boxes.short_text}</option>\n                                    <option value="long_text">${exprdawc_admin_meta_boxes.long_text}</option>\n                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                    <option value="number">${exprdawc_admin_meta_boxes.number}</option>\n                                    <option value="date">${exprdawc_admin_meta_boxes.date}</option>\n                                    <option value="yes-no">${exprdawc_admin_meta_boxes.yes_no}</option>\n                                    <option value="radio">${exprdawc_admin_meta_boxes.radio}</option>\n                                    <option value="checkbox">${exprdawc_admin_meta_boxes.checkbox}</option>\n                                    <option value="select">${exprdawc_admin_meta_boxes.select}</option>\n                                </select>\n                            </td>\n                            <td>\n                                <button type="button" class="exprdawc_remove_custom_field button"><i class="dashicons dashicons-trash"></i></button>\n                                <button type="button" class="button exprdawc_copy_custom_field"><i class="dashicons dashicons-admin-page"></i></button>\n                                <input type="hidden" class="exprdawc_attribute_index" name="extra_product_fields[${this.fieldIndex}][index]" value="${this.fieldIndex}"/>\n                            </td>\n                        </tr>\n                        <tr class="exprdawc_options" style="display: none;">\n                            <td colspan="5">\n\n                                <table class="exprdawc_settings_table exprdawc_general_table">\n                                    <tbody>\n\n                                        \x3c!-- Text Area Option/Settings --\x3e\n                                        <tr>\n                                            <td class="exprdawc_attribute_require_checkbox">\n                                                <label class="exprdawc_label" for="exprdawc_text_required_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_required_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][required]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.require_input}\n                                                </label>                                       \n                                                <label class="exprdawc_label" for="exprdawc_text_autofocus_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_autofocus_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox checkbox" name="extra_product_fields[${this.fieldIndex}][autofocus]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_autofocus}\n                                                </label>\n                                                <label class="exprdawc_label" for="exprdawc_text_editable_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_editable_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_editable_field checkbox" name="extra_product_fields[${this.fieldIndex}][editable]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_editable}\n                                                </label>\n\n                                                \x3c!-- Enable Conditional Logic and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_conditional_logic_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_conditional_logic_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_conditional_logic_field checkbox" name="extra_product_fields[${this.fieldIndex}][conditional_logic]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_conditional_logic}\n                                                </label>\n\n                                                \x3c!-- Enable Price Adjustment and show table --\x3e\n                                                <label class="exprdawc_label" for="exprdawc_text_price_adjustment_${this.fieldIndex}">\n                                                    <input type="checkbox" id="exprdawc_text_price_adjustment_${this.fieldIndex}" class="exprdawc_input exprdawc_checkbox exprdawc_adjust_price_field checkbox" name="extra_product_fields[${this.fieldIndex}][adjust_price]" value="1" />\n                                                    ${exprdawc_admin_meta_boxes.enable_price_adjustment}\n                                                </label>\n\n                                            </td>\n                                            <td class="exprdawc_attribute_placeholder_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_placeholder_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.placeholder_text}</label>\n                                                <input type="text" id="exprdawc_text_placeholder_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_placeholder" name="extra_product_fields[${this.fieldIndex}][placeholder_text]" placeholder="${exprdawc_admin_meta_boxes.placeholder_text}" />\n                                            </td>\n                                            <td class="exprdawc_attribute_help_text">\n                                                <label class="exprdawc_label" for="exprdawc_text_help_text_${this.fieldIndex}">${exprdawc_admin_meta_boxes.help_text}</label>\n                                                <input type="text" id="exprdawc_text_help_text_${this.fieldIndex}" class="exprdawc_input exprdawc_textinput exprdawc_helptext" name="extra_product_fields[${this.fieldIndex}][help_text]" placeholder="${exprdawc_admin_meta_boxes.help_text}" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_autocomplete_function_${this.fieldIndex}">${exprdawc_admin_meta_boxes.autocomplete_function}</label>\n                                                <select id="exprdawc_autocomplete_function_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][autocomplete]" class="exprdawc_input exprdawc_attribute_type">\n                                                    <option value="on">${exprdawc_admin_meta_boxes.autocomplete_on}</option>\n                                                    <option value="off">${exprdawc_admin_meta_boxes.autocomplete_off}</option>\n                                                    <option value="address-level1">${exprdawc_admin_meta_boxes.address_level1}</option>\n                                                    <option value="address-level2">${exprdawc_admin_meta_boxes.address_level2}</option>\n                                                    <option value="address-level3">${exprdawc_admin_meta_boxes.address_level3}</option>\n                                                    <option value="address-level4">${exprdawc_admin_meta_boxes.address_level4}</option>\n                                                    <option value="address-line1">${exprdawc_admin_meta_boxes.address_line1}</option>\n                                                    <option value="address-line2">${exprdawc_admin_meta_boxes.address_line2}</option>\n                                                    <option value="address-line3">${exprdawc_admin_meta_boxes.address_line3}</option>\n                                                    <option value="bday">${exprdawc_admin_meta_boxes.bday}</option>\n                                                    <option value="bday-day">${exprdawc_admin_meta_boxes.bday_day}</option>\n                                                    <option value="bday-month">${exprdawc_admin_meta_boxes.bday_month}</option>\n                                                    <option value="bday-year">${exprdawc_admin_meta_boxes.bday_year}</option>\n                                                    <option value="cc-additional-name">${exprdawc_admin_meta_boxes.cc_additional_name}</option>\n                                                    <option value="cc-csc">${exprdawc_admin_meta_boxes.cc_csc}</option>\n                                                    <option value="cc-exp">${exprdawc_admin_meta_boxes.cc_exp}</option>\n                                                    <option value="cc-exp-month">${exprdawc_admin_meta_boxes.cc_exp_month}</option>\n                                                    <option value="cc-exp-year">${exprdawc_admin_meta_boxes.cc_exp_year}</option>\n                                                    <option value="cc-family-name">${exprdawc_admin_meta_boxes.cc_family_name}</option>\n                                                    <option value="cc-given-name">${exprdawc_admin_meta_boxes.cc_given_name}</option>\n                                                    <option value="cc-name">${exprdawc_admin_meta_boxes.cc_name}</option>\n                                                    <option value="cc-number">${exprdawc_admin_meta_boxes.cc_number}</option>\n                                                    <option value="cc-type">${exprdawc_admin_meta_boxes.cc_type}</option>\n                                                    <option value="country">${exprdawc_admin_meta_boxes.country}</option>\n                                                    <option value="country-name">${exprdawc_admin_meta_boxes.country_name}</option>\n                                                    <option value="email">${exprdawc_admin_meta_boxes.email}</option>\n                                                    <option value="language">${exprdawc_admin_meta_boxes.language}</option>\n                                                    <option value="photo">${exprdawc_admin_meta_boxes.photo}</option>\n                                                    <option value="postal-code">${exprdawc_admin_meta_boxes.postal_code}</option>\n                                                    <option value="sex">${exprdawc_admin_meta_boxes.sex}</option>\n                                                    <option value="street-address">${exprdawc_admin_meta_boxes.street_address}</option>\n                                                    <option value="tel">${exprdawc_admin_meta_boxes.tel}</option>\n                                                    <option value="tel-area-code">${exprdawc_admin_meta_boxes.tel_area_code}</option>\n                                                    <option value="tel-country-code">${exprdawc_admin_meta_boxes.tel_country_code}</option>\n                                                    <option value="tel-extension">${exprdawc_admin_meta_boxes.tel_extension}</option>\n                                                    <option value="tel-local">${exprdawc_admin_meta_boxes.tel_local}</option>\n                                                    <option value="tel-local-prefix">${exprdawc_admin_meta_boxes.tel_local_prefix}</option>\n                                                    <option value="tel-local-suffix">${exprdawc_admin_meta_boxes.tel_local_suffix}</option>\n                                                    <option value="tel-national">${exprdawc_admin_meta_boxes.tel_national}</option>\n                                                    <option value="transaction-amount">${exprdawc_admin_meta_boxes.transaction_amount}</option>\n                                                    <option value="transaction-currency">${exprdawc_admin_meta_boxes.transaction_currency}</option>\n                                                    <option value="url">${exprdawc_admin_meta_boxes.url}</option>\n                                                </select>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                                <hr>\n\n                                \x3c!-- Price Adjustment --\x3e\n                                <table class="exprdawc_settings_table exprdawc_price_adjustment_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_type_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_type}</label>\n                                                <select id="exprdawc_price_adjustment_type_${this.fieldIndex}" name="extra_product_fields[${this.fieldIndex}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                                    <option vlaue="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                                </select>\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_price_adjustment_value_${this.fieldIndex}">${exprdawc_admin_meta_boxes.price_adjustment_value}</label>\n                                                <input type="number" id="exprdawc_price_adjustment_value_${this.fieldIndex}" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" name="extra_product_fields[${this.fieldIndex}][price_adjustment_value]" value="0" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Conditional Logic --\x3e\n\t\t\t\t                <table class="exprdawc_settings_table exprdawc_conditional_logic_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                           <td colspan="3">\n                                                <label class="exprdawc_label">${exprdawc_admin_meta_boxes.conditionals}</label>\n\t\t\t\t\t\t\t\t                <p>${exprdawc_admin_meta_boxes.conditionals_description}</p>\n                                                <div class="exprdawc_conditional_rules">\n                                                    <div class="exprdawc_rule_group_container">\n                                                        <div class="exprdawc_rule_group">\n                                                            <div class="exprdawc_rule">\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][field]" class="exprdawc_input exprdawc_conditional_field">\n                                                                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                                                                ${this.getAllFieldsOptions()}\n                                                                </select>\n                                                                <select name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                                                                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                                                                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                                                                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                                                                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                                                                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                                                                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                                                                </select>\n                                                                <input type="text" name="extra_product_fields[${this.fieldIndex}][conditional_rules][0][0][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                                                                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                                                                <button type="button" class="button add_rule">${exprdawc_admin_meta_boxes.and}</button>\n                                                            </div>\n                                                        </div>\n                                                    </div>\n                                                </div>\n                                            </td>                                            \n                                        </tr>\n                                    </tbody>\n                                </table>\n\n\n                                \x3c!-- Text Area Option/Settings --\x3e\n                                <table class="exprdawc_settings_table exprdawc_long_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_rows_${this.fieldIndex}">${exprdawc_admin_meta_boxes.rows}</label>\n                                                <input type="number" id="exprdawc_long_text_rows_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_rows" name="extra_product_fields[${this.fieldIndex}][rows]" value="2" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_cols_${this.fieldIndex}">${exprdawc_admin_meta_boxes.columns}</label>\n                                                <input type="number" id="exprdawc_long_text_cols_${this.fieldIndex}" class="exprdawc_input exprdawc_long_text_cols" name="extra_product_fields[${this.fieldIndex}][cols]" value="5" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_long_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <textarea id="exprdawc_long_text_default_${this.fieldIndex}" class="exprdawc_textarea" rows="3" cols="30" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]"></textarea>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                \x3c!-- Text Option/Settings for radio, checkboxes and selects --\x3e\n                                <table class="exprdawc_settings_table exprdawc_text_table" style="display:none;">\n                                    <tbody>\n                                        <tr>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_min_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.min_length}</label>\n                                                <input type="number" id="exprdawc_text_min_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_min_length" name="extra_product_fields[${this.fieldIndex}][minlength]" value="0" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_max_length_${this.fieldIndex}">${exprdawc_admin_meta_boxes.max_length}</label>\n                                                <input type="number" id="exprdawc_text_max_length_${this.fieldIndex}" class="exprdawc_input exprdawc_text_max_length" name="extra_product_fields[${this.fieldIndex}][maxlength]" value="255" />\n                                            </td>\n                                            <td>\n                                                <label class="exprdawc_label" for="exprdawc_text_default_${this.fieldIndex}">${exprdawc_admin_meta_boxes.default_value}</label>\n                                                <input type="text" id="exprdawc_text_default_${this.fieldIndex}" class="exprdawc_input exprdawc_text_default" placeholder="${exprdawc_admin_meta_boxes.enter_default_text}" name="extra_product_fields[${this.fieldIndex}][default]" />\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n\n                                <table class="exprdawc_options_table" style="display:none;">\n                                    <thead>\n                                        <tr>\n                                            <th></th>\n                                            <th class="field_option_table_label_th">${exprdawc_admin_meta_boxes.option_label}</th>\n                                            <th class="field_option_table_value_th">${exprdawc_admin_meta_boxes.option_value}</th>\n                                            <th class="field_option_table_selected_th">${exprdawc_admin_meta_boxes.default_selected}</th>\n                                            <th class="field_option_table_action_th">${exprdawc_admin_meta_boxes.action}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody>\n                                        \x3c!-- Options will be dynamically added here --\x3e\n                                    </tbody>\n                                    <tfoot>\n                                        <tr>\n                                            <td colspan="6">\n                                                <button type="button" class="button add_option">${exprdawc_admin_meta_boxes.add_option}</button>\n                                            </td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                                <p class="exprdawc_no_entry_message" style="display: none;">${exprdawc_admin_meta_boxes.no_options}</p>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n                </td>\n                </tr>\n                `),this.noEntryContent(),this.updateFieldIndices(),e("#exprdawc_attribute_type_"+this.fieldIndex).trigger("change")}removeCustomField(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").next(".exprdawc_options").remove(),e(t.currentTarget).closest("tr").remove(),this.updateFieldIndices(),this.noEntryContent()),!1}toggleOptions(t){this.setDirty();const a=e(t.currentTarget).closest("tr"),n=e(t.currentTarget).val(),d=a.next(".exprdawc_options"),i=d.find(".exprdawc_options_table"),o=d.find(".exprdawc_placeholder");"radio"===n||"checkbox"===n||"select"===n?(o.prop("disabled",!0),i.show(),d.find(".exprdawc_attribute_placeholder_text").hide()):(o.prop("disabled",!1),i.hide(),d.find(".exprdawc_attribute_placeholder_text").show()),"long_text"===e(t.currentTarget).val()?d.find(".exprdawc_long_text_table").show():d.find(".exprdawc_long_text_table").hide(),"text"===e(t.currentTarget).val()||"email"===e(t.currentTarget).val()||"number"===e(t.currentTarget).val()||"date"===e(t.currentTarget).val()?d.find(".exprdawc_text_table").show():d.find(".exprdawc_text_table").hide()}toggleOptionsTable(t){const a=e(t.currentTarget);a.closest("tr").next(".exprdawc_options").toggle(),a.toggleClass("dashicons-arrow-down dashicons-arrow-up")}openOptionsTable(t){const a=e(t.currentTarget).closest("tr.exprdawc_attribute"),n=a.next(".exprdawc_options"),d=a.find(".toggle-options");n.show(),d.removeClass("dashicons-arrow-up").addClass("dashicons-arrow-down")}addOption(t){this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_options_table"),n=a.closest(".exprdawc_fields_table").data("index");if(null==n)return void console.error("exprdawc: actual_index is undefined or null",a);const d=a.find("tbody tr").length,i=a.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();let o="";a.closest(".exprdawc_options").find(".exprdawc_adjust_price_field").is(":checked")&&(o=`\n                    <td class="field_price_adjustment_type_${d} field_price_adjustment_type">\n                    <select name="extra_product_fields[${n}][options][${d}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                        <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                        <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                        <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                    </select>\n                    </td>\n                    <td class="field_price_adjustment_value_${d} field_price_adjustment_value">\n                        <input type="number" name="extra_product_fields[${n}][options][${d}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" step="0.01" placeholder="0.00" value="0" />\n                    </td>\n                `),"radio"===i||"select"===i?a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="radio" name="extra_product_fields[${n}][default]" value="${d}" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `):a.find("tbody").append(`\n                    <tr>\n                    <td class="move"><i class="dashicons dashicons-move"></i></td>\n                    <td class="field_option_table_label_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][label]" placeholder="${exprdawc_admin_meta_boxes.option_label_placeholder}" />\n                    </td>\n                    <td class="field_option_table_value_td">\n                        <input type="text" name="extra_product_fields[${n}][options][${d}][value]" placeholder="${exprdawc_admin_meta_boxes.option_value_placeholder}" />\n                    </td>\n                    <td class="field_option_table_selected_td">\n                        <input type="checkbox" name="extra_product_fields[${n}][options][${d}][default]" value="1" />\n                    </td>\n                    ${o}\n                    <td class="field_option_table_action_td">\n                        <button type="button" class="button remove_option">${exprdawc_admin_meta_boxes.remove}</button>\n                    </td>\n                    </tr>\n                    `),this.checkOptions(a.closest(".exprdawc_options"))}removeOption(t){return confirm(exprdawc_admin_meta_boxes.confirm_delete)&&(this.setDirty(),e(t.currentTarget).closest("tr").remove(),this.checkOptions(e(t.currentTarget).closest(".exprdawc_options"))),!1}checkOptions(e){const t=e.find(".exprdawc_options_table tbody"),a=e.find(".exprdawc_no_entry_message");0===t.find("tr").length?a.show():a.hide()}syncOptionValueToDefault(t){const a=e(t.currentTarget),n=a.closest("tr"),d=a.closest(".exprdawc_options_table"),i=d.find("tbody tr").index(n),o=d.closest(".exprdawc_fields_table").data("index");if(null==o)return void console.error("exprdawc: actualIndex is undefined or null",d);const l=a.val(),_=d.closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if("radio"===_||"select"===_){const e=d.find("tbody tr").eq(i).find('input[type="radio"]');if(e.length)e.val(l);else{const e=d.find('input[type="radio"][name^="extra_product_fields"]');e.length>i&&e.eq(i).val(l)}}}setDirty(){this.isDirty=!0,this.disableExportLink()}disableExportLink(){this.isDirty&&e(".exprdawc-export").hide()}noEntryContent(){var t=e("#exprdawc_field_body .exprdawc_attribute").length,a=e(".exprdawc_no_entry_message"),n=e("#exprdatawc_table_header"),d=e(".exprdawc-export");t>0?(a.hide(),n.show(),d.show()):(a.show(),n.hide(),d.hide())}checkAutocompleteField(t){const a=e(t.currentTarget);if(a.is(":checked")){const t=e(".exprdawc_autocomplete_field").not(a).filter(":checked");if(t.length>0){if(!confirm(exprdawc_admin_meta_boxes.sureAnotherAutocompleCheckedQuestion))return void a.prop("checked",!1);t.prop("checked",!1)}}}addRuleGroup(t){const a=e(t.currentTarget).closest(".exprdawc_conditional_logic_table").find(".exprdawc_conditional_rules"),n=a.find(".exprdawc_rule_group").length,d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=this.getRuleGroupHtml(d,n);a.append(i)}addRule(t){const a=e(t.currentTarget).closest(".exprdawc_rule_group"),n=a.index(),d=e(t.currentTarget).closest(".exprdawc_fields_table").data("index"),i=a.find(".exprdawc_rule").length,o=this.getRuleHtml(d,n,i);a.append(o)}getRuleGroupHtml(e,t){return`\n            <div class="exprdawc_rule_group_container">\n                <h2>${exprdawc_admin_meta_boxes.or}</h2>\n                <div class="exprdawc_rule_group">\n                    ${this.getRuleHtml(e,t,0)}\n                </div>\n            </div>\n            `}getRuleHtml(e,t,a){return`\n            <div class="exprdawc_rule">\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][field]" class="exprdawc_input exprdawc_conditional_field">\n                <option value="">${exprdawc_admin_meta_boxes.selectFieldNone}</option>\n                ${this.getAllFieldsOptions()}\n                </select>\n                <select name="extra_product_fields[${e}][conditional_rules][${t}][${a}][operator]" class="exprdawc_input exprdawc_conditional_operator">\n                    <option value="field_is_empty">${exprdawc_admin_meta_boxes.field_is_empty}</option>\n                    <option value="field_is_not_empty">${exprdawc_admin_meta_boxes.field_is_not_empty}</option>\n                    <option value="equals">${exprdawc_admin_meta_boxes.equals}</option>\n                    <option value="not_equals">${exprdawc_admin_meta_boxes.notEquals}</option>\n                    <option value="greater_than">${exprdawc_admin_meta_boxes.greaterThan}</option>\n                    <option value="less_than">${exprdawc_admin_meta_boxes.lessThan}</option>\n                </select>\n                <input type="text" name="extra_product_fields[${e}][conditional_rules][${t}][${a}][value]" class="exprdawc_input exprdawc_conditional_value" placeholder="${exprdawc_admin_meta_boxes.enterValue}" style="display:none;" />\n                <button type="button" class="button remove_rule"><i class="dashicons dashicons-trash"></i></button>\n                <button type="button" class="button add_rule">+ ${exprdawc_admin_meta_boxes.and}</button>\n            </div>\n            `}toggleConditionalValueField(t){const a=e(t.currentTarget),n=a.closest(".exprdawc_rule").find(".exprdawc_conditional_value");"field_changed"===a.val()||"field_is_empty"===a.val()||"field_is_not_empty"===a.val()?n.hide():n.show()}toggleConditionalValueFieldAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalValueField({currentTarget:t})})}togglePriceAdjustmentTableAll(){e(".exprdawc_conditional_operator").each((e,t)=>{this.toggleConditionalTable({currentTarget:t})})}removeRule(t){if(confirm(exprdawc_admin_meta_boxes.confirm_delete_rule)){const a=e(t.currentTarget).closest(".exprdawc_rule_group_container");e(t.currentTarget).closest(".exprdawc_rule").remove(),0===a.find(".exprdawc_rule").length&&a.remove()}return!1}getAllFieldsOptions(){let t="";return e("#exprdawc_field_body tr.exprdawc_attribute").each(function(){const a=e(this).find(".exprdawc_attribute_input_name input").val();t+=`<option value="${a}">${a}</option>`}),t}toggleConditionalTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_conditional_logic_table");a.is(":checked")?n.show():n.hide()}togglePriceAdjustmentTable(t){const a=e(t.currentTarget),n=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_price_adjustment_table"),d=e(t.currentTarget).closest(".exprdawc_fields_table").find(".exprdawc_attribute_type").val();if(console.log(d),"radio"!==d&&"checkbox"!==d&&"select"!==d)a.is(":checked")?n.show():n.hide(),e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").remove(),e(".field_price_adjustment_type, .field_price_adjustment_value").remove();else{n.hide(),a.is(":checked")?(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").show(),e(".field_price_adjustment_type, .field_price_adjustment_value").show()):(e(".field_price_adjustment_type_th, .field_price_adjustment_val_th").hide(),e(".field_price_adjustment_type, .field_price_adjustment_value").hide());const d=e(t.currentTarget).closest(".exprdawc_options").find(".exprdawc_options_table");console.log(d);const i=d.find("tbody tr").length;0===d.find("thead th.field_price_adjustment_type_th").length?(console.log("Adding extra columns"),console.log(d.find("thead th.field_option_table_action_th")),d.find("thead th.field_option_table_action_th").before(`\n                        <th class="field_price_adjustment_type_th">${exprdawc_admin_meta_boxes.price_adjustment_type}</th>\n                        <th class="field_price_adjustment_val_th">${exprdawc_admin_meta_boxes.price_adjustment_value}</th>\n                    `)):console.log("Extra columns already exist"),d.find("tbody tr").each(function(){0===e(this).find(".field_price_adjustment_type").length&&e(this).find(".field_option_table_action_td").before(`\n                            <td class="field_price_adjustment_type_${i} field_price_adjustment_type">\n                                <select name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_type]" class="exprdawc_input exprdawc_price_adjustment_type">\n                                    <option value="fixed">${exprdawc_admin_meta_boxes.fixed}</option>\n                                    <option value="quantity">${exprdawc_admin_meta_boxes.quantity}</option>\n                                    <option value="percentage">${exprdawc_admin_meta_boxes.percentage}</option>\n                                </select>\n                            </td>\n                            <td class="field_price_adjustment_value_${i} field_price_adjustment_value">\n                                <input type="number" name="extra_product_fields[${this.fieldIndex}][options][${i}][price_adjustment_value]" class="exprdawc_input exprdawc_price_adjustment_value" placeholder="0.00" value="0" />\n                            </td>\n                            `)})}}initFieldTypeSettings(){e(".exprdawc_fields_wrapper").each((t,a)=>{const n=e(a).find(".exprdawc_attribute_type").val()||"text",d=e(a).find(".exprdawc_attribute_placeholder_text");"radio"===n||"checkbox"===n?d.hide():d.show()})}exprdawc_copy_custom_field(t){t.preventDefault(),this.setDirty();const a=e(t.currentTarget).closest(".exprdawc_fields_wrapper"),n=a.clone();n.find("input, select").each(function(){const t=e(this);if(t.hasClass("field_name")||t.hasClass("exprdawc_placeholder")){const e=t.val(),a=e.match(/\d+$/);if(a){const n=e.replace(/\d+$/,parseInt(a[0],10)+1);t.val(n)}}t.is("select.exprdawc_conditional_field")&&t.val()&&t.find("option:last").prop("selected",!0),t.removeClass("exprdawc-invalid-field")}),n.removeClass("exprdawc-validation-error"),a.after(n),e(".exprdawc_attribute_type").trigger("change"),this.updateFieldIndices(),this.updateConditionalFieldOptions()}updateConditionalFieldOptions(){const t=this.getAllFieldsOptions();e("select.exprdawc_conditional_field").each(function(){const a=e(this),n=a.val();a.html(t),a.val(n)})}updateFieldIndices(){e("#exprdawc_field_body tr.exprdawc_fields_wrapper").each((t,a)=>{e(a).find(".exprdawc_fields_table").attr("data-index",t),e(a).find("input, select").each(function(){const a=e(this),n=a.attr("name");n&&a.attr("name",n.replace(/\[\d+\]/,`[${t}]`));const d=a.attr("id");d&&a.attr("id",d.replace(/_\d+$/,`_${t}`))})})}bindFormValidation(){e("#post").on("submit",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1}),e("#publish, #save-post").on("click",e=>{if(!this.validateFields())return e.preventDefault(),e.stopPropagation(),!1})}validateFields(){const t=e("#exprdawc_field_body").find("tr.exprdawc_fields_wrapper");if(0===t.length)return!0;let a=!1;if(t.each((t,n)=>{const d=e(n),i=d.find("input.exprdawc_label");""===i.val().trim()?(a=!0,d.addClass("exprdawc-validation-error"),i.addClass("exprdawc-invalid-field")):(d.removeClass("exprdawc-validation-error"),i.removeClass("exprdawc-invalid-field"))}),a){console.log(exprdawc_admin_meta_boxes.validation_warning);const e=exprdawc_admin_meta_boxes.validation_warning;return alert(e),!1}return!0}}});
  • extra-product-data-for-woocommerce/trunk/extra-product-data-for-woocommerce.php

    r3469202 r3474408  
    33 * Plugin Name: Extra Product Data for WooCommerce
    44 * Description: Adds customizable input fields per product in WooCommerce, allowing users to enter extra details on the frontend .
    5  * Version: 2.0.1
     5 * Version: 2.0.2
    66 * Author: Triopsi
    77 * Author URI: https:// triopsi.dev
  • extra-product-data-for-woocommerce/trunk/readme.txt

    r3469202 r3474408  
    55Tested up to: 6.7
    66Requires PHP: 8.2
    7 Stable tag: 2.0.1
     7Stable tag: 2.0.2
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    185185= 2.0.1 (25.02.2026) =
    186186* Fix and Bump Version to wg.org
     187
     188= 2.0.2 (04.03.2026) =
     189* Fix: Radio default on admin product page now also listens to input event
  • extra-product-data-for-woocommerce/trunk/src/assets/js/wc-meta-boxes-product.js

    r3469202 r3474408  
    6666            $(document).on('change', '.exprdawc_conditional_logic_field', this.toggleConditionalTable.bind(this));
    6767            $(document).on('click', '.exprdawc_adjust_price_field', this.togglePriceAdjustmentTable.bind(this));
    68             $(document).on('change keyup', '.field_option_table_value_td input', this.syncOptionValueToDefault.bind(this));
     68            $(document).on('change keyup keydown input', '.field_option_table_value_td input', this.syncOptionValueToDefault.bind(this));
    6969            $(document).on('click', '.exprdawc_copy_custom_field', this.exprdawc_copy_custom_field.bind(this));
    70             $(document).on('change keyup', 'input.field_name', this.updateConditionalFieldOptions.bind(this));
     70            $(document).on('change keyup keydown input', 'input.field_name', this.updateConditionalFieldOptions.bind(this));
    7171
    7272            // Inits
  • extra-product-data-for-woocommerce/trunk/src/constants.php

    r3469202 r3474408  
    3030
    3131// Useful global constants.
    32 $version = '2.0.1';
     32$version = '2.0.2';
    3333define( 'EXPRDAWC_VERSION', $version );
    3434define( 'EXPRDAWC_PLUGIN_MAIN_FILE', 'extra-product-data-for-woocommerce.php' );
  • extra-product-data-for-woocommerce/trunk/vendor/autoload.php

    r3469202 r3474408  
    2020require_once __DIR__ . '/composer/autoload_real.php';
    2121
    22 return ComposerAutoloaderInitba855de335642eb08732e8874f52c56f::getLoader();
     22return ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18::getLoader();
  • extra-product-data-for-woocommerce/trunk/vendor/composer/autoload_real.php

    r3469202 r3474408  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInitba855de335642eb08732e8874f52c56f
     5class ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInitba855de335642eb08732e8874f52c56f', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInitba855de335642eb08732e8874f52c56f', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit605971a92764ca4946e1fc35fff9aa18', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInitba855de335642eb08732e8874f52c56f::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • extra-product-data-for-woocommerce/trunk/vendor/composer/autoload_static.php

    r3469202 r3474408  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInitba855de335642eb08732e8874f52c56f
     7class ComposerStaticInit605971a92764ca4946e1fc35fff9aa18
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    3939    {
    4040        return \Closure::bind(function () use ($loader) {
    41             $loader->prefixLengthsPsr4 = ComposerStaticInitba855de335642eb08732e8874f52c56f::$prefixLengthsPsr4;
    42             $loader->prefixDirsPsr4 = ComposerStaticInitba855de335642eb08732e8874f52c56f::$prefixDirsPsr4;
    43             $loader->classMap = ComposerStaticInitba855de335642eb08732e8874f52c56f::$classMap;
     41            $loader->prefixLengthsPsr4 = ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::$prefixLengthsPsr4;
     42            $loader->prefixDirsPsr4 = ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::$prefixDirsPsr4;
     43            $loader->classMap = ComposerStaticInit605971a92764ca4946e1fc35fff9aa18::$classMap;
    4444
    4545        }, null, ClassLoader::class);
  • extra-product-data-for-woocommerce/trunk/vendor/composer/installed.php

    r3469202 r3474408  
    22    'root' => array(
    33        'name' => 'triopsi/extra-product-data-for-woocommerce',
    4         'pretty_version' => '2.0.1',
    5         'version' => '2.0.1.0',
     4        'pretty_version' => '2.0.2',
     5        'version' => '2.0.2.0',
    66        'reference' => null,
    77        'type' => 'project',
     
    1212    'versions' => array(
    1313        'triopsi/extra-product-data-for-woocommerce' => array(
    14             'pretty_version' => '2.0.1',
    15             'version' => '2.0.1.0',
     14            'pretty_version' => '2.0.2',
     15            'version' => '2.0.2.0',
    1616            'reference' => null,
    1717            'type' => 'project',
Note: See TracChangeset for help on using the changeset viewer.