Version Description
(2021-06-23) = * Added: Log file download feature has been added.
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 4.4.5 |
Comparing to | |
See all releases |
Code changes from version 4.4.4 to 4.4.5
- README.txt +4 -1
- admin/js/fancy-select.min.js.map +1 -1
- admin/js/jquery-sortable.min.js.map +1 -1
- admin/js/woo-feed-admin-pro.min.js.map +1 -1
- admin/js/woo-feed-admin.js +12 -0
- admin/js/woo-feed-admin.min.js +1 -1
- admin/js/woo-feed-admin.min.js.map +1 -1
- admin/partials/woo-feed-status.php +4 -1
- languages/woo-feed.pot +1079 -345
- woo-feed.php +2 -2
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Cata
|
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.7
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.4.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -516,6 +516,9 @@ Using pro version:
|
|
516 |
|
517 |
== Changelog ==
|
518 |
|
|
|
|
|
|
|
519 |
= 4.4.4 (2021-06-22) =
|
520 |
* Added: Yoast identifier attributes has been added.
|
521 |
* Added: Yoast WooCommerce SEO plugin compatibility added.
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.7
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.4.5
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
516 |
|
517 |
== Changelog ==
|
518 |
|
519 |
+
= 4.4.5 (2021-06-23) =
|
520 |
+
* Added: Log file download feature has been added.
|
521 |
+
|
522 |
= 4.4.4 (2021-06-22) =
|
523 |
* Added: Yoast identifier attributes has been added.
|
524 |
* Added: Yoast WooCommerce SEO plugin compatibility added.
|
admin/js/fancy-select.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["fancy-select.js"],"names":["$","window","document","FancySelect","$select","options","self","settings","extend","defaults","optgroups","items","placeholder","delimiter","splitOn","persist","diacritics","create","createOnBlur","createFilter","highlight","openOnFocus","maxOptions","maxItems","maxItemShow","hideSelected","addPrecedence","selectOnTab","preload","allowEmptyOption","closeAfterSelect","scrollDuration","loadThrottle","loadingClass","dataAttr","optgroupField","valueField","labelField","disabledField","optgroupLabelField","optgroupValueField","lockOptgroupOrder","sortField","searchField","searchConjunction","mode","wrapperClass","inputClass","dropdownClass","dropdownContentClass","dropdownParent","copyClassesToDropdown","render","select","computedStyle","dir","attr","test","navigator","createElement","debounce","delay","timeout","optionsMap","optHelper","readData","$el","data","JSON","addOption","$option","group","value","hash_key","arr","isArray","field_optgroup","option","addGroup","$optgroup","i","n","id","optgroup","$options","tabIndex","tagType","rtl","multiple","eventNS","highlightedValue","isBlurring","isOpen","isDisabled","isRequired","isInvalid","isLocked","isFocused","isInputHidden","isSetup","isRendered","isShiftDown","isCmdDown","isCtrlDown","ignoreFocus","ignoreBlur","ignoreHover","hasOptions","currentResults","lastValue","caretPos","loading","loadedSearches","$activeOption","$activeItems","userOptions","renderCache","onSearchChange","args","fn","apply","children","length","tagName","addClass","$wrapper","width","appendTo","setup","$children","tabindex","hide","after","a","b","e","trigger","target","closest","preventDefault","current","selected","removeClass","getSelectedOptionData","filter","x","sort","$dropdownContent","find","updatePlaceholder","updateOriginalInput","getComputedStyle","hasOwnProperty","optClass","isSelected","this","dropdownItems","_loop","push","concat","group_options","item","ii","_i","html","join","placeholderData","originalPlaceholder","text","slice","forEach","dataPlaceholder","title","dataCountPlaceholder","removeAttr","changed","silent","input","destroy","append","revertSettings","removeData","$testInput","off","body","fancySelect","prototype","bind","event","fct","_events","unbind","indexOf","Array","call","arguments","user_options","jQuery"],"mappings":"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","file":"fancy-select.min.js","sourcesContent":["\"use strict\";\r\n/**!\r\n * WooFeed Fancy Select\r\n * @version 1.0.0\r\n * @copyright 2020 WebAppick\r\n * @author Kudratullah <mhamudul.hk@gmail.com>\r\n */\r\n\r\n(function($, window, document) {\r\n\t// @TODO if multiple select has required attribute and only one item is selected then return false (user should not able to deselect the last one).\r\n\t// @TODO make the place holder with input field like selectize so we can set the required attribute if the select has required attribute, which can be useful for showing required warning.\r\n\t\"use strict\";\r\n\t\r\n\t/**\r\n\t * FancySelect Constructor\r\n\t * @param {jQuery|HTMLElement} $select\r\n\t * @param {Object} [options]\r\n\t * @constructor\r\n\t */\r\n\tlet FancySelect = function FancySelect($select, options) {\r\n\t\tlet self = this,\r\n\t\t\tdefaults = {\r\n\t\t\t\toptions: [],\r\n\t\t\t\toptgroups: [],\r\n\t\t\t\titems: [],\r\n\t\t\t\tplaceholder: '',\r\n\t\t\t\tdelimiter: ',',\r\n\t\t\t\tsplitOn: null,\r\n\t\t\t\tpersist: !0,\r\n\t\t\t\tdiacritics: !0,\r\n\t\t\t\tcreate: !1,\r\n\t\t\t\tcreateOnBlur: !1,\r\n\t\t\t\tcreateFilter: null,\r\n\t\t\t\thighlight: !0,\r\n\t\t\t\topenOnFocus: !0,\r\n\t\t\t\tmaxOptions: 1e3,\r\n\t\t\t\tmaxItems: null,\r\n\t\t\t\tmaxItemShow: 3,\r\n\t\t\t\thideSelected: null,\r\n\t\t\t\taddPrecedence: !1,\r\n\t\t\t\tselectOnTab: !1,\r\n\t\t\t\tpreload: !1,\r\n\t\t\t\tallowEmptyOption: !1,\r\n\t\t\t\tcloseAfterSelect: !1,\r\n\t\t\t\tscrollDuration: 60,\r\n\t\t\t\tloadThrottle: 300,\r\n\t\t\t\tloadingClass: \"loading\",\r\n\t\t\t\tdataAttr: \"data-data\",\r\n\t\t\t\toptgroupField: \"optgroup\",\r\n\t\t\t\tvalueField: \"value\",\r\n\t\t\t\tlabelField: \"text\",\r\n\t\t\t\tdisabledField: \"disabled\",\r\n\t\t\t\toptgroupLabelField: \"label\",\r\n\t\t\t\toptgroupValueField: \"value\",\r\n\t\t\t\tlockOptgroupOrder: !1,\r\n\t\t\t\tsortField: \"$order\",\r\n\t\t\t\tsearchField: [\"text\"],\r\n\t\t\t\tsearchConjunction: \"and\",\r\n\t\t\t\tmode: null,\r\n\t\t\t\twrapperClass: \"selectize-control\",\r\n\t\t\t\tinputClass: \"selectize-input\",\r\n\t\t\t\tdropdownClass: \"selectize-dropdown\",\r\n\t\t\t\tdropdownContentClass: \"selectize-dropdown-content\",\r\n\t\t\t\tdropdownParent: null,\r\n\t\t\t\tcopyClassesToDropdown: !0,\r\n\t\t\t\trender: {}\r\n\t\t\t},\r\n\t\t\tsettings = $.extend(true, {}, defaults, options),\r\n\t\t\tselect = $select[0];\r\n\t\tselect.fancySelect = self;\r\n\t\tself.order = 0;\r\n\t\tlet computedStyle = window.getComputedStyle && window.getComputedStyle(select, null);\r\n\t\tlet dir = computedStyle ? computedStyle.getPropertyValue('direction') : select.currentStyle && select.currentStyle.direction;\r\n\t\tdir = dir || $select.parents('[dir]:first').attr('dir') || '';\r\n\t\tself.computedStyle = computedStyle; // for now, android support in general is too spotty to support validity\r\n\r\n\t\tconst SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !! document.createElement('input').validity; // helper (private) methods\r\n\r\n\t\tconst debounce = function (fn, delay) {\r\n\t\t\tlet timeout;\r\n\t\t\treturn function() {\r\n\t\t\t\tlet self = this;\r\n\t\t\t\tlet args = arguments;\r\n\t\t\t\twindow.clearTimeout(timeout);\r\n\t\t\t\ttimeout = window.setTimeout(function() {\r\n\t\t\t\t\tfn.apply(self, args);\r\n\t\t\t\t}, delay);\r\n\t\t\t};\r\n\t\t};\r\n\t\t\r\n\t\tlet optionsMap = {},\r\n\t\t\toptHelper = {\r\n\t\t\t\treadData: function ($el) {\r\n\t\t\t\t\tlet data = self.dataAttr && $el.attr(self.dataAttr);\r\n\r\n\t\t\t\t\tif (typeof data === 'string' && data.length) {\r\n\t\t\t\t\t\treturn JSON.parse(data);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t},\r\n\t\t\t\taddOption: function ($option, group) {\r\n\t\t\t\t\t$option = $($option);\r\n\t\t\t\t\tlet value = self.hash_key($option.val());\r\n\t\t\t\t\tif (!value && !settings.allowEmptyOption) return; // if the option already exists, it's probably been\r\n\t\t\t\t\t// duplicated in another optgroup. in this case, push\r\n\t\t\t\t\t// the current group to the \"optgroup\" property on the\r\n\t\t\t\t\t// existing option so that it's rendered in both places.\r\n\r\n\t\t\t\t\tif (optionsMap.hasOwnProperty(value)) {\r\n\t\t\t\t\t\tif (group) {\r\n\t\t\t\t\t\t\tlet arr = optionsMap[value][field_optgroup];\r\n\r\n\t\t\t\t\t\t\tif (!arr) {\r\n\t\t\t\t\t\t\t\toptionsMap[value][field_optgroup] = group;\r\n\t\t\t\t\t\t\t} else if (!$.isArray(arr)) {\r\n\t\t\t\t\t\t\t\toptionsMap[value][field_optgroup] = [arr, group];\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tarr.push(group);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet option = optHelper.readData($option) || {};\r\n\t\t\t\t\toption[self.settings.labelField] = option[self.settings.labelField] || $option.text();\r\n\t\t\t\t\toption[self.settings.valueField] = option[self.settings.valueField] || value;\r\n\t\t\t\t\toption[self.settings.disabledField] = option[self.settings.disabledField] || $option.prop('disabled');\r\n\t\t\t\t\toption[self.settings.optgroupField] = option[self.settings.optgroupField] || group;\r\n\t\t\t\t\toption.$order = ++self.order;\r\n\t\t\t\t\toptionsMap[value] = option;\r\n\t\t\t\t\tself.settings.options.push(option);\r\n\r\n\t\t\t\t\tif ($option.is(':selected')) {\r\n\t\t\t\t\t\tself.settings.items.push(option);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\taddGroup: function ($optgroup) {\r\n\t\t\t\t\tlet i, n, id, optgroup, $options;\r\n\t\t\t\t\t$optgroup = $($optgroup);\r\n\t\t\t\t\tid = $optgroup.attr('label');\r\n\r\n\t\t\t\t\tif (id) {\r\n\t\t\t\t\t\toptgroup = optHelper.readData($optgroup) || {};\r\n\t\t\t\t\t\toptgroup[self.settings.optgroupLabelField] = id;\r\n\t\t\t\t\t\toptgroup[self.settings.optgroupValueField] = id;\r\n\t\t\t\t\t\toptgroup[self.settings.disabledField] = $optgroup.prop('disabled');\r\n\t\t\t\t\t\toptgroup.$order = ++self.order;\r\n\t\t\t\t\t\tself.settings.optgroups.push(optgroup);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$options = $('option', $optgroup);\r\n\r\n\t\t\t\t\tfor (i = 0, n = $options.length; i < n; i++) {\r\n\t\t\t\t\t\toptHelper.addOption($options[i], id);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}; // setup default state\r\n\t\t\r\n\t\t$.extend(self, {\r\n\t\t\tsettings: settings,\r\n\t\t\t$select: $select,\r\n\t\t\ttabIndex: $select.attr('tabindex') || '',\r\n\t\t\ttagType: 1,\r\n\t\t\trtl: /rtl/i.test(dir),\r\n\t\t\tmultiple: $select.attr('multiple'),\r\n\t\t\teventNS: '.FancySelect' + ++FancySelect.count,\r\n\t\t\thighlightedValue: null,\r\n\t\t\tisBlurring: false,\r\n\t\t\tisOpen: false,\r\n\t\t\tisDisabled: false,\r\n\t\t\tisRequired: $select.is('[required]'),\r\n\t\t\tisInvalid: false,\r\n\t\t\tisLocked: false,\r\n\t\t\tisFocused: false,\r\n\t\t\tisInputHidden: false,\r\n\t\t\tisSetup: false,\r\n\t\t\tisRendered: false,\r\n\t\t\tisShiftDown: false,\r\n\t\t\tisCmdDown: false,\r\n\t\t\tisCtrlDown: false,\r\n\t\t\tignoreFocus: false,\r\n\t\t\tignoreBlur: false,\r\n\t\t\tignoreHover: false,\r\n\t\t\thasOptions: false,\r\n\t\t\tcurrentResults: null,\r\n\t\t\tlastValue: '',\r\n\t\t\tcaretPos: 0,\r\n\t\t\tloading: 0,\r\n\t\t\tloadedSearches: {},\r\n\t\t\t$activeOption: null,\r\n\t\t\t$activeItems: [],\r\n\t\t\toptgroups: {},\r\n\t\t\toptions: {},\r\n\t\t\tuserOptions: {},\r\n\t\t\titems: {},\r\n\t\t\trenderCache: {},\r\n\t\t\tonSearchChange: settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\r\n\t\t});\r\n\r\n\t\tif ('' === self.settings.placeholder) {\r\n\t\t\tself.settings.placeholder = $select.attr('placeholder') || $select.attr('data-placeholder');\r\n\r\n\t\t\tif (!self.settings.placeholder && !self.settings.allowEmptyOption) {\r\n\t\t\t\tself.settings.placeholder = $select.children('option[value=\"\"]').text();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.settings.maxItems = self.multiple ? null : 1;\r\n\r\n\t\tfor (let i = 0, n = self.$select.children().length; i < n; i++) {\r\n\t\t\tlet tagName = self.$select.children()[i].tagName.toLowerCase();\r\n\r\n\t\t\tif (tagName === 'optgroup') {\r\n\t\t\t\toptHelper.addGroup(self.$select.children()[i]);\r\n\t\t\t} else if (tagName === 'option') {\r\n\t\t\t\toptHelper.addOption(self.$select.children()[i]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.$wrapper = $('<div class=\"fancy-picker\">').addClass($select.attr('class'));\r\n\r\n\t\tif (self.computedStyle.hasOwnProperty('width')) {\r\n\t\t\tself.$wrapper.css({\r\n\t\t\t\twidth: self.computedStyle.width\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tself.$outputWrapper = $('<div class=\"fancy-picker-picked\">').appendTo(self.$wrapper);\r\n\t\tself.originalPlaceholder = $('<span class=\"fancy-picker-placeholder\">').appendTo(self.$outputWrapper);\r\n\t\tself.dataPlaceholder = $('<span class=\"fancy-picker-data\">').appendTo(self.$outputWrapper);\r\n\t\tself.dataCountPlaceholder = $('<span class=\"fancy-picker-count\">').appendTo(self.$outputWrapper);\r\n\t\tself.$dropdown = $('<div class=\"fancy-picker-ui\">').appendTo(self.$wrapper);\r\n\t\tself.$dropdownContent = $('<div class=\"fancy-picker-content\">').appendTo(self.$dropdown);\r\n\t\tself.setup();\r\n\t};\r\n\r\n\tFancySelect.count = 0;\r\n\t// public methods.\r\n\t$.extend(FancySelect.prototype, {\r\n\t\t/**\r\n\t\t * Creates all elements and sets up event bindings.\r\n\t\t * @return {void}\r\n\t\t */\r\n\t\tsetup: function () {\r\n\t\t\tlet self = this;\r\n\t\t\tself.revertSettings = {\r\n\t\t\t\t$children: self.$select.children().detach(),\r\n\t\t\t\ttabindex: self.$select.attr('tabindex')\r\n\t\t\t};\r\n\t\t\tself.$select.attr('tabindex', -1).hide().after(self.$wrapper);\r\n\t\t\tself.$select.data('FancySelect', self);\r\n\t\t\tself.$select.addClass('FancySelectInit');\r\n\t\t\t\r\n\t\t\tself.settings.items.sort( ( a, b ) => a[self.settings.sortField] - b[self.settings.sortField] );\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif (self.preload) {\r\n\t\t\t\tself.render();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tself.updatePlaceholder();\r\n\t\t\tself.updateOriginalInput();\r\n\t\t\t\r\n\t\t\tself.$wrapper.on('click' + self.eventNS, '.fancy-picker-picked', function(e) {\r\n\t\t\t\tself.$select.trigger('show');\r\n\t\t\t\t\r\n\t\t\t\tif (!self.isRendered) {\r\n\t\t\t\t\tself.render();\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tself.$wrapper.toggleClass('active');\r\n\t\t\t\tself.$select.trigger('shown');\r\n\t\t\t});\r\n\t\t\t$(document).on('click' + self.eventNS, function(e) {\r\n\t\t\t\tif (!$(e.target).closest(self.$wrapper).length) {\r\n\t\t\t\t\tself.$select.trigger('hide');\r\n\t\t\t\t\tself.$wrapper.removeClass('active');\r\n\t\t\t\t\tself.$select.trigger('hidden');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tself.$wrapper.on('click' + self.eventNS, '.fancy-picker-option:not(.disabled)', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlet current = $(this),\r\n\t\t\t\t\tselected = false,\r\n\t\t\t\t\tvalue = self.hash_key(current.data('value'));\r\n\t\t\t\t\r\n\t\t\t\tif (self.multiple) {\r\n\t\t\t\t\tif (!current.hasClass('selected')) {\r\n\t\t\t\t\t\tselected = true;\r\n\t\t\t\t\t\tcurrent.addClass('selected');\r\n\t\t\t\t\t} else current.removeClass('selected');\r\n\t\t\t\t\t\r\n\t\t\t\t\tif (selected) {\r\n\t\t\t\t\t\tself.settings.items.push( self.getSelectedOptionData( value ) );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.settings.items = self.settings.items.filter( x => x[self.settings.valueField] !== value );\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tself.settings.items.sort( ( a, b ) => a[self.settings.sortField] - b[self.settings.sortField] );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.$dropdownContent.find('.fancy-picker-option').not(current).removeClass('selected');\r\n\t\t\t\t\tcurrent.addClass('selected');\r\n\t\t\t\t\tselected = true;\r\n\t\t\t\t\tself.settings.items = [ self.getSelectedOptionData( value ) ];\r\n\t\t\t\t\tself.$wrapper.removeClass('active');\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tself.updatePlaceholder();\r\n\t\t\t\tself.updateOriginalInput();\r\n\t\t\t});\r\n\t\t\t$(window).on('resize' + self.eventNS, function() {\r\n\t\t\t\tlet computedStyle = window.getComputedStyle && window.getComputedStyle(self.$select[0], null);\r\n\t\t\t\t\r\n\t\t\t\tif (computedStyle.hasOwnProperty('width')) {\r\n\t\t\t\t\tself.$wrapper.css({\r\n\t\t\t\t\t\twidth: computedStyle.width\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tself.$select.trigger('initialize');\r\n\t\t},\r\n\t\t/**\r\n\t\t * Render The FancySelect UI\r\n\t\t * @return {void}\r\n\t\t */\r\n\t\trender: function () {\r\n\t\t\tlet self = this,\r\n\t\t\t\tdropdownItems = [];\r\n\t\t\tconst optgroup = self.settings.optgroups;\r\n\t\t\tconst options = self.settings.options;\r\n\t\t\tconst optClass = ( value ) => self.isSelected(value) ? 'fancy-picker-option selected' : 'fancy-picker-option';\r\n\t\t\tif ( optgroup.length ) {\r\n\t\t\t\tfor ( let i = 0; i < optgroup.length; i++ ) {\r\n\t\t\t\t\tdropdownItems.push( `<div class=\"fancy-picker-option-group\">` );\r\n\t\t\t\t\tdropdownItems.push( `<div class=\"fancy-picker-option-group-label\">${optgroup[i][self.settings.labelField]}</div>` );\r\n\t\t\t\t\tconst group_options = options.filter( item => item[self.settings.optgroupField] === optgroup[i][self.settings.valueField]);\r\n\t\t\t\t\tfor (let ii = 0; ii < group_options.length; ii++ ) {\r\n\t\t\t\t\t\tlet option = group_options[i];\r\n\t\t\t\t\t\tdropdownItems.push( `<div class=\"${optClass( option[self.settings.valueField] )}\" data-value=\"${option[self.settings.valueField]}\">${option[self.settings.labelField]}</div>` );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdropdownItems.push( `</div>` );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (let i = 0; i < options.length; i++) {\r\n\t\t\t\t\tlet option = options[i];\r\n\t\t\t\t\tdropdownItems.push( `<div class=\"${optClass( option[self.settings.valueField] )}\" data-value=\"${option[self.settings.valueField]}\">${option[self.settings.labelField]}</div>` );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tself.$dropdownContent.html(dropdownItems.join(''));\r\n\t\t\tself.$select.trigger('rendered');\r\n\t\t\tself.isRendered = true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * Set Placeholder & Update Selected Data Placeholder\r\n\t\t * @return {FancySelect}\r\n\t\t */\r\n\t\tupdatePlaceholder: function () {\r\n\t\t\tlet self = this,\r\n\t\t\t\tplaceholderData = [];\r\n\t\t\tconst items = self.settings.items;\r\n\t\t\tconst maxItemShow = items.length > self.settings.maxItemShow ? self.settings.maxItemShow - 1 : self.settings.maxItemShow;\r\n\t\t\tself.originalPlaceholder.text(self.settings.placeholder);\r\n\t\t\t\r\n\t\t\tif (items.length) {\r\n\t\t\t\tself.originalPlaceholder.hide();\r\n\t\t\t} else {\r\n\t\t\t\tself.originalPlaceholder.show();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\titems.slice(0, maxItemShow).forEach( (item) => {\r\n\t\t\t\tplaceholderData.push( `<span>${item[self.settings.labelField]}</span>` );\r\n\t\t\t});\r\n\t\t\tself.dataPlaceholder.html( placeholderData.join( `<span class=\"fancy-picker-separator\">${self.settings.delimiter}</span>` ) );\r\n\t\t\t\r\n\t\t\tif (items.length > self.settings.maxItemShow) {\r\n\t\t\t\tlet title = [];\r\n\t\t\t\titems.forEach( (item) => {\r\n\t\t\t\t\ttitle.push(item[self.settings.labelField]);\r\n\t\t\t\t});\r\n\t\t\t\tself.dataCountPlaceholder.attr('title', title.join(self.settings.delimiter.trim() + ' '));\r\n\t\t\t\tself.dataCountPlaceholder.html('+' + (items.length - maxItemShow) + ' More …');\r\n\t\t\t} else {\r\n\t\t\t\tself.dataCountPlaceholder.removeAttr('title');\r\n\t\t\t\tself.dataCountPlaceholder.html('');\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tself.$select.trigger('placeholderChanged');\r\n\t\t\treturn self;\r\n\t\t},\r\n\t\t/**\r\n\t\t * Update The Original Select Tag\r\n\t\t * @param {boolean} ?silent\r\n\t\t * @return {FancySelect}\r\n\t\t */\r\n\t\tupdateOriginalInput: function (silent) {\r\n\t\t\tlet self = this,\r\n\t\t\t\toptions = [],\r\n\t\t\t\tchanged = false;\r\n\t\t\tsilent = true === silent ? true : false;\r\n\t\t\tconst items = self.settings.items;\r\n\t\t\tfor (let i = 0; i < items.length; i++) {\r\n\t\t\t\toptions.push('<option value=\"' + items[i][self.settings.valueField] + '\" selected=\"selected\">' + items[i][self.settings.labelField] || '' + '</option>');\r\n\t\t\t\tchanged = true;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tself.$select.html(options.join(''));\r\n\t\t\t\r\n\t\t\tif (!silent && changed) {\r\n\t\t\t\tself.$select.trigger('change');\r\n\t\t\t}\r\n\t\t\treturn self;\r\n\t\t},\r\n\t\t/**\r\n\t\t * Get Selected Option Data (value, label, etc.)\r\n\t\t * @param {string} hash_key\r\n\t\t * @return {object|boolean}\r\n\t\t */\r\n\t\tgetSelectedOptionData: function (hash_key) {\r\n\t\t\tlet self = this,\r\n\t\t\t\tselected = self.settings.options.filter( x => x[self.settings.valueField] === hash_key );\r\n\t\t\treturn selected.length ? selected[0] : false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * Check if input is selected (in the items list )\r\n\t\t * @param {string} hash_key\r\n\t\t * @return {boolean}\r\n\t\t */\r\n\t\tisSelected: function (hash_key) {\r\n\t\t\tlet self = this;\r\n\t\t\treturn self.settings.items.filter( x => x[self.settings.valueField] === hash_key ).length > 0;\r\n\t\t},\r\n\t\t/**\r\n\t\t * Convert input to it's best string representation.\r\n\t\t * @param {string|*} input\r\n\t\t * @return {string}\r\n\t\t */\r\n\t\thash_key: (input) => input + '',\r\n\t\t/**\r\n\t\t * Completely destroys the control and\r\n\t\t * unbinds all event listeners so that it can\r\n\t\t * be garbage collected.\r\n\t\t */\r\n\t\tdestroy: function () {\r\n\t\t\tlet self = this;\r\n\t\t\tself.$select.trigger('destroy');\r\n\t\t\tself.trigger('destroy');\r\n\t\t\tself.off();\r\n\t\t\tself.$select\r\n\t\t\t\t.html('')\r\n\t\t\t\t.append(self.revertSettings.$children)\r\n\t\t\t\t.removeAttr('tabindex')\r\n\t\t\t\t.removeClass('FancySelectInit')\r\n\t\t\t\t.attr({tabindex: self.revertSettings.tabindex})\r\n\t\t\t\t.show();\r\n\t\t\tself.$select.removeData('FancySelect');\r\n\t\t\tself.$wrapper.remove();\r\n\t\t\t\r\n\t\t\tif (--FancySelect.count === 0 && FancySelect.$testInput) {\r\n\t\t\t\tFancySelect.$testInput.remove();\r\n\t\t\t\tFancySelect.$testInput = undefined;\r\n\t\t\t} // this doesn't fire on create feed. as fields are loaded via ajax.\r\n\t\t\t// add custom event with the form object (with namespace)\r\n\t\t\t// trigger event on form.init()\r\n\t\t\t// remove previous listener on from.init(). first. so multiple listener not executed.\r\n\t\t\t// see selectize https://github.com/selectize/selectize.js/blob/master/src/selectize.js#L2097\r\n\t\t\t// add event listener here...\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t$(window).off(self.eventNS);\r\n\t\t\t$(document).off(self.eventNS);\r\n\t\t\t$(document.body).off(self.eventNS);\r\n\t\t\tdelete self.$select[0].fancySelect;\r\n\t\t},\r\n\t\t\r\n\t});\r\n\t\r\n\t/**\r\n\t * MicroEvent - to make any js object an event emitter\r\n\t *\r\n\t * - pure javascript - server compatible, browser compatible\r\n\t * - dont rely on the browser doms\r\n\t * - super simple - you get it immediatly, no mistery, no magic involved\r\n\t *\r\n\t * @author Jerome Etienne (https://github.com/jeromeetienne)\r\n\t * @link https://github.com/jeromeetienne/microevent.js\r\n\t */\r\n\t$.extend(FancySelect.prototype, {\r\n\t\tbind\t: function(event, fct){\r\n\t\t\tthis._events = this._events || {};\r\n\t\t\tthis._events[event] = this._events[event]\t|| [];\r\n\t\t\tthis._events[event].push(fct);\r\n\t\t},\r\n\t\tunbind\t: function(event, fct){\r\n\t\t\tthis._events = this._events || {};\r\n\t\t\tif( event in this._events === false )\treturn;\r\n\t\t\tthis._events[event].splice(this._events[event].indexOf(fct), 1);\r\n\t\t},\r\n\t\ttrigger\t: function(event /* , args... */){\r\n\t\t\tthis._events = this._events || {};\r\n\t\t\tif( event in this._events === false )\treturn;\r\n\t\t\tfor(let i = 0; i < this._events[event].length; i++){\r\n\t\t\t\tthis._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\t/**\r\n\t * jQuery Wrapper\r\n\t * @param {Object} [user_options]\r\n\t * @returns {jquery|HTMLElement}\r\n\t */\r\n\t$.fn.fancySelect = function(user_options) {\r\n\t\treturn this.each(function() {\r\n\t\t\tif (this.fancySelect) return;\r\n\t\t\tif ('select' !== this.tagName.toLowerCase()) return;\r\n\t\t\tnew FancySelect($(this), user_options);\r\n\t\t});\r\n\t};\r\n})(jQuery, window, document);\r\n"]}
|
1 |
+
{"version":3,"sources":["fancy-select.js"],"names":["$","window","document","FancySelect","$select","options","self","settings","extend","defaults","optgroups","items","placeholder","delimiter","splitOn","persist","diacritics","create","createOnBlur","createFilter","highlight","openOnFocus","maxOptions","maxItems","maxItemShow","hideSelected","addPrecedence","selectOnTab","preload","allowEmptyOption","closeAfterSelect","scrollDuration","loadThrottle","loadingClass","dataAttr","optgroupField","valueField","labelField","disabledField","optgroupLabelField","optgroupValueField","lockOptgroupOrder","sortField","searchField","searchConjunction","mode","wrapperClass","inputClass","dropdownClass","dropdownContentClass","dropdownParent","copyClassesToDropdown","render","select","computedStyle","dir","attr","test","navigator","createElement","debounce","delay","timeout","optionsMap","optHelper","readData","$el","data","JSON","addOption","$option","group","value","hash_key","arr","isArray","field_optgroup","option","addGroup","$optgroup","i","n","id","optgroup","$options","tabIndex","tagType","rtl","multiple","eventNS","highlightedValue","isBlurring","isOpen","isDisabled","isRequired","isInvalid","isLocked","isFocused","isInputHidden","isSetup","isRendered","isShiftDown","isCmdDown","isCtrlDown","ignoreFocus","ignoreBlur","ignoreHover","hasOptions","currentResults","lastValue","caretPos","loading","loadedSearches","$activeOption","$activeItems","userOptions","renderCache","onSearchChange","args","fn","apply","children","length","tagName","addClass","$wrapper","width","appendTo","setup","$children","tabindex","hide","after","a","b","e","trigger","target","closest","preventDefault","current","selected","removeClass","getSelectedOptionData","filter","x","sort","$dropdownContent","find","updatePlaceholder","updateOriginalInput","getComputedStyle","hasOwnProperty","optClass","isSelected","this","dropdownItems","_loop","push","concat","group_options","item","ii","_i","html","join","placeholderData","originalPlaceholder","text","slice","forEach","dataPlaceholder","title","dataCountPlaceholder","removeAttr","changed","silent","input","destroy","append","revertSettings","removeData","$testInput","off","body","fancySelect","prototype","bind","event","fct","_events","unbind","indexOf","Array","call","arguments","user_options","jQuery"],"mappings":"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","file":"fancy-select.min.js","sourcesContent":["\"use strict\";\n/**!\n * WooFeed Fancy Select\n * @version 1.0.0\n * @copyright 2020 WebAppick\n * @author Kudratullah <mhamudul.hk@gmail.com>\n */\n\n(function($, window, document) {\n\t// @TODO if multiple select has required attribute and only one item is selected then return false (user should not able to deselect the last one).\n\t// @TODO make the place holder with input field like selectize so we can set the required attribute if the select has required attribute, which can be useful for showing required warning.\n\t\"use strict\";\n\t\n\t/**\n\t * FancySelect Constructor\n\t * @param {jQuery|HTMLElement} $select\n\t * @param {Object} [options]\n\t * @constructor\n\t */\n\tlet FancySelect = function FancySelect($select, options) {\n\t\tlet self = this,\n\t\t\tdefaults = {\n\t\t\t\toptions: [],\n\t\t\t\toptgroups: [],\n\t\t\t\titems: [],\n\t\t\t\tplaceholder: '',\n\t\t\t\tdelimiter: ',',\n\t\t\t\tsplitOn: null,\n\t\t\t\tpersist: !0,\n\t\t\t\tdiacritics: !0,\n\t\t\t\tcreate: !1,\n\t\t\t\tcreateOnBlur: !1,\n\t\t\t\tcreateFilter: null,\n\t\t\t\thighlight: !0,\n\t\t\t\topenOnFocus: !0,\n\t\t\t\tmaxOptions: 1e3,\n\t\t\t\tmaxItems: null,\n\t\t\t\tmaxItemShow: 3,\n\t\t\t\thideSelected: null,\n\t\t\t\taddPrecedence: !1,\n\t\t\t\tselectOnTab: !1,\n\t\t\t\tpreload: !1,\n\t\t\t\tallowEmptyOption: !1,\n\t\t\t\tcloseAfterSelect: !1,\n\t\t\t\tscrollDuration: 60,\n\t\t\t\tloadThrottle: 300,\n\t\t\t\tloadingClass: \"loading\",\n\t\t\t\tdataAttr: \"data-data\",\n\t\t\t\toptgroupField: \"optgroup\",\n\t\t\t\tvalueField: \"value\",\n\t\t\t\tlabelField: \"text\",\n\t\t\t\tdisabledField: \"disabled\",\n\t\t\t\toptgroupLabelField: \"label\",\n\t\t\t\toptgroupValueField: \"value\",\n\t\t\t\tlockOptgroupOrder: !1,\n\t\t\t\tsortField: \"$order\",\n\t\t\t\tsearchField: [\"text\"],\n\t\t\t\tsearchConjunction: \"and\",\n\t\t\t\tmode: null,\n\t\t\t\twrapperClass: \"selectize-control\",\n\t\t\t\tinputClass: \"selectize-input\",\n\t\t\t\tdropdownClass: \"selectize-dropdown\",\n\t\t\t\tdropdownContentClass: \"selectize-dropdown-content\",\n\t\t\t\tdropdownParent: null,\n\t\t\t\tcopyClassesToDropdown: !0,\n\t\t\t\trender: {}\n\t\t\t},\n\t\t\tsettings = $.extend(true, {}, defaults, options),\n\t\t\tselect = $select[0];\n\t\tselect.fancySelect = self;\n\t\tself.order = 0;\n\t\tlet computedStyle = window.getComputedStyle && window.getComputedStyle(select, null);\n\t\tlet dir = computedStyle ? computedStyle.getPropertyValue('direction') : select.currentStyle && select.currentStyle.direction;\n\t\tdir = dir || $select.parents('[dir]:first').attr('dir') || '';\n\t\tself.computedStyle = computedStyle; // for now, android support in general is too spotty to support validity\n\n\t\tconst SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !! document.createElement('input').validity; // helper (private) methods\n\n\t\tconst debounce = function (fn, delay) {\n\t\t\tlet timeout;\n\t\t\treturn function() {\n\t\t\t\tlet self = this;\n\t\t\t\tlet args = arguments;\n\t\t\t\twindow.clearTimeout(timeout);\n\t\t\t\ttimeout = window.setTimeout(function() {\n\t\t\t\t\tfn.apply(self, args);\n\t\t\t\t}, delay);\n\t\t\t};\n\t\t};\n\t\t\n\t\tlet optionsMap = {},\n\t\t\toptHelper = {\n\t\t\t\treadData: function ($el) {\n\t\t\t\t\tlet data = self.dataAttr && $el.attr(self.dataAttr);\n\n\t\t\t\t\tif (typeof data === 'string' && data.length) {\n\t\t\t\t\t\treturn JSON.parse(data);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\t\t\t\taddOption: function ($option, group) {\n\t\t\t\t\t$option = $($option);\n\t\t\t\t\tlet value = self.hash_key($option.val());\n\t\t\t\t\tif (!value && !settings.allowEmptyOption) return; // if the option already exists, it's probably been\n\t\t\t\t\t// duplicated in another optgroup. in this case, push\n\t\t\t\t\t// the current group to the \"optgroup\" property on the\n\t\t\t\t\t// existing option so that it's rendered in both places.\n\n\t\t\t\t\tif (optionsMap.hasOwnProperty(value)) {\n\t\t\t\t\t\tif (group) {\n\t\t\t\t\t\t\tlet arr = optionsMap[value][field_optgroup];\n\n\t\t\t\t\t\t\tif (!arr) {\n\t\t\t\t\t\t\t\toptionsMap[value][field_optgroup] = group;\n\t\t\t\t\t\t\t} else if (!$.isArray(arr)) {\n\t\t\t\t\t\t\t\toptionsMap[value][field_optgroup] = [arr, group];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tarr.push(group);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet option = optHelper.readData($option) || {};\n\t\t\t\t\toption[self.settings.labelField] = option[self.settings.labelField] || $option.text();\n\t\t\t\t\toption[self.settings.valueField] = option[self.settings.valueField] || value;\n\t\t\t\t\toption[self.settings.disabledField] = option[self.settings.disabledField] || $option.prop('disabled');\n\t\t\t\t\toption[self.settings.optgroupField] = option[self.settings.optgroupField] || group;\n\t\t\t\t\toption.$order = ++self.order;\n\t\t\t\t\toptionsMap[value] = option;\n\t\t\t\t\tself.settings.options.push(option);\n\n\t\t\t\t\tif ($option.is(':selected')) {\n\t\t\t\t\t\tself.settings.items.push(option);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\taddGroup: function ($optgroup) {\n\t\t\t\t\tlet i, n, id, optgroup, $options;\n\t\t\t\t\t$optgroup = $($optgroup);\n\t\t\t\t\tid = $optgroup.attr('label');\n\n\t\t\t\t\tif (id) {\n\t\t\t\t\t\toptgroup = optHelper.readData($optgroup) || {};\n\t\t\t\t\t\toptgroup[self.settings.optgroupLabelField] = id;\n\t\t\t\t\t\toptgroup[self.settings.optgroupValueField] = id;\n\t\t\t\t\t\toptgroup[self.settings.disabledField] = $optgroup.prop('disabled');\n\t\t\t\t\t\toptgroup.$order = ++self.order;\n\t\t\t\t\t\tself.settings.optgroups.push(optgroup);\n\t\t\t\t\t}\n\n\t\t\t\t\t$options = $('option', $optgroup);\n\n\t\t\t\t\tfor (i = 0, n = $options.length; i < n; i++) {\n\t\t\t\t\t\toptHelper.addOption($options[i], id);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}; // setup default state\n\t\t\n\t\t$.extend(self, {\n\t\t\tsettings: settings,\n\t\t\t$select: $select,\n\t\t\ttabIndex: $select.attr('tabindex') || '',\n\t\t\ttagType: 1,\n\t\t\trtl: /rtl/i.test(dir),\n\t\t\tmultiple: $select.attr('multiple'),\n\t\t\teventNS: '.FancySelect' + ++FancySelect.count,\n\t\t\thighlightedValue: null,\n\t\t\tisBlurring: false,\n\t\t\tisOpen: false,\n\t\t\tisDisabled: false,\n\t\t\tisRequired: $select.is('[required]'),\n\t\t\tisInvalid: false,\n\t\t\tisLocked: false,\n\t\t\tisFocused: false,\n\t\t\tisInputHidden: false,\n\t\t\tisSetup: false,\n\t\t\tisRendered: false,\n\t\t\tisShiftDown: false,\n\t\t\tisCmdDown: false,\n\t\t\tisCtrlDown: false,\n\t\t\tignoreFocus: false,\n\t\t\tignoreBlur: false,\n\t\t\tignoreHover: false,\n\t\t\thasOptions: false,\n\t\t\tcurrentResults: null,\n\t\t\tlastValue: '',\n\t\t\tcaretPos: 0,\n\t\t\tloading: 0,\n\t\t\tloadedSearches: {},\n\t\t\t$activeOption: null,\n\t\t\t$activeItems: [],\n\t\t\toptgroups: {},\n\t\t\toptions: {},\n\t\t\tuserOptions: {},\n\t\t\titems: {},\n\t\t\trenderCache: {},\n\t\t\tonSearchChange: settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)\n\t\t});\n\n\t\tif ('' === self.settings.placeholder) {\n\t\t\tself.settings.placeholder = $select.attr('placeholder') || $select.attr('data-placeholder');\n\n\t\t\tif (!self.settings.placeholder && !self.settings.allowEmptyOption) {\n\t\t\t\tself.settings.placeholder = $select.children('option[value=\"\"]').text();\n\t\t\t}\n\t\t}\n\n\t\tself.settings.maxItems = self.multiple ? null : 1;\n\n\t\tfor (let i = 0, n = self.$select.children().length; i < n; i++) {\n\t\t\tlet tagName = self.$select.children()[i].tagName.toLowerCase();\n\n\t\t\tif (tagName === 'optgroup') {\n\t\t\t\toptHelper.addGroup(self.$select.children()[i]);\n\t\t\t} else if (tagName === 'option') {\n\t\t\t\toptHelper.addOption(self.$select.children()[i]);\n\t\t\t}\n\t\t}\n\n\t\tself.$wrapper = $('<div class=\"fancy-picker\">').addClass($select.attr('class'));\n\n\t\tif (self.computedStyle.hasOwnProperty('width')) {\n\t\t\tself.$wrapper.css({\n\t\t\t\twidth: self.computedStyle.width\n\t\t\t});\n\t\t}\n\t\t\n\t\tself.$outputWrapper = $('<div class=\"fancy-picker-picked\">').appendTo(self.$wrapper);\n\t\tself.originalPlaceholder = $('<span class=\"fancy-picker-placeholder\">').appendTo(self.$outputWrapper);\n\t\tself.dataPlaceholder = $('<span class=\"fancy-picker-data\">').appendTo(self.$outputWrapper);\n\t\tself.dataCountPlaceholder = $('<span class=\"fancy-picker-count\">').appendTo(self.$outputWrapper);\n\t\tself.$dropdown = $('<div class=\"fancy-picker-ui\">').appendTo(self.$wrapper);\n\t\tself.$dropdownContent = $('<div class=\"fancy-picker-content\">').appendTo(self.$dropdown);\n\t\tself.setup();\n\t};\n\n\tFancySelect.count = 0;\n\t// public methods.\n\t$.extend(FancySelect.prototype, {\n\t\t/**\n\t\t * Creates all elements and sets up event bindings.\n\t\t * @return {void}\n\t\t */\n\t\tsetup: function () {\n\t\t\tlet self = this;\n\t\t\tself.revertSettings = {\n\t\t\t\t$children: self.$select.children().detach(),\n\t\t\t\ttabindex: self.$select.attr('tabindex')\n\t\t\t};\n\t\t\tself.$select.attr('tabindex', -1).hide().after(self.$wrapper);\n\t\t\tself.$select.data('FancySelect', self);\n\t\t\tself.$select.addClass('FancySelectInit');\n\t\t\t\n\t\t\tself.settings.items.sort( ( a, b ) => a[self.settings.sortField] - b[self.settings.sortField] );\n\t\t\t\n\t\t\t\n\t\t\tif (self.preload) {\n\t\t\t\tself.render();\n\t\t\t}\n\t\t\t\n\t\t\tself.updatePlaceholder();\n\t\t\tself.updateOriginalInput();\n\t\t\t\n\t\t\tself.$wrapper.on('click' + self.eventNS, '.fancy-picker-picked', function(e) {\n\t\t\t\tself.$select.trigger('show');\n\t\t\t\t\n\t\t\t\tif (!self.isRendered) {\n\t\t\t\t\tself.render();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tself.$wrapper.toggleClass('active');\n\t\t\t\tself.$select.trigger('shown');\n\t\t\t});\n\t\t\t$(document).on('click' + self.eventNS, function(e) {\n\t\t\t\tif (!$(e.target).closest(self.$wrapper).length) {\n\t\t\t\t\tself.$select.trigger('hide');\n\t\t\t\t\tself.$wrapper.removeClass('active');\n\t\t\t\t\tself.$select.trigger('hidden');\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.$wrapper.on('click' + self.eventNS, '.fancy-picker-option:not(.disabled)', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlet current = $(this),\n\t\t\t\t\tselected = false,\n\t\t\t\t\tvalue = self.hash_key(current.data('value'));\n\t\t\t\t\n\t\t\t\tif (self.multiple) {\n\t\t\t\t\tif (!current.hasClass('selected')) {\n\t\t\t\t\t\tselected = true;\n\t\t\t\t\t\tcurrent.addClass('selected');\n\t\t\t\t\t} else current.removeClass('selected');\n\t\t\t\t\t\n\t\t\t\t\tif (selected) {\n\t\t\t\t\t\tself.settings.items.push( self.getSelectedOptionData( value ) );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.settings.items = self.settings.items.filter( x => x[self.settings.valueField] !== value );\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tself.settings.items.sort( ( a, b ) => a[self.settings.sortField] - b[self.settings.sortField] );\n\t\t\t\t} else {\n\t\t\t\t\tself.$dropdownContent.find('.fancy-picker-option').not(current).removeClass('selected');\n\t\t\t\t\tcurrent.addClass('selected');\n\t\t\t\t\tselected = true;\n\t\t\t\t\tself.settings.items = [ self.getSelectedOptionData( value ) ];\n\t\t\t\t\tself.$wrapper.removeClass('active');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tself.updatePlaceholder();\n\t\t\t\tself.updateOriginalInput();\n\t\t\t});\n\t\t\t$(window).on('resize' + self.eventNS, function() {\n\t\t\t\tlet computedStyle = window.getComputedStyle && window.getComputedStyle(self.$select[0], null);\n\t\t\t\t\n\t\t\t\tif (computedStyle.hasOwnProperty('width')) {\n\t\t\t\t\tself.$wrapper.css({\n\t\t\t\t\t\twidth: computedStyle.width\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tself.$select.trigger('initialize');\n\t\t},\n\t\t/**\n\t\t * Render The FancySelect UI\n\t\t * @return {void}\n\t\t */\n\t\trender: function () {\n\t\t\tlet self = this,\n\t\t\t\tdropdownItems = [];\n\t\t\tconst optgroup = self.settings.optgroups;\n\t\t\tconst options = self.settings.options;\n\t\t\tconst optClass = ( value ) => self.isSelected(value) ? 'fancy-picker-option selected' : 'fancy-picker-option';\n\t\t\tif ( optgroup.length ) {\n\t\t\t\tfor ( let i = 0; i < optgroup.length; i++ ) {\n\t\t\t\t\tdropdownItems.push( `<div class=\"fancy-picker-option-group\">` );\n\t\t\t\t\tdropdownItems.push( `<div class=\"fancy-picker-option-group-label\">${optgroup[i][self.settings.labelField]}</div>` );\n\t\t\t\t\tconst group_options = options.filter( item => item[self.settings.optgroupField] === optgroup[i][self.settings.valueField]);\n\t\t\t\t\tfor (let ii = 0; ii < group_options.length; ii++ ) {\n\t\t\t\t\t\tlet option = group_options[i];\n\t\t\t\t\t\tdropdownItems.push( `<div class=\"${optClass( option[self.settings.valueField] )}\" data-value=\"${option[self.settings.valueField]}\">${option[self.settings.labelField]}</div>` );\n\t\t\t\t\t}\n\t\t\t\t\tdropdownItems.push( `</div>` );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < options.length; i++) {\n\t\t\t\t\tlet option = options[i];\n\t\t\t\t\tdropdownItems.push( `<div class=\"${optClass( option[self.settings.valueField] )}\" data-value=\"${option[self.settings.valueField]}\">${option[self.settings.labelField]}</div>` );\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tself.$dropdownContent.html(dropdownItems.join(''));\n\t\t\tself.$select.trigger('rendered');\n\t\t\tself.isRendered = true;\n\t\t},\n\t\t/**\n\t\t * Set Placeholder & Update Selected Data Placeholder\n\t\t * @return {FancySelect}\n\t\t */\n\t\tupdatePlaceholder: function () {\n\t\t\tlet self = this,\n\t\t\t\tplaceholderData = [];\n\t\t\tconst items = self.settings.items;\n\t\t\tconst maxItemShow = items.length > self.settings.maxItemShow ? self.settings.maxItemShow - 1 : self.settings.maxItemShow;\n\t\t\tself.originalPlaceholder.text(self.settings.placeholder);\n\t\t\t\n\t\t\tif (items.length) {\n\t\t\t\tself.originalPlaceholder.hide();\n\t\t\t} else {\n\t\t\t\tself.originalPlaceholder.show();\n\t\t\t}\n\t\t\t\n\t\t\titems.slice(0, maxItemShow).forEach( (item) => {\n\t\t\t\tplaceholderData.push( `<span>${item[self.settings.labelField]}</span>` );\n\t\t\t});\n\t\t\tself.dataPlaceholder.html( placeholderData.join( `<span class=\"fancy-picker-separator\">${self.settings.delimiter}</span>` ) );\n\t\t\t\n\t\t\tif (items.length > self.settings.maxItemShow) {\n\t\t\t\tlet title = [];\n\t\t\t\titems.forEach( (item) => {\n\t\t\t\t\ttitle.push(item[self.settings.labelField]);\n\t\t\t\t});\n\t\t\t\tself.dataCountPlaceholder.attr('title', title.join(self.settings.delimiter.trim() + ' '));\n\t\t\t\tself.dataCountPlaceholder.html('+' + (items.length - maxItemShow) + ' More …');\n\t\t\t} else {\n\t\t\t\tself.dataCountPlaceholder.removeAttr('title');\n\t\t\t\tself.dataCountPlaceholder.html('');\n\t\t\t}\n\t\t\t\n\t\t\tself.$select.trigger('placeholderChanged');\n\t\t\treturn self;\n\t\t},\n\t\t/**\n\t\t * Update The Original Select Tag\n\t\t * @param {boolean} ?silent\n\t\t * @return {FancySelect}\n\t\t */\n\t\tupdateOriginalInput: function (silent) {\n\t\t\tlet self = this,\n\t\t\t\toptions = [],\n\t\t\t\tchanged = false;\n\t\t\tsilent = true === silent ? true : false;\n\t\t\tconst items = self.settings.items;\n\t\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\t\toptions.push('<option value=\"' + items[i][self.settings.valueField] + '\" selected=\"selected\">' + items[i][self.settings.labelField] || '' + '</option>');\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t\t\n\t\t\tself.$select.html(options.join(''));\n\t\t\t\n\t\t\tif (!silent && changed) {\n\t\t\t\tself.$select.trigger('change');\n\t\t\t}\n\t\t\treturn self;\n\t\t},\n\t\t/**\n\t\t * Get Selected Option Data (value, label, etc.)\n\t\t * @param {string} hash_key\n\t\t * @return {object|boolean}\n\t\t */\n\t\tgetSelectedOptionData: function (hash_key) {\n\t\t\tlet self = this,\n\t\t\t\tselected = self.settings.options.filter( x => x[self.settings.valueField] === hash_key );\n\t\t\treturn selected.length ? selected[0] : false;\n\t\t},\n\t\t/**\n\t\t * Check if input is selected (in the items list )\n\t\t * @param {string} hash_key\n\t\t * @return {boolean}\n\t\t */\n\t\tisSelected: function (hash_key) {\n\t\t\tlet self = this;\n\t\t\treturn self.settings.items.filter( x => x[self.settings.valueField] === hash_key ).length > 0;\n\t\t},\n\t\t/**\n\t\t * Convert input to it's best string representation.\n\t\t * @param {string|*} input\n\t\t * @return {string}\n\t\t */\n\t\thash_key: (input) => input + '',\n\t\t/**\n\t\t * Completely destroys the control and\n\t\t * unbinds all event listeners so that it can\n\t\t * be garbage collected.\n\t\t */\n\t\tdestroy: function () {\n\t\t\tlet self = this;\n\t\t\tself.$select.trigger('destroy');\n\t\t\tself.trigger('destroy');\n\t\t\tself.off();\n\t\t\tself.$select\n\t\t\t\t.html('')\n\t\t\t\t.append(self.revertSettings.$children)\n\t\t\t\t.removeAttr('tabindex')\n\t\t\t\t.removeClass('FancySelectInit')\n\t\t\t\t.attr({tabindex: self.revertSettings.tabindex})\n\t\t\t\t.show();\n\t\t\tself.$select.removeData('FancySelect');\n\t\t\tself.$wrapper.remove();\n\t\t\t\n\t\t\tif (--FancySelect.count === 0 && FancySelect.$testInput) {\n\t\t\t\tFancySelect.$testInput.remove();\n\t\t\t\tFancySelect.$testInput = undefined;\n\t\t\t} // this doesn't fire on create feed. as fields are loaded via ajax.\n\t\t\t// add custom event with the form object (with namespace)\n\t\t\t// trigger event on form.init()\n\t\t\t// remove previous listener on from.init(). first. so multiple listener not executed.\n\t\t\t// see selectize https://github.com/selectize/selectize.js/blob/master/src/selectize.js#L2097\n\t\t\t// add event listener here...\n\t\t\t\n\t\t\t\n\t\t\t$(window).off(self.eventNS);\n\t\t\t$(document).off(self.eventNS);\n\t\t\t$(document.body).off(self.eventNS);\n\t\t\tdelete self.$select[0].fancySelect;\n\t\t},\n\t\t\n\t});\n\t\n\t/**\n\t * MicroEvent - to make any js object an event emitter\n\t *\n\t * - pure javascript - server compatible, browser compatible\n\t * - dont rely on the browser doms\n\t * - super simple - you get it immediatly, no mistery, no magic involved\n\t *\n\t * @author Jerome Etienne (https://github.com/jeromeetienne)\n\t * @link https://github.com/jeromeetienne/microevent.js\n\t */\n\t$.extend(FancySelect.prototype, {\n\t\tbind\t: function(event, fct){\n\t\t\tthis._events = this._events || {};\n\t\t\tthis._events[event] = this._events[event]\t|| [];\n\t\t\tthis._events[event].push(fct);\n\t\t},\n\t\tunbind\t: function(event, fct){\n\t\t\tthis._events = this._events || {};\n\t\t\tif( event in this._events === false )\treturn;\n\t\t\tthis._events[event].splice(this._events[event].indexOf(fct), 1);\n\t\t},\n\t\ttrigger\t: function(event /* , args... */){\n\t\t\tthis._events = this._events || {};\n\t\t\tif( event in this._events === false )\treturn;\n\t\t\tfor(let i = 0; i < this._events[event].length; i++){\n\t\t\t\tthis._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));\n\t\t\t}\n\t\t}\n\t});\n\t/**\n\t * jQuery Wrapper\n\t * @param {Object} [user_options]\n\t * @returns {jquery|HTMLElement}\n\t */\n\t$.fn.fancySelect = function(user_options) {\n\t\treturn this.each(function() {\n\t\t\tif (this.fancySelect) return;\n\t\t\tif ('select' !== this.tagName.toLowerCase()) return;\n\t\t\tnew FancySelect($(this), user_options);\n\t\t});\n\t};\n})(jQuery, window, document);\n"]}
|
admin/js/jquery-sortable.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["jquery-sortable.js"],"names":["Symbol","iterator","nested","$","pluginName","undefined","containerDefaults","drag","groupDefaults","exclude","containerPath","containerSelector","afterMove","distance","draggedClass","handle","itemPath","itemSelector","bodyClass","onDrag","isValidTarget","css","$item","position","addClass","onDragStart","container","removeClass","onMousedown","event","preventDefault","group","options","placeholderClass","removeAttr","_super","target","nodeName","match","placeholder","pullPlaceholder","parentIsContainer","result","sortable","serialize","$parent","$children","extend","data","containerGroups","groupCounter","emptyBox","subContainers","drop","subContainerKey","x","Math","i","length","d","a","b","top","offsetMethod","left","parseInt","el","getRelativePosition","element","sortByDistanceDesc","tolerance","offset","pointer","pos","distances","dimensions","outerWidth","outerHeight","dim","dropProxy","dragProxy","sort","proxy","ContainerGroup","get","this","containers","rootGroup","closestItem","item","disabled","itemDimensions","right","which","find","originalEvent","bottom","on","eventNames","start","dragInit","searchValidTarget","push","setPointer","dragInitDone","prototype","dragging","setupDelayTimer","box","itemContainer","e","toggleListeners","onCancel","detach","delayMet","clearDimensions","clearOffsetParent","relativePointer","lastPointer","sameResultBox","t","offsetParent","lastRelativePointer","getContainer","getContainerDimensions","onDrop","movePlaceholder","lastAppendedItem","$getOffsetParent","containerDimensions","setDimensions","closest","method","getPointer","getItemOffsetParent","that","distanceMet","events","$document","pageX","pageY","currentPointer","clearTimeout","abs","_mouseDelayTimer","o","touches","scroll","_clearDimensions","delay","each","setTimeout","callback","traverse","object","isValidDrag","Container","validTarget","_destroy","inUpperHalf","xCenter","inLeftHalf","index","getItemDimensions","hasChildGroup","items","getContainerGroup","childGroup","childContainers","yCenter","height","path","_serialize","width","removeData","enable","$getChildren","parent","type","isContainer","childType","children","selector","not","map","disable","off","grep","val","destroy","args","$t","API"],"mappings":"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","file":"jquery-sortable.min.js","sourcesContent":["/* ===================================================\r\n * jquery-sortable.js v0.9.13\r\n * http://johnny.github.com/jquery-sortable/\r\n * ===================================================\r\n * Copyright (c) 2012 Jonas von Andrian\r\n * All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without\r\n * modification, are permitted provided that the following conditions are met:\r\n * * Redistributions of source code must retain the above copyright\r\n * notice, this list of conditions and the following disclaimer.\r\n * * Redistributions in binary form must reproduce the above copyright\r\n * notice, this list of conditions and the following disclaimer in the\r\n * documentation and/or other materials provided with the distribution.\r\n * * The name of the author may not be used to endorse or promote products\r\n * derived from this software without specific prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\r\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\n * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\r\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n * ========================================================== */\r\n/* eslint-disable */\r\n!function ( $, window, pluginName, undefined){\r\n var containerDefaults = {\r\n // If true, items can be dragged from this container\r\n drag: true,\r\n // If true, items can be droped onto this container\r\n drop: true,\r\n // Exclude items from being draggable, if the\r\n // selector matches the item\r\n exclude: \"\",\r\n // If true, search for nested containers within an item.If you nest containers,\r\n // either the original selector with which you call the plugin must only match the top containers,\r\n // or you need to specify a group (see the bootstrap nav example)\r\n nested: true,\r\n // If true, the items are assumed to be arranged vertically\r\n vertical: true\r\n }, // end container defaults\r\n groupDefaults = {\r\n // This is executed after the placeholder has been moved.\r\n // $closestItemOrContainer contains the closest item, the placeholder\r\n // has been put at or the closest empty Container, the placeholder has\r\n // been appended to.\r\n afterMove: function ($placeholder, container, $closestItemOrContainer) {\r\n },\r\n // The exact css path between the container and its items, e.g. \"> tbody\"\r\n containerPath: \"\",\r\n // The css selector of the containers\r\n containerSelector: \"ol, ul\",\r\n // Distance the mouse has to travel to start dragging\r\n distance: 0,\r\n // Time in milliseconds after mousedown until dragging should start.\r\n // This option can be used to prevent unwanted drags when clicking on an element.\r\n delay: 0,\r\n // The css selector of the drag handle\r\n handle: \"\",\r\n // The exact css path between the item and its subcontainers.\r\n // It should only match the immediate items of a container.\r\n // No item of a subcontainer should be matched. E.g. for ol>div>li the itemPath is \"> div\"\r\n itemPath: \"\",\r\n // The css selector of the items\r\n itemSelector: \"li\",\r\n // The class given to \"body\" while an item is being dragged\r\n bodyClass: \"dragging\",\r\n // The class giving to an item while being dragged\r\n draggedClass: \"dragged\",\r\n // Check if the dragged item may be inside the container.\r\n // Use with care, since the search for a valid container entails a depth first search\r\n // and may be quite expensive.\r\n isValidTarget: function ($item, container) {\r\n return true\r\n },\r\n // Executed before onDrop if placeholder is detached.\r\n // This happens if pullPlaceholder is set to false and the drop occurs outside a container.\r\n onCancel: function ($item, container, _super, event) {\r\n },\r\n // Executed at the beginning of a mouse move event.\r\n // The Placeholder has not been moved yet.\r\n onDrag: function ($item, position, _super, event) {\r\n $item.css(position)\r\n },\r\n // Called after the drag has been started,\r\n // that is the mouse button is being held down and\r\n // the mouse is moving.\r\n // The container is the closest initialized container.\r\n // Therefore it might not be the container, that actually contains the item.\r\n onDragStart: function ($item, container, _super, event) {\r\n $item.css({\r\n height: $item.outerHeight(),\r\n width: $item.outerWidth()\r\n })\r\n $item.addClass(container.group.options.draggedClass)\r\n $(\"body\").addClass(container.group.options.bodyClass)\r\n },\r\n // Called when the mouse button is being released\r\n onDrop: function ($item, container, _super, event) {\r\n $item.removeClass(container.group.options.draggedClass).removeAttr(\"style\")\r\n $(\"body\").removeClass(container.group.options.bodyClass)\r\n },\r\n // Called on mousedown. If falsy value is returned, the dragging will not start.\r\n // Ignore if element clicked is input, select or textarea\r\n onMousedown: function ($item, _super, event) {\r\n if (!event.target.nodeName.match(/^(input|select|textarea)$/i)) {\r\n event.preventDefault()\r\n return true\r\n }\r\n },\r\n // The class of the placeholder (must match placeholder option markup)\r\n placeholderClass: \"placeholder\",\r\n // Template for the placeholder. Can be any valid jQuery input\r\n // e.g. a string, a DOM element.\r\n // The placeholder must have the class \"placeholder\"\r\n placeholder: '<li class=\"placeholder\"></li>',\r\n // If true, the position of the placeholder is calculated on every mousemove.\r\n // If false, it is only calculated when the mouse is above a container.\r\n pullPlaceholder: true,\r\n // Specifies serialization of the container group.\r\n // The pair $parent/$children is either container/items or item/subcontainers.\r\n serialize: function ($parent, $children, parentIsContainer) {\r\n var result = $.extend({}, $parent.data())\r\n\r\n if(parentIsContainer)\r\n return [$children]\r\n else if ($children[0]){\r\n result.children = $children\r\n }\r\n\r\n delete result.subContainers\r\n delete result.sortable\r\n\r\n return result\r\n },\r\n // Set tolerance while dragging. Positive values decrease sensitivity,\r\n // negative values increase it.\r\n tolerance: 0\r\n }, // end group defaults\r\n containerGroups = {},\r\n groupCounter = 0,\r\n emptyBox = {\r\n left: 0,\r\n top: 0,\r\n bottom: 0,\r\n right:0\r\n },\r\n eventNames = {\r\n start: \"touchstart.sortable mousedown.sortable\",\r\n drop: \"touchend.sortable touchcancel.sortable mouseup.sortable\",\r\n drag: \"touchmove.sortable mousemove.sortable\",\r\n scroll: \"scroll.sortable\"\r\n },\r\n subContainerKey = \"subContainers\"\r\n\r\n /*\r\n * a is Array [left, right, top, bottom]\r\n * b is array [left, top]\r\n */\r\n function d(a,b) {\r\n var x = Math.max(0, a[0] - b[0], b[0] - a[1]),\r\n y = Math.max(0, a[2] - b[1], b[1] - a[3])\r\n return x+y;\r\n }\r\n\r\n function setDimensions(array, dimensions, tolerance, useOffset) {\r\n var i = array.length,\r\n offsetMethod = useOffset ? \"offset\" : \"position\"\r\n tolerance = tolerance || 0\r\n\r\n while(i--){\r\n var el = array[i].el ? array[i].el : $(array[i]),\r\n // use fitting method\r\n pos = el[offsetMethod]()\r\n pos.left += parseInt(el.css('margin-left'), 10)\r\n pos.top += parseInt(el.css('margin-top'),10)\r\n dimensions[i] = [\r\n pos.left - tolerance,\r\n pos.left + el.outerWidth() + tolerance,\r\n pos.top - tolerance,\r\n pos.top + el.outerHeight() + tolerance\r\n ]\r\n }\r\n }\r\n\r\n function getRelativePosition(pointer, element) {\r\n var offset = element.offset()\r\n return {\r\n left: pointer.left - offset.left,\r\n top: pointer.top - offset.top\r\n }\r\n }\r\n\r\n function sortByDistanceDesc(dimensions, pointer, lastPointer) {\r\n pointer = [pointer.left, pointer.top]\r\n lastPointer = lastPointer && [lastPointer.left, lastPointer.top]\r\n\r\n var dim,\r\n i = dimensions.length,\r\n distances = []\r\n\r\n while(i--){\r\n dim = dimensions[i]\r\n distances[i] = [i,d(dim,pointer), lastPointer && d(dim, lastPointer)]\r\n }\r\n distances = distances.sort(function (a,b) {\r\n return b[1] - a[1] || b[2] - a[2] || b[0] - a[0]\r\n })\r\n\r\n // last entry is the closest\r\n return distances\r\n }\r\n\r\n function ContainerGroup(options) {\r\n this.options = $.extend({}, groupDefaults, options)\r\n this.containers = []\r\n\r\n if(!this.options.rootGroup){\r\n this.scrollProxy = $.proxy(this.scroll, this)\r\n this.dragProxy = $.proxy(this.drag, this)\r\n this.dropProxy = $.proxy(this.drop, this)\r\n this.placeholder = $(this.options.placeholder)\r\n\r\n if(!options.isValidTarget)\r\n this.options.isValidTarget = undefined\r\n }\r\n }\r\n\r\n ContainerGroup.get = function (options) {\r\n if(!containerGroups[options.group]) {\r\n if(options.group === undefined)\r\n options.group = groupCounter ++\r\n\r\n containerGroups[options.group] = new ContainerGroup(options)\r\n }\r\n\r\n return containerGroups[options.group]\r\n }\r\n\r\n ContainerGroup.prototype = {\r\n dragInit: function (e, itemContainer) {\r\n this.$document = $(itemContainer.el[0].ownerDocument)\r\n\r\n // get item to drag\r\n var closestItem = $(e.target).closest(this.options.itemSelector);\r\n // using the length of this item, prevents the plugin from being started if there is no handle being clicked on.\r\n // this may also be helpful in instantiating multidrag.\r\n if (closestItem.length) {\r\n this.item = closestItem;\r\n this.itemContainer = itemContainer;\r\n if (this.item.is(this.options.exclude) || !this.options.onMousedown(this.item, groupDefaults.onMousedown, e)) {\r\n return;\r\n }\r\n this.setPointer(e);\r\n this.toggleListeners('on');\r\n this.setupDelayTimer();\r\n this.dragInitDone = true;\r\n }\r\n },\r\n drag: function (e) {\r\n if(!this.dragging){\r\n if(!this.distanceMet(e) || !this.delayMet)\r\n return\r\n\r\n this.options.onDragStart(this.item, this.itemContainer, groupDefaults.onDragStart, e)\r\n this.item.before(this.placeholder)\r\n this.dragging = true\r\n }\r\n\r\n this.setPointer(e)\r\n // place item under the cursor\r\n this.options.onDrag(this.item,\r\n getRelativePosition(this.pointer, this.item.offsetParent()),\r\n groupDefaults.onDrag,\r\n e)\r\n\r\n var p = this.getPointer(e),\r\n box = this.sameResultBox,\r\n t = this.options.tolerance\r\n\r\n if(!box || box.top - t > p.top || box.bottom + t < p.top || box.left - t > p.left || box.right + t < p.left)\r\n if(!this.searchValidTarget()){\r\n this.placeholder.detach()\r\n this.lastAppendedItem = undefined\r\n }\r\n },\r\n drop: function (e) {\r\n this.toggleListeners('off')\r\n\r\n this.dragInitDone = false\r\n\r\n if(this.dragging){\r\n // processing Drop, check if placeholder is detached\r\n if(this.placeholder.closest(\"html\")[0]){\r\n this.placeholder.before(this.item).detach()\r\n } else {\r\n this.options.onCancel(this.item, this.itemContainer, groupDefaults.onCancel, e)\r\n }\r\n this.options.onDrop(this.item, this.getContainer(this.item), groupDefaults.onDrop, e)\r\n\r\n // cleanup\r\n this.clearDimensions()\r\n this.clearOffsetParent()\r\n this.lastAppendedItem = this.sameResultBox = undefined\r\n this.dragging = false\r\n }\r\n },\r\n searchValidTarget: function (pointer, lastPointer) {\r\n if(!pointer){\r\n pointer = this.relativePointer || this.pointer\r\n lastPointer = this.lastRelativePointer || this.lastPointer\r\n }\r\n\r\n var distances = sortByDistanceDesc(this.getContainerDimensions(),\r\n pointer,\r\n lastPointer),\r\n i = distances.length\r\n\r\n while(i--){\r\n var index = distances[i][0],\r\n distance = distances[i][1]\r\n\r\n if(!distance || this.options.pullPlaceholder){\r\n var container = this.containers[index]\r\n if(!container.disabled){\r\n if(!this.$getOffsetParent()){\r\n var offsetParent = container.getItemOffsetParent()\r\n pointer = getRelativePosition(pointer, offsetParent)\r\n lastPointer = getRelativePosition(lastPointer, offsetParent)\r\n }\r\n if(container.searchValidTarget(pointer, lastPointer))\r\n return true\r\n }\r\n }\r\n }\r\n if(this.sameResultBox)\r\n this.sameResultBox = undefined\r\n },\r\n movePlaceholder: function (container, item, method, sameResultBox) {\r\n var lastAppendedItem = this.lastAppendedItem\r\n if(!sameResultBox && lastAppendedItem && lastAppendedItem[0] === item[0])\r\n return;\r\n\r\n item[method](this.placeholder)\r\n this.lastAppendedItem = item\r\n this.sameResultBox = sameResultBox\r\n this.options.afterMove(this.placeholder, container, item)\r\n },\r\n getContainerDimensions: function () {\r\n if(!this.containerDimensions)\r\n setDimensions(this.containers, this.containerDimensions = [], this.options.tolerance, !this.$getOffsetParent())\r\n return this.containerDimensions\r\n },\r\n getContainer: function (element) {\r\n return element.closest(this.options.containerSelector).data(pluginName)\r\n },\r\n $getOffsetParent: function () {\r\n if(this.offsetParent === undefined){\r\n var i = this.containers.length - 1,\r\n offsetParent = this.containers[i].getItemOffsetParent()\r\n\r\n if(!this.options.rootGroup){\r\n while(i--){\r\n if(offsetParent[0] != this.containers[i].getItemOffsetParent()[0]){\r\n // If every container has the same offset parent,\r\n // use position() which is relative to this parent,\r\n // otherwise use offset()\r\n // compare #setDimensions\r\n offsetParent = false\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this.offsetParent = offsetParent\r\n }\r\n return this.offsetParent\r\n },\r\n setPointer: function (e) {\r\n var pointer = this.getPointer(e)\r\n\r\n if(this.$getOffsetParent()){\r\n var relativePointer = getRelativePosition(pointer, this.$getOffsetParent())\r\n this.lastRelativePointer = this.relativePointer\r\n this.relativePointer = relativePointer\r\n }\r\n\r\n this.lastPointer = this.pointer\r\n this.pointer = pointer\r\n },\r\n distanceMet: function (e) {\r\n var currentPointer = this.getPointer(e)\r\n return (Math.max(\r\n Math.abs(this.pointer.left - currentPointer.left),\r\n Math.abs(this.pointer.top - currentPointer.top)\r\n ) >= this.options.distance)\r\n },\r\n getPointer: function(e) {\r\n var o = e.originalEvent || e.originalEvent.touches && e.originalEvent.touches[0]\r\n return {\r\n left: e.pageX || o.pageX,\r\n top: e.pageY || o.pageY\r\n }\r\n },\r\n setupDelayTimer: function () {\r\n var that = this\r\n this.delayMet = !this.options.delay\r\n\r\n // init delay timer if needed\r\n if (!this.delayMet) {\r\n clearTimeout(this._mouseDelayTimer);\r\n this._mouseDelayTimer = setTimeout(function() {\r\n that.delayMet = true\r\n }, this.options.delay)\r\n }\r\n },\r\n scroll: function (e) {\r\n this.clearDimensions()\r\n this.clearOffsetParent() // TODO is this needed?\r\n },\r\n toggleListeners: function (method) {\r\n var that = this,\r\n events = ['drag','drop','scroll']\r\n\r\n $.each(events,function (i,event) {\r\n that.$document[method](eventNames[event], that[event + 'Proxy'])\r\n })\r\n },\r\n clearOffsetParent: function () {\r\n this.offsetParent = undefined\r\n },\r\n // Recursively clear container and item dimensions\r\n clearDimensions: function () {\r\n this.traverse(function(object){\r\n object._clearDimensions()\r\n })\r\n },\r\n traverse: function(callback) {\r\n callback(this)\r\n var i = this.containers.length\r\n while(i--){\r\n this.containers[i].traverse(callback)\r\n }\r\n },\r\n _clearDimensions: function(){\r\n this.containerDimensions = undefined\r\n },\r\n _destroy: function () {\r\n containerGroups[this.options.group] = undefined\r\n }\r\n }\r\n\r\n function Container(element, options) {\r\n this.el = element\r\n this.options = $.extend( {}, containerDefaults, options)\r\n\r\n this.group = ContainerGroup.get(this.options)\r\n this.rootGroup = this.options.rootGroup || this.group\r\n this.handle = this.rootGroup.options.handle || this.rootGroup.options.itemSelector\r\n\r\n var itemPath = this.rootGroup.options.itemPath\r\n this.target = itemPath ? this.el.find(itemPath) : this.el\r\n\r\n this.target.on(eventNames.start, this.handle, $.proxy(this.dragInit, this))\r\n\r\n if(this.options.drop)\r\n this.group.containers.push(this)\r\n }\r\n\r\n Container.prototype = {\r\n dragInit: function (e) {\r\n var rootGroup = this.rootGroup\r\n\r\n if( !this.disabled &&\r\n !rootGroup.dragInitDone &&\r\n this.options.drag &&\r\n this.isValidDrag(e)) {\r\n rootGroup.dragInit(e, this)\r\n }\r\n },\r\n isValidDrag: function(e) {\r\n return e.which == 1 ||\r\n e.type == \"touchstart\" && e.originalEvent.touches.length == 1\r\n },\r\n searchValidTarget: function (pointer, lastPointer) {\r\n var distances = sortByDistanceDesc(this.getItemDimensions(),\r\n pointer,\r\n lastPointer),\r\n i = distances.length,\r\n rootGroup = this.rootGroup,\r\n validTarget = !rootGroup.options.isValidTarget ||\r\n rootGroup.options.isValidTarget(rootGroup.item, this)\r\n\r\n if(!i && validTarget){\r\n rootGroup.movePlaceholder(this, this.target, \"append\")\r\n return true\r\n } else\r\n while(i--){\r\n var index = distances[i][0],\r\n distance = distances[i][1]\r\n if(!distance && this.hasChildGroup(index)){\r\n var found = this.getContainerGroup(index).searchValidTarget(pointer, lastPointer)\r\n if(found)\r\n return true\r\n }\r\n else if(validTarget){\r\n this.movePlaceholder(index, pointer)\r\n return true\r\n }\r\n }\r\n },\r\n movePlaceholder: function (index, pointer) {\r\n var item = $(this.items[index]),\r\n dim = this.itemDimensions[index],\r\n method = \"after\",\r\n width = item.outerWidth(),\r\n height = item.outerHeight(),\r\n offset = item.offset(),\r\n sameResultBox = {\r\n left: offset.left,\r\n right: offset.left + width,\r\n top: offset.top,\r\n bottom: offset.top + height\r\n }\r\n if(this.options.vertical){\r\n var yCenter = (dim[2] + dim[3]) / 2,\r\n inUpperHalf = pointer.top <= yCenter\r\n if(inUpperHalf){\r\n method = \"before\"\r\n sameResultBox.bottom -= height / 2\r\n } else\r\n sameResultBox.top += height / 2\r\n } else {\r\n var xCenter = (dim[0] + dim[1]) / 2,\r\n inLeftHalf = pointer.left <= xCenter\r\n if(inLeftHalf){\r\n method = \"before\"\r\n sameResultBox.right -= width / 2\r\n } else\r\n sameResultBox.left += width / 2\r\n }\r\n if(this.hasChildGroup(index))\r\n sameResultBox = emptyBox\r\n this.rootGroup.movePlaceholder(this, item, method, sameResultBox)\r\n },\r\n getItemDimensions: function () {\r\n if(!this.itemDimensions){\r\n this.items = this.$getChildren(this.el, \"item\").filter(\r\n \":not(.\" + this.group.options.placeholderClass + \", .\" + this.group.options.draggedClass + \")\"\r\n ).get()\r\n setDimensions(this.items, this.itemDimensions = [], this.options.tolerance)\r\n }\r\n return this.itemDimensions\r\n },\r\n getItemOffsetParent: function () {\r\n var offsetParent,\r\n el = this.el\r\n // Since el might be empty we have to check el itself and\r\n // can not do something like el.children().first().offsetParent()\r\n if(el.css(\"position\") === \"relative\" || el.css(\"position\") === \"absolute\" || el.css(\"position\") === \"fixed\")\r\n offsetParent = el\r\n else\r\n offsetParent = el.offsetParent()\r\n return offsetParent\r\n },\r\n hasChildGroup: function (index) {\r\n return this.options.nested && this.getContainerGroup(index)\r\n },\r\n getContainerGroup: function (index) {\r\n var childGroup = $.data(this.items[index], subContainerKey)\r\n if( childGroup === undefined){\r\n var childContainers = this.$getChildren(this.items[index], \"container\")\r\n childGroup = false\r\n\r\n if(childContainers[0]){\r\n var options = $.extend({}, this.options, {\r\n rootGroup: this.rootGroup,\r\n group: groupCounter ++\r\n })\r\n childGroup = childContainers[pluginName](options).data(pluginName).group\r\n }\r\n $.data(this.items[index], subContainerKey, childGroup)\r\n }\r\n return childGroup\r\n },\r\n $getChildren: function (parent, type) {\r\n var options = this.rootGroup.options,\r\n path = options[type + \"Path\"],\r\n selector = options[type + \"Selector\"]\r\n\r\n parent = $(parent)\r\n if(path)\r\n parent = parent.find(path)\r\n\r\n return parent.children(selector)\r\n },\r\n _serialize: function (parent, isContainer) {\r\n var that = this,\r\n childType = isContainer ? \"item\" : \"container\",\r\n\r\n children = this.$getChildren(parent, childType).not(this.options.exclude).map(function () {\r\n return that._serialize($(this), !isContainer)\r\n }).get()\r\n\r\n return this.rootGroup.options.serialize(parent, children, isContainer)\r\n },\r\n traverse: function(callback) {\r\n $.each(this.items || [], function(item){\r\n var group = $.data(this, subContainerKey)\r\n if(group)\r\n group.traverse(callback)\r\n });\r\n\r\n callback(this)\r\n },\r\n _clearDimensions: function () {\r\n this.itemDimensions = undefined\r\n },\r\n _destroy: function() {\r\n var that = this;\r\n\r\n this.target.off(eventNames.start, this.handle);\r\n this.el.removeData(pluginName)\r\n\r\n if(this.options.drop)\r\n this.group.containers = $.grep(this.group.containers, function(val){\r\n return val != that\r\n })\r\n\r\n $.each(this.items || [], function(){\r\n $.removeData(this, subContainerKey)\r\n })\r\n }\r\n }\r\n\r\n var API = {\r\n enable: function() {\r\n this.traverse(function(object){\r\n object.disabled = false\r\n })\r\n },\r\n disable: function (){\r\n this.traverse(function(object){\r\n object.disabled = true\r\n })\r\n },\r\n serialize: function () {\r\n return this._serialize(this.el, true)\r\n },\r\n refresh: function() {\r\n this.traverse(function(object){\r\n object._clearDimensions()\r\n })\r\n },\r\n destroy: function () {\r\n this.traverse(function(object){\r\n object._destroy();\r\n })\r\n }\r\n }\r\n\r\n $.extend(Container.prototype, API)\r\n\r\n /**\r\n * jQuery API\r\n *\r\n * Parameters are\r\n * either options on init\r\n * or a method name followed by arguments to pass to the method\r\n */\r\n $.fn[pluginName] = function(methodOrOptions) {\r\n var args = Array.prototype.slice.call(arguments, 1)\r\n\r\n return this.map(function(){\r\n var $t = $(this),\r\n object = $t.data(pluginName)\r\n\r\n if(object && API[methodOrOptions])\r\n return API[methodOrOptions].apply(object, args) || this\r\n else if(!object && (methodOrOptions === undefined ||\r\n typeof methodOrOptions === \"object\"))\r\n $t.data(pluginName, new Container($t, methodOrOptions))\r\n\r\n return this\r\n });\r\n };\r\n\r\n}(jQuery, window, 'wf_sortable');\r\n"]}
|
1 |
+
{"version":3,"sources":["jquery-sortable.js"],"names":["Symbol","iterator","nested","$","pluginName","undefined","containerDefaults","drag","groupDefaults","exclude","containerPath","containerSelector","afterMove","distance","draggedClass","handle","itemPath","itemSelector","bodyClass","onDrag","isValidTarget","css","$item","position","addClass","onDragStart","container","removeClass","onMousedown","event","preventDefault","group","options","placeholderClass","removeAttr","_super","target","nodeName","match","placeholder","pullPlaceholder","parentIsContainer","result","sortable","serialize","$parent","$children","extend","data","containerGroups","groupCounter","emptyBox","subContainers","drop","subContainerKey","x","Math","i","length","d","a","b","top","offsetMethod","left","parseInt","el","getRelativePosition","element","sortByDistanceDesc","tolerance","offset","pointer","pos","distances","dimensions","outerWidth","outerHeight","dim","dropProxy","dragProxy","sort","proxy","ContainerGroup","get","this","containers","rootGroup","closestItem","item","disabled","itemDimensions","right","which","find","originalEvent","bottom","on","eventNames","start","dragInit","searchValidTarget","push","setPointer","dragInitDone","prototype","dragging","setupDelayTimer","box","itemContainer","e","toggleListeners","onCancel","detach","delayMet","clearDimensions","clearOffsetParent","relativePointer","lastPointer","sameResultBox","t","offsetParent","lastRelativePointer","getContainer","getContainerDimensions","onDrop","movePlaceholder","lastAppendedItem","$getOffsetParent","containerDimensions","setDimensions","closest","method","getPointer","getItemOffsetParent","that","distanceMet","events","$document","pageX","pageY","currentPointer","clearTimeout","abs","_mouseDelayTimer","o","touches","scroll","_clearDimensions","delay","each","setTimeout","callback","traverse","object","isValidDrag","Container","validTarget","_destroy","inUpperHalf","xCenter","inLeftHalf","index","getItemDimensions","hasChildGroup","items","getContainerGroup","childGroup","childContainers","yCenter","height","path","_serialize","width","removeData","enable","$getChildren","parent","type","isContainer","childType","children","selector","not","map","disable","off","grep","val","destroy","args","$t","API"],"mappings":"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","file":"jquery-sortable.min.js","sourcesContent":["/* ===================================================\n * jquery-sortable.js v0.9.13\n * http://johnny.github.com/jquery-sortable/\n * ===================================================\n * Copyright (c) 2012 Jonas von Andrian\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n * * The name of the author may not be used to endorse or promote products\n * derived from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n * ========================================================== */\n/* eslint-disable */\n!function ( $, window, pluginName, undefined){\n var containerDefaults = {\n // If true, items can be dragged from this container\n drag: true,\n // If true, items can be droped onto this container\n drop: true,\n // Exclude items from being draggable, if the\n // selector matches the item\n exclude: \"\",\n // If true, search for nested containers within an item.If you nest containers,\n // either the original selector with which you call the plugin must only match the top containers,\n // or you need to specify a group (see the bootstrap nav example)\n nested: true,\n // If true, the items are assumed to be arranged vertically\n vertical: true\n }, // end container defaults\n groupDefaults = {\n // This is executed after the placeholder has been moved.\n // $closestItemOrContainer contains the closest item, the placeholder\n // has been put at or the closest empty Container, the placeholder has\n // been appended to.\n afterMove: function ($placeholder, container, $closestItemOrContainer) {\n },\n // The exact css path between the container and its items, e.g. \"> tbody\"\n containerPath: \"\",\n // The css selector of the containers\n containerSelector: \"ol, ul\",\n // Distance the mouse has to travel to start dragging\n distance: 0,\n // Time in milliseconds after mousedown until dragging should start.\n // This option can be used to prevent unwanted drags when clicking on an element.\n delay: 0,\n // The css selector of the drag handle\n handle: \"\",\n // The exact css path between the item and its subcontainers.\n // It should only match the immediate items of a container.\n // No item of a subcontainer should be matched. E.g. for ol>div>li the itemPath is \"> div\"\n itemPath: \"\",\n // The css selector of the items\n itemSelector: \"li\",\n // The class given to \"body\" while an item is being dragged\n bodyClass: \"dragging\",\n // The class giving to an item while being dragged\n draggedClass: \"dragged\",\n // Check if the dragged item may be inside the container.\n // Use with care, since the search for a valid container entails a depth first search\n // and may be quite expensive.\n isValidTarget: function ($item, container) {\n return true\n },\n // Executed before onDrop if placeholder is detached.\n // This happens if pullPlaceholder is set to false and the drop occurs outside a container.\n onCancel: function ($item, container, _super, event) {\n },\n // Executed at the beginning of a mouse move event.\n // The Placeholder has not been moved yet.\n onDrag: function ($item, position, _super, event) {\n $item.css(position)\n },\n // Called after the drag has been started,\n // that is the mouse button is being held down and\n // the mouse is moving.\n // The container is the closest initialized container.\n // Therefore it might not be the container, that actually contains the item.\n onDragStart: function ($item, container, _super, event) {\n $item.css({\n height: $item.outerHeight(),\n width: $item.outerWidth()\n })\n $item.addClass(container.group.options.draggedClass)\n $(\"body\").addClass(container.group.options.bodyClass)\n },\n // Called when the mouse button is being released\n onDrop: function ($item, container, _super, event) {\n $item.removeClass(container.group.options.draggedClass).removeAttr(\"style\")\n $(\"body\").removeClass(container.group.options.bodyClass)\n },\n // Called on mousedown. If falsy value is returned, the dragging will not start.\n // Ignore if element clicked is input, select or textarea\n onMousedown: function ($item, _super, event) {\n if (!event.target.nodeName.match(/^(input|select|textarea)$/i)) {\n event.preventDefault()\n return true\n }\n },\n // The class of the placeholder (must match placeholder option markup)\n placeholderClass: \"placeholder\",\n // Template for the placeholder. Can be any valid jQuery input\n // e.g. a string, a DOM element.\n // The placeholder must have the class \"placeholder\"\n placeholder: '<li class=\"placeholder\"></li>',\n // If true, the position of the placeholder is calculated on every mousemove.\n // If false, it is only calculated when the mouse is above a container.\n pullPlaceholder: true,\n // Specifies serialization of the container group.\n // The pair $parent/$children is either container/items or item/subcontainers.\n serialize: function ($parent, $children, parentIsContainer) {\n var result = $.extend({}, $parent.data())\n\n if(parentIsContainer)\n return [$children]\n else if ($children[0]){\n result.children = $children\n }\n\n delete result.subContainers\n delete result.sortable\n\n return result\n },\n // Set tolerance while dragging. Positive values decrease sensitivity,\n // negative values increase it.\n tolerance: 0\n }, // end group defaults\n containerGroups = {},\n groupCounter = 0,\n emptyBox = {\n left: 0,\n top: 0,\n bottom: 0,\n right:0\n },\n eventNames = {\n start: \"touchstart.sortable mousedown.sortable\",\n drop: \"touchend.sortable touchcancel.sortable mouseup.sortable\",\n drag: \"touchmove.sortable mousemove.sortable\",\n scroll: \"scroll.sortable\"\n },\n subContainerKey = \"subContainers\"\n\n /*\n * a is Array [left, right, top, bottom]\n * b is array [left, top]\n */\n function d(a,b) {\n var x = Math.max(0, a[0] - b[0], b[0] - a[1]),\n y = Math.max(0, a[2] - b[1], b[1] - a[3])\n return x+y;\n }\n\n function setDimensions(array, dimensions, tolerance, useOffset) {\n var i = array.length,\n offsetMethod = useOffset ? \"offset\" : \"position\"\n tolerance = tolerance || 0\n\n while(i--){\n var el = array[i].el ? array[i].el : $(array[i]),\n // use fitting method\n pos = el[offsetMethod]()\n pos.left += parseInt(el.css('margin-left'), 10)\n pos.top += parseInt(el.css('margin-top'),10)\n dimensions[i] = [\n pos.left - tolerance,\n pos.left + el.outerWidth() + tolerance,\n pos.top - tolerance,\n pos.top + el.outerHeight() + tolerance\n ]\n }\n }\n\n function getRelativePosition(pointer, element) {\n var offset = element.offset()\n return {\n left: pointer.left - offset.left,\n top: pointer.top - offset.top\n }\n }\n\n function sortByDistanceDesc(dimensions, pointer, lastPointer) {\n pointer = [pointer.left, pointer.top]\n lastPointer = lastPointer && [lastPointer.left, lastPointer.top]\n\n var dim,\n i = dimensions.length,\n distances = []\n\n while(i--){\n dim = dimensions[i]\n distances[i] = [i,d(dim,pointer), lastPointer && d(dim, lastPointer)]\n }\n distances = distances.sort(function (a,b) {\n return b[1] - a[1] || b[2] - a[2] || b[0] - a[0]\n })\n\n // last entry is the closest\n return distances\n }\n\n function ContainerGroup(options) {\n this.options = $.extend({}, groupDefaults, options)\n this.containers = []\n\n if(!this.options.rootGroup){\n this.scrollProxy = $.proxy(this.scroll, this)\n this.dragProxy = $.proxy(this.drag, this)\n this.dropProxy = $.proxy(this.drop, this)\n this.placeholder = $(this.options.placeholder)\n\n if(!options.isValidTarget)\n this.options.isValidTarget = undefined\n }\n }\n\n ContainerGroup.get = function (options) {\n if(!containerGroups[options.group]) {\n if(options.group === undefined)\n options.group = groupCounter ++\n\n containerGroups[options.group] = new ContainerGroup(options)\n }\n\n return containerGroups[options.group]\n }\n\n ContainerGroup.prototype = {\n dragInit: function (e, itemContainer) {\n this.$document = $(itemContainer.el[0].ownerDocument)\n\n // get item to drag\n var closestItem = $(e.target).closest(this.options.itemSelector);\n // using the length of this item, prevents the plugin from being started if there is no handle being clicked on.\n // this may also be helpful in instantiating multidrag.\n if (closestItem.length) {\n this.item = closestItem;\n this.itemContainer = itemContainer;\n if (this.item.is(this.options.exclude) || !this.options.onMousedown(this.item, groupDefaults.onMousedown, e)) {\n return;\n }\n this.setPointer(e);\n this.toggleListeners('on');\n this.setupDelayTimer();\n this.dragInitDone = true;\n }\n },\n drag: function (e) {\n if(!this.dragging){\n if(!this.distanceMet(e) || !this.delayMet)\n return\n\n this.options.onDragStart(this.item, this.itemContainer, groupDefaults.onDragStart, e)\n this.item.before(this.placeholder)\n this.dragging = true\n }\n\n this.setPointer(e)\n // place item under the cursor\n this.options.onDrag(this.item,\n getRelativePosition(this.pointer, this.item.offsetParent()),\n groupDefaults.onDrag,\n e)\n\n var p = this.getPointer(e),\n box = this.sameResultBox,\n t = this.options.tolerance\n\n if(!box || box.top - t > p.top || box.bottom + t < p.top || box.left - t > p.left || box.right + t < p.left)\n if(!this.searchValidTarget()){\n this.placeholder.detach()\n this.lastAppendedItem = undefined\n }\n },\n drop: function (e) {\n this.toggleListeners('off')\n\n this.dragInitDone = false\n\n if(this.dragging){\n // processing Drop, check if placeholder is detached\n if(this.placeholder.closest(\"html\")[0]){\n this.placeholder.before(this.item).detach()\n } else {\n this.options.onCancel(this.item, this.itemContainer, groupDefaults.onCancel, e)\n }\n this.options.onDrop(this.item, this.getContainer(this.item), groupDefaults.onDrop, e)\n\n // cleanup\n this.clearDimensions()\n this.clearOffsetParent()\n this.lastAppendedItem = this.sameResultBox = undefined\n this.dragging = false\n }\n },\n searchValidTarget: function (pointer, lastPointer) {\n if(!pointer){\n pointer = this.relativePointer || this.pointer\n lastPointer = this.lastRelativePointer || this.lastPointer\n }\n\n var distances = sortByDistanceDesc(this.getContainerDimensions(),\n pointer,\n lastPointer),\n i = distances.length\n\n while(i--){\n var index = distances[i][0],\n distance = distances[i][1]\n\n if(!distance || this.options.pullPlaceholder){\n var container = this.containers[index]\n if(!container.disabled){\n if(!this.$getOffsetParent()){\n var offsetParent = container.getItemOffsetParent()\n pointer = getRelativePosition(pointer, offsetParent)\n lastPointer = getRelativePosition(lastPointer, offsetParent)\n }\n if(container.searchValidTarget(pointer, lastPointer))\n return true\n }\n }\n }\n if(this.sameResultBox)\n this.sameResultBox = undefined\n },\n movePlaceholder: function (container, item, method, sameResultBox) {\n var lastAppendedItem = this.lastAppendedItem\n if(!sameResultBox && lastAppendedItem && lastAppendedItem[0] === item[0])\n return;\n\n item[method](this.placeholder)\n this.lastAppendedItem = item\n this.sameResultBox = sameResultBox\n this.options.afterMove(this.placeholder, container, item)\n },\n getContainerDimensions: function () {\n if(!this.containerDimensions)\n setDimensions(this.containers, this.containerDimensions = [], this.options.tolerance, !this.$getOffsetParent())\n return this.containerDimensions\n },\n getContainer: function (element) {\n return element.closest(this.options.containerSelector).data(pluginName)\n },\n $getOffsetParent: function () {\n if(this.offsetParent === undefined){\n var i = this.containers.length - 1,\n offsetParent = this.containers[i].getItemOffsetParent()\n\n if(!this.options.rootGroup){\n while(i--){\n if(offsetParent[0] != this.containers[i].getItemOffsetParent()[0]){\n // If every container has the same offset parent,\n // use position() which is relative to this parent,\n // otherwise use offset()\n // compare #setDimensions\n offsetParent = false\n break;\n }\n }\n }\n\n this.offsetParent = offsetParent\n }\n return this.offsetParent\n },\n setPointer: function (e) {\n var pointer = this.getPointer(e)\n\n if(this.$getOffsetParent()){\n var relativePointer = getRelativePosition(pointer, this.$getOffsetParent())\n this.lastRelativePointer = this.relativePointer\n this.relativePointer = relativePointer\n }\n\n this.lastPointer = this.pointer\n this.pointer = pointer\n },\n distanceMet: function (e) {\n var currentPointer = this.getPointer(e)\n return (Math.max(\n Math.abs(this.pointer.left - currentPointer.left),\n Math.abs(this.pointer.top - currentPointer.top)\n ) >= this.options.distance)\n },\n getPointer: function(e) {\n var o = e.originalEvent || e.originalEvent.touches && e.originalEvent.touches[0]\n return {\n left: e.pageX || o.pageX,\n top: e.pageY || o.pageY\n }\n },\n setupDelayTimer: function () {\n var that = this\n this.delayMet = !this.options.delay\n\n // init delay timer if needed\n if (!this.delayMet) {\n clearTimeout(this._mouseDelayTimer);\n this._mouseDelayTimer = setTimeout(function() {\n that.delayMet = true\n }, this.options.delay)\n }\n },\n scroll: function (e) {\n this.clearDimensions()\n this.clearOffsetParent() // TODO is this needed?\n },\n toggleListeners: function (method) {\n var that = this,\n events = ['drag','drop','scroll']\n\n $.each(events,function (i,event) {\n that.$document[method](eventNames[event], that[event + 'Proxy'])\n })\n },\n clearOffsetParent: function () {\n this.offsetParent = undefined\n },\n // Recursively clear container and item dimensions\n clearDimensions: function () {\n this.traverse(function(object){\n object._clearDimensions()\n })\n },\n traverse: function(callback) {\n callback(this)\n var i = this.containers.length\n while(i--){\n this.containers[i].traverse(callback)\n }\n },\n _clearDimensions: function(){\n this.containerDimensions = undefined\n },\n _destroy: function () {\n containerGroups[this.options.group] = undefined\n }\n }\n\n function Container(element, options) {\n this.el = element\n this.options = $.extend( {}, containerDefaults, options)\n\n this.group = ContainerGroup.get(this.options)\n this.rootGroup = this.options.rootGroup || this.group\n this.handle = this.rootGroup.options.handle || this.rootGroup.options.itemSelector\n\n var itemPath = this.rootGroup.options.itemPath\n this.target = itemPath ? this.el.find(itemPath) : this.el\n\n this.target.on(eventNames.start, this.handle, $.proxy(this.dragInit, this))\n\n if(this.options.drop)\n this.group.containers.push(this)\n }\n\n Container.prototype = {\n dragInit: function (e) {\n var rootGroup = this.rootGroup\n\n if( !this.disabled &&\n !rootGroup.dragInitDone &&\n this.options.drag &&\n this.isValidDrag(e)) {\n rootGroup.dragInit(e, this)\n }\n },\n isValidDrag: function(e) {\n return e.which == 1 ||\n e.type == \"touchstart\" && e.originalEvent.touches.length == 1\n },\n searchValidTarget: function (pointer, lastPointer) {\n var distances = sortByDistanceDesc(this.getItemDimensions(),\n pointer,\n lastPointer),\n i = distances.length,\n rootGroup = this.rootGroup,\n validTarget = !rootGroup.options.isValidTarget ||\n rootGroup.options.isValidTarget(rootGroup.item, this)\n\n if(!i && validTarget){\n rootGroup.movePlaceholder(this, this.target, \"append\")\n return true\n } else\n while(i--){\n var index = distances[i][0],\n distance = distances[i][1]\n if(!distance && this.hasChildGroup(index)){\n var found = this.getContainerGroup(index).searchValidTarget(pointer, lastPointer)\n if(found)\n return true\n }\n else if(validTarget){\n this.movePlaceholder(index, pointer)\n return true\n }\n }\n },\n movePlaceholder: function (index, pointer) {\n var item = $(this.items[index]),\n dim = this.itemDimensions[index],\n method = \"after\",\n width = item.outerWidth(),\n height = item.outerHeight(),\n offset = item.offset(),\n sameResultBox = {\n left: offset.left,\n right: offset.left + width,\n top: offset.top,\n bottom: offset.top + height\n }\n if(this.options.vertical){\n var yCenter = (dim[2] + dim[3]) / 2,\n inUpperHalf = pointer.top <= yCenter\n if(inUpperHalf){\n method = \"before\"\n sameResultBox.bottom -= height / 2\n } else\n sameResultBox.top += height / 2\n } else {\n var xCenter = (dim[0] + dim[1]) / 2,\n inLeftHalf = pointer.left <= xCenter\n if(inLeftHalf){\n method = \"before\"\n sameResultBox.right -= width / 2\n } else\n sameResultBox.left += width / 2\n }\n if(this.hasChildGroup(index))\n sameResultBox = emptyBox\n this.rootGroup.movePlaceholder(this, item, method, sameResultBox)\n },\n getItemDimensions: function () {\n if(!this.itemDimensions){\n this.items = this.$getChildren(this.el, \"item\").filter(\n \":not(.\" + this.group.options.placeholderClass + \", .\" + this.group.options.draggedClass + \")\"\n ).get()\n setDimensions(this.items, this.itemDimensions = [], this.options.tolerance)\n }\n return this.itemDimensions\n },\n getItemOffsetParent: function () {\n var offsetParent,\n el = this.el\n // Since el might be empty we have to check el itself and\n // can not do something like el.children().first().offsetParent()\n if(el.css(\"position\") === \"relative\" || el.css(\"position\") === \"absolute\" || el.css(\"position\") === \"fixed\")\n offsetParent = el\n else\n offsetParent = el.offsetParent()\n return offsetParent\n },\n hasChildGroup: function (index) {\n return this.options.nested && this.getContainerGroup(index)\n },\n getContainerGroup: function (index) {\n var childGroup = $.data(this.items[index], subContainerKey)\n if( childGroup === undefined){\n var childContainers = this.$getChildren(this.items[index], \"container\")\n childGroup = false\n\n if(childContainers[0]){\n var options = $.extend({}, this.options, {\n rootGroup: this.rootGroup,\n group: groupCounter ++\n })\n childGroup = childContainers[pluginName](options).data(pluginName).group\n }\n $.data(this.items[index], subContainerKey, childGroup)\n }\n return childGroup\n },\n $getChildren: function (parent, type) {\n var options = this.rootGroup.options,\n path = options[type + \"Path\"],\n selector = options[type + \"Selector\"]\n\n parent = $(parent)\n if(path)\n parent = parent.find(path)\n\n return parent.children(selector)\n },\n _serialize: function (parent, isContainer) {\n var that = this,\n childType = isContainer ? \"item\" : \"container\",\n\n children = this.$getChildren(parent, childType).not(this.options.exclude).map(function () {\n return that._serialize($(this), !isContainer)\n }).get()\n\n return this.rootGroup.options.serialize(parent, children, isContainer)\n },\n traverse: function(callback) {\n $.each(this.items || [], function(item){\n var group = $.data(this, subContainerKey)\n if(group)\n group.traverse(callback)\n });\n\n callback(this)\n },\n _clearDimensions: function () {\n this.itemDimensions = undefined\n },\n _destroy: function() {\n var that = this;\n\n this.target.off(eventNames.start, this.handle);\n this.el.removeData(pluginName)\n\n if(this.options.drop)\n this.group.containers = $.grep(this.group.containers, function(val){\n return val != that\n })\n\n $.each(this.items || [], function(){\n $.removeData(this, subContainerKey)\n })\n }\n }\n\n var API = {\n enable: function() {\n this.traverse(function(object){\n object.disabled = false\n })\n },\n disable: function (){\n this.traverse(function(object){\n object.disabled = true\n })\n },\n serialize: function () {\n return this._serialize(this.el, true)\n },\n refresh: function() {\n this.traverse(function(object){\n object._clearDimensions()\n })\n },\n destroy: function () {\n this.traverse(function(object){\n object._destroy();\n })\n }\n }\n\n $.extend(Container.prototype, API)\n\n /**\n * jQuery API\n *\n * Parameters are\n * either options on init\n * or a method name followed by arguments to pass to the method\n */\n $.fn[pluginName] = function(methodOrOptions) {\n var args = Array.prototype.slice.call(arguments, 1)\n\n return this.map(function(){\n var $t = $(this),\n object = $t.data(pluginName)\n\n if(object && API[methodOrOptions])\n return API[methodOrOptions].apply(object, args) || this\n else if(!object && (methodOrOptions === undefined ||\n typeof methodOrOptions === \"object\"))\n $t.data(pluginName, new Container($t, methodOrOptions))\n\n return this\n });\n };\n\n}(jQuery, window, 'wf_sortable');\n"]}
|
admin/js/woo-feed-admin-pro.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["woo-feed-admin-pro.js"],"names":["$","window","on","sliders","slick","autoplay","dots","centerMode","length","slidesToScroll","lazyLoad","wp","ajax","wpf_ajax_obj"],"mappings":"cAQC,SAAAA,EAAAC,GAAAD,EAAAC,GAAAC,GAAA,OAAA,WAEG,IAAAC,EAAAH,EAAAA,gBAIIG,EAAIA,QAHED,EAAAA,MAAGE,CACTC,UAAAA,EACWC,MAAAA,EAKHC,YAAAA,EAJIC,QAAAA,EACAJ,aAAAA,EACIK,eAAAA,EACFC,SAAAA,kBATrB,CAaeD,OAAAA,QAAAA,SANUE,GAAAC,KAAAC","file":"woo-feed-admin-pro.min.js","sourcesContent":["// noinspection JSUnresolvedVariable,ES6ConvertVarToLetConst,SpellCheckingInspection\
|
1 |
+
{"version":3,"sources":["woo-feed-admin-pro.js"],"names":["$","window","on","sliders","slick","autoplay","dots","centerMode","length","slidesToScroll","lazyLoad","wp","ajax","wpf_ajax_obj"],"mappings":"cAQC,SAAAA,EAAAC,GAAAD,EAAAC,GAAAC,GAAA,OAAA,WAEG,IAAAC,EAAAH,EAAAA,gBAIIG,EAAIA,QAHED,EAAAA,MAAGE,CACTC,UAAAA,EACWC,MAAAA,EAKHC,YAAAA,EAJIC,QAAAA,EACAJ,aAAAA,EACIK,eAAAA,EACFC,SAAAA,kBATrB,CAaeD,OAAAA,QAAAA,SANUE,GAAAC,KAAAC","file":"woo-feed-admin-pro.min.js","sourcesContent":["// noinspection JSUnresolvedVariable,ES6ConvertVarToLetConst,SpellCheckingInspection\n/**!\n * WooFeed Pro Scripts\n * @version 1.0.0\n * @package WooFeed\n * @copyright 2020 WebAppick\n *\n */\n(function ($, window, document, wpAjax, opts) {\n \"use strict\";\n /* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\n $(window).on('load', function () {\n // noinspection ES6ConvertVarToLetConst,SpellCheckingInspection\n var sliders = $('.wapk-slider');\n if( sliders.length ) {\n sliders.slick({\n autoplay: true,\n dots: true,\n centerMode: true,\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n lazyLoad: 'progressive'\n });\n }\n } );\n}( jQuery, window, document, wp.ajax, wpf_ajax_obj ));"]}
|
admin/js/woo-feed-admin.js
CHANGED
@@ -1095,4 +1095,16 @@
|
|
1095 |
new WooFeedCustomFields( field, status, isTaxonomy );
|
1096 |
});
|
1097 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1098 |
})(jQuery, window, document, wp.ajax, wpf_ajax_obj);
|
1095 |
new WooFeedCustomFields( field, status, isTaxonomy );
|
1096 |
});
|
1097 |
});
|
1098 |
+
|
1099 |
+
$(document).on('click', '#woo-feed-debug-log-download', function (e) {
|
1100 |
+
e.preventDefault();
|
1101 |
+
$("<a />", {
|
1102 |
+
download: new Date() + ".log",
|
1103 |
+
href: URL.createObjectURL(
|
1104 |
+
new Blob([$("#woo-feed-debug-log").val()], {
|
1105 |
+
type: "text/plain"
|
1106 |
+
})),
|
1107 |
+
}).appendTo("body")[0].click();
|
1108 |
+
});
|
1109 |
+
|
1110 |
})(jQuery, window, document, wp.ajax, wpf_ajax_obj);
|
admin/js/woo-feed-admin.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}!function(s,o,r,i,c){s.fn.disabled=function(n){return s(this).each(function(){var e=s(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===n||!0===n):!0===n?e.addClass(t):e.removeClass(t)}),self},s.fn.isDisabled=function(){var e=s(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function e(e){s(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function a(e,t){s(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}function l(e,t){return s.extend(!0,{},e,t)}function t(){n=s(".toClipboard"),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?n.find("img").hide(0):(n.each(function(){s(this).on("mouseleave",e).on("blur",e)}),new ClipboardJS(".toClipboard").on("error",function(e){var t,n;a(e.trigger,(t=e.action,n="cut"===t?"X":"C",/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+n+" to "+t:"Press Ctrl-"+n+" to "+t))}).on("success",function(e){a(e.trigger,"Copied!")}))}var n,d,_={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.text),"</div>")},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?c.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,n,a,o){return(e||s(".sorted_table")).each(function(){var e=s(this),t=e.find("tbody > tr:eq(0) > td").length||a||9;e.wf_sortable(l({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="'.concat(t,'"></td></tr>'),onDrop:function(e,t,n,a){e.removeClass(t.group.options.draggedClass).removeAttr("style"),s("body").removeClass(t.group.options.bodyClass),o&&"function"==typeof o&&o(e,t,n,a)}},n))})},selectize:function(e,t){return(e||s("select.selectize")).not(".selectized").each(function(){var e=s(this);e.selectize(l({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:_.selectize_render_item}},t))})},fancySelect:function(e,t){return(e||s("select.fancySelect")).not(".FancySelectInit").each(function(){s(this).fancySelect(l({maxItemShow:3},t))})},reindex_config_table:function(){s("#table-1").find("tbody tr").each(function(n,e){s(e).find("[name]").each(function(e,t){s(t).attr("name",s(t).attr("name").replace(/(\[\d\])/g,"[".concat(n,"]")))})})},common:function(){_.sortable(s(".sorted_table"),{},9,_.reindex_config_table),_.selectize(),_.fancySelect(s(".outputType"))}},f={form:null,init:function(){this.form=s(".generateFeed"),this.form.length&&(_.common(),s(r).trigger(new jQuery.Event("feedEditor.init",{target:this.form})))},renderMerchantInfo:function(n,a,o){function e(e){var t;o.hasOwnProperty(e)&&(n.find(".merchant-info-section."+e+" .data").html(o[e]),"feed_file_type"===e&&((t=o[e].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==c.na.toLowerCase()})).length?(a.find("option").removeAttr("selected").each(function(){var e=s(this);e.val()&&!_.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&a.find('option[value="'+t[0]+'"]').attr("selected","selected")):a.find("option").disabled(!1)))}for(var t in o)e(t);n.find(".spinner").removeClass("is-active"),a.disabled(!1),a.trigger("change"),a.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(n,a){function e(t){if(a.hasOwnProperty(t))if("tabs"===t)n.html(a[t]);else{var e=s('[name="'+t+'"]');e.length&&e.each(function(){var e=s(this);e.is("select")?e.find('[value="'+a[t]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===a[t]?e.prop("checked",!0):e.val(a[t])}).trigger("change")}}for(var t in a)e(t);f.init()}},u=[],p=[],h=function(){function e(){_classCallCheck(this,e),this._feed=c.generator.feed,this._limit=c.generator.limit,this._progress=0,this._timer=null,this._color=!1,this._total_batch=0,this._current_batch=0,this._product_ids=[],this._progress_per_batch=0,this._refresh=!0,this._regenerate=c.generator.regenerate,o.isRegenerating=!1,this._all_btn=s(".wpf_regenerate"),this._current_btn=s("#".concat(this._feed.replace("wf_config","wf_feed_"))),this._current_btn_label=""}return _createClass(e,[{key:"init",value:function(){var n=this;""!==this._feed&&this._regenerate&&!1===o.isRegenerating&&this.generate();var e=o.location.search;return"webappick-manage-feeds"===new URLSearchParams(e).get("page")&&s("body").addClass("woo-import-popup-body"),s(r).on("click",".woo-feed-campaign-close-button",function(e){e.preventDefault(),s(this).parent(".woo-feed-promotion").hide();var t=s(this).data("condition");1===t&&i.post("woo_feed_hide_promotion",{_ajax_nonce:c.nonce,condition:t}).then(function(e){n._log(e)}).fail(function(e){n._log(e),n._updateProgressStatus(e.message),n._color="red"})}),s(r).on("click",".wpf_regenerate",function(e){e.preventDefault(),n._current_btn=s(this),n._current_btn.hasClass("disabled")||!0===o.isRegenerating||(n._feed=n._current_btn.attr("id").replace("wf_feed_","wf_config"),""!==n._feed&&n.generate())}),this}},{key:"_block_button",value:function(){this._all_btn.length&&this._all_btn.addClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").addClass("wpf_spin reverse_spin"),this._current_btn_label=this._current_btn.attr("title"),this._current_btn.attr("aria-label",c.regenerate).attr("title",c.regenerate))}},{key:"_unblock_button",value:function(){this._all_btn.length&&this._all_btn.removeClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").removeClass("wpf_spin"),this._current_btn.find("span").removeClass("reverse_spin"),this._current_btn.attr("aria-label",this._current_btn_label).attr("title",this._current_btn_label))}},{key:"generate",value:function(){var t=this,n=this;o.isRegenerating=!0,this._block_button(),this._resetProgressBar(),this._progressBarActive(),this._log("Counting Total Products"),this._updateProgressStatus("Fetching products."),this._get_product_ids().then(function(e){t._progress=10,n._log({response:e}),e.success?(n._log("Total ".concat(e.total," Products found.")),n._product_ids=e.product,n._total_batch=t._product_ids.length,n._current_batch=0,n._progress_per_batch=(90-t._progress)/t._total_batch,n._process_batch(),n._updateProgressStatus("Processing Products...")):n._updateProgressStatus(e.data.message)}).fail(function(e){n._log(e),n._updateProgressStatus(e.message),n._color="red",setTimeout(function(){n._stopProgressBar(),n._unblock_button()},1500)})}},{key:"_get_product_ids",value:function(){return this._progress=5,i.post("get_product_information",{_ajax_nonce:c.nonce,feed:this._feed,limit:this._limit})}},{key:"_process_batch",value:function(){var t=this,e="Processing Batch ".concat(this._current_batch+1," of ").concat(this._total_batch);this._updateProgressStatus(e),this._log(e),i.post("make_batch_feed",{_ajax_nonce:c.nonce,feed:this._feed,products:this._product_ids[this._current_batch],loop:this._current_batch}).then(function(e){t._current_batch++,t._log("Batch ".concat(t._current_batch," Completed")),t._log(e),t._current_batch<t._total_batch&&(t._process_batch(),t._progress+=t._progress_per_batch),t._current_batch===t._total_batch&&t._save_feed_file()}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_save_feed_file",value:function(){var t=this;this._log("Saving feed file"),this._updateProgressStatus("Saving feed file"),i.post("save_feed_file",{_ajax_nonce:c.nonce,feed:this._feed}).then(function(e){t._log(e),t._progress=100,t._refresh&&(o.location.href="".concat(c.pages.list.feed,"&link=").concat(e.url,"&cat=").concat(e.cat)),setTimeout(function(){t._stopProgressBar(),setTimeout(function(){t._resetProgressBar(!0),t._unblock_button()},3e3)},2500)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_log",value:function(e){return c.wpf_debug&&console.log(e),this}},{key:"_progressBarActive",value:function(e){var t=0<arguments.length&&void 0!==e?e:0,n=this;return this._toggleProgressBar(!0),this._timer=setInterval(function(){n._updateProgressBar()},t||1e3),this}},{key:"_stopProgressBar",value:function(){return clearInterval(this._timer),this}},{key:"_resetProgressBar",value:function(e){return this._toggleProgressBar(!1),this._updateProgressStatus(""),clearInterval(this._timer),this._color=!1,this._timer=null,this._progress=0,e&&this._updateProgressBar(),this}},{key:"_toggleProgressBar",value:function(e){var t=s("#feed_progress_table");return e?t.show():t.hide(),this}},{key:"_updateProgressStatus",value:function(e){return s(".feed-progress-status").text(e),this}},{key:"_updateProgressBar",value:function(){var e=s(".feed-progress-percentage"),t=s(".feed-progress-bar-fill"),n="".concat(Math.round(this._progress),"%");t.css({width:n}),e.text(n)}}]),e}();o.wf={helper:_,feedEditor:f,generator:h},s(o).on("load",function(){null!==s(location).attr("href").match(/webappick.*feed/g)&&s("#wpbody-content").addClass("woofeed-body-content");var e=o.location.search;new URLSearchParams(e).get("action");t(),postboxes.add_postbox_toggles(pagenow),(new h).init(),""!==c.generator.feed&&c.generator.regenerate,f.init(),_.common(),s(".wfmasterTooltip").hover(function(){var e=s(this),t=e.attr("wftitle");e.data("tipText",t).removeAttr("wftitle"),s('<p class="wftooltip"></p>').text(t).appendTo("body").fadeIn("slow")},function(){var e=s(this);e.attr("wftitle",e.data("tipText")),s(".wftooltip").remove()}).mousemove(function(e){s(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),s(".generateFeed").validate(),s(r).on("click","[data-toggle_slide]",function(e){e.preventDefault(),s(s(this).data("toggle_slide")).slideToggle("fast")}).on("click","#wf_newRow",function(){var e=s("#table-1 tbody"),t=s("#feed_config_template").text().trim().replace(/__idx__/g,e.find("tr").length);e.append(t),_.fancySelect(s(".outputType"))}).on("click",".single-feed-delete",function(e){e.preventDefault(),confirm(c.form.del_confirm)&&(o.location.href=s(this).attr("val"))}).on("click",".wf_clean_cache_wrapper",function(e){e.preventDefault();var t=s(".woo-feed-clean-cache-nonce").val(),n=s(".woo-feed-cache-loader");n.show(),i.post("clear_cache_data",{_ajax_clean_nonce:t}).then(function(e){e.success&&(n.hide(),location.reload())}).fail(function(e){console.log("something wrong")})}).on("click","#woo-feed-copy-status-btn",function(e){e.preventDefault();var t=s("#woo-feed-copy-status-btn"),n=s("#woo-feed-status-area");t.val("Copied"),n.css("visibility","visible"),n.select(),r.execCommand("copy")}).on("change",".wf_attr.wf_attributes",function(e){e.preventDefault(),s(".fancy-picker-picked").trigger("click");var t,n,a=s(this).val(),o=s(this).parents("tr").find(".outputType"),r=s(this).parents("tr").find(".fancy-picker-content .fancy-picker-option"),i=s(this).parents("tr").find(".fancy-picker-data span");n=["price","current_price","sale_price","price_with_tax","current_price_with_tax","sale_price_with_tax","shipping_cost"].includes(a)?(t="for_price","Price"):""!==a&&-1!==a.indexOf("wf_taxo")?(t="for_custom_taxo","parent_if_empty"):(t="for_all","Default"),r.removeClass("selected"),"for_custom_taxo"!==t&&"for_price"!==t||r.each(function(e){n===s(this).text()&&(s(this).addClass("selected"),i.text(n),o.find("option").text(n),o.find("option").val(s(this).data("value")))})}).on("click","#doaction, #doaction2",function(){return confirm(c.form.del_confirm_multi)}).on("change",".dType",function(){var e=s(this),t=e.val(),n=e.closest("tr");"pattern"===t?(n.find(".value_attribute").hide(),n.find(".value_pattern").show()):"attribute"===t?(n.find(".value_attribute").show(),n.find(".value_pattern").hide()):"remove"===t&&(n.find(".value_attribute").hide(),n.find(".value_pattern").hide())}).on("click",".delRow",function(e){e.preventDefault(),s(this).closest("tr").remove(),_.reindex_config_table()}).on("submit","#generateFeed",function(){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(c.form.generate,"</b>"))}).on("submit","#updatefeed",function(e,t){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(t&&t.save?c.form.save:c.form.generate,"</b>"))}).on("change",".ftporsftp",function(){var e=s(this).val(),t=s(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(c.form.sftp_checking),i.post("get_ssh2_status",{_ajax_nonce:c.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(c.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(c.form.sftp_warning)}).fail(function(e){t.hide(),_.ajax_fail(e)})):t.hide()}).on("click",'[name="save_feed_config"]',function(e){e.preventDefault(),s("#updatefeed").trigger("submit",{save:!0})}).on("change","#provider",function(e){e.preventDefault();var t=s(this).val(),n=s("#feedType"),a=s("#providerPage"),o=s("#feed_merchant_info");a.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+c.form.loading_tmpl+"</h3>"),o.find(".spinner").addClass("is-active"),n.disabled(!0),n.parent().find(".spinner").addClass("is-active"),o.find(".merchant-info-section .data").html(""),u.hasOwnProperty(t)?f.renderMerchantInfo(o,n,u[t]):i.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:c.nonce,provider:t}}).then(function(e){u[t]=e,f.renderMerchantInfo(o,n,e)}).fail(_.ajax_fail),p.hasOwnProperty(t)?f.renderMerchantTemplate(a,p[t]):i.post("get_feed_merchant",{_ajax_nonce:c.nonce,merchant:t}).then(function(e){p[t]=e,f.renderMerchantTemplate(a,e),"bing"===t&&(s("#delimiter option").removeAttr("selected"),s('#delimiter option[value="tab"]').attr("selected","selected"),s("#enclosure option").removeAttr("selected"),s('#enclosure option[value=" "]').attr("selected","selected")),"google_product_review"!==t&&s('.wf_attributes option[value="reviewer_name"]').hide()}).fail(_.ajax_fail)}).on("change",".woo_feed_status_input",function(){var e=s(this);i.post("update_feed_status",{_ajax_nonce:c.nonce,feedName:e.val(),status:e[0].checked?1:0})}),s(r).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){var e=s(".out-of-stock-visibility");"n"===s('[name="is_outOfStock"]:checked').val()&&"1"===s('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=s(this),t=e.val(),n=e.closest("tr");"pattern"===t?(n.find(".wf_attr").hide(),n.find(".wf_attr").val(""),n.find(".wf_default").show()):(n.find(".wf_attr").show(),n.find(".wf_default").hide(),n.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=s(this).closest("tr"),t=e.find(".wf_mattributes"),n=e.find(".attr_type"),a=e.find("td:eq(4)"),o=s("#provider").val();if(c.form.google_category.hasOwnProperty(t.val())&&"pattern"===n.val()&&_.in_array(o,c.form.google_category[t.val()])){if(0===a.find("select.selectize").length){a.find("input.wf_default").remove(),a.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),a.append('<span style="font-size:x-small;"><a style="color: red" href="http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category" target="_blank">'.concat(c.learn_more,"</a></span>")),d||a.append('<span class="spinner is-active" style="margin: 0;"></span>');var r=a.find(".wf_attributes select");_.selectize(r,{preload:!0,placeholder:c.form.select_category,load:function(e,t){d?t(d):i.send("get_google_categories",{type:"GET",data:{_ajax_nonce:c.nonce,action:"get_google_categories",provider:o}}).then(function(e){t(d=e),a.find(".spinner").remove()}).fail(_.ajax_fail)}})}}else"current_category"!==t.val()&&0===a.find("input.wf_default").length&&(a.find("span").remove(),a.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==n.val()&&a.find("input.wf_default").hide())}).on("change","#feedType,#provider",function(e){var t=s("#feedType").val(),n=s("#provider").val(),a=s(".itemWrapper"),o=s(".wf_csvtxt");""!==t&&_.in_array(n,c.form.item_wrapper_hidden)&&a.hide(),"feedType"===e.target.id&&("csv"===t||"txt"===t||"tsv"===t?(a.hide(),o.show(),"tsv"===t?s("#delimiter option:last").prop("selected","selected"):"csv"===t&&s("#delimiter option:first").prop("selected","selected")):"xml"===t&&(a.show(),o.hide()))}).trigger("change");var a=function(){function a(e,t,n){_classCallCheck(this,a),this.productCustomFields(e,t,n)}return _createClass(a,[{key:"cacheClear",value:function(){var e={action:"woo_feed_product_attribute_cache_remove",nonce:wpf_ajax_obj.ajax.nonce};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e})}},{key:"productCustomFields",value:function(e,t,n){var a=this,o=1<arguments.length&&void 0!==t&&t,r=2<arguments.length?n:void 0,i={action:"woo_feed_custom_fields_status_change",nonce:wpf_ajax_obj.ajax.nonce,field:e,status:o,isTaxonomy:r};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:i,success:function(e){e.success?a.cacheClear():console.log(e)}})}}]),a}();s(r).on("click",'.woofeed-custom-fields [id*="-switcher"]',function(){var e=s(this).attr("id").split("-")[0],t=s(this).data("taxonomy"),n=s(this).prop("checked");new a(e,n,t)})})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
|
2 |
//# sourceMappingURL=woo-feed-admin.min.js.map
|
1 |
+
"use strict";function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}!function(s,o,r,i,c){s.fn.disabled=function(n){return s(this).each(function(){var e=s(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===n||!0===n):!0===n?e.addClass(t):e.removeClass(t)}),self},s.fn.isDisabled=function(){var e=s(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function e(e){s(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function a(e,t){s(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}function l(e,t){return s.extend(!0,{},e,t)}function t(){n=s(".toClipboard"),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?n.find("img").hide(0):(n.each(function(){s(this).on("mouseleave",e).on("blur",e)}),new ClipboardJS(".toClipboard").on("error",function(e){var t,n;a(e.trigger,(t=e.action,n="cut"===t?"X":"C",/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+n+" to "+t:"Press Ctrl-"+n+" to "+t))}).on("success",function(e){a(e.trigger,"Copied!")}))}var n,d,f={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'.concat(t(e.text),"</div>")},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?c.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,n,a,o){return(e||s(".sorted_table")).each(function(){var e=s(this),t=e.find("tbody > tr:eq(0) > td").length||a||9;e.wf_sortable(l({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="'.concat(t,'"></td></tr>'),onDrop:function(e,t,n,a){e.removeClass(t.group.options.draggedClass).removeAttr("style"),s("body").removeClass(t.group.options.bodyClass),o&&"function"==typeof o&&o(e,t,n,a)}},n))})},selectize:function(e,t){return(e||s("select.selectize")).not(".selectized").each(function(){var e=s(this);e.selectize(l({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:f.selectize_render_item}},t))})},fancySelect:function(e,t){return(e||s("select.fancySelect")).not(".FancySelectInit").each(function(){s(this).fancySelect(l({maxItemShow:3},t))})},reindex_config_table:function(){s("#table-1").find("tbody tr").each(function(n,e){s(e).find("[name]").each(function(e,t){s(t).attr("name",s(t).attr("name").replace(/(\[\d\])/g,"[".concat(n,"]")))})})},common:function(){f.sortable(s(".sorted_table"),{},9,f.reindex_config_table),f.selectize(),f.fancySelect(s(".outputType"))}},_={form:null,init:function(){this.form=s(".generateFeed"),this.form.length&&(f.common(),s(r).trigger(new jQuery.Event("feedEditor.init",{target:this.form})))},renderMerchantInfo:function(n,a,o){function e(e){var t;o.hasOwnProperty(e)&&(n.find(".merchant-info-section."+e+" .data").html(o[e]),"feed_file_type"===e&&((t=o[e].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==c.na.toLowerCase()})).length?(a.find("option").removeAttr("selected").each(function(){var e=s(this);e.val()&&!f.in_array(e.val(),t)?e.disabled(!0):e.disabled(!1)}),1===t.length&&a.find('option[value="'+t[0]+'"]').attr("selected","selected")):a.find("option").disabled(!1)))}for(var t in o)e(t);n.find(".spinner").removeClass("is-active"),a.disabled(!1),a.trigger("change"),a.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(n,a){function e(t){if(a.hasOwnProperty(t))if("tabs"===t)n.html(a[t]);else{var e=s('[name="'+t+'"]');e.length&&e.each(function(){var e=s(this);e.is("select")?e.find('[value="'+a[t]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===a[t]?e.prop("checked",!0):e.val(a[t])}).trigger("change")}}for(var t in a)e(t);_.init()}},u=[],p=[],h=function(){function e(){_classCallCheck(this,e),this._feed=c.generator.feed,this._limit=c.generator.limit,this._progress=0,this._timer=null,this._color=!1,this._total_batch=0,this._current_batch=0,this._product_ids=[],this._progress_per_batch=0,this._refresh=!0,this._regenerate=c.generator.regenerate,o.isRegenerating=!1,this._all_btn=s(".wpf_regenerate"),this._current_btn=s("#".concat(this._feed.replace("wf_config","wf_feed_"))),this._current_btn_label=""}return _createClass(e,[{key:"init",value:function(){var n=this;""!==this._feed&&this._regenerate&&!1===o.isRegenerating&&this.generate();var e=o.location.search;return"webappick-manage-feeds"===new URLSearchParams(e).get("page")&&s("body").addClass("woo-import-popup-body"),s(r).on("click",".woo-feed-campaign-close-button",function(e){e.preventDefault(),s(this).parent(".woo-feed-promotion").hide();var t=s(this).data("condition");1===t&&i.post("woo_feed_hide_promotion",{_ajax_nonce:c.nonce,condition:t}).then(function(e){n._log(e)}).fail(function(e){n._log(e),n._updateProgressStatus(e.message),n._color="red"})}),s(r).on("click",".wpf_regenerate",function(e){e.preventDefault(),n._current_btn=s(this),n._current_btn.hasClass("disabled")||!0===o.isRegenerating||(n._feed=n._current_btn.attr("id").replace("wf_feed_","wf_config"),""!==n._feed&&n.generate())}),this}},{key:"_block_button",value:function(){this._all_btn.length&&this._all_btn.addClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").addClass("wpf_spin reverse_spin"),this._current_btn_label=this._current_btn.attr("title"),this._current_btn.attr("aria-label",c.regenerate).attr("title",c.regenerate))}},{key:"_unblock_button",value:function(){this._all_btn.length&&this._all_btn.removeClass("disabled"),this._current_btn.length&&(this._current_btn.find("span").removeClass("wpf_spin"),this._current_btn.find("span").removeClass("reverse_spin"),this._current_btn.attr("aria-label",this._current_btn_label).attr("title",this._current_btn_label))}},{key:"generate",value:function(){var t=this,n=this;o.isRegenerating=!0,this._block_button(),this._resetProgressBar(),this._progressBarActive(),this._log("Counting Total Products"),this._updateProgressStatus("Fetching products."),this._get_product_ids().then(function(e){t._progress=10,n._log({response:e}),e.success?(n._log("Total ".concat(e.total," Products found.")),n._product_ids=e.product,n._total_batch=t._product_ids.length,n._current_batch=0,n._progress_per_batch=(90-t._progress)/t._total_batch,n._process_batch(),n._updateProgressStatus("Processing Products...")):n._updateProgressStatus(e.data.message)}).fail(function(e){n._log(e),n._updateProgressStatus(e.message),n._color="red",setTimeout(function(){n._stopProgressBar(),n._unblock_button()},1500)})}},{key:"_get_product_ids",value:function(){return this._progress=5,i.post("get_product_information",{_ajax_nonce:c.nonce,feed:this._feed,limit:this._limit})}},{key:"_process_batch",value:function(){var t=this,e="Processing Batch ".concat(this._current_batch+1," of ").concat(this._total_batch);this._updateProgressStatus(e),this._log(e),i.post("make_batch_feed",{_ajax_nonce:c.nonce,feed:this._feed,products:this._product_ids[this._current_batch],loop:this._current_batch}).then(function(e){t._current_batch++,t._log("Batch ".concat(t._current_batch," Completed")),t._log(e),t._current_batch<t._total_batch&&(t._process_batch(),t._progress+=t._progress_per_batch),t._current_batch===t._total_batch&&t._save_feed_file()}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_save_feed_file",value:function(){var t=this;this._log("Saving feed file"),this._updateProgressStatus("Saving feed file"),i.post("save_feed_file",{_ajax_nonce:c.nonce,feed:this._feed}).then(function(e){t._log(e),t._progress=100,t._refresh&&(o.location.href="".concat(c.pages.list.feed,"&link=").concat(e.url,"&cat=").concat(e.cat)),setTimeout(function(){t._stopProgressBar(),setTimeout(function(){t._resetProgressBar(!0),t._unblock_button()},3e3)},2500)}).fail(function(e){t._log(e),t._updateProgressStatus(e.message),t._color="red",setTimeout(function(){t._stopProgressBar(),t._unblock_button()},1500)})}},{key:"_log",value:function(e){return c.wpf_debug&&console.log(e),this}},{key:"_progressBarActive",value:function(e){var t=0<arguments.length&&void 0!==e?e:0,n=this;return this._toggleProgressBar(!0),this._timer=setInterval(function(){n._updateProgressBar()},t||1e3),this}},{key:"_stopProgressBar",value:function(){return clearInterval(this._timer),this}},{key:"_resetProgressBar",value:function(e){return this._toggleProgressBar(!1),this._updateProgressStatus(""),clearInterval(this._timer),this._color=!1,this._timer=null,this._progress=0,e&&this._updateProgressBar(),this}},{key:"_toggleProgressBar",value:function(e){var t=s("#feed_progress_table");return e?t.show():t.hide(),this}},{key:"_updateProgressStatus",value:function(e){return s(".feed-progress-status").text(e),this}},{key:"_updateProgressBar",value:function(){var e=s(".feed-progress-percentage"),t=s(".feed-progress-bar-fill"),n="".concat(Math.round(this._progress),"%");t.css({width:n}),e.text(n)}}]),e}();o.wf={helper:f,feedEditor:_,generator:h},s(o).on("load",function(){null!==s(location).attr("href").match(/webappick.*feed/g)&&s("#wpbody-content").addClass("woofeed-body-content");var e=o.location.search;new URLSearchParams(e).get("action");t(),postboxes.add_postbox_toggles(pagenow),(new h).init(),""!==c.generator.feed&&c.generator.regenerate,_.init(),f.common(),s(".wfmasterTooltip").hover(function(){var e=s(this),t=e.attr("wftitle");e.data("tipText",t).removeAttr("wftitle"),s('<p class="wftooltip"></p>').text(t).appendTo("body").fadeIn("slow")},function(){var e=s(this);e.attr("wftitle",e.data("tipText")),s(".wftooltip").remove()}).mousemove(function(e){s(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),s(".generateFeed").validate(),s(r).on("click","[data-toggle_slide]",function(e){e.preventDefault(),s(s(this).data("toggle_slide")).slideToggle("fast")}).on("click","#wf_newRow",function(){var e=s("#table-1 tbody"),t=s("#feed_config_template").text().trim().replace(/__idx__/g,e.find("tr").length);e.append(t),f.fancySelect(s(".outputType"))}).on("click",".single-feed-delete",function(e){e.preventDefault(),confirm(c.form.del_confirm)&&(o.location.href=s(this).attr("val"))}).on("click",".wf_clean_cache_wrapper",function(e){e.preventDefault();var t=s(".woo-feed-clean-cache-nonce").val(),n=s(".woo-feed-cache-loader");n.show(),i.post("clear_cache_data",{_ajax_clean_nonce:t}).then(function(e){e.success&&(n.hide(),location.reload())}).fail(function(e){console.log("something wrong")})}).on("click","#woo-feed-copy-status-btn",function(e){e.preventDefault();var t=s("#woo-feed-copy-status-btn"),n=s("#woo-feed-status-area");t.val("Copied"),n.css("visibility","visible"),n.select(),r.execCommand("copy")}).on("change",".wf_attr.wf_attributes",function(e){e.preventDefault(),s(".fancy-picker-picked").trigger("click");var t,n,a=s(this).val(),o=s(this).parents("tr").find(".outputType"),r=s(this).parents("tr").find(".fancy-picker-content .fancy-picker-option"),i=s(this).parents("tr").find(".fancy-picker-data span");n=["price","current_price","sale_price","price_with_tax","current_price_with_tax","sale_price_with_tax","shipping_cost"].includes(a)?(t="for_price","Price"):""!==a&&-1!==a.indexOf("wf_taxo")?(t="for_custom_taxo","parent_if_empty"):(t="for_all","Default"),r.removeClass("selected"),"for_custom_taxo"!==t&&"for_price"!==t||r.each(function(e){n===s(this).text()&&(s(this).addClass("selected"),i.text(n),o.find("option").text(n),o.find("option").val(s(this).data("value")))})}).on("click","#doaction, #doaction2",function(){return confirm(c.form.del_confirm_multi)}).on("change",".dType",function(){var e=s(this),t=e.val(),n=e.closest("tr");"pattern"===t?(n.find(".value_attribute").hide(),n.find(".value_pattern").show()):"attribute"===t?(n.find(".value_attribute").show(),n.find(".value_pattern").hide()):"remove"===t&&(n.find(".value_attribute").hide(),n.find(".value_pattern").hide())}).on("click",".delRow",function(e){e.preventDefault(),s(this).closest("tr").remove(),f.reindex_config_table()}).on("submit","#generateFeed",function(){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(c.form.generate,"</b>"))}).on("submit","#updatefeed",function(e,t){s(this).validate(),s(this).valid()&&s(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '.concat(t&&t.save?c.form.save:c.form.generate,"</b>"))}).on("change",".ftporsftp",function(){var e=s(this).val(),t=s(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(c.form.sftp_checking),i.post("get_ssh2_status",{_ajax_nonce:c.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(c.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(c.form.sftp_warning)}).fail(function(e){t.hide(),f.ajax_fail(e)})):t.hide()}).on("click",'[name="save_feed_config"]',function(e){e.preventDefault(),s("#updatefeed").trigger("submit",{save:!0})}).on("change","#provider",function(e){e.preventDefault();var t=s(this).val(),n=s("#feedType"),a=s("#providerPage"),o=s("#feed_merchant_info");a.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+c.form.loading_tmpl+"</h3>"),o.find(".spinner").addClass("is-active"),n.disabled(!0),n.parent().find(".spinner").addClass("is-active"),o.find(".merchant-info-section .data").html(""),u.hasOwnProperty(t)?_.renderMerchantInfo(o,n,u[t]):i.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:c.nonce,provider:t}}).then(function(e){u[t]=e,_.renderMerchantInfo(o,n,e)}).fail(f.ajax_fail),p.hasOwnProperty(t)?_.renderMerchantTemplate(a,p[t]):i.post("get_feed_merchant",{_ajax_nonce:c.nonce,merchant:t}).then(function(e){p[t]=e,_.renderMerchantTemplate(a,e),"bing"===t&&(s("#delimiter option").removeAttr("selected"),s('#delimiter option[value="tab"]').attr("selected","selected"),s("#enclosure option").removeAttr("selected"),s('#enclosure option[value=" "]').attr("selected","selected")),"google_product_review"!==t&&s('.wf_attributes option[value="reviewer_name"]').hide()}).fail(f.ajax_fail)}).on("change",".woo_feed_status_input",function(){var e=s(this);i.post("update_feed_status",{_ajax_nonce:c.nonce,feedName:e.val(),status:e[0].checked?1:0})}),s(r).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){var e=s(".out-of-stock-visibility");"n"===s('[name="is_outOfStock"]:checked').val()&&"1"===s('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=s(this),t=e.val(),n=e.closest("tr");"pattern"===t?(n.find(".wf_attr").hide(),n.find(".wf_attr").val(""),n.find(".wf_default").show()):(n.find(".wf_attr").show(),n.find(".wf_default").hide(),n.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=s(this).closest("tr"),t=e.find(".wf_mattributes"),n=e.find(".attr_type"),a=e.find("td:eq(4)"),o=s("#provider").val();if(c.form.google_category.hasOwnProperty(t.val())&&"pattern"===n.val()&&f.in_array(o,c.form.google_category[t.val()])){if(0===a.find("select.selectize").length){a.find("input.wf_default").remove(),a.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),a.append('<span style="font-size:x-small;"><a style="color: red" href="http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category" target="_blank">'.concat(c.learn_more,"</a></span>")),d||a.append('<span class="spinner is-active" style="margin: 0;"></span>');var r=a.find(".wf_attributes select");f.selectize(r,{preload:!0,placeholder:c.form.select_category,load:function(e,t){d?t(d):i.send("get_google_categories",{type:"GET",data:{_ajax_nonce:c.nonce,action:"get_google_categories",provider:o}}).then(function(e){t(d=e),a.find(".spinner").remove()}).fail(f.ajax_fail)}})}}else"current_category"!==t.val()&&0===a.find("input.wf_default").length&&(a.find("span").remove(),a.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==n.val()&&a.find("input.wf_default").hide())}).on("change","#feedType,#provider",function(e){var t=s("#feedType").val(),n=s("#provider").val(),a=s(".itemWrapper"),o=s(".wf_csvtxt");""!==t&&f.in_array(n,c.form.item_wrapper_hidden)&&a.hide(),"feedType"===e.target.id&&("csv"===t||"txt"===t||"tsv"===t?(a.hide(),o.show(),"tsv"===t?s("#delimiter option:last").prop("selected","selected"):"csv"===t&&s("#delimiter option:first").prop("selected","selected")):"xml"===t&&(a.show(),o.hide()))}).trigger("change");var a=function(){function a(e,t,n){_classCallCheck(this,a),this.productCustomFields(e,t,n)}return _createClass(a,[{key:"cacheClear",value:function(){var e={action:"woo_feed_product_attribute_cache_remove",nonce:wpf_ajax_obj.ajax.nonce};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:e})}},{key:"productCustomFields",value:function(e,t,n){var a=this,o=1<arguments.length&&void 0!==t&&t,r=2<arguments.length?n:void 0,i={action:"woo_feed_custom_fields_status_change",nonce:wpf_ajax_obj.ajax.nonce,field:e,status:o,isTaxonomy:r};s.ajax({method:"POST",url:wpf_ajax_obj.wpf_ajax_url,data:i,success:function(e){e.success?a.cacheClear():console.log(e)}})}}]),a}();s(r).on("click",'.woofeed-custom-fields [id*="-switcher"]',function(){var e=s(this).attr("id").split("-")[0],t=s(this).data("taxonomy"),n=s(this).prop("checked");new a(e,n,t)})}),s(r).on("click","#woo-feed-debug-log-download",function(e){e.preventDefault(),s("<a />",{download:new Date+".log",href:URL.createObjectURL(new Blob([s("#woo-feed-debug-log").val()],{type:"text/plain"}))}).appendTo("body")[0].click()})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
|
2 |
//# sourceMappingURL=woo-feed-admin.min.js.map
|
admin/js/woo-feed-admin.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["woo-feed-admin.js"],"names":["_defineProperties","target","props","descriptor","i","_createClass","Constructor","protoProps","staticProps","prototype","window","wpAjax","self","prop","showTooltip","$","hasClass","currentTarget","clearTooltip","removeClass","actionMsg","className","match","index","action","removeAttr","actionKey","elem","addClass","attr","msg","extend","_default","_args","clip","$copyBtn","feedGenerator","left","event","trigger","test","navigator","on","console","googleCategories","in_array","needle","haystack","sortable","escape","data","text","ajax_fail","column_count","find","warn","wf_sortable","selectize_render_item","e","hasOwnProperty","opts","ajax","error","statusText","status","el","config","column","_onDrop","each","this","length","selectize","itemPath","create","concat","plugins","$item","container","containerSelector","group","options","bodyClass","itemSelector","handle","onDrop","fancySelect","maxItemShow","split","map","s","trim","helper","render","item","replace","x","form","merchantInfo","document","jQuery","k","init","renderMerchantInfo","opt","feedType","r","types","html","t","toLowerCase","na","disabled","val","_loop2","feedForm","contentSettings","renderMerchantTemplate","feedEditor","is","merchantInfoCache","tooltip","css","top","isRegenerating","_feed","_current_btn","feed","_limit","generator","limit","_progress","_product_ids","_progress_per_batch","_refresh","_all_btn","generate","condition","then","_current_btn_label","response","_color","preventDefault","parent","hide","_ajax_nonce","_log","_updateProgressStatus","message","key","regenerate","_block_button","value","_this","product","setTimeout","_stopProgressBar","_process_batch","_current_batch","_total_batch","post","_save_feed_file","fail","_resetProgressBar","_unblock_button","refreshInterval","arguments","undefined","clearInterval","_timer","_updateProgressBar","update","table","show","width","bar","wf","current_page_url_query","postboxes","location","setInterval","URLSearchParams","pagenow","template","common","hover","title","appendTo","userAgent","merchantTemplateCache","remove","ClipboardJS","clipboard","slideToggle","loader","tbody","reload","nonce","status_area","select","execCommand","button","fancyOption","fancyDataPicker","selectIf","price_attributes","selectKey","percentage","outputSelect","parents","includes","current_attribute_value","indexOf","del_confirm_multi","row","closest","reindex_config_table","type","_ajax_clean_nonce","server","validate","save","sftp_checking","sftp_available","provider","merchant","outOfStockVisibilityRow","feedName","checked","valueColumn","append","preload","load","google_category","query","attribute","cb","send","itemWrapper","item_wrapper_hidden","WooFeedCustomFields","productCustomFields","url","_classCallCheck","field","isTaxonomy","_this2","wpf_ajax_obj","success","log"],"mappings":"yHAAA,SAAAA,kBAAAC,EAAAC,+BACA,IAAAC,EAAAD,EAAAE,kHADA,SAAAC,aAAAC,EAAAC,EAAAC,GAWC,OAFDD,GAAAP,kBAAAM,EAAAG,UAAAF,GARAC,GAAAE,kBAAAC,EAAAH,GAUCF,gFA0BGM,IAAAA,EAAAA,EAAAA,MACAC,EAAAD,gBAEA,IAAAA,EAAAA,KAAAC,GAHAD,EAAAA,KAAAA,OAAAA,IAAAA,IAAAA,IAAAA,4EAYF,IAAAE,EAAAA,EAAAA,MAEAC,EAAA,WACA,YAHA,IAAAH,EAAAC,KAAAA,GAAAD,EAAAC,KAAAA,GAAAD,EAAAI,SAAAH,IAUQI,SAWRC,EAXuBC,GAAaC,EAAAA,EAAAA,eAAuBC,YAAUC,SAAMC,EAAhBC,GAAvB,OAA+EL,EAAAA,MAAAA,sBAAAA,IAAAA,KAAAA,OADpHC,YAAA,cAAAK,WAAAC,cAKGC,SAAFZ,EAAAA,EAAAA,GACAA,EAEDY,GAAAC,SAAA,2BAAAC,KAAA,aAAAC,GAiCyB,SAAAC,EAAAC,EAAAC,GAAA,OAvBvBlB,EAAAgB,QAAA,EAAA,GAAAC,EAAAC,GAHAb,SA8MEc,IAEAtB,EAAAA,EAAAA,4GAxRLuB,EA4RMC,KAAAA,WAEAC,EAAAA,MAAAA,GAAAA,aAAAA,GAAAA,GAAAA,OAAAA,oEAvMLvB,EAAAwB,EAAAC,WA2MQD,EAAAd,oEA5NG,gBAATO,OAAAS,KAAAC,UAAAT,WAAAZ,WAAAA,EAAAA,OAAAA,EAEAA,cAAAA,EAAAA,OAAAA,MA0NMsB,GAAA,UAAA,SAAAJ,6BAxOPvB,IA0CE4B,EAfYC,KAAfC,SAAA,SAAAC,EAAAC,uFAQIC,MAAAA,yCAAwBF,OAAaG,EAAAC,EAAAC,MAAA,WAErCC,UACAC,SAAAC,GANM1C,QAAA2C,KAAAC,GAQRC,MAAAA,EAAAA,eAAAA,eARQC,EAAAC,eAAA,UAAAC,EAAAC,KAAAC,MAAA,KAAAJ,EAAAK,WAAA,KAAAL,EAAAM,OAAA,IAAAN,IAoCHV,SAAA,SAAAiB,EAAAC,EAAAC,EAAAC,GACD,OAAAH,GAAAlD,EAAA,kBAAAsD,KAAA,WArCI,IAAAzD,EAsCHsD,EAtCGI,MAuCNjB,EAnCAzC,EAAA0C,KAAA,yBAAAiB,QAAAJ,GAAA,EAnBFvD,EAAA4C,YAAAzB,EAAA,CAwDAyC,kBAAW,QACVC,SAAU,UArBXzB,aAAU,KACTpC,OAAA4D,mBACCE,YAAI9D,wCADW+D,OAAAtB,EAAA,gBACfuB,OAAAA,SACaC,EAAAC,EAAa5B,EAAAZ,GAC1B1B,EAAAA,YAAK4C,EAAL5C,MAAAA,QAAAA,cAAAA,WAAAA,SACCmE,EAAAA,QAJc5D,YAAA2D,EAAAE,MAAAC,QAAAC,WAMdC,GAAAA,mBAAAA,GACAC,EAAAA,EAAAA,EAAQ3B,EAAAA,KAaVS,OARGM,UAAAP,SAAKoB,EAAAA,GACJA,OAAAA,GAAAA,EAAAA,qBAAAA,IAAAA,eAAAA,KAAAA,WACAzE,IAAAA,EAAA0E,EAAAA,MACDC,EAAAA,UAAAA,EAAA,CADCb,OAXqBR,EAWrBhB,KAAA,YAAA,EAGH0B,QALEhE,EAAAsC,KAAA,WAAAtC,EAAAsC,KAAA,WAAAsC,MAAA,KAAAC,IAAA,SAAAC,GAjDJ,OAAAA,EAAAC,SAwDAnB,GAEEzD,OAAAuC,CACA1C,KAAAA,EAAAA,wBAFDsD,OAOE0B,YAAA5C,SAAAiB,EAAAC,GACA2B,OAAAA,GAAAA,EAAAA,uBAAAA,IAAAA,oBAAAA,KAAAA,WACCC,EAAAA,MADOR,YAAAvD,EAAA,CApEXX,YAAAA,GAwEE8C,gIAMCqB,EAAAA,GAAAA,KA5DK,OAAAxE,EAAAkD,GAAApC,KAAA,QAAAkE,QAAA,YAAA,IAAApB,OAAAqB,EAAA,yFAkENjF,EAACyD,YACAzD,EAAAA,YAAAA,EAAAA,+CAgBHkF,KALYA,KAAAlF,EAAA,iBAKZkF,KAEAtC,KAAAA,SAwBGuC,EAAAA,SAEAnF,EAAAoF,GAAI5D,QAAA,IAAA6D,OAAqBC,MAAG,kBAAA,CAtB/BC,OAAIhC,KAAA2B,UAiCGM,mBAAIC,SAAJN,EAAAO,EAAAC,GAtBPF,SAAAA,EAAAZ,GA4BI,IAtBJW,EAkBOG,EAAA/C,eA9CK0C,KA+CNH,EAAA5C,KAAIqD,0BAA6BrD,EAAK,UAAAsD,KAAAF,EAAmBC,IAE1D,mBAtCLL,KAiBAC,EAAAA,EAAAA,GAAAA,MAAAA,KAAAA,IAAAA,SAAAA,GA5BY,OAAAM,EAAAlB,OAAAmB,mCA6BM,MAAA,KAAAD,GAAAA,IAAAjD,EAAAmD,GAAAD,iBAEfZ,QAwBFO,EAASO,KAAT,UAAAvF,WAAA,YAAA4C,KAAA,WAtBEoC,IAAAD,EAAAjE,EAAA+B,MACCmC,EAAAQ,QAAC3D,EAAWT,SAAZ2D,EAAYrF,MAAAA,GAAAqF,EAAZQ,UAAA,GAAAR,EAAAQ,UAAA,mFAGEP,EAAAnD,KAAA,UAAA0D,UAAA,KAMAP,IAAAA,IAAAA,KAAAA,EACCS,EAAAR,GAGDS,EAAAA,KAAAP,YAAUrC,YAAAA,aACVkC,EAHCD,UAGD,GACDC,EAAAlE,QAAA6E,gEAKJlB,uBAAAA,SAAAA,EAAAA,GACAO,SAAAA,EAASO,GACTP,GAAAA,EAAAA,eAAAA,GACAA,GAAAA,SAAAA,EA6BIU,EAAAP,KAAAF,EAAAL,QA1BL,CA4BG,IAAAe,EAAArG,EAAA,UAAAsF,EAAA,gBAGFe,EAAiB/C,KAAA,WA1BlBgD,IAAAA,EAAAA,EAAAA,qBAGGC,EAAAA,KAAIhB,WAAJI,EAAAL,GAAA,MAAAxF,KAAA,YAAA,IACCc,EAAA4F,GAAA,oBAAA5F,EAAA4F,GAAA,kBAAA5F,EAAAsF,QAAAP,EAAAL,GArKJjF,EAAAA,KAAAA,WAAAA,GAwKIoG,EAAAA,IAAIJ,EAAAA,MAEJK,QAAA,WAMG7G,IAAAA,IAAAsC,KAAAwD,EACA/E,EAAAA,GAGA2F,EAAAhB,SAKLvF,EAvBD2G,GAmDEC,EAnDF,GA+DCvF,EAAA,WAKAtB,SAAAA,IACAJ,gBAJDkH,KAAAA,GApNHtD,KAAAuD,MAAAC,EAAAA,UAAAC,KAuPEzD,KAAA0D,OAAApE,EAAAqE,UAAAC,MAED5D,KAAA6D,UAAA,4EAhVF7D,KAAA8D,aAAA,GAAA9D,KAAA+D,oBAAA,EAAA/D,KAAAgE,UAAA,0CAsVG5H,EAAAkH,gBAAiBC,EA1BlBvD,KAAAiE,SAAAC,EAAAA,mBAAclE,KAAAwD,aACb/G,EAAA,IAAA4D,OAAAL,KAAAuD,MAAA9B,QAAA,YAAA,yCAoUD,OAjSE1F,aAAA+B,EAAA,CAAA,YA5BDrB,MAAAoF,WACA7D,IAAAA,EAAAgC,KAiCC,KAAImE,KAAAA,OAAcnE,KAAMpB,cAAK,IAA7BxC,EAAAkH,gCA1BDa,IAAAA,EAAKX,EAAAA,SAAAA,OA2BJ,MAOElH,2BAjCH8H,IAAKC,gBAAAA,GACLC,IAAAA,qDAkCGhI,EAAAA,GAAAA,GAAKiI,QAAS,kCAAd,SAAAvG,GACAA,EAAAwG,iBACD/H,EAAAuD,MAAAyE,OAAA,uBAAAC,OAzWwC,IA2T1CP,EAAA1H,EAAAuD,MAAApB,KAAA,aA3T0CZ,IAAAmG,GA4U1C7H,EAAAA,KAAAkH,0BAAA,CAkCCmB,YAASnB,EAAAA,MAjCVlH,UAAAiH,qBACCjH,EAAAsI,KAAAN,KACAhI,KAAAA,SAED4H,GAiCE5H,EAAAsI,KAAApF,GAhCFlD,EAAAuI,sBAAArF,EAAAsF,SA3VHxI,EAAAiI,OAAA,UA+VI9H,EAAAA,GAAAA,GAAAA,QAACa,kBAADb,SAAAA,GACAuB,EAAAwG,wCAoCDlI,EAAKkH,aAAKA,SAAV,cAAgC,IAAApH,EAAAkH,iBAlChC7G,EAAAA,MAAC+G,EAAAA,aAAcjG,KAASD,MAAAA,QAAA,WAAA,aACvBU,KAAAA,EAAAA,uBAIAgC,OAvWJ,CAAA+E,IAAA,gBA0WMZ,MAAAA,WAFuCnE,KAAAiE,SAAAA,QAIvC3H,KAAAA,SAAAA,SAAAA,YAEAA,KAAAA,aAAAA,kIAsCF0D,KAAAwD,aAAAjG,KAAA,aAAA+B,EAAA0F,YAAAzH,KAAA,QAAA+B,EAAA0F,6EApZJhF,KAAAiE,SAAApH,YAAA,YAsXIP,KAAAA,aAAAA,gEAEAA,KAAAA,aAAAA,KAAAA,QAAAA,YAAAA,gBAsCD0D,KAAAwD,aAAKyB,KAAL,aAAAjF,KAAAqE,oBAAA9G,KAAA,QAAAyC,KAAAqE,uBAlCC,gBACDa,MAAA,WACA,IAAAC,EAAAtB,KArX0CvH,EAAAsI,KAAAN,EAAAA,gBAAAA,uBAAAhI,KAAAA,oBAwX1CA,KAAAA,qBAECA,KAAAA,KAAAA,qHAEAA,EAAAA,UAAAuI,GACAvI,EAAAA,KAAAA,CA0CCgI,SAAAA,eAtCFhI,EAAAA,KAAAuI,SAAAA,OAAAA,EAAArF,MAAAsF,qBAjY0CxI,EAAAA,aAAAgI,EAAAc,QAAAC,EAAAA,aAAAF,EAAArB,aAAA7D,OAAA3D,EAAAA,eAAAgJ,wDAqYzChJ,EArYyCiJ,iBAib1CjJ,EAAAuI,sBAAA,gGA1bHvI,EAAAuI,sBAAArF,EAAAsF,SAAAxI,EAAAiI,OAAA,MAqZGc,WAAAxB,WAEDvH,EAAAgJ,mBA8CE7B,EAAAA,mBACAG,UAtcJ,CAAAmB,IAAA,mBA+cGG,MAAA,kBAjDAlF,KAAA6D,UAAKoB,oCAmDLN,YAAKE,EAAAA,sBAlDLjB,MAAA5D,KAAA0D,WA0DCpH,sBAtDDA,MAAAA,sBACCA,EAAAsI,oBAAAvE,OAAAL,KAAAwF,eAAA,EAAA,QAAAnF,OAAAL,KAAAyF,cAwDAzF,KAAA6E,sBAAUW,gBAvDCnJ,EAAAqJ,KAAA,kBAAA,qBA2DXjC,KAAAzD,KAAK1D,MA1DLA,SAAAA,KAAAqJ,aAAA3F,KAAAwF,gBACClJ,KAAAA,KAAAA,iBA4DD8H,KAAGwB,SAAMtB,GA3DRhI,EAAAA,iBACAA,EAAAA,KAAAA,SAAAA,OAAAA,EAAAA,eAAAA,eACAA,EAAAA,KAAAA,GA8DAA,EAAAA,eAAKgJ,EAALG,kCAEAnJ,EA/DAA,WAAAA,EAAAA,qBAKAA,EAAAkJ,iBAAAlJ,EAAAmJ,+DAhbLnJ,EAAAuI,sBAAArF,EAAAsF,SAmfGxI,EAAAiI,OAAW,4BA/DVjI,EAAAA,mBACA+I,EAAAA,8BAOFN,IAAA,kBAiEG3I,MAAAA,WACA,IAAAE,EAAA0D,KACDqF,KAAAA,KAAAA,mEAtfyC/I,EAAAA,KAAAA,iBAAAuJ,qBAAAvJ,KAAAA,KAAAA,QAAA8H,KAAA,SAwfxCE,GA/DFhI,EAAAsI,KAAAN,GAECK,EAAAA,UAAAA,IACAlB,EAAAA,sGAGDnH,WAAA,gCAqEE+I,WA1EF,WA2EC/I,EAxFCA,mBAAAA,GA7awCA,EAAAwJ,+FAT7CxJ,EAAAiI,OAAA,MAAAc,WAAA,WAwhBG/I,EAAAgJ,mBAECjH,EAAAA,mBAvEDhC,WAndH0I,IAAA,OAAAG,MAAA,SAAAtG,UA2dIU,EAAWgF,WA2EZjG,QAAI/B,IAAIsC,sDAtiBX,IAAAmH,EAAA,EAAAC,UAAA/F,aAAAgG,QAAA,EAAA3J,EAAA0D,YAojBGkG,KAAAA,oBAAoBC,GA7EnBd,KAAAA,OAAAA,YAAAA,WAiFF/I,EAAA8J,sCAOCrB,IAAA,oCAEA,OADAmB,cAAAA,KAAeC,QACfnG,OA7EA,CAoFA+E,IAAA,oBAEDG,MAAA,SAAAmB,GA7EGjK,4GA7fL4D,KAAAmG,OAAA,KAAAnG,KAAA6D,UAAA,EA2fIvH,6BAuFD0D,0FAllBHN,EAAA4G,EAAAC,OAkmBGD,EAAA5B,cApFC,CAAAK,IAAA,0CAiGAyB,OADDC,EAAAA,yBAAS5H,KAAAa,GACR8G,iCAtmByCpK,MAAAsK,WAAApF,IAAAA,EAAA7E,EAAA,6BA+gB1CuG,EAAAA,EAAAA,2BACAW,EAAKrE,GAAAA,OAAAA,KAAAA,MAAAA,KAAAA,WAAAA,KAEJlD,EAAAA,IAAAgC,CAgGFoI,MAAA3C,IA9FCpH,EAAAoC,KAAAgF,OAoGG8C,EAxVD,GAhSwC/I,EAAA8I,GAAA,UA4hBDE,WAAtBb,eAEnBpC,EAAAA,GAAAA,GAAA3B,OAqGD,WApGsCgD,OAArCvI,EAAAoK,UAAKV,KAAAA,QAASW,MAAd,mGA4GD,IAAAC,gBAAAJ,qBA3oB2CvH,UAAAoF,oBAAAwC,UA4iB1C,IAAAlJ,GACAkE,OAED,KAuGGiF,EAAQtD,UAAKF,MAAAnE,EAAAqE,UAAyB9E,WAGvCmE,EACDhB,OAZDV,EA9oB2C4F,SA4PxCzK,EAjBI,oBAAA0K,MAAA,WA5KNrK,IA+LCkG,EAAAA,EAAAA,MACAnF,EAAAvB,EAAAiB,KAAA,qDAjLHd,EAAA,6BAAAoC,KAAAuI,GAAAC,SAAAnJ,QAAAC,OAAAmJ,SAAAzJ,WAAAA,IAAAA,EAqLC0J,EAAAA,MArLD9K,EAsLC0G,KAAAA,UAAU7G,EAAAsC,KAAVuE,YACC1G,EAAA,cAvLF+K,WAwLE/K,UAAE,SAAAgL,GAEAC,EAAAA,cAAAtE,IAAA,CACA5G,IAAAA,EAAAA,MAAWC,GAAXsB,KADAqB,EACoBgI,MADpB,OAuZAhL,EAAAA,iBAAOyK,WAERpK,EAAAoF,GA1GDqE,GAAAA,QAAAA,sBAAAA,SAAAA,GAuFD9G,EAtFChB,iBACAJ,EAAAA,EAAAA,MAAAwG,KAAAA,iBAAAmD,YAAA,UA6GCvJ,GAAA,QAAIwJ,aAAW,qCAzGfA,EAAArB,EAAA,yBACD1H,OAAAwC,OAAAI,QAAA,WAAAoG,EAAA7I,KAAA,MAAAiB,oBACA5D,EAAAA,YAAAI,EAAA,kBAAA2B,GAAA,QA+GS,sBAAoB,SAAAJ,GAC3BA,EAAAwG,+CAECqC,EAAAA,SAASiB,KAATrL,EAAAuD,MAAAzC,KAAA,UAjrBuCc,GAAAA,QAAA,0BAAA,SAAAL,GAAAA,EA+jB1CwG,iBASA,IAAAuD,EAAAtL,EAAA,+BAAAkG,MAsEDiF,EAAAnL,EA0Cc,0BA9GZ6J,EAAAA,OAEAA,EAAAA,KAAAA,mBAAAA,CACA0B,kBAAAD,IAiHAC,KAAAA,SAAYC,GA/GbpG,EAAAqG,UA+DDN,EAoDClD,OAEC1G,SAAMwG,YApsBmCoB,KAAA,SAAAxG,sCAwlB1C3C,GAAAA,QAAAA,4BAAmCiD,SAAnCjD,GACAuB,EAAAwG,iBACA,IAAA2D,EAAAC,EAAAA,6BAEDJ,EAAAK,EAAAA,yBAmHEF,EAAIG,IAAAA,wCAGJN,EAAIO,SACH1G,EAAAqG,YAAA,UAntBwCM,GAAAA,SAAAA,yBAAA,SAAAxK,GAAAA,EAktBzCwG,iBAhHD/H,EAAA,wBAAAwB,QAAA,SAGAwI,IArmB0C2B,EAAAI,EAwmB1CC,EAAAA,EAAAA,MAAAA,MA2FwDC,EA8BvDjM,EAAAuD,MAAA2I,QAAA,MAAA3J,KAAA,kJAlHF2E,EAVI,CAAA,QAAA,gBAAA,aAAA,iBAAA,yBAAA,sBAAA,iBAgIeiF,SAAAC,IAvHnB7F,EAAAA,YACAW,SAHD,KAAArG,IAAA,IAAAuL,EAAAC,QAAA,YAMCJ,EAAAA,kBACAA,oBAIAJ,EATAtF,UAUA,WAKApF,EAAAA,YAAAA,YAEAgJ,oBAAAA,GAAAA,cAAAA,GAEAwB,EAAArI,KAAA,SAAAyB,GACAmC,IAAAA,EAAAA,MAAAA,SAYAlH,EAgHCuD,MAAA1C,SAAA,YACCc,EAAYS,KAAA2J,GAvHdxF,EAAAA,KAAAA,UAAAA,KAAAA,GACA1B,EAAO4F,KAAP5H,UAAiByJ,IAAAA,EAAAA,MAAAA,KAAjBzH,eAKA0H,GAAAA,QAYChK,wBAAA0F,WAEC1G,OAAAA,QAAAA,EAAAA,KAAAA,qBAdFI,GAiBGhC,SAjBH,SAAA,WAkBGgD,IAAA9C,EAAAkI,EAAAA,MACD/H,EAnBFH,EAoBC2M,MApBD3H,EAAAA,EAqBK4H,QAAAA,MAGH,YAAAC,GAsHA1M,EAAEuC,KAAF,oBAAA0F,wCAEI,cAAEyE,GAlHN9M,EAAAA,KAAAA,oBACC+M,OAEAJ,EAAAhK,KAAA,kBAAA0F,QAqHF,WAAAyE,IAtJDH,EAmCInC,KAAAA,oBAAAnC,OACAsE,EAAAhK,KAAA,kBAAA0F,UAGDtG,GAAA,QATD,UASC,SATDgB,GA9BF3C,EAAAA,iBA4CEA,EAAAuD,MAAAiJ,QAAA,MAAAzB,SACAlG,EACA6G,yBACAH,GAAAA,SAAAA,gBAAAA,8BAMA5J,EAAAA,MAAAA,SACAJ,EAAAA,qBAAMwG,OAANxG,KAAA,gFAAAA,OAAAA,EAAAA,KAAAA,SAAAA,WAoHEqL,GAAAA,SAAM,cAAEA,SAAAA,EAAAA,GAER5M,EAAAuD,MAAAsJ,WA9GF5J,EAAAA,MAAAA,SACA2F,EAAAA,qBAAI+C,OAAAA,KAAe,gFAAA/H,OAAAzB,GAAAA,EAAA2K,KAAAjK,EAAAqC,KAAA4H,KAAAjK,EAAAqC,KAAAuC,SAAA,WAEnB9F,GAAA,SAAIkK,aAFJ,WAmHG,IAAAe,EAND5M,EAMOuD,MAAA2C,MA9GTjD,EAAAjD,EAAA,gBAEC6L,SAAAA,GAEA5I,EAAAA,OAAMgF,IAAN,QAAA,cAAA7F,KAAAS,EAAAqC,KAAA6H,eAEAlI,EAAAA,KAAA,kBAAA,CACAgH,YAnBD7L,EAAAA,MAoBC+L,OAAAA,IACA9I,KAAAA,SAAA4E,GAEAgE,WAAAA,GAgHDlJ,EAAEoF,IAAAA,QAAF,WAAA3F,KAAAS,EAAAqC,KAAA8H,gBACAhN,WAAE,WA5GF2L,EAAAA,QA4GA,+DAlGGM,KACAA,SAAAA,GADAA,EAEA7F,OAFA6F,EAGD9G,UAPDxC,MAYAyD,EAAAA,SAEAjB,GAAAA,QAAAA,4BAAA,SAAAxC,GACA+C,EAAAA,oDAEAA,MAAAA,MAEA/D,GAAA,SAAA,YAAA,SAAAJ,sBA7GHgF,IAAAA,EAqHCvG,EAAAwF,MAAAA,MACC7D,EAAG3B,EAAA,aACHJ,EAAIC,EAAAA,iBAAJ6M,EACCA,EADD,uBAIAO,EAAAA,KAAAA,oFAAQC,EAAAA,KAAAA,aAAAA,SAJR/H,EAMK5C,KAAAA,YAAK1B,SAAA,aACT4F,EAAAA,UAAAA,GAEA8F,EAAAA,SAAIhK,KAAKF,YATVxB,SAAA,aAUCsE,EAAA5C,KAAA,gCAAAsD,KAAA,IAGAY,EAAAqE,eAAAlI,GApIH2D,EAAAA,mBAsICD,EAAAF,EAAA0E,EAAAoC,IAECvK,EAAAA,KAAEoF,6BAAF,CACA/H,KAAAA,MACA6E,KAAAA,CAFAyG,MAIA3J,EAAG2J,MACHR,SAAAA,sBAIC9K,EAAEkN,GACApD,EAEFvD,EAAAf,mBAAAL,EAAAO,EAAAC,KAEF3F,KAAAA,EAAAqC,WAKCrC,EAAA4C,eAAAsK,GACClN,EA5JHsG,uBAAAF,EAAA0E,EAAAoC,gCAkKEhF,YAAI0E,EAAAA,MAAJ5M,SAAAkN,IAgGGvF,KAAA,SAAAhC,GA7FHmF,EAAUzI,GA7BVM,EA8BC4D,EAAAD,uBAAAF,EAAAT,GAGCuC,SAAAA,IAD8BtI,EAAAA,qBAGvBc,WAAoB,YAC3BwH,EAAAA,kCAD2BpH,KAAA,WAAA,YAG1BmC,EAAAA,qBAAO0D,WAAa,YAHM3G,EAHG,gCAAAc,KAAA,WAAA,aAY7BmC,0BAAkBiK,8DAEnBC,KAAAA,EAAAA,aAGAxL,GAAA,SAAA,yBAAA,WACD,IACAsB,EAAAA,EAAAA,MACArD,EAAAqJ,KAAA,qBAAA,CACDf,YACGlI,EA9LLsL,MA6LE8B,SAEErF,EAAAA,MAFF9E,OAGAjD,EAAEH,GAAAwN,QAAe7L,EAHjB,MAQAD,EAAAA,GAAAA,GAAMwG,SAANxG,sDAAAA,WA6FCgL,IAAAA,EAAwBzC,EAAAA,4BAzFzB,MAAAyC,EAAAA,kCAAArG,OAAA,MAAAlG,EAAA,uCAAAkG,MAAAqG,EAECnG,OAGD+G,EAAAlF,SA4FAtG,GAAA,SAAY,aAAc,WAA1B,IAAA9B,EAxFA6F,EAAAA,MAwFAgH,EAGCY,EAAAA,MAHDf,EAtFA7G,EAAAA,QAASsC,MA6FA9C,YAATwH,GAvFAH,EAAAhK,KAAA+K,YAAI7G,OACHF,EAAAA,KAAAA,YAAUhE,IAACiD,IACX8H,EAAAA,KAAAA,eAAAxD,SAEC4C,EAAAA,KAAAA,YAAMa,oCAELjC,EAAAA,KAAAA,eAAAA,IAAAA,OADK3J,GAAA,SAAA,8BAAA,uCAKN8E,EAAAA,EAAAA,KAAAA,0CAEA5B,EAAEsE,EAAAA,KAAY9G,YAlC2BmL,EAAAA,EAAAA,aAkC3BnL,MA2FboL,GAAAA,EAAAA,KAAIC,gBAAgBC,eAAWC,EAAA1H,QAAA,YAAAwG,EAAAxG,OAAArB,EAAA/C,SAAAmL,EAAApK,EAAAqC,KAAAwI,gBAAAE,EAAA1H,SAvFlC,GAAyB,IAAzBoH,EAAIxC,KAAAA,oBAAqBtH,OAAA,CACxB+C,EAAAA,KAAAA,oBAAWD,SADZoG,EAAAA,OAEO,sGAELxE,EAAAA,OAAAA,gLADMe,OAAAA,EAAAA,WAAAA,gBAGJtB,GAHIsB,EAAAA,OAAAA,8DAQN4E,IAAAA,EAAAA,EAAAhM,KAAAA,yBAEC7B,EAAAA,UAAAA,EAAE,CACFA,SAdH,EAsGK6N,YAAGhM,EAAAA,KAAAA,gBArFL7B,KAAAA,SAAAA,EAAAA,GACAA,EAgBFiD,EAAAA,GAtCeZ,EAAdyL,KAAA,wBAAA,CA8GApB,KAAA,MAnCFvK,KAoCO,CArFL+F,YAAIhC,EAAJoF,MACCtL,OAAAA,wBACAsN,SAAAA,KAEF3F,KAAA+E,SAAA/G,GApQHkI,EAsQCP,EAAA3H,GAEC2H,EAAA/K,KAAA,YAAAwI,WACAnL,KAAAA,EAAAA,mBAUA,qBAAAmO,EAAAA,OAAA,IAAAT,EAAA/K,KAAA,oBAAAiB,SACC2J,EAEAA,KAAAA,QAAAA,wHACA,YAAAT,EAAAxG,OAPHoH,EASK/K,KATL,oBAS6B0F,UAE3BtG,GAAA,SAEC4K,sBAAWC,SAAAA,GAqFTxM,IAAAA,EAAEA,EAAA,aAAAkG,MAnFL+G,EAJAjN,EAII0M,aAAIxG,MACPqG,EAAAA,EAAAA,gBACAA,EAAAA,EAAAA,cAEAwB,KAAAA,GAAMjE,EAANhI,SAAAmL,EAAApK,EAAAqC,KAAA8I,sBACAzB,EAAAA,kCAMD0B,QAAAA,GAtaA,QAsaAA,GAtaA,QAAAvB,GA6aAqB,EAAA9F,OAA8BrF,EAAAA,OAC7B,QAAAsL,EACCZ,EAAAA,0BAAAA,KAAAA,WAAAA,uBA/aFtN,EAAA,2BAAAF,KAAA,WAAA,aAAA,QAAA4M,IAkbEY,EAAAA,OAmFD7M,EAAAA,WA/EET,QAAA8C,UAEDqL,IAAAA,EAFC,WAqFFhM,SAAAA,EAAAA,EAAAA,EAAAA,GArFEiM,gBAAA7K,KAAA0K,GAtbH1K,KAAA2K,oBAAAG,EAAApL,EAAAqL,UA6bkChP,aAAA2O,EAAA,CAAA,kBAAAxF,MAAA,WAAA,IAAAtG,EAAAmM,CAC9B7N,OAAA0B,0CACCvC,MAAAA,aAAAA,KAAAA,OAECuC,EAAAA,KAAAA,CACC+F,OAAAA,OACAzH,IAAAA,aAAAA,aALH0B,KAAAA,MASEN,CACAgM,IAAAA,sBACAP,MAAAA,SAAAA,EAAAA,EAAAA,GACA,IAAAiB,EAAA1G,KAEDgG,EAAAA,EAFCtE,UAEDsE,aAAAA,IAHCP,GAAAA,EAID1L,EAAA,EAAAA,UAAAiG,OAJCyF,OAID9D,EACDrH,EAAA,CApBuB1B,OAAA,uCAOf6K,MAAAkD,aAAA1L,KAAAwI,MAgBX+C,MAAAA,EAjdDpL,OAAAA,gBAAAjD,EAAA8C,KAAA,eAodEwK,IAAAA,aAAAA,aAmFHnL,KAAIkM,EAAJI,QAjFGH,SAAInM,GACHmL,EAAAA,QACAiB,EAAAN,aAxdHrM,QAAA8M,IAAA7G,YAsbG","file":"woo-feed-admin.min.js","sourcesContent":["// noinspection JSUnresolvedletiable\r\n/**!\r\n * WooFeed Scripts\r\n * @version 3.3.6\r\n * @package WooFeed\r\n * @copyright 2020 WebAppick\r\n *\r\n */\r\n/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\r\n// noinspection JSUnresolvedVariable\r\n(function($, window, document, wpAjax, opts) {\r\n\t\"use strict\";\r\n\t/**\r\n\t * All of the code for your admin-facing JavaScript source\r\n\t * should reside in this file.\r\n\t *\r\n\t * Note: It has been assumed you will write jQuery code here, so the\r\n\t * $ function reference has been prepared for usage within the scope\r\n\t * of this function.\r\n\t *\r\n\t * This enables you to define handlers, for when the DOM is ready:\r\n\t */\r\n\r\n\t/**\r\n\t * disable element utility\r\n\t *\r\n\t * @since 3.1.9\r\n\t *\r\n\t * @param {*} status\r\n\t * @returns {jQuery|HTMLElement}\r\n\t */\r\n\t$.fn.disabled = function(status) {\r\n\t\t$(this).each(function() {\r\n\t\t\tlet self = $(this),\r\n\t\t\t\tprop = 'disabled';\r\n\r\n\t\t\tif (typeof self.prop(prop) !== 'undefined') {\r\n\t\t\t\tself.prop(prop, status === void 0 || status === true);\r\n\t\t\t} else {\r\n\t\t\t\t!0 === status ? self.addClass(prop) : self.removeClass(prop);\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn self; // method chaining\r\n\t};\r\n\t\r\n\t/**\r\n\t * Check if a HTMLElement or jQuery is disabled\r\n\t */\r\n\t$.fn.isDisabled = function() {\r\n\t\tlet self = $(this),\r\n\t\t\tprop = 'disabled';\r\n\t\treturn typeof self.prop(prop) !== 'undefined' ? self.prop(prop) : self.hasClass(prop);\r\n\t};\r\n\t\r\n\t/**\r\n\t * Clear Tooltip for clip board js\r\n\t * @param {Object} event\r\n\t */\r\n\tconst clearTooltip = (event) => {\r\n\t\t$(event.currentTarget).removeClass( (index, className) => (className.match(/\\btooltipped-\\S+/g) || []).join(' ') ).removeClass('tooltipped').removeAttr('aria-label');\r\n\t};\r\n\r\n\tconst showTooltip = (elem, msg) => {\r\n\t\t$(elem).addClass('tooltipped tooltipped-s').attr('aria-label', msg);\r\n\t};\r\n\r\n\tconst fallbackMessage = (action) =>{\r\n\t\tlet actionMsg,\r\n\t\t\tactionKey = action === 'cut' ? 'X' : 'C';\r\n\r\n\t\tif (/iPhone|iPad/i.test(navigator.userAgent)) {\r\n\t\t\tactionMsg = 'No support :(';\r\n\t\t} else if (/Mac/i.test(navigator.userAgent)) {\r\n\t\t\tactionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\r\n\t\t} else {\r\n\t\t\tactionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\r\n\t\t}\r\n\r\n\t\treturn actionMsg;\r\n\t};\r\n\t\r\n\t/**\r\n\t * Alias of jQuery.extend()\r\n\t * @param {Object} _default\r\n\t * @param {Object} _args\r\n\t */\r\n\tconst extend = (_default, _args) => $.extend(true, {}, _default, _args);\r\n\t\r\n\tlet $copyBtn,\r\n\t\tclipboard,\r\n\t\tgoogleCategories,\r\n\t\thelper = {\r\n\t\t\tin_array: (needle, haystack) => {\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn haystack.indexOf(needle) !== -1;\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tselectize_render_item: (data, escape) => `<div class=\"item wapk-selectize-item\">${ escape(data.text)}</div>`, // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found,\r\n\t\t\tajax_fail: e => {\r\n\t\t\t\tconsole.warn(e);\r\n\t\t\t\talert(e.hasOwnProperty('statusText') && e.hasOwnProperty('status') ? opts.ajax.error + '\\n' + e.statusText + ' (' + e.status + ')' : e);\r\n\t\t\t},\r\n\t\t\t/**\r\n\t\t\t * Initialize Sortable\r\n\t\t\t * @param {jQuery|HTMLElement} el\r\n\t\t\t * @param {object} config\r\n\t\t\t * @param {int|boolean} column\r\n\t\t\t * @param {function} onDrop\r\n\t\t\t * @return {jQuery|HTMLElement}\r\n\t\t\t */\r\n\t\t\tsortable: (el, config, column, onDrop) => {\r\n\t\t\t\treturn (el || $('.sorted_table')).each(function() {\r\n\t\t\t\t\tlet self = $(this),\r\n\t\t\t\t\t\tcolumn_count = self.find('tbody > tr:eq(0) > td').length || column || 9;\r\n\t\t\t\t\tself.wf_sortable(extend({\r\n\t\t\t\t\t\tcontainerSelector: 'table',\r\n\t\t\t\t\t\titemPath: '> tbody',\r\n\t\t\t\t\t\titemSelector: 'tr',\r\n\t\t\t\t\t\thandle: 'i.wf_sortedtable',\r\n\t\t\t\t\t\tplaceholder: `<tr class=\"placeholder\"><td colspan=\"${column_count}\"></td></tr>`,\r\n\t\t\t\t\t\tonDrop: ($item, container, _super, event) => {\r\n\t\t\t\t\t\t\t$item.removeClass(container.group.options.draggedClass).removeAttr('style');\r\n\t\t\t\t\t\t\t$(\"body\").removeClass(container.group.options.bodyClass);\r\n\t\t\t\t\t\t\tif ( onDrop && 'function' === typeof( onDrop ) ) {\r\n\t\t\t\t\t\t\t\tonDrop( $item, container, _super, event );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t}, config));\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tselectize: (el, config) => {\r\n\t\t\t\treturn (el || $('select.selectize')).not('.selectized').each(function() {\r\n\t\t\t\t\tlet self = $(this);\r\n\t\t\t\t\tself.selectize(extend({\r\n\t\t\t\t\t\tcreate: self.data('create') || false,\r\n\t\t\t\t\t\tplugins: self.data('plugins') ? self.data('plugins').split(',').map(function(s) {\r\n\t\t\t\t\t\t\treturn s.trim();\r\n\t\t\t\t\t\t}) : [],\r\n\t\t\t\t\t\t//['remove_button'],\r\n\t\t\t\t\t\trender: {\r\n\t\t\t\t\t\t\titem: helper.selectize_render_item\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, config));\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\tfancySelect: (el, config) => {\r\n\t\t\t\treturn (el || $('select.fancySelect')).not('.FancySelectInit').each(function() {\r\n\t\t\t\t\tlet self = $(this);\r\n\t\t\t\t\tself.fancySelect(extend({\r\n\t\t\t\t\t\tmaxItemShow: 3\r\n\t\t\t\t\t}, config));\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\treindex_config_table: () => {\r\n\t\t\t\t$('#table-1').find('tbody tr').each( ( x, el ) => {\r\n\t\t\t\t\t$(el).find('[name]').each( ( x1, el ) => {\r\n\t\t\t\t\t\t$(el).attr('name', $(el).attr('name').replace(/(\\[\\d\\])/g, `[${x}]`));\r\n\t\t\t\t\t} );\r\n\t\t\t\t} );\r\n\t\t\t},\r\n\t\t\tcommon: () => {\r\n\t\t\t\thelper.sortable( $('.sorted_table'), {}, 9, helper.reindex_config_table );\r\n\t\t\t\thelper.selectize();\r\n\t\t\t\thelper.fancySelect($('.outputType'));\r\n\t\t\t}\r\n\t\t},\r\n\t\t// helper functions\r\n\t\tfeedEditor = {\r\n\t\t\t/**\r\n\t\t\t * The Editor Form Elem.\r\n\t\t\t * @type {jQuery|HTMLElement}\r\n\t\t\t */\r\n\t\t\tform: null,\r\n\r\n\t\t\t/**\r\n\t\t\t * Initialize The Feed Editor {Tabs...}\r\n\t\t\t * @returns {void}\r\n\t\t\t */\r\n\t\t\tinit: function () {\r\n\t\t\t\tlet self = this;\r\n\t\t\t\tself.form = $('.generateFeed');\r\n\t\t\t\tif (!self.form.length) return;\r\n\t\t\t\thelper.common();\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t$(document).trigger(new jQuery.Event('feedEditor.init', {\r\n\t\t\t\t\ttarget: this.form\r\n\t\t\t\t}));\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Render Merchant info ajax response and handle allowed feed type for selected merchant\r\n\t\t\t * @param {jQuery|HTMLElement} merchantInfo jQuery dom object\r\n\t\t\t * @param {jQuery|HTMLElement} feedType jQuery dom object\r\n\t\t\t * @param {Object} r ajax response object\r\n\t\t\t */\r\n\t\t\trenderMerchantInfo: function (merchantInfo, feedType, r) {\r\n\t\t\t\tfor (let k in r) {\r\n\t\t\t\t\tif (r.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tmerchantInfo.find('.merchant-info-section.' + k + ' .data').html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\r\n\r\n\t\t\t\t\t\tif ('feed_file_type' === k) {\r\n\t\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\t\tlet types = r[k].split(\",\").map(function(t) {\r\n\t\t\t\t\t\t\t\t\treturn t.trim().toLowerCase();\r\n\t\t\t\t\t\t\t\t}).filter(function(t) {\r\n\t\t\t\t\t\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t\t\t\t\t\treturn t !== '' && t !== opts.na.toLowerCase();\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tif (types.length) {\r\n\t\t\t\t\t\t\t\t\tfeedType.find('option').removeAttr('selected').each(function() {\r\n\t\t\t\t\t\t\t\t\t\tlet opt = $(this);\r\n\t\t\t\t\t\t\t\t\t\topt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tif (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\r\n\t\t\t\t\t\t\t\t} else feedType.find('option').disabled(!1);\r\n\t\t\t\t\t\t\t})();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tmerchantInfo.find('.spinner').removeClass('is-active');\r\n\t\t\t\tfeedType.disabled(!1);\r\n\t\t\t\tfeedType.trigger('change');\r\n\t\t\t\tfeedType.parent().find('.spinner').removeClass('is-active');\r\n\t\t\t},\r\n\r\n\t\t\t/**\r\n\t\t\t * Render Feed Template Tabs and settings while creating new feed.\r\n\t\t\t * @param {jQuery|HTMLElement} feedForm feed from query dom object\r\n\t\t\t * @param {object} r merchant template ajax response object\r\n\t\t\t */\r\n\t\t\trenderMerchantTemplate: function (feedForm, r) {\r\n\t\t\t\tlet _loop = function _loop(k) {\r\n\t\t\t\t\tif (r.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tif ('tabs' === k) {\r\n\t\t\t\t\t\t\t// noinspection JSUnresolvedFunction\r\n\t\t\t\t\t\t\tfeedForm.html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlet contentSettings = $('[name=\"' + k + '\"]');\r\n\r\n\t\t\t\t\t\t\tif (contentSettings.length) {\r\n\t\t\t\t\t\t\t\tcontentSettings.each(function() {\r\n\t\t\t\t\t\t\t\t\tlet elem = $(this);\r\n\r\n\t\t\t\t\t\t\t\t\tif (elem.is('select')) {\r\n\t\t\t\t\t\t\t\t\t\telem.find('[value=\"' + r[k] + '\"]').prop('selected', true);\r\n\t\t\t\t\t\t\t\t\t} else if ((elem.is('[type=checkbox]') || elem.is('[type=radio]')) && elem.val() === r[k]) {\r\n\t\t\t\t\t\t\t\t\t\telem.prop('checked', true);\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\telem.val(r[k]); // type=text\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}).trigger('change');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tfor (let k in r) {\r\n\t\t\t\t\t_loop(k);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfeedEditor.init();\r\n\t\t\t}\r\n\t\t},\r\n\t\t// Feed Editor Table\r\n\t\tmerchantInfoCache = [],\r\n\t\tmerchantTemplateCache = [],\r\n\t\ttooltip = () => {\r\n\t\t\t// Tooltip only Text\r\n\t\t\t$('.wfmasterTooltip')\r\n\t\t\t\t.hover(function () {\r\n\t\t\t\t\t// Hover over code\r\n\t\t\t\t\tlet self = $(this), title = self.attr('wftitle');\r\n\t\t\t\t\tself.data('tipText', title).removeAttr('wftitle');\r\n\t\t\t\t\t$('<p class=\"wftooltip\"></p>').text(title).appendTo('body').fadeIn('slow');\r\n\t\t\t\t}, function () {\r\n\t\t\t\t\t// Hover out code\r\n\t\t\t\t\tlet self = $(this);\r\n\t\t\t\t\tself.attr('wftitle', self.data('tipText'));\r\n\t\t\t\t\t$('.wftooltip').remove();\r\n\t\t\t\t})\r\n\t\t\t\t.mousemove(function (e) {\r\n\t\t\t\t\t$('.wftooltip').css({\r\n\t\t\t\t\t\ttop: e.pageY + 10,\r\n\t\t\t\t\t\tleft: e.pageX + 20\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t},\r\n\t\tclip = () => {\r\n\t\t\t$copyBtn = $('.toClipboard');\r\n\t\t\tif (!ClipboardJS.isSupported() || /iPhone|iPad/i.test(navigator.userAgent)) {\r\n\t\t\t\t$copyBtn.find('img').hide(0);\r\n\t\t\t} else {\r\n\t\t\t\t$copyBtn.each(function() {\r\n\t\t\t\t\t$(this).on('mouseleave', clearTooltip).on('blur', clearTooltip);\r\n\t\t\t\t});\r\n\t\t\t\tclipboard = new ClipboardJS('.toClipboard');\r\n\t\t\t\tclipboard.on('error', function(event) {\r\n\t\t\t\t\tshowTooltip(event.trigger, fallbackMessage(event.action));\r\n\t\t\t\t}).on('success', function(event) {\r\n\t\t\t\t\tshowTooltip(event.trigger, 'Copied!');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\r\n\t/**\r\n\t * Feed Generator Module\r\n\t */\r\n\tclass feedGenerator {\r\n\t\t\r\n\t\t/**\r\n\t\t * Constructor\r\n\t\t * @constructor\r\n\t\t */\r\n\t\tconstructor() {\r\n\t\t\tthis._feed = opts.generator.feed; // wf_config+xxxx\r\n\t\t\tthis._limit = opts.generator.limit;\r\n\t\t\tthis._progress = 0;\r\n\t\t\tthis._timer = null;\r\n\t\t\tthis._color = false;\r\n\t\t\t// batch info\r\n\t\t\tthis._total_batch = 0;\r\n\t\t\tthis._current_batch = 0;\r\n\t\t\tthis._product_ids = [];\r\n\t\t\tthis._progress_per_batch = 0;\r\n\t\t\tthis._refresh = true;\r\n\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\tthis._regenerate = opts.generator.regenerate;\r\n\t\t\twindow.isRegenerating = false;\r\n\t\t\tthis._all_btn = $('.wpf_regenerate');\r\n\t\t\tthis._current_btn = $(`#${this._feed.replace( 'wf_config', 'wf_feed_' )}`);\r\n\t\t\tthis._current_btn_label = '';\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Init Hooks (Event)\r\n\t\t * @return {feedGenerator}\r\n\t\t */\r\n\t\tinit() {\r\n\t\t\tlet self = this;\r\n\t\t\tif ( '' !== this._feed && this._regenerate && false === window.isRegenerating ) {\r\n\t\t\t\tthis.generate();\r\n\t\t\t}\r\n\r\n\t\t\t//thickbox body add feed plugin class to make it unique and custom style\r\n\t\t\tlet current_page_query = window.location.search;\r\n\t\t\tlet params = new URLSearchParams(current_page_query);\r\n\t\t\tlet page_name = params.get(\"page\");\r\n\t\t\tif( \"webappick-manage-feeds\" === page_name ) {\r\n\t\t\t\t$('body').addClass('woo-import-popup-body');\r\n\t\t\t}\r\n\r\n\t\t\t$(document).on('click', '.woo-feed-campaign-close-button', function(event) {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t$(this).parent('.woo-feed-promotion').hide();\r\n\t\t\t\tlet condition = $(this).data('condition');\r\n\t\t\t\tif(1 === condition) {\r\n\t\t\t\t\twpAjax.post( 'woo_feed_hide_promotion', {\r\n\t\t\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\t\t\tcondition: condition,\r\n\t\t\t\t\t} ).then( response => {\r\n\t\t\t\t\t\tself._log( response );\r\n\t\t\t\t\t} ).fail( error => {\r\n\t\t\t\t\t\tself._log( error );\r\n\t\t\t\t\t\tself._updateProgressStatus( error.message );\r\n\t\t\t\t\t\tself._color = 'red';\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$(document).on('click', '.wpf_regenerate', function(event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tself._current_btn = $( this );\r\n\t\t\t\tif( self._current_btn.hasClass('disabled') || window.isRegenerating === true ) return;\r\n\t\t\t\tself._feed = self._current_btn.attr('id').replace( 'wf_feed_', 'wf_config' );\r\n\t\t\t\tif( '' !== self._feed ) {\r\n\t\t\t\t\tself.generate();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t_block_button() {\r\n\t\t\tif ( this._all_btn.length ) {\r\n\t\t\t\tthis._all_btn.addClass('disabled');\r\n\t\t\t}\r\n\t\t\tif ( this._current_btn.length ) {\r\n\t\t\t\tthis._current_btn.find('span').addClass('wpf_spin reverse_spin');\r\n\t\t\t\tthis._current_btn_label = this._current_btn.attr('title');\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\tthis._current_btn.attr( 'aria-label', opts.regenerate ).attr( 'title', opts.regenerate );\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t_unblock_button() {\r\n\t\t\tif ( this._all_btn.length ) {\r\n\t\t\t\tthis._all_btn.removeClass('disabled');\r\n\t\t\t}\r\n\t\t\tif ( this._current_btn.length ) {\r\n\t\t\t\tthis._current_btn.find('span').removeClass('wpf_spin');\r\n\t\t\t\tthis._current_btn.find('span').removeClass('reverse_spin');\r\n\t\t\t\tthis._current_btn.attr( 'aria-label', this._current_btn_label ).attr( 'title', this._current_btn_label );\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Generate Feed\r\n\t\t * @return void\r\n\t\t */\r\n\t\tgenerate() {\r\n\t\t\tlet self = this;\r\n\t\t\twindow.isRegenerating = true;\r\n\t\t\tthis._block_button();\r\n\t\t\tthis._resetProgressBar();\r\n\t\t\tthis._progressBarActive();\r\n\t\t\tthis._log( 'Counting Total Products' );\r\n\t\t\tthis._updateProgressStatus( 'Fetching products.' );\r\n\t\t\tthis._get_product_ids().then( response => {\r\n\t\t\t\tthis._progress = 10;\r\n\t\t\t\tself._log( {response} );\r\n\t\t\t\tif(response.success) {\r\n\t\t\t\t\tself._log( `Total ${response.total} Products found.` );\r\n\t\t\t\t\tself._product_ids = response.product;\r\n\t\t\t\t\tself._total_batch = this._product_ids.length;\r\n\t\t\t\t\tself._current_batch = 0;\r\n\t\t\t\t\tself._progress_per_batch = ( 90 - this._progress ) / this._total_batch;\r\n\t\t\t\t\tself._process_batch();\r\n\t\t\t\t\tself._updateProgressStatus( 'Processing Products...' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself._updateProgressStatus( response.data.message );\r\n\t\t\t\t}\r\n\t\t\t}).fail( error => {\r\n\t\t\t\tself._log( error );\r\n\t\t\t\tself._updateProgressStatus( error.message );\r\n\t\t\t\tself._color = 'red';\r\n\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\tself._stopProgressBar();\r\n\t\t\t\t\tself._unblock_button();\r\n\t\t\t\t}, 1500 );\r\n\t\t\t} );\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Get Product Ids\r\n\t\t * @returns {$.promise}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_get_product_ids() {\r\n\t\t\tthis._progress = 5;\r\n\t\t\treturn wpAjax.post( 'get_product_information', {\r\n\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\tfeed: this._feed,\r\n\t\t\t\tlimit: this._limit,\r\n\t\t\t} );\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Run the Batch\r\n\t\t * @private\r\n\t\t */\r\n\t\t_process_batch() {\r\n\t\t\tlet self = this;\r\n\t\t\tlet status = `Processing Batch ${this._current_batch+1} of ${this._total_batch}`;\r\n\t\t\tthis._updateProgressStatus( status );\r\n\t\t\tthis._log( status );\r\n\t\t\twpAjax.post( 'make_batch_feed', {\r\n\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\tfeed: this._feed,\r\n\t\t\t\tproducts: this._product_ids[this._current_batch],\r\n\t\t\t\tloop: this._current_batch,\r\n\t\t\t} ).then( response => {\r\n\t\t\t\tself._current_batch++;\r\n\t\t\t\tself._log( `Batch ${self._current_batch} Completed` );\r\n\t\t\t\tself._log( response );\r\n\t\t\t\tif ( self._current_batch < self._total_batch ) {\r\n\t\t\t\t\tself._process_batch();\r\n\t\t\t\t\tself._progress += self._progress_per_batch;\r\n\t\t\t\t}\r\n\t\t\t\tif ( self._current_batch === self._total_batch ) {\r\n\t\t\t\t\tself._save_feed_file();\r\n\t\t\t\t}\r\n\t\t\t} ).fail( error => {\r\n\t\t\t\tself._log( error );\r\n\t\t\t\tself._updateProgressStatus( error.message );\r\n\t\t\t\tself._color = 'red';\r\n\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\tself._stopProgressBar();\r\n\t\t\t\t\tself._unblock_button();\r\n\t\t\t\t}, 1500 );\r\n\t\t\t} );\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Save Feed Data from temp to feed file\r\n\t\t * @private\r\n\t\t */\r\n\t\t_save_feed_file() {\r\n\t\t\tlet self = this;\r\n\t\t\tthis._log( 'Saving feed file' );\r\n\t\t\tthis._updateProgressStatus( 'Saving feed file' );\r\n\t\t\twpAjax.post( 'save_feed_file', {\r\n\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\tfeed: this._feed,\r\n\t\t\t} ).then( response => {\r\n\t\t\t\tself._log( response );\r\n\t\t\t\tself._progress = 100;\r\n\t\t\t\tif ( self._refresh ) {\r\n\t\t\t\t\twindow.location.href = `${opts.pages.list.feed}&link=${response.url}&cat=${response.cat}`;\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\tself._stopProgressBar();\r\n\t\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\t\tself._resetProgressBar( true );\r\n\t\t\t\t\t\tself._unblock_button();\r\n\t\t\t\t\t}, 3000 );\r\n\t\t\t\t}, 2500 );\r\n\t\t\t} ).fail( error => {\r\n\t\t\t\tself._log( error );\r\n\t\t\t\tself._updateProgressStatus( error.message );\r\n\t\t\t\tself._color = 'red';\r\n\t\t\t\tsetTimeout( function(){\r\n\t\t\t\t\tself._stopProgressBar();\r\n\t\t\t\t\tself._unblock_button();\r\n\t\t\t\t}, 1500 );\r\n\t\t\t} );\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Console log wrapper with debug settings.\r\n\t\t * @param data\r\n\t\t * @returns {feedGenerator}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_log( data ) {\r\n\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\tif ( opts.wpf_debug ) {\r\n\t\t\t\tconsole.log( data );\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Run the progressbar refresh interval\r\n\t\t * @param {int} refreshInterval\r\n\t\t * @returns {feedGenerator}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_progressBarActive( refreshInterval = 0 ) {\r\n\t\t\tlet self = this;\r\n\t\t\tthis._toggleProgressBar( true );\r\n\t\t\tthis._timer = setInterval( function(){\r\n\t\t\t\tself._updateProgressBar();\r\n\t\t\t}, refreshInterval || 1000 );\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Stop Progressbar\r\n\t\t * @returns {feedGenerator}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_stopProgressBar() {\r\n\t\t\tclearInterval( this._timer );\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Reset Progressbar\r\n\t\t * @returns {feedGenerator}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_resetProgressBar( update ) {\r\n\t\t\tthis._toggleProgressBar( false );\r\n\t\t\tthis._updateProgressStatus( '' );\r\n\t\t\tclearInterval( this._timer );\r\n\t\t\tthis._color = false;\r\n\t\t\tthis._timer = null;\r\n\t\t\tthis._progress = 0;\r\n\t\t\tif ( update ) {\r\n\t\t\t\tthis._updateProgressBar();\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Show hide the progress bar el\r\n\t\t * @param status\r\n\t\t * @returns {feedGenerator}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_toggleProgressBar( status ) {\r\n\t\t\tlet table = $('#feed_progress_table');\r\n\t\t\tif ( status ) {\r\n\t\t\t\ttable.show();\r\n\t\t\t} else {\r\n\t\t\t\ttable.hide();\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Update Progress bar text status\r\n\t\t * @param {string} status\r\n\t\t * @returns {feedGenerator}\r\n\t\t * @private\r\n\t\t */\r\n\t\t_updateProgressStatus( status ) {\r\n\t\t\t$( '.feed-progress-status' ).text( status );\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\t\r\n\t\t/**\r\n\t\t * Update Progress Data\r\n\t\t * hooked with setInterval\r\n\t\t * @private\r\n\t\t */\r\n\t\t_updateProgressBar() {\r\n\t\t\tlet percentage = $( '.feed-progress-percentage' ),\r\n\t\t\t\tbar = $( '.feed-progress-bar-fill' ),\r\n\t\t\t\t_progress = `${Math.round( this._progress )}%`;\r\n\t\t\tbar.css( {\r\n\t\t\t\twidth: _progress,\r\n\t\t\t} );\r\n\t\t\tpercentage.text( _progress );\r\n\t\t}\r\n\t}\r\n\t// expose to the global scope\r\n\twindow.wf = {\r\n\t\thelper: helper,\r\n\t\tfeedEditor: feedEditor,\r\n\t\tgenerator: feedGenerator,\r\n\t};\r\n\t$(window).on('load', function() {\r\n\t\t// Template loading ui conflict\r\n\t\tif ($(location).attr(\"href\").match(/webappick.*feed/g) !== null) {\r\n\t\t\t$('#wpbody-content').addClass('woofeed-body-content');\r\n\t\t}\r\n\r\n\t\t// on edit page show item wrapper dropdown\r\n\t\tlet current_page_url_query = window.location.search;\r\n\t\tlet urlParams = new URLSearchParams(current_page_url_query);\r\n\t\tlet page_action = urlParams.get('action');\r\n\r\n\t\t// ClipBoardJS\r\n\t\tclip();\r\n\t\t// postbox toggle\r\n\t\tpostboxes.add_postbox_toggles(pagenow);\r\n\t\t// initialize generator\r\n\t\tlet generator = new feedGenerator();\r\n\t\tgenerator.init();\r\n\t\t// noinspection JSUnresolvedVariable\r\n\t\tif( '' !== opts.generator.feed && opts.generator.regenerate ) {\r\n\t\t\r\n\t\t}\r\n\t\t// initialize editor\r\n\t\tfeedEditor.init();\r\n\t\thelper.common(); // Generate Feed Add Table Row\r\n\t\ttooltip();\r\n\t\t// validate feed editor\r\n\t\t$(\".generateFeed\").validate();\r\n\t\t// document events\r\n\t\t$(document)\r\n\t\t\t.on('click', '[data-toggle_slide]', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$($(this).data('toggle_slide')).slideToggle('fast');\r\n\t\t\t})\r\n\t\t\t// XML Feed Wrapper\r\n\t\t\t.on('click', '#wf_newRow', function () {\r\n\t\t\t\tlet tbody = $('#table-1 tbody'),\r\n\t\t\t\t\ttemplate = $('#feed_config_template').text().trim().replace(/__idx__/g, tbody.find('tr').length);\r\n\t\t\t\ttbody.append(template);\r\n\t\t\t\thelper.fancySelect($('.outputType'));\r\n\t\t\t})\r\n\t\t\t// feed delete alert.\r\n\t\t\t.on('click', '.single-feed-delete', function (event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\tif (confirm(opts.form.del_confirm)) {\r\n\t\t\t\t\twindow.location.href = $(this).attr('val');\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t// clear cache data.\r\n\t\t\t.on('click', '.wf_clean_cache_wrapper', function(event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tvar nonce = $('.woo-feed-clean-cache-nonce').val();\r\n\t\t\t\tvar loader = $('.woo-feed-cache-loader');\r\n\r\n\t\t\t\t//show loader\r\n\t\t\t\tloader.show();\r\n\r\n\t\t\t\t// passed cache nonce\r\n\t\t\t\twpAjax.post('clear_cache_data', {\r\n\t\t\t\t\t_ajax_clean_nonce: nonce\r\n\t\t\t\t}).then(function (response) {\r\n\t\t\t\t\tif( response.success ) {\r\n\t\t\t\t\t\tloader.hide(); //hide loader\r\n\t\t\t\t\t\tlocation.reload();\r\n\t\t\t\t\t}\r\n\t\t\t\t}).fail(function (e) {\r\n\t\t\t\t\tconsole.log('something wrong');\r\n\t\t\t\t});\r\n\r\n\t\t\t})// Copy Status\r\n\t\t\t.on('click', '#woo-feed-copy-status-btn', function(event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tlet button = $('#woo-feed-copy-status-btn');\r\n\t\t\t\tlet status_area = $('#woo-feed-status-area');\r\n\t\t\t\tbutton.val('Copied');\r\n\t\t\t\tstatus_area.css('visibility','visible');\r\n\t\t\t\tstatus_area.select();\r\n\r\n\t\t\t\tdocument.execCommand('copy');\r\n\t\t\t})\r\n\t\t\t// feed value dropdown change.\r\n\t\t\t.on('change', '.wf_attr.wf_attributes', function(event) {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t$('.fancy-picker-picked').trigger(\"click\"); // trigger fancy select box clicked\r\n\r\n\t\t\t\t// price attributes\r\n\t\t\t\tvar price_attributes = ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax', 'shipping_cost'];\r\n\t\t\t\t// current value\r\n\t\t\t\tvar current_attribute_value = $(this).val();\r\n\t\t\t\tvar outputSelect = $(this).parents('tr').find('.outputType');\r\n\t\t\t\tvar fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');\r\n\t\t\t\tvar fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');\r\n\t\t\t\tvar selectIf, selectKey;\r\n\r\n\t\t\t\t// when any attribute is selected, pick the key\r\n\t\t\t\tif( price_attributes.includes(current_attribute_value) ) {\r\n\t\t\t\t\t// when select any price attribute\r\n\t\t\t\t\tselectIf = 'for_price';\r\n\t\t\t\t\tselectKey = \"Price\";\r\n\t\t\t\t} else if ( \"\" !== current_attribute_value && -1 !== current_attribute_value.indexOf('wf_taxo') ) {\r\n\r\n\t\t\t\t\t// when select any custom taxonomy\r\n\t\t\t\t\tselectIf = 'for_custom_taxo';\r\n\t\t\t\t\tselectKey = \"parent_if_empty\";\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\tselectIf = 'for_all';\r\n\t\t\t\t\tselectKey = 'Default';\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// remove selected class from old selected option\r\n\t\t\t\tfancyOption.removeClass('selected');\r\n\r\n\t\t\t\t// when value dropdown is selected as price or any custom taxonomy\r\n\t\t\t\tif( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {\r\n\r\n\t\t\t\t\t// update \"Option Type\" when select key matches\r\n\t\t\t\t\tfancyOption.each(function(item) {\r\n\t\t\t\t\t\tif( selectKey === $(this).text() ) {\r\n\t\t\t\t\t\t\t$(this).addClass('selected');\r\n\t\t\t\t\t\t\tfancyDataPicker.text(selectKey);\r\n\t\t\t\t\t\t\toutputSelect.find(\"option\").text(selectKey);\r\n\t\t\t\t\t\t\toutputSelect.find(\"option\").val( $(this).data('value') );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\r\n\t\t\t\t\t// update \"Option Type\" when select key matches\r\n\t\t\t\t\t// fancyOption.each(function(item) {\r\n\t\t\t\t\t// \tif( \"parent_if_empty\" !== $(this).text() && \"for_all\" === selectIf ) {\r\n\t\t\t\t\t// \t\t$(this).addClass('selected');\r\n\t\t\t\t\t// \t\tfancyDataPicker.text(selectKey);\r\n\t\t\t\t\t// \t\toutputSelect.find(\"option\").text(selectKey);\r\n\t\t\t\t\t// \t\toutputSelect.find(\"option\").val( $(this).data('value') );\r\n\t\t\t\t\t// \t}\r\n\t\t\t\t\t// });\r\n\t\t\t\t}\r\n\r\n\t\t\t})\r\n\t\t\t// bulk delete alert.\r\n\t\t\t.on('click', '#doaction, #doaction2', function () {\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\treturn confirm(opts.form.del_confirm_multi);\r\n\t\t\t})\r\n\t\t\t// Generate Feed Table Row Delete\r\n\t\t\t.on('change', '.dType', function () {\r\n\t\t\t\tlet self = $(this),\r\n\t\t\t\t\ttype = self.val(),\r\n\t\t\t\t\trow = self.closest('tr');\r\n\t\t\t\t\r\n\t\t\t\tif (type === 'pattern') {\r\n\t\t\t\t\trow.find('.value_attribute').hide();\r\n\t\t\t\t\trow.find('.value_pattern').show();\r\n\t\t\t\t} else if (type === 'attribute') {\r\n\t\t\t\t\trow.find('.value_attribute').show();\r\n\t\t\t\t\trow.find('.value_pattern').hide();\r\n\t\t\t\t} else if (type === 'remove') {\r\n\t\t\t\t\trow.find('.value_attribute').hide();\r\n\t\t\t\t\trow.find('.value_pattern').hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t// Generate Feed Form Submit\r\n\t\t\t.on('click', '.delRow', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$(this).closest('tr').remove();\r\n\t\t\t\thelper.reindex_config_table();\r\n\t\t\t})\r\n\t\t\t.on('submit', '#generateFeed', function () {\r\n\t\t\t\t// Feed Generating form validation\r\n\t\t\t\t$(this).validate();\r\n\t\t\t\t\r\n\t\t\t\tif ($(this).valid()) {\r\n\t\t\t\t\t$(\".makeFeedResponse\")\r\n\t\t\t\t\t\t.show()\r\n\t\t\t\t\t\t.html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t// Generate Update Feed Form Submit\r\n\t\t\t.on('submit', '#updatefeed', function (e, data) {\r\n\t\t\t\t// Feed Generating form validation\r\n\t\t\t\t$(this).validate();\r\n\t\t\t\t\r\n\t\t\t\tif ($(this).valid()) {\r\n\t\t\t\t\t$(\".makeFeedResponse\")\r\n\t\t\t\t\t\t.show()\r\n\t\t\t\t\t\t.html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${data && data.save ? opts.form.save : opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('change', '.ftporsftp', function () {\r\n\t\t\t\tlet server = $(this).val(),\r\n\t\t\t\t\tstatus = $('.ssh2_status');\r\n\t\t\t\t\r\n\t\t\t\tif (server === 'sftp') {\r\n\t\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t\tstatus.show().css('color', 'dodgerblue').text(opts.form.sftp_checking);\r\n\t\t\t\t\twpAjax.post('get_ssh2_status', {\r\n\t\t\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\t\t\tserver: server\r\n\t\t\t\t\t}).then(function (response) {\r\n\t\t\t\t\t\tif (response === 'exists') {\r\n\t\t\t\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t\t\t\tstatus.css('color', '#2CC185').text(opts.form.sftp_available);\r\n\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\tstatus.hide();\r\n\t\t\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t\t\t\tstatus.show().css('color', 'red').text(opts.form.sftp_warning);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).fail(function (e) {\r\n\t\t\t\t\t\tstatus.hide();\r\n\t\t\t\t\t\thelper.ajax_fail(e);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstatus.hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('click', '[name=\"save_feed_config\"]', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$('#updatefeed').trigger('submit', {\r\n\t\t\t\t\tsave: true\r\n\t\t\t\t});\r\n\t\t\t})\r\n\t\t\t.on('change', '#provider', function (event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\r\n\t\t\t\t//if (!$(this).closest('.generateFeed').hasClass('add-new')) return; // only for new feed.\r\n\r\n\t\t\t\tlet merchant = $(this).val(),\r\n\t\t\t\t\tfeedType = $(\"#feedType\"),\r\n\t\t\t\t\tfeedForm = $(\"#providerPage\"),\r\n\t\t\t\t\tmerchantInfo = $('#feed_merchant_info'); // set loading..\r\n\t\t\t\t\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\tfeedForm.html('<h3><span style=\"float:none;margin: -3px 0 0;\" class=\"spinner is-active\"></span> ' + opts.form.loading_tmpl + '</h3>'); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\r\n\t\t\t\t\r\n\t\t\t\tmerchantInfo.find('.spinner').addClass('is-active');\r\n\t\t\t\tfeedType.disabled(!0); // disable dropdown\r\n\t\t\t\t\r\n\t\t\t\tfeedType.parent().find('.spinner').addClass('is-active');\r\n\t\t\t\tmerchantInfo.find('.merchant-info-section .data').html(''); // remove previous data\r\n\t\t\t\t// Get Merchant info for selected Provider/Merchant\r\n\r\n\r\n\t\t\t\t\r\n\t\t\t\tif (merchantInfoCache.hasOwnProperty(merchant)) {\r\n\t\t\t\t\tfeedEditor.renderMerchantInfo(merchantInfo, feedType, merchantInfoCache[merchant]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twpAjax.send('woo_feed_get_merchant_info', {\r\n\t\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\tnonce: opts.nonce,\r\n\t\t\t\t\t\t\tprovider: merchant\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).then(function (r) {\r\n\t\t\t\t\t\tmerchantInfoCache[merchant] = r;\r\n\t\t\t\t\t\tfeedEditor.renderMerchantInfo(merchantInfo, feedType, r);\r\n\t\t\t\t\t}).fail(helper.ajax_fail);\r\n\t\t\t\t} // Get FeedForm For Selected Provider/Merchant\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif (merchantTemplateCache.hasOwnProperty(merchant)) {\r\n\t\t\t\t\tfeedEditor.renderMerchantTemplate(feedForm, merchantTemplateCache[merchant]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\twpAjax.post('get_feed_merchant', {\r\n\t\t\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\t\t\tmerchant: merchant\r\n\t\t\t\t\t}).then(function (r) {\r\n\t\t\t\t\t\tmerchantTemplateCache[merchant] = r;\r\n\t\t\t\t\t\tfeedEditor.renderMerchantTemplate(feedForm, r);\r\n\r\n\t\t\t\t\t\t//when merchant is bing, change delimiter and enclosure\r\n\t\t\t\t\t\tif( 'bing' === merchant ) {\r\n\t\t\t\t\t\t\t//delimiter value\r\n\t\t\t\t\t\t\t$(\"#delimiter option\").removeAttr('selected');\r\n\t\t\t\t\t\t\t$(\"#delimiter option[value=\\\"tab\\\"]\").attr('selected', 'selected');\r\n\r\n\t\t\t\t\t\t\t//enclosure value\r\n\t\t\t\t\t\t\t$(\"#enclosure option\").removeAttr('selected');\r\n\t\t\t\t\t\t\t$(\"#enclosure option[value=\\\" \\\"]\").attr('selected', 'selected');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t//reviewer options hide\r\n\t\t\t\t\t\tif( 'google_product_review' !== merchant) {\r\n\t\t\t\t\t\t\t$('.wf_attributes option[value=\"reviewer_name\"]').hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).fail(helper.ajax_fail);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t// Feed Active and Inactive status change via ajax\r\n\t\t\t.on('change', '.woo_feed_status_input', function () {\r\n\t\t\t\tlet self = $(this);\r\n\t\t\t\twpAjax.post('update_feed_status', {\r\n\t\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\t\tfeedName: self.val(),\r\n\t\t\t\t\tstatus: self[0].checked ? 1 : 0\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t// event with trigger\r\n\t\t$(document)\r\n\t\t\t.on('change', '[name=\"is_outOfStock\"], [name=\"product_visibility\"]', function () {\r\n\t\t\t\tlet outOfStockVisibilityRow = $('.out-of-stock-visibility');\r\n\t\t\t\tif ($('[name=\"is_outOfStock\"]:checked').val() === 'n' && $('[name=\"product_visibility\"]:checked').val() === '1') {\r\n\t\t\t\t\toutOfStockVisibilityRow.show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\toutOfStockVisibilityRow.hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('change', '.attr_type', function () {\r\n\t\t\t\t// Attribute type selection\r\n\t\t\t\tlet self = $(this),\r\n\t\t\t\t\ttype = self.val(),\r\n\t\t\t\t\trow = self.closest('tr');\r\n\t\t\t\t\r\n\t\t\t\tif (type === 'pattern') {\r\n\t\t\t\t\trow.find('.wf_attr').hide();\r\n\t\t\t\t\trow.find('.wf_attr').val('');\r\n\t\t\t\t\trow.find('.wf_default').show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\trow.find('.wf_attr').show();\r\n\t\t\t\t\trow.find('.wf_default').hide();\r\n\t\t\t\t\trow.find('.wf_default').val('');\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('change', '.wf_mattributes, .attr_type', function () {\r\n\t\t\t\tlet row = $(this).closest('tr'),\r\n\t\t\t\t\tattribute = row.find('.wf_mattributes'),\r\n\t\t\t\t\ttype = row.find('.attr_type'),\r\n\t\t\t\t\tvalueColumn = row.find('td:eq(4)'),\r\n\t\t\t\t\tprovider = $('#provider').val();\r\n\t\t\t\t\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\tif (opts.form.google_category.hasOwnProperty(attribute.val()) && type.val() === 'pattern' && helper.in_array(provider, opts.form.google_category[attribute.val()])) {\r\n\t\t\t\t\tif (valueColumn.find('select.selectize').length === 0) {\r\n\t\t\t\t\t\tvalueColumn.find('input.wf_default').remove();\r\n\t\t\t\t\t\tvalueColumn.append('<span class=\"wf_default wf_attributes\"><select name=\"default[]\" class=\"selectize\"></select></span>');\r\n\t\t\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t\t\tvalueColumn.append(`<span style=\"font-size:x-small;\"><a style=\"color: red\" href=\"http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category\" target=\"_blank\">${opts.learn_more}</a></span>`);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (!googleCategories) {\r\n\t\t\t\t\t\t\tvalueColumn.append('<span class=\"spinner is-active\" style=\"margin: 0;\"></span>');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tlet select = valueColumn.find('.wf_attributes select');\r\n\t\t\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\t\t\thelper.selectize(select, {\r\n\t\t\t\t\t\t\tpreload: true,\r\n\t\t\t\t\t\t\tplaceholder: opts.form.select_category,\r\n\t\t\t\t\t\t\tload: function load(query, cb) {\r\n\t\t\t\t\t\t\t\tif (!googleCategories) {\r\n\t\t\t\t\t\t\t\t\twpAjax.send('get_google_categories', {\r\n\t\t\t\t\t\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\t\t\t\t\t\tdata: {\r\n\t\t\t\t\t\t\t\t\t\t\t_ajax_nonce: opts.nonce,\r\n\t\t\t\t\t\t\t\t\t\t\taction: \"get_google_categories\",\r\n\t\t\t\t\t\t\t\t\t\t\tprovider: provider\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}).then(function (r) {\r\n\t\t\t\t\t\t\t\t\t\tgoogleCategories = r;\r\n\t\t\t\t\t\t\t\t\t\tcb(googleCategories);\r\n\t\t\t\t\t\t\t\t\t\tvalueColumn.find('.spinner').remove();\r\n\t\t\t\t\t\t\t\t\t}).fail(helper.ajax_fail);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcb(googleCategories);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {\r\n\t\t\t\t\t\tvalueColumn.find('span').remove();\r\n\t\t\t\t\t\tvalueColumn.append('<input autocomplete=\"off\" class=\"wf_default wf_attributes\" type=\"text\" name=\"default[]\" value=\"\">');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tif (type.val() !== 'pattern') {\r\n\t\t\t\t\t\t\tvalueColumn.find('input.wf_default').hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('change', '#feedType,#provider', function (e) {\r\n\t\t\t\tlet type = $('#feedType').val(),\r\n\t\t\t\t\tprovider = $('#provider').val(),\r\n\t\t\t\t\titemWrapper = $('.itemWrapper'),\r\n\t\t\t\t\twf_csv_txt = $('.wf_csvtxt');\r\n\t\t\t\t\r\n\t\t\t\t// noinspection JSUnresolvedVariable\r\n\t\t\t\tif (type !== '' && helper.in_array(provider, opts.form.item_wrapper_hidden)) {\r\n\t\t\t\t\titemWrapper.hide();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//when feed type is changed\r\n\t\t\t\tif( 'feedType' === e.target.id ) {\r\n\t\t\t\t\tif (type === 'csv' || type === 'txt' || type === 'tsv') {\r\n\t\t\t\t\t\titemWrapper.hide();\r\n\t\t\t\t\t\twf_csv_txt.show();\r\n\r\n\t\t\t\t\t\tif( 'tsv' === type ) {\r\n\t\t\t\t\t\t\t$('#delimiter option:last').prop(\"selected\", \"selected\");\r\n\t\t\t\t\t\t} else if( 'csv' === type ) {\r\n\t\t\t\t\t\t\t$('#delimiter option:first').prop(\"selected\", \"selected\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if( type === 'xml' ) {\r\n\t\t\t\t\t\titemWrapper.show();\r\n\t\t\t\t\t\twf_csv_txt.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t})\r\n\t\t\t.trigger('change');\r\n\r\n\r\n\t\t// product Attribute class\r\n\t\tclass WooFeedCustomFields {\r\n\r\n\t\t\tconstructor( field, status, isTaxonomy ) {\r\n\t\t\t\tthis.productCustomFields( field, status, isTaxonomy );\r\n\t\t\t}\r\n\r\n\t\t\tcacheClear() {\r\n\t\t\t\tlet data = {\r\n\t\t\t\t\taction: 'woo_feed_product_attribute_cache_remove',\r\n\t\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\r\n\t\t\t\t};\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\r\n\t\t\t\t\tdata\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tproductCustomFields( field, status = false, isTaxonomy ) {\r\n\t\t\t\tlet data = {\r\n\t\t\t\t\taction: 'woo_feed_custom_fields_status_change',\r\n\t\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\r\n\t\t\t\t\tfield,\r\n\t\t\t\t\tstatus,\r\n\t\t\t\t\tisTaxonomy\r\n\t\t\t\t};\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\tmethod: 'POST',\r\n\t\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\r\n\t\t\t\t\tdata,\r\n\t\t\t\t\tsuccess: ( response ) => {\r\n\t\t\t\t\t\tif( response.success ) {\r\n\t\t\t\t\t\t\tthis.cacheClear();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tconsole.log( response );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$(document).on('click', '.woofeed-custom-fields [id*=\"-switcher\"]', function () {\r\n\t\t\tlet field = $(this).attr( 'id' ).split( '-' )[0],\r\n\t\t\t\tisTaxonomy = $(this).data( 'taxonomy' ),\r\n\t\t\t\tstatus = $(this).prop( 'checked' );\r\n\t\t\tnew WooFeedCustomFields( field, status, isTaxonomy );\r\n\t\t});\r\n\t});\r\n})(jQuery, window, document, wp.ajax, wpf_ajax_obj);\r\n"]}
|
1 |
+
{"version":3,"sources":["woo-feed-admin.js"],"names":["_defineProperties","target","props","descriptor","i","_createClass","Constructor","protoProps","staticProps","prototype","window","wpAjax","self","prop","showTooltip","$","hasClass","currentTarget","clearTooltip","removeClass","actionMsg","className","match","index","action","removeAttr","actionKey","elem","addClass","attr","msg","extend","_default","_args","clip","$copyBtn","feedGenerator","left","event","trigger","test","navigator","on","console","googleCategories","in_array","needle","haystack","sortable","escape","data","text","ajax_fail","column_count","find","warn","wf_sortable","selectize_render_item","e","hasOwnProperty","opts","ajax","error","statusText","status","el","config","column","_onDrop","each","this","length","selectize","itemPath","create","concat","plugins","$item","container","containerSelector","group","options","bodyClass","itemSelector","handle","onDrop","fancySelect","maxItemShow","split","map","s","trim","helper","render","item","replace","x","form","merchantInfo","document","jQuery","k","init","renderMerchantInfo","opt","feedType","r","types","html","t","toLowerCase","na","disabled","val","_loop2","feedForm","contentSettings","renderMerchantTemplate","feedEditor","is","merchantInfoCache","tooltip","css","top","isRegenerating","_feed","_current_btn","feed","_limit","generator","limit","_progress","_product_ids","_progress_per_batch","_refresh","_all_btn","generate","condition","then","_current_btn_label","response","_color","preventDefault","parent","hide","_ajax_nonce","_log","_updateProgressStatus","message","key","regenerate","_block_button","value","_this","product","setTimeout","_stopProgressBar","_process_batch","_current_batch","_total_batch","post","_save_feed_file","fail","_resetProgressBar","_unblock_button","refreshInterval","arguments","undefined","clearInterval","_timer","_updateProgressBar","update","table","show","width","bar","wf","current_page_url_query","postboxes","location","setInterval","URLSearchParams","pagenow","template","common","hover","title","appendTo","userAgent","merchantTemplateCache","remove","ClipboardJS","clipboard","slideToggle","loader","tbody","reload","nonce","status_area","select","execCommand","button","fancyOption","fancyDataPicker","selectIf","price_attributes","selectKey","percentage","outputSelect","parents","includes","current_attribute_value","indexOf","del_confirm_multi","row","closest","reindex_config_table","type","_ajax_clean_nonce","server","validate","save","sftp_checking","sftp_available","provider","merchant","outOfStockVisibilityRow","feedName","checked","valueColumn","append","preload","load","google_category","query","attribute","cb","send","itemWrapper","item_wrapper_hidden","WooFeedCustomFields","productCustomFields","url","_classCallCheck","field","isTaxonomy","_this2","wpf_ajax_obj","success","log"],"mappings":"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","file":"woo-feed-admin.min.js","sourcesContent":["// noinspection JSUnresolvedletiable\n/**!\n * WooFeed Scripts\n * @version 3.3.6\n * @package WooFeed\n * @copyright 2020 WebAppick\n *\n */\n/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */\n// noinspection JSUnresolvedVariable\n(function($, window, document, wpAjax, opts) {\n\t\"use strict\";\n\t/**\n\t * All of the code for your admin-facing JavaScript source\n\t * should reside in this file.\n\t *\n\t * Note: It has been assumed you will write jQuery code here, so the\n\t * $ function reference has been prepared for usage within the scope\n\t * of this function.\n\t *\n\t * This enables you to define handlers, for when the DOM is ready:\n\t */\n\n\t/**\n\t * disable element utility\n\t *\n\t * @since 3.1.9\n\t *\n\t * @param {*} status\n\t * @returns {jQuery|HTMLElement}\n\t */\n\t$.fn.disabled = function(status) {\n\t\t$(this).each(function() {\n\t\t\tlet self = $(this),\n\t\t\t\tprop = 'disabled';\n\n\t\t\tif (typeof self.prop(prop) !== 'undefined') {\n\t\t\t\tself.prop(prop, status === void 0 || status === true);\n\t\t\t} else {\n\t\t\t\t!0 === status ? self.addClass(prop) : self.removeClass(prop);\n\t\t\t}\n\t\t});\n\t\treturn self; // method chaining\n\t};\n\t\n\t/**\n\t * Check if a HTMLElement or jQuery is disabled\n\t */\n\t$.fn.isDisabled = function() {\n\t\tlet self = $(this),\n\t\t\tprop = 'disabled';\n\t\treturn typeof self.prop(prop) !== 'undefined' ? self.prop(prop) : self.hasClass(prop);\n\t};\n\t\n\t/**\n\t * Clear Tooltip for clip board js\n\t * @param {Object} event\n\t */\n\tconst clearTooltip = (event) => {\n\t\t$(event.currentTarget).removeClass( (index, className) => (className.match(/\\btooltipped-\\S+/g) || []).join(' ') ).removeClass('tooltipped').removeAttr('aria-label');\n\t};\n\n\tconst showTooltip = (elem, msg) => {\n\t\t$(elem).addClass('tooltipped tooltipped-s').attr('aria-label', msg);\n\t};\n\n\tconst fallbackMessage = (action) =>{\n\t\tlet actionMsg,\n\t\t\tactionKey = action === 'cut' ? 'X' : 'C';\n\n\t\tif (/iPhone|iPad/i.test(navigator.userAgent)) {\n\t\t\tactionMsg = 'No support :(';\n\t\t} else if (/Mac/i.test(navigator.userAgent)) {\n\t\t\tactionMsg = 'Press ⌘-' + actionKey + ' to ' + action;\n\t\t} else {\n\t\t\tactionMsg = 'Press Ctrl-' + actionKey + ' to ' + action;\n\t\t}\n\n\t\treturn actionMsg;\n\t};\n\t\n\t/**\n\t * Alias of jQuery.extend()\n\t * @param {Object} _default\n\t * @param {Object} _args\n\t */\n\tconst extend = (_default, _args) => $.extend(true, {}, _default, _args);\n\t\n\tlet $copyBtn,\n\t\tclipboard,\n\t\tgoogleCategories,\n\t\thelper = {\n\t\t\tin_array: (needle, haystack) => {\n\t\t\t\ttry {\n\t\t\t\t\treturn haystack.indexOf(needle) !== -1;\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tselectize_render_item: (data, escape) => `<div class=\"item wapk-selectize-item\">${ escape(data.text)}</div>`, // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found,\n\t\t\tajax_fail: e => {\n\t\t\t\tconsole.warn(e);\n\t\t\t\talert(e.hasOwnProperty('statusText') && e.hasOwnProperty('status') ? opts.ajax.error + '\\n' + e.statusText + ' (' + e.status + ')' : e);\n\t\t\t},\n\t\t\t/**\n\t\t\t * Initialize Sortable\n\t\t\t * @param {jQuery|HTMLElement} el\n\t\t\t * @param {object} config\n\t\t\t * @param {int|boolean} column\n\t\t\t * @param {function} onDrop\n\t\t\t * @return {jQuery|HTMLElement}\n\t\t\t */\n\t\t\tsortable: (el, config, column, onDrop) => {\n\t\t\t\treturn (el || $('.sorted_table')).each(function() {\n\t\t\t\t\tlet self = $(this),\n\t\t\t\t\t\tcolumn_count = self.find('tbody > tr:eq(0) > td').length || column || 9;\n\t\t\t\t\tself.wf_sortable(extend({\n\t\t\t\t\t\tcontainerSelector: 'table',\n\t\t\t\t\t\titemPath: '> tbody',\n\t\t\t\t\t\titemSelector: 'tr',\n\t\t\t\t\t\thandle: 'i.wf_sortedtable',\n\t\t\t\t\t\tplaceholder: `<tr class=\"placeholder\"><td colspan=\"${column_count}\"></td></tr>`,\n\t\t\t\t\t\tonDrop: ($item, container, _super, event) => {\n\t\t\t\t\t\t\t$item.removeClass(container.group.options.draggedClass).removeAttr('style');\n\t\t\t\t\t\t\t$(\"body\").removeClass(container.group.options.bodyClass);\n\t\t\t\t\t\t\tif ( onDrop && 'function' === typeof( onDrop ) ) {\n\t\t\t\t\t\t\t\tonDrop( $item, container, _super, event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}, config));\n\t\t\t\t});\n\t\t\t},\n\t\t\tselectize: (el, config) => {\n\t\t\t\treturn (el || $('select.selectize')).not('.selectized').each(function() {\n\t\t\t\t\tlet self = $(this);\n\t\t\t\t\tself.selectize(extend({\n\t\t\t\t\t\tcreate: self.data('create') || false,\n\t\t\t\t\t\tplugins: self.data('plugins') ? self.data('plugins').split(',').map(function(s) {\n\t\t\t\t\t\t\treturn s.trim();\n\t\t\t\t\t\t}) : [],\n\t\t\t\t\t\t//['remove_button'],\n\t\t\t\t\t\trender: {\n\t\t\t\t\t\t\titem: helper.selectize_render_item\n\t\t\t\t\t\t}\n\t\t\t\t\t}, config));\n\t\t\t\t});\n\t\t\t},\n\t\t\tfancySelect: (el, config) => {\n\t\t\t\treturn (el || $('select.fancySelect')).not('.FancySelectInit').each(function() {\n\t\t\t\t\tlet self = $(this);\n\t\t\t\t\tself.fancySelect(extend({\n\t\t\t\t\t\tmaxItemShow: 3\n\t\t\t\t\t}, config));\n\t\t\t\t});\n\t\t\t},\n\t\t\treindex_config_table: () => {\n\t\t\t\t$('#table-1').find('tbody tr').each( ( x, el ) => {\n\t\t\t\t\t$(el).find('[name]').each( ( x1, el ) => {\n\t\t\t\t\t\t$(el).attr('name', $(el).attr('name').replace(/(\\[\\d\\])/g, `[${x}]`));\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t},\n\t\t\tcommon: () => {\n\t\t\t\thelper.sortable( $('.sorted_table'), {}, 9, helper.reindex_config_table );\n\t\t\t\thelper.selectize();\n\t\t\t\thelper.fancySelect($('.outputType'));\n\t\t\t}\n\t\t},\n\t\t// helper functions\n\t\tfeedEditor = {\n\t\t\t/**\n\t\t\t * The Editor Form Elem.\n\t\t\t * @type {jQuery|HTMLElement}\n\t\t\t */\n\t\t\tform: null,\n\n\t\t\t/**\n\t\t\t * Initialize The Feed Editor {Tabs...}\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tinit: function () {\n\t\t\t\tlet self = this;\n\t\t\t\tself.form = $('.generateFeed');\n\t\t\t\tif (!self.form.length) return;\n\t\t\t\thelper.common();\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t$(document).trigger(new jQuery.Event('feedEditor.init', {\n\t\t\t\t\ttarget: this.form\n\t\t\t\t}));\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render Merchant info ajax response and handle allowed feed type for selected merchant\n\t\t\t * @param {jQuery|HTMLElement} merchantInfo jQuery dom object\n\t\t\t * @param {jQuery|HTMLElement} feedType jQuery dom object\n\t\t\t * @param {Object} r ajax response object\n\t\t\t */\n\t\t\trenderMerchantInfo: function (merchantInfo, feedType, r) {\n\t\t\t\tfor (let k in r) {\n\t\t\t\t\tif (r.hasOwnProperty(k)) {\n\t\t\t\t\t\tmerchantInfo.find('.merchant-info-section.' + k + ' .data').html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n\n\t\t\t\t\t\tif ('feed_file_type' === k) {\n\t\t\t\t\t\t\t(function() {\n\t\t\t\t\t\t\t\tlet types = r[k].split(\",\").map(function(t) {\n\t\t\t\t\t\t\t\t\treturn t.trim().toLowerCase();\n\t\t\t\t\t\t\t\t}).filter(function(t) {\n\t\t\t\t\t\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t\t\t\t\t\treturn t !== '' && t !== opts.na.toLowerCase();\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tif (types.length) {\n\t\t\t\t\t\t\t\t\tfeedType.find('option').removeAttr('selected').each(function() {\n\t\t\t\t\t\t\t\t\t\tlet opt = $(this);\n\t\t\t\t\t\t\t\t\t\topt.val() && !helper.in_array(opt.val(), types) ? opt.disabled(!0) : opt.disabled(!1);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif (types.length === 1) feedType.find('option[value=\"' + types[0] + '\"]').attr('selected', 'selected');\n\t\t\t\t\t\t\t\t} else feedType.find('option').disabled(!1);\n\t\t\t\t\t\t\t})();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tmerchantInfo.find('.spinner').removeClass('is-active');\n\t\t\t\tfeedType.disabled(!1);\n\t\t\t\tfeedType.trigger('change');\n\t\t\t\tfeedType.parent().find('.spinner').removeClass('is-active');\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Render Feed Template Tabs and settings while creating new feed.\n\t\t\t * @param {jQuery|HTMLElement} feedForm feed from query dom object\n\t\t\t * @param {object} r merchant template ajax response object\n\t\t\t */\n\t\t\trenderMerchantTemplate: function (feedForm, r) {\n\t\t\t\tlet _loop = function _loop(k) {\n\t\t\t\t\tif (r.hasOwnProperty(k)) {\n\t\t\t\t\t\tif ('tabs' === k) {\n\t\t\t\t\t\t\t// noinspection JSUnresolvedFunction\n\t\t\t\t\t\t\tfeedForm.html(r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlet contentSettings = $('[name=\"' + k + '\"]');\n\n\t\t\t\t\t\t\tif (contentSettings.length) {\n\t\t\t\t\t\t\t\tcontentSettings.each(function() {\n\t\t\t\t\t\t\t\t\tlet elem = $(this);\n\n\t\t\t\t\t\t\t\t\tif (elem.is('select')) {\n\t\t\t\t\t\t\t\t\t\telem.find('[value=\"' + r[k] + '\"]').prop('selected', true);\n\t\t\t\t\t\t\t\t\t} else if ((elem.is('[type=checkbox]') || elem.is('[type=radio]')) && elem.val() === r[k]) {\n\t\t\t\t\t\t\t\t\t\telem.prop('checked', true);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\telem.val(r[k]); // type=text\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}).trigger('change');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tfor (let k in r) {\n\t\t\t\t\t_loop(k);\n\t\t\t\t}\n\n\t\t\t\tfeedEditor.init();\n\t\t\t}\n\t\t},\n\t\t// Feed Editor Table\n\t\tmerchantInfoCache = [],\n\t\tmerchantTemplateCache = [],\n\t\ttooltip = () => {\n\t\t\t// Tooltip only Text\n\t\t\t$('.wfmasterTooltip')\n\t\t\t\t.hover(function () {\n\t\t\t\t\t// Hover over code\n\t\t\t\t\tlet self = $(this), title = self.attr('wftitle');\n\t\t\t\t\tself.data('tipText', title).removeAttr('wftitle');\n\t\t\t\t\t$('<p class=\"wftooltip\"></p>').text(title).appendTo('body').fadeIn('slow');\n\t\t\t\t}, function () {\n\t\t\t\t\t// Hover out code\n\t\t\t\t\tlet self = $(this);\n\t\t\t\t\tself.attr('wftitle', self.data('tipText'));\n\t\t\t\t\t$('.wftooltip').remove();\n\t\t\t\t})\n\t\t\t\t.mousemove(function (e) {\n\t\t\t\t\t$('.wftooltip').css({\n\t\t\t\t\t\ttop: e.pageY + 10,\n\t\t\t\t\t\tleft: e.pageX + 20\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\t\tclip = () => {\n\t\t\t$copyBtn = $('.toClipboard');\n\t\t\tif (!ClipboardJS.isSupported() || /iPhone|iPad/i.test(navigator.userAgent)) {\n\t\t\t\t$copyBtn.find('img').hide(0);\n\t\t\t} else {\n\t\t\t\t$copyBtn.each(function() {\n\t\t\t\t\t$(this).on('mouseleave', clearTooltip).on('blur', clearTooltip);\n\t\t\t\t});\n\t\t\t\tclipboard = new ClipboardJS('.toClipboard');\n\t\t\t\tclipboard.on('error', function(event) {\n\t\t\t\t\tshowTooltip(event.trigger, fallbackMessage(event.action));\n\t\t\t\t}).on('success', function(event) {\n\t\t\t\t\tshowTooltip(event.trigger, 'Copied!');\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t\n\t/**\n\t * Feed Generator Module\n\t */\n\tclass feedGenerator {\n\t\t\n\t\t/**\n\t\t * Constructor\n\t\t * @constructor\n\t\t */\n\t\tconstructor() {\n\t\t\tthis._feed = opts.generator.feed; // wf_config+xxxx\n\t\t\tthis._limit = opts.generator.limit;\n\t\t\tthis._progress = 0;\n\t\t\tthis._timer = null;\n\t\t\tthis._color = false;\n\t\t\t// batch info\n\t\t\tthis._total_batch = 0;\n\t\t\tthis._current_batch = 0;\n\t\t\tthis._product_ids = [];\n\t\t\tthis._progress_per_batch = 0;\n\t\t\tthis._refresh = true;\n\t\t\t// noinspection JSUnresolvedVariable\n\t\t\tthis._regenerate = opts.generator.regenerate;\n\t\t\twindow.isRegenerating = false;\n\t\t\tthis._all_btn = $('.wpf_regenerate');\n\t\t\tthis._current_btn = $(`#${this._feed.replace( 'wf_config', 'wf_feed_' )}`);\n\t\t\tthis._current_btn_label = '';\n\t\t}\n\t\t\n\t\t/**\n\t\t * Init Hooks (Event)\n\t\t * @return {feedGenerator}\n\t\t */\n\t\tinit() {\n\t\t\tlet self = this;\n\t\t\tif ( '' !== this._feed && this._regenerate && false === window.isRegenerating ) {\n\t\t\t\tthis.generate();\n\t\t\t}\n\n\t\t\t//thickbox body add feed plugin class to make it unique and custom style\n\t\t\tlet current_page_query = window.location.search;\n\t\t\tlet params = new URLSearchParams(current_page_query);\n\t\t\tlet page_name = params.get(\"page\");\n\t\t\tif( \"webappick-manage-feeds\" === page_name ) {\n\t\t\t\t$('body').addClass('woo-import-popup-body');\n\t\t\t}\n\n\t\t\t$(document).on('click', '.woo-feed-campaign-close-button', function(event) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t$(this).parent('.woo-feed-promotion').hide();\n\t\t\t\tlet condition = $(this).data('condition');\n\t\t\t\tif(1 === condition) {\n\t\t\t\t\twpAjax.post( 'woo_feed_hide_promotion', {\n\t\t\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\t\t\tcondition: condition,\n\t\t\t\t\t} ).then( response => {\n\t\t\t\t\t\tself._log( response );\n\t\t\t\t\t} ).fail( error => {\n\t\t\t\t\t\tself._log( error );\n\t\t\t\t\t\tself._updateProgressStatus( error.message );\n\t\t\t\t\t\tself._color = 'red';\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(document).on('click', '.wpf_regenerate', function(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tself._current_btn = $( this );\n\t\t\t\tif( self._current_btn.hasClass('disabled') || window.isRegenerating === true ) return;\n\t\t\t\tself._feed = self._current_btn.attr('id').replace( 'wf_feed_', 'wf_config' );\n\t\t\t\tif( '' !== self._feed ) {\n\t\t\t\t\tself.generate();\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t_block_button() {\n\t\t\tif ( this._all_btn.length ) {\n\t\t\t\tthis._all_btn.addClass('disabled');\n\t\t\t}\n\t\t\tif ( this._current_btn.length ) {\n\t\t\t\tthis._current_btn.find('span').addClass('wpf_spin reverse_spin');\n\t\t\t\tthis._current_btn_label = this._current_btn.attr('title');\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\tthis._current_btn.attr( 'aria-label', opts.regenerate ).attr( 'title', opts.regenerate );\n\t\t\t}\n\t\t}\n\t\t\n\t\t_unblock_button() {\n\t\t\tif ( this._all_btn.length ) {\n\t\t\t\tthis._all_btn.removeClass('disabled');\n\t\t\t}\n\t\t\tif ( this._current_btn.length ) {\n\t\t\t\tthis._current_btn.find('span').removeClass('wpf_spin');\n\t\t\t\tthis._current_btn.find('span').removeClass('reverse_spin');\n\t\t\t\tthis._current_btn.attr( 'aria-label', this._current_btn_label ).attr( 'title', this._current_btn_label );\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Generate Feed\n\t\t * @return void\n\t\t */\n\t\tgenerate() {\n\t\t\tlet self = this;\n\t\t\twindow.isRegenerating = true;\n\t\t\tthis._block_button();\n\t\t\tthis._resetProgressBar();\n\t\t\tthis._progressBarActive();\n\t\t\tthis._log( 'Counting Total Products' );\n\t\t\tthis._updateProgressStatus( 'Fetching products.' );\n\t\t\tthis._get_product_ids().then( response => {\n\t\t\t\tthis._progress = 10;\n\t\t\t\tself._log( {response} );\n\t\t\t\tif(response.success) {\n\t\t\t\t\tself._log( `Total ${response.total} Products found.` );\n\t\t\t\t\tself._product_ids = response.product;\n\t\t\t\t\tself._total_batch = this._product_ids.length;\n\t\t\t\t\tself._current_batch = 0;\n\t\t\t\t\tself._progress_per_batch = ( 90 - this._progress ) / this._total_batch;\n\t\t\t\t\tself._process_batch();\n\t\t\t\t\tself._updateProgressStatus( 'Processing Products...' );\n\t\t\t\t} else {\n\t\t\t\t\tself._updateProgressStatus( response.data.message );\n\t\t\t\t}\n\t\t\t}).fail( error => {\n\t\t\t\tself._log( error );\n\t\t\t\tself._updateProgressStatus( error.message );\n\t\t\t\tself._color = 'red';\n\t\t\t\tsetTimeout( function(){\n\t\t\t\t\tself._stopProgressBar();\n\t\t\t\t\tself._unblock_button();\n\t\t\t\t}, 1500 );\n\t\t\t} );\n\t\t}\n\t\t\n\t\t/**\n\t\t * Get Product Ids\n\t\t * @returns {$.promise}\n\t\t * @private\n\t\t */\n\t\t_get_product_ids() {\n\t\t\tthis._progress = 5;\n\t\t\treturn wpAjax.post( 'get_product_information', {\n\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\tfeed: this._feed,\n\t\t\t\tlimit: this._limit,\n\t\t\t} );\n\t\t}\n\t\t\n\t\t/**\n\t\t * Run the Batch\n\t\t * @private\n\t\t */\n\t\t_process_batch() {\n\t\t\tlet self = this;\n\t\t\tlet status = `Processing Batch ${this._current_batch+1} of ${this._total_batch}`;\n\t\t\tthis._updateProgressStatus( status );\n\t\t\tthis._log( status );\n\t\t\twpAjax.post( 'make_batch_feed', {\n\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\tfeed: this._feed,\n\t\t\t\tproducts: this._product_ids[this._current_batch],\n\t\t\t\tloop: this._current_batch,\n\t\t\t} ).then( response => {\n\t\t\t\tself._current_batch++;\n\t\t\t\tself._log( `Batch ${self._current_batch} Completed` );\n\t\t\t\tself._log( response );\n\t\t\t\tif ( self._current_batch < self._total_batch ) {\n\t\t\t\t\tself._process_batch();\n\t\t\t\t\tself._progress += self._progress_per_batch;\n\t\t\t\t}\n\t\t\t\tif ( self._current_batch === self._total_batch ) {\n\t\t\t\t\tself._save_feed_file();\n\t\t\t\t}\n\t\t\t} ).fail( error => {\n\t\t\t\tself._log( error );\n\t\t\t\tself._updateProgressStatus( error.message );\n\t\t\t\tself._color = 'red';\n\t\t\t\tsetTimeout( function(){\n\t\t\t\t\tself._stopProgressBar();\n\t\t\t\t\tself._unblock_button();\n\t\t\t\t}, 1500 );\n\t\t\t} );\n\t\t}\n\t\t\n\t\t/**\n\t\t * Save Feed Data from temp to feed file\n\t\t * @private\n\t\t */\n\t\t_save_feed_file() {\n\t\t\tlet self = this;\n\t\t\tthis._log( 'Saving feed file' );\n\t\t\tthis._updateProgressStatus( 'Saving feed file' );\n\t\t\twpAjax.post( 'save_feed_file', {\n\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\tfeed: this._feed,\n\t\t\t} ).then( response => {\n\t\t\t\tself._log( response );\n\t\t\t\tself._progress = 100;\n\t\t\t\tif ( self._refresh ) {\n\t\t\t\t\twindow.location.href = `${opts.pages.list.feed}&link=${response.url}&cat=${response.cat}`;\n\t\t\t\t}\n\t\t\t\tsetTimeout( function(){\n\t\t\t\t\tself._stopProgressBar();\n\t\t\t\t\tsetTimeout( function(){\n\t\t\t\t\t\tself._resetProgressBar( true );\n\t\t\t\t\t\tself._unblock_button();\n\t\t\t\t\t}, 3000 );\n\t\t\t\t}, 2500 );\n\t\t\t} ).fail( error => {\n\t\t\t\tself._log( error );\n\t\t\t\tself._updateProgressStatus( error.message );\n\t\t\t\tself._color = 'red';\n\t\t\t\tsetTimeout( function(){\n\t\t\t\t\tself._stopProgressBar();\n\t\t\t\t\tself._unblock_button();\n\t\t\t\t}, 1500 );\n\t\t\t} );\n\t\t}\n\t\t\n\t\t/**\n\t\t * Console log wrapper with debug settings.\n\t\t * @param data\n\t\t * @returns {feedGenerator}\n\t\t * @private\n\t\t */\n\t\t_log( data ) {\n\t\t\t// noinspection JSUnresolvedVariable\n\t\t\tif ( opts.wpf_debug ) {\n\t\t\t\tconsole.log( data );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t/**\n\t\t * Run the progressbar refresh interval\n\t\t * @param {int} refreshInterval\n\t\t * @returns {feedGenerator}\n\t\t * @private\n\t\t */\n\t\t_progressBarActive( refreshInterval = 0 ) {\n\t\t\tlet self = this;\n\t\t\tthis._toggleProgressBar( true );\n\t\t\tthis._timer = setInterval( function(){\n\t\t\t\tself._updateProgressBar();\n\t\t\t}, refreshInterval || 1000 );\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t/**\n\t\t * Stop Progressbar\n\t\t * @returns {feedGenerator}\n\t\t * @private\n\t\t */\n\t\t_stopProgressBar() {\n\t\t\tclearInterval( this._timer );\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t/**\n\t\t * Reset Progressbar\n\t\t * @returns {feedGenerator}\n\t\t * @private\n\t\t */\n\t\t_resetProgressBar( update ) {\n\t\t\tthis._toggleProgressBar( false );\n\t\t\tthis._updateProgressStatus( '' );\n\t\t\tclearInterval( this._timer );\n\t\t\tthis._color = false;\n\t\t\tthis._timer = null;\n\t\t\tthis._progress = 0;\n\t\t\tif ( update ) {\n\t\t\t\tthis._updateProgressBar();\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t/**\n\t\t * Show hide the progress bar el\n\t\t * @param status\n\t\t * @returns {feedGenerator}\n\t\t * @private\n\t\t */\n\t\t_toggleProgressBar( status ) {\n\t\t\tlet table = $('#feed_progress_table');\n\t\t\tif ( status ) {\n\t\t\t\ttable.show();\n\t\t\t} else {\n\t\t\t\ttable.hide();\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update Progress bar text status\n\t\t * @param {string} status\n\t\t * @returns {feedGenerator}\n\t\t * @private\n\t\t */\n\t\t_updateProgressStatus( status ) {\n\t\t\t$( '.feed-progress-status' ).text( status );\n\t\t\treturn this;\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update Progress Data\n\t\t * hooked with setInterval\n\t\t * @private\n\t\t */\n\t\t_updateProgressBar() {\n\t\t\tlet percentage = $( '.feed-progress-percentage' ),\n\t\t\t\tbar = $( '.feed-progress-bar-fill' ),\n\t\t\t\t_progress = `${Math.round( this._progress )}%`;\n\t\t\tbar.css( {\n\t\t\t\twidth: _progress,\n\t\t\t} );\n\t\t\tpercentage.text( _progress );\n\t\t}\n\t}\n\t// expose to the global scope\n\twindow.wf = {\n\t\thelper: helper,\n\t\tfeedEditor: feedEditor,\n\t\tgenerator: feedGenerator,\n\t};\n\t$(window).on('load', function() {\n\t\t// Template loading ui conflict\n\t\tif ($(location).attr(\"href\").match(/webappick.*feed/g) !== null) {\n\t\t\t$('#wpbody-content').addClass('woofeed-body-content');\n\t\t}\n\n\t\t// on edit page show item wrapper dropdown\n\t\tlet current_page_url_query = window.location.search;\n\t\tlet urlParams = new URLSearchParams(current_page_url_query);\n\t\tlet page_action = urlParams.get('action');\n\n\t\t// ClipBoardJS\n\t\tclip();\n\t\t// postbox toggle\n\t\tpostboxes.add_postbox_toggles(pagenow);\n\t\t// initialize generator\n\t\tlet generator = new feedGenerator();\n\t\tgenerator.init();\n\t\t// noinspection JSUnresolvedVariable\n\t\tif( '' !== opts.generator.feed && opts.generator.regenerate ) {\n\t\t\n\t\t}\n\t\t// initialize editor\n\t\tfeedEditor.init();\n\t\thelper.common(); // Generate Feed Add Table Row\n\t\ttooltip();\n\t\t// validate feed editor\n\t\t$(\".generateFeed\").validate();\n\t\t// document events\n\t\t$(document)\n\t\t\t.on('click', '[data-toggle_slide]', function(e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$($(this).data('toggle_slide')).slideToggle('fast');\n\t\t\t})\n\t\t\t// XML Feed Wrapper\n\t\t\t.on('click', '#wf_newRow', function () {\n\t\t\t\tlet tbody = $('#table-1 tbody'),\n\t\t\t\t\ttemplate = $('#feed_config_template').text().trim().replace(/__idx__/g, tbody.find('tr').length);\n\t\t\t\ttbody.append(template);\n\t\t\t\thelper.fancySelect($('.outputType'));\n\t\t\t})\n\t\t\t// feed delete alert.\n\t\t\t.on('click', '.single-feed-delete', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\tif (confirm(opts.form.del_confirm)) {\n\t\t\t\t\twindow.location.href = $(this).attr('val');\n\t\t\t\t}\n\t\t\t})\n\t\t\t// clear cache data.\n\t\t\t.on('click', '.wf_clean_cache_wrapper', function(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tvar nonce = $('.woo-feed-clean-cache-nonce').val();\n\t\t\t\tvar loader = $('.woo-feed-cache-loader');\n\n\t\t\t\t//show loader\n\t\t\t\tloader.show();\n\n\t\t\t\t// passed cache nonce\n\t\t\t\twpAjax.post('clear_cache_data', {\n\t\t\t\t\t_ajax_clean_nonce: nonce\n\t\t\t\t}).then(function (response) {\n\t\t\t\t\tif( response.success ) {\n\t\t\t\t\t\tloader.hide(); //hide loader\n\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t}\n\t\t\t\t}).fail(function (e) {\n\t\t\t\t\tconsole.log('something wrong');\n\t\t\t\t});\n\n\t\t\t})// Copy Status\n\t\t\t.on('click', '#woo-feed-copy-status-btn', function(event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tlet button = $('#woo-feed-copy-status-btn');\n\t\t\t\tlet status_area = $('#woo-feed-status-area');\n\t\t\t\tbutton.val('Copied');\n\t\t\t\tstatus_area.css('visibility','visible');\n\t\t\t\tstatus_area.select();\n\n\t\t\t\tdocument.execCommand('copy');\n\t\t\t})\n\t\t\t// feed value dropdown change.\n\t\t\t.on('change', '.wf_attr.wf_attributes', function(event) {\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\t$('.fancy-picker-picked').trigger(\"click\"); // trigger fancy select box clicked\n\n\t\t\t\t// price attributes\n\t\t\t\tvar price_attributes = ['price', 'current_price', 'sale_price', 'price_with_tax', 'current_price_with_tax', 'sale_price_with_tax', 'shipping_cost'];\n\t\t\t\t// current value\n\t\t\t\tvar current_attribute_value = $(this).val();\n\t\t\t\tvar outputSelect = $(this).parents('tr').find('.outputType');\n\t\t\t\tvar fancyOption = $(this).parents('tr').find('.fancy-picker-content .fancy-picker-option');\n\t\t\t\tvar fancyDataPicker = $(this).parents('tr').find('.fancy-picker-data span');\n\t\t\t\tvar selectIf, selectKey;\n\n\t\t\t\t// when any attribute is selected, pick the key\n\t\t\t\tif( price_attributes.includes(current_attribute_value) ) {\n\t\t\t\t\t// when select any price attribute\n\t\t\t\t\tselectIf = 'for_price';\n\t\t\t\t\tselectKey = \"Price\";\n\t\t\t\t} else if ( \"\" !== current_attribute_value && -1 !== current_attribute_value.indexOf('wf_taxo') ) {\n\n\t\t\t\t\t// when select any custom taxonomy\n\t\t\t\t\tselectIf = 'for_custom_taxo';\n\t\t\t\t\tselectKey = \"parent_if_empty\";\n\t\t\t\t} else {\n\n\t\t\t\t\tselectIf = 'for_all';\n\t\t\t\t\tselectKey = 'Default';\n\t\t\t\t}\n\n\t\t\t\t// remove selected class from old selected option\n\t\t\t\tfancyOption.removeClass('selected');\n\n\t\t\t\t// when value dropdown is selected as price or any custom taxonomy\n\t\t\t\tif( selectIf === 'for_custom_taxo' || selectIf === 'for_price' ) {\n\n\t\t\t\t\t// update \"Option Type\" when select key matches\n\t\t\t\t\tfancyOption.each(function(item) {\n\t\t\t\t\t\tif( selectKey === $(this).text() ) {\n\t\t\t\t\t\t\t$(this).addClass('selected');\n\t\t\t\t\t\t\tfancyDataPicker.text(selectKey);\n\t\t\t\t\t\t\toutputSelect.find(\"option\").text(selectKey);\n\t\t\t\t\t\t\toutputSelect.find(\"option\").val( $(this).data('value') );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\n\t\t\t\t\t// update \"Option Type\" when select key matches\n\t\t\t\t\t// fancyOption.each(function(item) {\n\t\t\t\t\t// \tif( \"parent_if_empty\" !== $(this).text() && \"for_all\" === selectIf ) {\n\t\t\t\t\t// \t\t$(this).addClass('selected');\n\t\t\t\t\t// \t\tfancyDataPicker.text(selectKey);\n\t\t\t\t\t// \t\toutputSelect.find(\"option\").text(selectKey);\n\t\t\t\t\t// \t\toutputSelect.find(\"option\").val( $(this).data('value') );\n\t\t\t\t\t// \t}\n\t\t\t\t\t// });\n\t\t\t\t}\n\n\t\t\t})\n\t\t\t// bulk delete alert.\n\t\t\t.on('click', '#doaction, #doaction2', function () {\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\treturn confirm(opts.form.del_confirm_multi);\n\t\t\t})\n\t\t\t// Generate Feed Table Row Delete\n\t\t\t.on('change', '.dType', function () {\n\t\t\t\tlet self = $(this),\n\t\t\t\t\ttype = self.val(),\n\t\t\t\t\trow = self.closest('tr');\n\t\t\t\t\n\t\t\t\tif (type === 'pattern') {\n\t\t\t\t\trow.find('.value_attribute').hide();\n\t\t\t\t\trow.find('.value_pattern').show();\n\t\t\t\t} else if (type === 'attribute') {\n\t\t\t\t\trow.find('.value_attribute').show();\n\t\t\t\t\trow.find('.value_pattern').hide();\n\t\t\t\t} else if (type === 'remove') {\n\t\t\t\t\trow.find('.value_attribute').hide();\n\t\t\t\t\trow.find('.value_pattern').hide();\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Generate Feed Form Submit\n\t\t\t.on('click', '.delRow', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$(this).closest('tr').remove();\n\t\t\t\thelper.reindex_config_table();\n\t\t\t})\n\t\t\t.on('submit', '#generateFeed', function () {\n\t\t\t\t// Feed Generating form validation\n\t\t\t\t$(this).validate();\n\t\t\t\t\n\t\t\t\tif ($(this).valid()) {\n\t\t\t\t\t$(\".makeFeedResponse\")\n\t\t\t\t\t\t.show()\n\t\t\t\t\t\t.html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Generate Update Feed Form Submit\n\t\t\t.on('submit', '#updatefeed', function (e, data) {\n\t\t\t\t// Feed Generating form validation\n\t\t\t\t$(this).validate();\n\t\t\t\t\n\t\t\t\tif ($(this).valid()) {\n\t\t\t\t\t$(\".makeFeedResponse\")\n\t\t\t\t\t\t.show()\n\t\t\t\t\t\t.html(`<b style=\"color: darkblue;\"><i class=\"dashicons dashicons-sos wpf_spin\"></i> ${data && data.save ? opts.form.save : opts.form.generate}</b>`); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('change', '.ftporsftp', function () {\n\t\t\t\tlet server = $(this).val(),\n\t\t\t\t\tstatus = $('.ssh2_status');\n\t\t\t\t\n\t\t\t\tif (server === 'sftp') {\n\t\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t\tstatus.show().css('color', 'dodgerblue').text(opts.form.sftp_checking);\n\t\t\t\t\twpAjax.post('get_ssh2_status', {\n\t\t\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\t\t\tserver: server\n\t\t\t\t\t}).then(function (response) {\n\t\t\t\t\t\tif (response === 'exists') {\n\t\t\t\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t\t\t\tstatus.css('color', '#2CC185').text(opts.form.sftp_available);\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\tstatus.hide();\n\t\t\t\t\t\t\t}, 1500);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t\t\t\tstatus.show().css('color', 'red').text(opts.form.sftp_warning);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).fail(function (e) {\n\t\t\t\t\t\tstatus.hide();\n\t\t\t\t\t\thelper.ajax_fail(e);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tstatus.hide();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('click', '[name=\"save_feed_config\"]', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$('#updatefeed').trigger('submit', {\n\t\t\t\t\tsave: true\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('change', '#provider', function (event) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t\n\t\t\t\t//if (!$(this).closest('.generateFeed').hasClass('add-new')) return; // only for new feed.\n\n\t\t\t\tlet merchant = $(this).val(),\n\t\t\t\t\tfeedType = $(\"#feedType\"),\n\t\t\t\t\tfeedForm = $(\"#providerPage\"),\n\t\t\t\t\tmerchantInfo = $('#feed_merchant_info'); // set loading..\n\t\t\t\t\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\tfeedForm.html('<h3><span style=\"float:none;margin: -3px 0 0;\" class=\"spinner is-active\"></span> ' + opts.form.loading_tmpl + '</h3>'); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html, WordPressVIPMinimum.JS.StringConcat.Found\n\t\t\t\t\n\t\t\t\tmerchantInfo.find('.spinner').addClass('is-active');\n\t\t\t\tfeedType.disabled(!0); // disable dropdown\n\t\t\t\t\n\t\t\t\tfeedType.parent().find('.spinner').addClass('is-active');\n\t\t\t\tmerchantInfo.find('.merchant-info-section .data').html(''); // remove previous data\n\t\t\t\t// Get Merchant info for selected Provider/Merchant\n\n\n\t\t\t\t\n\t\t\t\tif (merchantInfoCache.hasOwnProperty(merchant)) {\n\t\t\t\t\tfeedEditor.renderMerchantInfo(merchantInfo, feedType, merchantInfoCache[merchant]);\n\t\t\t\t} else {\n\t\t\t\t\twpAjax.send('woo_feed_get_merchant_info', {\n\t\t\t\t\t\ttype: 'GET',\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tnonce: opts.nonce,\n\t\t\t\t\t\t\tprovider: merchant\n\t\t\t\t\t\t}\n\t\t\t\t\t}).then(function (r) {\n\t\t\t\t\t\tmerchantInfoCache[merchant] = r;\n\t\t\t\t\t\tfeedEditor.renderMerchantInfo(merchantInfo, feedType, r);\n\t\t\t\t\t}).fail(helper.ajax_fail);\n\t\t\t\t} // Get FeedForm For Selected Provider/Merchant\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif (merchantTemplateCache.hasOwnProperty(merchant)) {\n\t\t\t\t\tfeedEditor.renderMerchantTemplate(feedForm, merchantTemplateCache[merchant]);\n\t\t\t\t} else {\n\t\t\t\t\twpAjax.post('get_feed_merchant', {\n\t\t\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\t\t\tmerchant: merchant\n\t\t\t\t\t}).then(function (r) {\n\t\t\t\t\t\tmerchantTemplateCache[merchant] = r;\n\t\t\t\t\t\tfeedEditor.renderMerchantTemplate(feedForm, r);\n\n\t\t\t\t\t\t//when merchant is bing, change delimiter and enclosure\n\t\t\t\t\t\tif( 'bing' === merchant ) {\n\t\t\t\t\t\t\t//delimiter value\n\t\t\t\t\t\t\t$(\"#delimiter option\").removeAttr('selected');\n\t\t\t\t\t\t\t$(\"#delimiter option[value=\\\"tab\\\"]\").attr('selected', 'selected');\n\n\t\t\t\t\t\t\t//enclosure value\n\t\t\t\t\t\t\t$(\"#enclosure option\").removeAttr('selected');\n\t\t\t\t\t\t\t$(\"#enclosure option[value=\\\" \\\"]\").attr('selected', 'selected');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//reviewer options hide\n\t\t\t\t\t\tif( 'google_product_review' !== merchant) {\n\t\t\t\t\t\t\t$('.wf_attributes option[value=\"reviewer_name\"]').hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}).fail(helper.ajax_fail);\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Feed Active and Inactive status change via ajax\n\t\t\t.on('change', '.woo_feed_status_input', function () {\n\t\t\t\tlet self = $(this);\n\t\t\t\twpAjax.post('update_feed_status', {\n\t\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\t\tfeedName: self.val(),\n\t\t\t\t\tstatus: self[0].checked ? 1 : 0\n\t\t\t\t});\n\t\t\t});\n\t\t// event with trigger\n\t\t$(document)\n\t\t\t.on('change', '[name=\"is_outOfStock\"], [name=\"product_visibility\"]', function () {\n\t\t\t\tlet outOfStockVisibilityRow = $('.out-of-stock-visibility');\n\t\t\t\tif ($('[name=\"is_outOfStock\"]:checked').val() === 'n' && $('[name=\"product_visibility\"]:checked').val() === '1') {\n\t\t\t\t\toutOfStockVisibilityRow.show();\n\t\t\t\t} else {\n\t\t\t\t\toutOfStockVisibilityRow.hide();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('change', '.attr_type', function () {\n\t\t\t\t// Attribute type selection\n\t\t\t\tlet self = $(this),\n\t\t\t\t\ttype = self.val(),\n\t\t\t\t\trow = self.closest('tr');\n\t\t\t\t\n\t\t\t\tif (type === 'pattern') {\n\t\t\t\t\trow.find('.wf_attr').hide();\n\t\t\t\t\trow.find('.wf_attr').val('');\n\t\t\t\t\trow.find('.wf_default').show();\n\t\t\t\t} else {\n\t\t\t\t\trow.find('.wf_attr').show();\n\t\t\t\t\trow.find('.wf_default').hide();\n\t\t\t\t\trow.find('.wf_default').val('');\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('change', '.wf_mattributes, .attr_type', function () {\n\t\t\t\tlet row = $(this).closest('tr'),\n\t\t\t\t\tattribute = row.find('.wf_mattributes'),\n\t\t\t\t\ttype = row.find('.attr_type'),\n\t\t\t\t\tvalueColumn = row.find('td:eq(4)'),\n\t\t\t\t\tprovider = $('#provider').val();\n\t\t\t\t\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\tif (opts.form.google_category.hasOwnProperty(attribute.val()) && type.val() === 'pattern' && helper.in_array(provider, opts.form.google_category[attribute.val()])) {\n\t\t\t\t\tif (valueColumn.find('select.selectize').length === 0) {\n\t\t\t\t\t\tvalueColumn.find('input.wf_default').remove();\n\t\t\t\t\t\tvalueColumn.append('<span class=\"wf_default wf_attributes\"><select name=\"default[]\" class=\"selectize\"></select></span>');\n\t\t\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t\t\tvalueColumn.append(`<span style=\"font-size:x-small;\"><a style=\"color: red\" href=\"http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category\" target=\"_blank\">${opts.learn_more}</a></span>`);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (!googleCategories) {\n\t\t\t\t\t\t\tvalueColumn.append('<span class=\"spinner is-active\" style=\"margin: 0;\"></span>');\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet select = valueColumn.find('.wf_attributes select');\n\t\t\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\t\t\thelper.selectize(select, {\n\t\t\t\t\t\t\tpreload: true,\n\t\t\t\t\t\t\tplaceholder: opts.form.select_category,\n\t\t\t\t\t\t\tload: function load(query, cb) {\n\t\t\t\t\t\t\t\tif (!googleCategories) {\n\t\t\t\t\t\t\t\t\twpAjax.send('get_google_categories', {\n\t\t\t\t\t\t\t\t\t\ttype: 'GET',\n\t\t\t\t\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\t\t\t\t\t_ajax_nonce: opts.nonce,\n\t\t\t\t\t\t\t\t\t\t\taction: \"get_google_categories\",\n\t\t\t\t\t\t\t\t\t\t\tprovider: provider\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}).then(function (r) {\n\t\t\t\t\t\t\t\t\t\tgoogleCategories = r;\n\t\t\t\t\t\t\t\t\t\tcb(googleCategories);\n\t\t\t\t\t\t\t\t\t\tvalueColumn.find('.spinner').remove();\n\t\t\t\t\t\t\t\t\t}).fail(helper.ajax_fail);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcb(googleCategories);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {\n\t\t\t\t\t\tvalueColumn.find('span').remove();\n\t\t\t\t\t\tvalueColumn.append('<input autocomplete=\"off\" class=\"wf_default wf_attributes\" type=\"text\" name=\"default[]\" value=\"\">');\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (type.val() !== 'pattern') {\n\t\t\t\t\t\t\tvalueColumn.find('input.wf_default').hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('change', '#feedType,#provider', function (e) {\n\t\t\t\tlet type = $('#feedType').val(),\n\t\t\t\t\tprovider = $('#provider').val(),\n\t\t\t\t\titemWrapper = $('.itemWrapper'),\n\t\t\t\t\twf_csv_txt = $('.wf_csvtxt');\n\t\t\t\t\n\t\t\t\t// noinspection JSUnresolvedVariable\n\t\t\t\tif (type !== '' && helper.in_array(provider, opts.form.item_wrapper_hidden)) {\n\t\t\t\t\titemWrapper.hide();\n\t\t\t\t}\n\n\t\t\t\t//when feed type is changed\n\t\t\t\tif( 'feedType' === e.target.id ) {\n\t\t\t\t\tif (type === 'csv' || type === 'txt' || type === 'tsv') {\n\t\t\t\t\t\titemWrapper.hide();\n\t\t\t\t\t\twf_csv_txt.show();\n\n\t\t\t\t\t\tif( 'tsv' === type ) {\n\t\t\t\t\t\t\t$('#delimiter option:last').prop(\"selected\", \"selected\");\n\t\t\t\t\t\t} else if( 'csv' === type ) {\n\t\t\t\t\t\t\t$('#delimiter option:first').prop(\"selected\", \"selected\");\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if( type === 'xml' ) {\n\t\t\t\t\t\titemWrapper.show();\n\t\t\t\t\t\twf_csv_txt.hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})\n\t\t\t.trigger('change');\n\n\n\t\t// product Attribute class\n\t\tclass WooFeedCustomFields {\n\n\t\t\tconstructor( field, status, isTaxonomy ) {\n\t\t\t\tthis.productCustomFields( field, status, isTaxonomy );\n\t\t\t}\n\n\t\t\tcacheClear() {\n\t\t\t\tlet data = {\n\t\t\t\t\taction: 'woo_feed_product_attribute_cache_remove',\n\t\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t\t};\n\t\t\t\t$.ajax({\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\t\tdata\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tproductCustomFields( field, status = false, isTaxonomy ) {\n\t\t\t\tlet data = {\n\t\t\t\t\taction: 'woo_feed_custom_fields_status_change',\n\t\t\t\t\tnonce: wpf_ajax_obj.ajax.nonce,\n\t\t\t\t\tfield,\n\t\t\t\t\tstatus,\n\t\t\t\t\tisTaxonomy\n\t\t\t\t};\n\t\t\t\t$.ajax({\n\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\turl: wpf_ajax_obj.wpf_ajax_url,\n\t\t\t\t\tdata,\n\t\t\t\t\tsuccess: ( response ) => {\n\t\t\t\t\t\tif( response.success ) {\n\t\t\t\t\t\t\tthis.cacheClear();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.log( response );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t$(document).on('click', '.woofeed-custom-fields [id*=\"-switcher\"]', function () {\n\t\t\tlet field = $(this).attr( 'id' ).split( '-' )[0],\n\t\t\t\tisTaxonomy = $(this).data( 'taxonomy' ),\n\t\t\t\tstatus = $(this).prop( 'checked' );\n\t\t\tnew WooFeedCustomFields( field, status, isTaxonomy );\n\t\t});\n\t});\n\n\t$(document).on('click', '#woo-feed-debug-log-download', function (e) {\n\t\te.preventDefault();\n\t\t$(\"<a />\", {\n\t\t\tdownload: new Date() + \".log\",\n\t\t\thref: URL.createObjectURL(\n\t\t\t\tnew Blob([$(\"#woo-feed-debug-log\").val()], {\n\t\t\t\t\ttype: \"text/plain\"\n\t\t\t\t})),\n\t\t}).appendTo(\"body\")[0].click();\n\t});\n\n})(jQuery, window, document, wp.ajax, wpf_ajax_obj);\n"]}
|
admin/partials/woo-feed-status.php
CHANGED
@@ -40,7 +40,10 @@
|
|
40 |
|
41 |
<?php if ( $tab_name && 'log-tab' === $tab_name ) :?>
|
42 |
<br><br>
|
43 |
-
<textarea name="" id=""
|
|
|
|
|
|
|
44 |
<?php else : ?>
|
45 |
<br><br>
|
46 |
<div class="woo-feed-status-table-wrapper succ">
|
40 |
|
41 |
<?php if ( $tab_name && 'log-tab' === $tab_name ) :?>
|
42 |
<br><br>
|
43 |
+
<textarea name="" id="woo-feed-debug-log" rows="30" style="width: 100%"><?php echo esc_html($system_data->get_logs()); ?></textarea>
|
44 |
+
<br/>
|
45 |
+
<br/>
|
46 |
+
<a href="#" class="button button-large button-primary right" id="woo-feed-debug-log-download"><?php echo __('Download', 'woo-feed'); ?></a>
|
47 |
<?php else : ?>
|
48 |
<br><br>
|
49 |
<div class="woo-feed-status-table-wrapper succ">
|
languages/woo-feed.pot
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the WooFeed package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
@@ -12,118 +12,166 @@ msgstr ""
|
|
12 |
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
|
13 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
14 |
|
15 |
-
#: woo-feed.php:
|
16 |
msgid "Unauthorized Action."
|
17 |
msgstr ""
|
18 |
|
19 |
-
#: woo-feed.php:
|
20 |
msgid "Invalid Request."
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: woo-feed.php:
|
24 |
msgid "Failed to fetch products."
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: woo-feed.php:
|
28 |
msgid "Invalid Feed."
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: woo-feed.php:
|
32 |
msgid "Feed Making Complete"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: woo-feed.php:
|
36 |
msgid "Failed security check"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: woo-feed.php:
|
40 |
msgid "Invalid Feed Type!"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: woo-feed.php:
|
44 |
msgid "Invalid Merchant"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: admin/class-woo-feed-admin.php:
|
48 |
msgid "N/A"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: admin/class-woo-feed-admin.php:
|
52 |
msgid "Generating..."
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: admin/class-woo-feed-admin.php:
|
56 |
msgid "Learn More.."
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: admin/class-woo-feed-admin.php:
|
60 |
msgid "Select A Category"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: admin/class-woo-feed-admin.php:
|
64 |
msgid "Loading Template..."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: admin/class-woo-feed-admin.php:
|
68 |
msgid "Delivering Configuration..."
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: admin/class-woo-feed-admin.php:
|
72 |
msgid "Saving Configuration..."
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: admin/class-woo-feed-admin.php:
|
76 |
msgid "Wait! Checking Extensions ..."
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: admin/class-woo-feed-admin.php:
|
80 |
msgid "Warning! Enable PHP ssh2 extension to use SFTP. Contact your server administrator."
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: admin/class-woo-feed-admin.php:
|
84 |
msgid "SFTP Available!"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: admin/class-woo-feed-admin.php:
|
88 |
msgid "Please add one or more items to continue."
|
89 |
msgstr ""
|
90 |
|
91 |
-
#: admin/class-woo-feed-admin.php:
|
92 |
msgid "Are you sure you want to delete this item?"
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: admin/class-woo-feed-admin.php:
|
96 |
msgid "Are you sure you want to delete selected items?"
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: admin/class-woo-feed-admin.php:
|
100 |
msgid "There was an error processing ajax request."
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: admin/class-woo-feed-admin.php:
|
104 |
msgid "Docs"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: admin/class-woo-feed-admin.php:
|
108 |
msgid "Settings"
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: admin/class-woo-feed-admin.php:
|
112 |
-
msgid "
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: admin/class-woo-feed-admin.php:
|
116 |
msgid "Manage Feeds"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: admin/class-woo-feed-admin.php:
|
120 |
msgid "Make Feed"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: admin/class-woo-feed-admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
msgid "Documentation"
|
125 |
msgstr ""
|
126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
127 |
#: admin/class-woo-feed-manage-list.php:36
|
128 |
msgid "feed"
|
129 |
msgstr ""
|
@@ -132,7 +180,7 @@ msgstr ""
|
|
132 |
msgid "feeds"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: admin/class-woo-feed-manage-list.php:113
|
136 |
msgid "View"
|
137 |
msgstr ""
|
138 |
|
@@ -140,7 +188,7 @@ msgstr ""
|
|
140 |
msgid "Regenerate"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: admin/class-woo-feed-manage-list.php:116
|
144 |
msgid "Download"
|
145 |
msgstr ""
|
146 |
|
@@ -148,48 +196,60 @@ msgstr ""
|
|
148 |
msgid "Export Feed Config"
|
149 |
msgstr ""
|
150 |
|
151 |
-
#: admin/class-woo-feed-manage-list.php:
|
152 |
msgid "No feed available."
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: admin/class-woo-feed-manage-list.php:
|
156 |
msgid "Auto Update"
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: admin/class-woo-feed-manage-list.php:
|
160 |
msgid "Feed Name"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: admin/class-woo-feed-manage-list.php:
|
164 |
msgid "Provider"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: admin/class-woo-feed-manage-list.php:
|
168 |
msgid "Type"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: admin/class-woo-feed-manage-list.php:
|
172 |
msgid "Feed URL"
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: admin/class-woo-feed-manage-list.php:
|
176 |
msgid "Last Updated"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: admin/class-woo-feed-manage-list.php:
|
180 |
-
msgid "
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: admin/class-woo-feed-
|
184 |
-
msgid "
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: admin/class-woo-feed-
|
188 |
-
msgid "
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: admin/class-woo-feed-
|
192 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
msgstr ""
|
194 |
|
195 |
#. translators: %s: FAQ Title
|
@@ -197,15 +257,15 @@ msgstr ""
|
|
197 |
msgid "Toggle panel: %s"
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: includes/class-woo-feed-docs.php:
|
201 |
msgid "Still need help?"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: includes/class-woo-feed-docs.php:
|
205 |
msgid "Have we not answered your question?<br>Don't worry, you can contact us for more information..."
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: includes/class-woo-feed-docs.php:
|
209 |
msgid "Get Support"
|
210 |
msgstr ""
|
211 |
|
@@ -217,7 +277,7 @@ msgstr ""
|
|
217 |
msgid "WooCommerce"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: includes/helper.php:204, includes/helper.php:221
|
221 |
msgid "WooCommerce Product Feed"
|
222 |
msgstr ""
|
223 |
|
@@ -231,140 +291,312 @@ msgstr ""
|
|
231 |
msgid "%1$s requires %2$s version %3$s or above and %4$s found. Please upgrade %2$s to the latest version here %5$s"
|
232 |
msgstr ""
|
233 |
|
234 |
-
#: includes/helper.php:
|
|
|
|
|
|
|
|
|
235 |
msgid "WC_Product_Query"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: includes/helper.php:
|
239 |
msgid "WP_Query"
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: includes/helper.php:
|
243 |
msgid "Both"
|
244 |
msgstr ""
|
245 |
|
246 |
-
#: includes/helper.php:
|
247 |
msgid "No Expiration "
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: includes/helper.php:
|
251 |
msgid "1 Month"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: includes/helper.php:
|
255 |
msgid "1 Week"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: includes/helper.php:
|
259 |
msgid "24 Hours"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: includes/helper.php:
|
263 |
msgid "12 Hours"
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: includes/helper.php:
|
267 |
msgid "6 Hours"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: includes/helper.php:
|
271 |
msgid "1 Hours"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: includes/helper.php:
|
275 |
msgid "Feed Specification:"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: includes/helper.php:
|
|
|
|
|
|
|
|
|
279 |
msgid "Invalid Request"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: includes/helper.php:
|
283 |
msgid "Empty File Uploaded. Try again."
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: includes/helper.php:
|
287 |
msgid "Empty File"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: includes/helper.php:
|
291 |
msgid "« Back"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: includes/helper.php:
|
295 |
msgid "Unable to read file content"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: includes/helper.php:
|
299 |
msgid "Invalid File"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: includes/helper.php:
|
303 |
msgid "Unable to read data from file."
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: includes/helper.php:
|
307 |
msgid "Unable to read file info."
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: includes/helper.php:
|
311 |
msgid "Unable to read feed data from file."
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: includes/helper.php:
|
315 |
msgid "Unable to verify the file."
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: includes/helper.php:
|
319 |
msgid "Invalid or corrupted config file."
|
320 |
msgstr ""
|
321 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
#. translators: 1: error message 2: file name and path 3: line number
|
323 |
-
#: includes/log-helper.php:
|
324 |
msgid "%1$s in %2$s on line %3$s"
|
325 |
msgstr ""
|
326 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
#: admin/partials/woo-feed-admin-display.php:38
|
328 |
msgid "New WooCommerce Product Feed"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: admin/partials/woo-feed-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
msgid "Content Settings"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: admin/partials/woo-feed-content-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
336 |
msgid "Template"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: admin/partials/woo-feed-content-settings.php:
|
340 |
msgid "Select a template"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: admin/partials/woo-feed-content-settings.php:
|
344 |
msgid "File Name"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: admin/partials/woo-feed-content-settings.php:
|
348 |
msgid "Filename should be unique. Otherwise it will override the existing filename."
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: admin/partials/woo-feed-content-settings.php:
|
352 |
msgid "Feed Type"
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: admin/partials/woo-feed-content-settings.php:
|
356 |
msgid "Items Wrapper"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: admin/partials/woo-feed-content-settings.php:
|
360 |
msgid "Single Item Wrapper"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: admin/partials/woo-feed-content-settings.php:
|
364 |
msgid "Delimiter"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: admin/partials/woo-feed-content-settings.php:
|
368 |
msgid "Enclosure"
|
369 |
msgstr ""
|
370 |
|
@@ -397,7 +629,7 @@ msgid "Attribute"
|
|
397 |
msgstr ""
|
398 |
|
399 |
#: admin/partials/woo-feed-edit-config.php:54, admin/partials/woo-feed-edit-config.php:125
|
400 |
-
msgid "Pattern"
|
401 |
msgstr ""
|
402 |
|
403 |
#: admin/partials/woo-feed-edit-config.php:82, admin/partials/woo-feed-edit-config.php:141
|
@@ -408,59 +640,59 @@ msgstr ""
|
|
408 |
msgid "Add New Attribute"
|
409 |
msgstr ""
|
410 |
|
411 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
412 |
msgid "Campaign URL Builder"
|
413 |
msgstr ""
|
414 |
|
415 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
416 |
msgid "Campaign Source"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
420 |
msgid "Required"
|
421 |
msgstr ""
|
422 |
|
423 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
424 |
msgid "The referrer: (e.g. google, newsletter)"
|
425 |
msgstr ""
|
426 |
|
427 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
428 |
msgid "Campaign Medium"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
432 |
msgid "Marketing medium: (e.g. cpc, banner, email)"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
436 |
msgid "Campaign Name"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
440 |
msgid "Product, promo code, or slogan (e.g. spring_sale)"
|
441 |
msgstr ""
|
442 |
|
443 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
444 |
msgid "Campaign Term"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
448 |
msgid "Identify the keywords"
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
452 |
msgid "Campaign Content"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
456 |
msgid "Use to differentiate ads"
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
460 |
msgid "Fill out the required fields (marked with *) in the form above, if any required field is empty, then the parameters will not be applied."
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: admin/partials/woo-feed-edit-filter.php:
|
464 |
msgid "Learn more about Campaign URL"
|
465 |
msgstr ""
|
466 |
|
@@ -476,15 +708,15 @@ msgstr ""
|
|
476 |
msgid "Filter"
|
477 |
msgstr ""
|
478 |
|
479 |
-
#: admin/partials/woo-feed-edit-tabs.php:
|
480 |
msgid "FTP/SFTP"
|
481 |
msgstr ""
|
482 |
|
483 |
-
#: admin/partials/woo-feed-edit-tabs.php:
|
484 |
msgid "Save"
|
485 |
msgstr ""
|
486 |
|
487 |
-
#: admin/partials/woo-feed-edit-tabs.php:
|
488 |
msgid "Update and Generate Feed"
|
489 |
msgstr ""
|
490 |
|
@@ -516,22 +748,26 @@ msgstr ""
|
|
516 |
msgid "Import Now"
|
517 |
msgstr ""
|
518 |
|
519 |
-
#: admin/partials/woo-feed-manage-list.php:
|
520 |
-
msgid "Generating Product Feed"
|
521 |
-
msgstr ""
|
522 |
-
|
523 |
-
#: admin/partials/woo-feed-manage-list.php:95
|
524 |
msgid "Auto Update Feed Interval"
|
525 |
msgstr ""
|
526 |
|
527 |
-
#: admin/partials/woo-feed-manage-list.php:
|
528 |
msgid "Interval"
|
529 |
msgstr ""
|
530 |
|
531 |
-
#: admin/partials/woo-feed-manage-list.php:
|
532 |
msgid "Update Interval"
|
533 |
msgstr ""
|
534 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
535 |
#: admin/partials/woo-feed-pro-vs-free.php:74, admin/partials/woo-feed-pro-vs-free.php:185
|
536 |
msgid "Unlimited Products"
|
537 |
msgstr ""
|
@@ -564,10 +800,6 @@ msgstr ""
|
|
564 |
msgid "Custom taxonomy"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: admin/partials/woo-feed-pro-vs-free.php:82
|
568 |
-
msgid "WP Options"
|
569 |
-
msgstr ""
|
570 |
-
|
571 |
#: admin/partials/woo-feed-pro-vs-free.php:83
|
572 |
msgid "Product/Post Meta"
|
573 |
msgstr ""
|
@@ -628,7 +860,7 @@ msgstr ""
|
|
628 |
msgid "Auto Feed Update"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: admin/partials/woo-feed-pro-vs-free.php:161, includes/classes/class-woo-feed-dropdown.php:
|
632 |
msgid "Product Attributes"
|
633 |
msgstr ""
|
634 |
|
@@ -688,15 +920,11 @@ msgstr ""
|
|
688 |
msgid "Remove Parent Products"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: admin/partials/woo-feed-pro-vs-free.php:225
|
692 |
-
msgid "Category Mapping"
|
693 |
-
msgstr ""
|
694 |
-
|
695 |
#: admin/partials/woo-feed-pro-vs-free.php:229
|
696 |
msgid "Dynamic Attributes"
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: admin/partials/woo-feed-pro-vs-free.php:233, includes/classes/class-woo-feed-dropdown.php:
|
700 |
msgid "Price With Tax"
|
701 |
msgstr ""
|
702 |
|
@@ -832,375 +1060,603 @@ msgstr ""
|
|
832 |
msgid "Join the squad today!"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: admin/partials/woo-feed-settings.php:
|
836 |
msgid "Common Settings"
|
837 |
msgstr ""
|
838 |
|
839 |
-
#: admin/partials/woo-feed-settings.php:
|
|
|
|
|
|
|
|
|
840 |
msgid "Product per batch"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: admin/partials/woo-feed-settings.php:
|
844 |
msgid "Don't change the value if you are not sure about this. Plugin may fail to make feed."
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: admin/partials/woo-feed-settings.php:
|
848 |
msgid "Product Query Type"
|
849 |
msgstr ""
|
850 |
|
851 |
-
#: admin/partials/woo-feed-settings.php:
|
852 |
msgid "Debug Mode"
|
853 |
msgstr ""
|
854 |
|
855 |
-
#: admin/partials/woo-feed-settings.php:
|
856 |
msgid "Off"
|
857 |
msgstr ""
|
858 |
|
859 |
-
#: admin/partials/woo-feed-settings.php:
|
860 |
msgid "On"
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: admin/partials/woo-feed-settings.php:
|
864 |
msgid "Clear All Log Data"
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: admin/partials/woo-feed-settings.php:
|
868 |
msgid "Enabling Logging will decrease performance of feed generation."
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: admin/partials/woo-feed-settings.php:
|
872 |
msgid "Send Debug Info"
|
873 |
msgstr ""
|
874 |
|
875 |
-
#: admin/partials/woo-feed-settings.php:
|
876 |
-
msgid "Allow
|
877 |
msgstr ""
|
878 |
|
879 |
-
#: admin/partials/woo-feed-settings.php:
|
880 |
msgid "To opt out, leave this box unchecked. Your Feed Data remains un-tracked, and no data will be collected. No sensitive data is tracked."
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: admin/partials/woo-feed-settings.php:
|
884 |
msgid "See What We Collect."
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: admin/partials/woo-feed-settings.php:
|
888 |
-
msgid "
|
889 |
msgstr ""
|
890 |
|
891 |
-
#: admin/partials/woo-feed-settings.php:
|
892 |
msgid "Purge Cache Now"
|
893 |
msgstr ""
|
894 |
|
895 |
-
#: admin/partials/woo-feed-settings.php:
|
896 |
msgid "When to expire the Cache."
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: admin/partials/woo-feed-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
900 |
msgid "Save Changes"
|
901 |
msgstr ""
|
902 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
903 |
#. translators: 1: Method Name 2: Method Name
|
904 |
#: includes/classes/class-woo-feed-admin-message.php:78
|
905 |
msgid "%1$s Should be called before %2$s"
|
906 |
msgstr ""
|
907 |
|
908 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
|
|
|
|
|
|
|
|
909 |
msgid "Video Tutorials"
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
913 |
msgid "Feed Config Created Successfully."
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
917 |
msgid "Feed Config Updated Successfully."
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
921 |
msgid "Feed Config Successfully Imported."
|
922 |
msgstr ""
|
923 |
|
924 |
#. translators: Feed URL
|
925 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
926 |
msgid "Feed Generated Successfully. Feed URL: %s"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
930 |
msgid "Warning:"
|
931 |
msgstr ""
|
932 |
|
933 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
934 |
msgid "Learn more..."
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
938 |
-
msgid "Google Product category is not selected. Your
|
939 |
msgstr ""
|
940 |
|
941 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
942 |
msgid "Feed auto update interval updated."
|
943 |
msgstr ""
|
944 |
|
945 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
946 |
msgid "Unable to save auto update interval."
|
947 |
msgstr ""
|
948 |
|
949 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
950 |
msgid "Invalid interval value."
|
951 |
msgstr ""
|
952 |
|
953 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
954 |
msgid "Invalid request."
|
955 |
msgstr ""
|
956 |
|
957 |
-
#: includes/classes/class-woo-feed-admin-message.php:
|
958 |
msgid "Settings Updated."
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
962 |
msgid "Primary Attributes"
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
966 |
msgid "Product Id"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
970 |
msgid "Product Title"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
974 |
msgid "Product Description"
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
978 |
msgid "Product Short Description"
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
982 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
986 |
-
msgid "
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
990 |
msgid "Product URL"
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
994 |
msgid "External Product URL"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
998 |
-
msgid "
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1002 |
msgid "Parent Id [Group Id]"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1006 |
msgid "SKU"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
1010 |
msgid "Parent SKU"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1014 |
msgid "Availability"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1018 |
msgid "Quantity"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1022 |
msgid "Regular Price"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1026 |
msgid "Price"
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1030 |
msgid "Sale Price"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1034 |
msgid "Regular Price With Tax"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1038 |
msgid "Sale Price With Tax"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1042 |
msgid "Sale Start Date"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1046 |
msgid "Sale End Date"
|
1047 |
msgstr ""
|
1048 |
|
1049 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
1050 |
msgid "Weight"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
1054 |
msgid "Width"
|
1055 |
msgstr ""
|
1056 |
|
1057 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1058 |
msgid "Height"
|
1059 |
msgstr ""
|
1060 |
|
1061 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1062 |
msgid "Length"
|
1063 |
msgstr ""
|
1064 |
|
1065 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1066 |
msgid "Shipping Class"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1070 |
msgid "Product Type"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1074 |
msgid "Variation Type"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1078 |
msgid "Visibility"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1082 |
msgid "Total Rating"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1086 |
msgid "Average Rating"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1090 |
msgid "Tags"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1094 |
msgid "Sale Price Effective Date"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1098 |
msgid "Is Bundle"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1102 |
msgid "Author Name"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1106 |
msgid "Author Email"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1110 |
msgid "Date Created"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1114 |
msgid "Date Updated"
|
1115 |
msgstr ""
|
1116 |
|
1117 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1118 |
msgid "Title [All in One SEO]"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1122 |
msgid "Description [All in One SEO]"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1126 |
msgid "Title [Yoast SEO]"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1130 |
msgid "Description [Yoast SEO]"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1134 |
-
msgid "
|
1135 |
msgstr ""
|
1136 |
|
1137 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1138 |
-
msgid "
|
1139 |
msgstr ""
|
1140 |
|
1141 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1142 |
-
msgid "
|
1143 |
msgstr ""
|
1144 |
|
1145 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1146 |
-
msgid "
|
1147 |
msgstr ""
|
1148 |
|
1149 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1150 |
-
msgid "
|
1151 |
msgstr ""
|
1152 |
|
1153 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1154 |
-
msgid "
|
1155 |
msgstr ""
|
1156 |
|
1157 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1158 |
-
msgid "
|
1159 |
msgstr ""
|
1160 |
|
1161 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1162 |
-
msgid "
|
1163 |
msgstr ""
|
1164 |
|
1165 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1166 |
-
msgid "
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1170 |
-
msgid "
|
1171 |
msgstr ""
|
1172 |
|
1173 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1174 |
-
msgid "
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1178 |
-
msgid "
|
1179 |
msgstr ""
|
1180 |
|
1181 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1182 |
-
msgid "
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: includes/classes/class-woo-feed-dropdown.php:
|
1186 |
-
msgid "
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#: includes/classes/class-woo-feed-
|
1190 |
-
msgid "
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
|
1194 |
-
|
1195 |
-
msgid "Attempted to connect to %1$s@%2$s:%3$s"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
-
#: includes/classes/class-woo-feed-
|
1199 |
-
msgid "
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
|
1203 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1204 |
msgid "Attempted to login %1$s@%2$s:%3$s"
|
1205 |
msgstr ""
|
1206 |
|
@@ -1221,6 +1677,55 @@ msgstr ""
|
|
1221 |
msgid "Excerpt View"
|
1222 |
msgstr ""
|
1223 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1224 |
#: includes/classes/class-woo-feed-merchant.php:311
|
1225 |
msgid "Custom Template"
|
1226 |
msgstr ""
|
@@ -1234,371 +1739,451 @@ msgid "Popular Templates"
|
|
1234 |
msgstr ""
|
1235 |
|
1236 |
#: includes/classes/class-woo-feed-merchant.php:324
|
1237 |
-
msgid "Google
|
1238 |
msgstr ""
|
1239 |
|
1240 |
#: includes/classes/class-woo-feed-merchant.php:325
|
1241 |
-
msgid "
|
1242 |
msgstr ""
|
1243 |
|
1244 |
#: includes/classes/class-woo-feed-merchant.php:326
|
1245 |
-
msgid "
|
1246 |
msgstr ""
|
1247 |
|
1248 |
#: includes/classes/class-woo-feed-merchant.php:327
|
1249 |
-
msgid "Google
|
1250 |
msgstr ""
|
1251 |
|
1252 |
#: includes/classes/class-woo-feed-merchant.php:328
|
1253 |
-
msgid "Google
|
1254 |
msgstr ""
|
1255 |
|
1256 |
#: includes/classes/class-woo-feed-merchant.php:329
|
1257 |
-
msgid "Google
|
1258 |
msgstr ""
|
1259 |
|
1260 |
#: includes/classes/class-woo-feed-merchant.php:330
|
1261 |
-
msgid "Google
|
1262 |
msgstr ""
|
1263 |
|
1264 |
#: includes/classes/class-woo-feed-merchant.php:331
|
1265 |
-
msgid "
|
1266 |
msgstr ""
|
1267 |
|
1268 |
#: includes/classes/class-woo-feed-merchant.php:332
|
1269 |
-
msgid "
|
1270 |
msgstr ""
|
1271 |
|
1272 |
#: includes/classes/class-woo-feed-merchant.php:333
|
1273 |
-
msgid "
|
1274 |
msgstr ""
|
1275 |
|
1276 |
#: includes/classes/class-woo-feed-merchant.php:334
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1277 |
msgid "Yandex (CSV)"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1281 |
msgid "Templates"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1285 |
msgid "AdForm"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1289 |
msgid "AdRoll"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1293 |
msgid "Avantlink"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1297 |
msgid "Become"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1301 |
msgid "Beslist.nl"
|
1302 |
msgstr ""
|
1303 |
|
1304 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1305 |
msgid "Billiger.de"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1309 |
msgid "Bol.com"
|
1310 |
msgstr ""
|
1311 |
|
1312 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1313 |
msgid "Bonanza"
|
1314 |
msgstr ""
|
1315 |
|
1316 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1317 |
msgid "CDiscount.fr"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1321 |
msgid "Comparer.be"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1325 |
msgid "Connexity"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1329 |
msgid "Criteo"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1333 |
msgid "Crowdfox"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1337 |
msgid "Daisycon Advertiser (General)"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1341 |
msgid "Daisycon Advertiser (Automotive)"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1345 |
msgid "Daisycon Advertiser (Books)"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1349 |
msgid "Daisycon Advertiser (Cosmetics)"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1353 |
msgid "Daisycon Advertiser (Daily Offers)"
|
1354 |
msgstr ""
|
1355 |
|
1356 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1357 |
msgid "Daisycon Advertiser (Electronics)"
|
1358 |
msgstr ""
|
1359 |
|
1360 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1361 |
msgid "Daisycon Advertiser (Fashion)"
|
1362 |
msgstr ""
|
1363 |
|
1364 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1365 |
msgid "Daisycon Advertiser (Food & Drinks)"
|
1366 |
msgstr ""
|
1367 |
|
1368 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1369 |
msgid "Daisycon Advertiser (Holidays: Accommodations and transport)"
|
1370 |
msgstr ""
|
1371 |
|
1372 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1373 |
msgid "Daisycon Advertiser (Holidays: Accommodations)"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1377 |
msgid "Daisycon Advertiser (Holidays: Trips)"
|
1378 |
msgstr ""
|
1379 |
|
1380 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1381 |
msgid "Daisycon Advertiser (Home & Garden)"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1385 |
msgid "Daisycon Advertiser (Housing)"
|
1386 |
msgstr ""
|
1387 |
|
1388 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1389 |
msgid "Daisycon Advertiser (Magazines)"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1393 |
msgid "Daisycon Advertiser (Studies & Trainings)"
|
1394 |
msgstr ""
|
1395 |
|
1396 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1397 |
msgid "Daisycon Advertiser (Telecom: Accessories)"
|
1398 |
msgstr ""
|
1399 |
|
1400 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1401 |
msgid "Daisycon Advertiser (Telecom: All-in-one)"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1405 |
msgid "Daisycon Advertiser (Telecom: GSM + Subscription)"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1409 |
msgid "Daisycon Advertiser (Telecom: GSM only)"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1413 |
msgid "Daisycon Advertiser (Telecom: Sim only)"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1417 |
msgid "Daisycon Advertiser (Work & Jobs)"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1421 |
msgid "Dooyoo"
|
1422 |
msgstr ""
|
1423 |
|
1424 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1425 |
msgid "Fruugo"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1429 |
msgid "Fruugoaustralia.com"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1433 |
msgid "Fyndiq.se"
|
1434 |
msgstr ""
|
1435 |
|
1436 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1437 |
msgid "Hintaseuranta.fi"
|
1438 |
msgstr ""
|
1439 |
|
1440 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1441 |
msgid "Incurvy"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1445 |
msgid "Jet.com"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1449 |
msgid "Kelkoo"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1453 |
msgid "Kieskeurig.nl"
|
1454 |
msgstr ""
|
1455 |
|
1456 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1457 |
msgid "Kijiji.ca"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1461 |
msgid "LeGuide"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1465 |
msgid "Marktplaats.nl"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1469 |
msgid "Miinto.nl"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1473 |
msgid "Modina.de"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1477 |
msgid "Myshopping.com.au"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1481 |
msgid "TheNextAd"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1485 |
msgid "Nextag"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1489 |
msgid "Polyvore"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1493 |
msgid "Price Grabber"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1497 |
-
msgid "
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1501 |
-
msgid "
|
1502 |
msgstr ""
|
1503 |
|
1504 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1505 |
msgid "Rakuten.de"
|
1506 |
msgstr ""
|
1507 |
|
1508 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1509 |
msgid "Real"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1513 |
msgid "ShareASale"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1517 |
msgid "Shopalike.fr"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1521 |
msgid "Shopbot"
|
1522 |
msgstr ""
|
1523 |
|
1524 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1525 |
msgid "Shopmania"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1529 |
msgid "Shopping.com"
|
1530 |
msgstr ""
|
1531 |
|
1532 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1533 |
msgid "Shopzilla"
|
1534 |
msgstr ""
|
1535 |
|
1536 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1537 |
msgid "SkinFlint.co.uk"
|
1538 |
msgstr ""
|
1539 |
|
1540 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1541 |
msgid "Skroutz.gr"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1545 |
msgid "Smartly.io"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1549 |
msgid "Spartoo.fi"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1553 |
msgid "Stylight.com"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1557 |
msgid "Trovaprezzi.it"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1561 |
msgid "Twenga"
|
1562 |
msgstr ""
|
1563 |
|
1564 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1565 |
msgid "Vertaa.fi"
|
1566 |
msgstr ""
|
1567 |
|
1568 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1569 |
msgid "Walmart"
|
1570 |
msgstr ""
|
1571 |
|
1572 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1573 |
msgid "Webmarchand"
|
1574 |
msgstr ""
|
1575 |
|
1576 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
|
|
|
|
|
|
|
|
1577 |
msgid "Wish.com"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1581 |
msgid "Yahoo NFA"
|
1582 |
msgstr ""
|
1583 |
|
1584 |
-
#: includes/classes/class-woo-feed-merchant.php:
|
1585 |
msgid "Zap.co.il"
|
1586 |
msgstr ""
|
1587 |
|
1588 |
-
#: includes/classes/class-woo-feed-
|
1589 |
-
msgid "
|
1590 |
msgstr ""
|
1591 |
|
1592 |
-
#: includes/classes/class-woo-feed-
|
1593 |
-
msgid "
|
1594 |
msgstr ""
|
1595 |
|
1596 |
-
#: includes/classes/class-woo-feed-products.php:
|
1597 |
-
msgid "
|
1598 |
msgstr ""
|
1599 |
|
1600 |
-
#: includes/classes/class-woo-feed-products.php:
|
1601 |
-
msgid "
|
|
|
|
|
|
|
|
|
1602 |
msgstr ""
|
1603 |
|
1604 |
#: includes/classes/class-woo-feed-webappick-api.php:96
|
@@ -1676,34 +2261,33 @@ msgid "Premium"
|
|
1676 |
msgstr ""
|
1677 |
|
1678 |
#. translators: 1: plugin name,2: Slightly Smiling Face (Emoji), 3: line break 'br' tag
|
1679 |
-
#: includes/classes/class-woo-feed-webappick-api.php:
|
1680 |
-
msgid "%2$s We have spent countless hours developing this free plugin for you, and we would really appreciate it if you dropped us a quick rating. Your opinion matters a lot to us.%
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: includes/classes/class-woo-feed-webappick-api.php:
|
1684 |
msgid "Remind me later"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: includes/classes/class-woo-feed-webappick-api.php:
|
1688 |
msgid "I would not"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: includes/classes/class-woo-feed-webappick-api.php:
|
1692 |
-
msgid "
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
|
1696 |
-
|
1697 |
-
msgid "You are awesome for using %1$s. Free version works great for up to %2$s2000 products including variations.%3$s"
|
1698 |
msgstr ""
|
1699 |
|
1700 |
#. translators: 1: This plugin name, 2: Pro version purchase link
|
1701 |
-
#: includes/classes/class-woo-feed-webappick-api.php:
|
1702 |
msgid "You are awesome for using %1$s. Using the %2$s version you can make multilingual feed for your WPML languages."
|
1703 |
msgstr ""
|
1704 |
|
1705 |
#. translators: 1: This plugin Name, 2: Incompatible plugin name, 3: Pro version purchase link
|
1706 |
-
#: includes/classes/class-woo-feed-webappick-api.php:
|
1707 |
msgid "%1$s isn't fully compatible with %2$s. Get the %3$s version for full support."
|
1708 |
msgstr ""
|
1709 |
|
@@ -1711,6 +2295,156 @@ msgstr ""
|
|
1711 |
msgid "Request Successful."
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#:
|
1715 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1716 |
msgstr ""
|
1 |
+
# Copyright (C) 2021 WooFeed
|
2 |
# This file is distributed under the same license as the WooFeed package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
12 |
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
|
13 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
14 |
|
15 |
+
#: woo-feed.php:210, woo-feed.php:330, woo-feed.php:405, woo-feed.php:761, woo-feed.php:801, woo-feed.php:821, woo-feed.php:847
|
16 |
msgid "Unauthorized Action."
|
17 |
msgstr ""
|
18 |
|
19 |
+
#: woo-feed.php:215, woo-feed.php:334, includes/helper.php:1799, includes/classes/class-woo-feed-webappick-api.php:427, includes/classes/class-woo-feed-webappick-api.php:451
|
20 |
msgid "Invalid Request."
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: woo-feed.php:288
|
24 |
msgid "Failed to fetch products."
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: woo-feed.php:409
|
28 |
msgid "Invalid Feed."
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: woo-feed.php:533
|
32 |
msgid "Feed Making Complete"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: woo-feed.php:617, woo-feed.php:657
|
36 |
msgid "Failed security check"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: woo-feed.php:621, woo-feed.php:661
|
40 |
msgid "Invalid Feed Type!"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: woo-feed.php:767
|
44 |
msgid "Invalid Merchant"
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: admin/class-woo-feed-admin.php:148, includes/helper.php:770
|
48 |
msgid "N/A"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: admin/class-woo-feed-admin.php:149
|
52 |
msgid "Generating..."
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: admin/class-woo-feed-admin.php:150
|
56 |
msgid "Learn More.."
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: admin/class-woo-feed-admin.php:152, admin/partials/woo-feed-edit-config.php:66
|
60 |
msgid "Select A Category"
|
61 |
msgstr ""
|
62 |
|
63 |
+
#: admin/class-woo-feed-admin.php:153
|
64 |
msgid "Loading Template..."
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: admin/class-woo-feed-admin.php:154
|
68 |
msgid "Delivering Configuration..."
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: admin/class-woo-feed-admin.php:155
|
72 |
msgid "Saving Configuration..."
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: admin/class-woo-feed-admin.php:156
|
76 |
msgid "Wait! Checking Extensions ..."
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: admin/class-woo-feed-admin.php:157
|
80 |
msgid "Warning! Enable PHP ssh2 extension to use SFTP. Contact your server administrator."
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: admin/class-woo-feed-admin.php:158
|
84 |
msgid "SFTP Available!"
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: admin/class-woo-feed-admin.php:159
|
88 |
msgid "Please add one or more items to continue."
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: admin/class-woo-feed-admin.php:161
|
92 |
msgid "Are you sure you want to delete this item?"
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: admin/class-woo-feed-admin.php:162
|
96 |
msgid "Are you sure you want to delete selected items?"
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: admin/class-woo-feed-admin.php:173
|
100 |
msgid "There was an error processing ajax request."
|
101 |
msgstr ""
|
102 |
|
103 |
+
#: admin/class-woo-feed-admin.php:206
|
104 |
msgid "Docs"
|
105 |
msgstr ""
|
106 |
|
107 |
+
#: admin/class-woo-feed-admin.php:208, admin/class-woo-feed-admin.php:234, admin/class-woo-feed-admin.php:234, admin/partials/woo-feed-settings.php:17
|
108 |
msgid "Settings"
|
109 |
msgstr ""
|
110 |
|
111 |
+
#: admin/class-woo-feed-admin.php:230, admin/class-woo-feed-admin.php:230, includes/classes/class-woo-feed-webappick-api.php:296
|
112 |
+
msgid "CTX Feed"
|
113 |
msgstr ""
|
114 |
|
115 |
+
#: admin/class-woo-feed-admin.php:231, admin/class-woo-feed-admin.php:231
|
116 |
msgid "Manage Feeds"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: admin/class-woo-feed-admin.php:232, admin/class-woo-feed-admin.php:232
|
120 |
msgid "Make Feed"
|
121 |
msgstr ""
|
122 |
|
123 |
+
#: admin/class-woo-feed-admin.php:233, admin/class-woo-feed-admin.php:233, admin/partials/woo-feed-category-mapping.php:25, admin/partials/woo-feed-pro-vs-free.php:225
|
124 |
+
msgid "Category Mapping"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: admin/class-woo-feed-admin.php:235, admin/class-woo-feed-admin.php:235, admin/partials/woo-feed-pro-vs-free.php:82, includes/classes/class-woo-feed-dropdown.php:641
|
128 |
+
msgid "WP Options"
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: admin/class-woo-feed-admin.php:236, admin/class-woo-feed-admin.php:236
|
132 |
+
msgid "Status"
|
133 |
+
msgstr ""
|
134 |
+
|
135 |
+
#: admin/class-woo-feed-admin.php:237, includes/classes/class-woo-feed-admin-message.php:123, includes/classes/class-woo-feed-webappick-api.php:180
|
136 |
msgid "Documentation"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: admin/class-woo-feed-category-list.php:35
|
140 |
+
msgid "mapping"
|
141 |
+
msgstr ""
|
142 |
+
|
143 |
+
#: admin/class-woo-feed-category-list.php:36
|
144 |
+
msgid "mappings"
|
145 |
+
msgstr ""
|
146 |
+
|
147 |
+
#: admin/class-woo-feed-category-list.php:186
|
148 |
+
msgid "No mapping available."
|
149 |
+
msgstr ""
|
150 |
+
|
151 |
+
#: admin/class-woo-feed-category-list.php:248
|
152 |
+
msgid "Category Name"
|
153 |
+
msgstr ""
|
154 |
+
|
155 |
+
#: admin/class-woo-feed-category-list.php:249
|
156 |
+
msgid "Category Type"
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: admin/class-woo-feed-category-list.php:250, admin/class-woo-feed-manage-list.php:291, admin/class-woo-feed-option-list.php:248, admin/partials/woo-feed-settings.php:195
|
160 |
+
msgid "Action"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: admin/class-woo-feed-category-list.php:296, admin/class-woo-feed-manage-list.php:337, admin/class-woo-feed-option-list.php:295
|
164 |
+
msgid "Delete"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: admin/class-woo-feed-category-list.php:316, admin/class-woo-feed-category-list.php:343
|
168 |
+
msgid "Failed To Delete Mapping. You do not have sufficient permission to delete."
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: admin/class-woo-feed-category-list.php:335, admin/class-woo-feed-manage-list.php:378, admin/class-woo-feed-manage-list.php:387, admin/class-woo-feed-option-list.php:336
|
172 |
+
msgid "You do not have sufficient permission to delete!"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
#: admin/class-woo-feed-manage-list.php:36
|
176 |
msgid "feed"
|
177 |
msgstr ""
|
180 |
msgid "feeds"
|
181 |
msgstr ""
|
182 |
|
183 |
+
#: admin/class-woo-feed-manage-list.php:113, includes/helper.php:902
|
184 |
msgid "View"
|
185 |
msgstr ""
|
186 |
|
188 |
msgid "Regenerate"
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: admin/class-woo-feed-manage-list.php:116, admin/partials/woo-feed-status.php:46
|
192 |
msgid "Download"
|
193 |
msgstr ""
|
194 |
|
196 |
msgid "Export Feed Config"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: admin/class-woo-feed-manage-list.php:219
|
200 |
msgid "No feed available."
|
201 |
msgstr ""
|
202 |
|
203 |
+
#: admin/class-woo-feed-manage-list.php:285
|
204 |
msgid "Auto Update"
|
205 |
msgstr ""
|
206 |
|
207 |
+
#: admin/class-woo-feed-manage-list.php:286
|
208 |
msgid "Feed Name"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: admin/class-woo-feed-manage-list.php:287
|
212 |
msgid "Provider"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: admin/class-woo-feed-manage-list.php:288, admin/partials/woo-feed-edit-config.php:12
|
216 |
msgid "Type"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: admin/class-woo-feed-manage-list.php:289
|
220 |
msgid "Feed URL"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: admin/class-woo-feed-manage-list.php:290
|
224 |
msgid "Last Updated"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: admin/class-woo-feed-manage-list.php:357
|
228 |
+
msgid "Failed To Delete Feed. You do not have sufficient permission to delete."
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: admin/class-woo-feed-option-list.php:35
|
232 |
+
msgid "option"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: admin/class-woo-feed-option-list.php:36
|
236 |
+
msgid "options"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: admin/class-woo-feed-option-list.php:185
|
240 |
+
msgid "No option saved."
|
241 |
+
msgstr ""
|
242 |
+
|
243 |
+
#: admin/class-woo-feed-option-list.php:246, admin/partials/woo-feed-add-option.php:11
|
244 |
+
msgid "Option Name"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: admin/class-woo-feed-option-list.php:247
|
248 |
+
msgid "Option Value"
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: admin/class-woo-feed-option-list.php:316, admin/class-woo-feed-option-list.php:356
|
252 |
+
msgid "Failed To Delete Option. You do not have sufficient permission to delete."
|
253 |
msgstr ""
|
254 |
|
255 |
#. translators: %s: FAQ Title
|
257 |
msgid "Toggle panel: %s"
|
258 |
msgstr ""
|
259 |
|
260 |
+
#: includes/class-woo-feed-docs.php:124, admin/partials/woo-feed-pro-vs-free.php:493
|
261 |
msgid "Still need help?"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: includes/class-woo-feed-docs.php:125, admin/partials/woo-feed-pro-vs-free.php:494
|
265 |
msgid "Have we not answered your question?<br>Don't worry, you can contact us for more information..."
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: includes/class-woo-feed-docs.php:128, admin/partials/woo-feed-pro-vs-free.php:497, includes/classes/class-woo-feed-admin-message.php:125, includes/classes/class-woo-feed-webappick-api.php:200
|
269 |
msgid "Get Support"
|
270 |
msgstr ""
|
271 |
|
277 |
msgid "WooCommerce"
|
278 |
msgstr ""
|
279 |
|
280 |
+
#: includes/helper.php:204, includes/helper.php:221
|
281 |
msgid "WooCommerce Product Feed"
|
282 |
msgstr ""
|
283 |
|
291 |
msgid "%1$s requires %2$s version %3$s or above and %4$s found. Please upgrade %2$s to the latest version here %5$s"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: includes/helper.php:289
|
295 |
+
msgid "Generating Product Feed"
|
296 |
+
msgstr ""
|
297 |
+
|
298 |
+
#: includes/helper.php:377
|
299 |
msgid "WC_Product_Query"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: includes/helper.php:378
|
303 |
msgid "WP_Query"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: includes/helper.php:379
|
307 |
msgid "Both"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: includes/helper.php:392
|
311 |
msgid "No Expiration "
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: includes/helper.php:393
|
315 |
msgid "1 Month"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: includes/helper.php:394, includes/helper.php:1891
|
319 |
msgid "1 Week"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: includes/helper.php:395, includes/helper.php:1892
|
323 |
msgid "24 Hours"
|
324 |
msgstr ""
|
325 |
|
326 |
+
#: includes/helper.php:396, includes/helper.php:1893
|
327 |
msgid "12 Hours"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: includes/helper.php:397, includes/helper.php:1894
|
331 |
msgid "6 Hours"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: includes/helper.php:398, includes/helper.php:1895
|
335 |
msgid "1 Hours"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: includes/helper.php:834
|
339 |
msgid "Feed Specification:"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: includes/helper.php:903
|
343 |
+
msgid "Open Feed File"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: includes/helper.php:1626, includes/helper.php:1626, includes/helper.php:1800, libs/WebAppick/AppServices/Insights.php:813, libs/WebAppick/AppServices/Promotions.php:362
|
347 |
msgid "Invalid Request"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: includes/helper.php:1685
|
351 |
msgid "Empty File Uploaded. Try again."
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: includes/helper.php:1686
|
355 |
msgid "Empty File"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: includes/helper.php:1689, includes/helper.php:1700, includes/helper.php:1712, includes/helper.php:1723, includes/helper.php:1737, includes/helper.php:1747, includes/helper.php:1759, includes/helper.php:1803
|
359 |
msgid "« Back"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: includes/helper.php:1696
|
363 |
msgid "Unable to read file content"
|
364 |
msgstr ""
|
365 |
|
366 |
+
#: includes/helper.php:1697, includes/helper.php:1709, includes/helper.php:1720, includes/helper.php:1734, includes/helper.php:1744, includes/helper.php:1756
|
367 |
msgid "Invalid File"
|
368 |
msgstr ""
|
369 |
|
370 |
+
#: includes/helper.php:1708
|
371 |
msgid "Unable to read data from file."
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: includes/helper.php:1719
|
375 |
msgid "Unable to read file info."
|
376 |
msgstr ""
|
377 |
|
378 |
+
#: includes/helper.php:1733
|
379 |
msgid "Unable to read feed data from file."
|
380 |
msgstr ""
|
381 |
|
382 |
+
#: includes/helper.php:1743
|
383 |
msgid "Unable to verify the file."
|
384 |
msgstr ""
|
385 |
|
386 |
+
#: includes/helper.php:1755
|
387 |
msgid "Invalid or corrupted config file."
|
388 |
msgstr ""
|
389 |
|
390 |
+
#: includes/helper.php:2631
|
391 |
+
msgid "Brand"
|
392 |
+
msgstr ""
|
393 |
+
|
394 |
+
#: includes/helper.php:2632
|
395 |
+
msgid "GTIN"
|
396 |
+
msgstr ""
|
397 |
+
|
398 |
+
#: includes/helper.php:2633
|
399 |
+
msgid "MPN"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: includes/helper.php:2634
|
403 |
+
msgid "EAN"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: includes/helper.php:2635
|
407 |
+
msgid "ISBN"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: includes/helper.php:2636
|
411 |
+
msgid "Age group"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: includes/helper.php:2637
|
415 |
+
msgid "Gender"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: includes/helper.php:2638
|
419 |
+
msgid "Material"
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: includes/helper.php:2639
|
423 |
+
msgid "Cost of good sold"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: includes/helper.php:2640, includes/classes/class-woo-feed-dropdown.php:585
|
427 |
+
msgid "Unit Price Base Measure"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: includes/helper.php:2641
|
431 |
+
msgid "Custom field 0"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
+
#: includes/helper.php:2642
|
435 |
+
msgid "Custom field 1"
|
436 |
+
msgstr ""
|
437 |
+
|
438 |
+
#: includes/helper.php:2643
|
439 |
+
msgid "Custom field 2"
|
440 |
+
msgstr ""
|
441 |
+
|
442 |
+
#: includes/helper.php:2644
|
443 |
+
msgid "Custom field 3"
|
444 |
+
msgstr ""
|
445 |
+
|
446 |
+
#: includes/helper.php:2645
|
447 |
+
msgid "Custom field 4"
|
448 |
+
msgstr ""
|
449 |
+
|
450 |
+
#: includes/helper.php:2711, includes/helper.php:2795
|
451 |
+
msgid "CUSTOM FIELDS by CTX Feed"
|
452 |
+
msgstr ""
|
453 |
+
|
454 |
+
#: includes/helper.php:2723
|
455 |
+
msgid " here."
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: includes/helper.php:2876
|
459 |
+
msgid "Mapping Not Changed"
|
460 |
+
msgstr ""
|
461 |
+
|
462 |
+
#: includes/helper.php:2882
|
463 |
+
msgid "Mapping Updated Successfully"
|
464 |
+
msgstr ""
|
465 |
+
|
466 |
+
#: includes/helper.php:3020
|
467 |
+
msgid "Clear Cache"
|
468 |
+
msgstr ""
|
469 |
+
|
470 |
+
#: includes/helper.php:3194
|
471 |
+
msgid "User meta updated successfully."
|
472 |
+
msgstr ""
|
473 |
+
|
474 |
+
#: includes/helper.php:3267, includes/helper.php:3269
|
475 |
+
msgid "by CTX Feed"
|
476 |
+
msgstr ""
|
477 |
+
|
478 |
+
#: includes/helper.php:3273, libs/WebAppick/AppServices/Insights.php:977
|
479 |
+
msgid "Name"
|
480 |
+
msgstr ""
|
481 |
+
|
482 |
+
#: includes/helper.php:3277
|
483 |
+
msgid "with commas"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: includes/helper.php:4386
|
487 |
+
msgid "Option Already Added."
|
488 |
+
msgstr ""
|
489 |
+
|
490 |
#. translators: 1: error message 2: file name and path 3: line number
|
491 |
+
#: includes/log-helper.php:63
|
492 |
msgid "%1$s in %2$s on line %3$s"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: includes/widget.php:19
|
496 |
+
msgid "Latest News from WebAppick Blog"
|
497 |
+
msgstr ""
|
498 |
+
|
499 |
+
#: includes/widget.php:50
|
500 |
+
msgid "WEBAPPICK.COM"
|
501 |
+
msgstr ""
|
502 |
+
|
503 |
+
#: includes/widget.php:64
|
504 |
+
msgid "Get more woocommerce tips & news on our blog..."
|
505 |
+
msgstr ""
|
506 |
+
|
507 |
+
#: admin/partials/woo-feed-add-option.php:3, admin/partials/woo-feed-add-option.php:18
|
508 |
+
msgid "Add Option"
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: admin/partials/woo-feed-add-option.php:13
|
512 |
+
msgid "Search Option Name"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
#: admin/partials/woo-feed-admin-display.php:38
|
516 |
msgid "New WooCommerce Product Feed"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: admin/partials/woo-feed-category-mapping-list.php:21
|
520 |
+
msgid "Category Mapping List"
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
+
#: admin/partials/woo-feed-category-mapping-list.php:21
|
524 |
+
msgid "Add New Mapping"
|
525 |
+
msgstr ""
|
526 |
+
|
527 |
+
#: admin/partials/woo-feed-category-mapping-list.php:35, admin/partials/woo-feed-category-mapping-list.php:41, admin/partials/woo-feed-category-mapping-list.php:45, admin/partials/woo-feed-option-list.php:33, admin/partials/woo-feed-option-list.php:38, admin/partials/woo-feed-option-list.php:41
|
528 |
+
msgid "Are You Sure to Delete?"
|
529 |
+
msgstr ""
|
530 |
+
|
531 |
+
#: admin/partials/woo-feed-category-mapping.php:33
|
532 |
+
msgid "Merchant"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: admin/partials/woo-feed-category-mapping.php:45
|
536 |
+
msgid "Mapping Name"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: admin/partials/woo-feed-category-mapping.php:47
|
540 |
+
msgid "Mapping Name should be unique and don't use space. Otherwise it will override the existing Category Mapping. Example: myMappingName or my_mapping_name"
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: admin/partials/woo-feed-category-mapping.php:56
|
544 |
+
msgid "Local Category"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: admin/partials/woo-feed-category-mapping.php:57
|
548 |
+
msgid "Merchant Category"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: admin/partials/woo-feed-category-mapping.php:66
|
552 |
+
msgid "Save Mapping"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: admin/partials/woo-feed-content-settings.php:26
|
556 |
msgid "Content Settings"
|
557 |
msgstr ""
|
558 |
|
559 |
+
#: admin/partials/woo-feed-content-settings.php:33
|
560 |
+
msgid "Country"
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: admin/partials/woo-feed-content-settings.php:35
|
564 |
+
msgid "Select a country"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: admin/partials/woo-feed-content-settings.php:46
|
568 |
msgid "Template"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: admin/partials/woo-feed-content-settings.php:48
|
572 |
msgid "Select a template"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: admin/partials/woo-feed-content-settings.php:57
|
576 |
msgid "File Name"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: admin/partials/woo-feed-content-settings.php:59
|
580 |
msgid "Filename should be unique. Otherwise it will override the existing filename."
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: admin/partials/woo-feed-content-settings.php:63
|
584 |
msgid "Feed Type"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: admin/partials/woo-feed-content-settings.php:83
|
588 |
msgid "Items Wrapper"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: admin/partials/woo-feed-content-settings.php:90
|
592 |
msgid "Single Item Wrapper"
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: admin/partials/woo-feed-content-settings.php:105
|
596 |
msgid "Delimiter"
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: admin/partials/woo-feed-content-settings.php:117
|
600 |
msgid "Enclosure"
|
601 |
msgstr ""
|
602 |
|
629 |
msgstr ""
|
630 |
|
631 |
#: admin/partials/woo-feed-edit-config.php:54, admin/partials/woo-feed-edit-config.php:125
|
632 |
+
msgid "Pattern (Static Value)"
|
633 |
msgstr ""
|
634 |
|
635 |
#: admin/partials/woo-feed-edit-config.php:82, admin/partials/woo-feed-edit-config.php:141
|
640 |
msgid "Add New Attribute"
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: admin/partials/woo-feed-edit-filter.php:10
|
644 |
msgid "Campaign URL Builder"
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: admin/partials/woo-feed-edit-filter.php:18, admin/partials/woo-feed-edit-filter.php:19
|
648 |
msgid "Campaign Source"
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: admin/partials/woo-feed-edit-filter.php:18, admin/partials/woo-feed-edit-filter.php:25, admin/partials/woo-feed-edit-filter.php:32
|
652 |
msgid "Required"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: admin/partials/woo-feed-edit-filter.php:21
|
656 |
msgid "The referrer: (e.g. google, newsletter)"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: admin/partials/woo-feed-edit-filter.php:25, admin/partials/woo-feed-edit-filter.php:26
|
660 |
msgid "Campaign Medium"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: admin/partials/woo-feed-edit-filter.php:28
|
664 |
msgid "Marketing medium: (e.g. cpc, banner, email)"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: admin/partials/woo-feed-edit-filter.php:32, admin/partials/woo-feed-edit-filter.php:33
|
668 |
msgid "Campaign Name"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: admin/partials/woo-feed-edit-filter.php:35
|
672 |
msgid "Product, promo code, or slogan (e.g. spring_sale)"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: admin/partials/woo-feed-edit-filter.php:39, admin/partials/woo-feed-edit-filter.php:40
|
676 |
msgid "Campaign Term"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: admin/partials/woo-feed-edit-filter.php:42
|
680 |
msgid "Identify the keywords"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: admin/partials/woo-feed-edit-filter.php:46, admin/partials/woo-feed-edit-filter.php:47
|
684 |
msgid "Campaign Content"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: admin/partials/woo-feed-edit-filter.php:49
|
688 |
msgid "Use to differentiate ads"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: admin/partials/woo-feed-edit-filter.php:61
|
692 |
msgid "Fill out the required fields (marked with *) in the form above, if any required field is empty, then the parameters will not be applied."
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: admin/partials/woo-feed-edit-filter.php:62
|
696 |
msgid "Learn more about Campaign URL"
|
697 |
msgstr ""
|
698 |
|
708 |
msgid "Filter"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: admin/partials/woo-feed-edit-tabs.php:28
|
712 |
msgid "FTP/SFTP"
|
713 |
msgstr ""
|
714 |
|
715 |
+
#: admin/partials/woo-feed-edit-tabs.php:101
|
716 |
msgid "Save"
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: admin/partials/woo-feed-edit-tabs.php:103
|
720 |
msgid "Update and Generate Feed"
|
721 |
msgstr ""
|
722 |
|
748 |
msgid "Import Now"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: admin/partials/woo-feed-manage-list.php:69
|
|
|
|
|
|
|
|
|
752 |
msgid "Auto Update Feed Interval"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: admin/partials/woo-feed-manage-list.php:79
|
756 |
msgid "Interval"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: admin/partials/woo-feed-manage-list.php:88
|
760 |
msgid "Update Interval"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: admin/partials/woo-feed-option-list.php:18
|
764 |
+
msgid "Option List"
|
765 |
+
msgstr ""
|
766 |
+
|
767 |
+
#: admin/partials/woo-feed-option-list.php:18
|
768 |
+
msgid "Add New Option"
|
769 |
+
msgstr ""
|
770 |
+
|
771 |
#: admin/partials/woo-feed-pro-vs-free.php:74, admin/partials/woo-feed-pro-vs-free.php:185
|
772 |
msgid "Unlimited Products"
|
773 |
msgstr ""
|
800 |
msgid "Custom taxonomy"
|
801 |
msgstr ""
|
802 |
|
|
|
|
|
|
|
|
|
803 |
#: admin/partials/woo-feed-pro-vs-free.php:83
|
804 |
msgid "Product/Post Meta"
|
805 |
msgstr ""
|
860 |
msgid "Auto Feed Update"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: admin/partials/woo-feed-pro-vs-free.php:161, includes/classes/class-woo-feed-dropdown.php:627
|
864 |
msgid "Product Attributes"
|
865 |
msgstr ""
|
866 |
|
920 |
msgid "Remove Parent Products"
|
921 |
msgstr ""
|
922 |
|
|
|
|
|
|
|
|
|
923 |
#: admin/partials/woo-feed-pro-vs-free.php:229
|
924 |
msgid "Dynamic Attributes"
|
925 |
msgstr ""
|
926 |
|
927 |
+
#: admin/partials/woo-feed-pro-vs-free.php:233, includes/classes/class-woo-feed-dropdown.php:440, includes/classes/class-woo-feed-products.php:1728
|
928 |
msgid "Price With Tax"
|
929 |
msgstr ""
|
930 |
|
1060 |
msgid "Join the squad today!"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: admin/partials/woo-feed-settings.php:26
|
1064 |
msgid "Common Settings"
|
1065 |
msgstr ""
|
1066 |
|
1067 |
+
#: admin/partials/woo-feed-settings.php:29
|
1068 |
+
msgid "Version "
|
1069 |
+
msgstr ""
|
1070 |
+
|
1071 |
+
#: admin/partials/woo-feed-settings.php:39
|
1072 |
msgid "Product per batch"
|
1073 |
msgstr ""
|
1074 |
|
1075 |
+
#: admin/partials/woo-feed-settings.php:42, admin/partials/woo-feed-settings.php:53
|
1076 |
msgid "Don't change the value if you are not sure about this. Plugin may fail to make feed."
|
1077 |
msgstr ""
|
1078 |
|
1079 |
+
#: admin/partials/woo-feed-settings.php:46
|
1080 |
msgid "Product Query Type"
|
1081 |
msgstr ""
|
1082 |
|
1083 |
+
#: admin/partials/woo-feed-settings.php:57
|
1084 |
msgid "Debug Mode"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
+
#: admin/partials/woo-feed-settings.php:61, admin/partials/woo-feed-settings.php:106
|
1088 |
msgid "Off"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: admin/partials/woo-feed-settings.php:62, admin/partials/woo-feed-settings.php:107
|
1092 |
msgid "On"
|
1093 |
msgstr ""
|
1094 |
|
1095 |
+
#: admin/partials/woo-feed-settings.php:65
|
1096 |
msgid "Clear All Log Data"
|
1097 |
msgstr ""
|
1098 |
|
1099 |
+
#: admin/partials/woo-feed-settings.php:67
|
1100 |
msgid "Enabling Logging will decrease performance of feed generation."
|
1101 |
msgstr ""
|
1102 |
|
1103 |
+
#: admin/partials/woo-feed-settings.php:71
|
1104 |
msgid "Send Debug Info"
|
1105 |
msgstr ""
|
1106 |
|
1107 |
+
#: admin/partials/woo-feed-settings.php:74
|
1108 |
+
msgid "Allow CTXFeed To Collect Debug Info."
|
1109 |
msgstr ""
|
1110 |
|
1111 |
+
#: admin/partials/woo-feed-settings.php:76
|
1112 |
msgid "To opt out, leave this box unchecked. Your Feed Data remains un-tracked, and no data will be collected. No sensitive data is tracked."
|
1113 |
msgstr ""
|
1114 |
|
1115 |
+
#: admin/partials/woo-feed-settings.php:76
|
1116 |
msgid "See What We Collect."
|
1117 |
msgstr ""
|
1118 |
|
1119 |
+
#: admin/partials/woo-feed-settings.php:88
|
1120 |
+
msgid "CTXFeed Cache TTL"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: admin/partials/woo-feed-settings.php:96
|
1124 |
msgid "Purge Cache Now"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
+
#: admin/partials/woo-feed-settings.php:98
|
1128 |
msgid "When to expire the Cache."
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: admin/partials/woo-feed-settings.php:102
|
1132 |
+
msgid "WooCommerce Default Schema Override "
|
1133 |
+
msgstr ""
|
1134 |
+
|
1135 |
+
#: admin/partials/woo-feed-settings.php:110
|
1136 |
+
msgid "Turn off when you don't want to override default WooCommerce Product Schema"
|
1137 |
+
msgstr ""
|
1138 |
+
|
1139 |
+
#: admin/partials/woo-feed-settings.php:114
|
1140 |
+
msgid "Disable/Enable Facebook Pixel"
|
1141 |
+
msgstr ""
|
1142 |
+
|
1143 |
+
#: admin/partials/woo-feed-settings.php:118, admin/partials/woo-feed-settings.php:137, admin/partials/woo-feed-settings.php:149, admin/partials/woo-feed-settings.php:161, admin/partials/woo-feed-settings.php:173
|
1144 |
+
msgid "Disabled"
|
1145 |
+
msgstr ""
|
1146 |
+
|
1147 |
+
#: admin/partials/woo-feed-settings.php:119, admin/partials/woo-feed-settings.php:138, admin/partials/woo-feed-settings.php:150, admin/partials/woo-feed-settings.php:162, admin/partials/woo-feed-settings.php:174
|
1148 |
+
msgid "Enabled"
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: admin/partials/woo-feed-settings.php:122
|
1152 |
+
msgid "Disables or Enables Facebook Pixel ID’s for Variation"
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: admin/partials/woo-feed-settings.php:126
|
1156 |
+
msgid "Facebook Pixel Content ID’s for Variation"
|
1157 |
+
msgstr ""
|
1158 |
+
|
1159 |
+
#: admin/partials/woo-feed-settings.php:129
|
1160 |
+
msgid "Insert your Facebook Pixel ID"
|
1161 |
+
msgstr ""
|
1162 |
+
|
1163 |
+
#: admin/partials/woo-feed-settings.php:133
|
1164 |
+
msgid "Add shipping costs for all countries to feed (Google Shopping / Facebook only)"
|
1165 |
+
msgstr ""
|
1166 |
+
|
1167 |
+
#: admin/partials/woo-feed-settings.php:141
|
1168 |
+
msgid "Disable or Enable all shipping to feed"
|
1169 |
+
msgstr ""
|
1170 |
+
|
1171 |
+
#: admin/partials/woo-feed-settings.php:145
|
1172 |
+
msgid "Remove all other shipping classes when free shipping criteria are met (Google Shopping / Facebook only)"
|
1173 |
+
msgstr ""
|
1174 |
+
|
1175 |
+
#: admin/partials/woo-feed-settings.php:153
|
1176 |
+
msgid "Disable or Enable all shipping when free shipping is exists"
|
1177 |
+
msgstr ""
|
1178 |
+
|
1179 |
+
#: admin/partials/woo-feed-settings.php:157
|
1180 |
+
msgid "Remove the local pickup shipping zone from feed (Google Shopping / Facebook only)"
|
1181 |
+
msgstr ""
|
1182 |
+
|
1183 |
+
#: admin/partials/woo-feed-settings.php:165
|
1184 |
+
msgid "Disable or Enable all shipping when local pickup shipping is exists"
|
1185 |
+
msgstr ""
|
1186 |
+
|
1187 |
+
#: admin/partials/woo-feed-settings.php:169
|
1188 |
+
msgid "Enable FTP Upload"
|
1189 |
+
msgstr ""
|
1190 |
+
|
1191 |
+
#: admin/partials/woo-feed-settings.php:177
|
1192 |
+
msgid "Disable or Enable FTP upload setting"
|
1193 |
+
msgstr ""
|
1194 |
+
|
1195 |
+
#: admin/partials/woo-feed-settings.php:184
|
1196 |
msgid "Save Changes"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
+
#: admin/partials/woo-feed-settings.php:194
|
1200 |
+
msgid "Custom Fields"
|
1201 |
+
msgstr ""
|
1202 |
+
|
1203 |
+
#: admin/partials/woo-feed-status.php:16
|
1204 |
+
msgid "System Status"
|
1205 |
+
msgstr ""
|
1206 |
+
|
1207 |
#. translators: 1: Method Name 2: Method Name
|
1208 |
#: includes/classes/class-woo-feed-admin-message.php:78
|
1209 |
msgid "%1$s Should be called before %2$s"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: includes/classes/class-woo-feed-admin-message.php:119, includes/classes/class-woo-feed-admin-message.php:120
|
1213 |
+
msgid "Get CTX Feed Pro"
|
1214 |
+
msgstr ""
|
1215 |
+
|
1216 |
+
#: includes/classes/class-woo-feed-admin-message.php:124, includes/classes/class-woo-feed-webappick-api.php:181
|
1217 |
msgid "Video Tutorials"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: includes/classes/class-woo-feed-admin-message.php:219
|
1221 |
msgid "Feed Config Created Successfully."
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: includes/classes/class-woo-feed-admin-message.php:228
|
1225 |
msgid "Feed Config Updated Successfully."
|
1226 |
msgstr ""
|
1227 |
|
1228 |
+
#: includes/classes/class-woo-feed-admin-message.php:237
|
1229 |
msgid "Feed Config Successfully Imported."
|
1230 |
msgstr ""
|
1231 |
|
1232 |
#. translators: Feed URL
|
1233 |
+
#: includes/classes/class-woo-feed-admin-message.php:255
|
1234 |
msgid "Feed Generated Successfully. Feed URL: %s"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: includes/classes/class-woo-feed-admin-message.php:258
|
1238 |
msgid "Warning:"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
+
#: includes/classes/class-woo-feed-admin-message.php:261
|
1242 |
msgid "Learn more..."
|
1243 |
msgstr ""
|
1244 |
|
1245 |
+
#: includes/classes/class-woo-feed-admin-message.php:262
|
1246 |
+
msgid "Google Product category is not selected. Your Google Ads CPC rate will be high. Add proper Google Product Category to each product & reduce CPC rate."
|
1247 |
msgstr ""
|
1248 |
|
1249 |
+
#: includes/classes/class-woo-feed-admin-message.php:290
|
1250 |
msgid "Feed auto update interval updated."
|
1251 |
msgstr ""
|
1252 |
|
1253 |
+
#: includes/classes/class-woo-feed-admin-message.php:299
|
1254 |
msgid "Unable to save auto update interval."
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
#: includes/classes/class-woo-feed-admin-message.php:308
|
1258 |
msgid "Invalid interval value."
|
1259 |
msgstr ""
|
1260 |
|
1261 |
+
#: includes/classes/class-woo-feed-admin-message.php:317
|
1262 |
msgid "Invalid request."
|
1263 |
msgstr ""
|
1264 |
|
1265 |
+
#: includes/classes/class-woo-feed-admin-message.php:340
|
1266 |
msgid "Settings Updated."
|
1267 |
msgstr ""
|
1268 |
|
1269 |
+
#: includes/classes/class-woo-feed-dropdown.php:412, includes/classes/class-woo-feed-products.php:1784
|
1270 |
msgid "Primary Attributes"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
+
#: includes/classes/class-woo-feed-dropdown.php:413, includes/classes/class-woo-feed-products.php:1711
|
1274 |
msgid "Product Id"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
+
#: includes/classes/class-woo-feed-dropdown.php:414, includes/classes/class-woo-feed-products.php:1712
|
1278 |
msgid "Product Title"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
+
#: includes/classes/class-woo-feed-dropdown.php:415
|
1282 |
+
msgid "Parent Title"
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: includes/classes/class-woo-feed-dropdown.php:416, includes/classes/class-woo-feed-products.php:1713
|
1286 |
msgid "Product Description"
|
1287 |
msgstr ""
|
1288 |
|
1289 |
+
#: includes/classes/class-woo-feed-dropdown.php:417
|
1290 |
+
msgid "Product Description (with HTML)"
|
1291 |
+
msgstr ""
|
1292 |
+
|
1293 |
+
#: includes/classes/class-woo-feed-dropdown.php:418, includes/classes/class-woo-feed-products.php:1714
|
1294 |
msgid "Product Short Description"
|
1295 |
msgstr ""
|
1296 |
|
1297 |
+
#: includes/classes/class-woo-feed-dropdown.php:419
|
1298 |
+
msgid "Parent Category"
|
1299 |
+
msgstr ""
|
1300 |
+
|
1301 |
+
#: includes/classes/class-woo-feed-dropdown.php:420
|
1302 |
+
msgid "Parent Category ID"
|
1303 |
+
msgstr ""
|
1304 |
+
|
1305 |
+
#: includes/classes/class-woo-feed-dropdown.php:421
|
1306 |
+
msgid "Child Category"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: includes/classes/class-woo-feed-dropdown.php:422
|
1310 |
+
msgid "Child Category ID"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: includes/classes/class-woo-feed-dropdown.php:423
|
1314 |
+
msgid "Product Category [Category Path]"
|
1315 |
+
msgstr ""
|
1316 |
+
|
1317 |
+
#: includes/classes/class-woo-feed-dropdown.php:424
|
1318 |
+
msgid "Product Full Category [Category Full Path]"
|
1319 |
+
msgstr ""
|
1320 |
+
|
1321 |
+
#: includes/classes/class-woo-feed-dropdown.php:425, includes/classes/class-woo-feed-products.php:1716
|
1322 |
msgid "Product URL"
|
1323 |
msgstr ""
|
1324 |
|
1325 |
+
#: includes/classes/class-woo-feed-dropdown.php:426
|
1326 |
+
msgid "Parent URL"
|
1327 |
+
msgstr ""
|
1328 |
+
|
1329 |
+
#: includes/classes/class-woo-feed-dropdown.php:427
|
1330 |
+
msgid "Canonical URL"
|
1331 |
+
msgstr ""
|
1332 |
+
|
1333 |
+
#: includes/classes/class-woo-feed-dropdown.php:428, includes/classes/class-woo-feed-products.php:1717
|
1334 |
msgid "External Product URL"
|
1335 |
msgstr ""
|
1336 |
|
1337 |
+
#: includes/classes/class-woo-feed-dropdown.php:429
|
1338 |
+
msgid "Add to Cart URL"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
+
#: includes/classes/class-woo-feed-dropdown.php:430, includes/classes/class-woo-feed-products.php:1719
|
1342 |
msgid "Parent Id [Group Id]"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: includes/classes/class-woo-feed-dropdown.php:431, includes/classes/class-woo-feed-products.php:1720
|
1346 |
msgid "SKU"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
+
#: includes/classes/class-woo-feed-dropdown.php:432
|
1350 |
+
msgid "SKU_ID"
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: includes/classes/class-woo-feed-dropdown.php:433, includes/classes/class-woo-feed-products.php:1721
|
1354 |
msgid "Parent SKU"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: includes/classes/class-woo-feed-dropdown.php:434, includes/classes/class-woo-feed-products.php:1722
|
1358 |
msgid "Availability"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: includes/classes/class-woo-feed-dropdown.php:435, includes/classes/class-woo-feed-products.php:1723
|
1362 |
msgid "Quantity"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
+
#: includes/classes/class-woo-feed-dropdown.php:436, includes/classes/class-woo-feed-products.php:1724
|
1366 |
msgid "Regular Price"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: includes/classes/class-woo-feed-dropdown.php:437, includes/classes/class-woo-feed-products.php:1725
|
1370 |
msgid "Price"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: includes/classes/class-woo-feed-dropdown.php:438, includes/classes/class-woo-feed-products.php:1726
|
1374 |
msgid "Sale Price"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
+
#: includes/classes/class-woo-feed-dropdown.php:439, includes/classes/class-woo-feed-products.php:1727
|
1378 |
msgid "Regular Price With Tax"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: includes/classes/class-woo-feed-dropdown.php:441, includes/classes/class-woo-feed-products.php:1729
|
1382 |
msgid "Sale Price With Tax"
|
1383 |
msgstr ""
|
1384 |
|
1385 |
+
#: includes/classes/class-woo-feed-dropdown.php:442, includes/classes/class-woo-feed-products.php:1730
|
1386 |
msgid "Sale Start Date"
|
1387 |
msgstr ""
|
1388 |
|
1389 |
+
#: includes/classes/class-woo-feed-dropdown.php:443, includes/classes/class-woo-feed-products.php:1731
|
1390 |
msgid "Sale End Date"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: includes/classes/class-woo-feed-dropdown.php:444
|
1394 |
+
msgid "Reviewer Name"
|
1395 |
+
msgstr ""
|
1396 |
+
|
1397 |
+
#: includes/classes/class-woo-feed-dropdown.php:445, includes/classes/class-woo-feed-products.php:1732
|
1398 |
msgid "Weight"
|
1399 |
msgstr ""
|
1400 |
|
1401 |
+
#: includes/classes/class-woo-feed-dropdown.php:446
|
1402 |
+
msgid "Weight Unit"
|
1403 |
+
msgstr ""
|
1404 |
+
|
1405 |
+
#: includes/classes/class-woo-feed-dropdown.php:447, includes/classes/class-woo-feed-products.php:1733
|
1406 |
msgid "Width"
|
1407 |
msgstr ""
|
1408 |
|
1409 |
+
#: includes/classes/class-woo-feed-dropdown.php:448, includes/classes/class-woo-feed-products.php:1734
|
1410 |
msgid "Height"
|
1411 |
msgstr ""
|
1412 |
|
1413 |
+
#: includes/classes/class-woo-feed-dropdown.php:449, includes/classes/class-woo-feed-products.php:1735
|
1414 |
msgid "Length"
|
1415 |
msgstr ""
|
1416 |
|
1417 |
+
#: includes/classes/class-woo-feed-dropdown.php:450
|
1418 |
+
msgid "Shipping (Google Format)"
|
1419 |
+
msgstr ""
|
1420 |
+
|
1421 |
+
#: includes/classes/class-woo-feed-dropdown.php:451
|
1422 |
+
msgid "Shipping Cost"
|
1423 |
+
msgstr ""
|
1424 |
+
|
1425 |
+
#: includes/classes/class-woo-feed-dropdown.php:452, includes/classes/class-woo-feed-products.php:1736
|
1426 |
msgid "Shipping Class"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
+
#: includes/classes/class-woo-feed-dropdown.php:453, includes/classes/class-woo-feed-products.php:1737
|
1430 |
msgid "Product Type"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
+
#: includes/classes/class-woo-feed-dropdown.php:454, includes/classes/class-woo-feed-products.php:1738
|
1434 |
msgid "Variation Type"
|
1435 |
msgstr ""
|
1436 |
|
1437 |
+
#: includes/classes/class-woo-feed-dropdown.php:455, includes/classes/class-woo-feed-products.php:1739
|
1438 |
msgid "Visibility"
|
1439 |
msgstr ""
|
1440 |
|
1441 |
+
#: includes/classes/class-woo-feed-dropdown.php:456, includes/classes/class-woo-feed-products.php:1740
|
1442 |
msgid "Total Rating"
|
1443 |
msgstr ""
|
1444 |
|
1445 |
+
#: includes/classes/class-woo-feed-dropdown.php:457, includes/classes/class-woo-feed-products.php:1741
|
1446 |
msgid "Average Rating"
|
1447 |
msgstr ""
|
1448 |
|
1449 |
+
#: includes/classes/class-woo-feed-dropdown.php:458, includes/classes/class-woo-feed-products.php:1742
|
1450 |
msgid "Tags"
|
1451 |
msgstr ""
|
1452 |
|
1453 |
+
#: includes/classes/class-woo-feed-dropdown.php:459, includes/classes/class-woo-feed-products.php:1743
|
1454 |
msgid "Sale Price Effective Date"
|
1455 |
msgstr ""
|
1456 |
|
1457 |
+
#: includes/classes/class-woo-feed-dropdown.php:460, includes/classes/class-woo-feed-products.php:1744
|
1458 |
msgid "Is Bundle"
|
1459 |
msgstr ""
|
1460 |
|
1461 |
+
#: includes/classes/class-woo-feed-dropdown.php:461, includes/classes/class-woo-feed-products.php:1745
|
1462 |
msgid "Author Name"
|
1463 |
msgstr ""
|
1464 |
|
1465 |
+
#: includes/classes/class-woo-feed-dropdown.php:462, includes/classes/class-woo-feed-products.php:1746
|
1466 |
msgid "Author Email"
|
1467 |
msgstr ""
|
1468 |
|
1469 |
+
#: includes/classes/class-woo-feed-dropdown.php:463, includes/classes/class-woo-feed-products.php:1747
|
1470 |
msgid "Date Created"
|
1471 |
msgstr ""
|
1472 |
|
1473 |
+
#: includes/classes/class-woo-feed-dropdown.php:464, includes/classes/class-woo-feed-products.php:1748
|
1474 |
msgid "Date Updated"
|
1475 |
msgstr ""
|
1476 |
|
1477 |
+
#: includes/classes/class-woo-feed-dropdown.php:465
|
1478 |
+
msgid "Tax"
|
1479 |
+
msgstr ""
|
1480 |
+
|
1481 |
+
#: includes/classes/class-woo-feed-dropdown.php:466
|
1482 |
+
msgid "Tax Class"
|
1483 |
+
msgstr ""
|
1484 |
+
|
1485 |
+
#: includes/classes/class-woo-feed-dropdown.php:467
|
1486 |
+
msgid "Tax Status"
|
1487 |
+
msgstr ""
|
1488 |
+
|
1489 |
+
#: includes/classes/class-woo-feed-dropdown.php:487, includes/classes/class-woo-feed-products.php:1769
|
1490 |
msgid "Title [All in One SEO]"
|
1491 |
msgstr ""
|
1492 |
|
1493 |
+
#: includes/classes/class-woo-feed-dropdown.php:497, includes/classes/class-woo-feed-products.php:1770
|
1494 |
msgid "Description [All in One SEO]"
|
1495 |
msgstr ""
|
1496 |
|
1497 |
+
#: includes/classes/class-woo-feed-dropdown.php:508, includes/classes/class-woo-feed-products.php:1776
|
1498 |
msgid "Title [Yoast SEO]"
|
1499 |
msgstr ""
|
1500 |
|
1501 |
+
#: includes/classes/class-woo-feed-dropdown.php:516, includes/classes/class-woo-feed-products.php:1777
|
1502 |
msgid "Description [Yoast SEO]"
|
1503 |
msgstr ""
|
1504 |
|
1505 |
+
#: includes/classes/class-woo-feed-dropdown.php:523
|
1506 |
+
msgid "Canonical URL [Yoast SEO]"
|
1507 |
msgstr ""
|
1508 |
|
1509 |
+
#: includes/classes/class-woo-feed-dropdown.php:540
|
1510 |
+
msgid "Title [Rank Math SEO]"
|
1511 |
msgstr ""
|
1512 |
|
1513 |
+
#: includes/classes/class-woo-feed-dropdown.php:554
|
1514 |
+
msgid "Description [Rank Math SEO]"
|
1515 |
msgstr ""
|
1516 |
|
1517 |
+
#: includes/classes/class-woo-feed-dropdown.php:563
|
1518 |
+
msgid "Rank Math Canonical URL [Rank Math SEO]"
|
1519 |
msgstr ""
|
1520 |
|
1521 |
+
#: includes/classes/class-woo-feed-dropdown.php:572
|
1522 |
+
msgid "Subscription Period"
|
1523 |
msgstr ""
|
1524 |
|
1525 |
+
#: includes/classes/class-woo-feed-dropdown.php:573
|
1526 |
+
msgid "Subscription Period Interval"
|
1527 |
msgstr ""
|
1528 |
|
1529 |
+
#: includes/classes/class-woo-feed-dropdown.php:574
|
1530 |
+
msgid "Subscription Amount"
|
1531 |
msgstr ""
|
1532 |
|
1533 |
+
#: includes/classes/class-woo-feed-dropdown.php:575
|
1534 |
+
msgid "Installment Months"
|
1535 |
msgstr ""
|
1536 |
|
1537 |
+
#: includes/classes/class-woo-feed-dropdown.php:576
|
1538 |
+
msgid "Installment Amount"
|
1539 |
msgstr ""
|
1540 |
|
1541 |
+
#: includes/classes/class-woo-feed-dropdown.php:584
|
1542 |
+
msgid "Unit Price Measure"
|
1543 |
msgstr ""
|
1544 |
|
1545 |
+
#: includes/classes/class-woo-feed-dropdown.php:593
|
1546 |
+
msgid "Yoast Attributes"
|
1547 |
msgstr ""
|
1548 |
|
1549 |
+
#: includes/classes/class-woo-feed-dropdown.php:595
|
1550 |
+
msgid "Yoast GTIN8"
|
1551 |
msgstr ""
|
1552 |
|
1553 |
+
#: includes/classes/class-woo-feed-dropdown.php:596
|
1554 |
+
msgid "Yoast GTIN12 / UPC"
|
1555 |
msgstr ""
|
1556 |
|
1557 |
+
#: includes/classes/class-woo-feed-dropdown.php:597
|
1558 |
+
msgid "Yoast GTIN13 / EAN"
|
1559 |
msgstr ""
|
1560 |
|
1561 |
+
#: includes/classes/class-woo-feed-dropdown.php:598
|
1562 |
+
msgid "Yoast GTIN14 / ITF-14"
|
1563 |
msgstr ""
|
1564 |
|
1565 |
+
#: includes/classes/class-woo-feed-dropdown.php:599
|
1566 |
+
msgid "Yoast ISBN"
|
|
|
1567 |
msgstr ""
|
1568 |
|
1569 |
+
#: includes/classes/class-woo-feed-dropdown.php:600
|
1570 |
+
msgid "Yoast MPN"
|
1571 |
msgstr ""
|
1572 |
|
1573 |
+
#: includes/classes/class-woo-feed-dropdown.php:606, includes/classes/class-woo-feed-products.php:1793
|
1574 |
+
msgid "Image Attributes"
|
1575 |
+
msgstr ""
|
1576 |
+
|
1577 |
+
#: includes/classes/class-woo-feed-dropdown.php:608, includes/classes/class-woo-feed-products.php:1751
|
1578 |
+
msgid "Main Image"
|
1579 |
+
msgstr ""
|
1580 |
+
|
1581 |
+
#: includes/classes/class-woo-feed-dropdown.php:609, includes/classes/class-woo-feed-products.php:1752
|
1582 |
+
msgid "Featured Image"
|
1583 |
+
msgstr ""
|
1584 |
+
|
1585 |
+
#: includes/classes/class-woo-feed-dropdown.php:610, includes/classes/class-woo-feed-products.php:1753
|
1586 |
+
msgid "Images [Comma Separated]"
|
1587 |
+
msgstr ""
|
1588 |
+
|
1589 |
+
#: includes/classes/class-woo-feed-dropdown.php:611, includes/classes/class-woo-feed-products.php:1754
|
1590 |
+
msgid "Additional Image 1"
|
1591 |
+
msgstr ""
|
1592 |
+
|
1593 |
+
#: includes/classes/class-woo-feed-dropdown.php:612, includes/classes/class-woo-feed-products.php:1755
|
1594 |
+
msgid "Additional Image 2"
|
1595 |
+
msgstr ""
|
1596 |
+
|
1597 |
+
#: includes/classes/class-woo-feed-dropdown.php:613, includes/classes/class-woo-feed-products.php:1756
|
1598 |
+
msgid "Additional Image 3"
|
1599 |
+
msgstr ""
|
1600 |
+
|
1601 |
+
#: includes/classes/class-woo-feed-dropdown.php:614, includes/classes/class-woo-feed-products.php:1757
|
1602 |
+
msgid "Additional Image 4"
|
1603 |
+
msgstr ""
|
1604 |
+
|
1605 |
+
#: includes/classes/class-woo-feed-dropdown.php:615, includes/classes/class-woo-feed-products.php:1758
|
1606 |
+
msgid "Additional Image 5"
|
1607 |
+
msgstr ""
|
1608 |
+
|
1609 |
+
#: includes/classes/class-woo-feed-dropdown.php:616, includes/classes/class-woo-feed-products.php:1759
|
1610 |
+
msgid "Additional Image 6"
|
1611 |
+
msgstr ""
|
1612 |
+
|
1613 |
+
#: includes/classes/class-woo-feed-dropdown.php:617, includes/classes/class-woo-feed-products.php:1760
|
1614 |
+
msgid "Additional Image 7"
|
1615 |
+
msgstr ""
|
1616 |
+
|
1617 |
+
#: includes/classes/class-woo-feed-dropdown.php:618, includes/classes/class-woo-feed-products.php:1761
|
1618 |
+
msgid "Additional Image 8"
|
1619 |
+
msgstr ""
|
1620 |
+
|
1621 |
+
#: includes/classes/class-woo-feed-dropdown.php:619, includes/classes/class-woo-feed-products.php:1762
|
1622 |
+
msgid "Additional Image 9"
|
1623 |
+
msgstr ""
|
1624 |
+
|
1625 |
+
#: includes/classes/class-woo-feed-dropdown.php:620, includes/classes/class-woo-feed-products.php:1763
|
1626 |
+
msgid "Additional Image 10"
|
1627 |
+
msgstr ""
|
1628 |
+
|
1629 |
+
#: includes/classes/class-woo-feed-dropdown.php:634, includes/classes/class-woo-feed-products.php:1813
|
1630 |
+
msgid "Product Custom Attributes"
|
1631 |
+
msgstr ""
|
1632 |
+
|
1633 |
+
#: includes/classes/class-woo-feed-dropdown.php:649
|
1634 |
+
msgid "Category Mappings"
|
1635 |
+
msgstr ""
|
1636 |
+
|
1637 |
+
#: includes/classes/class-woo-feed-dropdown.php:663, includes/classes/class-woo-feed-products.php:1831
|
1638 |
+
msgid "Custom Taxonomies"
|
1639 |
+
msgstr ""
|
1640 |
+
|
1641 |
+
#: includes/classes/class-woo-feed-dropdown.php:705, includes/classes/class-woo-feed-products.php:1803
|
1642 |
+
msgid "Select Attributes"
|
1643 |
+
msgstr ""
|
1644 |
+
|
1645 |
+
#: includes/classes/class-woo-feed-ftp.php:79
|
1646 |
+
msgid "FTP connection has failed!"
|
1647 |
+
msgstr ""
|
1648 |
+
|
1649 |
+
#. translators: 1: ftp username, 2: server host, 3: server port
|
1650 |
+
#: includes/classes/class-woo-feed-ftp.php:81
|
1651 |
+
msgid "Attempted to connect to %1$s@%2$s:%3$s"
|
1652 |
+
msgstr ""
|
1653 |
+
|
1654 |
+
#: includes/classes/class-woo-feed-ftp.php:90
|
1655 |
+
msgid "FTP Login has failed!"
|
1656 |
+
msgstr ""
|
1657 |
+
|
1658 |
+
#. translators: 1: ftp username, 2: server host, 3: server port
|
1659 |
+
#: includes/classes/class-woo-feed-ftp.php:92
|
1660 |
msgid "Attempted to login %1$s@%2$s:%3$s"
|
1661 |
msgstr ""
|
1662 |
|
1677 |
msgid "Excerpt View"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: includes/classes/class-woo-feed-list-table.php:360
|
1681 |
+
msgid "No items found."
|
1682 |
+
msgstr ""
|
1683 |
+
|
1684 |
+
#: includes/classes/class-woo-feed-list-table.php:506
|
1685 |
+
msgid "Apply"
|
1686 |
+
msgstr ""
|
1687 |
+
|
1688 |
+
#: includes/classes/class-woo-feed-list-table.php:629
|
1689 |
+
msgid "Filter by date"
|
1690 |
+
msgstr ""
|
1691 |
+
|
1692 |
+
#: includes/classes/class-woo-feed-list-table.php:631
|
1693 |
+
msgid "All dates"
|
1694 |
+
msgstr ""
|
1695 |
+
|
1696 |
+
#. translators: 1: month name, 2: 4-digit year
|
1697 |
+
#: includes/classes/class-woo-feed-list-table.php:646
|
1698 |
+
msgid "%1$s %2$d"
|
1699 |
+
msgstr ""
|
1700 |
+
|
1701 |
+
#: includes/classes/class-woo-feed-list-table.php:699
|
1702 |
+
msgid "%s comment"
|
1703 |
+
msgid_plural "%s comments"
|
1704 |
+
msgstr[0] ""
|
1705 |
+
msgstr[1] ""
|
1706 |
+
|
1707 |
+
#: includes/classes/class-woo-feed-list-table.php:700
|
1708 |
+
msgid "%s approved comment"
|
1709 |
+
msgid_plural "%s approved comments"
|
1710 |
+
msgstr[0] ""
|
1711 |
+
msgstr[1] ""
|
1712 |
+
|
1713 |
+
#: includes/classes/class-woo-feed-list-table.php:701
|
1714 |
+
msgid "%s pending comment"
|
1715 |
+
msgid_plural "%s pending comments"
|
1716 |
+
msgstr[0] ""
|
1717 |
+
msgstr[1] ""
|
1718 |
+
|
1719 |
+
#: includes/classes/class-woo-feed-list-table.php:707
|
1720 |
+
msgid "No comments"
|
1721 |
+
msgstr ""
|
1722 |
+
|
1723 |
+
#: includes/classes/class-woo-feed-list-table.php:1433
|
1724 |
+
msgid "%s item"
|
1725 |
+
msgid_plural "%s items"
|
1726 |
+
msgstr[0] ""
|
1727 |
+
msgstr[1] ""
|
1728 |
+
|
1729 |
#: includes/classes/class-woo-feed-merchant.php:311
|
1730 |
msgid "Custom Template"
|
1731 |
msgstr ""
|
1739 |
msgstr ""
|
1740 |
|
1741 |
#: includes/classes/class-woo-feed-merchant.php:324
|
1742 |
+
msgid "Google Shopping"
|
1743 |
msgstr ""
|
1744 |
|
1745 |
#: includes/classes/class-woo-feed-merchant.php:325
|
1746 |
+
msgid "Google Local Inventory Ads"
|
1747 |
msgstr ""
|
1748 |
|
1749 |
#: includes/classes/class-woo-feed-merchant.php:326
|
1750 |
+
msgid "Google Local Product Inventory"
|
1751 |
msgstr ""
|
1752 |
|
1753 |
#: includes/classes/class-woo-feed-merchant.php:327
|
1754 |
+
msgid "Google Product Review"
|
1755 |
msgstr ""
|
1756 |
|
1757 |
#: includes/classes/class-woo-feed-merchant.php:328
|
1758 |
+
msgid "Google Shopping Action"
|
1759 |
msgstr ""
|
1760 |
|
1761 |
#: includes/classes/class-woo-feed-merchant.php:329
|
1762 |
+
msgid "Google Promotions"
|
1763 |
msgstr ""
|
1764 |
|
1765 |
#: includes/classes/class-woo-feed-merchant.php:330
|
1766 |
+
msgid "Google Dynamic Search Ads"
|
1767 |
msgstr ""
|
1768 |
|
1769 |
#: includes/classes/class-woo-feed-merchant.php:331
|
1770 |
+
msgid "Google Ads"
|
1771 |
msgstr ""
|
1772 |
|
1773 |
#: includes/classes/class-woo-feed-merchant.php:332
|
1774 |
+
msgid "Facebook Catalog / Instagram"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
#: includes/classes/class-woo-feed-merchant.php:333
|
1778 |
+
msgid "Pinterest Catalog"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
#: includes/classes/class-woo-feed-merchant.php:334
|
1782 |
+
msgid "Pinterest RSS Board"
|
1783 |
+
msgstr ""
|
1784 |
+
|
1785 |
+
#: includes/classes/class-woo-feed-merchant.php:335
|
1786 |
+
msgid "Bing Shopping"
|
1787 |
+
msgstr ""
|
1788 |
+
|
1789 |
+
#: includes/classes/class-woo-feed-merchant.php:336
|
1790 |
+
msgid "Bing Local Inventory"
|
1791 |
+
msgstr ""
|
1792 |
+
|
1793 |
+
#: includes/classes/class-woo-feed-merchant.php:337
|
1794 |
+
msgid "Snapchat"
|
1795 |
+
msgstr ""
|
1796 |
+
|
1797 |
+
#: includes/classes/class-woo-feed-merchant.php:338
|
1798 |
+
msgid "Idealo"
|
1799 |
+
msgstr ""
|
1800 |
+
|
1801 |
+
#: includes/classes/class-woo-feed-merchant.php:339
|
1802 |
+
msgid "PriceSpy"
|
1803 |
+
msgstr ""
|
1804 |
+
|
1805 |
+
#: includes/classes/class-woo-feed-merchant.php:340
|
1806 |
+
msgid "Price Runner"
|
1807 |
+
msgstr ""
|
1808 |
+
|
1809 |
+
#: includes/classes/class-woo-feed-merchant.php:341
|
1810 |
msgid "Yandex (CSV)"
|
1811 |
msgstr ""
|
1812 |
|
1813 |
+
#: includes/classes/class-woo-feed-merchant.php:352
|
1814 |
msgid "Templates"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
+
#: includes/classes/class-woo-feed-merchant.php:353
|
1818 |
msgid "AdForm"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
+
#: includes/classes/class-woo-feed-merchant.php:354
|
1822 |
msgid "AdRoll"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
+
#: includes/classes/class-woo-feed-merchant.php:355
|
1826 |
msgid "Avantlink"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
+
#: includes/classes/class-woo-feed-merchant.php:356
|
1830 |
msgid "Become"
|
1831 |
msgstr ""
|
1832 |
|
1833 |
+
#: includes/classes/class-woo-feed-merchant.php:357
|
1834 |
msgid "Beslist.nl"
|
1835 |
msgstr ""
|
1836 |
|
1837 |
+
#: includes/classes/class-woo-feed-merchant.php:358
|
1838 |
+
msgid "Bestprice"
|
1839 |
+
msgstr ""
|
1840 |
+
|
1841 |
+
#: includes/classes/class-woo-feed-merchant.php:359
|
1842 |
msgid "Billiger.de"
|
1843 |
msgstr ""
|
1844 |
|
1845 |
+
#: includes/classes/class-woo-feed-merchant.php:360
|
1846 |
msgid "Bol.com"
|
1847 |
msgstr ""
|
1848 |
|
1849 |
+
#: includes/classes/class-woo-feed-merchant.php:361
|
1850 |
msgid "Bonanza"
|
1851 |
msgstr ""
|
1852 |
|
1853 |
+
#: includes/classes/class-woo-feed-merchant.php:362
|
1854 |
+
msgid "Catch.com.au"
|
1855 |
+
msgstr ""
|
1856 |
+
|
1857 |
+
#: includes/classes/class-woo-feed-merchant.php:363
|
1858 |
msgid "CDiscount.fr"
|
1859 |
msgstr ""
|
1860 |
|
1861 |
+
#: includes/classes/class-woo-feed-merchant.php:364
|
1862 |
msgid "Comparer.be"
|
1863 |
msgstr ""
|
1864 |
|
1865 |
+
#: includes/classes/class-woo-feed-merchant.php:365
|
1866 |
msgid "Connexity"
|
1867 |
msgstr ""
|
1868 |
|
1869 |
+
#: includes/classes/class-woo-feed-merchant.php:366
|
1870 |
msgid "Criteo"
|
1871 |
msgstr ""
|
1872 |
|
1873 |
+
#: includes/classes/class-woo-feed-merchant.php:367
|
1874 |
msgid "Crowdfox"
|
1875 |
msgstr ""
|
1876 |
|
1877 |
+
#: includes/classes/class-woo-feed-merchant.php:368
|
1878 |
msgid "Daisycon Advertiser (General)"
|
1879 |
msgstr ""
|
1880 |
|
1881 |
+
#: includes/classes/class-woo-feed-merchant.php:369
|
1882 |
msgid "Daisycon Advertiser (Automotive)"
|
1883 |
msgstr ""
|
1884 |
|
1885 |
+
#: includes/classes/class-woo-feed-merchant.php:370
|
1886 |
msgid "Daisycon Advertiser (Books)"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: includes/classes/class-woo-feed-merchant.php:371
|
1890 |
msgid "Daisycon Advertiser (Cosmetics)"
|
1891 |
msgstr ""
|
1892 |
|
1893 |
+
#: includes/classes/class-woo-feed-merchant.php:372
|
1894 |
msgid "Daisycon Advertiser (Daily Offers)"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
+
#: includes/classes/class-woo-feed-merchant.php:373
|
1898 |
msgid "Daisycon Advertiser (Electronics)"
|
1899 |
msgstr ""
|
1900 |
|
1901 |
+
#: includes/classes/class-woo-feed-merchant.php:374
|
1902 |
msgid "Daisycon Advertiser (Fashion)"
|
1903 |
msgstr ""
|
1904 |
|
1905 |
+
#: includes/classes/class-woo-feed-merchant.php:375
|
1906 |
msgid "Daisycon Advertiser (Food & Drinks)"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
+
#: includes/classes/class-woo-feed-merchant.php:376
|
1910 |
msgid "Daisycon Advertiser (Holidays: Accommodations and transport)"
|
1911 |
msgstr ""
|
1912 |
|
1913 |
+
#: includes/classes/class-woo-feed-merchant.php:377
|
1914 |
msgid "Daisycon Advertiser (Holidays: Accommodations)"
|
1915 |
msgstr ""
|
1916 |
|
1917 |
+
#: includes/classes/class-woo-feed-merchant.php:378
|
1918 |
msgid "Daisycon Advertiser (Holidays: Trips)"
|
1919 |
msgstr ""
|
1920 |
|
1921 |
+
#: includes/classes/class-woo-feed-merchant.php:379
|
1922 |
msgid "Daisycon Advertiser (Home & Garden)"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
+
#: includes/classes/class-woo-feed-merchant.php:380
|
1926 |
msgid "Daisycon Advertiser (Housing)"
|
1927 |
msgstr ""
|
1928 |
|
1929 |
+
#: includes/classes/class-woo-feed-merchant.php:381
|
1930 |
msgid "Daisycon Advertiser (Magazines)"
|
1931 |
msgstr ""
|
1932 |
|
1933 |
+
#: includes/classes/class-woo-feed-merchant.php:382
|
1934 |
msgid "Daisycon Advertiser (Studies & Trainings)"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: includes/classes/class-woo-feed-merchant.php:383
|
1938 |
msgid "Daisycon Advertiser (Telecom: Accessories)"
|
1939 |
msgstr ""
|
1940 |
|
1941 |
+
#: includes/classes/class-woo-feed-merchant.php:384
|
1942 |
msgid "Daisycon Advertiser (Telecom: All-in-one)"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
+
#: includes/classes/class-woo-feed-merchant.php:385
|
1946 |
msgid "Daisycon Advertiser (Telecom: GSM + Subscription)"
|
1947 |
msgstr ""
|
1948 |
|
1949 |
+
#: includes/classes/class-woo-feed-merchant.php:386
|
1950 |
msgid "Daisycon Advertiser (Telecom: GSM only)"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
+
#: includes/classes/class-woo-feed-merchant.php:387
|
1954 |
msgid "Daisycon Advertiser (Telecom: Sim only)"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: includes/classes/class-woo-feed-merchant.php:388
|
1958 |
msgid "Daisycon Advertiser (Work & Jobs)"
|
1959 |
msgstr ""
|
1960 |
|
1961 |
+
#: includes/classes/class-woo-feed-merchant.php:389
|
1962 |
msgid "Dooyoo"
|
1963 |
msgstr ""
|
1964 |
|
1965 |
+
#: includes/classes/class-woo-feed-merchant.php:390
|
1966 |
+
msgid "Etsy"
|
1967 |
+
msgstr ""
|
1968 |
+
|
1969 |
+
#: includes/classes/class-woo-feed-merchant.php:391
|
1970 |
msgid "Fruugo"
|
1971 |
msgstr ""
|
1972 |
|
1973 |
+
#: includes/classes/class-woo-feed-merchant.php:392
|
1974 |
+
msgid "Fashionchick.nl"
|
1975 |
+
msgstr ""
|
1976 |
+
|
1977 |
+
#: includes/classes/class-woo-feed-merchant.php:393
|
1978 |
msgid "Fruugoaustralia.com"
|
1979 |
msgstr ""
|
1980 |
|
1981 |
+
#: includes/classes/class-woo-feed-merchant.php:394
|
1982 |
msgid "Fyndiq.se"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
+
#: includes/classes/class-woo-feed-merchant.php:395
|
1986 |
+
msgid "GoedGeplaatst.nl"
|
1987 |
+
msgstr ""
|
1988 |
+
|
1989 |
+
#: includes/classes/class-woo-feed-merchant.php:396
|
1990 |
+
msgid "Heureka.sk"
|
1991 |
+
msgstr ""
|
1992 |
+
|
1993 |
+
#: includes/classes/class-woo-feed-merchant.php:397
|
1994 |
msgid "Hintaseuranta.fi"
|
1995 |
msgstr ""
|
1996 |
|
1997 |
+
#: includes/classes/class-woo-feed-merchant.php:398
|
1998 |
msgid "Incurvy"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
+
#: includes/classes/class-woo-feed-merchant.php:399
|
2002 |
msgid "Jet.com"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
+
#: includes/classes/class-woo-feed-merchant.php:400
|
2006 |
msgid "Kelkoo"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
+
#: includes/classes/class-woo-feed-merchant.php:401
|
2010 |
msgid "Kieskeurig.nl"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
+
#: includes/classes/class-woo-feed-merchant.php:402
|
2014 |
msgid "Kijiji.ca"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
+
#: includes/classes/class-woo-feed-merchant.php:403
|
2018 |
msgid "LeGuide"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
+
#: includes/classes/class-woo-feed-merchant.php:404
|
2022 |
msgid "Marktplaats.nl"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
+
#: includes/classes/class-woo-feed-merchant.php:405
|
2026 |
msgid "Miinto.nl"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
+
#: includes/classes/class-woo-feed-merchant.php:406
|
2030 |
+
msgid "Modalova"
|
2031 |
+
msgstr ""
|
2032 |
+
|
2033 |
+
#: includes/classes/class-woo-feed-merchant.php:407
|
2034 |
msgid "Modina.de"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
+
#: includes/classes/class-woo-feed-merchant.php:408
|
2038 |
+
msgid "Moebel.de"
|
2039 |
+
msgstr ""
|
2040 |
+
|
2041 |
+
#: includes/classes/class-woo-feed-merchant.php:409
|
2042 |
msgid "Myshopping.com.au"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: includes/classes/class-woo-feed-merchant.php:410
|
2046 |
msgid "TheNextAd"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
+
#: includes/classes/class-woo-feed-merchant.php:411
|
2050 |
msgid "Nextag"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
+
#: includes/classes/class-woo-feed-merchant.php:412
|
2054 |
msgid "Polyvore"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
+
#: includes/classes/class-woo-feed-merchant.php:413
|
2058 |
msgid "Price Grabber"
|
2059 |
msgstr ""
|
2060 |
|
2061 |
+
#: includes/classes/class-woo-feed-merchant.php:414
|
2062 |
+
msgid "Prisjakt"
|
2063 |
msgstr ""
|
2064 |
|
2065 |
+
#: includes/classes/class-woo-feed-merchant.php:415
|
2066 |
+
msgid "Profit Share"
|
2067 |
msgstr ""
|
2068 |
|
2069 |
+
#: includes/classes/class-woo-feed-merchant.php:416
|
2070 |
msgid "Rakuten.de"
|
2071 |
msgstr ""
|
2072 |
|
2073 |
+
#: includes/classes/class-woo-feed-merchant.php:417
|
2074 |
msgid "Real"
|
2075 |
msgstr ""
|
2076 |
|
2077 |
+
#: includes/classes/class-woo-feed-merchant.php:418
|
2078 |
msgid "ShareASale"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
+
#: includes/classes/class-woo-feed-merchant.php:419
|
2082 |
msgid "Shopalike.fr"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
+
#: includes/classes/class-woo-feed-merchant.php:420
|
2086 |
msgid "Shopbot"
|
2087 |
msgstr ""
|
2088 |
|
2089 |
+
#: includes/classes/class-woo-feed-merchant.php:421
|
2090 |
msgid "Shopmania"
|
2091 |
msgstr ""
|
2092 |
|
2093 |
+
#: includes/classes/class-woo-feed-merchant.php:422
|
2094 |
msgid "Shopping.com"
|
2095 |
msgstr ""
|
2096 |
|
2097 |
+
#: includes/classes/class-woo-feed-merchant.php:423
|
2098 |
msgid "Shopzilla"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: includes/classes/class-woo-feed-merchant.php:424
|
2102 |
msgid "SkinFlint.co.uk"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: includes/classes/class-woo-feed-merchant.php:425
|
2106 |
msgid "Skroutz.gr"
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: includes/classes/class-woo-feed-merchant.php:426
|
2110 |
msgid "Smartly.io"
|
2111 |
msgstr ""
|
2112 |
|
2113 |
+
#: includes/classes/class-woo-feed-merchant.php:427
|
2114 |
msgid "Spartoo.fi"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
+
#: includes/classes/class-woo-feed-merchant.php:428
|
2118 |
+
msgid "Shopee"
|
2119 |
+
msgstr ""
|
2120 |
+
|
2121 |
+
#: includes/classes/class-woo-feed-merchant.php:429
|
2122 |
msgid "Stylight.com"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
+
#: includes/classes/class-woo-feed-merchant.php:430
|
2126 |
msgid "Trovaprezzi.it"
|
2127 |
msgstr ""
|
2128 |
|
2129 |
+
#: includes/classes/class-woo-feed-merchant.php:431
|
2130 |
msgid "Twenga"
|
2131 |
msgstr ""
|
2132 |
|
2133 |
+
#: includes/classes/class-woo-feed-merchant.php:432
|
2134 |
+
msgid "Tweakers (XML)"
|
2135 |
+
msgstr ""
|
2136 |
+
|
2137 |
+
#: includes/classes/class-woo-feed-merchant.php:433
|
2138 |
+
msgid "Tweakers (CSV)"
|
2139 |
+
msgstr ""
|
2140 |
+
|
2141 |
+
#: includes/classes/class-woo-feed-merchant.php:434
|
2142 |
msgid "Vertaa.fi"
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: includes/classes/class-woo-feed-merchant.php:435
|
2146 |
msgid "Walmart"
|
2147 |
msgstr ""
|
2148 |
|
2149 |
+
#: includes/classes/class-woo-feed-merchant.php:436
|
2150 |
msgid "Webmarchand"
|
2151 |
msgstr ""
|
2152 |
|
2153 |
+
#: includes/classes/class-woo-feed-merchant.php:437
|
2154 |
+
msgid "Wine Searcher"
|
2155 |
+
msgstr ""
|
2156 |
+
|
2157 |
+
#: includes/classes/class-woo-feed-merchant.php:438
|
2158 |
msgid "Wish.com"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
+
#: includes/classes/class-woo-feed-merchant.php:439
|
2162 |
msgid "Yahoo NFA"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
+
#: includes/classes/class-woo-feed-merchant.php:440
|
2166 |
msgid "Zap.co.il"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
+
#: includes/classes/class-woo-feed-merchant.php:441
|
2170 |
+
msgid "Zbozi.cz"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
+
#: includes/classes/class-woo-feed-merchant.php:442
|
2174 |
+
msgid "Zalando"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
+
#: includes/classes/class-woo-feed-products.php:1715
|
2178 |
+
msgid "Product Local Category"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
+
#: includes/classes/class-woo-feed-products.php:1718
|
2182 |
+
msgid "Condition"
|
2183 |
+
msgstr ""
|
2184 |
+
|
2185 |
+
#: includes/classes/class-woo-feed-products.php:1821
|
2186 |
+
msgid "Custom Fields/Post Meta"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
#: includes/classes/class-woo-feed-webappick-api.php:96
|
2261 |
msgstr ""
|
2262 |
|
2263 |
#. translators: 1: plugin name,2: Slightly Smiling Face (Emoji), 3: line break 'br' tag
|
2264 |
+
#: includes/classes/class-woo-feed-webappick-api.php:326
|
2265 |
+
msgid "%3$s %2$s We have spent countless hours developing this free plugin for you, and we would really appreciate it if you dropped us a quick rating. Your opinion matters a lot to us.%4$s It helps us to get better. Thanks for using %1$s."
|
2266 |
msgstr ""
|
2267 |
|
2268 |
+
#: includes/classes/class-woo-feed-webappick-api.php:334
|
2269 |
msgid "Remind me later"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: includes/classes/class-woo-feed-webappick-api.php:335
|
2273 |
msgid "I would not"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: includes/classes/class-woo-feed-webappick-api.php:336
|
2277 |
+
msgid "I already did!"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: includes/classes/class-woo-feed-webappick-api.php:337
|
2281 |
+
msgid "Review Here"
|
|
|
2282 |
msgstr ""
|
2283 |
|
2284 |
#. translators: 1: This plugin name, 2: Pro version purchase link
|
2285 |
+
#: includes/classes/class-woo-feed-webappick-api.php:351
|
2286 |
msgid "You are awesome for using %1$s. Using the %2$s version you can make multilingual feed for your WPML languages."
|
2287 |
msgstr ""
|
2288 |
|
2289 |
#. translators: 1: This plugin Name, 2: Incompatible plugin name, 3: Pro version purchase link
|
2290 |
+
#: includes/classes/class-woo-feed-webappick-api.php:366
|
2291 |
msgid "%1$s isn't fully compatible with %2$s. Get the %3$s version for full support."
|
2292 |
msgstr ""
|
2293 |
|
2295 |
msgid "Request Successful."
|
2296 |
msgstr ""
|
2297 |
|
2298 |
+
#: libs/WebAppick/AppServices/Insights.php:332
|
2299 |
+
msgid "Server environment details (php, mysql, server, WordPress versions)."
|
2300 |
+
msgstr ""
|
2301 |
+
|
2302 |
+
#. translators: 1: plugin name
|
2303 |
+
#: libs/WebAppick/AppServices/Insights.php:455
|
2304 |
+
msgid "Want to help make %1$s even more awesome? Allow %1$s to collect non-sensitive diagnostic data and usage information."
|
2305 |
+
msgstr ""
|
2306 |
+
|
2307 |
+
#: libs/WebAppick/AppServices/Insights.php:687
|
2308 |
+
msgid "Once Weekly"
|
2309 |
+
msgstr ""
|
2310 |
+
|
2311 |
+
#: libs/WebAppick/AppServices/Insights.php:749
|
2312 |
+
msgid "I couldn't understand how to make it work"
|
2313 |
+
msgstr ""
|
2314 |
+
|
2315 |
+
#: libs/WebAppick/AppServices/Insights.php:751
|
2316 |
+
msgid "Would you like us to assist you?"
|
2317 |
+
msgstr ""
|
2318 |
+
|
2319 |
+
#: libs/WebAppick/AppServices/Insights.php:755
|
2320 |
+
msgid "I found a better plugin"
|
2321 |
+
msgstr ""
|
2322 |
+
|
2323 |
+
#: libs/WebAppick/AppServices/Insights.php:757
|
2324 |
+
msgid "Which plugin?"
|
2325 |
+
msgstr ""
|
2326 |
+
|
2327 |
+
#: libs/WebAppick/AppServices/Insights.php:761
|
2328 |
+
msgid "The plugin is great, but I need specific feature that you don't support"
|
2329 |
+
msgstr ""
|
2330 |
+
|
2331 |
+
#: libs/WebAppick/AppServices/Insights.php:763
|
2332 |
+
msgid "Could you tell us more about that feature?"
|
2333 |
+
msgstr ""
|
2334 |
+
|
2335 |
+
#: libs/WebAppick/AppServices/Insights.php:767
|
2336 |
+
msgid "The plugin is not working"
|
2337 |
+
msgstr ""
|
2338 |
+
|
2339 |
+
#: libs/WebAppick/AppServices/Insights.php:769
|
2340 |
+
msgid "Could you tell us a bit more whats not working?"
|
2341 |
+
msgstr ""
|
2342 |
+
|
2343 |
+
#: libs/WebAppick/AppServices/Insights.php:773
|
2344 |
+
msgid "It's not what I was looking for"
|
2345 |
+
msgstr ""
|
2346 |
+
|
2347 |
+
#: libs/WebAppick/AppServices/Insights.php:779
|
2348 |
+
msgid "The plugin didn't work as expected"
|
2349 |
+
msgstr ""
|
2350 |
+
|
2351 |
+
#: libs/WebAppick/AppServices/Insights.php:781
|
2352 |
+
msgid "What did you expect?"
|
2353 |
+
msgstr ""
|
2354 |
+
|
2355 |
+
#: libs/WebAppick/AppServices/Insights.php:785
|
2356 |
+
msgid "Temporary deactivation for debugging"
|
2357 |
+
msgstr ""
|
2358 |
+
|
2359 |
+
#: libs/WebAppick/AppServices/Insights.php:791
|
2360 |
+
msgid "Other"
|
2361 |
+
msgstr ""
|
2362 |
+
|
2363 |
+
#: libs/WebAppick/AppServices/Insights.php:793
|
2364 |
+
msgid "Could you tell us a bit more?"
|
2365 |
+
msgstr ""
|
2366 |
+
|
2367 |
+
#: libs/WebAppick/AppServices/Insights.php:863
|
2368 |
+
msgid "Something Went Wrong."
|
2369 |
+
msgstr ""
|
2370 |
+
|
2371 |
+
#: libs/WebAppick/AppServices/Insights.php:864
|
2372 |
+
msgid "Please try again after sometime."
|
2373 |
+
msgstr ""
|
2374 |
+
|
2375 |
+
#. translators: 1: Plugin Name
|
2376 |
+
#: libs/WebAppick/AppServices/Insights.php:963
|
2377 |
+
msgid "“%s” Uninstall Confirmation"
|
2378 |
+
msgstr ""
|
2379 |
+
|
2380 |
+
#: libs/WebAppick/AppServices/Insights.php:967
|
2381 |
+
msgid "Submit Support Ticket."
|
2382 |
+
msgstr ""
|
2383 |
+
|
2384 |
+
#: libs/WebAppick/AppServices/Insights.php:968, libs/WebAppick/AppServices/Insights.php:1021
|
2385 |
+
msgid "Close"
|
2386 |
+
msgstr ""
|
2387 |
+
|
2388 |
+
#: libs/WebAppick/AppServices/Insights.php:983
|
2389 |
+
msgid "Email"
|
2390 |
+
msgstr ""
|
2391 |
+
|
2392 |
+
#: libs/WebAppick/AppServices/Insights.php:990
|
2393 |
+
msgid "Subject"
|
2394 |
+
msgstr ""
|
2395 |
+
|
2396 |
+
#: libs/WebAppick/AppServices/Insights.php:996
|
2397 |
+
msgid "Website"
|
2398 |
+
msgstr ""
|
2399 |
+
|
2400 |
+
#: libs/WebAppick/AppServices/Insights.php:1003
|
2401 |
+
msgid "Message"
|
2402 |
+
msgstr ""
|
2403 |
+
|
2404 |
+
#: libs/WebAppick/AppServices/Insights.php:1013
|
2405 |
+
msgid "Send Message"
|
2406 |
+
msgstr ""
|
2407 |
+
|
2408 |
+
#: libs/WebAppick/AppServices/Insights.php:1014, libs/WebAppick/AppServices/Insights.php:1051
|
2409 |
+
msgid "Cancel"
|
2410 |
+
msgstr ""
|
2411 |
+
|
2412 |
+
#: libs/WebAppick/AppServices/Insights.php:1020
|
2413 |
+
msgid "If you have a moment, please let us know why you are deactivating:"
|
2414 |
+
msgstr ""
|
2415 |
+
|
2416 |
+
#: libs/WebAppick/AppServices/Insights.php:1039
|
2417 |
+
msgid "In trouble? Please submit a support request."
|
2418 |
+
msgstr ""
|
2419 |
+
|
2420 |
+
#: libs/WebAppick/AppServices/Insights.php:1041
|
2421 |
+
msgid "Not Interested"
|
2422 |
+
msgstr ""
|
2423 |
+
|
2424 |
+
#: libs/WebAppick/AppServices/Insights.php:1042
|
2425 |
+
msgid "Open Support Ticket"
|
2426 |
+
msgstr ""
|
2427 |
+
|
2428 |
+
#: libs/WebAppick/AppServices/Insights.php:1049
|
2429 |
+
msgid "I rather wouldn't say"
|
2430 |
+
msgstr ""
|
2431 |
+
|
2432 |
+
#: libs/WebAppick/AppServices/Insights.php:1050
|
2433 |
+
msgid "Submit & Deactivate"
|
2434 |
+
msgstr ""
|
2435 |
+
|
2436 |
+
#: libs/WebAppick/AppServices/Insights.php:1150
|
2437 |
+
msgid "Processing..."
|
2438 |
+
msgstr ""
|
2439 |
+
|
2440 |
+
#: libs/WebAppick/AppServices/Promotions.php:126
|
2441 |
+
msgid "Promotion Source URL Not Set. see Promotions::set_source( $URL )"
|
2442 |
+
msgstr ""
|
2443 |
+
|
2444 |
+
#: libs/WebAppick/AppServices/Promotions.php:360
|
2445 |
+
msgid "Promo hidden"
|
2446 |
+
msgstr ""
|
2447 |
+
|
2448 |
+
#: libs/WebAppick/AppServices/Promotions.php:373
|
2449 |
+
msgid "Method must be invoked inside admin_init action"
|
2450 |
msgstr ""
|
woo-feed.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
-
* Version: 4.4.
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
@@ -39,7 +39,7 @@ if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
|
|
39 |
* @var string
|
40 |
* @since 3.1.6
|
41 |
*/
|
42 |
-
define( 'WOO_FEED_FREE_VERSION', '4.4.
|
43 |
}
|
44 |
|
45 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
+
* Version: 4.4.5
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
39 |
* @var string
|
40 |
* @since 3.1.6
|
41 |
*/
|
42 |
+
define( 'WOO_FEED_FREE_VERSION', '4.4.5' );
|
43 |
}
|
44 |
|
45 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|