Version Description
- Improved: Some old functionalities.
- Improved: Compatibility with WordPress 5.7 applied.
- Fixed: Some major issues.
Download this release
Release Info
Developer | alimir |
Plugin | WP ULike |
Version | 4.4.7 |
Comparing to | |
See all releases |
Code changes from version 4.4.6 to 4.4.7
- admin/assets/js/plugins.js +1 -1
- admin/assets/js/solo/dist/statistics.dev.js +0 -195
- admin/assets/js/solo/vue/dist/vue.dev.js +0 -11830
- admin/classes/class-wp-ulike-admin-assets.php +10 -5
- admin/index.php +3 -0
- admin/settings/assets/css/style.css +16 -8
- admin/settings/assets/css/style.min.css +1 -1
- admin/settings/assets/js/main.js +3 -1
- admin/settings/assets/js/main.min.js +2 -2
- admin/settings/assets/js/plugins.min.js +1 -1
- admin/settings/assets/scss/vendor/_fields.scss +15 -7
- admin/settings/assets/scss/vendor/_responsive.scss +1 -1
- admin/settings/classes/abstract.class.php +4 -6
- admin/settings/classes/admin-options.class.php +3 -1
- admin/settings/classes/setup.class.php +103 -42
- admin/settings/fields/callback/callback.php +2 -1
- admin/settings/fields/code_editor/code_editor.php +1 -1
- admin/settings/fields/icon/fa4-icons.php +7 -5
- admin/settings/fields/icon/fa5-icons.php +7 -5
- admin/settings/fields/typography/google-fonts.php +44 -10
- admin/settings/functions/customize.php +1 -7
- admin/settings/functions/helpers.php +1 -1
- admin/settings/languages/default.pot +23 -23
- assets/js/dist/wp-ulike.dev.js +0 -216
- assets/js/wp-ulike.js +1 -1
- assets/js/wp-ulike.min.js +1 -1
- dist/Gruntfile.dev.js +0 -463
- includes/action.php +171 -0
- includes/classes/class-wp-ulike-activator.php +194 -0
- {inc → includes}/classes/class-wp-ulike-ajax-listener-base.php +12 -0
- {inc → includes}/classes/class-wp-ulike-cta-listener.php +14 -2
- {inc → includes}/classes/class-wp-ulike-cta-process.php +3 -3
- {inc → includes}/classes/class-wp-ulike-cta-template.php +3 -3
- {inc → includes}/classes/class-wp-ulike-customizer.php +3 -3
- includes/classes/class-wp-ulike-deactivator.php +21 -0
- {inc → includes}/classes/class-wp-ulike-entities-process.php +3 -3
- {inc → includes}/classes/class-wp-ulike-frontend-assets.php +9 -5
- {inc → includes}/classes/class-wp-ulike-mycred.php +3 -3
- {inc → includes}/classes/class-wp-ulike-setting-repo.php +5 -0
- {inc → includes}/classes/class-wp-ulike-setting-type.php +5 -0
- {inc → includes}/classes/class-wp-ulike-voters-listener.php +5 -2
- {inc → includes}/classes/class-wp-ulike.php +3 -3
- {inc → includes}/functions/content-types.php +0 -0
- {inc → includes}/functions/counter.php +0 -0
- {inc → includes}/functions/general.php +0 -0
- {inc → includes}/functions/meta.php +0 -0
- {inc → includes}/functions/queries.php +0 -0
- {inc → includes}/functions/templates.php +0 -0
- {inc → includes}/functions/utilities.php +1 -1
- {inc → includes}/hooks/frontend-ajax.php +0 -0
- {inc → includes}/hooks/general.php +0 -0
- {inc → includes}/hooks/shortcodes.php +0 -0
- {inc → includes}/hooks/third-party.php +0 -1
- {inc → includes}/index.php +0 -0
- includes/plugin.php +293 -0
- includes/public/index.php +15 -0
- languages/wp-ulike-ar.po +483 -422
- languages/wp-ulike-de.po +482 -422
- languages/wp-ulike-es-co.po +481 -421
- languages/wp-ulike-fa_IR.po +43 -41
admin/assets/js/plugins.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! WP ULike - v4.4.
|
2 |
* https://wpulike.com
|
3 |
* TechnoWich 2021;
|
4 |
*/
|
1 |
+
/*! WP ULike - v4.4.7
|
2 |
* https://wpulike.com
|
3 |
* TechnoWich 2021;
|
4 |
*/
|
admin/assets/js/solo/dist/statistics.dev.js
DELETED
@@ -1,195 +0,0 @@
|
|
1 |
-
"use strict";
|
2 |
-
|
3 |
-
/**
|
4 |
-
* wp ulike admin statistics
|
5 |
-
*/
|
6 |
-
(function ($) {
|
7 |
-
$(".wp_ulike_delete").click(function (e) {
|
8 |
-
e.preventDefault();
|
9 |
-
var parent = $(this).closest("tr");
|
10 |
-
var value = $(this).data("id");
|
11 |
-
var table = $(this).data("table");
|
12 |
-
var nonce = $(this).data("nonce");
|
13 |
-
var r = confirm(wp_ulike_admin.logs_notif);
|
14 |
-
|
15 |
-
if (r === true) {
|
16 |
-
jQuery.ajax({
|
17 |
-
type: "POST",
|
18 |
-
url: ajaxurl,
|
19 |
-
data: {
|
20 |
-
action: "ulikelogs",
|
21 |
-
id: value,
|
22 |
-
nonce: nonce,
|
23 |
-
table: table
|
24 |
-
},
|
25 |
-
beforeSend: function beforeSend() {
|
26 |
-
parent.css("background-color", "#fff59d");
|
27 |
-
},
|
28 |
-
success: function success(response) {
|
29 |
-
if (response.success) {
|
30 |
-
parent.fadeOut(300);
|
31 |
-
} else {
|
32 |
-
parent.css("background-color", "#ef9a9a");
|
33 |
-
}
|
34 |
-
}
|
35 |
-
});
|
36 |
-
}
|
37 |
-
});
|
38 |
-
|
39 |
-
$.fn.WpUlikeAjaxStats = function () {
|
40 |
-
// local var
|
41 |
-
var theResponse = null; // jQuery ajax
|
42 |
-
|
43 |
-
$.ajax({
|
44 |
-
type: "POST",
|
45 |
-
dataType: "json",
|
46 |
-
url: ajaxurl,
|
47 |
-
async: false,
|
48 |
-
data: {
|
49 |
-
action: "wp_ulike_ajax_stats",
|
50 |
-
nonce: wp_ulike_admin.nonce_field
|
51 |
-
},
|
52 |
-
success: function success(response) {
|
53 |
-
if (response.success) {
|
54 |
-
theResponse = JSON.parse(response.data);
|
55 |
-
} else {
|
56 |
-
theResponse = null;
|
57 |
-
}
|
58 |
-
}
|
59 |
-
}); // Return the response text
|
60 |
-
|
61 |
-
return theResponse;
|
62 |
-
}; // Charts stack array to save data
|
63 |
-
|
64 |
-
|
65 |
-
window.wpUlikechartsInfo = [];
|
66 |
-
|
67 |
-
if (wp_ulike_admin.hook_address.indexOf("wp-ulike-statistics") !== -1) {
|
68 |
-
// Get all tables data
|
69 |
-
window.wpUlikeAjaxDataset = $.fn.WpUlikeAjaxStats();
|
70 |
-
|
71 |
-
if (window.wpUlikeAjaxDataset === null) {
|
72 |
-
return;
|
73 |
-
} // Get single var component
|
74 |
-
|
75 |
-
|
76 |
-
Vue.component("get-var", {
|
77 |
-
props: ["dataset"],
|
78 |
-
data: function data() {
|
79 |
-
return {
|
80 |
-
output: "..."
|
81 |
-
};
|
82 |
-
},
|
83 |
-
mounted: function mounted() {
|
84 |
-
this.output = this.fetchData(); // Remove spinner class
|
85 |
-
|
86 |
-
this.$nextTick(function () {
|
87 |
-
this.removeClass(this.$el.offsetParent);
|
88 |
-
});
|
89 |
-
},
|
90 |
-
methods: {
|
91 |
-
fetchData: function fetchData() {
|
92 |
-
return window.wpUlikeAjaxDataset[this.dataset];
|
93 |
-
},
|
94 |
-
removeClass: function removeClass(element) {
|
95 |
-
element.classList.remove("wp-ulike-is-loading");
|
96 |
-
}
|
97 |
-
}
|
98 |
-
}); // Get charts object component
|
99 |
-
|
100 |
-
Vue.component("get-chart", {
|
101 |
-
props: ["dataset", "identify", "type"],
|
102 |
-
mounted: function mounted() {
|
103 |
-
if (this.type == "line") {
|
104 |
-
this.planetChartData = this.fetchData();
|
105 |
-
this.createLineChart(this.planetChartData);
|
106 |
-
} else {
|
107 |
-
this.createPieChart();
|
108 |
-
} // Remove spinner class
|
109 |
-
|
110 |
-
|
111 |
-
this.$nextTick(function () {
|
112 |
-
this.removeClass(this.$el.offsetParent);
|
113 |
-
});
|
114 |
-
},
|
115 |
-
methods: {
|
116 |
-
fetchData: function fetchData() {
|
117 |
-
return window.wpUlikeAjaxDataset[this.dataset];
|
118 |
-
},
|
119 |
-
createLineChart: function createLineChart(chartData) {
|
120 |
-
// Push data stats in dataset options
|
121 |
-
chartData.options["data"] = chartData.data; // And finally draw it
|
122 |
-
|
123 |
-
this.drawChart({
|
124 |
-
// The type of chart we want to create
|
125 |
-
type: "line",
|
126 |
-
// The data for our dataset
|
127 |
-
data: {
|
128 |
-
labels: chartData.label,
|
129 |
-
datasets: [chartData.options]
|
130 |
-
}
|
131 |
-
}); // Set info for this canvas
|
132 |
-
|
133 |
-
this.setInfo(chartData);
|
134 |
-
},
|
135 |
-
createPieChart: function createPieChart() {
|
136 |
-
// Define stack variables
|
137 |
-
var pieData = [],
|
138 |
-
pieBackground = [],
|
139 |
-
pieLabels = []; // Get the info of each chart
|
140 |
-
|
141 |
-
window.wpUlikechartsInfo.forEach(function (value, key) {
|
142 |
-
pieData.push(value.sum);
|
143 |
-
pieBackground.push(value.background);
|
144 |
-
pieLabels.push(value.label);
|
145 |
-
}); // And finally draw it
|
146 |
-
|
147 |
-
this.drawChart({
|
148 |
-
// The type of chart we want to create
|
149 |
-
type: "pie",
|
150 |
-
// The data for our dataset
|
151 |
-
data: {
|
152 |
-
datasets: [{
|
153 |
-
data: pieData,
|
154 |
-
backgroundColor: pieBackground
|
155 |
-
}],
|
156 |
-
// These labels appear in the legend and in the tooltips when hovering different arcs
|
157 |
-
labels: pieLabels
|
158 |
-
}
|
159 |
-
});
|
160 |
-
},
|
161 |
-
drawChart: function drawChart(chartArgs) {
|
162 |
-
// Get canvas element
|
163 |
-
var ctx = document.getElementById(this.identify); // Draw Chart
|
164 |
-
|
165 |
-
var chart = new Chart(ctx, chartArgs);
|
166 |
-
},
|
167 |
-
setInfo: function setInfo(chartData) {
|
168 |
-
var sumStack = 0; // Get the sum of total likes
|
169 |
-
|
170 |
-
chartData.data.forEach(function (num) {
|
171 |
-
sumStack += parseFloat(num) || 0;
|
172 |
-
}); // Upgrade wpUlikechartsInfo array
|
173 |
-
|
174 |
-
window.wpUlikechartsInfo.push({
|
175 |
-
type: this.identify,
|
176 |
-
sum: sumStack,
|
177 |
-
label: chartData.options.label,
|
178 |
-
background: chartData.options.backgroundColor
|
179 |
-
});
|
180 |
-
},
|
181 |
-
removeClass: function removeClass(element) {
|
182 |
-
element.classList.remove("wp-ulike-is-loading");
|
183 |
-
}
|
184 |
-
}
|
185 |
-
});
|
186 |
-
new Vue({
|
187 |
-
el: "#wp-ulike-stats-app"
|
188 |
-
});
|
189 |
-
} // on document ready
|
190 |
-
|
191 |
-
|
192 |
-
$(function () {
|
193 |
-
$(".wp-ulike-match-height").matchHeight();
|
194 |
-
});
|
195 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/assets/js/solo/vue/dist/vue.dev.js
DELETED
@@ -1,11830 +0,0 @@
|
|
1 |
-
"use strict";
|
2 |
-
|
3 |
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
4 |
-
|
5 |
-
/*!
|
6 |
-
* Vue.js v2.6.12
|
7 |
-
* (c) 2014-2020 Evan You
|
8 |
-
* Released under the MIT License.
|
9 |
-
*/
|
10 |
-
(function (global, factory) {
|
11 |
-
(typeof exports === "undefined" ? "undefined" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.Vue = factory());
|
12 |
-
})(void 0, function () {
|
13 |
-
'use strict';
|
14 |
-
/* */
|
15 |
-
|
16 |
-
var emptyObject = Object.freeze({}); // These helpers produce better VM code in JS engines due to their
|
17 |
-
// explicitness and function inlining.
|
18 |
-
|
19 |
-
function isUndef(v) {
|
20 |
-
return v === undefined || v === null;
|
21 |
-
}
|
22 |
-
|
23 |
-
function isDef(v) {
|
24 |
-
return v !== undefined && v !== null;
|
25 |
-
}
|
26 |
-
|
27 |
-
function isTrue(v) {
|
28 |
-
return v === true;
|
29 |
-
}
|
30 |
-
|
31 |
-
function isFalse(v) {
|
32 |
-
return v === false;
|
33 |
-
}
|
34 |
-
/**
|
35 |
-
* Check if value is primitive.
|
36 |
-
*/
|
37 |
-
|
38 |
-
|
39 |
-
function isPrimitive(value) {
|
40 |
-
return typeof value === 'string' || typeof value === 'number' || // $flow-disable-line
|
41 |
-
_typeof(value) === 'symbol' || typeof value === 'boolean';
|
42 |
-
}
|
43 |
-
/**
|
44 |
-
* Quick object check - this is primarily used to tell
|
45 |
-
* Objects from primitive values when we know the value
|
46 |
-
* is a JSON-compliant type.
|
47 |
-
*/
|
48 |
-
|
49 |
-
|
50 |
-
function isObject(obj) {
|
51 |
-
return obj !== null && _typeof(obj) === 'object';
|
52 |
-
}
|
53 |
-
/**
|
54 |
-
* Get the raw type string of a value, e.g., [object Object].
|
55 |
-
*/
|
56 |
-
|
57 |
-
|
58 |
-
var _toString = Object.prototype.toString;
|
59 |
-
|
60 |
-
function toRawType(value) {
|
61 |
-
return _toString.call(value).slice(8, -1);
|
62 |
-
}
|
63 |
-
/**
|
64 |
-
* Strict object type check. Only returns true
|
65 |
-
* for plain JavaScript objects.
|
66 |
-
*/
|
67 |
-
|
68 |
-
|
69 |
-
function isPlainObject(obj) {
|
70 |
-
return _toString.call(obj) === '[object Object]';
|
71 |
-
}
|
72 |
-
|
73 |
-
function isRegExp(v) {
|
74 |
-
return _toString.call(v) === '[object RegExp]';
|
75 |
-
}
|
76 |
-
/**
|
77 |
-
* Check if val is a valid array index.
|
78 |
-
*/
|
79 |
-
|
80 |
-
|
81 |
-
function isValidArrayIndex(val) {
|
82 |
-
var n = parseFloat(String(val));
|
83 |
-
return n >= 0 && Math.floor(n) === n && isFinite(val);
|
84 |
-
}
|
85 |
-
|
86 |
-
function isPromise(val) {
|
87 |
-
return isDef(val) && typeof val.then === 'function' && typeof val["catch"] === 'function';
|
88 |
-
}
|
89 |
-
/**
|
90 |
-
* Convert a value to a string that is actually rendered.
|
91 |
-
*/
|
92 |
-
|
93 |
-
|
94 |
-
function toString(val) {
|
95 |
-
return val == null ? '' : Array.isArray(val) || isPlainObject(val) && val.toString === _toString ? JSON.stringify(val, null, 2) : String(val);
|
96 |
-
}
|
97 |
-
/**
|
98 |
-
* Convert an input value to a number for persistence.
|
99 |
-
* If the conversion fails, return original string.
|
100 |
-
*/
|
101 |
-
|
102 |
-
|
103 |
-
function toNumber(val) {
|
104 |
-
var n = parseFloat(val);
|
105 |
-
return isNaN(n) ? val : n;
|
106 |
-
}
|
107 |
-
/**
|
108 |
-
* Make a map and return a function for checking if a key
|
109 |
-
* is in that map.
|
110 |
-
*/
|
111 |
-
|
112 |
-
|
113 |
-
function makeMap(str, expectsLowerCase) {
|
114 |
-
var map = Object.create(null);
|
115 |
-
var list = str.split(',');
|
116 |
-
|
117 |
-
for (var i = 0; i < list.length; i++) {
|
118 |
-
map[list[i]] = true;
|
119 |
-
}
|
120 |
-
|
121 |
-
return expectsLowerCase ? function (val) {
|
122 |
-
return map[val.toLowerCase()];
|
123 |
-
} : function (val) {
|
124 |
-
return map[val];
|
125 |
-
};
|
126 |
-
}
|
127 |
-
/**
|
128 |
-
* Check if a tag is a built-in tag.
|
129 |
-
*/
|
130 |
-
|
131 |
-
|
132 |
-
var isBuiltInTag = makeMap('slot,component', true);
|
133 |
-
/**
|
134 |
-
* Check if an attribute is a reserved attribute.
|
135 |
-
*/
|
136 |
-
|
137 |
-
var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
|
138 |
-
/**
|
139 |
-
* Remove an item from an array.
|
140 |
-
*/
|
141 |
-
|
142 |
-
function remove(arr, item) {
|
143 |
-
if (arr.length) {
|
144 |
-
var index = arr.indexOf(item);
|
145 |
-
|
146 |
-
if (index > -1) {
|
147 |
-
return arr.splice(index, 1);
|
148 |
-
}
|
149 |
-
}
|
150 |
-
}
|
151 |
-
/**
|
152 |
-
* Check whether an object has the property.
|
153 |
-
*/
|
154 |
-
|
155 |
-
|
156 |
-
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
157 |
-
|
158 |
-
function hasOwn(obj, key) {
|
159 |
-
return hasOwnProperty.call(obj, key);
|
160 |
-
}
|
161 |
-
/**
|
162 |
-
* Create a cached version of a pure function.
|
163 |
-
*/
|
164 |
-
|
165 |
-
|
166 |
-
function cached(fn) {
|
167 |
-
var cache = Object.create(null);
|
168 |
-
return function cachedFn(str) {
|
169 |
-
var hit = cache[str];
|
170 |
-
return hit || (cache[str] = fn(str));
|
171 |
-
};
|
172 |
-
}
|
173 |
-
/**
|
174 |
-
* Camelize a hyphen-delimited string.
|
175 |
-
*/
|
176 |
-
|
177 |
-
|
178 |
-
var camelizeRE = /-(\w)/g;
|
179 |
-
var camelize = cached(function (str) {
|
180 |
-
return str.replace(camelizeRE, function (_, c) {
|
181 |
-
return c ? c.toUpperCase() : '';
|
182 |
-
});
|
183 |
-
});
|
184 |
-
/**
|
185 |
-
* Capitalize a string.
|
186 |
-
*/
|
187 |
-
|
188 |
-
var capitalize = cached(function (str) {
|
189 |
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
190 |
-
});
|
191 |
-
/**
|
192 |
-
* Hyphenate a camelCase string.
|
193 |
-
*/
|
194 |
-
|
195 |
-
var hyphenateRE = /\B([A-Z])/g;
|
196 |
-
var hyphenate = cached(function (str) {
|
197 |
-
return str.replace(hyphenateRE, '-$1').toLowerCase();
|
198 |
-
});
|
199 |
-
/**
|
200 |
-
* Simple bind polyfill for environments that do not support it,
|
201 |
-
* e.g., PhantomJS 1.x. Technically, we don't need this anymore
|
202 |
-
* since native bind is now performant enough in most browsers.
|
203 |
-
* But removing it would mean breaking code that was able to run in
|
204 |
-
* PhantomJS 1.x, so this must be kept for backward compatibility.
|
205 |
-
*/
|
206 |
-
|
207 |
-
/* istanbul ignore next */
|
208 |
-
|
209 |
-
function polyfillBind(fn, ctx) {
|
210 |
-
function boundFn(a) {
|
211 |
-
var l = arguments.length;
|
212 |
-
return l ? l > 1 ? fn.apply(ctx, arguments) : fn.call(ctx, a) : fn.call(ctx);
|
213 |
-
}
|
214 |
-
|
215 |
-
boundFn._length = fn.length;
|
216 |
-
return boundFn;
|
217 |
-
}
|
218 |
-
|
219 |
-
function nativeBind(fn, ctx) {
|
220 |
-
return fn.bind(ctx);
|
221 |
-
}
|
222 |
-
|
223 |
-
var bind = Function.prototype.bind ? nativeBind : polyfillBind;
|
224 |
-
/**
|
225 |
-
* Convert an Array-like object to a real Array.
|
226 |
-
*/
|
227 |
-
|
228 |
-
function toArray(list, start) {
|
229 |
-
start = start || 0;
|
230 |
-
var i = list.length - start;
|
231 |
-
var ret = new Array(i);
|
232 |
-
|
233 |
-
while (i--) {
|
234 |
-
ret[i] = list[i + start];
|
235 |
-
}
|
236 |
-
|
237 |
-
return ret;
|
238 |
-
}
|
239 |
-
/**
|
240 |
-
* Mix properties into target object.
|
241 |
-
*/
|
242 |
-
|
243 |
-
|
244 |
-
function extend(to, _from) {
|
245 |
-
for (var key in _from) {
|
246 |
-
to[key] = _from[key];
|
247 |
-
}
|
248 |
-
|
249 |
-
return to;
|
250 |
-
}
|
251 |
-
/**
|
252 |
-
* Merge an Array of Objects into a single Object.
|
253 |
-
*/
|
254 |
-
|
255 |
-
|
256 |
-
function toObject(arr) {
|
257 |
-
var res = {};
|
258 |
-
|
259 |
-
for (var i = 0; i < arr.length; i++) {
|
260 |
-
if (arr[i]) {
|
261 |
-
extend(res, arr[i]);
|
262 |
-
}
|
263 |
-
}
|
264 |
-
|
265 |
-
return res;
|
266 |
-
}
|
267 |
-
/* eslint-disable no-unused-vars */
|
268 |
-
|
269 |
-
/**
|
270 |
-
* Perform no operation.
|
271 |
-
* Stubbing args to make Flow happy without leaving useless transpiled code
|
272 |
-
* with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
|
273 |
-
*/
|
274 |
-
|
275 |
-
|
276 |
-
function noop(a, b, c) {}
|
277 |
-
/**
|
278 |
-
* Always return false.
|
279 |
-
*/
|
280 |
-
|
281 |
-
|
282 |
-
var no = function no(a, b, c) {
|
283 |
-
return false;
|
284 |
-
};
|
285 |
-
/* eslint-enable no-unused-vars */
|
286 |
-
|
287 |
-
/**
|
288 |
-
* Return the same value.
|
289 |
-
*/
|
290 |
-
|
291 |
-
|
292 |
-
var identity = function identity(_) {
|
293 |
-
return _;
|
294 |
-
};
|
295 |
-
/**
|
296 |
-
* Generate a string containing static keys from compiler modules.
|
297 |
-
*/
|
298 |
-
|
299 |
-
|
300 |
-
function genStaticKeys(modules) {
|
301 |
-
return modules.reduce(function (keys, m) {
|
302 |
-
return keys.concat(m.staticKeys || []);
|
303 |
-
}, []).join(',');
|
304 |
-
}
|
305 |
-
/**
|
306 |
-
* Check if two values are loosely equal - that is,
|
307 |
-
* if they are plain objects, do they have the same shape?
|
308 |
-
*/
|
309 |
-
|
310 |
-
|
311 |
-
function looseEqual(a, b) {
|
312 |
-
if (a === b) {
|
313 |
-
return true;
|
314 |
-
}
|
315 |
-
|
316 |
-
var isObjectA = isObject(a);
|
317 |
-
var isObjectB = isObject(b);
|
318 |
-
|
319 |
-
if (isObjectA && isObjectB) {
|
320 |
-
try {
|
321 |
-
var isArrayA = Array.isArray(a);
|
322 |
-
var isArrayB = Array.isArray(b);
|
323 |
-
|
324 |
-
if (isArrayA && isArrayB) {
|
325 |
-
return a.length === b.length && a.every(function (e, i) {
|
326 |
-
return looseEqual(e, b[i]);
|
327 |
-
});
|
328 |
-
} else if (a instanceof Date && b instanceof Date) {
|
329 |
-
return a.getTime() === b.getTime();
|
330 |
-
} else if (!isArrayA && !isArrayB) {
|
331 |
-
var keysA = Object.keys(a);
|
332 |
-
var keysB = Object.keys(b);
|
333 |
-
return keysA.length === keysB.length && keysA.every(function (key) {
|
334 |
-
return looseEqual(a[key], b[key]);
|
335 |
-
});
|
336 |
-
} else {
|
337 |
-
/* istanbul ignore next */
|
338 |
-
return false;
|
339 |
-
}
|
340 |
-
} catch (e) {
|
341 |
-
/* istanbul ignore next */
|
342 |
-
return false;
|
343 |
-
}
|
344 |
-
} else if (!isObjectA && !isObjectB) {
|
345 |
-
return String(a) === String(b);
|
346 |
-
} else {
|
347 |
-
return false;
|
348 |
-
}
|
349 |
-
}
|
350 |
-
/**
|
351 |
-
* Return the first index at which a loosely equal value can be
|
352 |
-
* found in the array (if value is a plain object, the array must
|
353 |
-
* contain an object of the same shape), or -1 if it is not present.
|
354 |
-
*/
|
355 |
-
|
356 |
-
|
357 |
-
function looseIndexOf(arr, val) {
|
358 |
-
for (var i = 0; i < arr.length; i++) {
|
359 |
-
if (looseEqual(arr[i], val)) {
|
360 |
-
return i;
|
361 |
-
}
|
362 |
-
}
|
363 |
-
|
364 |
-
return -1;
|
365 |
-
}
|
366 |
-
/**
|
367 |
-
* Ensure a function is called only once.
|
368 |
-
*/
|
369 |
-
|
370 |
-
|
371 |
-
function once(fn) {
|
372 |
-
var called = false;
|
373 |
-
return function () {
|
374 |
-
if (!called) {
|
375 |
-
called = true;
|
376 |
-
fn.apply(this, arguments);
|
377 |
-
}
|
378 |
-
};
|
379 |
-
}
|
380 |
-
|
381 |
-
var SSR_ATTR = 'data-server-rendered';
|
382 |
-
var ASSET_TYPES = ['component', 'directive', 'filter'];
|
383 |
-
var LIFECYCLE_HOOKS = ['beforeCreate', 'created', 'beforeMount', 'mounted', 'beforeUpdate', 'updated', 'beforeDestroy', 'destroyed', 'activated', 'deactivated', 'errorCaptured', 'serverPrefetch'];
|
384 |
-
/* */
|
385 |
-
|
386 |
-
var config = {
|
387 |
-
/**
|
388 |
-
* Option merge strategies (used in core/util/options)
|
389 |
-
*/
|
390 |
-
// $flow-disable-line
|
391 |
-
optionMergeStrategies: Object.create(null),
|
392 |
-
|
393 |
-
/**
|
394 |
-
* Whether to suppress warnings.
|
395 |
-
*/
|
396 |
-
silent: false,
|
397 |
-
|
398 |
-
/**
|
399 |
-
* Show production mode tip message on boot?
|
400 |
-
*/
|
401 |
-
productionTip: "development" !== 'production',
|
402 |
-
|
403 |
-
/**
|
404 |
-
* Whether to enable devtools
|
405 |
-
*/
|
406 |
-
devtools: "development" !== 'production',
|
407 |
-
|
408 |
-
/**
|
409 |
-
* Whether to record perf
|
410 |
-
*/
|
411 |
-
performance: false,
|
412 |
-
|
413 |
-
/**
|
414 |
-
* Error handler for watcher errors
|
415 |
-
*/
|
416 |
-
errorHandler: null,
|
417 |
-
|
418 |
-
/**
|
419 |
-
* Warn handler for watcher warns
|
420 |
-
*/
|
421 |
-
warnHandler: null,
|
422 |
-
|
423 |
-
/**
|
424 |
-
* Ignore certain custom elements
|
425 |
-
*/
|
426 |
-
ignoredElements: [],
|
427 |
-
|
428 |
-
/**
|
429 |
-
* Custom user key aliases for v-on
|
430 |
-
*/
|
431 |
-
// $flow-disable-line
|
432 |
-
keyCodes: Object.create(null),
|
433 |
-
|
434 |
-
/**
|
435 |
-
* Check if a tag is reserved so that it cannot be registered as a
|
436 |
-
* component. This is platform-dependent and may be overwritten.
|
437 |
-
*/
|
438 |
-
isReservedTag: no,
|
439 |
-
|
440 |
-
/**
|
441 |
-
* Check if an attribute is reserved so that it cannot be used as a component
|
442 |
-
* prop. This is platform-dependent and may be overwritten.
|
443 |
-
*/
|
444 |
-
isReservedAttr: no,
|
445 |
-
|
446 |
-
/**
|
447 |
-
* Check if a tag is an unknown element.
|
448 |
-
* Platform-dependent.
|
449 |
-
*/
|
450 |
-
isUnknownElement: no,
|
451 |
-
|
452 |
-
/**
|
453 |
-
* Get the namespace of an element
|
454 |
-
*/
|
455 |
-
getTagNamespace: noop,
|
456 |
-
|
457 |
-
/**
|
458 |
-
* Parse the real tag name for the specific platform.
|
459 |
-
*/
|
460 |
-
parsePlatformTagName: identity,
|
461 |
-
|
462 |
-
/**
|
463 |
-
* Check if an attribute must be bound using property, e.g. value
|
464 |
-
* Platform-dependent.
|
465 |
-
*/
|
466 |
-
mustUseProp: no,
|
467 |
-
|
468 |
-
/**
|
469 |
-
* Perform updates asynchronously. Intended to be used by Vue Test Utils
|
470 |
-
* This will significantly reduce performance if set to false.
|
471 |
-
*/
|
472 |
-
async: true,
|
473 |
-
|
474 |
-
/**
|
475 |
-
* Exposed for legacy reasons
|
476 |
-
*/
|
477 |
-
_lifecycleHooks: LIFECYCLE_HOOKS
|
478 |
-
};
|
479 |
-
/* */
|
480 |
-
|
481 |
-
/**
|
482 |
-
* unicode letters used for parsing html tags, component names and property paths.
|
483 |
-
* using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
|
484 |
-
* skipping \u10000-\uEFFFF due to it freezing up PhantomJS
|
485 |
-
*/
|
486 |
-
|
487 |
-
var unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
|
488 |
-
/**
|
489 |
-
* Check if a string starts with $ or _
|
490 |
-
*/
|
491 |
-
|
492 |
-
function isReserved(str) {
|
493 |
-
var c = (str + '').charCodeAt(0);
|
494 |
-
return c === 0x24 || c === 0x5F;
|
495 |
-
}
|
496 |
-
/**
|
497 |
-
* Define a property.
|
498 |
-
*/
|
499 |
-
|
500 |
-
|
501 |
-
function def(obj, key, val, enumerable) {
|
502 |
-
Object.defineProperty(obj, key, {
|
503 |
-
value: val,
|
504 |
-
enumerable: !!enumerable,
|
505 |
-
writable: true,
|
506 |
-
configurable: true
|
507 |
-
});
|
508 |
-
}
|
509 |
-
/**
|
510 |
-
* Parse simple path.
|
511 |
-
*/
|
512 |
-
|
513 |
-
|
514 |
-
var bailRE = new RegExp("[^" + unicodeRegExp.source + ".$_\\d]");
|
515 |
-
|
516 |
-
function parsePath(path) {
|
517 |
-
if (bailRE.test(path)) {
|
518 |
-
return;
|
519 |
-
}
|
520 |
-
|
521 |
-
var segments = path.split('.');
|
522 |
-
return function (obj) {
|
523 |
-
for (var i = 0; i < segments.length; i++) {
|
524 |
-
if (!obj) {
|
525 |
-
return;
|
526 |
-
}
|
527 |
-
|
528 |
-
obj = obj[segments[i]];
|
529 |
-
}
|
530 |
-
|
531 |
-
return obj;
|
532 |
-
};
|
533 |
-
}
|
534 |
-
/* */
|
535 |
-
// can we use __proto__?
|
536 |
-
|
537 |
-
|
538 |
-
var hasProto = '__proto__' in {}; // Browser environment sniffing
|
539 |
-
|
540 |
-
var inBrowser = typeof window !== 'undefined';
|
541 |
-
var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;
|
542 |
-
var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();
|
543 |
-
var UA = inBrowser && window.navigator.userAgent.toLowerCase();
|
544 |
-
var isIE = UA && /msie|trident/.test(UA);
|
545 |
-
var isIE9 = UA && UA.indexOf('msie 9.0') > 0;
|
546 |
-
var isEdge = UA && UA.indexOf('edge/') > 0;
|
547 |
-
var isAndroid = UA && UA.indexOf('android') > 0 || weexPlatform === 'android';
|
548 |
-
var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA) || weexPlatform === 'ios';
|
549 |
-
var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
|
550 |
-
var isPhantomJS = UA && /phantomjs/.test(UA);
|
551 |
-
var isFF = UA && UA.match(/firefox\/(\d+)/); // Firefox has a "watch" function on Object.prototype...
|
552 |
-
|
553 |
-
var nativeWatch = {}.watch;
|
554 |
-
var supportsPassive = false;
|
555 |
-
|
556 |
-
if (inBrowser) {
|
557 |
-
try {
|
558 |
-
var opts = {};
|
559 |
-
Object.defineProperty(opts, 'passive', {
|
560 |
-
get: function get() {
|
561 |
-
/* istanbul ignore next */
|
562 |
-
supportsPassive = true;
|
563 |
-
}
|
564 |
-
}); // https://github.com/facebook/flow/issues/285
|
565 |
-
|
566 |
-
window.addEventListener('test-passive', null, opts);
|
567 |
-
} catch (e) {}
|
568 |
-
} // this needs to be lazy-evaled because vue may be required before
|
569 |
-
// vue-server-renderer can set VUE_ENV
|
570 |
-
|
571 |
-
|
572 |
-
var _isServer;
|
573 |
-
|
574 |
-
var isServerRendering = function isServerRendering() {
|
575 |
-
if (_isServer === undefined) {
|
576 |
-
/* istanbul ignore if */
|
577 |
-
if (!inBrowser && !inWeex && typeof global !== 'undefined') {
|
578 |
-
// detect presence of vue-server-renderer and avoid
|
579 |
-
// Webpack shimming the process
|
580 |
-
_isServer = global['process'] && global['process'].env.VUE_ENV === 'server';
|
581 |
-
} else {
|
582 |
-
_isServer = false;
|
583 |
-
}
|
584 |
-
}
|
585 |
-
|
586 |
-
return _isServer;
|
587 |
-
}; // detect devtools
|
588 |
-
|
589 |
-
|
590 |
-
var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
|
591 |
-
/* istanbul ignore next */
|
592 |
-
|
593 |
-
function isNative(Ctor) {
|
594 |
-
return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
|
595 |
-
}
|
596 |
-
|
597 |
-
var hasSymbol = typeof Symbol !== 'undefined' && isNative(Symbol) && typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);
|
598 |
-
|
599 |
-
var _Set;
|
600 |
-
/* istanbul ignore if */
|
601 |
-
// $flow-disable-line
|
602 |
-
|
603 |
-
|
604 |
-
if (typeof Set !== 'undefined' && isNative(Set)) {
|
605 |
-
// use native Set when available.
|
606 |
-
_Set = Set;
|
607 |
-
} else {
|
608 |
-
// a non-standard Set polyfill that only works with primitive keys.
|
609 |
-
_Set =
|
610 |
-
/*@__PURE__*/
|
611 |
-
function () {
|
612 |
-
function Set() {
|
613 |
-
this.set = Object.create(null);
|
614 |
-
}
|
615 |
-
|
616 |
-
Set.prototype.has = function has(key) {
|
617 |
-
return this.set[key] === true;
|
618 |
-
};
|
619 |
-
|
620 |
-
Set.prototype.add = function add(key) {
|
621 |
-
this.set[key] = true;
|
622 |
-
};
|
623 |
-
|
624 |
-
Set.prototype.clear = function clear() {
|
625 |
-
this.set = Object.create(null);
|
626 |
-
};
|
627 |
-
|
628 |
-
return Set;
|
629 |
-
}();
|
630 |
-
}
|
631 |
-
/* */
|
632 |
-
|
633 |
-
|
634 |
-
var warn = noop;
|
635 |
-
var tip = noop;
|
636 |
-
var generateComponentTrace = noop; // work around flow check
|
637 |
-
|
638 |
-
var formatComponentName = noop;
|
639 |
-
{
|
640 |
-
var hasConsole = typeof console !== 'undefined';
|
641 |
-
var classifyRE = /(?:^|[-_])(\w)/g;
|
642 |
-
|
643 |
-
var classify = function classify(str) {
|
644 |
-
return str.replace(classifyRE, function (c) {
|
645 |
-
return c.toUpperCase();
|
646 |
-
}).replace(/[-_]/g, '');
|
647 |
-
};
|
648 |
-
|
649 |
-
warn = function warn(msg, vm) {
|
650 |
-
var trace = vm ? generateComponentTrace(vm) : '';
|
651 |
-
|
652 |
-
if (config.warnHandler) {
|
653 |
-
config.warnHandler.call(null, msg, vm, trace);
|
654 |
-
} else if (hasConsole && !config.silent) {
|
655 |
-
console.error("[Vue warn]: " + msg + trace);
|
656 |
-
}
|
657 |
-
};
|
658 |
-
|
659 |
-
tip = function tip(msg, vm) {
|
660 |
-
if (hasConsole && !config.silent) {
|
661 |
-
console.warn("[Vue tip]: " + msg + (vm ? generateComponentTrace(vm) : ''));
|
662 |
-
}
|
663 |
-
};
|
664 |
-
|
665 |
-
formatComponentName = function formatComponentName(vm, includeFile) {
|
666 |
-
if (vm.$root === vm) {
|
667 |
-
return '<Root>';
|
668 |
-
}
|
669 |
-
|
670 |
-
var options = typeof vm === 'function' && vm.cid != null ? vm.options : vm._isVue ? vm.$options || vm.constructor.options : vm;
|
671 |
-
var name = options.name || options._componentTag;
|
672 |
-
var file = options.__file;
|
673 |
-
|
674 |
-
if (!name && file) {
|
675 |
-
var match = file.match(/([^/\\]+)\.vue$/);
|
676 |
-
name = match && match[1];
|
677 |
-
}
|
678 |
-
|
679 |
-
return (name ? "<" + classify(name) + ">" : "<Anonymous>") + (file && includeFile !== false ? " at " + file : '');
|
680 |
-
};
|
681 |
-
|
682 |
-
var repeat = function repeat(str, n) {
|
683 |
-
var res = '';
|
684 |
-
|
685 |
-
while (n) {
|
686 |
-
if (n % 2 === 1) {
|
687 |
-
res += str;
|
688 |
-
}
|
689 |
-
|
690 |
-
if (n > 1) {
|
691 |
-
str += str;
|
692 |
-
}
|
693 |
-
|
694 |
-
n >>= 1;
|
695 |
-
}
|
696 |
-
|
697 |
-
return res;
|
698 |
-
};
|
699 |
-
|
700 |
-
generateComponentTrace = function generateComponentTrace(vm) {
|
701 |
-
if (vm._isVue && vm.$parent) {
|
702 |
-
var tree = [];
|
703 |
-
var currentRecursiveSequence = 0;
|
704 |
-
|
705 |
-
while (vm) {
|
706 |
-
if (tree.length > 0) {
|
707 |
-
var last = tree[tree.length - 1];
|
708 |
-
|
709 |
-
if (last.constructor === vm.constructor) {
|
710 |
-
currentRecursiveSequence++;
|
711 |
-
vm = vm.$parent;
|
712 |
-
continue;
|
713 |
-
} else if (currentRecursiveSequence > 0) {
|
714 |
-
tree[tree.length - 1] = [last, currentRecursiveSequence];
|
715 |
-
currentRecursiveSequence = 0;
|
716 |
-
}
|
717 |
-
}
|
718 |
-
|
719 |
-
tree.push(vm);
|
720 |
-
vm = vm.$parent;
|
721 |
-
}
|
722 |
-
|
723 |
-
return '\n\nfound in\n\n' + tree.map(function (vm, i) {
|
724 |
-
return "" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm) ? formatComponentName(vm[0]) + "... (" + vm[1] + " recursive calls)" : formatComponentName(vm));
|
725 |
-
}).join('\n');
|
726 |
-
} else {
|
727 |
-
return "\n\n(found in " + formatComponentName(vm) + ")";
|
728 |
-
}
|
729 |
-
};
|
730 |
-
}
|
731 |
-
/* */
|
732 |
-
|
733 |
-
var uid = 0;
|
734 |
-
/**
|
735 |
-
* A dep is an observable that can have multiple
|
736 |
-
* directives subscribing to it.
|
737 |
-
*/
|
738 |
-
|
739 |
-
var Dep = function Dep() {
|
740 |
-
this.id = uid++;
|
741 |
-
this.subs = [];
|
742 |
-
};
|
743 |
-
|
744 |
-
Dep.prototype.addSub = function addSub(sub) {
|
745 |
-
this.subs.push(sub);
|
746 |
-
};
|
747 |
-
|
748 |
-
Dep.prototype.removeSub = function removeSub(sub) {
|
749 |
-
remove(this.subs, sub);
|
750 |
-
};
|
751 |
-
|
752 |
-
Dep.prototype.depend = function depend() {
|
753 |
-
if (Dep.target) {
|
754 |
-
Dep.target.addDep(this);
|
755 |
-
}
|
756 |
-
};
|
757 |
-
|
758 |
-
Dep.prototype.notify = function notify() {
|
759 |
-
// stabilize the subscriber list first
|
760 |
-
var subs = this.subs.slice();
|
761 |
-
|
762 |
-
if (!config.async) {
|
763 |
-
// subs aren't sorted in scheduler if not running async
|
764 |
-
// we need to sort them now to make sure they fire in correct
|
765 |
-
// order
|
766 |
-
subs.sort(function (a, b) {
|
767 |
-
return a.id - b.id;
|
768 |
-
});
|
769 |
-
}
|
770 |
-
|
771 |
-
for (var i = 0, l = subs.length; i < l; i++) {
|
772 |
-
subs[i].update();
|
773 |
-
}
|
774 |
-
}; // The current target watcher being evaluated.
|
775 |
-
// This is globally unique because only one watcher
|
776 |
-
// can be evaluated at a time.
|
777 |
-
|
778 |
-
|
779 |
-
Dep.target = null;
|
780 |
-
var targetStack = [];
|
781 |
-
|
782 |
-
function pushTarget(target) {
|
783 |
-
targetStack.push(target);
|
784 |
-
Dep.target = target;
|
785 |
-
}
|
786 |
-
|
787 |
-
function popTarget() {
|
788 |
-
targetStack.pop();
|
789 |
-
Dep.target = targetStack[targetStack.length - 1];
|
790 |
-
}
|
791 |
-
/* */
|
792 |
-
|
793 |
-
|
794 |
-
var VNode = function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {
|
795 |
-
this.tag = tag;
|
796 |
-
this.data = data;
|
797 |
-
this.children = children;
|
798 |
-
this.text = text;
|
799 |
-
this.elm = elm;
|
800 |
-
this.ns = undefined;
|
801 |
-
this.context = context;
|
802 |
-
this.fnContext = undefined;
|
803 |
-
this.fnOptions = undefined;
|
804 |
-
this.fnScopeId = undefined;
|
805 |
-
this.key = data && data.key;
|
806 |
-
this.componentOptions = componentOptions;
|
807 |
-
this.componentInstance = undefined;
|
808 |
-
this.parent = undefined;
|
809 |
-
this.raw = false;
|
810 |
-
this.isStatic = false;
|
811 |
-
this.isRootInsert = true;
|
812 |
-
this.isComment = false;
|
813 |
-
this.isCloned = false;
|
814 |
-
this.isOnce = false;
|
815 |
-
this.asyncFactory = asyncFactory;
|
816 |
-
this.asyncMeta = undefined;
|
817 |
-
this.isAsyncPlaceholder = false;
|
818 |
-
};
|
819 |
-
|
820 |
-
var prototypeAccessors = {
|
821 |
-
child: {
|
822 |
-
configurable: true
|
823 |
-
}
|
824 |
-
}; // DEPRECATED: alias for componentInstance for backwards compat.
|
825 |
-
|
826 |
-
/* istanbul ignore next */
|
827 |
-
|
828 |
-
prototypeAccessors.child.get = function () {
|
829 |
-
return this.componentInstance;
|
830 |
-
};
|
831 |
-
|
832 |
-
Object.defineProperties(VNode.prototype, prototypeAccessors);
|
833 |
-
|
834 |
-
var createEmptyVNode = function createEmptyVNode(text) {
|
835 |
-
if (text === void 0) text = '';
|
836 |
-
var node = new VNode();
|
837 |
-
node.text = text;
|
838 |
-
node.isComment = true;
|
839 |
-
return node;
|
840 |
-
};
|
841 |
-
|
842 |
-
function createTextVNode(val) {
|
843 |
-
return new VNode(undefined, undefined, undefined, String(val));
|
844 |
-
} // optimized shallow clone
|
845 |
-
// used for static nodes and slot nodes because they may be reused across
|
846 |
-
// multiple renders, cloning them avoids errors when DOM manipulations rely
|
847 |
-
// on their elm reference.
|
848 |
-
|
849 |
-
|
850 |
-
function cloneVNode(vnode) {
|
851 |
-
var cloned = new VNode(vnode.tag, vnode.data, // #7975
|
852 |
-
// clone children array to avoid mutating original in case of cloning
|
853 |
-
// a child.
|
854 |
-
vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);
|
855 |
-
cloned.ns = vnode.ns;
|
856 |
-
cloned.isStatic = vnode.isStatic;
|
857 |
-
cloned.key = vnode.key;
|
858 |
-
cloned.isComment = vnode.isComment;
|
859 |
-
cloned.fnContext = vnode.fnContext;
|
860 |
-
cloned.fnOptions = vnode.fnOptions;
|
861 |
-
cloned.fnScopeId = vnode.fnScopeId;
|
862 |
-
cloned.asyncMeta = vnode.asyncMeta;
|
863 |
-
cloned.isCloned = true;
|
864 |
-
return cloned;
|
865 |
-
}
|
866 |
-
/*
|
867 |
-
* not type checking this file because flow doesn't play well with
|
868 |
-
* dynamically accessing methods on Array prototype
|
869 |
-
*/
|
870 |
-
|
871 |
-
|
872 |
-
var arrayProto = Array.prototype;
|
873 |
-
var arrayMethods = Object.create(arrayProto);
|
874 |
-
var methodsToPatch = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'];
|
875 |
-
/**
|
876 |
-
* Intercept mutating methods and emit events
|
877 |
-
*/
|
878 |
-
|
879 |
-
methodsToPatch.forEach(function (method) {
|
880 |
-
// cache original method
|
881 |
-
var original = arrayProto[method];
|
882 |
-
def(arrayMethods, method, function mutator() {
|
883 |
-
var args = [],
|
884 |
-
len = arguments.length;
|
885 |
-
|
886 |
-
while (len--) {
|
887 |
-
args[len] = arguments[len];
|
888 |
-
}
|
889 |
-
|
890 |
-
var result = original.apply(this, args);
|
891 |
-
var ob = this.__ob__;
|
892 |
-
var inserted;
|
893 |
-
|
894 |
-
switch (method) {
|
895 |
-
case 'push':
|
896 |
-
case 'unshift':
|
897 |
-
inserted = args;
|
898 |
-
break;
|
899 |
-
|
900 |
-
case 'splice':
|
901 |
-
inserted = args.slice(2);
|
902 |
-
break;
|
903 |
-
}
|
904 |
-
|
905 |
-
if (inserted) {
|
906 |
-
ob.observeArray(inserted);
|
907 |
-
} // notify change
|
908 |
-
|
909 |
-
|
910 |
-
ob.dep.notify();
|
911 |
-
return result;
|
912 |
-
});
|
913 |
-
});
|
914 |
-
/* */
|
915 |
-
|
916 |
-
var arrayKeys = Object.getOwnPropertyNames(arrayMethods);
|
917 |
-
/**
|
918 |
-
* In some cases we may want to disable observation inside a component's
|
919 |
-
* update computation.
|
920 |
-
*/
|
921 |
-
|
922 |
-
var shouldObserve = true;
|
923 |
-
|
924 |
-
function toggleObserving(value) {
|
925 |
-
shouldObserve = value;
|
926 |
-
}
|
927 |
-
/**
|
928 |
-
* Observer class that is attached to each observed
|
929 |
-
* object. Once attached, the observer converts the target
|
930 |
-
* object's property keys into getter/setters that
|
931 |
-
* collect dependencies and dispatch updates.
|
932 |
-
*/
|
933 |
-
|
934 |
-
|
935 |
-
var Observer = function Observer(value) {
|
936 |
-
this.value = value;
|
937 |
-
this.dep = new Dep();
|
938 |
-
this.vmCount = 0;
|
939 |
-
def(value, '__ob__', this);
|
940 |
-
|
941 |
-
if (Array.isArray(value)) {
|
942 |
-
if (hasProto) {
|
943 |
-
protoAugment(value, arrayMethods);
|
944 |
-
} else {
|
945 |
-
copyAugment(value, arrayMethods, arrayKeys);
|
946 |
-
}
|
947 |
-
|
948 |
-
this.observeArray(value);
|
949 |
-
} else {
|
950 |
-
this.walk(value);
|
951 |
-
}
|
952 |
-
};
|
953 |
-
/**
|
954 |
-
* Walk through all properties and convert them into
|
955 |
-
* getter/setters. This method should only be called when
|
956 |
-
* value type is Object.
|
957 |
-
*/
|
958 |
-
|
959 |
-
|
960 |
-
Observer.prototype.walk = function walk(obj) {
|
961 |
-
var keys = Object.keys(obj);
|
962 |
-
|
963 |
-
for (var i = 0; i < keys.length; i++) {
|
964 |
-
defineReactive$$1(obj, keys[i]);
|
965 |
-
}
|
966 |
-
};
|
967 |
-
/**
|
968 |
-
* Observe a list of Array items.
|
969 |
-
*/
|
970 |
-
|
971 |
-
|
972 |
-
Observer.prototype.observeArray = function observeArray(items) {
|
973 |
-
for (var i = 0, l = items.length; i < l; i++) {
|
974 |
-
observe(items[i]);
|
975 |
-
}
|
976 |
-
}; // helpers
|
977 |
-
|
978 |
-
/**
|
979 |
-
* Augment a target Object or Array by intercepting
|
980 |
-
* the prototype chain using __proto__
|
981 |
-
*/
|
982 |
-
|
983 |
-
|
984 |
-
function protoAugment(target, src) {
|
985 |
-
/* eslint-disable no-proto */
|
986 |
-
target.__proto__ = src;
|
987 |
-
/* eslint-enable no-proto */
|
988 |
-
}
|
989 |
-
/**
|
990 |
-
* Augment a target Object or Array by defining
|
991 |
-
* hidden properties.
|
992 |
-
*/
|
993 |
-
|
994 |
-
/* istanbul ignore next */
|
995 |
-
|
996 |
-
|
997 |
-
function copyAugment(target, src, keys) {
|
998 |
-
for (var i = 0, l = keys.length; i < l; i++) {
|
999 |
-
var key = keys[i];
|
1000 |
-
def(target, key, src[key]);
|
1001 |
-
}
|
1002 |
-
}
|
1003 |
-
/**
|
1004 |
-
* Attempt to create an observer instance for a value,
|
1005 |
-
* returns the new observer if successfully observed,
|
1006 |
-
* or the existing observer if the value already has one.
|
1007 |
-
*/
|
1008 |
-
|
1009 |
-
|
1010 |
-
function observe(value, asRootData) {
|
1011 |
-
if (!isObject(value) || value instanceof VNode) {
|
1012 |
-
return;
|
1013 |
-
}
|
1014 |
-
|
1015 |
-
var ob;
|
1016 |
-
|
1017 |
-
if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
|
1018 |
-
ob = value.__ob__;
|
1019 |
-
} else if (shouldObserve && !isServerRendering() && (Array.isArray(value) || isPlainObject(value)) && Object.isExtensible(value) && !value._isVue) {
|
1020 |
-
ob = new Observer(value);
|
1021 |
-
}
|
1022 |
-
|
1023 |
-
if (asRootData && ob) {
|
1024 |
-
ob.vmCount++;
|
1025 |
-
}
|
1026 |
-
|
1027 |
-
return ob;
|
1028 |
-
}
|
1029 |
-
/**
|
1030 |
-
* Define a reactive property on an Object.
|
1031 |
-
*/
|
1032 |
-
|
1033 |
-
|
1034 |
-
function defineReactive$$1(obj, key, val, customSetter, shallow) {
|
1035 |
-
var dep = new Dep();
|
1036 |
-
var property = Object.getOwnPropertyDescriptor(obj, key);
|
1037 |
-
|
1038 |
-
if (property && property.configurable === false) {
|
1039 |
-
return;
|
1040 |
-
} // cater for pre-defined getter/setters
|
1041 |
-
|
1042 |
-
|
1043 |
-
var getter = property && property.get;
|
1044 |
-
var setter = property && property.set;
|
1045 |
-
|
1046 |
-
if ((!getter || setter) && arguments.length === 2) {
|
1047 |
-
val = obj[key];
|
1048 |
-
}
|
1049 |
-
|
1050 |
-
var childOb = !shallow && observe(val);
|
1051 |
-
Object.defineProperty(obj, key, {
|
1052 |
-
enumerable: true,
|
1053 |
-
configurable: true,
|
1054 |
-
get: function reactiveGetter() {
|
1055 |
-
var value = getter ? getter.call(obj) : val;
|
1056 |
-
|
1057 |
-
if (Dep.target) {
|
1058 |
-
dep.depend();
|
1059 |
-
|
1060 |
-
if (childOb) {
|
1061 |
-
childOb.dep.depend();
|
1062 |
-
|
1063 |
-
if (Array.isArray(value)) {
|
1064 |
-
dependArray(value);
|
1065 |
-
}
|
1066 |
-
}
|
1067 |
-
}
|
1068 |
-
|
1069 |
-
return value;
|
1070 |
-
},
|
1071 |
-
set: function reactiveSetter(newVal) {
|
1072 |
-
var value = getter ? getter.call(obj) : val;
|
1073 |
-
/* eslint-disable no-self-compare */
|
1074 |
-
|
1075 |
-
if (newVal === value || newVal !== newVal && value !== value) {
|
1076 |
-
return;
|
1077 |
-
}
|
1078 |
-
/* eslint-enable no-self-compare */
|
1079 |
-
|
1080 |
-
|
1081 |
-
if (customSetter) {
|
1082 |
-
customSetter();
|
1083 |
-
} // #7981: for accessor properties without setter
|
1084 |
-
|
1085 |
-
|
1086 |
-
if (getter && !setter) {
|
1087 |
-
return;
|
1088 |
-
}
|
1089 |
-
|
1090 |
-
if (setter) {
|
1091 |
-
setter.call(obj, newVal);
|
1092 |
-
} else {
|
1093 |
-
val = newVal;
|
1094 |
-
}
|
1095 |
-
|
1096 |
-
childOb = !shallow && observe(newVal);
|
1097 |
-
dep.notify();
|
1098 |
-
}
|
1099 |
-
});
|
1100 |
-
}
|
1101 |
-
/**
|
1102 |
-
* Set a property on an object. Adds the new property and
|
1103 |
-
* triggers change notification if the property doesn't
|
1104 |
-
* already exist.
|
1105 |
-
*/
|
1106 |
-
|
1107 |
-
|
1108 |
-
function set(target, key, val) {
|
1109 |
-
if (isUndef(target) || isPrimitive(target)) {
|
1110 |
-
warn("Cannot set reactive property on undefined, null, or primitive value: " + target);
|
1111 |
-
}
|
1112 |
-
|
1113 |
-
if (Array.isArray(target) && isValidArrayIndex(key)) {
|
1114 |
-
target.length = Math.max(target.length, key);
|
1115 |
-
target.splice(key, 1, val);
|
1116 |
-
return val;
|
1117 |
-
}
|
1118 |
-
|
1119 |
-
if (key in target && !(key in Object.prototype)) {
|
1120 |
-
target[key] = val;
|
1121 |
-
return val;
|
1122 |
-
}
|
1123 |
-
|
1124 |
-
var ob = target.__ob__;
|
1125 |
-
|
1126 |
-
if (target._isVue || ob && ob.vmCount) {
|
1127 |
-
warn('Avoid adding reactive properties to a Vue instance or its root $data ' + 'at runtime - declare it upfront in the data option.');
|
1128 |
-
return val;
|
1129 |
-
}
|
1130 |
-
|
1131 |
-
if (!ob) {
|
1132 |
-
target[key] = val;
|
1133 |
-
return val;
|
1134 |
-
}
|
1135 |
-
|
1136 |
-
defineReactive$$1(ob.value, key, val);
|
1137 |
-
ob.dep.notify();
|
1138 |
-
return val;
|
1139 |
-
}
|
1140 |
-
/**
|
1141 |
-
* Delete a property and trigger change if necessary.
|
1142 |
-
*/
|
1143 |
-
|
1144 |
-
|
1145 |
-
function del(target, key) {
|
1146 |
-
if (isUndef(target) || isPrimitive(target)) {
|
1147 |
-
warn("Cannot delete reactive property on undefined, null, or primitive value: " + target);
|
1148 |
-
}
|
1149 |
-
|
1150 |
-
if (Array.isArray(target) && isValidArrayIndex(key)) {
|
1151 |
-
target.splice(key, 1);
|
1152 |
-
return;
|
1153 |
-
}
|
1154 |
-
|
1155 |
-
var ob = target.__ob__;
|
1156 |
-
|
1157 |
-
if (target._isVue || ob && ob.vmCount) {
|
1158 |
-
warn('Avoid deleting properties on a Vue instance or its root $data ' + '- just set it to null.');
|
1159 |
-
return;
|
1160 |
-
}
|
1161 |
-
|
1162 |
-
if (!hasOwn(target, key)) {
|
1163 |
-
return;
|
1164 |
-
}
|
1165 |
-
|
1166 |
-
delete target[key];
|
1167 |
-
|
1168 |
-
if (!ob) {
|
1169 |
-
return;
|
1170 |
-
}
|
1171 |
-
|
1172 |
-
ob.dep.notify();
|
1173 |
-
}
|
1174 |
-
/**
|
1175 |
-
* Collect dependencies on array elements when the array is touched, since
|
1176 |
-
* we cannot intercept array element access like property getters.
|
1177 |
-
*/
|
1178 |
-
|
1179 |
-
|
1180 |
-
function dependArray(value) {
|
1181 |
-
for (var e = void 0, i = 0, l = value.length; i < l; i++) {
|
1182 |
-
e = value[i];
|
1183 |
-
e && e.__ob__ && e.__ob__.dep.depend();
|
1184 |
-
|
1185 |
-
if (Array.isArray(e)) {
|
1186 |
-
dependArray(e);
|
1187 |
-
}
|
1188 |
-
}
|
1189 |
-
}
|
1190 |
-
/* */
|
1191 |
-
|
1192 |
-
/**
|
1193 |
-
* Option overwriting strategies are functions that handle
|
1194 |
-
* how to merge a parent option value and a child option
|
1195 |
-
* value into the final value.
|
1196 |
-
*/
|
1197 |
-
|
1198 |
-
|
1199 |
-
var strats = config.optionMergeStrategies;
|
1200 |
-
/**
|
1201 |
-
* Options with restrictions
|
1202 |
-
*/
|
1203 |
-
|
1204 |
-
{
|
1205 |
-
strats.el = strats.propsData = function (parent, child, vm, key) {
|
1206 |
-
if (!vm) {
|
1207 |
-
warn("option \"" + key + "\" can only be used during instance " + 'creation with the `new` keyword.');
|
1208 |
-
}
|
1209 |
-
|
1210 |
-
return defaultStrat(parent, child);
|
1211 |
-
};
|
1212 |
-
}
|
1213 |
-
/**
|
1214 |
-
* Helper that recursively merges two data objects together.
|
1215 |
-
*/
|
1216 |
-
|
1217 |
-
function mergeData(to, from) {
|
1218 |
-
if (!from) {
|
1219 |
-
return to;
|
1220 |
-
}
|
1221 |
-
|
1222 |
-
var key, toVal, fromVal;
|
1223 |
-
var keys = hasSymbol ? Reflect.ownKeys(from) : Object.keys(from);
|
1224 |
-
|
1225 |
-
for (var i = 0; i < keys.length; i++) {
|
1226 |
-
key = keys[i]; // in case the object is already observed...
|
1227 |
-
|
1228 |
-
if (key === '__ob__') {
|
1229 |
-
continue;
|
1230 |
-
}
|
1231 |
-
|
1232 |
-
toVal = to[key];
|
1233 |
-
fromVal = from[key];
|
1234 |
-
|
1235 |
-
if (!hasOwn(to, key)) {
|
1236 |
-
set(to, key, fromVal);
|
1237 |
-
} else if (toVal !== fromVal && isPlainObject(toVal) && isPlainObject(fromVal)) {
|
1238 |
-
mergeData(toVal, fromVal);
|
1239 |
-
}
|
1240 |
-
}
|
1241 |
-
|
1242 |
-
return to;
|
1243 |
-
}
|
1244 |
-
/**
|
1245 |
-
* Data
|
1246 |
-
*/
|
1247 |
-
|
1248 |
-
|
1249 |
-
function mergeDataOrFn(parentVal, childVal, vm) {
|
1250 |
-
if (!vm) {
|
1251 |
-
// in a Vue.extend merge, both should be functions
|
1252 |
-
if (!childVal) {
|
1253 |
-
return parentVal;
|
1254 |
-
}
|
1255 |
-
|
1256 |
-
if (!parentVal) {
|
1257 |
-
return childVal;
|
1258 |
-
} // when parentVal & childVal are both present,
|
1259 |
-
// we need to return a function that returns the
|
1260 |
-
// merged result of both functions... no need to
|
1261 |
-
// check if parentVal is a function here because
|
1262 |
-
// it has to be a function to pass previous merges.
|
1263 |
-
|
1264 |
-
|
1265 |
-
return function mergedDataFn() {
|
1266 |
-
return mergeData(typeof childVal === 'function' ? childVal.call(this, this) : childVal, typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal);
|
1267 |
-
};
|
1268 |
-
} else {
|
1269 |
-
return function mergedInstanceDataFn() {
|
1270 |
-
// instance merge
|
1271 |
-
var instanceData = typeof childVal === 'function' ? childVal.call(vm, vm) : childVal;
|
1272 |
-
var defaultData = typeof parentVal === 'function' ? parentVal.call(vm, vm) : parentVal;
|
1273 |
-
|
1274 |
-
if (instanceData) {
|
1275 |
-
return mergeData(instanceData, defaultData);
|
1276 |
-
} else {
|
1277 |
-
return defaultData;
|
1278 |
-
}
|
1279 |
-
};
|
1280 |
-
}
|
1281 |
-
}
|
1282 |
-
|
1283 |
-
strats.data = function (parentVal, childVal, vm) {
|
1284 |
-
if (!vm) {
|
1285 |
-
if (childVal && typeof childVal !== 'function') {
|
1286 |
-
warn('The "data" option should be a function ' + 'that returns a per-instance value in component ' + 'definitions.', vm);
|
1287 |
-
return parentVal;
|
1288 |
-
}
|
1289 |
-
|
1290 |
-
return mergeDataOrFn(parentVal, childVal);
|
1291 |
-
}
|
1292 |
-
|
1293 |
-
return mergeDataOrFn(parentVal, childVal, vm);
|
1294 |
-
};
|
1295 |
-
/**
|
1296 |
-
* Hooks and props are merged as arrays.
|
1297 |
-
*/
|
1298 |
-
|
1299 |
-
|
1300 |
-
function mergeHook(parentVal, childVal) {
|
1301 |
-
var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal;
|
1302 |
-
return res ? dedupeHooks(res) : res;
|
1303 |
-
}
|
1304 |
-
|
1305 |
-
function dedupeHooks(hooks) {
|
1306 |
-
var res = [];
|
1307 |
-
|
1308 |
-
for (var i = 0; i < hooks.length; i++) {
|
1309 |
-
if (res.indexOf(hooks[i]) === -1) {
|
1310 |
-
res.push(hooks[i]);
|
1311 |
-
}
|
1312 |
-
}
|
1313 |
-
|
1314 |
-
return res;
|
1315 |
-
}
|
1316 |
-
|
1317 |
-
LIFECYCLE_HOOKS.forEach(function (hook) {
|
1318 |
-
strats[hook] = mergeHook;
|
1319 |
-
});
|
1320 |
-
/**
|
1321 |
-
* Assets
|
1322 |
-
*
|
1323 |
-
* When a vm is present (instance creation), we need to do
|
1324 |
-
* a three-way merge between constructor options, instance
|
1325 |
-
* options and parent options.
|
1326 |
-
*/
|
1327 |
-
|
1328 |
-
function mergeAssets(parentVal, childVal, vm, key) {
|
1329 |
-
var res = Object.create(parentVal || null);
|
1330 |
-
|
1331 |
-
if (childVal) {
|
1332 |
-
assertObjectType(key, childVal, vm);
|
1333 |
-
return extend(res, childVal);
|
1334 |
-
} else {
|
1335 |
-
return res;
|
1336 |
-
}
|
1337 |
-
}
|
1338 |
-
|
1339 |
-
ASSET_TYPES.forEach(function (type) {
|
1340 |
-
strats[type + 's'] = mergeAssets;
|
1341 |
-
});
|
1342 |
-
/**
|
1343 |
-
* Watchers.
|
1344 |
-
*
|
1345 |
-
* Watchers hashes should not overwrite one
|
1346 |
-
* another, so we merge them as arrays.
|
1347 |
-
*/
|
1348 |
-
|
1349 |
-
strats.watch = function (parentVal, childVal, vm, key) {
|
1350 |
-
// work around Firefox's Object.prototype.watch...
|
1351 |
-
if (parentVal === nativeWatch) {
|
1352 |
-
parentVal = undefined;
|
1353 |
-
}
|
1354 |
-
|
1355 |
-
if (childVal === nativeWatch) {
|
1356 |
-
childVal = undefined;
|
1357 |
-
}
|
1358 |
-
/* istanbul ignore if */
|
1359 |
-
|
1360 |
-
|
1361 |
-
if (!childVal) {
|
1362 |
-
return Object.create(parentVal || null);
|
1363 |
-
}
|
1364 |
-
|
1365 |
-
{
|
1366 |
-
assertObjectType(key, childVal, vm);
|
1367 |
-
}
|
1368 |
-
|
1369 |
-
if (!parentVal) {
|
1370 |
-
return childVal;
|
1371 |
-
}
|
1372 |
-
|
1373 |
-
var ret = {};
|
1374 |
-
extend(ret, parentVal);
|
1375 |
-
|
1376 |
-
for (var key$1 in childVal) {
|
1377 |
-
var parent = ret[key$1];
|
1378 |
-
var child = childVal[key$1];
|
1379 |
-
|
1380 |
-
if (parent && !Array.isArray(parent)) {
|
1381 |
-
parent = [parent];
|
1382 |
-
}
|
1383 |
-
|
1384 |
-
ret[key$1] = parent ? parent.concat(child) : Array.isArray(child) ? child : [child];
|
1385 |
-
}
|
1386 |
-
|
1387 |
-
return ret;
|
1388 |
-
};
|
1389 |
-
/**
|
1390 |
-
* Other object hashes.
|
1391 |
-
*/
|
1392 |
-
|
1393 |
-
|
1394 |
-
strats.props = strats.methods = strats.inject = strats.computed = function (parentVal, childVal, vm, key) {
|
1395 |
-
if (childVal && "development" !== 'production') {
|
1396 |
-
assertObjectType(key, childVal, vm);
|
1397 |
-
}
|
1398 |
-
|
1399 |
-
if (!parentVal) {
|
1400 |
-
return childVal;
|
1401 |
-
}
|
1402 |
-
|
1403 |
-
var ret = Object.create(null);
|
1404 |
-
extend(ret, parentVal);
|
1405 |
-
|
1406 |
-
if (childVal) {
|
1407 |
-
extend(ret, childVal);
|
1408 |
-
}
|
1409 |
-
|
1410 |
-
return ret;
|
1411 |
-
};
|
1412 |
-
|
1413 |
-
strats.provide = mergeDataOrFn;
|
1414 |
-
/**
|
1415 |
-
* Default strategy.
|
1416 |
-
*/
|
1417 |
-
|
1418 |
-
var defaultStrat = function defaultStrat(parentVal, childVal) {
|
1419 |
-
return childVal === undefined ? parentVal : childVal;
|
1420 |
-
};
|
1421 |
-
/**
|
1422 |
-
* Validate component names
|
1423 |
-
*/
|
1424 |
-
|
1425 |
-
|
1426 |
-
function checkComponents(options) {
|
1427 |
-
for (var key in options.components) {
|
1428 |
-
validateComponentName(key);
|
1429 |
-
}
|
1430 |
-
}
|
1431 |
-
|
1432 |
-
function validateComponentName(name) {
|
1433 |
-
if (!new RegExp("^[a-zA-Z][\\-\\.0-9_" + unicodeRegExp.source + "]*$").test(name)) {
|
1434 |
-
warn('Invalid component name: "' + name + '". Component names ' + 'should conform to valid custom element name in html5 specification.');
|
1435 |
-
}
|
1436 |
-
|
1437 |
-
if (isBuiltInTag(name) || config.isReservedTag(name)) {
|
1438 |
-
warn('Do not use built-in or reserved HTML elements as component ' + 'id: ' + name);
|
1439 |
-
}
|
1440 |
-
}
|
1441 |
-
/**
|
1442 |
-
* Ensure all props option syntax are normalized into the
|
1443 |
-
* Object-based format.
|
1444 |
-
*/
|
1445 |
-
|
1446 |
-
|
1447 |
-
function normalizeProps(options, vm) {
|
1448 |
-
var props = options.props;
|
1449 |
-
|
1450 |
-
if (!props) {
|
1451 |
-
return;
|
1452 |
-
}
|
1453 |
-
|
1454 |
-
var res = {};
|
1455 |
-
var i, val, name;
|
1456 |
-
|
1457 |
-
if (Array.isArray(props)) {
|
1458 |
-
i = props.length;
|
1459 |
-
|
1460 |
-
while (i--) {
|
1461 |
-
val = props[i];
|
1462 |
-
|
1463 |
-
if (typeof val === 'string') {
|
1464 |
-
name = camelize(val);
|
1465 |
-
res[name] = {
|
1466 |
-
type: null
|
1467 |
-
};
|
1468 |
-
} else {
|
1469 |
-
warn('props must be strings when using array syntax.');
|
1470 |
-
}
|
1471 |
-
}
|
1472 |
-
} else if (isPlainObject(props)) {
|
1473 |
-
for (var key in props) {
|
1474 |
-
val = props[key];
|
1475 |
-
name = camelize(key);
|
1476 |
-
res[name] = isPlainObject(val) ? val : {
|
1477 |
-
type: val
|
1478 |
-
};
|
1479 |
-
}
|
1480 |
-
} else {
|
1481 |
-
warn("Invalid value for option \"props\": expected an Array or an Object, " + "but got " + toRawType(props) + ".", vm);
|
1482 |
-
}
|
1483 |
-
|
1484 |
-
options.props = res;
|
1485 |
-
}
|
1486 |
-
/**
|
1487 |
-
* Normalize all injections into Object-based format
|
1488 |
-
*/
|
1489 |
-
|
1490 |
-
|
1491 |
-
function normalizeInject(options, vm) {
|
1492 |
-
var inject = options.inject;
|
1493 |
-
|
1494 |
-
if (!inject) {
|
1495 |
-
return;
|
1496 |
-
}
|
1497 |
-
|
1498 |
-
var normalized = options.inject = {};
|
1499 |
-
|
1500 |
-
if (Array.isArray(inject)) {
|
1501 |
-
for (var i = 0; i < inject.length; i++) {
|
1502 |
-
normalized[inject[i]] = {
|
1503 |
-
from: inject[i]
|
1504 |
-
};
|
1505 |
-
}
|
1506 |
-
} else if (isPlainObject(inject)) {
|
1507 |
-
for (var key in inject) {
|
1508 |
-
var val = inject[key];
|
1509 |
-
normalized[key] = isPlainObject(val) ? extend({
|
1510 |
-
from: key
|
1511 |
-
}, val) : {
|
1512 |
-
from: val
|
1513 |
-
};
|
1514 |
-
}
|
1515 |
-
} else {
|
1516 |
-
warn("Invalid value for option \"inject\": expected an Array or an Object, " + "but got " + toRawType(inject) + ".", vm);
|
1517 |
-
}
|
1518 |
-
}
|
1519 |
-
/**
|
1520 |
-
* Normalize raw function directives into object format.
|
1521 |
-
*/
|
1522 |
-
|
1523 |
-
|
1524 |
-
function normalizeDirectives(options) {
|
1525 |
-
var dirs = options.directives;
|
1526 |
-
|
1527 |
-
if (dirs) {
|
1528 |
-
for (var key in dirs) {
|
1529 |
-
var def$$1 = dirs[key];
|
1530 |
-
|
1531 |
-
if (typeof def$$1 === 'function') {
|
1532 |
-
dirs[key] = {
|
1533 |
-
bind: def$$1,
|
1534 |
-
update: def$$1
|
1535 |
-
};
|
1536 |
-
}
|
1537 |
-
}
|
1538 |
-
}
|
1539 |
-
}
|
1540 |
-
|
1541 |
-
function assertObjectType(name, value, vm) {
|
1542 |
-
if (!isPlainObject(value)) {
|
1543 |
-
warn("Invalid value for option \"" + name + "\": expected an Object, " + "but got " + toRawType(value) + ".", vm);
|
1544 |
-
}
|
1545 |
-
}
|
1546 |
-
/**
|
1547 |
-
* Merge two option objects into a new one.
|
1548 |
-
* Core utility used in both instantiation and inheritance.
|
1549 |
-
*/
|
1550 |
-
|
1551 |
-
|
1552 |
-
function mergeOptions(parent, child, vm) {
|
1553 |
-
{
|
1554 |
-
checkComponents(child);
|
1555 |
-
}
|
1556 |
-
|
1557 |
-
if (typeof child === 'function') {
|
1558 |
-
child = child.options;
|
1559 |
-
}
|
1560 |
-
|
1561 |
-
normalizeProps(child, vm);
|
1562 |
-
normalizeInject(child, vm);
|
1563 |
-
normalizeDirectives(child); // Apply extends and mixins on the child options,
|
1564 |
-
// but only if it is a raw options object that isn't
|
1565 |
-
// the result of another mergeOptions call.
|
1566 |
-
// Only merged options has the _base property.
|
1567 |
-
|
1568 |
-
if (!child._base) {
|
1569 |
-
if (child["extends"]) {
|
1570 |
-
parent = mergeOptions(parent, child["extends"], vm);
|
1571 |
-
}
|
1572 |
-
|
1573 |
-
if (child.mixins) {
|
1574 |
-
for (var i = 0, l = child.mixins.length; i < l; i++) {
|
1575 |
-
parent = mergeOptions(parent, child.mixins[i], vm);
|
1576 |
-
}
|
1577 |
-
}
|
1578 |
-
}
|
1579 |
-
|
1580 |
-
var options = {};
|
1581 |
-
var key;
|
1582 |
-
|
1583 |
-
for (key in parent) {
|
1584 |
-
mergeField(key);
|
1585 |
-
}
|
1586 |
-
|
1587 |
-
for (key in child) {
|
1588 |
-
if (!hasOwn(parent, key)) {
|
1589 |
-
mergeField(key);
|
1590 |
-
}
|
1591 |
-
}
|
1592 |
-
|
1593 |
-
function mergeField(key) {
|
1594 |
-
var strat = strats[key] || defaultStrat;
|
1595 |
-
options[key] = strat(parent[key], child[key], vm, key);
|
1596 |
-
}
|
1597 |
-
|
1598 |
-
return options;
|
1599 |
-
}
|
1600 |
-
/**
|
1601 |
-
* Resolve an asset.
|
1602 |
-
* This function is used because child instances need access
|
1603 |
-
* to assets defined in its ancestor chain.
|
1604 |
-
*/
|
1605 |
-
|
1606 |
-
|
1607 |
-
function resolveAsset(options, type, id, warnMissing) {
|
1608 |
-
/* istanbul ignore if */
|
1609 |
-
if (typeof id !== 'string') {
|
1610 |
-
return;
|
1611 |
-
}
|
1612 |
-
|
1613 |
-
var assets = options[type]; // check local registration variations first
|
1614 |
-
|
1615 |
-
if (hasOwn(assets, id)) {
|
1616 |
-
return assets[id];
|
1617 |
-
}
|
1618 |
-
|
1619 |
-
var camelizedId = camelize(id);
|
1620 |
-
|
1621 |
-
if (hasOwn(assets, camelizedId)) {
|
1622 |
-
return assets[camelizedId];
|
1623 |
-
}
|
1624 |
-
|
1625 |
-
var PascalCaseId = capitalize(camelizedId);
|
1626 |
-
|
1627 |
-
if (hasOwn(assets, PascalCaseId)) {
|
1628 |
-
return assets[PascalCaseId];
|
1629 |
-
} // fallback to prototype chain
|
1630 |
-
|
1631 |
-
|
1632 |
-
var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];
|
1633 |
-
|
1634 |
-
if (warnMissing && !res) {
|
1635 |
-
warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id, options);
|
1636 |
-
}
|
1637 |
-
|
1638 |
-
return res;
|
1639 |
-
}
|
1640 |
-
/* */
|
1641 |
-
|
1642 |
-
|
1643 |
-
function validateProp(key, propOptions, propsData, vm) {
|
1644 |
-
var prop = propOptions[key];
|
1645 |
-
var absent = !hasOwn(propsData, key);
|
1646 |
-
var value = propsData[key]; // boolean casting
|
1647 |
-
|
1648 |
-
var booleanIndex = getTypeIndex(Boolean, prop.type);
|
1649 |
-
|
1650 |
-
if (booleanIndex > -1) {
|
1651 |
-
if (absent && !hasOwn(prop, 'default')) {
|
1652 |
-
value = false;
|
1653 |
-
} else if (value === '' || value === hyphenate(key)) {
|
1654 |
-
// only cast empty string / same name to boolean if
|
1655 |
-
// boolean has higher priority
|
1656 |
-
var stringIndex = getTypeIndex(String, prop.type);
|
1657 |
-
|
1658 |
-
if (stringIndex < 0 || booleanIndex < stringIndex) {
|
1659 |
-
value = true;
|
1660 |
-
}
|
1661 |
-
}
|
1662 |
-
} // check default value
|
1663 |
-
|
1664 |
-
|
1665 |
-
if (value === undefined) {
|
1666 |
-
value = getPropDefaultValue(vm, prop, key); // since the default value is a fresh copy,
|
1667 |
-
// make sure to observe it.
|
1668 |
-
|
1669 |
-
var prevShouldObserve = shouldObserve;
|
1670 |
-
toggleObserving(true);
|
1671 |
-
observe(value);
|
1672 |
-
toggleObserving(prevShouldObserve);
|
1673 |
-
}
|
1674 |
-
|
1675 |
-
{
|
1676 |
-
assertProp(prop, key, value, vm, absent);
|
1677 |
-
}
|
1678 |
-
return value;
|
1679 |
-
}
|
1680 |
-
/**
|
1681 |
-
* Get the default value of a prop.
|
1682 |
-
*/
|
1683 |
-
|
1684 |
-
|
1685 |
-
function getPropDefaultValue(vm, prop, key) {
|
1686 |
-
// no default, return undefined
|
1687 |
-
if (!hasOwn(prop, 'default')) {
|
1688 |
-
return undefined;
|
1689 |
-
}
|
1690 |
-
|
1691 |
-
var def = prop["default"]; // warn against non-factory defaults for Object & Array
|
1692 |
-
|
1693 |
-
if (isObject(def)) {
|
1694 |
-
warn('Invalid default value for prop "' + key + '": ' + 'Props with type Object/Array must use a factory function ' + 'to return the default value.', vm);
|
1695 |
-
} // the raw prop value was also undefined from previous render,
|
1696 |
-
// return previous default value to avoid unnecessary watcher trigger
|
1697 |
-
|
1698 |
-
|
1699 |
-
if (vm && vm.$options.propsData && vm.$options.propsData[key] === undefined && vm._props[key] !== undefined) {
|
1700 |
-
return vm._props[key];
|
1701 |
-
} // call factory function for non-Function types
|
1702 |
-
// a value is Function if its prototype is function even across different execution context
|
1703 |
-
|
1704 |
-
|
1705 |
-
return typeof def === 'function' && getType(prop.type) !== 'Function' ? def.call(vm) : def;
|
1706 |
-
}
|
1707 |
-
/**
|
1708 |
-
* Assert whether a prop is valid.
|
1709 |
-
*/
|
1710 |
-
|
1711 |
-
|
1712 |
-
function assertProp(prop, name, value, vm, absent) {
|
1713 |
-
if (prop.required && absent) {
|
1714 |
-
warn('Missing required prop: "' + name + '"', vm);
|
1715 |
-
return;
|
1716 |
-
}
|
1717 |
-
|
1718 |
-
if (value == null && !prop.required) {
|
1719 |
-
return;
|
1720 |
-
}
|
1721 |
-
|
1722 |
-
var type = prop.type;
|
1723 |
-
var valid = !type || type === true;
|
1724 |
-
var expectedTypes = [];
|
1725 |
-
|
1726 |
-
if (type) {
|
1727 |
-
if (!Array.isArray(type)) {
|
1728 |
-
type = [type];
|
1729 |
-
}
|
1730 |
-
|
1731 |
-
for (var i = 0; i < type.length && !valid; i++) {
|
1732 |
-
var assertedType = assertType(value, type[i]);
|
1733 |
-
expectedTypes.push(assertedType.expectedType || '');
|
1734 |
-
valid = assertedType.valid;
|
1735 |
-
}
|
1736 |
-
}
|
1737 |
-
|
1738 |
-
if (!valid) {
|
1739 |
-
warn(getInvalidTypeMessage(name, value, expectedTypes), vm);
|
1740 |
-
return;
|
1741 |
-
}
|
1742 |
-
|
1743 |
-
var validator = prop.validator;
|
1744 |
-
|
1745 |
-
if (validator) {
|
1746 |
-
if (!validator(value)) {
|
1747 |
-
warn('Invalid prop: custom validator check failed for prop "' + name + '".', vm);
|
1748 |
-
}
|
1749 |
-
}
|
1750 |
-
}
|
1751 |
-
|
1752 |
-
var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
|
1753 |
-
|
1754 |
-
function assertType(value, type) {
|
1755 |
-
var valid;
|
1756 |
-
var expectedType = getType(type);
|
1757 |
-
|
1758 |
-
if (simpleCheckRE.test(expectedType)) {
|
1759 |
-
var t = _typeof(value);
|
1760 |
-
|
1761 |
-
valid = t === expectedType.toLowerCase(); // for primitive wrapper objects
|
1762 |
-
|
1763 |
-
if (!valid && t === 'object') {
|
1764 |
-
valid = value instanceof type;
|
1765 |
-
}
|
1766 |
-
} else if (expectedType === 'Object') {
|
1767 |
-
valid = isPlainObject(value);
|
1768 |
-
} else if (expectedType === 'Array') {
|
1769 |
-
valid = Array.isArray(value);
|
1770 |
-
} else {
|
1771 |
-
valid = value instanceof type;
|
1772 |
-
}
|
1773 |
-
|
1774 |
-
return {
|
1775 |
-
valid: valid,
|
1776 |
-
expectedType: expectedType
|
1777 |
-
};
|
1778 |
-
}
|
1779 |
-
/**
|
1780 |
-
* Use function string name to check built-in types,
|
1781 |
-
* because a simple equality check will fail when running
|
1782 |
-
* across different vms / iframes.
|
1783 |
-
*/
|
1784 |
-
|
1785 |
-
|
1786 |
-
function getType(fn) {
|
1787 |
-
var match = fn && fn.toString().match(/^\s*function (\w+)/);
|
1788 |
-
return match ? match[1] : '';
|
1789 |
-
}
|
1790 |
-
|
1791 |
-
function isSameType(a, b) {
|
1792 |
-
return getType(a) === getType(b);
|
1793 |
-
}
|
1794 |
-
|
1795 |
-
function getTypeIndex(type, expectedTypes) {
|
1796 |
-
if (!Array.isArray(expectedTypes)) {
|
1797 |
-
return isSameType(expectedTypes, type) ? 0 : -1;
|
1798 |
-
}
|
1799 |
-
|
1800 |
-
for (var i = 0, len = expectedTypes.length; i < len; i++) {
|
1801 |
-
if (isSameType(expectedTypes[i], type)) {
|
1802 |
-
return i;
|
1803 |
-
}
|
1804 |
-
}
|
1805 |
-
|
1806 |
-
return -1;
|
1807 |
-
}
|
1808 |
-
|
1809 |
-
function getInvalidTypeMessage(name, value, expectedTypes) {
|
1810 |
-
var message = "Invalid prop: type check failed for prop \"" + name + "\"." + " Expected " + expectedTypes.map(capitalize).join(', ');
|
1811 |
-
var expectedType = expectedTypes[0];
|
1812 |
-
var receivedType = toRawType(value);
|
1813 |
-
var expectedValue = styleValue(value, expectedType);
|
1814 |
-
var receivedValue = styleValue(value, receivedType); // check if we need to specify expected value
|
1815 |
-
|
1816 |
-
if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {
|
1817 |
-
message += " with value " + expectedValue;
|
1818 |
-
}
|
1819 |
-
|
1820 |
-
message += ", got " + receivedType + " "; // check if we need to specify received value
|
1821 |
-
|
1822 |
-
if (isExplicable(receivedType)) {
|
1823 |
-
message += "with value " + receivedValue + ".";
|
1824 |
-
}
|
1825 |
-
|
1826 |
-
return message;
|
1827 |
-
}
|
1828 |
-
|
1829 |
-
function styleValue(value, type) {
|
1830 |
-
if (type === 'String') {
|
1831 |
-
return "\"" + value + "\"";
|
1832 |
-
} else if (type === 'Number') {
|
1833 |
-
return "" + Number(value);
|
1834 |
-
} else {
|
1835 |
-
return "" + value;
|
1836 |
-
}
|
1837 |
-
}
|
1838 |
-
|
1839 |
-
function isExplicable(value) {
|
1840 |
-
var explicitTypes = ['string', 'number', 'boolean'];
|
1841 |
-
return explicitTypes.some(function (elem) {
|
1842 |
-
return value.toLowerCase() === elem;
|
1843 |
-
});
|
1844 |
-
}
|
1845 |
-
|
1846 |
-
function isBoolean() {
|
1847 |
-
var args = [],
|
1848 |
-
len = arguments.length;
|
1849 |
-
|
1850 |
-
while (len--) {
|
1851 |
-
args[len] = arguments[len];
|
1852 |
-
}
|
1853 |
-
|
1854 |
-
return args.some(function (elem) {
|
1855 |
-
return elem.toLowerCase() === 'boolean';
|
1856 |
-
});
|
1857 |
-
}
|
1858 |
-
/* */
|
1859 |
-
|
1860 |
-
|
1861 |
-
function handleError(err, vm, info) {
|
1862 |
-
// Deactivate deps tracking while processing error handler to avoid possible infinite rendering.
|
1863 |
-
// See: https://github.com/vuejs/vuex/issues/1505
|
1864 |
-
pushTarget();
|
1865 |
-
|
1866 |
-
try {
|
1867 |
-
if (vm) {
|
1868 |
-
var cur = vm;
|
1869 |
-
|
1870 |
-
while (cur = cur.$parent) {
|
1871 |
-
var hooks = cur.$options.errorCaptured;
|
1872 |
-
|
1873 |
-
if (hooks) {
|
1874 |
-
for (var i = 0; i < hooks.length; i++) {
|
1875 |
-
try {
|
1876 |
-
var capture = hooks[i].call(cur, err, vm, info) === false;
|
1877 |
-
|
1878 |
-
if (capture) {
|
1879 |
-
return;
|
1880 |
-
}
|
1881 |
-
} catch (e) {
|
1882 |
-
globalHandleError(e, cur, 'errorCaptured hook');
|
1883 |
-
}
|
1884 |
-
}
|
1885 |
-
}
|
1886 |
-
}
|
1887 |
-
}
|
1888 |
-
|
1889 |
-
globalHandleError(err, vm, info);
|
1890 |
-
} finally {
|
1891 |
-
popTarget();
|
1892 |
-
}
|
1893 |
-
}
|
1894 |
-
|
1895 |
-
function invokeWithErrorHandling(handler, context, args, vm, info) {
|
1896 |
-
var res;
|
1897 |
-
|
1898 |
-
try {
|
1899 |
-
res = args ? handler.apply(context, args) : handler.call(context);
|
1900 |
-
|
1901 |
-
if (res && !res._isVue && isPromise(res) && !res._handled) {
|
1902 |
-
res["catch"](function (e) {
|
1903 |
-
return handleError(e, vm, info + " (Promise/async)");
|
1904 |
-
}); // issue #9511
|
1905 |
-
// avoid catch triggering multiple times when nested calls
|
1906 |
-
|
1907 |
-
res._handled = true;
|
1908 |
-
}
|
1909 |
-
} catch (e) {
|
1910 |
-
handleError(e, vm, info);
|
1911 |
-
}
|
1912 |
-
|
1913 |
-
return res;
|
1914 |
-
}
|
1915 |
-
|
1916 |
-
function globalHandleError(err, vm, info) {
|
1917 |
-
if (config.errorHandler) {
|
1918 |
-
try {
|
1919 |
-
return config.errorHandler.call(null, err, vm, info);
|
1920 |
-
} catch (e) {
|
1921 |
-
// if the user intentionally throws the original error in the handler,
|
1922 |
-
// do not log it twice
|
1923 |
-
if (e !== err) {
|
1924 |
-
logError(e, null, 'config.errorHandler');
|
1925 |
-
}
|
1926 |
-
}
|
1927 |
-
}
|
1928 |
-
|
1929 |
-
logError(err, vm, info);
|
1930 |
-
}
|
1931 |
-
|
1932 |
-
function logError(err, vm, info) {
|
1933 |
-
{
|
1934 |
-
warn("Error in " + info + ": \"" + err.toString() + "\"", vm);
|
1935 |
-
}
|
1936 |
-
/* istanbul ignore else */
|
1937 |
-
|
1938 |
-
if ((inBrowser || inWeex) && typeof console !== 'undefined') {
|
1939 |
-
console.error(err);
|
1940 |
-
} else {
|
1941 |
-
throw err;
|
1942 |
-
}
|
1943 |
-
}
|
1944 |
-
/* */
|
1945 |
-
|
1946 |
-
|
1947 |
-
var isUsingMicroTask = false;
|
1948 |
-
var callbacks = [];
|
1949 |
-
var pending = false;
|
1950 |
-
|
1951 |
-
function flushCallbacks() {
|
1952 |
-
pending = false;
|
1953 |
-
var copies = callbacks.slice(0);
|
1954 |
-
callbacks.length = 0;
|
1955 |
-
|
1956 |
-
for (var i = 0; i < copies.length; i++) {
|
1957 |
-
copies[i]();
|
1958 |
-
}
|
1959 |
-
} // Here we have async deferring wrappers using microtasks.
|
1960 |
-
// In 2.5 we used (macro) tasks (in combination with microtasks).
|
1961 |
-
// However, it has subtle problems when state is changed right before repaint
|
1962 |
-
// (e.g. #6813, out-in transitions).
|
1963 |
-
// Also, using (macro) tasks in event handler would cause some weird behaviors
|
1964 |
-
// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).
|
1965 |
-
// So we now use microtasks everywhere, again.
|
1966 |
-
// A major drawback of this tradeoff is that there are some scenarios
|
1967 |
-
// where microtasks have too high a priority and fire in between supposedly
|
1968 |
-
// sequential events (e.g. #4521, #6690, which have workarounds)
|
1969 |
-
// or even between bubbling of the same event (#6566).
|
1970 |
-
|
1971 |
-
|
1972 |
-
var timerFunc; // The nextTick behavior leverages the microtask queue, which can be accessed
|
1973 |
-
// via either native Promise.then or MutationObserver.
|
1974 |
-
// MutationObserver has wider support, however it is seriously bugged in
|
1975 |
-
// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It
|
1976 |
-
// completely stops working after triggering a few times... so, if native
|
1977 |
-
// Promise is available, we will use it:
|
1978 |
-
|
1979 |
-
/* istanbul ignore next, $flow-disable-line */
|
1980 |
-
|
1981 |
-
if (typeof Promise !== 'undefined' && isNative(Promise)) {
|
1982 |
-
var p = Promise.resolve();
|
1983 |
-
|
1984 |
-
timerFunc = function timerFunc() {
|
1985 |
-
p.then(flushCallbacks); // In problematic UIWebViews, Promise.then doesn't completely break, but
|
1986 |
-
// it can get stuck in a weird state where callbacks are pushed into the
|
1987 |
-
// microtask queue but the queue isn't being flushed, until the browser
|
1988 |
-
// needs to do some other work, e.g. handle a timer. Therefore we can
|
1989 |
-
// "force" the microtask queue to be flushed by adding an empty timer.
|
1990 |
-
|
1991 |
-
if (isIOS) {
|
1992 |
-
setTimeout(noop);
|
1993 |
-
}
|
1994 |
-
};
|
1995 |
-
|
1996 |
-
isUsingMicroTask = true;
|
1997 |
-
} else if (!isIE && typeof MutationObserver !== 'undefined' && (isNative(MutationObserver) || // PhantomJS and iOS 7.x
|
1998 |
-
MutationObserver.toString() === '[object MutationObserverConstructor]')) {
|
1999 |
-
// Use MutationObserver where native Promise is not available,
|
2000 |
-
// e.g. PhantomJS, iOS7, Android 4.4
|
2001 |
-
// (#6466 MutationObserver is unreliable in IE11)
|
2002 |
-
var counter = 1;
|
2003 |
-
var observer = new MutationObserver(flushCallbacks);
|
2004 |
-
var textNode = document.createTextNode(String(counter));
|
2005 |
-
observer.observe(textNode, {
|
2006 |
-
characterData: true
|
2007 |
-
});
|
2008 |
-
|
2009 |
-
timerFunc = function timerFunc() {
|
2010 |
-
counter = (counter + 1) % 2;
|
2011 |
-
textNode.data = String(counter);
|
2012 |
-
};
|
2013 |
-
|
2014 |
-
isUsingMicroTask = true;
|
2015 |
-
} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {
|
2016 |
-
// Fallback to setImmediate.
|
2017 |
-
// Technically it leverages the (macro) task queue,
|
2018 |
-
// but it is still a better choice than setTimeout.
|
2019 |
-
timerFunc = function timerFunc() {
|
2020 |
-
setImmediate(flushCallbacks);
|
2021 |
-
};
|
2022 |
-
} else {
|
2023 |
-
// Fallback to setTimeout.
|
2024 |
-
timerFunc = function timerFunc() {
|
2025 |
-
setTimeout(flushCallbacks, 0);
|
2026 |
-
};
|
2027 |
-
}
|
2028 |
-
|
2029 |
-
function nextTick(cb, ctx) {
|
2030 |
-
var _resolve;
|
2031 |
-
|
2032 |
-
callbacks.push(function () {
|
2033 |
-
if (cb) {
|
2034 |
-
try {
|
2035 |
-
cb.call(ctx);
|
2036 |
-
} catch (e) {
|
2037 |
-
handleError(e, ctx, 'nextTick');
|
2038 |
-
}
|
2039 |
-
} else if (_resolve) {
|
2040 |
-
_resolve(ctx);
|
2041 |
-
}
|
2042 |
-
});
|
2043 |
-
|
2044 |
-
if (!pending) {
|
2045 |
-
pending = true;
|
2046 |
-
timerFunc();
|
2047 |
-
} // $flow-disable-line
|
2048 |
-
|
2049 |
-
|
2050 |
-
if (!cb && typeof Promise !== 'undefined') {
|
2051 |
-
return new Promise(function (resolve) {
|
2052 |
-
_resolve = resolve;
|
2053 |
-
});
|
2054 |
-
}
|
2055 |
-
}
|
2056 |
-
/* */
|
2057 |
-
|
2058 |
-
|
2059 |
-
var mark;
|
2060 |
-
var measure;
|
2061 |
-
{
|
2062 |
-
var perf = inBrowser && window.performance;
|
2063 |
-
/* istanbul ignore if */
|
2064 |
-
|
2065 |
-
if (perf && perf.mark && perf.measure && perf.clearMarks && perf.clearMeasures) {
|
2066 |
-
mark = function mark(tag) {
|
2067 |
-
return perf.mark(tag);
|
2068 |
-
};
|
2069 |
-
|
2070 |
-
measure = function measure(name, startTag, endTag) {
|
2071 |
-
perf.measure(name, startTag, endTag);
|
2072 |
-
perf.clearMarks(startTag);
|
2073 |
-
perf.clearMarks(endTag); // perf.clearMeasures(name)
|
2074 |
-
};
|
2075 |
-
}
|
2076 |
-
}
|
2077 |
-
/* not type checking this file because flow doesn't play well with Proxy */
|
2078 |
-
|
2079 |
-
var initProxy;
|
2080 |
-
{
|
2081 |
-
var allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' + 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' + 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' + 'require' // for Webpack/Browserify
|
2082 |
-
);
|
2083 |
-
|
2084 |
-
var warnNonPresent = function warnNonPresent(target, key) {
|
2085 |
-
warn("Property or method \"" + key + "\" is not defined on the instance but " + 'referenced during render. Make sure that this property is reactive, ' + 'either in the data option, or for class-based components, by ' + 'initializing the property. ' + 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);
|
2086 |
-
};
|
2087 |
-
|
2088 |
-
var warnReservedPrefix = function warnReservedPrefix(target, key) {
|
2089 |
-
warn("Property \"" + key + "\" must be accessed with \"$data." + key + "\" because " + 'properties starting with "$" or "_" are not proxied in the Vue instance to ' + 'prevent conflicts with Vue internals. ' + 'See: https://vuejs.org/v2/api/#data', target);
|
2090 |
-
};
|
2091 |
-
|
2092 |
-
var hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy);
|
2093 |
-
|
2094 |
-
if (hasProxy) {
|
2095 |
-
var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
|
2096 |
-
config.keyCodes = new Proxy(config.keyCodes, {
|
2097 |
-
set: function set(target, key, value) {
|
2098 |
-
if (isBuiltInModifier(key)) {
|
2099 |
-
warn("Avoid overwriting built-in modifier in config.keyCodes: ." + key);
|
2100 |
-
return false;
|
2101 |
-
} else {
|
2102 |
-
target[key] = value;
|
2103 |
-
return true;
|
2104 |
-
}
|
2105 |
-
}
|
2106 |
-
});
|
2107 |
-
}
|
2108 |
-
|
2109 |
-
var hasHandler = {
|
2110 |
-
has: function has(target, key) {
|
2111 |
-
var has = key in target;
|
2112 |
-
var isAllowed = allowedGlobals(key) || typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data);
|
2113 |
-
|
2114 |
-
if (!has && !isAllowed) {
|
2115 |
-
if (key in target.$data) {
|
2116 |
-
warnReservedPrefix(target, key);
|
2117 |
-
} else {
|
2118 |
-
warnNonPresent(target, key);
|
2119 |
-
}
|
2120 |
-
}
|
2121 |
-
|
2122 |
-
return has || !isAllowed;
|
2123 |
-
}
|
2124 |
-
};
|
2125 |
-
var getHandler = {
|
2126 |
-
get: function get(target, key) {
|
2127 |
-
if (typeof key === 'string' && !(key in target)) {
|
2128 |
-
if (key in target.$data) {
|
2129 |
-
warnReservedPrefix(target, key);
|
2130 |
-
} else {
|
2131 |
-
warnNonPresent(target, key);
|
2132 |
-
}
|
2133 |
-
}
|
2134 |
-
|
2135 |
-
return target[key];
|
2136 |
-
}
|
2137 |
-
};
|
2138 |
-
|
2139 |
-
initProxy = function initProxy(vm) {
|
2140 |
-
if (hasProxy) {
|
2141 |
-
// determine which proxy handler to use
|
2142 |
-
var options = vm.$options;
|
2143 |
-
var handlers = options.render && options.render._withStripped ? getHandler : hasHandler;
|
2144 |
-
vm._renderProxy = new Proxy(vm, handlers);
|
2145 |
-
} else {
|
2146 |
-
vm._renderProxy = vm;
|
2147 |
-
}
|
2148 |
-
};
|
2149 |
-
}
|
2150 |
-
/* */
|
2151 |
-
|
2152 |
-
var seenObjects = new _Set();
|
2153 |
-
/**
|
2154 |
-
* Recursively traverse an object to evoke all converted
|
2155 |
-
* getters, so that every nested property inside the object
|
2156 |
-
* is collected as a "deep" dependency.
|
2157 |
-
*/
|
2158 |
-
|
2159 |
-
function traverse(val) {
|
2160 |
-
_traverse(val, seenObjects);
|
2161 |
-
|
2162 |
-
seenObjects.clear();
|
2163 |
-
}
|
2164 |
-
|
2165 |
-
function _traverse(val, seen) {
|
2166 |
-
var i, keys;
|
2167 |
-
var isA = Array.isArray(val);
|
2168 |
-
|
2169 |
-
if (!isA && !isObject(val) || Object.isFrozen(val) || val instanceof VNode) {
|
2170 |
-
return;
|
2171 |
-
}
|
2172 |
-
|
2173 |
-
if (val.__ob__) {
|
2174 |
-
var depId = val.__ob__.dep.id;
|
2175 |
-
|
2176 |
-
if (seen.has(depId)) {
|
2177 |
-
return;
|
2178 |
-
}
|
2179 |
-
|
2180 |
-
seen.add(depId);
|
2181 |
-
}
|
2182 |
-
|
2183 |
-
if (isA) {
|
2184 |
-
i = val.length;
|
2185 |
-
|
2186 |
-
while (i--) {
|
2187 |
-
_traverse(val[i], seen);
|
2188 |
-
}
|
2189 |
-
} else {
|
2190 |
-
keys = Object.keys(val);
|
2191 |
-
i = keys.length;
|
2192 |
-
|
2193 |
-
while (i--) {
|
2194 |
-
_traverse(val[keys[i]], seen);
|
2195 |
-
}
|
2196 |
-
}
|
2197 |
-
}
|
2198 |
-
/* */
|
2199 |
-
|
2200 |
-
|
2201 |
-
var normalizeEvent = cached(function (name) {
|
2202 |
-
var passive = name.charAt(0) === '&';
|
2203 |
-
name = passive ? name.slice(1) : name;
|
2204 |
-
var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first
|
2205 |
-
|
2206 |
-
name = once$$1 ? name.slice(1) : name;
|
2207 |
-
var capture = name.charAt(0) === '!';
|
2208 |
-
name = capture ? name.slice(1) : name;
|
2209 |
-
return {
|
2210 |
-
name: name,
|
2211 |
-
once: once$$1,
|
2212 |
-
capture: capture,
|
2213 |
-
passive: passive
|
2214 |
-
};
|
2215 |
-
});
|
2216 |
-
|
2217 |
-
function createFnInvoker(fns, vm) {
|
2218 |
-
function invoker() {
|
2219 |
-
var arguments$1 = arguments;
|
2220 |
-
var fns = invoker.fns;
|
2221 |
-
|
2222 |
-
if (Array.isArray(fns)) {
|
2223 |
-
var cloned = fns.slice();
|
2224 |
-
|
2225 |
-
for (var i = 0; i < cloned.length; i++) {
|
2226 |
-
invokeWithErrorHandling(cloned[i], null, arguments$1, vm, "v-on handler");
|
2227 |
-
}
|
2228 |
-
} else {
|
2229 |
-
// return handler return value for single handlers
|
2230 |
-
return invokeWithErrorHandling(fns, null, arguments, vm, "v-on handler");
|
2231 |
-
}
|
2232 |
-
}
|
2233 |
-
|
2234 |
-
invoker.fns = fns;
|
2235 |
-
return invoker;
|
2236 |
-
}
|
2237 |
-
|
2238 |
-
function updateListeners(on, oldOn, add, remove$$1, createOnceHandler, vm) {
|
2239 |
-
var name, def$$1, cur, old, event;
|
2240 |
-
|
2241 |
-
for (name in on) {
|
2242 |
-
def$$1 = cur = on[name];
|
2243 |
-
old = oldOn[name];
|
2244 |
-
event = normalizeEvent(name);
|
2245 |
-
|
2246 |
-
if (isUndef(cur)) {
|
2247 |
-
warn("Invalid handler for event \"" + event.name + "\": got " + String(cur), vm);
|
2248 |
-
} else if (isUndef(old)) {
|
2249 |
-
if (isUndef(cur.fns)) {
|
2250 |
-
cur = on[name] = createFnInvoker(cur, vm);
|
2251 |
-
}
|
2252 |
-
|
2253 |
-
if (isTrue(event.once)) {
|
2254 |
-
cur = on[name] = createOnceHandler(event.name, cur, event.capture);
|
2255 |
-
}
|
2256 |
-
|
2257 |
-
add(event.name, cur, event.capture, event.passive, event.params);
|
2258 |
-
} else if (cur !== old) {
|
2259 |
-
old.fns = cur;
|
2260 |
-
on[name] = old;
|
2261 |
-
}
|
2262 |
-
}
|
2263 |
-
|
2264 |
-
for (name in oldOn) {
|
2265 |
-
if (isUndef(on[name])) {
|
2266 |
-
event = normalizeEvent(name);
|
2267 |
-
remove$$1(event.name, oldOn[name], event.capture);
|
2268 |
-
}
|
2269 |
-
}
|
2270 |
-
}
|
2271 |
-
/* */
|
2272 |
-
|
2273 |
-
|
2274 |
-
function mergeVNodeHook(def, hookKey, hook) {
|
2275 |
-
if (def instanceof VNode) {
|
2276 |
-
def = def.data.hook || (def.data.hook = {});
|
2277 |
-
}
|
2278 |
-
|
2279 |
-
var invoker;
|
2280 |
-
var oldHook = def[hookKey];
|
2281 |
-
|
2282 |
-
function wrappedHook() {
|
2283 |
-
hook.apply(this, arguments); // important: remove merged hook to ensure it's called only once
|
2284 |
-
// and prevent memory leak
|
2285 |
-
|
2286 |
-
remove(invoker.fns, wrappedHook);
|
2287 |
-
}
|
2288 |
-
|
2289 |
-
if (isUndef(oldHook)) {
|
2290 |
-
// no existing hook
|
2291 |
-
invoker = createFnInvoker([wrappedHook]);
|
2292 |
-
} else {
|
2293 |
-
/* istanbul ignore if */
|
2294 |
-
if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
|
2295 |
-
// already a merged invoker
|
2296 |
-
invoker = oldHook;
|
2297 |
-
invoker.fns.push(wrappedHook);
|
2298 |
-
} else {
|
2299 |
-
// existing plain hook
|
2300 |
-
invoker = createFnInvoker([oldHook, wrappedHook]);
|
2301 |
-
}
|
2302 |
-
}
|
2303 |
-
|
2304 |
-
invoker.merged = true;
|
2305 |
-
def[hookKey] = invoker;
|
2306 |
-
}
|
2307 |
-
/* */
|
2308 |
-
|
2309 |
-
|
2310 |
-
function extractPropsFromVNodeData(data, Ctor, tag) {
|
2311 |
-
// we are only extracting raw values here.
|
2312 |
-
// validation and default values are handled in the child
|
2313 |
-
// component itself.
|
2314 |
-
var propOptions = Ctor.options.props;
|
2315 |
-
|
2316 |
-
if (isUndef(propOptions)) {
|
2317 |
-
return;
|
2318 |
-
}
|
2319 |
-
|
2320 |
-
var res = {};
|
2321 |
-
var attrs = data.attrs;
|
2322 |
-
var props = data.props;
|
2323 |
-
|
2324 |
-
if (isDef(attrs) || isDef(props)) {
|
2325 |
-
for (var key in propOptions) {
|
2326 |
-
var altKey = hyphenate(key);
|
2327 |
-
{
|
2328 |
-
var keyInLowerCase = key.toLowerCase();
|
2329 |
-
|
2330 |
-
if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {
|
2331 |
-
tip("Prop \"" + keyInLowerCase + "\" is passed to component " + formatComponentName(tag || Ctor) + ", but the declared prop name is" + " \"" + key + "\". " + "Note that HTML attributes are case-insensitive and camelCased " + "props need to use their kebab-case equivalents when using in-DOM " + "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\".");
|
2332 |
-
}
|
2333 |
-
}
|
2334 |
-
checkProp(res, props, key, altKey, true) || checkProp(res, attrs, key, altKey, false);
|
2335 |
-
}
|
2336 |
-
}
|
2337 |
-
|
2338 |
-
return res;
|
2339 |
-
}
|
2340 |
-
|
2341 |
-
function checkProp(res, hash, key, altKey, preserve) {
|
2342 |
-
if (isDef(hash)) {
|
2343 |
-
if (hasOwn(hash, key)) {
|
2344 |
-
res[key] = hash[key];
|
2345 |
-
|
2346 |
-
if (!preserve) {
|
2347 |
-
delete hash[key];
|
2348 |
-
}
|
2349 |
-
|
2350 |
-
return true;
|
2351 |
-
} else if (hasOwn(hash, altKey)) {
|
2352 |
-
res[key] = hash[altKey];
|
2353 |
-
|
2354 |
-
if (!preserve) {
|
2355 |
-
delete hash[altKey];
|
2356 |
-
}
|
2357 |
-
|
2358 |
-
return true;
|
2359 |
-
}
|
2360 |
-
}
|
2361 |
-
|
2362 |
-
return false;
|
2363 |
-
}
|
2364 |
-
/* */
|
2365 |
-
// The template compiler attempts to minimize the need for normalization by
|
2366 |
-
// statically analyzing the template at compile time.
|
2367 |
-
//
|
2368 |
-
// For plain HTML markup, normalization can be completely skipped because the
|
2369 |
-
// generated render function is guaranteed to return Array<VNode>. There are
|
2370 |
-
// two cases where extra normalization is needed:
|
2371 |
-
// 1. When the children contains components - because a functional component
|
2372 |
-
// may return an Array instead of a single root. In this case, just a simple
|
2373 |
-
// normalization is needed - if any child is an Array, we flatten the whole
|
2374 |
-
// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
|
2375 |
-
// because functional components already normalize their own children.
|
2376 |
-
|
2377 |
-
|
2378 |
-
function simpleNormalizeChildren(children) {
|
2379 |
-
for (var i = 0; i < children.length; i++) {
|
2380 |
-
if (Array.isArray(children[i])) {
|
2381 |
-
return Array.prototype.concat.apply([], children);
|
2382 |
-
}
|
2383 |
-
}
|
2384 |
-
|
2385 |
-
return children;
|
2386 |
-
} // 2. When the children contains constructs that always generated nested Arrays,
|
2387 |
-
// e.g. <template>, <slot>, v-for, or when the children is provided by user
|
2388 |
-
// with hand-written render functions / JSX. In such cases a full normalization
|
2389 |
-
// is needed to cater to all possible types of children values.
|
2390 |
-
|
2391 |
-
|
2392 |
-
function normalizeChildren(children) {
|
2393 |
-
return isPrimitive(children) ? [createTextVNode(children)] : Array.isArray(children) ? normalizeArrayChildren(children) : undefined;
|
2394 |
-
}
|
2395 |
-
|
2396 |
-
function isTextNode(node) {
|
2397 |
-
return isDef(node) && isDef(node.text) && isFalse(node.isComment);
|
2398 |
-
}
|
2399 |
-
|
2400 |
-
function normalizeArrayChildren(children, nestedIndex) {
|
2401 |
-
var res = [];
|
2402 |
-
var i, c, lastIndex, last;
|
2403 |
-
|
2404 |
-
for (i = 0; i < children.length; i++) {
|
2405 |
-
c = children[i];
|
2406 |
-
|
2407 |
-
if (isUndef(c) || typeof c === 'boolean') {
|
2408 |
-
continue;
|
2409 |
-
}
|
2410 |
-
|
2411 |
-
lastIndex = res.length - 1;
|
2412 |
-
last = res[lastIndex]; // nested
|
2413 |
-
|
2414 |
-
if (Array.isArray(c)) {
|
2415 |
-
if (c.length > 0) {
|
2416 |
-
c = normalizeArrayChildren(c, (nestedIndex || '') + "_" + i); // merge adjacent text nodes
|
2417 |
-
|
2418 |
-
if (isTextNode(c[0]) && isTextNode(last)) {
|
2419 |
-
res[lastIndex] = createTextVNode(last.text + c[0].text);
|
2420 |
-
c.shift();
|
2421 |
-
}
|
2422 |
-
|
2423 |
-
res.push.apply(res, c);
|
2424 |
-
}
|
2425 |
-
} else if (isPrimitive(c)) {
|
2426 |
-
if (isTextNode(last)) {
|
2427 |
-
// merge adjacent text nodes
|
2428 |
-
// this is necessary for SSR hydration because text nodes are
|
2429 |
-
// essentially merged when rendered to HTML strings
|
2430 |
-
res[lastIndex] = createTextVNode(last.text + c);
|
2431 |
-
} else if (c !== '') {
|
2432 |
-
// convert primitive to vnode
|
2433 |
-
res.push(createTextVNode(c));
|
2434 |
-
}
|
2435 |
-
} else {
|
2436 |
-
if (isTextNode(c) && isTextNode(last)) {
|
2437 |
-
// merge adjacent text nodes
|
2438 |
-
res[lastIndex] = createTextVNode(last.text + c.text);
|
2439 |
-
} else {
|
2440 |
-
// default key for nested array children (likely generated by v-for)
|
2441 |
-
if (isTrue(children._isVList) && isDef(c.tag) && isUndef(c.key) && isDef(nestedIndex)) {
|
2442 |
-
c.key = "__vlist" + nestedIndex + "_" + i + "__";
|
2443 |
-
}
|
2444 |
-
|
2445 |
-
res.push(c);
|
2446 |
-
}
|
2447 |
-
}
|
2448 |
-
}
|
2449 |
-
|
2450 |
-
return res;
|
2451 |
-
}
|
2452 |
-
/* */
|
2453 |
-
|
2454 |
-
|
2455 |
-
function initProvide(vm) {
|
2456 |
-
var provide = vm.$options.provide;
|
2457 |
-
|
2458 |
-
if (provide) {
|
2459 |
-
vm._provided = typeof provide === 'function' ? provide.call(vm) : provide;
|
2460 |
-
}
|
2461 |
-
}
|
2462 |
-
|
2463 |
-
function initInjections(vm) {
|
2464 |
-
var result = resolveInject(vm.$options.inject, vm);
|
2465 |
-
|
2466 |
-
if (result) {
|
2467 |
-
toggleObserving(false);
|
2468 |
-
Object.keys(result).forEach(function (key) {
|
2469 |
-
/* istanbul ignore else */
|
2470 |
-
{
|
2471 |
-
defineReactive$$1(vm, key, result[key], function () {
|
2472 |
-
warn("Avoid mutating an injected value directly since the changes will be " + "overwritten whenever the provided component re-renders. " + "injection being mutated: \"" + key + "\"", vm);
|
2473 |
-
});
|
2474 |
-
}
|
2475 |
-
});
|
2476 |
-
toggleObserving(true);
|
2477 |
-
}
|
2478 |
-
}
|
2479 |
-
|
2480 |
-
function resolveInject(inject, vm) {
|
2481 |
-
if (inject) {
|
2482 |
-
// inject is :any because flow is not smart enough to figure out cached
|
2483 |
-
var result = Object.create(null);
|
2484 |
-
var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);
|
2485 |
-
|
2486 |
-
for (var i = 0; i < keys.length; i++) {
|
2487 |
-
var key = keys[i]; // #6574 in case the inject object is observed...
|
2488 |
-
|
2489 |
-
if (key === '__ob__') {
|
2490 |
-
continue;
|
2491 |
-
}
|
2492 |
-
|
2493 |
-
var provideKey = inject[key].from;
|
2494 |
-
var source = vm;
|
2495 |
-
|
2496 |
-
while (source) {
|
2497 |
-
if (source._provided && hasOwn(source._provided, provideKey)) {
|
2498 |
-
result[key] = source._provided[provideKey];
|
2499 |
-
break;
|
2500 |
-
}
|
2501 |
-
|
2502 |
-
source = source.$parent;
|
2503 |
-
}
|
2504 |
-
|
2505 |
-
if (!source) {
|
2506 |
-
if ('default' in inject[key]) {
|
2507 |
-
var provideDefault = inject[key]["default"];
|
2508 |
-
result[key] = typeof provideDefault === 'function' ? provideDefault.call(vm) : provideDefault;
|
2509 |
-
} else {
|
2510 |
-
warn("Injection \"" + key + "\" not found", vm);
|
2511 |
-
}
|
2512 |
-
}
|
2513 |
-
}
|
2514 |
-
|
2515 |
-
return result;
|
2516 |
-
}
|
2517 |
-
}
|
2518 |
-
/* */
|
2519 |
-
|
2520 |
-
/**
|
2521 |
-
* Runtime helper for resolving raw children VNodes into a slot object.
|
2522 |
-
*/
|
2523 |
-
|
2524 |
-
|
2525 |
-
function resolveSlots(children, context) {
|
2526 |
-
if (!children || !children.length) {
|
2527 |
-
return {};
|
2528 |
-
}
|
2529 |
-
|
2530 |
-
var slots = {};
|
2531 |
-
|
2532 |
-
for (var i = 0, l = children.length; i < l; i++) {
|
2533 |
-
var child = children[i];
|
2534 |
-
var data = child.data; // remove slot attribute if the node is resolved as a Vue slot node
|
2535 |
-
|
2536 |
-
if (data && data.attrs && data.attrs.slot) {
|
2537 |
-
delete data.attrs.slot;
|
2538 |
-
} // named slots should only be respected if the vnode was rendered in the
|
2539 |
-
// same context.
|
2540 |
-
|
2541 |
-
|
2542 |
-
if ((child.context === context || child.fnContext === context) && data && data.slot != null) {
|
2543 |
-
var name = data.slot;
|
2544 |
-
var slot = slots[name] || (slots[name] = []);
|
2545 |
-
|
2546 |
-
if (child.tag === 'template') {
|
2547 |
-
slot.push.apply(slot, child.children || []);
|
2548 |
-
} else {
|
2549 |
-
slot.push(child);
|
2550 |
-
}
|
2551 |
-
} else {
|
2552 |
-
(slots["default"] || (slots["default"] = [])).push(child);
|
2553 |
-
}
|
2554 |
-
} // ignore slots that contains only whitespace
|
2555 |
-
|
2556 |
-
|
2557 |
-
for (var name$1 in slots) {
|
2558 |
-
if (slots[name$1].every(isWhitespace)) {
|
2559 |
-
delete slots[name$1];
|
2560 |
-
}
|
2561 |
-
}
|
2562 |
-
|
2563 |
-
return slots;
|
2564 |
-
}
|
2565 |
-
|
2566 |
-
function isWhitespace(node) {
|
2567 |
-
return node.isComment && !node.asyncFactory || node.text === ' ';
|
2568 |
-
}
|
2569 |
-
/* */
|
2570 |
-
|
2571 |
-
|
2572 |
-
function normalizeScopedSlots(slots, normalSlots, prevSlots) {
|
2573 |
-
var res;
|
2574 |
-
var hasNormalSlots = Object.keys(normalSlots).length > 0;
|
2575 |
-
var isStable = slots ? !!slots.$stable : !hasNormalSlots;
|
2576 |
-
var key = slots && slots.$key;
|
2577 |
-
|
2578 |
-
if (!slots) {
|
2579 |
-
res = {};
|
2580 |
-
} else if (slots._normalized) {
|
2581 |
-
// fast path 1: child component re-render only, parent did not change
|
2582 |
-
return slots._normalized;
|
2583 |
-
} else if (isStable && prevSlots && prevSlots !== emptyObject && key === prevSlots.$key && !hasNormalSlots && !prevSlots.$hasNormal) {
|
2584 |
-
// fast path 2: stable scoped slots w/ no normal slots to proxy,
|
2585 |
-
// only need to normalize once
|
2586 |
-
return prevSlots;
|
2587 |
-
} else {
|
2588 |
-
res = {};
|
2589 |
-
|
2590 |
-
for (var key$1 in slots) {
|
2591 |
-
if (slots[key$1] && key$1[0] !== '$') {
|
2592 |
-
res[key$1] = normalizeScopedSlot(normalSlots, key$1, slots[key$1]);
|
2593 |
-
}
|
2594 |
-
}
|
2595 |
-
} // expose normal slots on scopedSlots
|
2596 |
-
|
2597 |
-
|
2598 |
-
for (var key$2 in normalSlots) {
|
2599 |
-
if (!(key$2 in res)) {
|
2600 |
-
res[key$2] = proxyNormalSlot(normalSlots, key$2);
|
2601 |
-
}
|
2602 |
-
} // avoriaz seems to mock a non-extensible $scopedSlots object
|
2603 |
-
// and when that is passed down this would cause an error
|
2604 |
-
|
2605 |
-
|
2606 |
-
if (slots && Object.isExtensible(slots)) {
|
2607 |
-
slots._normalized = res;
|
2608 |
-
}
|
2609 |
-
|
2610 |
-
def(res, '$stable', isStable);
|
2611 |
-
def(res, '$key', key);
|
2612 |
-
def(res, '$hasNormal', hasNormalSlots);
|
2613 |
-
return res;
|
2614 |
-
}
|
2615 |
-
|
2616 |
-
function normalizeScopedSlot(normalSlots, key, fn) {
|
2617 |
-
var normalized = function normalized() {
|
2618 |
-
var res = arguments.length ? fn.apply(null, arguments) : fn({});
|
2619 |
-
res = res && _typeof(res) === 'object' && !Array.isArray(res) ? [res] // single vnode
|
2620 |
-
: normalizeChildren(res);
|
2621 |
-
return res && (res.length === 0 || res.length === 1 && res[0].isComment // #9658
|
2622 |
-
) ? undefined : res;
|
2623 |
-
}; // this is a slot using the new v-slot syntax without scope. although it is
|
2624 |
-
// compiled as a scoped slot, render fn users would expect it to be present
|
2625 |
-
// on this.$slots because the usage is semantically a normal slot.
|
2626 |
-
|
2627 |
-
|
2628 |
-
if (fn.proxy) {
|
2629 |
-
Object.defineProperty(normalSlots, key, {
|
2630 |
-
get: normalized,
|
2631 |
-
enumerable: true,
|
2632 |
-
configurable: true
|
2633 |
-
});
|
2634 |
-
}
|
2635 |
-
|
2636 |
-
return normalized;
|
2637 |
-
}
|
2638 |
-
|
2639 |
-
function proxyNormalSlot(slots, key) {
|
2640 |
-
return function () {
|
2641 |
-
return slots[key];
|
2642 |
-
};
|
2643 |
-
}
|
2644 |
-
/* */
|
2645 |
-
|
2646 |
-
/**
|
2647 |
-
* Runtime helper for rendering v-for lists.
|
2648 |
-
*/
|
2649 |
-
|
2650 |
-
|
2651 |
-
function renderList(val, render) {
|
2652 |
-
var ret, i, l, keys, key;
|
2653 |
-
|
2654 |
-
if (Array.isArray(val) || typeof val === 'string') {
|
2655 |
-
ret = new Array(val.length);
|
2656 |
-
|
2657 |
-
for (i = 0, l = val.length; i < l; i++) {
|
2658 |
-
ret[i] = render(val[i], i);
|
2659 |
-
}
|
2660 |
-
} else if (typeof val === 'number') {
|
2661 |
-
ret = new Array(val);
|
2662 |
-
|
2663 |
-
for (i = 0; i < val; i++) {
|
2664 |
-
ret[i] = render(i + 1, i);
|
2665 |
-
}
|
2666 |
-
} else if (isObject(val)) {
|
2667 |
-
if (hasSymbol && val[Symbol.iterator]) {
|
2668 |
-
ret = [];
|
2669 |
-
var iterator = val[Symbol.iterator]();
|
2670 |
-
var result = iterator.next();
|
2671 |
-
|
2672 |
-
while (!result.done) {
|
2673 |
-
ret.push(render(result.value, ret.length));
|
2674 |
-
result = iterator.next();
|
2675 |
-
}
|
2676 |
-
} else {
|
2677 |
-
keys = Object.keys(val);
|
2678 |
-
ret = new Array(keys.length);
|
2679 |
-
|
2680 |
-
for (i = 0, l = keys.length; i < l; i++) {
|
2681 |
-
key = keys[i];
|
2682 |
-
ret[i] = render(val[key], key, i);
|
2683 |
-
}
|
2684 |
-
}
|
2685 |
-
}
|
2686 |
-
|
2687 |
-
if (!isDef(ret)) {
|
2688 |
-
ret = [];
|
2689 |
-
}
|
2690 |
-
|
2691 |
-
ret._isVList = true;
|
2692 |
-
return ret;
|
2693 |
-
}
|
2694 |
-
/* */
|
2695 |
-
|
2696 |
-
/**
|
2697 |
-
* Runtime helper for rendering <slot>
|
2698 |
-
*/
|
2699 |
-
|
2700 |
-
|
2701 |
-
function renderSlot(name, fallback, props, bindObject) {
|
2702 |
-
var scopedSlotFn = this.$scopedSlots[name];
|
2703 |
-
var nodes;
|
2704 |
-
|
2705 |
-
if (scopedSlotFn) {
|
2706 |
-
// scoped slot
|
2707 |
-
props = props || {};
|
2708 |
-
|
2709 |
-
if (bindObject) {
|
2710 |
-
if (!isObject(bindObject)) {
|
2711 |
-
warn('slot v-bind without argument expects an Object', this);
|
2712 |
-
}
|
2713 |
-
|
2714 |
-
props = extend(extend({}, bindObject), props);
|
2715 |
-
}
|
2716 |
-
|
2717 |
-
nodes = scopedSlotFn(props) || fallback;
|
2718 |
-
} else {
|
2719 |
-
nodes = this.$slots[name] || fallback;
|
2720 |
-
}
|
2721 |
-
|
2722 |
-
var target = props && props.slot;
|
2723 |
-
|
2724 |
-
if (target) {
|
2725 |
-
return this.$createElement('template', {
|
2726 |
-
slot: target
|
2727 |
-
}, nodes);
|
2728 |
-
} else {
|
2729 |
-
return nodes;
|
2730 |
-
}
|
2731 |
-
}
|
2732 |
-
/* */
|
2733 |
-
|
2734 |
-
/**
|
2735 |
-
* Runtime helper for resolving filters
|
2736 |
-
*/
|
2737 |
-
|
2738 |
-
|
2739 |
-
function resolveFilter(id) {
|
2740 |
-
return resolveAsset(this.$options, 'filters', id, true) || identity;
|
2741 |
-
}
|
2742 |
-
/* */
|
2743 |
-
|
2744 |
-
|
2745 |
-
function isKeyNotMatch(expect, actual) {
|
2746 |
-
if (Array.isArray(expect)) {
|
2747 |
-
return expect.indexOf(actual) === -1;
|
2748 |
-
} else {
|
2749 |
-
return expect !== actual;
|
2750 |
-
}
|
2751 |
-
}
|
2752 |
-
/**
|
2753 |
-
* Runtime helper for checking keyCodes from config.
|
2754 |
-
* exposed as Vue.prototype._k
|
2755 |
-
* passing in eventKeyName as last argument separately for backwards compat
|
2756 |
-
*/
|
2757 |
-
|
2758 |
-
|
2759 |
-
function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {
|
2760 |
-
var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
|
2761 |
-
|
2762 |
-
if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
|
2763 |
-
return isKeyNotMatch(builtInKeyName, eventKeyName);
|
2764 |
-
} else if (mappedKeyCode) {
|
2765 |
-
return isKeyNotMatch(mappedKeyCode, eventKeyCode);
|
2766 |
-
} else if (eventKeyName) {
|
2767 |
-
return hyphenate(eventKeyName) !== key;
|
2768 |
-
}
|
2769 |
-
}
|
2770 |
-
/* */
|
2771 |
-
|
2772 |
-
/**
|
2773 |
-
* Runtime helper for merging v-bind="object" into a VNode's data.
|
2774 |
-
*/
|
2775 |
-
|
2776 |
-
|
2777 |
-
function bindObjectProps(data, tag, value, asProp, isSync) {
|
2778 |
-
if (value) {
|
2779 |
-
if (!isObject(value)) {
|
2780 |
-
warn('v-bind without argument expects an Object or Array value', this);
|
2781 |
-
} else {
|
2782 |
-
if (Array.isArray(value)) {
|
2783 |
-
value = toObject(value);
|
2784 |
-
}
|
2785 |
-
|
2786 |
-
var hash;
|
2787 |
-
|
2788 |
-
var loop = function loop(key) {
|
2789 |
-
if (key === 'class' || key === 'style' || isReservedAttribute(key)) {
|
2790 |
-
hash = data;
|
2791 |
-
} else {
|
2792 |
-
var type = data.attrs && data.attrs.type;
|
2793 |
-
hash = asProp || config.mustUseProp(tag, type, key) ? data.domProps || (data.domProps = {}) : data.attrs || (data.attrs = {});
|
2794 |
-
}
|
2795 |
-
|
2796 |
-
var camelizedKey = camelize(key);
|
2797 |
-
var hyphenatedKey = hyphenate(key);
|
2798 |
-
|
2799 |
-
if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
|
2800 |
-
hash[key] = value[key];
|
2801 |
-
|
2802 |
-
if (isSync) {
|
2803 |
-
var on = data.on || (data.on = {});
|
2804 |
-
|
2805 |
-
on["update:" + key] = function ($event) {
|
2806 |
-
value[key] = $event;
|
2807 |
-
};
|
2808 |
-
}
|
2809 |
-
}
|
2810 |
-
};
|
2811 |
-
|
2812 |
-
for (var key in value) {
|
2813 |
-
loop(key);
|
2814 |
-
}
|
2815 |
-
}
|
2816 |
-
}
|
2817 |
-
|
2818 |
-
return data;
|
2819 |
-
}
|
2820 |
-
/* */
|
2821 |
-
|
2822 |
-
/**
|
2823 |
-
* Runtime helper for rendering static trees.
|
2824 |
-
*/
|
2825 |
-
|
2826 |
-
|
2827 |
-
function renderStatic(index, isInFor) {
|
2828 |
-
var cached = this._staticTrees || (this._staticTrees = []);
|
2829 |
-
var tree = cached[index]; // if has already-rendered static tree and not inside v-for,
|
2830 |
-
// we can reuse the same tree.
|
2831 |
-
|
2832 |
-
if (tree && !isInFor) {
|
2833 |
-
return tree;
|
2834 |
-
} // otherwise, render a fresh tree.
|
2835 |
-
|
2836 |
-
|
2837 |
-
tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, null, this // for render fns generated for functional component templates
|
2838 |
-
);
|
2839 |
-
markStatic(tree, "__static__" + index, false);
|
2840 |
-
return tree;
|
2841 |
-
}
|
2842 |
-
/**
|
2843 |
-
* Runtime helper for v-once.
|
2844 |
-
* Effectively it means marking the node as static with a unique key.
|
2845 |
-
*/
|
2846 |
-
|
2847 |
-
|
2848 |
-
function markOnce(tree, index, key) {
|
2849 |
-
markStatic(tree, "__once__" + index + (key ? "_" + key : ""), true);
|
2850 |
-
return tree;
|
2851 |
-
}
|
2852 |
-
|
2853 |
-
function markStatic(tree, key, isOnce) {
|
2854 |
-
if (Array.isArray(tree)) {
|
2855 |
-
for (var i = 0; i < tree.length; i++) {
|
2856 |
-
if (tree[i] && typeof tree[i] !== 'string') {
|
2857 |
-
markStaticNode(tree[i], key + "_" + i, isOnce);
|
2858 |
-
}
|
2859 |
-
}
|
2860 |
-
} else {
|
2861 |
-
markStaticNode(tree, key, isOnce);
|
2862 |
-
}
|
2863 |
-
}
|
2864 |
-
|
2865 |
-
function markStaticNode(node, key, isOnce) {
|
2866 |
-
node.isStatic = true;
|
2867 |
-
node.key = key;
|
2868 |
-
node.isOnce = isOnce;
|
2869 |
-
}
|
2870 |
-
/* */
|
2871 |
-
|
2872 |
-
|
2873 |
-
function bindObjectListeners(data, value) {
|
2874 |
-
if (value) {
|
2875 |
-
if (!isPlainObject(value)) {
|
2876 |
-
warn('v-on without argument expects an Object value', this);
|
2877 |
-
} else {
|
2878 |
-
var on = data.on = data.on ? extend({}, data.on) : {};
|
2879 |
-
|
2880 |
-
for (var key in value) {
|
2881 |
-
var existing = on[key];
|
2882 |
-
var ours = value[key];
|
2883 |
-
on[key] = existing ? [].concat(existing, ours) : ours;
|
2884 |
-
}
|
2885 |
-
}
|
2886 |
-
}
|
2887 |
-
|
2888 |
-
return data;
|
2889 |
-
}
|
2890 |
-
/* */
|
2891 |
-
|
2892 |
-
|
2893 |
-
function resolveScopedSlots(fns, // see flow/vnode
|
2894 |
-
res, // the following are added in 2.6
|
2895 |
-
hasDynamicKeys, contentHashKey) {
|
2896 |
-
res = res || {
|
2897 |
-
$stable: !hasDynamicKeys
|
2898 |
-
};
|
2899 |
-
|
2900 |
-
for (var i = 0; i < fns.length; i++) {
|
2901 |
-
var slot = fns[i];
|
2902 |
-
|
2903 |
-
if (Array.isArray(slot)) {
|
2904 |
-
resolveScopedSlots(slot, res, hasDynamicKeys);
|
2905 |
-
} else if (slot) {
|
2906 |
-
// marker for reverse proxying v-slot without scope on this.$slots
|
2907 |
-
if (slot.proxy) {
|
2908 |
-
slot.fn.proxy = true;
|
2909 |
-
}
|
2910 |
-
|
2911 |
-
res[slot.key] = slot.fn;
|
2912 |
-
}
|
2913 |
-
}
|
2914 |
-
|
2915 |
-
if (contentHashKey) {
|
2916 |
-
res.$key = contentHashKey;
|
2917 |
-
}
|
2918 |
-
|
2919 |
-
return res;
|
2920 |
-
}
|
2921 |
-
/* */
|
2922 |
-
|
2923 |
-
|
2924 |
-
function bindDynamicKeys(baseObj, values) {
|
2925 |
-
for (var i = 0; i < values.length; i += 2) {
|
2926 |
-
var key = values[i];
|
2927 |
-
|
2928 |
-
if (typeof key === 'string' && key) {
|
2929 |
-
baseObj[values[i]] = values[i + 1];
|
2930 |
-
} else if (key !== '' && key !== null) {
|
2931 |
-
// null is a special value for explicitly removing a binding
|
2932 |
-
warn("Invalid value for dynamic directive argument (expected string or null): " + key, this);
|
2933 |
-
}
|
2934 |
-
}
|
2935 |
-
|
2936 |
-
return baseObj;
|
2937 |
-
} // helper to dynamically append modifier runtime markers to event names.
|
2938 |
-
// ensure only append when value is already string, otherwise it will be cast
|
2939 |
-
// to string and cause the type check to miss.
|
2940 |
-
|
2941 |
-
|
2942 |
-
function prependModifier(value, symbol) {
|
2943 |
-
return typeof value === 'string' ? symbol + value : value;
|
2944 |
-
}
|
2945 |
-
/* */
|
2946 |
-
|
2947 |
-
|
2948 |
-
function installRenderHelpers(target) {
|
2949 |
-
target._o = markOnce;
|
2950 |
-
target._n = toNumber;
|
2951 |
-
target._s = toString;
|
2952 |
-
target._l = renderList;
|
2953 |
-
target._t = renderSlot;
|
2954 |
-
target._q = looseEqual;
|
2955 |
-
target._i = looseIndexOf;
|
2956 |
-
target._m = renderStatic;
|
2957 |
-
target._f = resolveFilter;
|
2958 |
-
target._k = checkKeyCodes;
|
2959 |
-
target._b = bindObjectProps;
|
2960 |
-
target._v = createTextVNode;
|
2961 |
-
target._e = createEmptyVNode;
|
2962 |
-
target._u = resolveScopedSlots;
|
2963 |
-
target._g = bindObjectListeners;
|
2964 |
-
target._d = bindDynamicKeys;
|
2965 |
-
target._p = prependModifier;
|
2966 |
-
}
|
2967 |
-
/* */
|
2968 |
-
|
2969 |
-
|
2970 |
-
function FunctionalRenderContext(data, props, children, parent, Ctor) {
|
2971 |
-
var this$1 = this;
|
2972 |
-
var options = Ctor.options; // ensure the createElement function in functional components
|
2973 |
-
// gets a unique context - this is necessary for correct named slot check
|
2974 |
-
|
2975 |
-
var contextVm;
|
2976 |
-
|
2977 |
-
if (hasOwn(parent, '_uid')) {
|
2978 |
-
contextVm = Object.create(parent); // $flow-disable-line
|
2979 |
-
|
2980 |
-
contextVm._original = parent;
|
2981 |
-
} else {
|
2982 |
-
// the context vm passed in is a functional context as well.
|
2983 |
-
// in this case we want to make sure we are able to get a hold to the
|
2984 |
-
// real context instance.
|
2985 |
-
contextVm = parent; // $flow-disable-line
|
2986 |
-
|
2987 |
-
parent = parent._original;
|
2988 |
-
}
|
2989 |
-
|
2990 |
-
var isCompiled = isTrue(options._compiled);
|
2991 |
-
var needNormalization = !isCompiled;
|
2992 |
-
this.data = data;
|
2993 |
-
this.props = props;
|
2994 |
-
this.children = children;
|
2995 |
-
this.parent = parent;
|
2996 |
-
this.listeners = data.on || emptyObject;
|
2997 |
-
this.injections = resolveInject(options.inject, parent);
|
2998 |
-
|
2999 |
-
this.slots = function () {
|
3000 |
-
if (!this$1.$slots) {
|
3001 |
-
normalizeScopedSlots(data.scopedSlots, this$1.$slots = resolveSlots(children, parent));
|
3002 |
-
}
|
3003 |
-
|
3004 |
-
return this$1.$slots;
|
3005 |
-
};
|
3006 |
-
|
3007 |
-
Object.defineProperty(this, 'scopedSlots', {
|
3008 |
-
enumerable: true,
|
3009 |
-
get: function get() {
|
3010 |
-
return normalizeScopedSlots(data.scopedSlots, this.slots());
|
3011 |
-
}
|
3012 |
-
}); // support for compiled functional template
|
3013 |
-
|
3014 |
-
if (isCompiled) {
|
3015 |
-
// exposing $options for renderStatic()
|
3016 |
-
this.$options = options; // pre-resolve slots for renderSlot()
|
3017 |
-
|
3018 |
-
this.$slots = this.slots();
|
3019 |
-
this.$scopedSlots = normalizeScopedSlots(data.scopedSlots, this.$slots);
|
3020 |
-
}
|
3021 |
-
|
3022 |
-
if (options._scopeId) {
|
3023 |
-
this._c = function (a, b, c, d) {
|
3024 |
-
var vnode = createElement(contextVm, a, b, c, d, needNormalization);
|
3025 |
-
|
3026 |
-
if (vnode && !Array.isArray(vnode)) {
|
3027 |
-
vnode.fnScopeId = options._scopeId;
|
3028 |
-
vnode.fnContext = parent;
|
3029 |
-
}
|
3030 |
-
|
3031 |
-
return vnode;
|
3032 |
-
};
|
3033 |
-
} else {
|
3034 |
-
this._c = function (a, b, c, d) {
|
3035 |
-
return createElement(contextVm, a, b, c, d, needNormalization);
|
3036 |
-
};
|
3037 |
-
}
|
3038 |
-
}
|
3039 |
-
|
3040 |
-
installRenderHelpers(FunctionalRenderContext.prototype);
|
3041 |
-
|
3042 |
-
function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {
|
3043 |
-
var options = Ctor.options;
|
3044 |
-
var props = {};
|
3045 |
-
var propOptions = options.props;
|
3046 |
-
|
3047 |
-
if (isDef(propOptions)) {
|
3048 |
-
for (var key in propOptions) {
|
3049 |
-
props[key] = validateProp(key, propOptions, propsData || emptyObject);
|
3050 |
-
}
|
3051 |
-
} else {
|
3052 |
-
if (isDef(data.attrs)) {
|
3053 |
-
mergeProps(props, data.attrs);
|
3054 |
-
}
|
3055 |
-
|
3056 |
-
if (isDef(data.props)) {
|
3057 |
-
mergeProps(props, data.props);
|
3058 |
-
}
|
3059 |
-
}
|
3060 |
-
|
3061 |
-
var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);
|
3062 |
-
var vnode = options.render.call(null, renderContext._c, renderContext);
|
3063 |
-
|
3064 |
-
if (vnode instanceof VNode) {
|
3065 |
-
return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);
|
3066 |
-
} else if (Array.isArray(vnode)) {
|
3067 |
-
var vnodes = normalizeChildren(vnode) || [];
|
3068 |
-
var res = new Array(vnodes.length);
|
3069 |
-
|
3070 |
-
for (var i = 0; i < vnodes.length; i++) {
|
3071 |
-
res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);
|
3072 |
-
}
|
3073 |
-
|
3074 |
-
return res;
|
3075 |
-
}
|
3076 |
-
}
|
3077 |
-
|
3078 |
-
function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {
|
3079 |
-
// #7817 clone node before setting fnContext, otherwise if the node is reused
|
3080 |
-
// (e.g. it was from a cached normal slot) the fnContext causes named slots
|
3081 |
-
// that should not be matched to match.
|
3082 |
-
var clone = cloneVNode(vnode);
|
3083 |
-
clone.fnContext = contextVm;
|
3084 |
-
clone.fnOptions = options;
|
3085 |
-
{
|
3086 |
-
(clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext = renderContext;
|
3087 |
-
}
|
3088 |
-
|
3089 |
-
if (data.slot) {
|
3090 |
-
(clone.data || (clone.data = {})).slot = data.slot;
|
3091 |
-
}
|
3092 |
-
|
3093 |
-
return clone;
|
3094 |
-
}
|
3095 |
-
|
3096 |
-
function mergeProps(to, from) {
|
3097 |
-
for (var key in from) {
|
3098 |
-
to[camelize(key)] = from[key];
|
3099 |
-
}
|
3100 |
-
}
|
3101 |
-
/* */
|
3102 |
-
|
3103 |
-
/* */
|
3104 |
-
|
3105 |
-
/* */
|
3106 |
-
|
3107 |
-
/* */
|
3108 |
-
// inline hooks to be invoked on component VNodes during patch
|
3109 |
-
|
3110 |
-
|
3111 |
-
var componentVNodeHooks = {
|
3112 |
-
init: function init(vnode, hydrating) {
|
3113 |
-
if (vnode.componentInstance && !vnode.componentInstance._isDestroyed && vnode.data.keepAlive) {
|
3114 |
-
// kept-alive components, treat as a patch
|
3115 |
-
var mountedNode = vnode; // work around flow
|
3116 |
-
|
3117 |
-
componentVNodeHooks.prepatch(mountedNode, mountedNode);
|
3118 |
-
} else {
|
3119 |
-
var child = vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance);
|
3120 |
-
child.$mount(hydrating ? vnode.elm : undefined, hydrating);
|
3121 |
-
}
|
3122 |
-
},
|
3123 |
-
prepatch: function prepatch(oldVnode, vnode) {
|
3124 |
-
var options = vnode.componentOptions;
|
3125 |
-
var child = vnode.componentInstance = oldVnode.componentInstance;
|
3126 |
-
updateChildComponent(child, options.propsData, // updated props
|
3127 |
-
options.listeners, // updated listeners
|
3128 |
-
vnode, // new parent vnode
|
3129 |
-
options.children // new children
|
3130 |
-
);
|
3131 |
-
},
|
3132 |
-
insert: function insert(vnode) {
|
3133 |
-
var context = vnode.context;
|
3134 |
-
var componentInstance = vnode.componentInstance;
|
3135 |
-
|
3136 |
-
if (!componentInstance._isMounted) {
|
3137 |
-
componentInstance._isMounted = true;
|
3138 |
-
callHook(componentInstance, 'mounted');
|
3139 |
-
}
|
3140 |
-
|
3141 |
-
if (vnode.data.keepAlive) {
|
3142 |
-
if (context._isMounted) {
|
3143 |
-
// vue-router#1212
|
3144 |
-
// During updates, a kept-alive component's child components may
|
3145 |
-
// change, so directly walking the tree here may call activated hooks
|
3146 |
-
// on incorrect children. Instead we push them into a queue which will
|
3147 |
-
// be processed after the whole patch process ended.
|
3148 |
-
queueActivatedComponent(componentInstance);
|
3149 |
-
} else {
|
3150 |
-
activateChildComponent(componentInstance, true
|
3151 |
-
/* direct */
|
3152 |
-
);
|
3153 |
-
}
|
3154 |
-
}
|
3155 |
-
},
|
3156 |
-
destroy: function destroy(vnode) {
|
3157 |
-
var componentInstance = vnode.componentInstance;
|
3158 |
-
|
3159 |
-
if (!componentInstance._isDestroyed) {
|
3160 |
-
if (!vnode.data.keepAlive) {
|
3161 |
-
componentInstance.$destroy();
|
3162 |
-
} else {
|
3163 |
-
deactivateChildComponent(componentInstance, true
|
3164 |
-
/* direct */
|
3165 |
-
);
|
3166 |
-
}
|
3167 |
-
}
|
3168 |
-
}
|
3169 |
-
};
|
3170 |
-
var hooksToMerge = Object.keys(componentVNodeHooks);
|
3171 |
-
|
3172 |
-
function createComponent(Ctor, data, context, children, tag) {
|
3173 |
-
if (isUndef(Ctor)) {
|
3174 |
-
return;
|
3175 |
-
}
|
3176 |
-
|
3177 |
-
var baseCtor = context.$options._base; // plain options object: turn it into a constructor
|
3178 |
-
|
3179 |
-
if (isObject(Ctor)) {
|
3180 |
-
Ctor = baseCtor.extend(Ctor);
|
3181 |
-
} // if at this stage it's not a constructor or an async component factory,
|
3182 |
-
// reject.
|
3183 |
-
|
3184 |
-
|
3185 |
-
if (typeof Ctor !== 'function') {
|
3186 |
-
{
|
3187 |
-
warn("Invalid Component definition: " + String(Ctor), context);
|
3188 |
-
}
|
3189 |
-
return;
|
3190 |
-
} // async component
|
3191 |
-
|
3192 |
-
|
3193 |
-
var asyncFactory;
|
3194 |
-
|
3195 |
-
if (isUndef(Ctor.cid)) {
|
3196 |
-
asyncFactory = Ctor;
|
3197 |
-
Ctor = resolveAsyncComponent(asyncFactory, baseCtor);
|
3198 |
-
|
3199 |
-
if (Ctor === undefined) {
|
3200 |
-
// return a placeholder node for async component, which is rendered
|
3201 |
-
// as a comment node but preserves all the raw information for the node.
|
3202 |
-
// the information will be used for async server-rendering and hydration.
|
3203 |
-
return createAsyncPlaceholder(asyncFactory, data, context, children, tag);
|
3204 |
-
}
|
3205 |
-
}
|
3206 |
-
|
3207 |
-
data = data || {}; // resolve constructor options in case global mixins are applied after
|
3208 |
-
// component constructor creation
|
3209 |
-
|
3210 |
-
resolveConstructorOptions(Ctor); // transform component v-model data into props & events
|
3211 |
-
|
3212 |
-
if (isDef(data.model)) {
|
3213 |
-
transformModel(Ctor.options, data);
|
3214 |
-
} // extract props
|
3215 |
-
|
3216 |
-
|
3217 |
-
var propsData = extractPropsFromVNodeData(data, Ctor, tag); // functional component
|
3218 |
-
|
3219 |
-
if (isTrue(Ctor.options.functional)) {
|
3220 |
-
return createFunctionalComponent(Ctor, propsData, data, context, children);
|
3221 |
-
} // extract listeners, since these needs to be treated as
|
3222 |
-
// child component listeners instead of DOM listeners
|
3223 |
-
|
3224 |
-
|
3225 |
-
var listeners = data.on; // replace with listeners with .native modifier
|
3226 |
-
// so it gets processed during parent component patch.
|
3227 |
-
|
3228 |
-
data.on = data.nativeOn;
|
3229 |
-
|
3230 |
-
if (isTrue(Ctor.options["abstract"])) {
|
3231 |
-
// abstract components do not keep anything
|
3232 |
-
// other than props & listeners & slot
|
3233 |
-
// work around flow
|
3234 |
-
var slot = data.slot;
|
3235 |
-
data = {};
|
3236 |
-
|
3237 |
-
if (slot) {
|
3238 |
-
data.slot = slot;
|
3239 |
-
}
|
3240 |
-
} // install component management hooks onto the placeholder node
|
3241 |
-
|
3242 |
-
|
3243 |
-
installComponentHooks(data); // return a placeholder vnode
|
3244 |
-
|
3245 |
-
var name = Ctor.options.name || tag;
|
3246 |
-
var vnode = new VNode("vue-component-" + Ctor.cid + (name ? "-" + name : ''), data, undefined, undefined, undefined, context, {
|
3247 |
-
Ctor: Ctor,
|
3248 |
-
propsData: propsData,
|
3249 |
-
listeners: listeners,
|
3250 |
-
tag: tag,
|
3251 |
-
children: children
|
3252 |
-
}, asyncFactory);
|
3253 |
-
return vnode;
|
3254 |
-
}
|
3255 |
-
|
3256 |
-
function createComponentInstanceForVnode(vnode, // we know it's MountedComponentVNode but flow doesn't
|
3257 |
-
parent // activeInstance in lifecycle state
|
3258 |
-
) {
|
3259 |
-
var options = {
|
3260 |
-
_isComponent: true,
|
3261 |
-
_parentVnode: vnode,
|
3262 |
-
parent: parent
|
3263 |
-
}; // check inline-template render functions
|
3264 |
-
|
3265 |
-
var inlineTemplate = vnode.data.inlineTemplate;
|
3266 |
-
|
3267 |
-
if (isDef(inlineTemplate)) {
|
3268 |
-
options.render = inlineTemplate.render;
|
3269 |
-
options.staticRenderFns = inlineTemplate.staticRenderFns;
|
3270 |
-
}
|
3271 |
-
|
3272 |
-
return new vnode.componentOptions.Ctor(options);
|
3273 |
-
}
|
3274 |
-
|
3275 |
-
function installComponentHooks(data) {
|
3276 |
-
var hooks = data.hook || (data.hook = {});
|
3277 |
-
|
3278 |
-
for (var i = 0; i < hooksToMerge.length; i++) {
|
3279 |
-
var key = hooksToMerge[i];
|
3280 |
-
var existing = hooks[key];
|
3281 |
-
var toMerge = componentVNodeHooks[key];
|
3282 |
-
|
3283 |
-
if (existing !== toMerge && !(existing && existing._merged)) {
|
3284 |
-
hooks[key] = existing ? mergeHook$1(toMerge, existing) : toMerge;
|
3285 |
-
}
|
3286 |
-
}
|
3287 |
-
}
|
3288 |
-
|
3289 |
-
function mergeHook$1(f1, f2) {
|
3290 |
-
var merged = function merged(a, b) {
|
3291 |
-
// flow complains about extra args which is why we use any
|
3292 |
-
f1(a, b);
|
3293 |
-
f2(a, b);
|
3294 |
-
};
|
3295 |
-
|
3296 |
-
merged._merged = true;
|
3297 |
-
return merged;
|
3298 |
-
} // transform component v-model info (value and callback) into
|
3299 |
-
// prop and event handler respectively.
|
3300 |
-
|
3301 |
-
|
3302 |
-
function transformModel(options, data) {
|
3303 |
-
var prop = options.model && options.model.prop || 'value';
|
3304 |
-
var event = options.model && options.model.event || 'input';
|
3305 |
-
(data.attrs || (data.attrs = {}))[prop] = data.model.value;
|
3306 |
-
var on = data.on || (data.on = {});
|
3307 |
-
var existing = on[event];
|
3308 |
-
var callback = data.model.callback;
|
3309 |
-
|
3310 |
-
if (isDef(existing)) {
|
3311 |
-
if (Array.isArray(existing) ? existing.indexOf(callback) === -1 : existing !== callback) {
|
3312 |
-
on[event] = [callback].concat(existing);
|
3313 |
-
}
|
3314 |
-
} else {
|
3315 |
-
on[event] = callback;
|
3316 |
-
}
|
3317 |
-
}
|
3318 |
-
/* */
|
3319 |
-
|
3320 |
-
|
3321 |
-
var SIMPLE_NORMALIZE = 1;
|
3322 |
-
var ALWAYS_NORMALIZE = 2; // wrapper function for providing a more flexible interface
|
3323 |
-
// without getting yelled at by flow
|
3324 |
-
|
3325 |
-
function createElement(context, tag, data, children, normalizationType, alwaysNormalize) {
|
3326 |
-
if (Array.isArray(data) || isPrimitive(data)) {
|
3327 |
-
normalizationType = children;
|
3328 |
-
children = data;
|
3329 |
-
data = undefined;
|
3330 |
-
}
|
3331 |
-
|
3332 |
-
if (isTrue(alwaysNormalize)) {
|
3333 |
-
normalizationType = ALWAYS_NORMALIZE;
|
3334 |
-
}
|
3335 |
-
|
3336 |
-
return _createElement(context, tag, data, children, normalizationType);
|
3337 |
-
}
|
3338 |
-
|
3339 |
-
function _createElement(context, tag, data, children, normalizationType) {
|
3340 |
-
if (isDef(data) && isDef(data.__ob__)) {
|
3341 |
-
warn("Avoid using observed data object as vnode data: " + JSON.stringify(data) + "\n" + 'Always create fresh vnode data objects in each render!', context);
|
3342 |
-
return createEmptyVNode();
|
3343 |
-
} // object syntax in v-bind
|
3344 |
-
|
3345 |
-
|
3346 |
-
if (isDef(data) && isDef(data.is)) {
|
3347 |
-
tag = data.is;
|
3348 |
-
}
|
3349 |
-
|
3350 |
-
if (!tag) {
|
3351 |
-
// in case of component :is set to falsy value
|
3352 |
-
return createEmptyVNode();
|
3353 |
-
} // warn against non-primitive key
|
3354 |
-
|
3355 |
-
|
3356 |
-
if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {
|
3357 |
-
{
|
3358 |
-
warn('Avoid using non-primitive value as key, ' + 'use string/number value instead.', context);
|
3359 |
-
}
|
3360 |
-
} // support single function children as default scoped slot
|
3361 |
-
|
3362 |
-
|
3363 |
-
if (Array.isArray(children) && typeof children[0] === 'function') {
|
3364 |
-
data = data || {};
|
3365 |
-
data.scopedSlots = {
|
3366 |
-
"default": children[0]
|
3367 |
-
};
|
3368 |
-
children.length = 0;
|
3369 |
-
}
|
3370 |
-
|
3371 |
-
if (normalizationType === ALWAYS_NORMALIZE) {
|
3372 |
-
children = normalizeChildren(children);
|
3373 |
-
} else if (normalizationType === SIMPLE_NORMALIZE) {
|
3374 |
-
children = simpleNormalizeChildren(children);
|
3375 |
-
}
|
3376 |
-
|
3377 |
-
var vnode, ns;
|
3378 |
-
|
3379 |
-
if (typeof tag === 'string') {
|
3380 |
-
var Ctor;
|
3381 |
-
ns = context.$vnode && context.$vnode.ns || config.getTagNamespace(tag);
|
3382 |
-
|
3383 |
-
if (config.isReservedTag(tag)) {
|
3384 |
-
// platform built-in elements
|
3385 |
-
if (isDef(data) && isDef(data.nativeOn)) {
|
3386 |
-
warn("The .native modifier for v-on is only valid on components but it was used on <" + tag + ">.", context);
|
3387 |
-
}
|
3388 |
-
|
3389 |
-
vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);
|
3390 |
-
} else if ((!data || !data.pre) && isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {
|
3391 |
-
// component
|
3392 |
-
vnode = createComponent(Ctor, data, context, children, tag);
|
3393 |
-
} else {
|
3394 |
-
// unknown or unlisted namespaced elements
|
3395 |
-
// check at runtime because it may get assigned a namespace when its
|
3396 |
-
// parent normalizes children
|
3397 |
-
vnode = new VNode(tag, data, children, undefined, undefined, context);
|
3398 |
-
}
|
3399 |
-
} else {
|
3400 |
-
// direct component options / constructor
|
3401 |
-
vnode = createComponent(tag, data, context, children);
|
3402 |
-
}
|
3403 |
-
|
3404 |
-
if (Array.isArray(vnode)) {
|
3405 |
-
return vnode;
|
3406 |
-
} else if (isDef(vnode)) {
|
3407 |
-
if (isDef(ns)) {
|
3408 |
-
applyNS(vnode, ns);
|
3409 |
-
}
|
3410 |
-
|
3411 |
-
if (isDef(data)) {
|
3412 |
-
registerDeepBindings(data);
|
3413 |
-
}
|
3414 |
-
|
3415 |
-
return vnode;
|
3416 |
-
} else {
|
3417 |
-
return createEmptyVNode();
|
3418 |
-
}
|
3419 |
-
}
|
3420 |
-
|
3421 |
-
function applyNS(vnode, ns, force) {
|
3422 |
-
vnode.ns = ns;
|
3423 |
-
|
3424 |
-
if (vnode.tag === 'foreignObject') {
|
3425 |
-
// use default namespace inside foreignObject
|
3426 |
-
ns = undefined;
|
3427 |
-
force = true;
|
3428 |
-
}
|
3429 |
-
|
3430 |
-
if (isDef(vnode.children)) {
|
3431 |
-
for (var i = 0, l = vnode.children.length; i < l; i++) {
|
3432 |
-
var child = vnode.children[i];
|
3433 |
-
|
3434 |
-
if (isDef(child.tag) && (isUndef(child.ns) || isTrue(force) && child.tag !== 'svg')) {
|
3435 |
-
applyNS(child, ns, force);
|
3436 |
-
}
|
3437 |
-
}
|
3438 |
-
}
|
3439 |
-
} // ref #5318
|
3440 |
-
// necessary to ensure parent re-render when deep bindings like :style and
|
3441 |
-
// :class are used on slot nodes
|
3442 |
-
|
3443 |
-
|
3444 |
-
function registerDeepBindings(data) {
|
3445 |
-
if (isObject(data.style)) {
|
3446 |
-
traverse(data.style);
|
3447 |
-
}
|
3448 |
-
|
3449 |
-
if (isObject(data["class"])) {
|
3450 |
-
traverse(data["class"]);
|
3451 |
-
}
|
3452 |
-
}
|
3453 |
-
/* */
|
3454 |
-
|
3455 |
-
|
3456 |
-
function initRender(vm) {
|
3457 |
-
vm._vnode = null; // the root of the child tree
|
3458 |
-
|
3459 |
-
vm._staticTrees = null; // v-once cached trees
|
3460 |
-
|
3461 |
-
var options = vm.$options;
|
3462 |
-
var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree
|
3463 |
-
|
3464 |
-
var renderContext = parentVnode && parentVnode.context;
|
3465 |
-
vm.$slots = resolveSlots(options._renderChildren, renderContext);
|
3466 |
-
vm.$scopedSlots = emptyObject; // bind the createElement fn to this instance
|
3467 |
-
// so that we get proper render context inside it.
|
3468 |
-
// args order: tag, data, children, normalizationType, alwaysNormalize
|
3469 |
-
// internal version is used by render functions compiled from templates
|
3470 |
-
|
3471 |
-
vm._c = function (a, b, c, d) {
|
3472 |
-
return createElement(vm, a, b, c, d, false);
|
3473 |
-
}; // normalization is always applied for the public version, used in
|
3474 |
-
// user-written render functions.
|
3475 |
-
|
3476 |
-
|
3477 |
-
vm.$createElement = function (a, b, c, d) {
|
3478 |
-
return createElement(vm, a, b, c, d, true);
|
3479 |
-
}; // $attrs & $listeners are exposed for easier HOC creation.
|
3480 |
-
// they need to be reactive so that HOCs using them are always updated
|
3481 |
-
|
3482 |
-
|
3483 |
-
var parentData = parentVnode && parentVnode.data;
|
3484 |
-
/* istanbul ignore else */
|
3485 |
-
|
3486 |
-
{
|
3487 |
-
defineReactive$$1(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {
|
3488 |
-
!isUpdatingChildComponent && warn("$attrs is readonly.", vm);
|
3489 |
-
}, true);
|
3490 |
-
defineReactive$$1(vm, '$listeners', options._parentListeners || emptyObject, function () {
|
3491 |
-
!isUpdatingChildComponent && warn("$listeners is readonly.", vm);
|
3492 |
-
}, true);
|
3493 |
-
}
|
3494 |
-
}
|
3495 |
-
|
3496 |
-
var currentRenderingInstance = null;
|
3497 |
-
|
3498 |
-
function renderMixin(Vue) {
|
3499 |
-
// install runtime convenience helpers
|
3500 |
-
installRenderHelpers(Vue.prototype);
|
3501 |
-
|
3502 |
-
Vue.prototype.$nextTick = function (fn) {
|
3503 |
-
return nextTick(fn, this);
|
3504 |
-
};
|
3505 |
-
|
3506 |
-
Vue.prototype._render = function () {
|
3507 |
-
var vm = this;
|
3508 |
-
var ref = vm.$options;
|
3509 |
-
var render = ref.render;
|
3510 |
-
var _parentVnode = ref._parentVnode;
|
3511 |
-
|
3512 |
-
if (_parentVnode) {
|
3513 |
-
vm.$scopedSlots = normalizeScopedSlots(_parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);
|
3514 |
-
} // set parent vnode. this allows render functions to have access
|
3515 |
-
// to the data on the placeholder node.
|
3516 |
-
|
3517 |
-
|
3518 |
-
vm.$vnode = _parentVnode; // render self
|
3519 |
-
|
3520 |
-
var vnode;
|
3521 |
-
|
3522 |
-
try {
|
3523 |
-
// There's no need to maintain a stack because all render fns are called
|
3524 |
-
// separately from one another. Nested component's render fns are called
|
3525 |
-
// when parent component is patched.
|
3526 |
-
currentRenderingInstance = vm;
|
3527 |
-
vnode = render.call(vm._renderProxy, vm.$createElement);
|
3528 |
-
} catch (e) {
|
3529 |
-
handleError(e, vm, "render"); // return error render result,
|
3530 |
-
// or previous vnode to prevent render error causing blank component
|
3531 |
-
|
3532 |
-
/* istanbul ignore else */
|
3533 |
-
|
3534 |
-
if (vm.$options.renderError) {
|
3535 |
-
try {
|
3536 |
-
vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);
|
3537 |
-
} catch (e) {
|
3538 |
-
handleError(e, vm, "renderError");
|
3539 |
-
vnode = vm._vnode;
|
3540 |
-
}
|
3541 |
-
} else {
|
3542 |
-
vnode = vm._vnode;
|
3543 |
-
}
|
3544 |
-
} finally {
|
3545 |
-
currentRenderingInstance = null;
|
3546 |
-
} // if the returned array contains only a single node, allow it
|
3547 |
-
|
3548 |
-
|
3549 |
-
if (Array.isArray(vnode) && vnode.length === 1) {
|
3550 |
-
vnode = vnode[0];
|
3551 |
-
} // return empty vnode in case the render function errored out
|
3552 |
-
|
3553 |
-
|
3554 |
-
if (!(vnode instanceof VNode)) {
|
3555 |
-
if (Array.isArray(vnode)) {
|
3556 |
-
warn('Multiple root nodes returned from render function. Render function ' + 'should return a single root node.', vm);
|
3557 |
-
}
|
3558 |
-
|
3559 |
-
vnode = createEmptyVNode();
|
3560 |
-
} // set parent
|
3561 |
-
|
3562 |
-
|
3563 |
-
vnode.parent = _parentVnode;
|
3564 |
-
return vnode;
|
3565 |
-
};
|
3566 |
-
}
|
3567 |
-
/* */
|
3568 |
-
|
3569 |
-
|
3570 |
-
function ensureCtor(comp, base) {
|
3571 |
-
if (comp.__esModule || hasSymbol && comp[Symbol.toStringTag] === 'Module') {
|
3572 |
-
comp = comp["default"];
|
3573 |
-
}
|
3574 |
-
|
3575 |
-
return isObject(comp) ? base.extend(comp) : comp;
|
3576 |
-
}
|
3577 |
-
|
3578 |
-
function createAsyncPlaceholder(factory, data, context, children, tag) {
|
3579 |
-
var node = createEmptyVNode();
|
3580 |
-
node.asyncFactory = factory;
|
3581 |
-
node.asyncMeta = {
|
3582 |
-
data: data,
|
3583 |
-
context: context,
|
3584 |
-
children: children,
|
3585 |
-
tag: tag
|
3586 |
-
};
|
3587 |
-
return node;
|
3588 |
-
}
|
3589 |
-
|
3590 |
-
function resolveAsyncComponent(factory, baseCtor) {
|
3591 |
-
if (isTrue(factory.error) && isDef(factory.errorComp)) {
|
3592 |
-
return factory.errorComp;
|
3593 |
-
}
|
3594 |
-
|
3595 |
-
if (isDef(factory.resolved)) {
|
3596 |
-
return factory.resolved;
|
3597 |
-
}
|
3598 |
-
|
3599 |
-
var owner = currentRenderingInstance;
|
3600 |
-
|
3601 |
-
if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
|
3602 |
-
// already pending
|
3603 |
-
factory.owners.push(owner);
|
3604 |
-
}
|
3605 |
-
|
3606 |
-
if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
|
3607 |
-
return factory.loadingComp;
|
3608 |
-
}
|
3609 |
-
|
3610 |
-
if (owner && !isDef(factory.owners)) {
|
3611 |
-
var owners = factory.owners = [owner];
|
3612 |
-
var sync = true;
|
3613 |
-
var timerLoading = null;
|
3614 |
-
var timerTimeout = null;
|
3615 |
-
owner.$on('hook:destroyed', function () {
|
3616 |
-
return remove(owners, owner);
|
3617 |
-
});
|
3618 |
-
|
3619 |
-
var forceRender = function forceRender(renderCompleted) {
|
3620 |
-
for (var i = 0, l = owners.length; i < l; i++) {
|
3621 |
-
owners[i].$forceUpdate();
|
3622 |
-
}
|
3623 |
-
|
3624 |
-
if (renderCompleted) {
|
3625 |
-
owners.length = 0;
|
3626 |
-
|
3627 |
-
if (timerLoading !== null) {
|
3628 |
-
clearTimeout(timerLoading);
|
3629 |
-
timerLoading = null;
|
3630 |
-
}
|
3631 |
-
|
3632 |
-
if (timerTimeout !== null) {
|
3633 |
-
clearTimeout(timerTimeout);
|
3634 |
-
timerTimeout = null;
|
3635 |
-
}
|
3636 |
-
}
|
3637 |
-
};
|
3638 |
-
|
3639 |
-
var resolve = once(function (res) {
|
3640 |
-
// cache resolved
|
3641 |
-
factory.resolved = ensureCtor(res, baseCtor); // invoke callbacks only if this is not a synchronous resolve
|
3642 |
-
// (async resolves are shimmed as synchronous during SSR)
|
3643 |
-
|
3644 |
-
if (!sync) {
|
3645 |
-
forceRender(true);
|
3646 |
-
} else {
|
3647 |
-
owners.length = 0;
|
3648 |
-
}
|
3649 |
-
});
|
3650 |
-
var reject = once(function (reason) {
|
3651 |
-
warn("Failed to resolve async component: " + String(factory) + (reason ? "\nReason: " + reason : ''));
|
3652 |
-
|
3653 |
-
if (isDef(factory.errorComp)) {
|
3654 |
-
factory.error = true;
|
3655 |
-
forceRender(true);
|
3656 |
-
}
|
3657 |
-
});
|
3658 |
-
var res = factory(resolve, reject);
|
3659 |
-
|
3660 |
-
if (isObject(res)) {
|
3661 |
-
if (isPromise(res)) {
|
3662 |
-
// () => Promise
|
3663 |
-
if (isUndef(factory.resolved)) {
|
3664 |
-
res.then(resolve, reject);
|
3665 |
-
}
|
3666 |
-
} else if (isPromise(res.component)) {
|
3667 |
-
res.component.then(resolve, reject);
|
3668 |
-
|
3669 |
-
if (isDef(res.error)) {
|
3670 |
-
factory.errorComp = ensureCtor(res.error, baseCtor);
|
3671 |
-
}
|
3672 |
-
|
3673 |
-
if (isDef(res.loading)) {
|
3674 |
-
factory.loadingComp = ensureCtor(res.loading, baseCtor);
|
3675 |
-
|
3676 |
-
if (res.delay === 0) {
|
3677 |
-
factory.loading = true;
|
3678 |
-
} else {
|
3679 |
-
timerLoading = setTimeout(function () {
|
3680 |
-
timerLoading = null;
|
3681 |
-
|
3682 |
-
if (isUndef(factory.resolved) && isUndef(factory.error)) {
|
3683 |
-
factory.loading = true;
|
3684 |
-
forceRender(false);
|
3685 |
-
}
|
3686 |
-
}, res.delay || 200);
|
3687 |
-
}
|
3688 |
-
}
|
3689 |
-
|
3690 |
-
if (isDef(res.timeout)) {
|
3691 |
-
timerTimeout = setTimeout(function () {
|
3692 |
-
timerTimeout = null;
|
3693 |
-
|
3694 |
-
if (isUndef(factory.resolved)) {
|
3695 |
-
reject("timeout (" + res.timeout + "ms)");
|
3696 |
-
}
|
3697 |
-
}, res.timeout);
|
3698 |
-
}
|
3699 |
-
}
|
3700 |
-
}
|
3701 |
-
|
3702 |
-
sync = false; // return in case resolved synchronously
|
3703 |
-
|
3704 |
-
return factory.loading ? factory.loadingComp : factory.resolved;
|
3705 |
-
}
|
3706 |
-
}
|
3707 |
-
/* */
|
3708 |
-
|
3709 |
-
|
3710 |
-
function isAsyncPlaceholder(node) {
|
3711 |
-
return node.isComment && node.asyncFactory;
|
3712 |
-
}
|
3713 |
-
/* */
|
3714 |
-
|
3715 |
-
|
3716 |
-
function getFirstComponentChild(children) {
|
3717 |
-
if (Array.isArray(children)) {
|
3718 |
-
for (var i = 0; i < children.length; i++) {
|
3719 |
-
var c = children[i];
|
3720 |
-
|
3721 |
-
if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
|
3722 |
-
return c;
|
3723 |
-
}
|
3724 |
-
}
|
3725 |
-
}
|
3726 |
-
}
|
3727 |
-
/* */
|
3728 |
-
|
3729 |
-
/* */
|
3730 |
-
|
3731 |
-
|
3732 |
-
function initEvents(vm) {
|
3733 |
-
vm._events = Object.create(null);
|
3734 |
-
vm._hasHookEvent = false; // init parent attached events
|
3735 |
-
|
3736 |
-
var listeners = vm.$options._parentListeners;
|
3737 |
-
|
3738 |
-
if (listeners) {
|
3739 |
-
updateComponentListeners(vm, listeners);
|
3740 |
-
}
|
3741 |
-
}
|
3742 |
-
|
3743 |
-
var target;
|
3744 |
-
|
3745 |
-
function add(event, fn) {
|
3746 |
-
target.$on(event, fn);
|
3747 |
-
}
|
3748 |
-
|
3749 |
-
function remove$1(event, fn) {
|
3750 |
-
target.$off(event, fn);
|
3751 |
-
}
|
3752 |
-
|
3753 |
-
function createOnceHandler(event, fn) {
|
3754 |
-
var _target = target;
|
3755 |
-
return function onceHandler() {
|
3756 |
-
var res = fn.apply(null, arguments);
|
3757 |
-
|
3758 |
-
if (res !== null) {
|
3759 |
-
_target.$off(event, onceHandler);
|
3760 |
-
}
|
3761 |
-
};
|
3762 |
-
}
|
3763 |
-
|
3764 |
-
function updateComponentListeners(vm, listeners, oldListeners) {
|
3765 |
-
target = vm;
|
3766 |
-
updateListeners(listeners, oldListeners || {}, add, remove$1, createOnceHandler, vm);
|
3767 |
-
target = undefined;
|
3768 |
-
}
|
3769 |
-
|
3770 |
-
function eventsMixin(Vue) {
|
3771 |
-
var hookRE = /^hook:/;
|
3772 |
-
|
3773 |
-
Vue.prototype.$on = function (event, fn) {
|
3774 |
-
var vm = this;
|
3775 |
-
|
3776 |
-
if (Array.isArray(event)) {
|
3777 |
-
for (var i = 0, l = event.length; i < l; i++) {
|
3778 |
-
vm.$on(event[i], fn);
|
3779 |
-
}
|
3780 |
-
} else {
|
3781 |
-
(vm._events[event] || (vm._events[event] = [])).push(fn); // optimize hook:event cost by using a boolean flag marked at registration
|
3782 |
-
// instead of a hash lookup
|
3783 |
-
|
3784 |
-
if (hookRE.test(event)) {
|
3785 |
-
vm._hasHookEvent = true;
|
3786 |
-
}
|
3787 |
-
}
|
3788 |
-
|
3789 |
-
return vm;
|
3790 |
-
};
|
3791 |
-
|
3792 |
-
Vue.prototype.$once = function (event, fn) {
|
3793 |
-
var vm = this;
|
3794 |
-
|
3795 |
-
function on() {
|
3796 |
-
vm.$off(event, on);
|
3797 |
-
fn.apply(vm, arguments);
|
3798 |
-
}
|
3799 |
-
|
3800 |
-
on.fn = fn;
|
3801 |
-
vm.$on(event, on);
|
3802 |
-
return vm;
|
3803 |
-
};
|
3804 |
-
|
3805 |
-
Vue.prototype.$off = function (event, fn) {
|
3806 |
-
var vm = this; // all
|
3807 |
-
|
3808 |
-
if (!arguments.length) {
|
3809 |
-
vm._events = Object.create(null);
|
3810 |
-
return vm;
|
3811 |
-
} // array of events
|
3812 |
-
|
3813 |
-
|
3814 |
-
if (Array.isArray(event)) {
|
3815 |
-
for (var i$1 = 0, l = event.length; i$1 < l; i$1++) {
|
3816 |
-
vm.$off(event[i$1], fn);
|
3817 |
-
}
|
3818 |
-
|
3819 |
-
return vm;
|
3820 |
-
} // specific event
|
3821 |
-
|
3822 |
-
|
3823 |
-
var cbs = vm._events[event];
|
3824 |
-
|
3825 |
-
if (!cbs) {
|
3826 |
-
return vm;
|
3827 |
-
}
|
3828 |
-
|
3829 |
-
if (!fn) {
|
3830 |
-
vm._events[event] = null;
|
3831 |
-
return vm;
|
3832 |
-
} // specific handler
|
3833 |
-
|
3834 |
-
|
3835 |
-
var cb;
|
3836 |
-
var i = cbs.length;
|
3837 |
-
|
3838 |
-
while (i--) {
|
3839 |
-
cb = cbs[i];
|
3840 |
-
|
3841 |
-
if (cb === fn || cb.fn === fn) {
|
3842 |
-
cbs.splice(i, 1);
|
3843 |
-
break;
|
3844 |
-
}
|
3845 |
-
}
|
3846 |
-
|
3847 |
-
return vm;
|
3848 |
-
};
|
3849 |
-
|
3850 |
-
Vue.prototype.$emit = function (event) {
|
3851 |
-
var vm = this;
|
3852 |
-
{
|
3853 |
-
var lowerCaseEvent = event.toLowerCase();
|
3854 |
-
|
3855 |
-
if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {
|
3856 |
-
tip("Event \"" + lowerCaseEvent + "\" is emitted in component " + formatComponentName(vm) + " but the handler is registered for \"" + event + "\". " + "Note that HTML attributes are case-insensitive and you cannot use " + "v-on to listen to camelCase events when using in-DOM templates. " + "You should probably use \"" + hyphenate(event) + "\" instead of \"" + event + "\".");
|
3857 |
-
}
|
3858 |
-
}
|
3859 |
-
var cbs = vm._events[event];
|
3860 |
-
|
3861 |
-
if (cbs) {
|
3862 |
-
cbs = cbs.length > 1 ? toArray(cbs) : cbs;
|
3863 |
-
var args = toArray(arguments, 1);
|
3864 |
-
var info = "event handler for \"" + event + "\"";
|
3865 |
-
|
3866 |
-
for (var i = 0, l = cbs.length; i < l; i++) {
|
3867 |
-
invokeWithErrorHandling(cbs[i], vm, args, vm, info);
|
3868 |
-
}
|
3869 |
-
}
|
3870 |
-
|
3871 |
-
return vm;
|
3872 |
-
};
|
3873 |
-
}
|
3874 |
-
/* */
|
3875 |
-
|
3876 |
-
|
3877 |
-
var activeInstance = null;
|
3878 |
-
var isUpdatingChildComponent = false;
|
3879 |
-
|
3880 |
-
function setActiveInstance(vm) {
|
3881 |
-
var prevActiveInstance = activeInstance;
|
3882 |
-
activeInstance = vm;
|
3883 |
-
return function () {
|
3884 |
-
activeInstance = prevActiveInstance;
|
3885 |
-
};
|
3886 |
-
}
|
3887 |
-
|
3888 |
-
function initLifecycle(vm) {
|
3889 |
-
var options = vm.$options; // locate first non-abstract parent
|
3890 |
-
|
3891 |
-
var parent = options.parent;
|
3892 |
-
|
3893 |
-
if (parent && !options["abstract"]) {
|
3894 |
-
while (parent.$options["abstract"] && parent.$parent) {
|
3895 |
-
parent = parent.$parent;
|
3896 |
-
}
|
3897 |
-
|
3898 |
-
parent.$children.push(vm);
|
3899 |
-
}
|
3900 |
-
|
3901 |
-
vm.$parent = parent;
|
3902 |
-
vm.$root = parent ? parent.$root : vm;
|
3903 |
-
vm.$children = [];
|
3904 |
-
vm.$refs = {};
|
3905 |
-
vm._watcher = null;
|
3906 |
-
vm._inactive = null;
|
3907 |
-
vm._directInactive = false;
|
3908 |
-
vm._isMounted = false;
|
3909 |
-
vm._isDestroyed = false;
|
3910 |
-
vm._isBeingDestroyed = false;
|
3911 |
-
}
|
3912 |
-
|
3913 |
-
function lifecycleMixin(Vue) {
|
3914 |
-
Vue.prototype._update = function (vnode, hydrating) {
|
3915 |
-
var vm = this;
|
3916 |
-
var prevEl = vm.$el;
|
3917 |
-
var prevVnode = vm._vnode;
|
3918 |
-
var restoreActiveInstance = setActiveInstance(vm);
|
3919 |
-
vm._vnode = vnode; // Vue.prototype.__patch__ is injected in entry points
|
3920 |
-
// based on the rendering backend used.
|
3921 |
-
|
3922 |
-
if (!prevVnode) {
|
3923 |
-
// initial render
|
3924 |
-
vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false
|
3925 |
-
/* removeOnly */
|
3926 |
-
);
|
3927 |
-
} else {
|
3928 |
-
// updates
|
3929 |
-
vm.$el = vm.__patch__(prevVnode, vnode);
|
3930 |
-
}
|
3931 |
-
|
3932 |
-
restoreActiveInstance(); // update __vue__ reference
|
3933 |
-
|
3934 |
-
if (prevEl) {
|
3935 |
-
prevEl.__vue__ = null;
|
3936 |
-
}
|
3937 |
-
|
3938 |
-
if (vm.$el) {
|
3939 |
-
vm.$el.__vue__ = vm;
|
3940 |
-
} // if parent is an HOC, update its $el as well
|
3941 |
-
|
3942 |
-
|
3943 |
-
if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {
|
3944 |
-
vm.$parent.$el = vm.$el;
|
3945 |
-
} // updated hook is called by the scheduler to ensure that children are
|
3946 |
-
// updated in a parent's updated hook.
|
3947 |
-
|
3948 |
-
};
|
3949 |
-
|
3950 |
-
Vue.prototype.$forceUpdate = function () {
|
3951 |
-
var vm = this;
|
3952 |
-
|
3953 |
-
if (vm._watcher) {
|
3954 |
-
vm._watcher.update();
|
3955 |
-
}
|
3956 |
-
};
|
3957 |
-
|
3958 |
-
Vue.prototype.$destroy = function () {
|
3959 |
-
var vm = this;
|
3960 |
-
|
3961 |
-
if (vm._isBeingDestroyed) {
|
3962 |
-
return;
|
3963 |
-
}
|
3964 |
-
|
3965 |
-
callHook(vm, 'beforeDestroy');
|
3966 |
-
vm._isBeingDestroyed = true; // remove self from parent
|
3967 |
-
|
3968 |
-
var parent = vm.$parent;
|
3969 |
-
|
3970 |
-
if (parent && !parent._isBeingDestroyed && !vm.$options["abstract"]) {
|
3971 |
-
remove(parent.$children, vm);
|
3972 |
-
} // teardown watchers
|
3973 |
-
|
3974 |
-
|
3975 |
-
if (vm._watcher) {
|
3976 |
-
vm._watcher.teardown();
|
3977 |
-
}
|
3978 |
-
|
3979 |
-
var i = vm._watchers.length;
|
3980 |
-
|
3981 |
-
while (i--) {
|
3982 |
-
vm._watchers[i].teardown();
|
3983 |
-
} // remove reference from data ob
|
3984 |
-
// frozen object may not have observer.
|
3985 |
-
|
3986 |
-
|
3987 |
-
if (vm._data.__ob__) {
|
3988 |
-
vm._data.__ob__.vmCount--;
|
3989 |
-
} // call the last hook...
|
3990 |
-
|
3991 |
-
|
3992 |
-
vm._isDestroyed = true; // invoke destroy hooks on current rendered tree
|
3993 |
-
|
3994 |
-
vm.__patch__(vm._vnode, null); // fire destroyed hook
|
3995 |
-
|
3996 |
-
|
3997 |
-
callHook(vm, 'destroyed'); // turn off all instance listeners.
|
3998 |
-
|
3999 |
-
vm.$off(); // remove __vue__ reference
|
4000 |
-
|
4001 |
-
if (vm.$el) {
|
4002 |
-
vm.$el.__vue__ = null;
|
4003 |
-
} // release circular reference (#6759)
|
4004 |
-
|
4005 |
-
|
4006 |
-
if (vm.$vnode) {
|
4007 |
-
vm.$vnode.parent = null;
|
4008 |
-
}
|
4009 |
-
};
|
4010 |
-
}
|
4011 |
-
|
4012 |
-
function mountComponent(vm, el, hydrating) {
|
4013 |
-
vm.$el = el;
|
4014 |
-
|
4015 |
-
if (!vm.$options.render) {
|
4016 |
-
vm.$options.render = createEmptyVNode;
|
4017 |
-
{
|
4018 |
-
/* istanbul ignore if */
|
4019 |
-
if (vm.$options.template && vm.$options.template.charAt(0) !== '#' || vm.$options.el || el) {
|
4020 |
-
warn('You are using the runtime-only build of Vue where the template ' + 'compiler is not available. Either pre-compile the templates into ' + 'render functions, or use the compiler-included build.', vm);
|
4021 |
-
} else {
|
4022 |
-
warn('Failed to mount component: template or render function not defined.', vm);
|
4023 |
-
}
|
4024 |
-
}
|
4025 |
-
}
|
4026 |
-
|
4027 |
-
callHook(vm, 'beforeMount');
|
4028 |
-
var updateComponent;
|
4029 |
-
/* istanbul ignore if */
|
4030 |
-
|
4031 |
-
if (config.performance && mark) {
|
4032 |
-
updateComponent = function updateComponent() {
|
4033 |
-
var name = vm._name;
|
4034 |
-
var id = vm._uid;
|
4035 |
-
var startTag = "vue-perf-start:" + id;
|
4036 |
-
var endTag = "vue-perf-end:" + id;
|
4037 |
-
mark(startTag);
|
4038 |
-
|
4039 |
-
var vnode = vm._render();
|
4040 |
-
|
4041 |
-
mark(endTag);
|
4042 |
-
measure("vue " + name + " render", startTag, endTag);
|
4043 |
-
mark(startTag);
|
4044 |
-
|
4045 |
-
vm._update(vnode, hydrating);
|
4046 |
-
|
4047 |
-
mark(endTag);
|
4048 |
-
measure("vue " + name + " patch", startTag, endTag);
|
4049 |
-
};
|
4050 |
-
} else {
|
4051 |
-
updateComponent = function updateComponent() {
|
4052 |
-
vm._update(vm._render(), hydrating);
|
4053 |
-
};
|
4054 |
-
} // we set this to vm._watcher inside the watcher's constructor
|
4055 |
-
// since the watcher's initial patch may call $forceUpdate (e.g. inside child
|
4056 |
-
// component's mounted hook), which relies on vm._watcher being already defined
|
4057 |
-
|
4058 |
-
|
4059 |
-
new Watcher(vm, updateComponent, noop, {
|
4060 |
-
before: function before() {
|
4061 |
-
if (vm._isMounted && !vm._isDestroyed) {
|
4062 |
-
callHook(vm, 'beforeUpdate');
|
4063 |
-
}
|
4064 |
-
}
|
4065 |
-
}, true
|
4066 |
-
/* isRenderWatcher */
|
4067 |
-
);
|
4068 |
-
hydrating = false; // manually mounted instance, call mounted on self
|
4069 |
-
// mounted is called for render-created child components in its inserted hook
|
4070 |
-
|
4071 |
-
if (vm.$vnode == null) {
|
4072 |
-
vm._isMounted = true;
|
4073 |
-
callHook(vm, 'mounted');
|
4074 |
-
}
|
4075 |
-
|
4076 |
-
return vm;
|
4077 |
-
}
|
4078 |
-
|
4079 |
-
function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {
|
4080 |
-
{
|
4081 |
-
isUpdatingChildComponent = true;
|
4082 |
-
} // determine whether component has slot children
|
4083 |
-
// we need to do this before overwriting $options._renderChildren.
|
4084 |
-
// check if there are dynamic scopedSlots (hand-written or compiled but with
|
4085 |
-
// dynamic slot names). Static scoped slots compiled from template has the
|
4086 |
-
// "$stable" marker.
|
4087 |
-
|
4088 |
-
var newScopedSlots = parentVnode.data.scopedSlots;
|
4089 |
-
var oldScopedSlots = vm.$scopedSlots;
|
4090 |
-
var hasDynamicScopedSlot = !!(newScopedSlots && !newScopedSlots.$stable || oldScopedSlots !== emptyObject && !oldScopedSlots.$stable || newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key); // Any static slot children from the parent may have changed during parent's
|
4091 |
-
// update. Dynamic scoped slots may also have changed. In such cases, a forced
|
4092 |
-
// update is necessary to ensure correctness.
|
4093 |
-
|
4094 |
-
var needsForceUpdate = !!(renderChildren || // has new static slots
|
4095 |
-
vm.$options._renderChildren || // has old static slots
|
4096 |
-
hasDynamicScopedSlot);
|
4097 |
-
vm.$options._parentVnode = parentVnode;
|
4098 |
-
vm.$vnode = parentVnode; // update vm's placeholder node without re-render
|
4099 |
-
|
4100 |
-
if (vm._vnode) {
|
4101 |
-
// update child tree's parent
|
4102 |
-
vm._vnode.parent = parentVnode;
|
4103 |
-
}
|
4104 |
-
|
4105 |
-
vm.$options._renderChildren = renderChildren; // update $attrs and $listeners hash
|
4106 |
-
// these are also reactive so they may trigger child update if the child
|
4107 |
-
// used them during render
|
4108 |
-
|
4109 |
-
vm.$attrs = parentVnode.data.attrs || emptyObject;
|
4110 |
-
vm.$listeners = listeners || emptyObject; // update props
|
4111 |
-
|
4112 |
-
if (propsData && vm.$options.props) {
|
4113 |
-
toggleObserving(false);
|
4114 |
-
var props = vm._props;
|
4115 |
-
var propKeys = vm.$options._propKeys || [];
|
4116 |
-
|
4117 |
-
for (var i = 0; i < propKeys.length; i++) {
|
4118 |
-
var key = propKeys[i];
|
4119 |
-
var propOptions = vm.$options.props; // wtf flow?
|
4120 |
-
|
4121 |
-
props[key] = validateProp(key, propOptions, propsData, vm);
|
4122 |
-
}
|
4123 |
-
|
4124 |
-
toggleObserving(true); // keep a copy of raw propsData
|
4125 |
-
|
4126 |
-
vm.$options.propsData = propsData;
|
4127 |
-
} // update listeners
|
4128 |
-
|
4129 |
-
|
4130 |
-
listeners = listeners || emptyObject;
|
4131 |
-
var oldListeners = vm.$options._parentListeners;
|
4132 |
-
vm.$options._parentListeners = listeners;
|
4133 |
-
updateComponentListeners(vm, listeners, oldListeners); // resolve slots + force update if has children
|
4134 |
-
|
4135 |
-
if (needsForceUpdate) {
|
4136 |
-
vm.$slots = resolveSlots(renderChildren, parentVnode.context);
|
4137 |
-
vm.$forceUpdate();
|
4138 |
-
}
|
4139 |
-
|
4140 |
-
{
|
4141 |
-
isUpdatingChildComponent = false;
|
4142 |
-
}
|
4143 |
-
}
|
4144 |
-
|
4145 |
-
function isInInactiveTree(vm) {
|
4146 |
-
while (vm && (vm = vm.$parent)) {
|
4147 |
-
if (vm._inactive) {
|
4148 |
-
return true;
|
4149 |
-
}
|
4150 |
-
}
|
4151 |
-
|
4152 |
-
return false;
|
4153 |
-
}
|
4154 |
-
|
4155 |
-
function activateChildComponent(vm, direct) {
|
4156 |
-
if (direct) {
|
4157 |
-
vm._directInactive = false;
|
4158 |
-
|
4159 |
-
if (isInInactiveTree(vm)) {
|
4160 |
-
return;
|
4161 |
-
}
|
4162 |
-
} else if (vm._directInactive) {
|
4163 |
-
return;
|
4164 |
-
}
|
4165 |
-
|
4166 |
-
if (vm._inactive || vm._inactive === null) {
|
4167 |
-
vm._inactive = false;
|
4168 |
-
|
4169 |
-
for (var i = 0; i < vm.$children.length; i++) {
|
4170 |
-
activateChildComponent(vm.$children[i]);
|
4171 |
-
}
|
4172 |
-
|
4173 |
-
callHook(vm, 'activated');
|
4174 |
-
}
|
4175 |
-
}
|
4176 |
-
|
4177 |
-
function deactivateChildComponent(vm, direct) {
|
4178 |
-
if (direct) {
|
4179 |
-
vm._directInactive = true;
|
4180 |
-
|
4181 |
-
if (isInInactiveTree(vm)) {
|
4182 |
-
return;
|
4183 |
-
}
|
4184 |
-
}
|
4185 |
-
|
4186 |
-
if (!vm._inactive) {
|
4187 |
-
vm._inactive = true;
|
4188 |
-
|
4189 |
-
for (var i = 0; i < vm.$children.length; i++) {
|
4190 |
-
deactivateChildComponent(vm.$children[i]);
|
4191 |
-
}
|
4192 |
-
|
4193 |
-
callHook(vm, 'deactivated');
|
4194 |
-
}
|
4195 |
-
}
|
4196 |
-
|
4197 |
-
function callHook(vm, hook) {
|
4198 |
-
// #7573 disable dep collection when invoking lifecycle hooks
|
4199 |
-
pushTarget();
|
4200 |
-
var handlers = vm.$options[hook];
|
4201 |
-
var info = hook + " hook";
|
4202 |
-
|
4203 |
-
if (handlers) {
|
4204 |
-
for (var i = 0, j = handlers.length; i < j; i++) {
|
4205 |
-
invokeWithErrorHandling(handlers[i], vm, null, vm, info);
|
4206 |
-
}
|
4207 |
-
}
|
4208 |
-
|
4209 |
-
if (vm._hasHookEvent) {
|
4210 |
-
vm.$emit('hook:' + hook);
|
4211 |
-
}
|
4212 |
-
|
4213 |
-
popTarget();
|
4214 |
-
}
|
4215 |
-
/* */
|
4216 |
-
|
4217 |
-
|
4218 |
-
var MAX_UPDATE_COUNT = 100;
|
4219 |
-
var queue = [];
|
4220 |
-
var activatedChildren = [];
|
4221 |
-
var has = {};
|
4222 |
-
var circular = {};
|
4223 |
-
var waiting = false;
|
4224 |
-
var flushing = false;
|
4225 |
-
var index = 0;
|
4226 |
-
/**
|
4227 |
-
* Reset the scheduler's state.
|
4228 |
-
*/
|
4229 |
-
|
4230 |
-
function resetSchedulerState() {
|
4231 |
-
index = queue.length = activatedChildren.length = 0;
|
4232 |
-
has = {};
|
4233 |
-
{
|
4234 |
-
circular = {};
|
4235 |
-
}
|
4236 |
-
waiting = flushing = false;
|
4237 |
-
} // Async edge case #6566 requires saving the timestamp when event listeners are
|
4238 |
-
// attached. However, calling performance.now() has a perf overhead especially
|
4239 |
-
// if the page has thousands of event listeners. Instead, we take a timestamp
|
4240 |
-
// every time the scheduler flushes and use that for all event listeners
|
4241 |
-
// attached during that flush.
|
4242 |
-
|
4243 |
-
|
4244 |
-
var currentFlushTimestamp = 0; // Async edge case fix requires storing an event listener's attach timestamp.
|
4245 |
-
|
4246 |
-
var getNow = Date.now; // Determine what event timestamp the browser is using. Annoyingly, the
|
4247 |
-
// timestamp can either be hi-res (relative to page load) or low-res
|
4248 |
-
// (relative to UNIX epoch), so in order to compare time we have to use the
|
4249 |
-
// same timestamp type when saving the flush timestamp.
|
4250 |
-
// All IE versions use low-res event timestamps, and have problematic clock
|
4251 |
-
// implementations (#9632)
|
4252 |
-
|
4253 |
-
if (inBrowser && !isIE) {
|
4254 |
-
var performance = window.performance;
|
4255 |
-
|
4256 |
-
if (performance && typeof performance.now === 'function' && getNow() > document.createEvent('Event').timeStamp) {
|
4257 |
-
// if the event timestamp, although evaluated AFTER the Date.now(), is
|
4258 |
-
// smaller than it, it means the event is using a hi-res timestamp,
|
4259 |
-
// and we need to use the hi-res version for event listener timestamps as
|
4260 |
-
// well.
|
4261 |
-
getNow = function getNow() {
|
4262 |
-
return performance.now();
|
4263 |
-
};
|
4264 |
-
}
|
4265 |
-
}
|
4266 |
-
/**
|
4267 |
-
* Flush both queues and run the watchers.
|
4268 |
-
*/
|
4269 |
-
|
4270 |
-
|
4271 |
-
function flushSchedulerQueue() {
|
4272 |
-
currentFlushTimestamp = getNow();
|
4273 |
-
flushing = true;
|
4274 |
-
var watcher, id; // Sort queue before flush.
|
4275 |
-
// This ensures that:
|
4276 |
-
// 1. Components are updated from parent to child. (because parent is always
|
4277 |
-
// created before the child)
|
4278 |
-
// 2. A component's user watchers are run before its render watcher (because
|
4279 |
-
// user watchers are created before the render watcher)
|
4280 |
-
// 3. If a component is destroyed during a parent component's watcher run,
|
4281 |
-
// its watchers can be skipped.
|
4282 |
-
|
4283 |
-
queue.sort(function (a, b) {
|
4284 |
-
return a.id - b.id;
|
4285 |
-
}); // do not cache length because more watchers might be pushed
|
4286 |
-
// as we run existing watchers
|
4287 |
-
|
4288 |
-
for (index = 0; index < queue.length; index++) {
|
4289 |
-
watcher = queue[index];
|
4290 |
-
|
4291 |
-
if (watcher.before) {
|
4292 |
-
watcher.before();
|
4293 |
-
}
|
4294 |
-
|
4295 |
-
id = watcher.id;
|
4296 |
-
has[id] = null;
|
4297 |
-
watcher.run(); // in dev build, check and stop circular updates.
|
4298 |
-
|
4299 |
-
if (has[id] != null) {
|
4300 |
-
circular[id] = (circular[id] || 0) + 1;
|
4301 |
-
|
4302 |
-
if (circular[id] > MAX_UPDATE_COUNT) {
|
4303 |
-
warn('You may have an infinite update loop ' + (watcher.user ? "in watcher with expression \"" + watcher.expression + "\"" : "in a component render function."), watcher.vm);
|
4304 |
-
break;
|
4305 |
-
}
|
4306 |
-
}
|
4307 |
-
} // keep copies of post queues before resetting state
|
4308 |
-
|
4309 |
-
|
4310 |
-
var activatedQueue = activatedChildren.slice();
|
4311 |
-
var updatedQueue = queue.slice();
|
4312 |
-
resetSchedulerState(); // call component updated and activated hooks
|
4313 |
-
|
4314 |
-
callActivatedHooks(activatedQueue);
|
4315 |
-
callUpdatedHooks(updatedQueue); // devtool hook
|
4316 |
-
|
4317 |
-
/* istanbul ignore if */
|
4318 |
-
|
4319 |
-
if (devtools && config.devtools) {
|
4320 |
-
devtools.emit('flush');
|
4321 |
-
}
|
4322 |
-
}
|
4323 |
-
|
4324 |
-
function callUpdatedHooks(queue) {
|
4325 |
-
var i = queue.length;
|
4326 |
-
|
4327 |
-
while (i--) {
|
4328 |
-
var watcher = queue[i];
|
4329 |
-
var vm = watcher.vm;
|
4330 |
-
|
4331 |
-
if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {
|
4332 |
-
callHook(vm, 'updated');
|
4333 |
-
}
|
4334 |
-
}
|
4335 |
-
}
|
4336 |
-
/**
|
4337 |
-
* Queue a kept-alive component that was activated during patch.
|
4338 |
-
* The queue will be processed after the entire tree has been patched.
|
4339 |
-
*/
|
4340 |
-
|
4341 |
-
|
4342 |
-
function queueActivatedComponent(vm) {
|
4343 |
-
// setting _inactive to false here so that a render function can
|
4344 |
-
// rely on checking whether it's in an inactive tree (e.g. router-view)
|
4345 |
-
vm._inactive = false;
|
4346 |
-
activatedChildren.push(vm);
|
4347 |
-
}
|
4348 |
-
|
4349 |
-
function callActivatedHooks(queue) {
|
4350 |
-
for (var i = 0; i < queue.length; i++) {
|
4351 |
-
queue[i]._inactive = true;
|
4352 |
-
activateChildComponent(queue[i], true
|
4353 |
-
/* true */
|
4354 |
-
);
|
4355 |
-
}
|
4356 |
-
}
|
4357 |
-
/**
|
4358 |
-
* Push a watcher into the watcher queue.
|
4359 |
-
* Jobs with duplicate IDs will be skipped unless it's
|
4360 |
-
* pushed when the queue is being flushed.
|
4361 |
-
*/
|
4362 |
-
|
4363 |
-
|
4364 |
-
function queueWatcher(watcher) {
|
4365 |
-
var id = watcher.id;
|
4366 |
-
|
4367 |
-
if (has[id] == null) {
|
4368 |
-
has[id] = true;
|
4369 |
-
|
4370 |
-
if (!flushing) {
|
4371 |
-
queue.push(watcher);
|
4372 |
-
} else {
|
4373 |
-
// if already flushing, splice the watcher based on its id
|
4374 |
-
// if already past its id, it will be run next immediately.
|
4375 |
-
var i = queue.length - 1;
|
4376 |
-
|
4377 |
-
while (i > index && queue[i].id > watcher.id) {
|
4378 |
-
i--;
|
4379 |
-
}
|
4380 |
-
|
4381 |
-
queue.splice(i + 1, 0, watcher);
|
4382 |
-
} // queue the flush
|
4383 |
-
|
4384 |
-
|
4385 |
-
if (!waiting) {
|
4386 |
-
waiting = true;
|
4387 |
-
|
4388 |
-
if (!config.async) {
|
4389 |
-
flushSchedulerQueue();
|
4390 |
-
return;
|
4391 |
-
}
|
4392 |
-
|
4393 |
-
nextTick(flushSchedulerQueue);
|
4394 |
-
}
|
4395 |
-
}
|
4396 |
-
}
|
4397 |
-
/* */
|
4398 |
-
|
4399 |
-
|
4400 |
-
var uid$2 = 0;
|
4401 |
-
/**
|
4402 |
-
* A watcher parses an expression, collects dependencies,
|
4403 |
-
* and fires callback when the expression value changes.
|
4404 |
-
* This is used for both the $watch() api and directives.
|
4405 |
-
*/
|
4406 |
-
|
4407 |
-
var Watcher = function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {
|
4408 |
-
this.vm = vm;
|
4409 |
-
|
4410 |
-
if (isRenderWatcher) {
|
4411 |
-
vm._watcher = this;
|
4412 |
-
}
|
4413 |
-
|
4414 |
-
vm._watchers.push(this); // options
|
4415 |
-
|
4416 |
-
|
4417 |
-
if (options) {
|
4418 |
-
this.deep = !!options.deep;
|
4419 |
-
this.user = !!options.user;
|
4420 |
-
this.lazy = !!options.lazy;
|
4421 |
-
this.sync = !!options.sync;
|
4422 |
-
this.before = options.before;
|
4423 |
-
} else {
|
4424 |
-
this.deep = this.user = this.lazy = this.sync = false;
|
4425 |
-
}
|
4426 |
-
|
4427 |
-
this.cb = cb;
|
4428 |
-
this.id = ++uid$2; // uid for batching
|
4429 |
-
|
4430 |
-
this.active = true;
|
4431 |
-
this.dirty = this.lazy; // for lazy watchers
|
4432 |
-
|
4433 |
-
this.deps = [];
|
4434 |
-
this.newDeps = [];
|
4435 |
-
this.depIds = new _Set();
|
4436 |
-
this.newDepIds = new _Set();
|
4437 |
-
this.expression = expOrFn.toString(); // parse expression for getter
|
4438 |
-
|
4439 |
-
if (typeof expOrFn === 'function') {
|
4440 |
-
this.getter = expOrFn;
|
4441 |
-
} else {
|
4442 |
-
this.getter = parsePath(expOrFn);
|
4443 |
-
|
4444 |
-
if (!this.getter) {
|
4445 |
-
this.getter = noop;
|
4446 |
-
warn("Failed watching path: \"" + expOrFn + "\" " + 'Watcher only accepts simple dot-delimited paths. ' + 'For full control, use a function instead.', vm);
|
4447 |
-
}
|
4448 |
-
}
|
4449 |
-
|
4450 |
-
this.value = this.lazy ? undefined : this.get();
|
4451 |
-
};
|
4452 |
-
/**
|
4453 |
-
* Evaluate the getter, and re-collect dependencies.
|
4454 |
-
*/
|
4455 |
-
|
4456 |
-
|
4457 |
-
Watcher.prototype.get = function get() {
|
4458 |
-
pushTarget(this);
|
4459 |
-
var value;
|
4460 |
-
var vm = this.vm;
|
4461 |
-
|
4462 |
-
try {
|
4463 |
-
value = this.getter.call(vm, vm);
|
4464 |
-
} catch (e) {
|
4465 |
-
if (this.user) {
|
4466 |
-
handleError(e, vm, "getter for watcher \"" + this.expression + "\"");
|
4467 |
-
} else {
|
4468 |
-
throw e;
|
4469 |
-
}
|
4470 |
-
} finally {
|
4471 |
-
// "touch" every property so they are all tracked as
|
4472 |
-
// dependencies for deep watching
|
4473 |
-
if (this.deep) {
|
4474 |
-
traverse(value);
|
4475 |
-
}
|
4476 |
-
|
4477 |
-
popTarget();
|
4478 |
-
this.cleanupDeps();
|
4479 |
-
}
|
4480 |
-
|
4481 |
-
return value;
|
4482 |
-
};
|
4483 |
-
/**
|
4484 |
-
* Add a dependency to this directive.
|
4485 |
-
*/
|
4486 |
-
|
4487 |
-
|
4488 |
-
Watcher.prototype.addDep = function addDep(dep) {
|
4489 |
-
var id = dep.id;
|
4490 |
-
|
4491 |
-
if (!this.newDepIds.has(id)) {
|
4492 |
-
this.newDepIds.add(id);
|
4493 |
-
this.newDeps.push(dep);
|
4494 |
-
|
4495 |
-
if (!this.depIds.has(id)) {
|
4496 |
-
dep.addSub(this);
|
4497 |
-
}
|
4498 |
-
}
|
4499 |
-
};
|
4500 |
-
/**
|
4501 |
-
* Clean up for dependency collection.
|
4502 |
-
*/
|
4503 |
-
|
4504 |
-
|
4505 |
-
Watcher.prototype.cleanupDeps = function cleanupDeps() {
|
4506 |
-
var i = this.deps.length;
|
4507 |
-
|
4508 |
-
while (i--) {
|
4509 |
-
var dep = this.deps[i];
|
4510 |
-
|
4511 |
-
if (!this.newDepIds.has(dep.id)) {
|
4512 |
-
dep.removeSub(this);
|
4513 |
-
}
|
4514 |
-
}
|
4515 |
-
|
4516 |
-
var tmp = this.depIds;
|
4517 |
-
this.depIds = this.newDepIds;
|
4518 |
-
this.newDepIds = tmp;
|
4519 |
-
this.newDepIds.clear();
|
4520 |
-
tmp = this.deps;
|
4521 |
-
this.deps = this.newDeps;
|
4522 |
-
this.newDeps = tmp;
|
4523 |
-
this.newDeps.length = 0;
|
4524 |
-
};
|
4525 |
-
/**
|
4526 |
-
* Subscriber interface.
|
4527 |
-
* Will be called when a dependency changes.
|
4528 |
-
*/
|
4529 |
-
|
4530 |
-
|
4531 |
-
Watcher.prototype.update = function update() {
|
4532 |
-
/* istanbul ignore else */
|
4533 |
-
if (this.lazy) {
|
4534 |
-
this.dirty = true;
|
4535 |
-
} else if (this.sync) {
|
4536 |
-
this.run();
|
4537 |
-
} else {
|
4538 |
-
queueWatcher(this);
|
4539 |
-
}
|
4540 |
-
};
|
4541 |
-
/**
|
4542 |
-
* Scheduler job interface.
|
4543 |
-
* Will be called by the scheduler.
|
4544 |
-
*/
|
4545 |
-
|
4546 |
-
|
4547 |
-
Watcher.prototype.run = function run() {
|
4548 |
-
if (this.active) {
|
4549 |
-
var value = this.get();
|
4550 |
-
|
4551 |
-
if (value !== this.value || // Deep watchers and watchers on Object/Arrays should fire even
|
4552 |
-
// when the value is the same, because the value may
|
4553 |
-
// have mutated.
|
4554 |
-
isObject(value) || this.deep) {
|
4555 |
-
// set new value
|
4556 |
-
var oldValue = this.value;
|
4557 |
-
this.value = value;
|
4558 |
-
|
4559 |
-
if (this.user) {
|
4560 |
-
try {
|
4561 |
-
this.cb.call(this.vm, value, oldValue);
|
4562 |
-
} catch (e) {
|
4563 |
-
handleError(e, this.vm, "callback for watcher \"" + this.expression + "\"");
|
4564 |
-
}
|
4565 |
-
} else {
|
4566 |
-
this.cb.call(this.vm, value, oldValue);
|
4567 |
-
}
|
4568 |
-
}
|
4569 |
-
}
|
4570 |
-
};
|
4571 |
-
/**
|
4572 |
-
* Evaluate the value of the watcher.
|
4573 |
-
* This only gets called for lazy watchers.
|
4574 |
-
*/
|
4575 |
-
|
4576 |
-
|
4577 |
-
Watcher.prototype.evaluate = function evaluate() {
|
4578 |
-
this.value = this.get();
|
4579 |
-
this.dirty = false;
|
4580 |
-
};
|
4581 |
-
/**
|
4582 |
-
* Depend on all deps collected by this watcher.
|
4583 |
-
*/
|
4584 |
-
|
4585 |
-
|
4586 |
-
Watcher.prototype.depend = function depend() {
|
4587 |
-
var i = this.deps.length;
|
4588 |
-
|
4589 |
-
while (i--) {
|
4590 |
-
this.deps[i].depend();
|
4591 |
-
}
|
4592 |
-
};
|
4593 |
-
/**
|
4594 |
-
* Remove self from all dependencies' subscriber list.
|
4595 |
-
*/
|
4596 |
-
|
4597 |
-
|
4598 |
-
Watcher.prototype.teardown = function teardown() {
|
4599 |
-
if (this.active) {
|
4600 |
-
// remove self from vm's watcher list
|
4601 |
-
// this is a somewhat expensive operation so we skip it
|
4602 |
-
// if the vm is being destroyed.
|
4603 |
-
if (!this.vm._isBeingDestroyed) {
|
4604 |
-
remove(this.vm._watchers, this);
|
4605 |
-
}
|
4606 |
-
|
4607 |
-
var i = this.deps.length;
|
4608 |
-
|
4609 |
-
while (i--) {
|
4610 |
-
this.deps[i].removeSub(this);
|
4611 |
-
}
|
4612 |
-
|
4613 |
-
this.active = false;
|
4614 |
-
}
|
4615 |
-
};
|
4616 |
-
/* */
|
4617 |
-
|
4618 |
-
|
4619 |
-
var sharedPropertyDefinition = {
|
4620 |
-
enumerable: true,
|
4621 |
-
configurable: true,
|
4622 |
-
get: noop,
|
4623 |
-
set: noop
|
4624 |
-
};
|
4625 |
-
|
4626 |
-
function proxy(target, sourceKey, key) {
|
4627 |
-
sharedPropertyDefinition.get = function proxyGetter() {
|
4628 |
-
return this[sourceKey][key];
|
4629 |
-
};
|
4630 |
-
|
4631 |
-
sharedPropertyDefinition.set = function proxySetter(val) {
|
4632 |
-
this[sourceKey][key] = val;
|
4633 |
-
};
|
4634 |
-
|
4635 |
-
Object.defineProperty(target, key, sharedPropertyDefinition);
|
4636 |
-
}
|
4637 |
-
|
4638 |
-
function initState(vm) {
|
4639 |
-
vm._watchers = [];
|
4640 |
-
var opts = vm.$options;
|
4641 |
-
|
4642 |
-
if (opts.props) {
|
4643 |
-
initProps(vm, opts.props);
|
4644 |
-
}
|
4645 |
-
|
4646 |
-
if (opts.methods) {
|
4647 |
-
initMethods(vm, opts.methods);
|
4648 |
-
}
|
4649 |
-
|
4650 |
-
if (opts.data) {
|
4651 |
-
initData(vm);
|
4652 |
-
} else {
|
4653 |
-
observe(vm._data = {}, true
|
4654 |
-
/* asRootData */
|
4655 |
-
);
|
4656 |
-
}
|
4657 |
-
|
4658 |
-
if (opts.computed) {
|
4659 |
-
initComputed(vm, opts.computed);
|
4660 |
-
}
|
4661 |
-
|
4662 |
-
if (opts.watch && opts.watch !== nativeWatch) {
|
4663 |
-
initWatch(vm, opts.watch);
|
4664 |
-
}
|
4665 |
-
}
|
4666 |
-
|
4667 |
-
function initProps(vm, propsOptions) {
|
4668 |
-
var propsData = vm.$options.propsData || {};
|
4669 |
-
var props = vm._props = {}; // cache prop keys so that future props updates can iterate using Array
|
4670 |
-
// instead of dynamic object key enumeration.
|
4671 |
-
|
4672 |
-
var keys = vm.$options._propKeys = [];
|
4673 |
-
var isRoot = !vm.$parent; // root instance props should be converted
|
4674 |
-
|
4675 |
-
if (!isRoot) {
|
4676 |
-
toggleObserving(false);
|
4677 |
-
}
|
4678 |
-
|
4679 |
-
var loop = function loop(key) {
|
4680 |
-
keys.push(key);
|
4681 |
-
var value = validateProp(key, propsOptions, propsData, vm);
|
4682 |
-
/* istanbul ignore else */
|
4683 |
-
|
4684 |
-
{
|
4685 |
-
var hyphenatedKey = hyphenate(key);
|
4686 |
-
|
4687 |
-
if (isReservedAttribute(hyphenatedKey) || config.isReservedAttr(hyphenatedKey)) {
|
4688 |
-
warn("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop.", vm);
|
4689 |
-
}
|
4690 |
-
|
4691 |
-
defineReactive$$1(props, key, value, function () {
|
4692 |
-
if (!isRoot && !isUpdatingChildComponent) {
|
4693 |
-
warn("Avoid mutating a prop directly since the value will be " + "overwritten whenever the parent component re-renders. " + "Instead, use a data or computed property based on the prop's " + "value. Prop being mutated: \"" + key + "\"", vm);
|
4694 |
-
}
|
4695 |
-
});
|
4696 |
-
} // static props are already proxied on the component's prototype
|
4697 |
-
// during Vue.extend(). We only need to proxy props defined at
|
4698 |
-
// instantiation here.
|
4699 |
-
|
4700 |
-
if (!(key in vm)) {
|
4701 |
-
proxy(vm, "_props", key);
|
4702 |
-
}
|
4703 |
-
};
|
4704 |
-
|
4705 |
-
for (var key in propsOptions) {
|
4706 |
-
loop(key);
|
4707 |
-
}
|
4708 |
-
|
4709 |
-
toggleObserving(true);
|
4710 |
-
}
|
4711 |
-
|
4712 |
-
function initData(vm) {
|
4713 |
-
var data = vm.$options.data;
|
4714 |
-
data = vm._data = typeof data === 'function' ? getData(data, vm) : data || {};
|
4715 |
-
|
4716 |
-
if (!isPlainObject(data)) {
|
4717 |
-
data = {};
|
4718 |
-
warn('data functions should return an object:\n' + 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);
|
4719 |
-
} // proxy data on instance
|
4720 |
-
|
4721 |
-
|
4722 |
-
var keys = Object.keys(data);
|
4723 |
-
var props = vm.$options.props;
|
4724 |
-
var methods = vm.$options.methods;
|
4725 |
-
var i = keys.length;
|
4726 |
-
|
4727 |
-
while (i--) {
|
4728 |
-
var key = keys[i];
|
4729 |
-
{
|
4730 |
-
if (methods && hasOwn(methods, key)) {
|
4731 |
-
warn("Method \"" + key + "\" has already been defined as a data property.", vm);
|
4732 |
-
}
|
4733 |
-
}
|
4734 |
-
|
4735 |
-
if (props && hasOwn(props, key)) {
|
4736 |
-
warn("The data property \"" + key + "\" is already declared as a prop. " + "Use prop default value instead.", vm);
|
4737 |
-
} else if (!isReserved(key)) {
|
4738 |
-
proxy(vm, "_data", key);
|
4739 |
-
}
|
4740 |
-
} // observe data
|
4741 |
-
|
4742 |
-
|
4743 |
-
observe(data, true
|
4744 |
-
/* asRootData */
|
4745 |
-
);
|
4746 |
-
}
|
4747 |
-
|
4748 |
-
function getData(data, vm) {
|
4749 |
-
// #7573 disable dep collection when invoking data getters
|
4750 |
-
pushTarget();
|
4751 |
-
|
4752 |
-
try {
|
4753 |
-
return data.call(vm, vm);
|
4754 |
-
} catch (e) {
|
4755 |
-
handleError(e, vm, "data()");
|
4756 |
-
return {};
|
4757 |
-
} finally {
|
4758 |
-
popTarget();
|
4759 |
-
}
|
4760 |
-
}
|
4761 |
-
|
4762 |
-
var computedWatcherOptions = {
|
4763 |
-
lazy: true
|
4764 |
-
};
|
4765 |
-
|
4766 |
-
function initComputed(vm, computed) {
|
4767 |
-
// $flow-disable-line
|
4768 |
-
var watchers = vm._computedWatchers = Object.create(null); // computed properties are just getters during SSR
|
4769 |
-
|
4770 |
-
var isSSR = isServerRendering();
|
4771 |
-
|
4772 |
-
for (var key in computed) {
|
4773 |
-
var userDef = computed[key];
|
4774 |
-
var getter = typeof userDef === 'function' ? userDef : userDef.get;
|
4775 |
-
|
4776 |
-
if (getter == null) {
|
4777 |
-
warn("Getter is missing for computed property \"" + key + "\".", vm);
|
4778 |
-
}
|
4779 |
-
|
4780 |
-
if (!isSSR) {
|
4781 |
-
// create internal watcher for the computed property.
|
4782 |
-
watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);
|
4783 |
-
} // component-defined computed properties are already defined on the
|
4784 |
-
// component prototype. We only need to define computed properties defined
|
4785 |
-
// at instantiation here.
|
4786 |
-
|
4787 |
-
|
4788 |
-
if (!(key in vm)) {
|
4789 |
-
defineComputed(vm, key, userDef);
|
4790 |
-
} else {
|
4791 |
-
if (key in vm.$data) {
|
4792 |
-
warn("The computed property \"" + key + "\" is already defined in data.", vm);
|
4793 |
-
} else if (vm.$options.props && key in vm.$options.props) {
|
4794 |
-
warn("The computed property \"" + key + "\" is already defined as a prop.", vm);
|
4795 |
-
}
|
4796 |
-
}
|
4797 |
-
}
|
4798 |
-
}
|
4799 |
-
|
4800 |
-
function defineComputed(target, key, userDef) {
|
4801 |
-
var shouldCache = !isServerRendering();
|
4802 |
-
|
4803 |
-
if (typeof userDef === 'function') {
|
4804 |
-
sharedPropertyDefinition.get = shouldCache ? createComputedGetter(key) : createGetterInvoker(userDef);
|
4805 |
-
sharedPropertyDefinition.set = noop;
|
4806 |
-
} else {
|
4807 |
-
sharedPropertyDefinition.get = userDef.get ? shouldCache && userDef.cache !== false ? createComputedGetter(key) : createGetterInvoker(userDef.get) : noop;
|
4808 |
-
sharedPropertyDefinition.set = userDef.set || noop;
|
4809 |
-
}
|
4810 |
-
|
4811 |
-
if (sharedPropertyDefinition.set === noop) {
|
4812 |
-
sharedPropertyDefinition.set = function () {
|
4813 |
-
warn("Computed property \"" + key + "\" was assigned to but it has no setter.", this);
|
4814 |
-
};
|
4815 |
-
}
|
4816 |
-
|
4817 |
-
Object.defineProperty(target, key, sharedPropertyDefinition);
|
4818 |
-
}
|
4819 |
-
|
4820 |
-
function createComputedGetter(key) {
|
4821 |
-
return function computedGetter() {
|
4822 |
-
var watcher = this._computedWatchers && this._computedWatchers[key];
|
4823 |
-
|
4824 |
-
if (watcher) {
|
4825 |
-
if (watcher.dirty) {
|
4826 |
-
watcher.evaluate();
|
4827 |
-
}
|
4828 |
-
|
4829 |
-
if (Dep.target) {
|
4830 |
-
watcher.depend();
|
4831 |
-
}
|
4832 |
-
|
4833 |
-
return watcher.value;
|
4834 |
-
}
|
4835 |
-
};
|
4836 |
-
}
|
4837 |
-
|
4838 |
-
function createGetterInvoker(fn) {
|
4839 |
-
return function computedGetter() {
|
4840 |
-
return fn.call(this, this);
|
4841 |
-
};
|
4842 |
-
}
|
4843 |
-
|
4844 |
-
function initMethods(vm, methods) {
|
4845 |
-
var props = vm.$options.props;
|
4846 |
-
|
4847 |
-
for (var key in methods) {
|
4848 |
-
{
|
4849 |
-
if (typeof methods[key] !== 'function') {
|
4850 |
-
warn("Method \"" + key + "\" has type \"" + _typeof(methods[key]) + "\" in the component definition. " + "Did you reference the function correctly?", vm);
|
4851 |
-
}
|
4852 |
-
|
4853 |
-
if (props && hasOwn(props, key)) {
|
4854 |
-
warn("Method \"" + key + "\" has already been defined as a prop.", vm);
|
4855 |
-
}
|
4856 |
-
|
4857 |
-
if (key in vm && isReserved(key)) {
|
4858 |
-
warn("Method \"" + key + "\" conflicts with an existing Vue instance method. " + "Avoid defining component methods that start with _ or $.");
|
4859 |
-
}
|
4860 |
-
}
|
4861 |
-
vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);
|
4862 |
-
}
|
4863 |
-
}
|
4864 |
-
|
4865 |
-
function initWatch(vm, watch) {
|
4866 |
-
for (var key in watch) {
|
4867 |
-
var handler = watch[key];
|
4868 |
-
|
4869 |
-
if (Array.isArray(handler)) {
|
4870 |
-
for (var i = 0; i < handler.length; i++) {
|
4871 |
-
createWatcher(vm, key, handler[i]);
|
4872 |
-
}
|
4873 |
-
} else {
|
4874 |
-
createWatcher(vm, key, handler);
|
4875 |
-
}
|
4876 |
-
}
|
4877 |
-
}
|
4878 |
-
|
4879 |
-
function createWatcher(vm, expOrFn, handler, options) {
|
4880 |
-
if (isPlainObject(handler)) {
|
4881 |
-
options = handler;
|
4882 |
-
handler = handler.handler;
|
4883 |
-
}
|
4884 |
-
|
4885 |
-
if (typeof handler === 'string') {
|
4886 |
-
handler = vm[handler];
|
4887 |
-
}
|
4888 |
-
|
4889 |
-
return vm.$watch(expOrFn, handler, options);
|
4890 |
-
}
|
4891 |
-
|
4892 |
-
function stateMixin(Vue) {
|
4893 |
-
// flow somehow has problems with directly declared definition object
|
4894 |
-
// when using Object.defineProperty, so we have to procedurally build up
|
4895 |
-
// the object here.
|
4896 |
-
var dataDef = {};
|
4897 |
-
|
4898 |
-
dataDef.get = function () {
|
4899 |
-
return this._data;
|
4900 |
-
};
|
4901 |
-
|
4902 |
-
var propsDef = {};
|
4903 |
-
|
4904 |
-
propsDef.get = function () {
|
4905 |
-
return this._props;
|
4906 |
-
};
|
4907 |
-
|
4908 |
-
{
|
4909 |
-
dataDef.set = function () {
|
4910 |
-
warn('Avoid replacing instance root $data. ' + 'Use nested data properties instead.', this);
|
4911 |
-
};
|
4912 |
-
|
4913 |
-
propsDef.set = function () {
|
4914 |
-
warn("$props is readonly.", this);
|
4915 |
-
};
|
4916 |
-
}
|
4917 |
-
Object.defineProperty(Vue.prototype, '$data', dataDef);
|
4918 |
-
Object.defineProperty(Vue.prototype, '$props', propsDef);
|
4919 |
-
Vue.prototype.$set = set;
|
4920 |
-
Vue.prototype.$delete = del;
|
4921 |
-
|
4922 |
-
Vue.prototype.$watch = function (expOrFn, cb, options) {
|
4923 |
-
var vm = this;
|
4924 |
-
|
4925 |
-
if (isPlainObject(cb)) {
|
4926 |
-
return createWatcher(vm, expOrFn, cb, options);
|
4927 |
-
}
|
4928 |
-
|
4929 |
-
options = options || {};
|
4930 |
-
options.user = true;
|
4931 |
-
var watcher = new Watcher(vm, expOrFn, cb, options);
|
4932 |
-
|
4933 |
-
if (options.immediate) {
|
4934 |
-
try {
|
4935 |
-
cb.call(vm, watcher.value);
|
4936 |
-
} catch (error) {
|
4937 |
-
handleError(error, vm, "callback for immediate watcher \"" + watcher.expression + "\"");
|
4938 |
-
}
|
4939 |
-
}
|
4940 |
-
|
4941 |
-
return function unwatchFn() {
|
4942 |
-
watcher.teardown();
|
4943 |
-
};
|
4944 |
-
};
|
4945 |
-
}
|
4946 |
-
/* */
|
4947 |
-
|
4948 |
-
|
4949 |
-
var uid$3 = 0;
|
4950 |
-
|
4951 |
-
function initMixin(Vue) {
|
4952 |
-
Vue.prototype._init = function (options) {
|
4953 |
-
var vm = this; // a uid
|
4954 |
-
|
4955 |
-
vm._uid = uid$3++;
|
4956 |
-
var startTag, endTag;
|
4957 |
-
/* istanbul ignore if */
|
4958 |
-
|
4959 |
-
if (config.performance && mark) {
|
4960 |
-
startTag = "vue-perf-start:" + vm._uid;
|
4961 |
-
endTag = "vue-perf-end:" + vm._uid;
|
4962 |
-
mark(startTag);
|
4963 |
-
} // a flag to avoid this being observed
|
4964 |
-
|
4965 |
-
|
4966 |
-
vm._isVue = true; // merge options
|
4967 |
-
|
4968 |
-
if (options && options._isComponent) {
|
4969 |
-
// optimize internal component instantiation
|
4970 |
-
// since dynamic options merging is pretty slow, and none of the
|
4971 |
-
// internal component options needs special treatment.
|
4972 |
-
initInternalComponent(vm, options);
|
4973 |
-
} else {
|
4974 |
-
vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);
|
4975 |
-
}
|
4976 |
-
/* istanbul ignore else */
|
4977 |
-
|
4978 |
-
|
4979 |
-
{
|
4980 |
-
initProxy(vm);
|
4981 |
-
} // expose real self
|
4982 |
-
|
4983 |
-
vm._self = vm;
|
4984 |
-
initLifecycle(vm);
|
4985 |
-
initEvents(vm);
|
4986 |
-
initRender(vm);
|
4987 |
-
callHook(vm, 'beforeCreate');
|
4988 |
-
initInjections(vm); // resolve injections before data/props
|
4989 |
-
|
4990 |
-
initState(vm);
|
4991 |
-
initProvide(vm); // resolve provide after data/props
|
4992 |
-
|
4993 |
-
callHook(vm, 'created');
|
4994 |
-
/* istanbul ignore if */
|
4995 |
-
|
4996 |
-
if (config.performance && mark) {
|
4997 |
-
vm._name = formatComponentName(vm, false);
|
4998 |
-
mark(endTag);
|
4999 |
-
measure("vue " + vm._name + " init", startTag, endTag);
|
5000 |
-
}
|
5001 |
-
|
5002 |
-
if (vm.$options.el) {
|
5003 |
-
vm.$mount(vm.$options.el);
|
5004 |
-
}
|
5005 |
-
};
|
5006 |
-
}
|
5007 |
-
|
5008 |
-
function initInternalComponent(vm, options) {
|
5009 |
-
var opts = vm.$options = Object.create(vm.constructor.options); // doing this because it's faster than dynamic enumeration.
|
5010 |
-
|
5011 |
-
var parentVnode = options._parentVnode;
|
5012 |
-
opts.parent = options.parent;
|
5013 |
-
opts._parentVnode = parentVnode;
|
5014 |
-
var vnodeComponentOptions = parentVnode.componentOptions;
|
5015 |
-
opts.propsData = vnodeComponentOptions.propsData;
|
5016 |
-
opts._parentListeners = vnodeComponentOptions.listeners;
|
5017 |
-
opts._renderChildren = vnodeComponentOptions.children;
|
5018 |
-
opts._componentTag = vnodeComponentOptions.tag;
|
5019 |
-
|
5020 |
-
if (options.render) {
|
5021 |
-
opts.render = options.render;
|
5022 |
-
opts.staticRenderFns = options.staticRenderFns;
|
5023 |
-
}
|
5024 |
-
}
|
5025 |
-
|
5026 |
-
function resolveConstructorOptions(Ctor) {
|
5027 |
-
var options = Ctor.options;
|
5028 |
-
|
5029 |
-
if (Ctor["super"]) {
|
5030 |
-
var superOptions = resolveConstructorOptions(Ctor["super"]);
|
5031 |
-
var cachedSuperOptions = Ctor.superOptions;
|
5032 |
-
|
5033 |
-
if (superOptions !== cachedSuperOptions) {
|
5034 |
-
// super option changed,
|
5035 |
-
// need to resolve new options.
|
5036 |
-
Ctor.superOptions = superOptions; // check if there are any late-modified/attached options (#4976)
|
5037 |
-
|
5038 |
-
var modifiedOptions = resolveModifiedOptions(Ctor); // update base extend options
|
5039 |
-
|
5040 |
-
if (modifiedOptions) {
|
5041 |
-
extend(Ctor.extendOptions, modifiedOptions);
|
5042 |
-
}
|
5043 |
-
|
5044 |
-
options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);
|
5045 |
-
|
5046 |
-
if (options.name) {
|
5047 |
-
options.components[options.name] = Ctor;
|
5048 |
-
}
|
5049 |
-
}
|
5050 |
-
}
|
5051 |
-
|
5052 |
-
return options;
|
5053 |
-
}
|
5054 |
-
|
5055 |
-
function resolveModifiedOptions(Ctor) {
|
5056 |
-
var modified;
|
5057 |
-
var latest = Ctor.options;
|
5058 |
-
var sealed = Ctor.sealedOptions;
|
5059 |
-
|
5060 |
-
for (var key in latest) {
|
5061 |
-
if (latest[key] !== sealed[key]) {
|
5062 |
-
if (!modified) {
|
5063 |
-
modified = {};
|
5064 |
-
}
|
5065 |
-
|
5066 |
-
modified[key] = latest[key];
|
5067 |
-
}
|
5068 |
-
}
|
5069 |
-
|
5070 |
-
return modified;
|
5071 |
-
}
|
5072 |
-
|
5073 |
-
function Vue(options) {
|
5074 |
-
if (!(this instanceof Vue)) {
|
5075 |
-
warn('Vue is a constructor and should be called with the `new` keyword');
|
5076 |
-
}
|
5077 |
-
|
5078 |
-
this._init(options);
|
5079 |
-
}
|
5080 |
-
|
5081 |
-
initMixin(Vue);
|
5082 |
-
stateMixin(Vue);
|
5083 |
-
eventsMixin(Vue);
|
5084 |
-
lifecycleMixin(Vue);
|
5085 |
-
renderMixin(Vue);
|
5086 |
-
/* */
|
5087 |
-
|
5088 |
-
function initUse(Vue) {
|
5089 |
-
Vue.use = function (plugin) {
|
5090 |
-
var installedPlugins = this._installedPlugins || (this._installedPlugins = []);
|
5091 |
-
|
5092 |
-
if (installedPlugins.indexOf(plugin) > -1) {
|
5093 |
-
return this;
|
5094 |
-
} // additional parameters
|
5095 |
-
|
5096 |
-
|
5097 |
-
var args = toArray(arguments, 1);
|
5098 |
-
args.unshift(this);
|
5099 |
-
|
5100 |
-
if (typeof plugin.install === 'function') {
|
5101 |
-
plugin.install.apply(plugin, args);
|
5102 |
-
} else if (typeof plugin === 'function') {
|
5103 |
-
plugin.apply(null, args);
|
5104 |
-
}
|
5105 |
-
|
5106 |
-
installedPlugins.push(plugin);
|
5107 |
-
return this;
|
5108 |
-
};
|
5109 |
-
}
|
5110 |
-
/* */
|
5111 |
-
|
5112 |
-
|
5113 |
-
function initMixin$1(Vue) {
|
5114 |
-
Vue.mixin = function (mixin) {
|
5115 |
-
this.options = mergeOptions(this.options, mixin);
|
5116 |
-
return this;
|
5117 |
-
};
|
5118 |
-
}
|
5119 |
-
/* */
|
5120 |
-
|
5121 |
-
|
5122 |
-
function initExtend(Vue) {
|
5123 |
-
/**
|
5124 |
-
* Each instance constructor, including Vue, has a unique
|
5125 |
-
* cid. This enables us to create wrapped "child
|
5126 |
-
* constructors" for prototypal inheritance and cache them.
|
5127 |
-
*/
|
5128 |
-
Vue.cid = 0;
|
5129 |
-
var cid = 1;
|
5130 |
-
/**
|
5131 |
-
* Class inheritance
|
5132 |
-
*/
|
5133 |
-
|
5134 |
-
Vue.extend = function (extendOptions) {
|
5135 |
-
extendOptions = extendOptions || {};
|
5136 |
-
var Super = this;
|
5137 |
-
var SuperId = Super.cid;
|
5138 |
-
var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});
|
5139 |
-
|
5140 |
-
if (cachedCtors[SuperId]) {
|
5141 |
-
return cachedCtors[SuperId];
|
5142 |
-
}
|
5143 |
-
|
5144 |
-
var name = extendOptions.name || Super.options.name;
|
5145 |
-
|
5146 |
-
if (name) {
|
5147 |
-
validateComponentName(name);
|
5148 |
-
}
|
5149 |
-
|
5150 |
-
var Sub = function VueComponent(options) {
|
5151 |
-
this._init(options);
|
5152 |
-
};
|
5153 |
-
|
5154 |
-
Sub.prototype = Object.create(Super.prototype);
|
5155 |
-
Sub.prototype.constructor = Sub;
|
5156 |
-
Sub.cid = cid++;
|
5157 |
-
Sub.options = mergeOptions(Super.options, extendOptions);
|
5158 |
-
Sub['super'] = Super; // For props and computed properties, we define the proxy getters on
|
5159 |
-
// the Vue instances at extension time, on the extended prototype. This
|
5160 |
-
// avoids Object.defineProperty calls for each instance created.
|
5161 |
-
|
5162 |
-
if (Sub.options.props) {
|
5163 |
-
initProps$1(Sub);
|
5164 |
-
}
|
5165 |
-
|
5166 |
-
if (Sub.options.computed) {
|
5167 |
-
initComputed$1(Sub);
|
5168 |
-
} // allow further extension/mixin/plugin usage
|
5169 |
-
|
5170 |
-
|
5171 |
-
Sub.extend = Super.extend;
|
5172 |
-
Sub.mixin = Super.mixin;
|
5173 |
-
Sub.use = Super.use; // create asset registers, so extended classes
|
5174 |
-
// can have their private assets too.
|
5175 |
-
|
5176 |
-
ASSET_TYPES.forEach(function (type) {
|
5177 |
-
Sub[type] = Super[type];
|
5178 |
-
}); // enable recursive self-lookup
|
5179 |
-
|
5180 |
-
if (name) {
|
5181 |
-
Sub.options.components[name] = Sub;
|
5182 |
-
} // keep a reference to the super options at extension time.
|
5183 |
-
// later at instantiation we can check if Super's options have
|
5184 |
-
// been updated.
|
5185 |
-
|
5186 |
-
|
5187 |
-
Sub.superOptions = Super.options;
|
5188 |
-
Sub.extendOptions = extendOptions;
|
5189 |
-
Sub.sealedOptions = extend({}, Sub.options); // cache constructor
|
5190 |
-
|
5191 |
-
cachedCtors[SuperId] = Sub;
|
5192 |
-
return Sub;
|
5193 |
-
};
|
5194 |
-
}
|
5195 |
-
|
5196 |
-
function initProps$1(Comp) {
|
5197 |
-
var props = Comp.options.props;
|
5198 |
-
|
5199 |
-
for (var key in props) {
|
5200 |
-
proxy(Comp.prototype, "_props", key);
|
5201 |
-
}
|
5202 |
-
}
|
5203 |
-
|
5204 |
-
function initComputed$1(Comp) {
|
5205 |
-
var computed = Comp.options.computed;
|
5206 |
-
|
5207 |
-
for (var key in computed) {
|
5208 |
-
defineComputed(Comp.prototype, key, computed[key]);
|
5209 |
-
}
|
5210 |
-
}
|
5211 |
-
/* */
|
5212 |
-
|
5213 |
-
|
5214 |
-
function initAssetRegisters(Vue) {
|
5215 |
-
/**
|
5216 |
-
* Create asset registration methods.
|
5217 |
-
*/
|
5218 |
-
ASSET_TYPES.forEach(function (type) {
|
5219 |
-
Vue[type] = function (id, definition) {
|
5220 |
-
if (!definition) {
|
5221 |
-
return this.options[type + 's'][id];
|
5222 |
-
} else {
|
5223 |
-
/* istanbul ignore if */
|
5224 |
-
if (type === 'component') {
|
5225 |
-
validateComponentName(id);
|
5226 |
-
}
|
5227 |
-
|
5228 |
-
if (type === 'component' && isPlainObject(definition)) {
|
5229 |
-
definition.name = definition.name || id;
|
5230 |
-
definition = this.options._base.extend(definition);
|
5231 |
-
}
|
5232 |
-
|
5233 |
-
if (type === 'directive' && typeof definition === 'function') {
|
5234 |
-
definition = {
|
5235 |
-
bind: definition,
|
5236 |
-
update: definition
|
5237 |
-
};
|
5238 |
-
}
|
5239 |
-
|
5240 |
-
this.options[type + 's'][id] = definition;
|
5241 |
-
return definition;
|
5242 |
-
}
|
5243 |
-
};
|
5244 |
-
});
|
5245 |
-
}
|
5246 |
-
/* */
|
5247 |
-
|
5248 |
-
|
5249 |
-
function getComponentName(opts) {
|
5250 |
-
return opts && (opts.Ctor.options.name || opts.tag);
|
5251 |
-
}
|
5252 |
-
|
5253 |
-
function matches(pattern, name) {
|
5254 |
-
if (Array.isArray(pattern)) {
|
5255 |
-
return pattern.indexOf(name) > -1;
|
5256 |
-
} else if (typeof pattern === 'string') {
|
5257 |
-
return pattern.split(',').indexOf(name) > -1;
|
5258 |
-
} else if (isRegExp(pattern)) {
|
5259 |
-
return pattern.test(name);
|
5260 |
-
}
|
5261 |
-
/* istanbul ignore next */
|
5262 |
-
|
5263 |
-
|
5264 |
-
return false;
|
5265 |
-
}
|
5266 |
-
|
5267 |
-
function pruneCache(keepAliveInstance, filter) {
|
5268 |
-
var cache = keepAliveInstance.cache;
|
5269 |
-
var keys = keepAliveInstance.keys;
|
5270 |
-
var _vnode = keepAliveInstance._vnode;
|
5271 |
-
|
5272 |
-
for (var key in cache) {
|
5273 |
-
var cachedNode = cache[key];
|
5274 |
-
|
5275 |
-
if (cachedNode) {
|
5276 |
-
var name = getComponentName(cachedNode.componentOptions);
|
5277 |
-
|
5278 |
-
if (name && !filter(name)) {
|
5279 |
-
pruneCacheEntry(cache, key, keys, _vnode);
|
5280 |
-
}
|
5281 |
-
}
|
5282 |
-
}
|
5283 |
-
}
|
5284 |
-
|
5285 |
-
function pruneCacheEntry(cache, key, keys, current) {
|
5286 |
-
var cached$$1 = cache[key];
|
5287 |
-
|
5288 |
-
if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {
|
5289 |
-
cached$$1.componentInstance.$destroy();
|
5290 |
-
}
|
5291 |
-
|
5292 |
-
cache[key] = null;
|
5293 |
-
remove(keys, key);
|
5294 |
-
}
|
5295 |
-
|
5296 |
-
var patternTypes = [String, RegExp, Array];
|
5297 |
-
var KeepAlive = {
|
5298 |
-
name: 'keep-alive',
|
5299 |
-
"abstract": true,
|
5300 |
-
props: {
|
5301 |
-
include: patternTypes,
|
5302 |
-
exclude: patternTypes,
|
5303 |
-
max: [String, Number]
|
5304 |
-
},
|
5305 |
-
created: function created() {
|
5306 |
-
this.cache = Object.create(null);
|
5307 |
-
this.keys = [];
|
5308 |
-
},
|
5309 |
-
destroyed: function destroyed() {
|
5310 |
-
for (var key in this.cache) {
|
5311 |
-
pruneCacheEntry(this.cache, key, this.keys);
|
5312 |
-
}
|
5313 |
-
},
|
5314 |
-
mounted: function mounted() {
|
5315 |
-
var this$1 = this;
|
5316 |
-
this.$watch('include', function (val) {
|
5317 |
-
pruneCache(this$1, function (name) {
|
5318 |
-
return matches(val, name);
|
5319 |
-
});
|
5320 |
-
});
|
5321 |
-
this.$watch('exclude', function (val) {
|
5322 |
-
pruneCache(this$1, function (name) {
|
5323 |
-
return !matches(val, name);
|
5324 |
-
});
|
5325 |
-
});
|
5326 |
-
},
|
5327 |
-
render: function render() {
|
5328 |
-
var slot = this.$slots["default"];
|
5329 |
-
var vnode = getFirstComponentChild(slot);
|
5330 |
-
var componentOptions = vnode && vnode.componentOptions;
|
5331 |
-
|
5332 |
-
if (componentOptions) {
|
5333 |
-
// check pattern
|
5334 |
-
var name = getComponentName(componentOptions);
|
5335 |
-
var ref = this;
|
5336 |
-
var include = ref.include;
|
5337 |
-
var exclude = ref.exclude;
|
5338 |
-
|
5339 |
-
if ( // not included
|
5340 |
-
include && (!name || !matches(include, name)) || // excluded
|
5341 |
-
exclude && name && matches(exclude, name)) {
|
5342 |
-
return vnode;
|
5343 |
-
}
|
5344 |
-
|
5345 |
-
var ref$1 = this;
|
5346 |
-
var cache = ref$1.cache;
|
5347 |
-
var keys = ref$1.keys;
|
5348 |
-
var key = vnode.key == null // same constructor may get registered as different local components
|
5349 |
-
// so cid alone is not enough (#3269)
|
5350 |
-
? componentOptions.Ctor.cid + (componentOptions.tag ? "::" + componentOptions.tag : '') : vnode.key;
|
5351 |
-
|
5352 |
-
if (cache[key]) {
|
5353 |
-
vnode.componentInstance = cache[key].componentInstance; // make current key freshest
|
5354 |
-
|
5355 |
-
remove(keys, key);
|
5356 |
-
keys.push(key);
|
5357 |
-
} else {
|
5358 |
-
cache[key] = vnode;
|
5359 |
-
keys.push(key); // prune oldest entry
|
5360 |
-
|
5361 |
-
if (this.max && keys.length > parseInt(this.max)) {
|
5362 |
-
pruneCacheEntry(cache, keys[0], keys, this._vnode);
|
5363 |
-
}
|
5364 |
-
}
|
5365 |
-
|
5366 |
-
vnode.data.keepAlive = true;
|
5367 |
-
}
|
5368 |
-
|
5369 |
-
return vnode || slot && slot[0];
|
5370 |
-
}
|
5371 |
-
};
|
5372 |
-
var builtInComponents = {
|
5373 |
-
KeepAlive: KeepAlive
|
5374 |
-
};
|
5375 |
-
/* */
|
5376 |
-
|
5377 |
-
function initGlobalAPI(Vue) {
|
5378 |
-
// config
|
5379 |
-
var configDef = {};
|
5380 |
-
|
5381 |
-
configDef.get = function () {
|
5382 |
-
return config;
|
5383 |
-
};
|
5384 |
-
|
5385 |
-
{
|
5386 |
-
configDef.set = function () {
|
5387 |
-
warn('Do not replace the Vue.config object, set individual fields instead.');
|
5388 |
-
};
|
5389 |
-
}
|
5390 |
-
Object.defineProperty(Vue, 'config', configDef); // exposed util methods.
|
5391 |
-
// NOTE: these are not considered part of the public API - avoid relying on
|
5392 |
-
// them unless you are aware of the risk.
|
5393 |
-
|
5394 |
-
Vue.util = {
|
5395 |
-
warn: warn,
|
5396 |
-
extend: extend,
|
5397 |
-
mergeOptions: mergeOptions,
|
5398 |
-
defineReactive: defineReactive$$1
|
5399 |
-
};
|
5400 |
-
Vue.set = set;
|
5401 |
-
Vue["delete"] = del;
|
5402 |
-
Vue.nextTick = nextTick; // 2.6 explicit observable API
|
5403 |
-
|
5404 |
-
Vue.observable = function (obj) {
|
5405 |
-
observe(obj);
|
5406 |
-
return obj;
|
5407 |
-
};
|
5408 |
-
|
5409 |
-
Vue.options = Object.create(null);
|
5410 |
-
ASSET_TYPES.forEach(function (type) {
|
5411 |
-
Vue.options[type + 's'] = Object.create(null);
|
5412 |
-
}); // this is used to identify the "base" constructor to extend all plain-object
|
5413 |
-
// components with in Weex's multi-instance scenarios.
|
5414 |
-
|
5415 |
-
Vue.options._base = Vue;
|
5416 |
-
extend(Vue.options.components, builtInComponents);
|
5417 |
-
initUse(Vue);
|
5418 |
-
initMixin$1(Vue);
|
5419 |
-
initExtend(Vue);
|
5420 |
-
initAssetRegisters(Vue);
|
5421 |
-
}
|
5422 |
-
|
5423 |
-
initGlobalAPI(Vue);
|
5424 |
-
Object.defineProperty(Vue.prototype, '$isServer', {
|
5425 |
-
get: isServerRendering
|
5426 |
-
});
|
5427 |
-
Object.defineProperty(Vue.prototype, '$ssrContext', {
|
5428 |
-
get: function get() {
|
5429 |
-
/* istanbul ignore next */
|
5430 |
-
return this.$vnode && this.$vnode.ssrContext;
|
5431 |
-
}
|
5432 |
-
}); // expose FunctionalRenderContext for ssr runtime helper installation
|
5433 |
-
|
5434 |
-
Object.defineProperty(Vue, 'FunctionalRenderContext', {
|
5435 |
-
value: FunctionalRenderContext
|
5436 |
-
});
|
5437 |
-
Vue.version = '2.6.12';
|
5438 |
-
/* */
|
5439 |
-
// these are reserved for web because they are directly compiled away
|
5440 |
-
// during template compilation
|
5441 |
-
|
5442 |
-
var isReservedAttr = makeMap('style,class'); // attributes that should be using props for binding
|
5443 |
-
|
5444 |
-
var acceptValue = makeMap('input,textarea,option,select,progress');
|
5445 |
-
|
5446 |
-
var mustUseProp = function mustUseProp(tag, type, attr) {
|
5447 |
-
return attr === 'value' && acceptValue(tag) && type !== 'button' || attr === 'selected' && tag === 'option' || attr === 'checked' && tag === 'input' || attr === 'muted' && tag === 'video';
|
5448 |
-
};
|
5449 |
-
|
5450 |
-
var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');
|
5451 |
-
var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');
|
5452 |
-
|
5453 |
-
var convertEnumeratedValue = function convertEnumeratedValue(key, value) {
|
5454 |
-
return isFalsyAttrValue(value) || value === 'false' ? 'false' // allow arbitrary string value for contenteditable
|
5455 |
-
: key === 'contenteditable' && isValidContentEditableValue(value) ? value : 'true';
|
5456 |
-
};
|
5457 |
-
|
5458 |
-
var isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' + 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' + 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' + 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' + 'required,reversed,scoped,seamless,selected,sortable,translate,' + 'truespeed,typemustmatch,visible');
|
5459 |
-
var xlinkNS = 'http://www.w3.org/1999/xlink';
|
5460 |
-
|
5461 |
-
var isXlink = function isXlink(name) {
|
5462 |
-
return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';
|
5463 |
-
};
|
5464 |
-
|
5465 |
-
var getXlinkProp = function getXlinkProp(name) {
|
5466 |
-
return isXlink(name) ? name.slice(6, name.length) : '';
|
5467 |
-
};
|
5468 |
-
|
5469 |
-
var isFalsyAttrValue = function isFalsyAttrValue(val) {
|
5470 |
-
return val == null || val === false;
|
5471 |
-
};
|
5472 |
-
/* */
|
5473 |
-
|
5474 |
-
|
5475 |
-
function genClassForVnode(vnode) {
|
5476 |
-
var data = vnode.data;
|
5477 |
-
var parentNode = vnode;
|
5478 |
-
var childNode = vnode;
|
5479 |
-
|
5480 |
-
while (isDef(childNode.componentInstance)) {
|
5481 |
-
childNode = childNode.componentInstance._vnode;
|
5482 |
-
|
5483 |
-
if (childNode && childNode.data) {
|
5484 |
-
data = mergeClassData(childNode.data, data);
|
5485 |
-
}
|
5486 |
-
}
|
5487 |
-
|
5488 |
-
while (isDef(parentNode = parentNode.parent)) {
|
5489 |
-
if (parentNode && parentNode.data) {
|
5490 |
-
data = mergeClassData(data, parentNode.data);
|
5491 |
-
}
|
5492 |
-
}
|
5493 |
-
|
5494 |
-
return renderClass(data.staticClass, data["class"]);
|
5495 |
-
}
|
5496 |
-
|
5497 |
-
function mergeClassData(child, parent) {
|
5498 |
-
return {
|
5499 |
-
staticClass: concat(child.staticClass, parent.staticClass),
|
5500 |
-
"class": isDef(child["class"]) ? [child["class"], parent["class"]] : parent["class"]
|
5501 |
-
};
|
5502 |
-
}
|
5503 |
-
|
5504 |
-
function renderClass(staticClass, dynamicClass) {
|
5505 |
-
if (isDef(staticClass) || isDef(dynamicClass)) {
|
5506 |
-
return concat(staticClass, stringifyClass(dynamicClass));
|
5507 |
-
}
|
5508 |
-
/* istanbul ignore next */
|
5509 |
-
|
5510 |
-
|
5511 |
-
return '';
|
5512 |
-
}
|
5513 |
-
|
5514 |
-
function concat(a, b) {
|
5515 |
-
return a ? b ? a + ' ' + b : a : b || '';
|
5516 |
-
}
|
5517 |
-
|
5518 |
-
function stringifyClass(value) {
|
5519 |
-
if (Array.isArray(value)) {
|
5520 |
-
return stringifyArray(value);
|
5521 |
-
}
|
5522 |
-
|
5523 |
-
if (isObject(value)) {
|
5524 |
-
return stringifyObject(value);
|
5525 |
-
}
|
5526 |
-
|
5527 |
-
if (typeof value === 'string') {
|
5528 |
-
return value;
|
5529 |
-
}
|
5530 |
-
/* istanbul ignore next */
|
5531 |
-
|
5532 |
-
|
5533 |
-
return '';
|
5534 |
-
}
|
5535 |
-
|
5536 |
-
function stringifyArray(value) {
|
5537 |
-
var res = '';
|
5538 |
-
var stringified;
|
5539 |
-
|
5540 |
-
for (var i = 0, l = value.length; i < l; i++) {
|
5541 |
-
if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {
|
5542 |
-
if (res) {
|
5543 |
-
res += ' ';
|
5544 |
-
}
|
5545 |
-
|
5546 |
-
res += stringified;
|
5547 |
-
}
|
5548 |
-
}
|
5549 |
-
|
5550 |
-
return res;
|
5551 |
-
}
|
5552 |
-
|
5553 |
-
function stringifyObject(value) {
|
5554 |
-
var res = '';
|
5555 |
-
|
5556 |
-
for (var key in value) {
|
5557 |
-
if (value[key]) {
|
5558 |
-
if (res) {
|
5559 |
-
res += ' ';
|
5560 |
-
}
|
5561 |
-
|
5562 |
-
res += key;
|
5563 |
-
}
|
5564 |
-
}
|
5565 |
-
|
5566 |
-
return res;
|
5567 |
-
}
|
5568 |
-
/* */
|
5569 |
-
|
5570 |
-
|
5571 |
-
var namespaceMap = {
|
5572 |
-
svg: 'http://www.w3.org/2000/svg',
|
5573 |
-
math: 'http://www.w3.org/1998/Math/MathML'
|
5574 |
-
};
|
5575 |
-
var isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' + 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' + 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' + 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' + 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' + 'embed,object,param,source,canvas,script,noscript,del,ins,' + 'caption,col,colgroup,table,thead,tbody,td,th,tr,' + 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' + 'output,progress,select,textarea,' + 'details,dialog,menu,menuitem,summary,' + 'content,element,shadow,template,blockquote,iframe,tfoot'); // this map is intentionally selective, only covering SVG elements that may
|
5576 |
-
// contain child elements.
|
5577 |
-
|
5578 |
-
var isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' + 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' + 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);
|
5579 |
-
|
5580 |
-
var isPreTag = function isPreTag(tag) {
|
5581 |
-
return tag === 'pre';
|
5582 |
-
};
|
5583 |
-
|
5584 |
-
var isReservedTag = function isReservedTag(tag) {
|
5585 |
-
return isHTMLTag(tag) || isSVG(tag);
|
5586 |
-
};
|
5587 |
-
|
5588 |
-
function getTagNamespace(tag) {
|
5589 |
-
if (isSVG(tag)) {
|
5590 |
-
return 'svg';
|
5591 |
-
} // basic support for MathML
|
5592 |
-
// note it doesn't support other MathML elements being component roots
|
5593 |
-
|
5594 |
-
|
5595 |
-
if (tag === 'math') {
|
5596 |
-
return 'math';
|
5597 |
-
}
|
5598 |
-
}
|
5599 |
-
|
5600 |
-
var unknownElementCache = Object.create(null);
|
5601 |
-
|
5602 |
-
function isUnknownElement(tag) {
|
5603 |
-
/* istanbul ignore if */
|
5604 |
-
if (!inBrowser) {
|
5605 |
-
return true;
|
5606 |
-
}
|
5607 |
-
|
5608 |
-
if (isReservedTag(tag)) {
|
5609 |
-
return false;
|
5610 |
-
}
|
5611 |
-
|
5612 |
-
tag = tag.toLowerCase();
|
5613 |
-
/* istanbul ignore if */
|
5614 |
-
|
5615 |
-
if (unknownElementCache[tag] != null) {
|
5616 |
-
return unknownElementCache[tag];
|
5617 |
-
}
|
5618 |
-
|
5619 |
-
var el = document.createElement(tag);
|
5620 |
-
|
5621 |
-
if (tag.indexOf('-') > -1) {
|
5622 |
-
// http://stackoverflow.com/a/28210364/1070244
|
5623 |
-
return unknownElementCache[tag] = el.constructor === window.HTMLUnknownElement || el.constructor === window.HTMLElement;
|
5624 |
-
} else {
|
5625 |
-
return unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString());
|
5626 |
-
}
|
5627 |
-
}
|
5628 |
-
|
5629 |
-
var isTextInputType = makeMap('text,number,password,search,email,tel,url');
|
5630 |
-
/* */
|
5631 |
-
|
5632 |
-
/**
|
5633 |
-
* Query an element selector if it's not an element already.
|
5634 |
-
*/
|
5635 |
-
|
5636 |
-
function query(el) {
|
5637 |
-
if (typeof el === 'string') {
|
5638 |
-
var selected = document.querySelector(el);
|
5639 |
-
|
5640 |
-
if (!selected) {
|
5641 |
-
warn('Cannot find element: ' + el);
|
5642 |
-
return document.createElement('div');
|
5643 |
-
}
|
5644 |
-
|
5645 |
-
return selected;
|
5646 |
-
} else {
|
5647 |
-
return el;
|
5648 |
-
}
|
5649 |
-
}
|
5650 |
-
/* */
|
5651 |
-
|
5652 |
-
|
5653 |
-
function createElement$1(tagName, vnode) {
|
5654 |
-
var elm = document.createElement(tagName);
|
5655 |
-
|
5656 |
-
if (tagName !== 'select') {
|
5657 |
-
return elm;
|
5658 |
-
} // false or null will remove the attribute but undefined will not
|
5659 |
-
|
5660 |
-
|
5661 |
-
if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {
|
5662 |
-
elm.setAttribute('multiple', 'multiple');
|
5663 |
-
}
|
5664 |
-
|
5665 |
-
return elm;
|
5666 |
-
}
|
5667 |
-
|
5668 |
-
function createElementNS(namespace, tagName) {
|
5669 |
-
return document.createElementNS(namespaceMap[namespace], tagName);
|
5670 |
-
}
|
5671 |
-
|
5672 |
-
function createTextNode(text) {
|
5673 |
-
return document.createTextNode(text);
|
5674 |
-
}
|
5675 |
-
|
5676 |
-
function createComment(text) {
|
5677 |
-
return document.createComment(text);
|
5678 |
-
}
|
5679 |
-
|
5680 |
-
function insertBefore(parentNode, newNode, referenceNode) {
|
5681 |
-
parentNode.insertBefore(newNode, referenceNode);
|
5682 |
-
}
|
5683 |
-
|
5684 |
-
function removeChild(node, child) {
|
5685 |
-
node.removeChild(child);
|
5686 |
-
}
|
5687 |
-
|
5688 |
-
function appendChild(node, child) {
|
5689 |
-
node.appendChild(child);
|
5690 |
-
}
|
5691 |
-
|
5692 |
-
function parentNode(node) {
|
5693 |
-
return node.parentNode;
|
5694 |
-
}
|
5695 |
-
|
5696 |
-
function nextSibling(node) {
|
5697 |
-
return node.nextSibling;
|
5698 |
-
}
|
5699 |
-
|
5700 |
-
function tagName(node) {
|
5701 |
-
return node.tagName;
|
5702 |
-
}
|
5703 |
-
|
5704 |
-
function setTextContent(node, text) {
|
5705 |
-
node.textContent = text;
|
5706 |
-
}
|
5707 |
-
|
5708 |
-
function setStyleScope(node, scopeId) {
|
5709 |
-
node.setAttribute(scopeId, '');
|
5710 |
-
}
|
5711 |
-
|
5712 |
-
var nodeOps =
|
5713 |
-
/*#__PURE__*/
|
5714 |
-
Object.freeze({
|
5715 |
-
createElement: createElement$1,
|
5716 |
-
createElementNS: createElementNS,
|
5717 |
-
createTextNode: createTextNode,
|
5718 |
-
createComment: createComment,
|
5719 |
-
insertBefore: insertBefore,
|
5720 |
-
removeChild: removeChild,
|
5721 |
-
appendChild: appendChild,
|
5722 |
-
parentNode: parentNode,
|
5723 |
-
nextSibling: nextSibling,
|
5724 |
-
tagName: tagName,
|
5725 |
-
setTextContent: setTextContent,
|
5726 |
-
setStyleScope: setStyleScope
|
5727 |
-
});
|
5728 |
-
/* */
|
5729 |
-
|
5730 |
-
var ref = {
|
5731 |
-
create: function create(_, vnode) {
|
5732 |
-
registerRef(vnode);
|
5733 |
-
},
|
5734 |
-
update: function update(oldVnode, vnode) {
|
5735 |
-
if (oldVnode.data.ref !== vnode.data.ref) {
|
5736 |
-
registerRef(oldVnode, true);
|
5737 |
-
registerRef(vnode);
|
5738 |
-
}
|
5739 |
-
},
|
5740 |
-
destroy: function destroy(vnode) {
|
5741 |
-
registerRef(vnode, true);
|
5742 |
-
}
|
5743 |
-
};
|
5744 |
-
|
5745 |
-
function registerRef(vnode, isRemoval) {
|
5746 |
-
var key = vnode.data.ref;
|
5747 |
-
|
5748 |
-
if (!isDef(key)) {
|
5749 |
-
return;
|
5750 |
-
}
|
5751 |
-
|
5752 |
-
var vm = vnode.context;
|
5753 |
-
var ref = vnode.componentInstance || vnode.elm;
|
5754 |
-
var refs = vm.$refs;
|
5755 |
-
|
5756 |
-
if (isRemoval) {
|
5757 |
-
if (Array.isArray(refs[key])) {
|
5758 |
-
remove(refs[key], ref);
|
5759 |
-
} else if (refs[key] === ref) {
|
5760 |
-
refs[key] = undefined;
|
5761 |
-
}
|
5762 |
-
} else {
|
5763 |
-
if (vnode.data.refInFor) {
|
5764 |
-
if (!Array.isArray(refs[key])) {
|
5765 |
-
refs[key] = [ref];
|
5766 |
-
} else if (refs[key].indexOf(ref) < 0) {
|
5767 |
-
// $flow-disable-line
|
5768 |
-
refs[key].push(ref);
|
5769 |
-
}
|
5770 |
-
} else {
|
5771 |
-
refs[key] = ref;
|
5772 |
-
}
|
5773 |
-
}
|
5774 |
-
}
|
5775 |
-
/**
|
5776 |
-
* Virtual DOM patching algorithm based on Snabbdom by
|
5777 |
-
* Simon Friis Vindum (@paldepind)
|
5778 |
-
* Licensed under the MIT License
|
5779 |
-
* https://github.com/paldepind/snabbdom/blob/master/LICENSE
|
5780 |
-
*
|
5781 |
-
* modified by Evan You (@yyx990803)
|
5782 |
-
*
|
5783 |
-
* Not type-checking this because this file is perf-critical and the cost
|
5784 |
-
* of making flow understand it is not worth it.
|
5785 |
-
*/
|
5786 |
-
|
5787 |
-
|
5788 |
-
var emptyNode = new VNode('', {}, []);
|
5789 |
-
var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];
|
5790 |
-
|
5791 |
-
function sameVnode(a, b) {
|
5792 |
-
return a.key === b.key && (a.tag === b.tag && a.isComment === b.isComment && isDef(a.data) === isDef(b.data) && sameInputType(a, b) || isTrue(a.isAsyncPlaceholder) && a.asyncFactory === b.asyncFactory && isUndef(b.asyncFactory.error));
|
5793 |
-
}
|
5794 |
-
|
5795 |
-
function sameInputType(a, b) {
|
5796 |
-
if (a.tag !== 'input') {
|
5797 |
-
return true;
|
5798 |
-
}
|
5799 |
-
|
5800 |
-
var i;
|
5801 |
-
var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;
|
5802 |
-
var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;
|
5803 |
-
return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB);
|
5804 |
-
}
|
5805 |
-
|
5806 |
-
function createKeyToOldIdx(children, beginIdx, endIdx) {
|
5807 |
-
var i, key;
|
5808 |
-
var map = {};
|
5809 |
-
|
5810 |
-
for (i = beginIdx; i <= endIdx; ++i) {
|
5811 |
-
key = children[i].key;
|
5812 |
-
|
5813 |
-
if (isDef(key)) {
|
5814 |
-
map[key] = i;
|
5815 |
-
}
|
5816 |
-
}
|
5817 |
-
|
5818 |
-
return map;
|
5819 |
-
}
|
5820 |
-
|
5821 |
-
function createPatchFunction(backend) {
|
5822 |
-
var i, j;
|
5823 |
-
var cbs = {};
|
5824 |
-
var modules = backend.modules;
|
5825 |
-
var nodeOps = backend.nodeOps;
|
5826 |
-
|
5827 |
-
for (i = 0; i < hooks.length; ++i) {
|
5828 |
-
cbs[hooks[i]] = [];
|
5829 |
-
|
5830 |
-
for (j = 0; j < modules.length; ++j) {
|
5831 |
-
if (isDef(modules[j][hooks[i]])) {
|
5832 |
-
cbs[hooks[i]].push(modules[j][hooks[i]]);
|
5833 |
-
}
|
5834 |
-
}
|
5835 |
-
}
|
5836 |
-
|
5837 |
-
function emptyNodeAt(elm) {
|
5838 |
-
return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);
|
5839 |
-
}
|
5840 |
-
|
5841 |
-
function createRmCb(childElm, listeners) {
|
5842 |
-
function remove$$1() {
|
5843 |
-
if (--remove$$1.listeners === 0) {
|
5844 |
-
removeNode(childElm);
|
5845 |
-
}
|
5846 |
-
}
|
5847 |
-
|
5848 |
-
remove$$1.listeners = listeners;
|
5849 |
-
return remove$$1;
|
5850 |
-
}
|
5851 |
-
|
5852 |
-
function removeNode(el) {
|
5853 |
-
var parent = nodeOps.parentNode(el); // element may have already been removed due to v-html / v-text
|
5854 |
-
|
5855 |
-
if (isDef(parent)) {
|
5856 |
-
nodeOps.removeChild(parent, el);
|
5857 |
-
}
|
5858 |
-
}
|
5859 |
-
|
5860 |
-
function isUnknownElement$$1(vnode, inVPre) {
|
5861 |
-
return !inVPre && !vnode.ns && !(config.ignoredElements.length && config.ignoredElements.some(function (ignore) {
|
5862 |
-
return isRegExp(ignore) ? ignore.test(vnode.tag) : ignore === vnode.tag;
|
5863 |
-
})) && config.isUnknownElement(vnode.tag);
|
5864 |
-
}
|
5865 |
-
|
5866 |
-
var creatingElmInVPre = 0;
|
5867 |
-
|
5868 |
-
function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {
|
5869 |
-
if (isDef(vnode.elm) && isDef(ownerArray)) {
|
5870 |
-
// This vnode was used in a previous render!
|
5871 |
-
// now it's used as a new node, overwriting its elm would cause
|
5872 |
-
// potential patch errors down the road when it's used as an insertion
|
5873 |
-
// reference node. Instead, we clone the node on-demand before creating
|
5874 |
-
// associated DOM element for it.
|
5875 |
-
vnode = ownerArray[index] = cloneVNode(vnode);
|
5876 |
-
}
|
5877 |
-
|
5878 |
-
vnode.isRootInsert = !nested; // for transition enter check
|
5879 |
-
|
5880 |
-
if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {
|
5881 |
-
return;
|
5882 |
-
}
|
5883 |
-
|
5884 |
-
var data = vnode.data;
|
5885 |
-
var children = vnode.children;
|
5886 |
-
var tag = vnode.tag;
|
5887 |
-
|
5888 |
-
if (isDef(tag)) {
|
5889 |
-
{
|
5890 |
-
if (data && data.pre) {
|
5891 |
-
creatingElmInVPre++;
|
5892 |
-
}
|
5893 |
-
|
5894 |
-
if (isUnknownElement$$1(vnode, creatingElmInVPre)) {
|
5895 |
-
warn('Unknown custom element: <' + tag + '> - did you ' + 'register the component correctly? For recursive components, ' + 'make sure to provide the "name" option.', vnode.context);
|
5896 |
-
}
|
5897 |
-
}
|
5898 |
-
vnode.elm = vnode.ns ? nodeOps.createElementNS(vnode.ns, tag) : nodeOps.createElement(tag, vnode);
|
5899 |
-
setScope(vnode);
|
5900 |
-
/* istanbul ignore if */
|
5901 |
-
|
5902 |
-
{
|
5903 |
-
createChildren(vnode, children, insertedVnodeQueue);
|
5904 |
-
|
5905 |
-
if (isDef(data)) {
|
5906 |
-
invokeCreateHooks(vnode, insertedVnodeQueue);
|
5907 |
-
}
|
5908 |
-
|
5909 |
-
insert(parentElm, vnode.elm, refElm);
|
5910 |
-
}
|
5911 |
-
|
5912 |
-
if (data && data.pre) {
|
5913 |
-
creatingElmInVPre--;
|
5914 |
-
}
|
5915 |
-
} else if (isTrue(vnode.isComment)) {
|
5916 |
-
vnode.elm = nodeOps.createComment(vnode.text);
|
5917 |
-
insert(parentElm, vnode.elm, refElm);
|
5918 |
-
} else {
|
5919 |
-
vnode.elm = nodeOps.createTextNode(vnode.text);
|
5920 |
-
insert(parentElm, vnode.elm, refElm);
|
5921 |
-
}
|
5922 |
-
}
|
5923 |
-
|
5924 |
-
function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {
|
5925 |
-
var i = vnode.data;
|
5926 |
-
|
5927 |
-
if (isDef(i)) {
|
5928 |
-
var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;
|
5929 |
-
|
5930 |
-
if (isDef(i = i.hook) && isDef(i = i.init)) {
|
5931 |
-
i(vnode, false
|
5932 |
-
/* hydrating */
|
5933 |
-
);
|
5934 |
-
} // after calling the init hook, if the vnode is a child component
|
5935 |
-
// it should've created a child instance and mounted it. the child
|
5936 |
-
// component also has set the placeholder vnode's elm.
|
5937 |
-
// in that case we can just return the element and be done.
|
5938 |
-
|
5939 |
-
|
5940 |
-
if (isDef(vnode.componentInstance)) {
|
5941 |
-
initComponent(vnode, insertedVnodeQueue);
|
5942 |
-
insert(parentElm, vnode.elm, refElm);
|
5943 |
-
|
5944 |
-
if (isTrue(isReactivated)) {
|
5945 |
-
reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);
|
5946 |
-
}
|
5947 |
-
|
5948 |
-
return true;
|
5949 |
-
}
|
5950 |
-
}
|
5951 |
-
}
|
5952 |
-
|
5953 |
-
function initComponent(vnode, insertedVnodeQueue) {
|
5954 |
-
if (isDef(vnode.data.pendingInsert)) {
|
5955 |
-
insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);
|
5956 |
-
vnode.data.pendingInsert = null;
|
5957 |
-
}
|
5958 |
-
|
5959 |
-
vnode.elm = vnode.componentInstance.$el;
|
5960 |
-
|
5961 |
-
if (isPatchable(vnode)) {
|
5962 |
-
invokeCreateHooks(vnode, insertedVnodeQueue);
|
5963 |
-
setScope(vnode);
|
5964 |
-
} else {
|
5965 |
-
// empty component root.
|
5966 |
-
// skip all element-related modules except for ref (#3455)
|
5967 |
-
registerRef(vnode); // make sure to invoke the insert hook
|
5968 |
-
|
5969 |
-
insertedVnodeQueue.push(vnode);
|
5970 |
-
}
|
5971 |
-
}
|
5972 |
-
|
5973 |
-
function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {
|
5974 |
-
var i; // hack for #4339: a reactivated component with inner transition
|
5975 |
-
// does not trigger because the inner node's created hooks are not called
|
5976 |
-
// again. It's not ideal to involve module-specific logic in here but
|
5977 |
-
// there doesn't seem to be a better way to do it.
|
5978 |
-
|
5979 |
-
var innerNode = vnode;
|
5980 |
-
|
5981 |
-
while (innerNode.componentInstance) {
|
5982 |
-
innerNode = innerNode.componentInstance._vnode;
|
5983 |
-
|
5984 |
-
if (isDef(i = innerNode.data) && isDef(i = i.transition)) {
|
5985 |
-
for (i = 0; i < cbs.activate.length; ++i) {
|
5986 |
-
cbs.activate[i](emptyNode, innerNode);
|
5987 |
-
}
|
5988 |
-
|
5989 |
-
insertedVnodeQueue.push(innerNode);
|
5990 |
-
break;
|
5991 |
-
}
|
5992 |
-
} // unlike a newly created component,
|
5993 |
-
// a reactivated keep-alive component doesn't insert itself
|
5994 |
-
|
5995 |
-
|
5996 |
-
insert(parentElm, vnode.elm, refElm);
|
5997 |
-
}
|
5998 |
-
|
5999 |
-
function insert(parent, elm, ref$$1) {
|
6000 |
-
if (isDef(parent)) {
|
6001 |
-
if (isDef(ref$$1)) {
|
6002 |
-
if (nodeOps.parentNode(ref$$1) === parent) {
|
6003 |
-
nodeOps.insertBefore(parent, elm, ref$$1);
|
6004 |
-
}
|
6005 |
-
} else {
|
6006 |
-
nodeOps.appendChild(parent, elm);
|
6007 |
-
}
|
6008 |
-
}
|
6009 |
-
}
|
6010 |
-
|
6011 |
-
function createChildren(vnode, children, insertedVnodeQueue) {
|
6012 |
-
if (Array.isArray(children)) {
|
6013 |
-
{
|
6014 |
-
checkDuplicateKeys(children);
|
6015 |
-
}
|
6016 |
-
|
6017 |
-
for (var i = 0; i < children.length; ++i) {
|
6018 |
-
createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);
|
6019 |
-
}
|
6020 |
-
} else if (isPrimitive(vnode.text)) {
|
6021 |
-
nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));
|
6022 |
-
}
|
6023 |
-
}
|
6024 |
-
|
6025 |
-
function isPatchable(vnode) {
|
6026 |
-
while (vnode.componentInstance) {
|
6027 |
-
vnode = vnode.componentInstance._vnode;
|
6028 |
-
}
|
6029 |
-
|
6030 |
-
return isDef(vnode.tag);
|
6031 |
-
}
|
6032 |
-
|
6033 |
-
function invokeCreateHooks(vnode, insertedVnodeQueue) {
|
6034 |
-
for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
|
6035 |
-
cbs.create[i$1](emptyNode, vnode);
|
6036 |
-
}
|
6037 |
-
|
6038 |
-
i = vnode.data.hook; // Reuse variable
|
6039 |
-
|
6040 |
-
if (isDef(i)) {
|
6041 |
-
if (isDef(i.create)) {
|
6042 |
-
i.create(emptyNode, vnode);
|
6043 |
-
}
|
6044 |
-
|
6045 |
-
if (isDef(i.insert)) {
|
6046 |
-
insertedVnodeQueue.push(vnode);
|
6047 |
-
}
|
6048 |
-
}
|
6049 |
-
} // set scope id attribute for scoped CSS.
|
6050 |
-
// this is implemented as a special case to avoid the overhead
|
6051 |
-
// of going through the normal attribute patching process.
|
6052 |
-
|
6053 |
-
|
6054 |
-
function setScope(vnode) {
|
6055 |
-
var i;
|
6056 |
-
|
6057 |
-
if (isDef(i = vnode.fnScopeId)) {
|
6058 |
-
nodeOps.setStyleScope(vnode.elm, i);
|
6059 |
-
} else {
|
6060 |
-
var ancestor = vnode;
|
6061 |
-
|
6062 |
-
while (ancestor) {
|
6063 |
-
if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {
|
6064 |
-
nodeOps.setStyleScope(vnode.elm, i);
|
6065 |
-
}
|
6066 |
-
|
6067 |
-
ancestor = ancestor.parent;
|
6068 |
-
}
|
6069 |
-
} // for slot content they should also get the scopeId from the host instance.
|
6070 |
-
|
6071 |
-
|
6072 |
-
if (isDef(i = activeInstance) && i !== vnode.context && i !== vnode.fnContext && isDef(i = i.$options._scopeId)) {
|
6073 |
-
nodeOps.setStyleScope(vnode.elm, i);
|
6074 |
-
}
|
6075 |
-
}
|
6076 |
-
|
6077 |
-
function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {
|
6078 |
-
for (; startIdx <= endIdx; ++startIdx) {
|
6079 |
-
createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);
|
6080 |
-
}
|
6081 |
-
}
|
6082 |
-
|
6083 |
-
function invokeDestroyHook(vnode) {
|
6084 |
-
var i, j;
|
6085 |
-
var data = vnode.data;
|
6086 |
-
|
6087 |
-
if (isDef(data)) {
|
6088 |
-
if (isDef(i = data.hook) && isDef(i = i.destroy)) {
|
6089 |
-
i(vnode);
|
6090 |
-
}
|
6091 |
-
|
6092 |
-
for (i = 0; i < cbs.destroy.length; ++i) {
|
6093 |
-
cbs.destroy[i](vnode);
|
6094 |
-
}
|
6095 |
-
}
|
6096 |
-
|
6097 |
-
if (isDef(i = vnode.children)) {
|
6098 |
-
for (j = 0; j < vnode.children.length; ++j) {
|
6099 |
-
invokeDestroyHook(vnode.children[j]);
|
6100 |
-
}
|
6101 |
-
}
|
6102 |
-
}
|
6103 |
-
|
6104 |
-
function removeVnodes(vnodes, startIdx, endIdx) {
|
6105 |
-
for (; startIdx <= endIdx; ++startIdx) {
|
6106 |
-
var ch = vnodes[startIdx];
|
6107 |
-
|
6108 |
-
if (isDef(ch)) {
|
6109 |
-
if (isDef(ch.tag)) {
|
6110 |
-
removeAndInvokeRemoveHook(ch);
|
6111 |
-
invokeDestroyHook(ch);
|
6112 |
-
} else {
|
6113 |
-
// Text node
|
6114 |
-
removeNode(ch.elm);
|
6115 |
-
}
|
6116 |
-
}
|
6117 |
-
}
|
6118 |
-
}
|
6119 |
-
|
6120 |
-
function removeAndInvokeRemoveHook(vnode, rm) {
|
6121 |
-
if (isDef(rm) || isDef(vnode.data)) {
|
6122 |
-
var i;
|
6123 |
-
var listeners = cbs.remove.length + 1;
|
6124 |
-
|
6125 |
-
if (isDef(rm)) {
|
6126 |
-
// we have a recursively passed down rm callback
|
6127 |
-
// increase the listeners count
|
6128 |
-
rm.listeners += listeners;
|
6129 |
-
} else {
|
6130 |
-
// directly removing
|
6131 |
-
rm = createRmCb(vnode.elm, listeners);
|
6132 |
-
} // recursively invoke hooks on child component root node
|
6133 |
-
|
6134 |
-
|
6135 |
-
if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
|
6136 |
-
removeAndInvokeRemoveHook(i, rm);
|
6137 |
-
}
|
6138 |
-
|
6139 |
-
for (i = 0; i < cbs.remove.length; ++i) {
|
6140 |
-
cbs.remove[i](vnode, rm);
|
6141 |
-
}
|
6142 |
-
|
6143 |
-
if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
|
6144 |
-
i(vnode, rm);
|
6145 |
-
} else {
|
6146 |
-
rm();
|
6147 |
-
}
|
6148 |
-
} else {
|
6149 |
-
removeNode(vnode.elm);
|
6150 |
-
}
|
6151 |
-
}
|
6152 |
-
|
6153 |
-
function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {
|
6154 |
-
var oldStartIdx = 0;
|
6155 |
-
var newStartIdx = 0;
|
6156 |
-
var oldEndIdx = oldCh.length - 1;
|
6157 |
-
var oldStartVnode = oldCh[0];
|
6158 |
-
var oldEndVnode = oldCh[oldEndIdx];
|
6159 |
-
var newEndIdx = newCh.length - 1;
|
6160 |
-
var newStartVnode = newCh[0];
|
6161 |
-
var newEndVnode = newCh[newEndIdx];
|
6162 |
-
var oldKeyToIdx, idxInOld, vnodeToMove, refElm; // removeOnly is a special flag used only by <transition-group>
|
6163 |
-
// to ensure removed elements stay in correct relative positions
|
6164 |
-
// during leaving transitions
|
6165 |
-
|
6166 |
-
var canMove = !removeOnly;
|
6167 |
-
{
|
6168 |
-
checkDuplicateKeys(newCh);
|
6169 |
-
}
|
6170 |
-
|
6171 |
-
while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
|
6172 |
-
if (isUndef(oldStartVnode)) {
|
6173 |
-
oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left
|
6174 |
-
} else if (isUndef(oldEndVnode)) {
|
6175 |
-
oldEndVnode = oldCh[--oldEndIdx];
|
6176 |
-
} else if (sameVnode(oldStartVnode, newStartVnode)) {
|
6177 |
-
patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
|
6178 |
-
oldStartVnode = oldCh[++oldStartIdx];
|
6179 |
-
newStartVnode = newCh[++newStartIdx];
|
6180 |
-
} else if (sameVnode(oldEndVnode, newEndVnode)) {
|
6181 |
-
patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
|
6182 |
-
oldEndVnode = oldCh[--oldEndIdx];
|
6183 |
-
newEndVnode = newCh[--newEndIdx];
|
6184 |
-
} else if (sameVnode(oldStartVnode, newEndVnode)) {
|
6185 |
-
// Vnode moved right
|
6186 |
-
patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);
|
6187 |
-
canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));
|
6188 |
-
oldStartVnode = oldCh[++oldStartIdx];
|
6189 |
-
newEndVnode = newCh[--newEndIdx];
|
6190 |
-
} else if (sameVnode(oldEndVnode, newStartVnode)) {
|
6191 |
-
// Vnode moved left
|
6192 |
-
patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
|
6193 |
-
canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);
|
6194 |
-
oldEndVnode = oldCh[--oldEndIdx];
|
6195 |
-
newStartVnode = newCh[++newStartIdx];
|
6196 |
-
} else {
|
6197 |
-
if (isUndef(oldKeyToIdx)) {
|
6198 |
-
oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);
|
6199 |
-
}
|
6200 |
-
|
6201 |
-
idxInOld = isDef(newStartVnode.key) ? oldKeyToIdx[newStartVnode.key] : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);
|
6202 |
-
|
6203 |
-
if (isUndef(idxInOld)) {
|
6204 |
-
// New element
|
6205 |
-
createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
|
6206 |
-
} else {
|
6207 |
-
vnodeToMove = oldCh[idxInOld];
|
6208 |
-
|
6209 |
-
if (sameVnode(vnodeToMove, newStartVnode)) {
|
6210 |
-
patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);
|
6211 |
-
oldCh[idxInOld] = undefined;
|
6212 |
-
canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);
|
6213 |
-
} else {
|
6214 |
-
// same key but different element. treat as new element
|
6215 |
-
createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);
|
6216 |
-
}
|
6217 |
-
}
|
6218 |
-
|
6219 |
-
newStartVnode = newCh[++newStartIdx];
|
6220 |
-
}
|
6221 |
-
}
|
6222 |
-
|
6223 |
-
if (oldStartIdx > oldEndIdx) {
|
6224 |
-
refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;
|
6225 |
-
addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);
|
6226 |
-
} else if (newStartIdx > newEndIdx) {
|
6227 |
-
removeVnodes(oldCh, oldStartIdx, oldEndIdx);
|
6228 |
-
}
|
6229 |
-
}
|
6230 |
-
|
6231 |
-
function checkDuplicateKeys(children) {
|
6232 |
-
var seenKeys = {};
|
6233 |
-
|
6234 |
-
for (var i = 0; i < children.length; i++) {
|
6235 |
-
var vnode = children[i];
|
6236 |
-
var key = vnode.key;
|
6237 |
-
|
6238 |
-
if (isDef(key)) {
|
6239 |
-
if (seenKeys[key]) {
|
6240 |
-
warn("Duplicate keys detected: '" + key + "'. This may cause an update error.", vnode.context);
|
6241 |
-
} else {
|
6242 |
-
seenKeys[key] = true;
|
6243 |
-
}
|
6244 |
-
}
|
6245 |
-
}
|
6246 |
-
}
|
6247 |
-
|
6248 |
-
function findIdxInOld(node, oldCh, start, end) {
|
6249 |
-
for (var i = start; i < end; i++) {
|
6250 |
-
var c = oldCh[i];
|
6251 |
-
|
6252 |
-
if (isDef(c) && sameVnode(node, c)) {
|
6253 |
-
return i;
|
6254 |
-
}
|
6255 |
-
}
|
6256 |
-
}
|
6257 |
-
|
6258 |
-
function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {
|
6259 |
-
if (oldVnode === vnode) {
|
6260 |
-
return;
|
6261 |
-
}
|
6262 |
-
|
6263 |
-
if (isDef(vnode.elm) && isDef(ownerArray)) {
|
6264 |
-
// clone reused vnode
|
6265 |
-
vnode = ownerArray[index] = cloneVNode(vnode);
|
6266 |
-
}
|
6267 |
-
|
6268 |
-
var elm = vnode.elm = oldVnode.elm;
|
6269 |
-
|
6270 |
-
if (isTrue(oldVnode.isAsyncPlaceholder)) {
|
6271 |
-
if (isDef(vnode.asyncFactory.resolved)) {
|
6272 |
-
hydrate(oldVnode.elm, vnode, insertedVnodeQueue);
|
6273 |
-
} else {
|
6274 |
-
vnode.isAsyncPlaceholder = true;
|
6275 |
-
}
|
6276 |
-
|
6277 |
-
return;
|
6278 |
-
} // reuse element for static trees.
|
6279 |
-
// note we only do this if the vnode is cloned -
|
6280 |
-
// if the new node is not cloned it means the render functions have been
|
6281 |
-
// reset by the hot-reload-api and we need to do a proper re-render.
|
6282 |
-
|
6283 |
-
|
6284 |
-
if (isTrue(vnode.isStatic) && isTrue(oldVnode.isStatic) && vnode.key === oldVnode.key && (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {
|
6285 |
-
vnode.componentInstance = oldVnode.componentInstance;
|
6286 |
-
return;
|
6287 |
-
}
|
6288 |
-
|
6289 |
-
var i;
|
6290 |
-
var data = vnode.data;
|
6291 |
-
|
6292 |
-
if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {
|
6293 |
-
i(oldVnode, vnode);
|
6294 |
-
}
|
6295 |
-
|
6296 |
-
var oldCh = oldVnode.children;
|
6297 |
-
var ch = vnode.children;
|
6298 |
-
|
6299 |
-
if (isDef(data) && isPatchable(vnode)) {
|
6300 |
-
for (i = 0; i < cbs.update.length; ++i) {
|
6301 |
-
cbs.update[i](oldVnode, vnode);
|
6302 |
-
}
|
6303 |
-
|
6304 |
-
if (isDef(i = data.hook) && isDef(i = i.update)) {
|
6305 |
-
i(oldVnode, vnode);
|
6306 |
-
}
|
6307 |
-
}
|
6308 |
-
|
6309 |
-
if (isUndef(vnode.text)) {
|
6310 |
-
if (isDef(oldCh) && isDef(ch)) {
|
6311 |
-
if (oldCh !== ch) {
|
6312 |
-
updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);
|
6313 |
-
}
|
6314 |
-
} else if (isDef(ch)) {
|
6315 |
-
{
|
6316 |
-
checkDuplicateKeys(ch);
|
6317 |
-
}
|
6318 |
-
|
6319 |
-
if (isDef(oldVnode.text)) {
|
6320 |
-
nodeOps.setTextContent(elm, '');
|
6321 |
-
}
|
6322 |
-
|
6323 |
-
addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);
|
6324 |
-
} else if (isDef(oldCh)) {
|
6325 |
-
removeVnodes(oldCh, 0, oldCh.length - 1);
|
6326 |
-
} else if (isDef(oldVnode.text)) {
|
6327 |
-
nodeOps.setTextContent(elm, '');
|
6328 |
-
}
|
6329 |
-
} else if (oldVnode.text !== vnode.text) {
|
6330 |
-
nodeOps.setTextContent(elm, vnode.text);
|
6331 |
-
}
|
6332 |
-
|
6333 |
-
if (isDef(data)) {
|
6334 |
-
if (isDef(i = data.hook) && isDef(i = i.postpatch)) {
|
6335 |
-
i(oldVnode, vnode);
|
6336 |
-
}
|
6337 |
-
}
|
6338 |
-
}
|
6339 |
-
|
6340 |
-
function invokeInsertHook(vnode, queue, initial) {
|
6341 |
-
// delay insert hooks for component root nodes, invoke them after the
|
6342 |
-
// element is really inserted
|
6343 |
-
if (isTrue(initial) && isDef(vnode.parent)) {
|
6344 |
-
vnode.parent.data.pendingInsert = queue;
|
6345 |
-
} else {
|
6346 |
-
for (var i = 0; i < queue.length; ++i) {
|
6347 |
-
queue[i].data.hook.insert(queue[i]);
|
6348 |
-
}
|
6349 |
-
}
|
6350 |
-
}
|
6351 |
-
|
6352 |
-
var hydrationBailed = false; // list of modules that can skip create hook during hydration because they
|
6353 |
-
// are already rendered on the client or has no need for initialization
|
6354 |
-
// Note: style is excluded because it relies on initial clone for future
|
6355 |
-
// deep updates (#7063).
|
6356 |
-
|
6357 |
-
var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key'); // Note: this is a browser-only function so we can assume elms are DOM nodes.
|
6358 |
-
|
6359 |
-
function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {
|
6360 |
-
var i;
|
6361 |
-
var tag = vnode.tag;
|
6362 |
-
var data = vnode.data;
|
6363 |
-
var children = vnode.children;
|
6364 |
-
inVPre = inVPre || data && data.pre;
|
6365 |
-
vnode.elm = elm;
|
6366 |
-
|
6367 |
-
if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {
|
6368 |
-
vnode.isAsyncPlaceholder = true;
|
6369 |
-
return true;
|
6370 |
-
} // assert node match
|
6371 |
-
|
6372 |
-
|
6373 |
-
{
|
6374 |
-
if (!assertNodeMatch(elm, vnode, inVPre)) {
|
6375 |
-
return false;
|
6376 |
-
}
|
6377 |
-
}
|
6378 |
-
|
6379 |
-
if (isDef(data)) {
|
6380 |
-
if (isDef(i = data.hook) && isDef(i = i.init)) {
|
6381 |
-
i(vnode, true
|
6382 |
-
/* hydrating */
|
6383 |
-
);
|
6384 |
-
}
|
6385 |
-
|
6386 |
-
if (isDef(i = vnode.componentInstance)) {
|
6387 |
-
// child component. it should have hydrated its own tree.
|
6388 |
-
initComponent(vnode, insertedVnodeQueue);
|
6389 |
-
return true;
|
6390 |
-
}
|
6391 |
-
}
|
6392 |
-
|
6393 |
-
if (isDef(tag)) {
|
6394 |
-
if (isDef(children)) {
|
6395 |
-
// empty element, allow client to pick up and populate children
|
6396 |
-
if (!elm.hasChildNodes()) {
|
6397 |
-
createChildren(vnode, children, insertedVnodeQueue);
|
6398 |
-
} else {
|
6399 |
-
// v-html and domProps: innerHTML
|
6400 |
-
if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {
|
6401 |
-
if (i !== elm.innerHTML) {
|
6402 |
-
/* istanbul ignore if */
|
6403 |
-
if (typeof console !== 'undefined' && !hydrationBailed) {
|
6404 |
-
hydrationBailed = true;
|
6405 |
-
console.warn('Parent: ', elm);
|
6406 |
-
console.warn('server innerHTML: ', i);
|
6407 |
-
console.warn('client innerHTML: ', elm.innerHTML);
|
6408 |
-
}
|
6409 |
-
|
6410 |
-
return false;
|
6411 |
-
}
|
6412 |
-
} else {
|
6413 |
-
// iterate and compare children lists
|
6414 |
-
var childrenMatch = true;
|
6415 |
-
var childNode = elm.firstChild;
|
6416 |
-
|
6417 |
-
for (var i$1 = 0; i$1 < children.length; i$1++) {
|
6418 |
-
if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {
|
6419 |
-
childrenMatch = false;
|
6420 |
-
break;
|
6421 |
-
}
|
6422 |
-
|
6423 |
-
childNode = childNode.nextSibling;
|
6424 |
-
} // if childNode is not null, it means the actual childNodes list is
|
6425 |
-
// longer than the virtual children list.
|
6426 |
-
|
6427 |
-
|
6428 |
-
if (!childrenMatch || childNode) {
|
6429 |
-
/* istanbul ignore if */
|
6430 |
-
if (typeof console !== 'undefined' && !hydrationBailed) {
|
6431 |
-
hydrationBailed = true;
|
6432 |
-
console.warn('Parent: ', elm);
|
6433 |
-
console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);
|
6434 |
-
}
|
6435 |
-
|
6436 |
-
return false;
|
6437 |
-
}
|
6438 |
-
}
|
6439 |
-
}
|
6440 |
-
}
|
6441 |
-
|
6442 |
-
if (isDef(data)) {
|
6443 |
-
var fullInvoke = false;
|
6444 |
-
|
6445 |
-
for (var key in data) {
|
6446 |
-
if (!isRenderedModule(key)) {
|
6447 |
-
fullInvoke = true;
|
6448 |
-
invokeCreateHooks(vnode, insertedVnodeQueue);
|
6449 |
-
break;
|
6450 |
-
}
|
6451 |
-
}
|
6452 |
-
|
6453 |
-
if (!fullInvoke && data['class']) {
|
6454 |
-
// ensure collecting deps for deep class bindings for future updates
|
6455 |
-
traverse(data['class']);
|
6456 |
-
}
|
6457 |
-
}
|
6458 |
-
} else if (elm.data !== vnode.text) {
|
6459 |
-
elm.data = vnode.text;
|
6460 |
-
}
|
6461 |
-
|
6462 |
-
return true;
|
6463 |
-
}
|
6464 |
-
|
6465 |
-
function assertNodeMatch(node, vnode, inVPre) {
|
6466 |
-
if (isDef(vnode.tag)) {
|
6467 |
-
return vnode.tag.indexOf('vue-component') === 0 || !isUnknownElement$$1(vnode, inVPre) && vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase());
|
6468 |
-
} else {
|
6469 |
-
return node.nodeType === (vnode.isComment ? 8 : 3);
|
6470 |
-
}
|
6471 |
-
}
|
6472 |
-
|
6473 |
-
return function patch(oldVnode, vnode, hydrating, removeOnly) {
|
6474 |
-
if (isUndef(vnode)) {
|
6475 |
-
if (isDef(oldVnode)) {
|
6476 |
-
invokeDestroyHook(oldVnode);
|
6477 |
-
}
|
6478 |
-
|
6479 |
-
return;
|
6480 |
-
}
|
6481 |
-
|
6482 |
-
var isInitialPatch = false;
|
6483 |
-
var insertedVnodeQueue = [];
|
6484 |
-
|
6485 |
-
if (isUndef(oldVnode)) {
|
6486 |
-
// empty mount (likely as component), create new root element
|
6487 |
-
isInitialPatch = true;
|
6488 |
-
createElm(vnode, insertedVnodeQueue);
|
6489 |
-
} else {
|
6490 |
-
var isRealElement = isDef(oldVnode.nodeType);
|
6491 |
-
|
6492 |
-
if (!isRealElement && sameVnode(oldVnode, vnode)) {
|
6493 |
-
// patch existing root node
|
6494 |
-
patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);
|
6495 |
-
} else {
|
6496 |
-
if (isRealElement) {
|
6497 |
-
// mounting to a real element
|
6498 |
-
// check if this is server-rendered content and if we can perform
|
6499 |
-
// a successful hydration.
|
6500 |
-
if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {
|
6501 |
-
oldVnode.removeAttribute(SSR_ATTR);
|
6502 |
-
hydrating = true;
|
6503 |
-
}
|
6504 |
-
|
6505 |
-
if (isTrue(hydrating)) {
|
6506 |
-
if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {
|
6507 |
-
invokeInsertHook(vnode, insertedVnodeQueue, true);
|
6508 |
-
return oldVnode;
|
6509 |
-
} else {
|
6510 |
-
warn('The client-side rendered virtual DOM tree is not matching ' + 'server-rendered content. This is likely caused by incorrect ' + 'HTML markup, for example nesting block-level elements inside ' + '<p>, or missing <tbody>. Bailing hydration and performing ' + 'full client-side render.');
|
6511 |
-
}
|
6512 |
-
} // either not server-rendered, or hydration failed.
|
6513 |
-
// create an empty node and replace it
|
6514 |
-
|
6515 |
-
|
6516 |
-
oldVnode = emptyNodeAt(oldVnode);
|
6517 |
-
} // replacing existing element
|
6518 |
-
|
6519 |
-
|
6520 |
-
var oldElm = oldVnode.elm;
|
6521 |
-
var parentElm = nodeOps.parentNode(oldElm); // create new node
|
6522 |
-
|
6523 |
-
createElm(vnode, insertedVnodeQueue, // extremely rare edge case: do not insert if old element is in a
|
6524 |
-
// leaving transition. Only happens when combining transition +
|
6525 |
-
// keep-alive + HOCs. (#4590)
|
6526 |
-
oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm)); // update parent placeholder node element, recursively
|
6527 |
-
|
6528 |
-
if (isDef(vnode.parent)) {
|
6529 |
-
var ancestor = vnode.parent;
|
6530 |
-
var patchable = isPatchable(vnode);
|
6531 |
-
|
6532 |
-
while (ancestor) {
|
6533 |
-
for (var i = 0; i < cbs.destroy.length; ++i) {
|
6534 |
-
cbs.destroy[i](ancestor);
|
6535 |
-
}
|
6536 |
-
|
6537 |
-
ancestor.elm = vnode.elm;
|
6538 |
-
|
6539 |
-
if (patchable) {
|
6540 |
-
for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {
|
6541 |
-
cbs.create[i$1](emptyNode, ancestor);
|
6542 |
-
} // #6513
|
6543 |
-
// invoke insert hooks that may have been merged by create hooks.
|
6544 |
-
// e.g. for directives that uses the "inserted" hook.
|
6545 |
-
|
6546 |
-
|
6547 |
-
var insert = ancestor.data.hook.insert;
|
6548 |
-
|
6549 |
-
if (insert.merged) {
|
6550 |
-
// start at index 1 to avoid re-invoking component mounted hook
|
6551 |
-
for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {
|
6552 |
-
insert.fns[i$2]();
|
6553 |
-
}
|
6554 |
-
}
|
6555 |
-
} else {
|
6556 |
-
registerRef(ancestor);
|
6557 |
-
}
|
6558 |
-
|
6559 |
-
ancestor = ancestor.parent;
|
6560 |
-
}
|
6561 |
-
} // destroy old node
|
6562 |
-
|
6563 |
-
|
6564 |
-
if (isDef(parentElm)) {
|
6565 |
-
removeVnodes([oldVnode], 0, 0);
|
6566 |
-
} else if (isDef(oldVnode.tag)) {
|
6567 |
-
invokeDestroyHook(oldVnode);
|
6568 |
-
}
|
6569 |
-
}
|
6570 |
-
}
|
6571 |
-
|
6572 |
-
invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);
|
6573 |
-
return vnode.elm;
|
6574 |
-
};
|
6575 |
-
}
|
6576 |
-
/* */
|
6577 |
-
|
6578 |
-
|
6579 |
-
var directives = {
|
6580 |
-
create: updateDirectives,
|
6581 |
-
update: updateDirectives,
|
6582 |
-
destroy: function unbindDirectives(vnode) {
|
6583 |
-
updateDirectives(vnode, emptyNode);
|
6584 |
-
}
|
6585 |
-
};
|
6586 |
-
|
6587 |
-
function updateDirectives(oldVnode, vnode) {
|
6588 |
-
if (oldVnode.data.directives || vnode.data.directives) {
|
6589 |
-
_update(oldVnode, vnode);
|
6590 |
-
}
|
6591 |
-
}
|
6592 |
-
|
6593 |
-
function _update(oldVnode, vnode) {
|
6594 |
-
var isCreate = oldVnode === emptyNode;
|
6595 |
-
var isDestroy = vnode === emptyNode;
|
6596 |
-
var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);
|
6597 |
-
var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);
|
6598 |
-
var dirsWithInsert = [];
|
6599 |
-
var dirsWithPostpatch = [];
|
6600 |
-
var key, oldDir, dir;
|
6601 |
-
|
6602 |
-
for (key in newDirs) {
|
6603 |
-
oldDir = oldDirs[key];
|
6604 |
-
dir = newDirs[key];
|
6605 |
-
|
6606 |
-
if (!oldDir) {
|
6607 |
-
// new directive, bind
|
6608 |
-
callHook$1(dir, 'bind', vnode, oldVnode);
|
6609 |
-
|
6610 |
-
if (dir.def && dir.def.inserted) {
|
6611 |
-
dirsWithInsert.push(dir);
|
6612 |
-
}
|
6613 |
-
} else {
|
6614 |
-
// existing directive, update
|
6615 |
-
dir.oldValue = oldDir.value;
|
6616 |
-
dir.oldArg = oldDir.arg;
|
6617 |
-
callHook$1(dir, 'update', vnode, oldVnode);
|
6618 |
-
|
6619 |
-
if (dir.def && dir.def.componentUpdated) {
|
6620 |
-
dirsWithPostpatch.push(dir);
|
6621 |
-
}
|
6622 |
-
}
|
6623 |
-
}
|
6624 |
-
|
6625 |
-
if (dirsWithInsert.length) {
|
6626 |
-
var callInsert = function callInsert() {
|
6627 |
-
for (var i = 0; i < dirsWithInsert.length; i++) {
|
6628 |
-
callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);
|
6629 |
-
}
|
6630 |
-
};
|
6631 |
-
|
6632 |
-
if (isCreate) {
|
6633 |
-
mergeVNodeHook(vnode, 'insert', callInsert);
|
6634 |
-
} else {
|
6635 |
-
callInsert();
|
6636 |
-
}
|
6637 |
-
}
|
6638 |
-
|
6639 |
-
if (dirsWithPostpatch.length) {
|
6640 |
-
mergeVNodeHook(vnode, 'postpatch', function () {
|
6641 |
-
for (var i = 0; i < dirsWithPostpatch.length; i++) {
|
6642 |
-
callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);
|
6643 |
-
}
|
6644 |
-
});
|
6645 |
-
}
|
6646 |
-
|
6647 |
-
if (!isCreate) {
|
6648 |
-
for (key in oldDirs) {
|
6649 |
-
if (!newDirs[key]) {
|
6650 |
-
// no longer present, unbind
|
6651 |
-
callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);
|
6652 |
-
}
|
6653 |
-
}
|
6654 |
-
}
|
6655 |
-
}
|
6656 |
-
|
6657 |
-
var emptyModifiers = Object.create(null);
|
6658 |
-
|
6659 |
-
function normalizeDirectives$1(dirs, vm) {
|
6660 |
-
var res = Object.create(null);
|
6661 |
-
|
6662 |
-
if (!dirs) {
|
6663 |
-
// $flow-disable-line
|
6664 |
-
return res;
|
6665 |
-
}
|
6666 |
-
|
6667 |
-
var i, dir;
|
6668 |
-
|
6669 |
-
for (i = 0; i < dirs.length; i++) {
|
6670 |
-
dir = dirs[i];
|
6671 |
-
|
6672 |
-
if (!dir.modifiers) {
|
6673 |
-
// $flow-disable-line
|
6674 |
-
dir.modifiers = emptyModifiers;
|
6675 |
-
}
|
6676 |
-
|
6677 |
-
res[getRawDirName(dir)] = dir;
|
6678 |
-
dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);
|
6679 |
-
} // $flow-disable-line
|
6680 |
-
|
6681 |
-
|
6682 |
-
return res;
|
6683 |
-
}
|
6684 |
-
|
6685 |
-
function getRawDirName(dir) {
|
6686 |
-
return dir.rawName || dir.name + "." + Object.keys(dir.modifiers || {}).join('.');
|
6687 |
-
}
|
6688 |
-
|
6689 |
-
function callHook$1(dir, hook, vnode, oldVnode, isDestroy) {
|
6690 |
-
var fn = dir.def && dir.def[hook];
|
6691 |
-
|
6692 |
-
if (fn) {
|
6693 |
-
try {
|
6694 |
-
fn(vnode.elm, dir, vnode, oldVnode, isDestroy);
|
6695 |
-
} catch (e) {
|
6696 |
-
handleError(e, vnode.context, "directive " + dir.name + " " + hook + " hook");
|
6697 |
-
}
|
6698 |
-
}
|
6699 |
-
}
|
6700 |
-
|
6701 |
-
var baseModules = [ref, directives];
|
6702 |
-
/* */
|
6703 |
-
|
6704 |
-
function updateAttrs(oldVnode, vnode) {
|
6705 |
-
var opts = vnode.componentOptions;
|
6706 |
-
|
6707 |
-
if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {
|
6708 |
-
return;
|
6709 |
-
}
|
6710 |
-
|
6711 |
-
if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {
|
6712 |
-
return;
|
6713 |
-
}
|
6714 |
-
|
6715 |
-
var key, cur, old;
|
6716 |
-
var elm = vnode.elm;
|
6717 |
-
var oldAttrs = oldVnode.data.attrs || {};
|
6718 |
-
var attrs = vnode.data.attrs || {}; // clone observed objects, as the user probably wants to mutate it
|
6719 |
-
|
6720 |
-
if (isDef(attrs.__ob__)) {
|
6721 |
-
attrs = vnode.data.attrs = extend({}, attrs);
|
6722 |
-
}
|
6723 |
-
|
6724 |
-
for (key in attrs) {
|
6725 |
-
cur = attrs[key];
|
6726 |
-
old = oldAttrs[key];
|
6727 |
-
|
6728 |
-
if (old !== cur) {
|
6729 |
-
setAttr(elm, key, cur);
|
6730 |
-
}
|
6731 |
-
} // #4391: in IE9, setting type can reset value for input[type=radio]
|
6732 |
-
// #6666: IE/Edge forces progress value down to 1 before setting a max
|
6733 |
-
|
6734 |
-
/* istanbul ignore if */
|
6735 |
-
|
6736 |
-
|
6737 |
-
if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {
|
6738 |
-
setAttr(elm, 'value', attrs.value);
|
6739 |
-
}
|
6740 |
-
|
6741 |
-
for (key in oldAttrs) {
|
6742 |
-
if (isUndef(attrs[key])) {
|
6743 |
-
if (isXlink(key)) {
|
6744 |
-
elm.removeAttributeNS(xlinkNS, getXlinkProp(key));
|
6745 |
-
} else if (!isEnumeratedAttr(key)) {
|
6746 |
-
elm.removeAttribute(key);
|
6747 |
-
}
|
6748 |
-
}
|
6749 |
-
}
|
6750 |
-
}
|
6751 |
-
|
6752 |
-
function setAttr(el, key, value) {
|
6753 |
-
if (el.tagName.indexOf('-') > -1) {
|
6754 |
-
baseSetAttr(el, key, value);
|
6755 |
-
} else if (isBooleanAttr(key)) {
|
6756 |
-
// set attribute for blank value
|
6757 |
-
// e.g. <option disabled>Select one</option>
|
6758 |
-
if (isFalsyAttrValue(value)) {
|
6759 |
-
el.removeAttribute(key);
|
6760 |
-
} else {
|
6761 |
-
// technically allowfullscreen is a boolean attribute for <iframe>,
|
6762 |
-
// but Flash expects a value of "true" when used on <embed> tag
|
6763 |
-
value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;
|
6764 |
-
el.setAttribute(key, value);
|
6765 |
-
}
|
6766 |
-
} else if (isEnumeratedAttr(key)) {
|
6767 |
-
el.setAttribute(key, convertEnumeratedValue(key, value));
|
6768 |
-
} else if (isXlink(key)) {
|
6769 |
-
if (isFalsyAttrValue(value)) {
|
6770 |
-
el.removeAttributeNS(xlinkNS, getXlinkProp(key));
|
6771 |
-
} else {
|
6772 |
-
el.setAttributeNS(xlinkNS, key, value);
|
6773 |
-
}
|
6774 |
-
} else {
|
6775 |
-
baseSetAttr(el, key, value);
|
6776 |
-
}
|
6777 |
-
}
|
6778 |
-
|
6779 |
-
function baseSetAttr(el, key, value) {
|
6780 |
-
if (isFalsyAttrValue(value)) {
|
6781 |
-
el.removeAttribute(key);
|
6782 |
-
} else {
|
6783 |
-
// #7138: IE10 & 11 fires input event when setting placeholder on
|
6784 |
-
// <textarea>... block the first input event and remove the blocker
|
6785 |
-
// immediately.
|
6786 |
-
|
6787 |
-
/* istanbul ignore if */
|
6788 |
-
if (isIE && !isIE9 && el.tagName === 'TEXTAREA' && key === 'placeholder' && value !== '' && !el.__ieph) {
|
6789 |
-
var blocker = function blocker(e) {
|
6790 |
-
e.stopImmediatePropagation();
|
6791 |
-
el.removeEventListener('input', blocker);
|
6792 |
-
};
|
6793 |
-
|
6794 |
-
el.addEventListener('input', blocker); // $flow-disable-line
|
6795 |
-
|
6796 |
-
el.__ieph = true;
|
6797 |
-
/* IE placeholder patched */
|
6798 |
-
}
|
6799 |
-
|
6800 |
-
el.setAttribute(key, value);
|
6801 |
-
}
|
6802 |
-
}
|
6803 |
-
|
6804 |
-
var attrs = {
|
6805 |
-
create: updateAttrs,
|
6806 |
-
update: updateAttrs
|
6807 |
-
};
|
6808 |
-
/* */
|
6809 |
-
|
6810 |
-
function updateClass(oldVnode, vnode) {
|
6811 |
-
var el = vnode.elm;
|
6812 |
-
var data = vnode.data;
|
6813 |
-
var oldData = oldVnode.data;
|
6814 |
-
|
6815 |
-
if (isUndef(data.staticClass) && isUndef(data["class"]) && (isUndef(oldData) || isUndef(oldData.staticClass) && isUndef(oldData["class"]))) {
|
6816 |
-
return;
|
6817 |
-
}
|
6818 |
-
|
6819 |
-
var cls = genClassForVnode(vnode); // handle transition classes
|
6820 |
-
|
6821 |
-
var transitionClass = el._transitionClasses;
|
6822 |
-
|
6823 |
-
if (isDef(transitionClass)) {
|
6824 |
-
cls = concat(cls, stringifyClass(transitionClass));
|
6825 |
-
} // set the class
|
6826 |
-
|
6827 |
-
|
6828 |
-
if (cls !== el._prevClass) {
|
6829 |
-
el.setAttribute('class', cls);
|
6830 |
-
el._prevClass = cls;
|
6831 |
-
}
|
6832 |
-
}
|
6833 |
-
|
6834 |
-
var klass = {
|
6835 |
-
create: updateClass,
|
6836 |
-
update: updateClass
|
6837 |
-
};
|
6838 |
-
/* */
|
6839 |
-
|
6840 |
-
var validDivisionCharRE = /[\w).+\-_$\]]/;
|
6841 |
-
|
6842 |
-
function parseFilters(exp) {
|
6843 |
-
var inSingle = false;
|
6844 |
-
var inDouble = false;
|
6845 |
-
var inTemplateString = false;
|
6846 |
-
var inRegex = false;
|
6847 |
-
var curly = 0;
|
6848 |
-
var square = 0;
|
6849 |
-
var paren = 0;
|
6850 |
-
var lastFilterIndex = 0;
|
6851 |
-
var c, prev, i, expression, filters;
|
6852 |
-
|
6853 |
-
for (i = 0; i < exp.length; i++) {
|
6854 |
-
prev = c;
|
6855 |
-
c = exp.charCodeAt(i);
|
6856 |
-
|
6857 |
-
if (inSingle) {
|
6858 |
-
if (c === 0x27 && prev !== 0x5C) {
|
6859 |
-
inSingle = false;
|
6860 |
-
}
|
6861 |
-
} else if (inDouble) {
|
6862 |
-
if (c === 0x22 && prev !== 0x5C) {
|
6863 |
-
inDouble = false;
|
6864 |
-
}
|
6865 |
-
} else if (inTemplateString) {
|
6866 |
-
if (c === 0x60 && prev !== 0x5C) {
|
6867 |
-
inTemplateString = false;
|
6868 |
-
}
|
6869 |
-
} else if (inRegex) {
|
6870 |
-
if (c === 0x2f && prev !== 0x5C) {
|
6871 |
-
inRegex = false;
|
6872 |
-
}
|
6873 |
-
} else if (c === 0x7C && // pipe
|
6874 |
-
exp.charCodeAt(i + 1) !== 0x7C && exp.charCodeAt(i - 1) !== 0x7C && !curly && !square && !paren) {
|
6875 |
-
if (expression === undefined) {
|
6876 |
-
// first filter, end of expression
|
6877 |
-
lastFilterIndex = i + 1;
|
6878 |
-
expression = exp.slice(0, i).trim();
|
6879 |
-
} else {
|
6880 |
-
pushFilter();
|
6881 |
-
}
|
6882 |
-
} else {
|
6883 |
-
switch (c) {
|
6884 |
-
case 0x22:
|
6885 |
-
inDouble = true;
|
6886 |
-
break;
|
6887 |
-
// "
|
6888 |
-
|
6889 |
-
case 0x27:
|
6890 |
-
inSingle = true;
|
6891 |
-
break;
|
6892 |
-
// '
|
6893 |
-
|
6894 |
-
case 0x60:
|
6895 |
-
inTemplateString = true;
|
6896 |
-
break;
|
6897 |
-
// `
|
6898 |
-
|
6899 |
-
case 0x28:
|
6900 |
-
paren++;
|
6901 |
-
break;
|
6902 |
-
// (
|
6903 |
-
|
6904 |
-
case 0x29:
|
6905 |
-
paren--;
|
6906 |
-
break;
|
6907 |
-
// )
|
6908 |
-
|
6909 |
-
case 0x5B:
|
6910 |
-
square++;
|
6911 |
-
break;
|
6912 |
-
// [
|
6913 |
-
|
6914 |
-
case 0x5D:
|
6915 |
-
square--;
|
6916 |
-
break;
|
6917 |
-
// ]
|
6918 |
-
|
6919 |
-
case 0x7B:
|
6920 |
-
curly++;
|
6921 |
-
break;
|
6922 |
-
// {
|
6923 |
-
|
6924 |
-
case 0x7D:
|
6925 |
-
curly--;
|
6926 |
-
break;
|
6927 |
-
// }
|
6928 |
-
}
|
6929 |
-
|
6930 |
-
if (c === 0x2f) {
|
6931 |
-
// /
|
6932 |
-
var j = i - 1;
|
6933 |
-
var p = void 0; // find first non-whitespace prev char
|
6934 |
-
|
6935 |
-
for (; j >= 0; j--) {
|
6936 |
-
p = exp.charAt(j);
|
6937 |
-
|
6938 |
-
if (p !== ' ') {
|
6939 |
-
break;
|
6940 |
-
}
|
6941 |
-
}
|
6942 |
-
|
6943 |
-
if (!p || !validDivisionCharRE.test(p)) {
|
6944 |
-
inRegex = true;
|
6945 |
-
}
|
6946 |
-
}
|
6947 |
-
}
|
6948 |
-
}
|
6949 |
-
|
6950 |
-
if (expression === undefined) {
|
6951 |
-
expression = exp.slice(0, i).trim();
|
6952 |
-
} else if (lastFilterIndex !== 0) {
|
6953 |
-
pushFilter();
|
6954 |
-
}
|
6955 |
-
|
6956 |
-
function pushFilter() {
|
6957 |
-
(filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());
|
6958 |
-
lastFilterIndex = i + 1;
|
6959 |
-
}
|
6960 |
-
|
6961 |
-
if (filters) {
|
6962 |
-
for (i = 0; i < filters.length; i++) {
|
6963 |
-
expression = wrapFilter(expression, filters[i]);
|
6964 |
-
}
|
6965 |
-
}
|
6966 |
-
|
6967 |
-
return expression;
|
6968 |
-
}
|
6969 |
-
|
6970 |
-
function wrapFilter(exp, filter) {
|
6971 |
-
var i = filter.indexOf('(');
|
6972 |
-
|
6973 |
-
if (i < 0) {
|
6974 |
-
// _f: resolveFilter
|
6975 |
-
return "_f(\"" + filter + "\")(" + exp + ")";
|
6976 |
-
} else {
|
6977 |
-
var name = filter.slice(0, i);
|
6978 |
-
var args = filter.slice(i + 1);
|
6979 |
-
return "_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args);
|
6980 |
-
}
|
6981 |
-
}
|
6982 |
-
/* */
|
6983 |
-
|
6984 |
-
/* eslint-disable no-unused-vars */
|
6985 |
-
|
6986 |
-
|
6987 |
-
function baseWarn(msg, range) {
|
6988 |
-
console.error("[Vue compiler]: " + msg);
|
6989 |
-
}
|
6990 |
-
/* eslint-enable no-unused-vars */
|
6991 |
-
|
6992 |
-
|
6993 |
-
function pluckModuleFunction(modules, key) {
|
6994 |
-
return modules ? modules.map(function (m) {
|
6995 |
-
return m[key];
|
6996 |
-
}).filter(function (_) {
|
6997 |
-
return _;
|
6998 |
-
}) : [];
|
6999 |
-
}
|
7000 |
-
|
7001 |
-
function addProp(el, name, value, range, dynamic) {
|
7002 |
-
(el.props || (el.props = [])).push(rangeSetItem({
|
7003 |
-
name: name,
|
7004 |
-
value: value,
|
7005 |
-
dynamic: dynamic
|
7006 |
-
}, range));
|
7007 |
-
el.plain = false;
|
7008 |
-
}
|
7009 |
-
|
7010 |
-
function addAttr(el, name, value, range, dynamic) {
|
7011 |
-
var attrs = dynamic ? el.dynamicAttrs || (el.dynamicAttrs = []) : el.attrs || (el.attrs = []);
|
7012 |
-
attrs.push(rangeSetItem({
|
7013 |
-
name: name,
|
7014 |
-
value: value,
|
7015 |
-
dynamic: dynamic
|
7016 |
-
}, range));
|
7017 |
-
el.plain = false;
|
7018 |
-
} // add a raw attr (use this in preTransforms)
|
7019 |
-
|
7020 |
-
|
7021 |
-
function addRawAttr(el, name, value, range) {
|
7022 |
-
el.attrsMap[name] = value;
|
7023 |
-
el.attrsList.push(rangeSetItem({
|
7024 |
-
name: name,
|
7025 |
-
value: value
|
7026 |
-
}, range));
|
7027 |
-
}
|
7028 |
-
|
7029 |
-
function addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) {
|
7030 |
-
(el.directives || (el.directives = [])).push(rangeSetItem({
|
7031 |
-
name: name,
|
7032 |
-
rawName: rawName,
|
7033 |
-
value: value,
|
7034 |
-
arg: arg,
|
7035 |
-
isDynamicArg: isDynamicArg,
|
7036 |
-
modifiers: modifiers
|
7037 |
-
}, range));
|
7038 |
-
el.plain = false;
|
7039 |
-
}
|
7040 |
-
|
7041 |
-
function prependModifierMarker(symbol, name, dynamic) {
|
7042 |
-
return dynamic ? "_p(" + name + ",\"" + symbol + "\")" : symbol + name; // mark the event as captured
|
7043 |
-
}
|
7044 |
-
|
7045 |
-
function addHandler(el, name, value, modifiers, important, warn, range, dynamic) {
|
7046 |
-
modifiers = modifiers || emptyObject; // warn prevent and passive modifier
|
7047 |
-
|
7048 |
-
/* istanbul ignore if */
|
7049 |
-
|
7050 |
-
if (warn && modifiers.prevent && modifiers.passive) {
|
7051 |
-
warn('passive and prevent can\'t be used together. ' + 'Passive handler can\'t prevent default event.', range);
|
7052 |
-
} // normalize click.right and click.middle since they don't actually fire
|
7053 |
-
// this is technically browser-specific, but at least for now browsers are
|
7054 |
-
// the only target envs that have right/middle clicks.
|
7055 |
-
|
7056 |
-
|
7057 |
-
if (modifiers.right) {
|
7058 |
-
if (dynamic) {
|
7059 |
-
name = "(" + name + ")==='click'?'contextmenu':(" + name + ")";
|
7060 |
-
} else if (name === 'click') {
|
7061 |
-
name = 'contextmenu';
|
7062 |
-
delete modifiers.right;
|
7063 |
-
}
|
7064 |
-
} else if (modifiers.middle) {
|
7065 |
-
if (dynamic) {
|
7066 |
-
name = "(" + name + ")==='click'?'mouseup':(" + name + ")";
|
7067 |
-
} else if (name === 'click') {
|
7068 |
-
name = 'mouseup';
|
7069 |
-
}
|
7070 |
-
} // check capture modifier
|
7071 |
-
|
7072 |
-
|
7073 |
-
if (modifiers.capture) {
|
7074 |
-
delete modifiers.capture;
|
7075 |
-
name = prependModifierMarker('!', name, dynamic);
|
7076 |
-
}
|
7077 |
-
|
7078 |
-
if (modifiers.once) {
|
7079 |
-
delete modifiers.once;
|
7080 |
-
name = prependModifierMarker('~', name, dynamic);
|
7081 |
-
}
|
7082 |
-
/* istanbul ignore if */
|
7083 |
-
|
7084 |
-
|
7085 |
-
if (modifiers.passive) {
|
7086 |
-
delete modifiers.passive;
|
7087 |
-
name = prependModifierMarker('&', name, dynamic);
|
7088 |
-
}
|
7089 |
-
|
7090 |
-
var events;
|
7091 |
-
|
7092 |
-
if (modifiers["native"]) {
|
7093 |
-
delete modifiers["native"];
|
7094 |
-
events = el.nativeEvents || (el.nativeEvents = {});
|
7095 |
-
} else {
|
7096 |
-
events = el.events || (el.events = {});
|
7097 |
-
}
|
7098 |
-
|
7099 |
-
var newHandler = rangeSetItem({
|
7100 |
-
value: value.trim(),
|
7101 |
-
dynamic: dynamic
|
7102 |
-
}, range);
|
7103 |
-
|
7104 |
-
if (modifiers !== emptyObject) {
|
7105 |
-
newHandler.modifiers = modifiers;
|
7106 |
-
}
|
7107 |
-
|
7108 |
-
var handlers = events[name];
|
7109 |
-
/* istanbul ignore if */
|
7110 |
-
|
7111 |
-
if (Array.isArray(handlers)) {
|
7112 |
-
important ? handlers.unshift(newHandler) : handlers.push(newHandler);
|
7113 |
-
} else if (handlers) {
|
7114 |
-
events[name] = important ? [newHandler, handlers] : [handlers, newHandler];
|
7115 |
-
} else {
|
7116 |
-
events[name] = newHandler;
|
7117 |
-
}
|
7118 |
-
|
7119 |
-
el.plain = false;
|
7120 |
-
}
|
7121 |
-
|
7122 |
-
function getRawBindingAttr(el, name) {
|
7123 |
-
return el.rawAttrsMap[':' + name] || el.rawAttrsMap['v-bind:' + name] || el.rawAttrsMap[name];
|
7124 |
-
}
|
7125 |
-
|
7126 |
-
function getBindingAttr(el, name, getStatic) {
|
7127 |
-
var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);
|
7128 |
-
|
7129 |
-
if (dynamicValue != null) {
|
7130 |
-
return parseFilters(dynamicValue);
|
7131 |
-
} else if (getStatic !== false) {
|
7132 |
-
var staticValue = getAndRemoveAttr(el, name);
|
7133 |
-
|
7134 |
-
if (staticValue != null) {
|
7135 |
-
return JSON.stringify(staticValue);
|
7136 |
-
}
|
7137 |
-
}
|
7138 |
-
} // note: this only removes the attr from the Array (attrsList) so that it
|
7139 |
-
// doesn't get processed by processAttrs.
|
7140 |
-
// By default it does NOT remove it from the map (attrsMap) because the map is
|
7141 |
-
// needed during codegen.
|
7142 |
-
|
7143 |
-
|
7144 |
-
function getAndRemoveAttr(el, name, removeFromMap) {
|
7145 |
-
var val;
|
7146 |
-
|
7147 |
-
if ((val = el.attrsMap[name]) != null) {
|
7148 |
-
var list = el.attrsList;
|
7149 |
-
|
7150 |
-
for (var i = 0, l = list.length; i < l; i++) {
|
7151 |
-
if (list[i].name === name) {
|
7152 |
-
list.splice(i, 1);
|
7153 |
-
break;
|
7154 |
-
}
|
7155 |
-
}
|
7156 |
-
}
|
7157 |
-
|
7158 |
-
if (removeFromMap) {
|
7159 |
-
delete el.attrsMap[name];
|
7160 |
-
}
|
7161 |
-
|
7162 |
-
return val;
|
7163 |
-
}
|
7164 |
-
|
7165 |
-
function getAndRemoveAttrByRegex(el, name) {
|
7166 |
-
var list = el.attrsList;
|
7167 |
-
|
7168 |
-
for (var i = 0, l = list.length; i < l; i++) {
|
7169 |
-
var attr = list[i];
|
7170 |
-
|
7171 |
-
if (name.test(attr.name)) {
|
7172 |
-
list.splice(i, 1);
|
7173 |
-
return attr;
|
7174 |
-
}
|
7175 |
-
}
|
7176 |
-
}
|
7177 |
-
|
7178 |
-
function rangeSetItem(item, range) {
|
7179 |
-
if (range) {
|
7180 |
-
if (range.start != null) {
|
7181 |
-
item.start = range.start;
|
7182 |
-
}
|
7183 |
-
|
7184 |
-
if (range.end != null) {
|
7185 |
-
item.end = range.end;
|
7186 |
-
}
|
7187 |
-
}
|
7188 |
-
|
7189 |
-
return item;
|
7190 |
-
}
|
7191 |
-
/* */
|
7192 |
-
|
7193 |
-
/**
|
7194 |
-
* Cross-platform code generation for component v-model
|
7195 |
-
*/
|
7196 |
-
|
7197 |
-
|
7198 |
-
function genComponentModel(el, value, modifiers) {
|
7199 |
-
var ref = modifiers || {};
|
7200 |
-
var number = ref.number;
|
7201 |
-
var trim = ref.trim;
|
7202 |
-
var baseValueExpression = '$$v';
|
7203 |
-
var valueExpression = baseValueExpression;
|
7204 |
-
|
7205 |
-
if (trim) {
|
7206 |
-
valueExpression = "(typeof " + baseValueExpression + " === 'string'" + "? " + baseValueExpression + ".trim()" + ": " + baseValueExpression + ")";
|
7207 |
-
}
|
7208 |
-
|
7209 |
-
if (number) {
|
7210 |
-
valueExpression = "_n(" + valueExpression + ")";
|
7211 |
-
}
|
7212 |
-
|
7213 |
-
var assignment = genAssignmentCode(value, valueExpression);
|
7214 |
-
el.model = {
|
7215 |
-
value: "(" + value + ")",
|
7216 |
-
expression: JSON.stringify(value),
|
7217 |
-
callback: "function (" + baseValueExpression + ") {" + assignment + "}"
|
7218 |
-
};
|
7219 |
-
}
|
7220 |
-
/**
|
7221 |
-
* Cross-platform codegen helper for generating v-model value assignment code.
|
7222 |
-
*/
|
7223 |
-
|
7224 |
-
|
7225 |
-
function genAssignmentCode(value, assignment) {
|
7226 |
-
var res = parseModel(value);
|
7227 |
-
|
7228 |
-
if (res.key === null) {
|
7229 |
-
return value + "=" + assignment;
|
7230 |
-
} else {
|
7231 |
-
return "$set(" + res.exp + ", " + res.key + ", " + assignment + ")";
|
7232 |
-
}
|
7233 |
-
}
|
7234 |
-
/**
|
7235 |
-
* Parse a v-model expression into a base path and a final key segment.
|
7236 |
-
* Handles both dot-path and possible square brackets.
|
7237 |
-
*
|
7238 |
-
* Possible cases:
|
7239 |
-
*
|
7240 |
-
* - test
|
7241 |
-
* - test[key]
|
7242 |
-
* - test[test1[key]]
|
7243 |
-
* - test["a"][key]
|
7244 |
-
* - xxx.test[a[a].test1[key]]
|
7245 |
-
* - test.xxx.a["asa"][test1[key]]
|
7246 |
-
*
|
7247 |
-
*/
|
7248 |
-
|
7249 |
-
|
7250 |
-
var len, str, chr, index$1, expressionPos, expressionEndPos;
|
7251 |
-
|
7252 |
-
function parseModel(val) {
|
7253 |
-
// Fix https://github.com/vuejs/vue/pull/7730
|
7254 |
-
// allow v-model="obj.val " (trailing whitespace)
|
7255 |
-
val = val.trim();
|
7256 |
-
len = val.length;
|
7257 |
-
|
7258 |
-
if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {
|
7259 |
-
index$1 = val.lastIndexOf('.');
|
7260 |
-
|
7261 |
-
if (index$1 > -1) {
|
7262 |
-
return {
|
7263 |
-
exp: val.slice(0, index$1),
|
7264 |
-
key: '"' + val.slice(index$1 + 1) + '"'
|
7265 |
-
};
|
7266 |
-
} else {
|
7267 |
-
return {
|
7268 |
-
exp: val,
|
7269 |
-
key: null
|
7270 |
-
};
|
7271 |
-
}
|
7272 |
-
}
|
7273 |
-
|
7274 |
-
str = val;
|
7275 |
-
index$1 = expressionPos = expressionEndPos = 0;
|
7276 |
-
|
7277 |
-
while (!eof()) {
|
7278 |
-
chr = next();
|
7279 |
-
/* istanbul ignore if */
|
7280 |
-
|
7281 |
-
if (isStringStart(chr)) {
|
7282 |
-
parseString(chr);
|
7283 |
-
} else if (chr === 0x5B) {
|
7284 |
-
parseBracket(chr);
|
7285 |
-
}
|
7286 |
-
}
|
7287 |
-
|
7288 |
-
return {
|
7289 |
-
exp: val.slice(0, expressionPos),
|
7290 |
-
key: val.slice(expressionPos + 1, expressionEndPos)
|
7291 |
-
};
|
7292 |
-
}
|
7293 |
-
|
7294 |
-
function next() {
|
7295 |
-
return str.charCodeAt(++index$1);
|
7296 |
-
}
|
7297 |
-
|
7298 |
-
function eof() {
|
7299 |
-
return index$1 >= len;
|
7300 |
-
}
|
7301 |
-
|
7302 |
-
function isStringStart(chr) {
|
7303 |
-
return chr === 0x22 || chr === 0x27;
|
7304 |
-
}
|
7305 |
-
|
7306 |
-
function parseBracket(chr) {
|
7307 |
-
var inBracket = 1;
|
7308 |
-
expressionPos = index$1;
|
7309 |
-
|
7310 |
-
while (!eof()) {
|
7311 |
-
chr = next();
|
7312 |
-
|
7313 |
-
if (isStringStart(chr)) {
|
7314 |
-
parseString(chr);
|
7315 |
-
continue;
|
7316 |
-
}
|
7317 |
-
|
7318 |
-
if (chr === 0x5B) {
|
7319 |
-
inBracket++;
|
7320 |
-
}
|
7321 |
-
|
7322 |
-
if (chr === 0x5D) {
|
7323 |
-
inBracket--;
|
7324 |
-
}
|
7325 |
-
|
7326 |
-
if (inBracket === 0) {
|
7327 |
-
expressionEndPos = index$1;
|
7328 |
-
break;
|
7329 |
-
}
|
7330 |
-
}
|
7331 |
-
}
|
7332 |
-
|
7333 |
-
function parseString(chr) {
|
7334 |
-
var stringQuote = chr;
|
7335 |
-
|
7336 |
-
while (!eof()) {
|
7337 |
-
chr = next();
|
7338 |
-
|
7339 |
-
if (chr === stringQuote) {
|
7340 |
-
break;
|
7341 |
-
}
|
7342 |
-
}
|
7343 |
-
}
|
7344 |
-
/* */
|
7345 |
-
|
7346 |
-
|
7347 |
-
var warn$1; // in some cases, the event used has to be determined at runtime
|
7348 |
-
// so we used some reserved tokens during compile.
|
7349 |
-
|
7350 |
-
var RANGE_TOKEN = '__r';
|
7351 |
-
var CHECKBOX_RADIO_TOKEN = '__c';
|
7352 |
-
|
7353 |
-
function model(el, dir, _warn) {
|
7354 |
-
warn$1 = _warn;
|
7355 |
-
var value = dir.value;
|
7356 |
-
var modifiers = dir.modifiers;
|
7357 |
-
var tag = el.tag;
|
7358 |
-
var type = el.attrsMap.type;
|
7359 |
-
{
|
7360 |
-
// inputs with type="file" are read only and setting the input's
|
7361 |
-
// value will throw an error.
|
7362 |
-
if (tag === 'input' && type === 'file') {
|
7363 |
-
warn$1("<" + el.tag + " v-model=\"" + value + "\" type=\"file\">:\n" + "File inputs are read only. Use a v-on:change listener instead.", el.rawAttrsMap['v-model']);
|
7364 |
-
}
|
7365 |
-
}
|
7366 |
-
|
7367 |
-
if (el.component) {
|
7368 |
-
genComponentModel(el, value, modifiers); // component v-model doesn't need extra runtime
|
7369 |
-
|
7370 |
-
return false;
|
7371 |
-
} else if (tag === 'select') {
|
7372 |
-
genSelect(el, value, modifiers);
|
7373 |
-
} else if (tag === 'input' && type === 'checkbox') {
|
7374 |
-
genCheckboxModel(el, value, modifiers);
|
7375 |
-
} else if (tag === 'input' && type === 'radio') {
|
7376 |
-
genRadioModel(el, value, modifiers);
|
7377 |
-
} else if (tag === 'input' || tag === 'textarea') {
|
7378 |
-
genDefaultModel(el, value, modifiers);
|
7379 |
-
} else if (!config.isReservedTag(tag)) {
|
7380 |
-
genComponentModel(el, value, modifiers); // component v-model doesn't need extra runtime
|
7381 |
-
|
7382 |
-
return false;
|
7383 |
-
} else {
|
7384 |
-
warn$1("<" + el.tag + " v-model=\"" + value + "\">: " + "v-model is not supported on this element type. " + 'If you are working with contenteditable, it\'s recommended to ' + 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model']);
|
7385 |
-
} // ensure runtime directive metadata
|
7386 |
-
|
7387 |
-
|
7388 |
-
return true;
|
7389 |
-
}
|
7390 |
-
|
7391 |
-
function genCheckboxModel(el, value, modifiers) {
|
7392 |
-
var number = modifiers && modifiers.number;
|
7393 |
-
var valueBinding = getBindingAttr(el, 'value') || 'null';
|
7394 |
-
var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';
|
7395 |
-
var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';
|
7396 |
-
addProp(el, 'checked', "Array.isArray(" + value + ")" + "?_i(" + value + "," + valueBinding + ")>-1" + (trueValueBinding === 'true' ? ":(" + value + ")" : ":_q(" + value + "," + trueValueBinding + ")"));
|
7397 |
-
addHandler(el, 'change', "var $$a=" + value + "," + '$$el=$event.target,' + "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" + 'if(Array.isArray($$a)){' + "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," + '$$i=_i($$a,$$v);' + "if($$el.checked){$$i<0&&(" + genAssignmentCode(value, '$$a.concat([$$v])') + ")}" + "else{$$i>-1&&(" + genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))') + ")}" + "}else{" + genAssignmentCode(value, '$$c') + "}", null, true);
|
7398 |
-
}
|
7399 |
-
|
7400 |
-
function genRadioModel(el, value, modifiers) {
|
7401 |
-
var number = modifiers && modifiers.number;
|
7402 |
-
var valueBinding = getBindingAttr(el, 'value') || 'null';
|
7403 |
-
valueBinding = number ? "_n(" + valueBinding + ")" : valueBinding;
|
7404 |
-
addProp(el, 'checked', "_q(" + value + "," + valueBinding + ")");
|
7405 |
-
addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);
|
7406 |
-
}
|
7407 |
-
|
7408 |
-
function genSelect(el, value, modifiers) {
|
7409 |
-
var number = modifiers && modifiers.number;
|
7410 |
-
var selectedVal = "Array.prototype.filter" + ".call($event.target.options,function(o){return o.selected})" + ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" + "return " + (number ? '_n(val)' : 'val') + "})";
|
7411 |
-
var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';
|
7412 |
-
var code = "var $$selectedVal = " + selectedVal + ";";
|
7413 |
-
code = code + " " + genAssignmentCode(value, assignment);
|
7414 |
-
addHandler(el, 'change', code, null, true);
|
7415 |
-
}
|
7416 |
-
|
7417 |
-
function genDefaultModel(el, value, modifiers) {
|
7418 |
-
var type = el.attrsMap.type; // warn if v-bind:value conflicts with v-model
|
7419 |
-
// except for inputs with v-bind:type
|
7420 |
-
|
7421 |
-
{
|
7422 |
-
var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];
|
7423 |
-
var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];
|
7424 |
-
|
7425 |
-
if (value$1 && !typeBinding) {
|
7426 |
-
var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';
|
7427 |
-
warn$1(binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " + 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding]);
|
7428 |
-
}
|
7429 |
-
}
|
7430 |
-
var ref = modifiers || {};
|
7431 |
-
var lazy = ref.lazy;
|
7432 |
-
var number = ref.number;
|
7433 |
-
var trim = ref.trim;
|
7434 |
-
var needCompositionGuard = !lazy && type !== 'range';
|
7435 |
-
var event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input';
|
7436 |
-
var valueExpression = '$event.target.value';
|
7437 |
-
|
7438 |
-
if (trim) {
|
7439 |
-
valueExpression = "$event.target.value.trim()";
|
7440 |
-
}
|
7441 |
-
|
7442 |
-
if (number) {
|
7443 |
-
valueExpression = "_n(" + valueExpression + ")";
|
7444 |
-
}
|
7445 |
-
|
7446 |
-
var code = genAssignmentCode(value, valueExpression);
|
7447 |
-
|
7448 |
-
if (needCompositionGuard) {
|
7449 |
-
code = "if($event.target.composing)return;" + code;
|
7450 |
-
}
|
7451 |
-
|
7452 |
-
addProp(el, 'value', "(" + value + ")");
|
7453 |
-
addHandler(el, event, code, null, true);
|
7454 |
-
|
7455 |
-
if (trim || number) {
|
7456 |
-
addHandler(el, 'blur', '$forceUpdate()');
|
7457 |
-
}
|
7458 |
-
}
|
7459 |
-
/* */
|
7460 |
-
// normalize v-model event tokens that can only be determined at runtime.
|
7461 |
-
// it's important to place the event as the first in the array because
|
7462 |
-
// the whole point is ensuring the v-model callback gets called before
|
7463 |
-
// user-attached handlers.
|
7464 |
-
|
7465 |
-
|
7466 |
-
function normalizeEvents(on) {
|
7467 |
-
/* istanbul ignore if */
|
7468 |
-
if (isDef(on[RANGE_TOKEN])) {
|
7469 |
-
// IE input[type=range] only supports `change` event
|
7470 |
-
var event = isIE ? 'change' : 'input';
|
7471 |
-
on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);
|
7472 |
-
delete on[RANGE_TOKEN];
|
7473 |
-
} // This was originally intended to fix #4521 but no longer necessary
|
7474 |
-
// after 2.5. Keeping it for backwards compat with generated code from < 2.4
|
7475 |
-
|
7476 |
-
/* istanbul ignore if */
|
7477 |
-
|
7478 |
-
|
7479 |
-
if (isDef(on[CHECKBOX_RADIO_TOKEN])) {
|
7480 |
-
on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);
|
7481 |
-
delete on[CHECKBOX_RADIO_TOKEN];
|
7482 |
-
}
|
7483 |
-
}
|
7484 |
-
|
7485 |
-
var target$1;
|
7486 |
-
|
7487 |
-
function createOnceHandler$1(event, handler, capture) {
|
7488 |
-
var _target = target$1; // save current target element in closure
|
7489 |
-
|
7490 |
-
return function onceHandler() {
|
7491 |
-
var res = handler.apply(null, arguments);
|
7492 |
-
|
7493 |
-
if (res !== null) {
|
7494 |
-
remove$2(event, onceHandler, capture, _target);
|
7495 |
-
}
|
7496 |
-
};
|
7497 |
-
} // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp
|
7498 |
-
// implementation and does not fire microtasks in between event propagation, so
|
7499 |
-
// safe to exclude.
|
7500 |
-
|
7501 |
-
|
7502 |
-
var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);
|
7503 |
-
|
7504 |
-
function add$1(name, handler, capture, passive) {
|
7505 |
-
// async edge case #6566: inner click event triggers patch, event handler
|
7506 |
-
// attached to outer element during patch, and triggered again. This
|
7507 |
-
// happens because browsers fire microtask ticks between event propagation.
|
7508 |
-
// the solution is simple: we save the timestamp when a handler is attached,
|
7509 |
-
// and the handler would only fire if the event passed to it was fired
|
7510 |
-
// AFTER it was attached.
|
7511 |
-
if (useMicrotaskFix) {
|
7512 |
-
var attachedTimestamp = currentFlushTimestamp;
|
7513 |
-
var original = handler;
|
7514 |
-
|
7515 |
-
handler = original._wrapper = function (e) {
|
7516 |
-
if ( // no bubbling, should always fire.
|
7517 |
-
// this is just a safety net in case event.timeStamp is unreliable in
|
7518 |
-
// certain weird environments...
|
7519 |
-
e.target === e.currentTarget || // event is fired after handler attachment
|
7520 |
-
e.timeStamp >= attachedTimestamp || // bail for environments that have buggy event.timeStamp implementations
|
7521 |
-
// #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState
|
7522 |
-
// #9681 QtWebEngine event.timeStamp is negative value
|
7523 |
-
e.timeStamp <= 0 || // #9448 bail if event is fired in another document in a multi-page
|
7524 |
-
// electron/nw.js app, since event.timeStamp will be using a different
|
7525 |
-
// starting reference
|
7526 |
-
e.target.ownerDocument !== document) {
|
7527 |
-
return original.apply(this, arguments);
|
7528 |
-
}
|
7529 |
-
};
|
7530 |
-
}
|
7531 |
-
|
7532 |
-
target$1.addEventListener(name, handler, supportsPassive ? {
|
7533 |
-
capture: capture,
|
7534 |
-
passive: passive
|
7535 |
-
} : capture);
|
7536 |
-
}
|
7537 |
-
|
7538 |
-
function remove$2(name, handler, capture, _target) {
|
7539 |
-
(_target || target$1).removeEventListener(name, handler._wrapper || handler, capture);
|
7540 |
-
}
|
7541 |
-
|
7542 |
-
function updateDOMListeners(oldVnode, vnode) {
|
7543 |
-
if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {
|
7544 |
-
return;
|
7545 |
-
}
|
7546 |
-
|
7547 |
-
var on = vnode.data.on || {};
|
7548 |
-
var oldOn = oldVnode.data.on || {};
|
7549 |
-
target$1 = vnode.elm;
|
7550 |
-
normalizeEvents(on);
|
7551 |
-
updateListeners(on, oldOn, add$1, remove$2, createOnceHandler$1, vnode.context);
|
7552 |
-
target$1 = undefined;
|
7553 |
-
}
|
7554 |
-
|
7555 |
-
var events = {
|
7556 |
-
create: updateDOMListeners,
|
7557 |
-
update: updateDOMListeners
|
7558 |
-
};
|
7559 |
-
/* */
|
7560 |
-
|
7561 |
-
var svgContainer;
|
7562 |
-
|
7563 |
-
function updateDOMProps(oldVnode, vnode) {
|
7564 |
-
if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {
|
7565 |
-
return;
|
7566 |
-
}
|
7567 |
-
|
7568 |
-
var key, cur;
|
7569 |
-
var elm = vnode.elm;
|
7570 |
-
var oldProps = oldVnode.data.domProps || {};
|
7571 |
-
var props = vnode.data.domProps || {}; // clone observed objects, as the user probably wants to mutate it
|
7572 |
-
|
7573 |
-
if (isDef(props.__ob__)) {
|
7574 |
-
props = vnode.data.domProps = extend({}, props);
|
7575 |
-
}
|
7576 |
-
|
7577 |
-
for (key in oldProps) {
|
7578 |
-
if (!(key in props)) {
|
7579 |
-
elm[key] = '';
|
7580 |
-
}
|
7581 |
-
}
|
7582 |
-
|
7583 |
-
for (key in props) {
|
7584 |
-
cur = props[key]; // ignore children if the node has textContent or innerHTML,
|
7585 |
-
// as these will throw away existing DOM nodes and cause removal errors
|
7586 |
-
// on subsequent patches (#3360)
|
7587 |
-
|
7588 |
-
if (key === 'textContent' || key === 'innerHTML') {
|
7589 |
-
if (vnode.children) {
|
7590 |
-
vnode.children.length = 0;
|
7591 |
-
}
|
7592 |
-
|
7593 |
-
if (cur === oldProps[key]) {
|
7594 |
-
continue;
|
7595 |
-
} // #6601 work around Chrome version <= 55 bug where single textNode
|
7596 |
-
// replaced by innerHTML/textContent retains its parentNode property
|
7597 |
-
|
7598 |
-
|
7599 |
-
if (elm.childNodes.length === 1) {
|
7600 |
-
elm.removeChild(elm.childNodes[0]);
|
7601 |
-
}
|
7602 |
-
}
|
7603 |
-
|
7604 |
-
if (key === 'value' && elm.tagName !== 'PROGRESS') {
|
7605 |
-
// store value as _value as well since
|
7606 |
-
// non-string values will be stringified
|
7607 |
-
elm._value = cur; // avoid resetting cursor position when value is the same
|
7608 |
-
|
7609 |
-
var strCur = isUndef(cur) ? '' : String(cur);
|
7610 |
-
|
7611 |
-
if (shouldUpdateValue(elm, strCur)) {
|
7612 |
-
elm.value = strCur;
|
7613 |
-
}
|
7614 |
-
} else if (key === 'innerHTML' && isSVG(elm.tagName) && isUndef(elm.innerHTML)) {
|
7615 |
-
// IE doesn't support innerHTML for SVG elements
|
7616 |
-
svgContainer = svgContainer || document.createElement('div');
|
7617 |
-
svgContainer.innerHTML = "<svg>" + cur + "</svg>";
|
7618 |
-
var svg = svgContainer.firstChild;
|
7619 |
-
|
7620 |
-
while (elm.firstChild) {
|
7621 |
-
elm.removeChild(elm.firstChild);
|
7622 |
-
}
|
7623 |
-
|
7624 |
-
while (svg.firstChild) {
|
7625 |
-
elm.appendChild(svg.firstChild);
|
7626 |
-
}
|
7627 |
-
} else if ( // skip the update if old and new VDOM state is the same.
|
7628 |
-
// `value` is handled separately because the DOM value may be temporarily
|
7629 |
-
// out of sync with VDOM state due to focus, composition and modifiers.
|
7630 |
-
// This #4521 by skipping the unnecessary `checked` update.
|
7631 |
-
cur !== oldProps[key]) {
|
7632 |
-
// some property updates can throw
|
7633 |
-
// e.g. `value` on <progress> w/ non-finite value
|
7634 |
-
try {
|
7635 |
-
elm[key] = cur;
|
7636 |
-
} catch (e) {}
|
7637 |
-
}
|
7638 |
-
}
|
7639 |
-
} // check platforms/web/util/attrs.js acceptValue
|
7640 |
-
|
7641 |
-
|
7642 |
-
function shouldUpdateValue(elm, checkVal) {
|
7643 |
-
return !elm.composing && (elm.tagName === 'OPTION' || isNotInFocusAndDirty(elm, checkVal) || isDirtyWithModifiers(elm, checkVal));
|
7644 |
-
}
|
7645 |
-
|
7646 |
-
function isNotInFocusAndDirty(elm, checkVal) {
|
7647 |
-
// return true when textbox (.number and .trim) loses focus and its value is
|
7648 |
-
// not equal to the updated value
|
7649 |
-
var notInFocus = true; // #6157
|
7650 |
-
// work around IE bug when accessing document.activeElement in an iframe
|
7651 |
-
|
7652 |
-
try {
|
7653 |
-
notInFocus = document.activeElement !== elm;
|
7654 |
-
} catch (e) {}
|
7655 |
-
|
7656 |
-
return notInFocus && elm.value !== checkVal;
|
7657 |
-
}
|
7658 |
-
|
7659 |
-
function isDirtyWithModifiers(elm, newVal) {
|
7660 |
-
var value = elm.value;
|
7661 |
-
var modifiers = elm._vModifiers; // injected by v-model runtime
|
7662 |
-
|
7663 |
-
if (isDef(modifiers)) {
|
7664 |
-
if (modifiers.number) {
|
7665 |
-
return toNumber(value) !== toNumber(newVal);
|
7666 |
-
}
|
7667 |
-
|
7668 |
-
if (modifiers.trim) {
|
7669 |
-
return value.trim() !== newVal.trim();
|
7670 |
-
}
|
7671 |
-
}
|
7672 |
-
|
7673 |
-
return value !== newVal;
|
7674 |
-
}
|
7675 |
-
|
7676 |
-
var domProps = {
|
7677 |
-
create: updateDOMProps,
|
7678 |
-
update: updateDOMProps
|
7679 |
-
};
|
7680 |
-
/* */
|
7681 |
-
|
7682 |
-
var parseStyleText = cached(function (cssText) {
|
7683 |
-
var res = {};
|
7684 |
-
var listDelimiter = /;(?![^(]*\))/g;
|
7685 |
-
var propertyDelimiter = /:(.+)/;
|
7686 |
-
cssText.split(listDelimiter).forEach(function (item) {
|
7687 |
-
if (item) {
|
7688 |
-
var tmp = item.split(propertyDelimiter);
|
7689 |
-
tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());
|
7690 |
-
}
|
7691 |
-
});
|
7692 |
-
return res;
|
7693 |
-
}); // merge static and dynamic style data on the same vnode
|
7694 |
-
|
7695 |
-
function normalizeStyleData(data) {
|
7696 |
-
var style = normalizeStyleBinding(data.style); // static style is pre-processed into an object during compilation
|
7697 |
-
// and is always a fresh object, so it's safe to merge into it
|
7698 |
-
|
7699 |
-
return data.staticStyle ? extend(data.staticStyle, style) : style;
|
7700 |
-
} // normalize possible array / string values into Object
|
7701 |
-
|
7702 |
-
|
7703 |
-
function normalizeStyleBinding(bindingStyle) {
|
7704 |
-
if (Array.isArray(bindingStyle)) {
|
7705 |
-
return toObject(bindingStyle);
|
7706 |
-
}
|
7707 |
-
|
7708 |
-
if (typeof bindingStyle === 'string') {
|
7709 |
-
return parseStyleText(bindingStyle);
|
7710 |
-
}
|
7711 |
-
|
7712 |
-
return bindingStyle;
|
7713 |
-
}
|
7714 |
-
/**
|
7715 |
-
* parent component style should be after child's
|
7716 |
-
* so that parent component's style could override it
|
7717 |
-
*/
|
7718 |
-
|
7719 |
-
|
7720 |
-
function getStyle(vnode, checkChild) {
|
7721 |
-
var res = {};
|
7722 |
-
var styleData;
|
7723 |
-
|
7724 |
-
if (checkChild) {
|
7725 |
-
var childNode = vnode;
|
7726 |
-
|
7727 |
-
while (childNode.componentInstance) {
|
7728 |
-
childNode = childNode.componentInstance._vnode;
|
7729 |
-
|
7730 |
-
if (childNode && childNode.data && (styleData = normalizeStyleData(childNode.data))) {
|
7731 |
-
extend(res, styleData);
|
7732 |
-
}
|
7733 |
-
}
|
7734 |
-
}
|
7735 |
-
|
7736 |
-
if (styleData = normalizeStyleData(vnode.data)) {
|
7737 |
-
extend(res, styleData);
|
7738 |
-
}
|
7739 |
-
|
7740 |
-
var parentNode = vnode;
|
7741 |
-
|
7742 |
-
while (parentNode = parentNode.parent) {
|
7743 |
-
if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {
|
7744 |
-
extend(res, styleData);
|
7745 |
-
}
|
7746 |
-
}
|
7747 |
-
|
7748 |
-
return res;
|
7749 |
-
}
|
7750 |
-
/* */
|
7751 |
-
|
7752 |
-
|
7753 |
-
var cssVarRE = /^--/;
|
7754 |
-
var importantRE = /\s*!important$/;
|
7755 |
-
|
7756 |
-
var setProp = function setProp(el, name, val) {
|
7757 |
-
/* istanbul ignore if */
|
7758 |
-
if (cssVarRE.test(name)) {
|
7759 |
-
el.style.setProperty(name, val);
|
7760 |
-
} else if (importantRE.test(val)) {
|
7761 |
-
el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');
|
7762 |
-
} else {
|
7763 |
-
var normalizedName = normalize(name);
|
7764 |
-
|
7765 |
-
if (Array.isArray(val)) {
|
7766 |
-
// Support values array created by autoprefixer, e.g.
|
7767 |
-
// {display: ["-webkit-box", "-ms-flexbox", "flex"]}
|
7768 |
-
// Set them one by one, and the browser will only set those it can recognize
|
7769 |
-
for (var i = 0, len = val.length; i < len; i++) {
|
7770 |
-
el.style[normalizedName] = val[i];
|
7771 |
-
}
|
7772 |
-
} else {
|
7773 |
-
el.style[normalizedName] = val;
|
7774 |
-
}
|
7775 |
-
}
|
7776 |
-
};
|
7777 |
-
|
7778 |
-
var vendorNames = ['Webkit', 'Moz', 'ms'];
|
7779 |
-
var emptyStyle;
|
7780 |
-
var normalize = cached(function (prop) {
|
7781 |
-
emptyStyle = emptyStyle || document.createElement('div').style;
|
7782 |
-
prop = camelize(prop);
|
7783 |
-
|
7784 |
-
if (prop !== 'filter' && prop in emptyStyle) {
|
7785 |
-
return prop;
|
7786 |
-
}
|
7787 |
-
|
7788 |
-
var capName = prop.charAt(0).toUpperCase() + prop.slice(1);
|
7789 |
-
|
7790 |
-
for (var i = 0; i < vendorNames.length; i++) {
|
7791 |
-
var name = vendorNames[i] + capName;
|
7792 |
-
|
7793 |
-
if (name in emptyStyle) {
|
7794 |
-
return name;
|
7795 |
-
}
|
7796 |
-
}
|
7797 |
-
});
|
7798 |
-
|
7799 |
-
function updateStyle(oldVnode, vnode) {
|
7800 |
-
var data = vnode.data;
|
7801 |
-
var oldData = oldVnode.data;
|
7802 |
-
|
7803 |
-
if (isUndef(data.staticStyle) && isUndef(data.style) && isUndef(oldData.staticStyle) && isUndef(oldData.style)) {
|
7804 |
-
return;
|
7805 |
-
}
|
7806 |
-
|
7807 |
-
var cur, name;
|
7808 |
-
var el = vnode.elm;
|
7809 |
-
var oldStaticStyle = oldData.staticStyle;
|
7810 |
-
var oldStyleBinding = oldData.normalizedStyle || oldData.style || {}; // if static style exists, stylebinding already merged into it when doing normalizeStyleData
|
7811 |
-
|
7812 |
-
var oldStyle = oldStaticStyle || oldStyleBinding;
|
7813 |
-
var style = normalizeStyleBinding(vnode.data.style) || {}; // store normalized style under a different key for next diff
|
7814 |
-
// make sure to clone it if it's reactive, since the user likely wants
|
7815 |
-
// to mutate it.
|
7816 |
-
|
7817 |
-
vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;
|
7818 |
-
var newStyle = getStyle(vnode, true);
|
7819 |
-
|
7820 |
-
for (name in oldStyle) {
|
7821 |
-
if (isUndef(newStyle[name])) {
|
7822 |
-
setProp(el, name, '');
|
7823 |
-
}
|
7824 |
-
}
|
7825 |
-
|
7826 |
-
for (name in newStyle) {
|
7827 |
-
cur = newStyle[name];
|
7828 |
-
|
7829 |
-
if (cur !== oldStyle[name]) {
|
7830 |
-
// ie9 setting to null has no effect, must use empty string
|
7831 |
-
setProp(el, name, cur == null ? '' : cur);
|
7832 |
-
}
|
7833 |
-
}
|
7834 |
-
}
|
7835 |
-
|
7836 |
-
var style = {
|
7837 |
-
create: updateStyle,
|
7838 |
-
update: updateStyle
|
7839 |
-
};
|
7840 |
-
/* */
|
7841 |
-
|
7842 |
-
var whitespaceRE = /\s+/;
|
7843 |
-
/**
|
7844 |
-
* Add class with compatibility for SVG since classList is not supported on
|
7845 |
-
* SVG elements in IE
|
7846 |
-
*/
|
7847 |
-
|
7848 |
-
function addClass(el, cls) {
|
7849 |
-
/* istanbul ignore if */
|
7850 |
-
if (!cls || !(cls = cls.trim())) {
|
7851 |
-
return;
|
7852 |
-
}
|
7853 |
-
/* istanbul ignore else */
|
7854 |
-
|
7855 |
-
|
7856 |
-
if (el.classList) {
|
7857 |
-
if (cls.indexOf(' ') > -1) {
|
7858 |
-
cls.split(whitespaceRE).forEach(function (c) {
|
7859 |
-
return el.classList.add(c);
|
7860 |
-
});
|
7861 |
-
} else {
|
7862 |
-
el.classList.add(cls);
|
7863 |
-
}
|
7864 |
-
} else {
|
7865 |
-
var cur = " " + (el.getAttribute('class') || '') + " ";
|
7866 |
-
|
7867 |
-
if (cur.indexOf(' ' + cls + ' ') < 0) {
|
7868 |
-
el.setAttribute('class', (cur + cls).trim());
|
7869 |
-
}
|
7870 |
-
}
|
7871 |
-
}
|
7872 |
-
/**
|
7873 |
-
* Remove class with compatibility for SVG since classList is not supported on
|
7874 |
-
* SVG elements in IE
|
7875 |
-
*/
|
7876 |
-
|
7877 |
-
|
7878 |
-
function removeClass(el, cls) {
|
7879 |
-
/* istanbul ignore if */
|
7880 |
-
if (!cls || !(cls = cls.trim())) {
|
7881 |
-
return;
|
7882 |
-
}
|
7883 |
-
/* istanbul ignore else */
|
7884 |
-
|
7885 |
-
|
7886 |
-
if (el.classList) {
|
7887 |
-
if (cls.indexOf(' ') > -1) {
|
7888 |
-
cls.split(whitespaceRE).forEach(function (c) {
|
7889 |
-
return el.classList.remove(c);
|
7890 |
-
});
|
7891 |
-
} else {
|
7892 |
-
el.classList.remove(cls);
|
7893 |
-
}
|
7894 |
-
|
7895 |
-
if (!el.classList.length) {
|
7896 |
-
el.removeAttribute('class');
|
7897 |
-
}
|
7898 |
-
} else {
|
7899 |
-
var cur = " " + (el.getAttribute('class') || '') + " ";
|
7900 |
-
var tar = ' ' + cls + ' ';
|
7901 |
-
|
7902 |
-
while (cur.indexOf(tar) >= 0) {
|
7903 |
-
cur = cur.replace(tar, ' ');
|
7904 |
-
}
|
7905 |
-
|
7906 |
-
cur = cur.trim();
|
7907 |
-
|
7908 |
-
if (cur) {
|
7909 |
-
el.setAttribute('class', cur);
|
7910 |
-
} else {
|
7911 |
-
el.removeAttribute('class');
|
7912 |
-
}
|
7913 |
-
}
|
7914 |
-
}
|
7915 |
-
/* */
|
7916 |
-
|
7917 |
-
|
7918 |
-
function resolveTransition(def$$1) {
|
7919 |
-
if (!def$$1) {
|
7920 |
-
return;
|
7921 |
-
}
|
7922 |
-
/* istanbul ignore else */
|
7923 |
-
|
7924 |
-
|
7925 |
-
if (_typeof(def$$1) === 'object') {
|
7926 |
-
var res = {};
|
7927 |
-
|
7928 |
-
if (def$$1.css !== false) {
|
7929 |
-
extend(res, autoCssTransition(def$$1.name || 'v'));
|
7930 |
-
}
|
7931 |
-
|
7932 |
-
extend(res, def$$1);
|
7933 |
-
return res;
|
7934 |
-
} else if (typeof def$$1 === 'string') {
|
7935 |
-
return autoCssTransition(def$$1);
|
7936 |
-
}
|
7937 |
-
}
|
7938 |
-
|
7939 |
-
var autoCssTransition = cached(function (name) {
|
7940 |
-
return {
|
7941 |
-
enterClass: name + "-enter",
|
7942 |
-
enterToClass: name + "-enter-to",
|
7943 |
-
enterActiveClass: name + "-enter-active",
|
7944 |
-
leaveClass: name + "-leave",
|
7945 |
-
leaveToClass: name + "-leave-to",
|
7946 |
-
leaveActiveClass: name + "-leave-active"
|
7947 |
-
};
|
7948 |
-
});
|
7949 |
-
var hasTransition = inBrowser && !isIE9;
|
7950 |
-
var TRANSITION = 'transition';
|
7951 |
-
var ANIMATION = 'animation'; // Transition property/event sniffing
|
7952 |
-
|
7953 |
-
var transitionProp = 'transition';
|
7954 |
-
var transitionEndEvent = 'transitionend';
|
7955 |
-
var animationProp = 'animation';
|
7956 |
-
var animationEndEvent = 'animationend';
|
7957 |
-
|
7958 |
-
if (hasTransition) {
|
7959 |
-
/* istanbul ignore if */
|
7960 |
-
if (window.ontransitionend === undefined && window.onwebkittransitionend !== undefined) {
|
7961 |
-
transitionProp = 'WebkitTransition';
|
7962 |
-
transitionEndEvent = 'webkitTransitionEnd';
|
7963 |
-
}
|
7964 |
-
|
7965 |
-
if (window.onanimationend === undefined && window.onwebkitanimationend !== undefined) {
|
7966 |
-
animationProp = 'WebkitAnimation';
|
7967 |
-
animationEndEvent = 'webkitAnimationEnd';
|
7968 |
-
}
|
7969 |
-
} // binding to window is necessary to make hot reload work in IE in strict mode
|
7970 |
-
|
7971 |
-
|
7972 |
-
var raf = inBrowser ? window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : setTimeout :
|
7973 |
-
/* istanbul ignore next */
|
7974 |
-
function (fn) {
|
7975 |
-
return fn();
|
7976 |
-
};
|
7977 |
-
|
7978 |
-
function nextFrame(fn) {
|
7979 |
-
raf(function () {
|
7980 |
-
raf(fn);
|
7981 |
-
});
|
7982 |
-
}
|
7983 |
-
|
7984 |
-
function addTransitionClass(el, cls) {
|
7985 |
-
var transitionClasses = el._transitionClasses || (el._transitionClasses = []);
|
7986 |
-
|
7987 |
-
if (transitionClasses.indexOf(cls) < 0) {
|
7988 |
-
transitionClasses.push(cls);
|
7989 |
-
addClass(el, cls);
|
7990 |
-
}
|
7991 |
-
}
|
7992 |
-
|
7993 |
-
function removeTransitionClass(el, cls) {
|
7994 |
-
if (el._transitionClasses) {
|
7995 |
-
remove(el._transitionClasses, cls);
|
7996 |
-
}
|
7997 |
-
|
7998 |
-
removeClass(el, cls);
|
7999 |
-
}
|
8000 |
-
|
8001 |
-
function whenTransitionEnds(el, expectedType, cb) {
|
8002 |
-
var ref = getTransitionInfo(el, expectedType);
|
8003 |
-
var type = ref.type;
|
8004 |
-
var timeout = ref.timeout;
|
8005 |
-
var propCount = ref.propCount;
|
8006 |
-
|
8007 |
-
if (!type) {
|
8008 |
-
return cb();
|
8009 |
-
}
|
8010 |
-
|
8011 |
-
var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;
|
8012 |
-
var ended = 0;
|
8013 |
-
|
8014 |
-
var end = function end() {
|
8015 |
-
el.removeEventListener(event, onEnd);
|
8016 |
-
cb();
|
8017 |
-
};
|
8018 |
-
|
8019 |
-
var onEnd = function onEnd(e) {
|
8020 |
-
if (e.target === el) {
|
8021 |
-
if (++ended >= propCount) {
|
8022 |
-
end();
|
8023 |
-
}
|
8024 |
-
}
|
8025 |
-
};
|
8026 |
-
|
8027 |
-
setTimeout(function () {
|
8028 |
-
if (ended < propCount) {
|
8029 |
-
end();
|
8030 |
-
}
|
8031 |
-
}, timeout + 1);
|
8032 |
-
el.addEventListener(event, onEnd);
|
8033 |
-
}
|
8034 |
-
|
8035 |
-
var transformRE = /\b(transform|all)(,|$)/;
|
8036 |
-
|
8037 |
-
function getTransitionInfo(el, expectedType) {
|
8038 |
-
var styles = window.getComputedStyle(el); // JSDOM may return undefined for transition properties
|
8039 |
-
|
8040 |
-
var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');
|
8041 |
-
var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');
|
8042 |
-
var transitionTimeout = getTimeout(transitionDelays, transitionDurations);
|
8043 |
-
var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');
|
8044 |
-
var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');
|
8045 |
-
var animationTimeout = getTimeout(animationDelays, animationDurations);
|
8046 |
-
var type;
|
8047 |
-
var timeout = 0;
|
8048 |
-
var propCount = 0;
|
8049 |
-
/* istanbul ignore if */
|
8050 |
-
|
8051 |
-
if (expectedType === TRANSITION) {
|
8052 |
-
if (transitionTimeout > 0) {
|
8053 |
-
type = TRANSITION;
|
8054 |
-
timeout = transitionTimeout;
|
8055 |
-
propCount = transitionDurations.length;
|
8056 |
-
}
|
8057 |
-
} else if (expectedType === ANIMATION) {
|
8058 |
-
if (animationTimeout > 0) {
|
8059 |
-
type = ANIMATION;
|
8060 |
-
timeout = animationTimeout;
|
8061 |
-
propCount = animationDurations.length;
|
8062 |
-
}
|
8063 |
-
} else {
|
8064 |
-
timeout = Math.max(transitionTimeout, animationTimeout);
|
8065 |
-
type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
|
8066 |
-
propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
|
8067 |
-
}
|
8068 |
-
|
8069 |
-
var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);
|
8070 |
-
return {
|
8071 |
-
type: type,
|
8072 |
-
timeout: timeout,
|
8073 |
-
propCount: propCount,
|
8074 |
-
hasTransform: hasTransform
|
8075 |
-
};
|
8076 |
-
}
|
8077 |
-
|
8078 |
-
function getTimeout(delays, durations) {
|
8079 |
-
/* istanbul ignore next */
|
8080 |
-
while (delays.length < durations.length) {
|
8081 |
-
delays = delays.concat(delays);
|
8082 |
-
}
|
8083 |
-
|
8084 |
-
return Math.max.apply(null, durations.map(function (d, i) {
|
8085 |
-
return toMs(d) + toMs(delays[i]);
|
8086 |
-
}));
|
8087 |
-
} // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers
|
8088 |
-
// in a locale-dependent way, using a comma instead of a dot.
|
8089 |
-
// If comma is not replaced with a dot, the input will be rounded down (i.e. acting
|
8090 |
-
// as a floor function) causing unexpected behaviors
|
8091 |
-
|
8092 |
-
|
8093 |
-
function toMs(s) {
|
8094 |
-
return Number(s.slice(0, -1).replace(',', '.')) * 1000;
|
8095 |
-
}
|
8096 |
-
/* */
|
8097 |
-
|
8098 |
-
|
8099 |
-
function enter(vnode, toggleDisplay) {
|
8100 |
-
var el = vnode.elm; // call leave callback now
|
8101 |
-
|
8102 |
-
if (isDef(el._leaveCb)) {
|
8103 |
-
el._leaveCb.cancelled = true;
|
8104 |
-
|
8105 |
-
el._leaveCb();
|
8106 |
-
}
|
8107 |
-
|
8108 |
-
var data = resolveTransition(vnode.data.transition);
|
8109 |
-
|
8110 |
-
if (isUndef(data)) {
|
8111 |
-
return;
|
8112 |
-
}
|
8113 |
-
/* istanbul ignore if */
|
8114 |
-
|
8115 |
-
|
8116 |
-
if (isDef(el._enterCb) || el.nodeType !== 1) {
|
8117 |
-
return;
|
8118 |
-
}
|
8119 |
-
|
8120 |
-
var css = data.css;
|
8121 |
-
var type = data.type;
|
8122 |
-
var enterClass = data.enterClass;
|
8123 |
-
var enterToClass = data.enterToClass;
|
8124 |
-
var enterActiveClass = data.enterActiveClass;
|
8125 |
-
var appearClass = data.appearClass;
|
8126 |
-
var appearToClass = data.appearToClass;
|
8127 |
-
var appearActiveClass = data.appearActiveClass;
|
8128 |
-
var beforeEnter = data.beforeEnter;
|
8129 |
-
var enter = data.enter;
|
8130 |
-
var afterEnter = data.afterEnter;
|
8131 |
-
var enterCancelled = data.enterCancelled;
|
8132 |
-
var beforeAppear = data.beforeAppear;
|
8133 |
-
var appear = data.appear;
|
8134 |
-
var afterAppear = data.afterAppear;
|
8135 |
-
var appearCancelled = data.appearCancelled;
|
8136 |
-
var duration = data.duration; // activeInstance will always be the <transition> component managing this
|
8137 |
-
// transition. One edge case to check is when the <transition> is placed
|
8138 |
-
// as the root node of a child component. In that case we need to check
|
8139 |
-
// <transition>'s parent for appear check.
|
8140 |
-
|
8141 |
-
var context = activeInstance;
|
8142 |
-
var transitionNode = activeInstance.$vnode;
|
8143 |
-
|
8144 |
-
while (transitionNode && transitionNode.parent) {
|
8145 |
-
context = transitionNode.context;
|
8146 |
-
transitionNode = transitionNode.parent;
|
8147 |
-
}
|
8148 |
-
|
8149 |
-
var isAppear = !context._isMounted || !vnode.isRootInsert;
|
8150 |
-
|
8151 |
-
if (isAppear && !appear && appear !== '') {
|
8152 |
-
return;
|
8153 |
-
}
|
8154 |
-
|
8155 |
-
var startClass = isAppear && appearClass ? appearClass : enterClass;
|
8156 |
-
var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;
|
8157 |
-
var toClass = isAppear && appearToClass ? appearToClass : enterToClass;
|
8158 |
-
var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;
|
8159 |
-
var enterHook = isAppear ? typeof appear === 'function' ? appear : enter : enter;
|
8160 |
-
var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;
|
8161 |
-
var enterCancelledHook = isAppear ? appearCancelled || enterCancelled : enterCancelled;
|
8162 |
-
var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);
|
8163 |
-
|
8164 |
-
if (explicitEnterDuration != null) {
|
8165 |
-
checkDuration(explicitEnterDuration, 'enter', vnode);
|
8166 |
-
}
|
8167 |
-
|
8168 |
-
var expectsCSS = css !== false && !isIE9;
|
8169 |
-
var userWantsControl = getHookArgumentsLength(enterHook);
|
8170 |
-
var cb = el._enterCb = once(function () {
|
8171 |
-
if (expectsCSS) {
|
8172 |
-
removeTransitionClass(el, toClass);
|
8173 |
-
removeTransitionClass(el, activeClass);
|
8174 |
-
}
|
8175 |
-
|
8176 |
-
if (cb.cancelled) {
|
8177 |
-
if (expectsCSS) {
|
8178 |
-
removeTransitionClass(el, startClass);
|
8179 |
-
}
|
8180 |
-
|
8181 |
-
enterCancelledHook && enterCancelledHook(el);
|
8182 |
-
} else {
|
8183 |
-
afterEnterHook && afterEnterHook(el);
|
8184 |
-
}
|
8185 |
-
|
8186 |
-
el._enterCb = null;
|
8187 |
-
});
|
8188 |
-
|
8189 |
-
if (!vnode.data.show) {
|
8190 |
-
// remove pending leave element on enter by injecting an insert hook
|
8191 |
-
mergeVNodeHook(vnode, 'insert', function () {
|
8192 |
-
var parent = el.parentNode;
|
8193 |
-
var pendingNode = parent && parent._pending && parent._pending[vnode.key];
|
8194 |
-
|
8195 |
-
if (pendingNode && pendingNode.tag === vnode.tag && pendingNode.elm._leaveCb) {
|
8196 |
-
pendingNode.elm._leaveCb();
|
8197 |
-
}
|
8198 |
-
|
8199 |
-
enterHook && enterHook(el, cb);
|
8200 |
-
});
|
8201 |
-
} // start enter transition
|
8202 |
-
|
8203 |
-
|
8204 |
-
beforeEnterHook && beforeEnterHook(el);
|
8205 |
-
|
8206 |
-
if (expectsCSS) {
|
8207 |
-
addTransitionClass(el, startClass);
|
8208 |
-
addTransitionClass(el, activeClass);
|
8209 |
-
nextFrame(function () {
|
8210 |
-
removeTransitionClass(el, startClass);
|
8211 |
-
|
8212 |
-
if (!cb.cancelled) {
|
8213 |
-
addTransitionClass(el, toClass);
|
8214 |
-
|
8215 |
-
if (!userWantsControl) {
|
8216 |
-
if (isValidDuration(explicitEnterDuration)) {
|
8217 |
-
setTimeout(cb, explicitEnterDuration);
|
8218 |
-
} else {
|
8219 |
-
whenTransitionEnds(el, type, cb);
|
8220 |
-
}
|
8221 |
-
}
|
8222 |
-
}
|
8223 |
-
});
|
8224 |
-
}
|
8225 |
-
|
8226 |
-
if (vnode.data.show) {
|
8227 |
-
toggleDisplay && toggleDisplay();
|
8228 |
-
enterHook && enterHook(el, cb);
|
8229 |
-
}
|
8230 |
-
|
8231 |
-
if (!expectsCSS && !userWantsControl) {
|
8232 |
-
cb();
|
8233 |
-
}
|
8234 |
-
}
|
8235 |
-
|
8236 |
-
function leave(vnode, rm) {
|
8237 |
-
var el = vnode.elm; // call enter callback now
|
8238 |
-
|
8239 |
-
if (isDef(el._enterCb)) {
|
8240 |
-
el._enterCb.cancelled = true;
|
8241 |
-
|
8242 |
-
el._enterCb();
|
8243 |
-
}
|
8244 |
-
|
8245 |
-
var data = resolveTransition(vnode.data.transition);
|
8246 |
-
|
8247 |
-
if (isUndef(data) || el.nodeType !== 1) {
|
8248 |
-
return rm();
|
8249 |
-
}
|
8250 |
-
/* istanbul ignore if */
|
8251 |
-
|
8252 |
-
|
8253 |
-
if (isDef(el._leaveCb)) {
|
8254 |
-
return;
|
8255 |
-
}
|
8256 |
-
|
8257 |
-
var css = data.css;
|
8258 |
-
var type = data.type;
|
8259 |
-
var leaveClass = data.leaveClass;
|
8260 |
-
var leaveToClass = data.leaveToClass;
|
8261 |
-
var leaveActiveClass = data.leaveActiveClass;
|
8262 |
-
var beforeLeave = data.beforeLeave;
|
8263 |
-
var leave = data.leave;
|
8264 |
-
var afterLeave = data.afterLeave;
|
8265 |
-
var leaveCancelled = data.leaveCancelled;
|
8266 |
-
var delayLeave = data.delayLeave;
|
8267 |
-
var duration = data.duration;
|
8268 |
-
var expectsCSS = css !== false && !isIE9;
|
8269 |
-
var userWantsControl = getHookArgumentsLength(leave);
|
8270 |
-
var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);
|
8271 |
-
|
8272 |
-
if (isDef(explicitLeaveDuration)) {
|
8273 |
-
checkDuration(explicitLeaveDuration, 'leave', vnode);
|
8274 |
-
}
|
8275 |
-
|
8276 |
-
var cb = el._leaveCb = once(function () {
|
8277 |
-
if (el.parentNode && el.parentNode._pending) {
|
8278 |
-
el.parentNode._pending[vnode.key] = null;
|
8279 |
-
}
|
8280 |
-
|
8281 |
-
if (expectsCSS) {
|
8282 |
-
removeTransitionClass(el, leaveToClass);
|
8283 |
-
removeTransitionClass(el, leaveActiveClass);
|
8284 |
-
}
|
8285 |
-
|
8286 |
-
if (cb.cancelled) {
|
8287 |
-
if (expectsCSS) {
|
8288 |
-
removeTransitionClass(el, leaveClass);
|
8289 |
-
}
|
8290 |
-
|
8291 |
-
leaveCancelled && leaveCancelled(el);
|
8292 |
-
} else {
|
8293 |
-
rm();
|
8294 |
-
afterLeave && afterLeave(el);
|
8295 |
-
}
|
8296 |
-
|
8297 |
-
el._leaveCb = null;
|
8298 |
-
});
|
8299 |
-
|
8300 |
-
if (delayLeave) {
|
8301 |
-
delayLeave(performLeave);
|
8302 |
-
} else {
|
8303 |
-
performLeave();
|
8304 |
-
}
|
8305 |
-
|
8306 |
-
function performLeave() {
|
8307 |
-
// the delayed leave may have already been cancelled
|
8308 |
-
if (cb.cancelled) {
|
8309 |
-
return;
|
8310 |
-
} // record leaving element
|
8311 |
-
|
8312 |
-
|
8313 |
-
if (!vnode.data.show && el.parentNode) {
|
8314 |
-
(el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] = vnode;
|
8315 |
-
}
|
8316 |
-
|
8317 |
-
beforeLeave && beforeLeave(el);
|
8318 |
-
|
8319 |
-
if (expectsCSS) {
|
8320 |
-
addTransitionClass(el, leaveClass);
|
8321 |
-
addTransitionClass(el, leaveActiveClass);
|
8322 |
-
nextFrame(function () {
|
8323 |
-
removeTransitionClass(el, leaveClass);
|
8324 |
-
|
8325 |
-
if (!cb.cancelled) {
|
8326 |
-
addTransitionClass(el, leaveToClass);
|
8327 |
-
|
8328 |
-
if (!userWantsControl) {
|
8329 |
-
if (isValidDuration(explicitLeaveDuration)) {
|
8330 |
-
setTimeout(cb, explicitLeaveDuration);
|
8331 |
-
} else {
|
8332 |
-
whenTransitionEnds(el, type, cb);
|
8333 |
-
}
|
8334 |
-
}
|
8335 |
-
}
|
8336 |
-
});
|
8337 |
-
}
|
8338 |
-
|
8339 |
-
leave && leave(el, cb);
|
8340 |
-
|
8341 |
-
if (!expectsCSS && !userWantsControl) {
|
8342 |
-
cb();
|
8343 |
-
}
|
8344 |
-
}
|
8345 |
-
} // only used in dev mode
|
8346 |
-
|
8347 |
-
|
8348 |
-
function checkDuration(val, name, vnode) {
|
8349 |
-
if (typeof val !== 'number') {
|
8350 |
-
warn("<transition> explicit " + name + " duration is not a valid number - " + "got " + JSON.stringify(val) + ".", vnode.context);
|
8351 |
-
} else if (isNaN(val)) {
|
8352 |
-
warn("<transition> explicit " + name + " duration is NaN - " + 'the duration expression might be incorrect.', vnode.context);
|
8353 |
-
}
|
8354 |
-
}
|
8355 |
-
|
8356 |
-
function isValidDuration(val) {
|
8357 |
-
return typeof val === 'number' && !isNaN(val);
|
8358 |
-
}
|
8359 |
-
/**
|
8360 |
-
* Normalize a transition hook's argument length. The hook may be:
|
8361 |
-
* - a merged hook (invoker) with the original in .fns
|
8362 |
-
* - a wrapped component method (check ._length)
|
8363 |
-
* - a plain function (.length)
|
8364 |
-
*/
|
8365 |
-
|
8366 |
-
|
8367 |
-
function getHookArgumentsLength(fn) {
|
8368 |
-
if (isUndef(fn)) {
|
8369 |
-
return false;
|
8370 |
-
}
|
8371 |
-
|
8372 |
-
var invokerFns = fn.fns;
|
8373 |
-
|
8374 |
-
if (isDef(invokerFns)) {
|
8375 |
-
// invoker
|
8376 |
-
return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);
|
8377 |
-
} else {
|
8378 |
-
return (fn._length || fn.length) > 1;
|
8379 |
-
}
|
8380 |
-
}
|
8381 |
-
|
8382 |
-
function _enter(_, vnode) {
|
8383 |
-
if (vnode.data.show !== true) {
|
8384 |
-
enter(vnode);
|
8385 |
-
}
|
8386 |
-
}
|
8387 |
-
|
8388 |
-
var transition = inBrowser ? {
|
8389 |
-
create: _enter,
|
8390 |
-
activate: _enter,
|
8391 |
-
remove: function remove$$1(vnode, rm) {
|
8392 |
-
/* istanbul ignore else */
|
8393 |
-
if (vnode.data.show !== true) {
|
8394 |
-
leave(vnode, rm);
|
8395 |
-
} else {
|
8396 |
-
rm();
|
8397 |
-
}
|
8398 |
-
}
|
8399 |
-
} : {};
|
8400 |
-
var platformModules = [attrs, klass, events, domProps, style, transition];
|
8401 |
-
/* */
|
8402 |
-
// the directive module should be applied last, after all
|
8403 |
-
// built-in modules have been applied.
|
8404 |
-
|
8405 |
-
var modules = platformModules.concat(baseModules);
|
8406 |
-
var patch = createPatchFunction({
|
8407 |
-
nodeOps: nodeOps,
|
8408 |
-
modules: modules
|
8409 |
-
});
|
8410 |
-
/**
|
8411 |
-
* Not type checking this file because flow doesn't like attaching
|
8412 |
-
* properties to Elements.
|
8413 |
-
*/
|
8414 |
-
|
8415 |
-
/* istanbul ignore if */
|
8416 |
-
|
8417 |
-
if (isIE9) {
|
8418 |
-
// http://www.matts411.com/post/internet-explorer-9-oninput/
|
8419 |
-
document.addEventListener('selectionchange', function () {
|
8420 |
-
var el = document.activeElement;
|
8421 |
-
|
8422 |
-
if (el && el.vmodel) {
|
8423 |
-
trigger(el, 'input');
|
8424 |
-
}
|
8425 |
-
});
|
8426 |
-
}
|
8427 |
-
|
8428 |
-
var directive = {
|
8429 |
-
inserted: function inserted(el, binding, vnode, oldVnode) {
|
8430 |
-
if (vnode.tag === 'select') {
|
8431 |
-
// #6903
|
8432 |
-
if (oldVnode.elm && !oldVnode.elm._vOptions) {
|
8433 |
-
mergeVNodeHook(vnode, 'postpatch', function () {
|
8434 |
-
directive.componentUpdated(el, binding, vnode);
|
8435 |
-
});
|
8436 |
-
} else {
|
8437 |
-
setSelected(el, binding, vnode.context);
|
8438 |
-
}
|
8439 |
-
|
8440 |
-
el._vOptions = [].map.call(el.options, getValue);
|
8441 |
-
} else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {
|
8442 |
-
el._vModifiers = binding.modifiers;
|
8443 |
-
|
8444 |
-
if (!binding.modifiers.lazy) {
|
8445 |
-
el.addEventListener('compositionstart', onCompositionStart);
|
8446 |
-
el.addEventListener('compositionend', onCompositionEnd); // Safari < 10.2 & UIWebView doesn't fire compositionend when
|
8447 |
-
// switching focus before confirming composition choice
|
8448 |
-
// this also fixes the issue where some browsers e.g. iOS Chrome
|
8449 |
-
// fires "change" instead of "input" on autocomplete.
|
8450 |
-
|
8451 |
-
el.addEventListener('change', onCompositionEnd);
|
8452 |
-
/* istanbul ignore if */
|
8453 |
-
|
8454 |
-
if (isIE9) {
|
8455 |
-
el.vmodel = true;
|
8456 |
-
}
|
8457 |
-
}
|
8458 |
-
}
|
8459 |
-
},
|
8460 |
-
componentUpdated: function componentUpdated(el, binding, vnode) {
|
8461 |
-
if (vnode.tag === 'select') {
|
8462 |
-
setSelected(el, binding, vnode.context); // in case the options rendered by v-for have changed,
|
8463 |
-
// it's possible that the value is out-of-sync with the rendered options.
|
8464 |
-
// detect such cases and filter out values that no longer has a matching
|
8465 |
-
// option in the DOM.
|
8466 |
-
|
8467 |
-
var prevOptions = el._vOptions;
|
8468 |
-
var curOptions = el._vOptions = [].map.call(el.options, getValue);
|
8469 |
-
|
8470 |
-
if (curOptions.some(function (o, i) {
|
8471 |
-
return !looseEqual(o, prevOptions[i]);
|
8472 |
-
})) {
|
8473 |
-
// trigger change event if
|
8474 |
-
// no matching option found for at least one value
|
8475 |
-
var needReset = el.multiple ? binding.value.some(function (v) {
|
8476 |
-
return hasNoMatchingOption(v, curOptions);
|
8477 |
-
}) : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);
|
8478 |
-
|
8479 |
-
if (needReset) {
|
8480 |
-
trigger(el, 'change');
|
8481 |
-
}
|
8482 |
-
}
|
8483 |
-
}
|
8484 |
-
}
|
8485 |
-
};
|
8486 |
-
|
8487 |
-
function setSelected(el, binding, vm) {
|
8488 |
-
actuallySetSelected(el, binding, vm);
|
8489 |
-
/* istanbul ignore if */
|
8490 |
-
|
8491 |
-
if (isIE || isEdge) {
|
8492 |
-
setTimeout(function () {
|
8493 |
-
actuallySetSelected(el, binding, vm);
|
8494 |
-
}, 0);
|
8495 |
-
}
|
8496 |
-
}
|
8497 |
-
|
8498 |
-
function actuallySetSelected(el, binding, vm) {
|
8499 |
-
var value = binding.value;
|
8500 |
-
var isMultiple = el.multiple;
|
8501 |
-
|
8502 |
-
if (isMultiple && !Array.isArray(value)) {
|
8503 |
-
warn("<select multiple v-model=\"" + binding.expression + "\"> " + "expects an Array value for its binding, but got " + Object.prototype.toString.call(value).slice(8, -1), vm);
|
8504 |
-
return;
|
8505 |
-
}
|
8506 |
-
|
8507 |
-
var selected, option;
|
8508 |
-
|
8509 |
-
for (var i = 0, l = el.options.length; i < l; i++) {
|
8510 |
-
option = el.options[i];
|
8511 |
-
|
8512 |
-
if (isMultiple) {
|
8513 |
-
selected = looseIndexOf(value, getValue(option)) > -1;
|
8514 |
-
|
8515 |
-
if (option.selected !== selected) {
|
8516 |
-
option.selected = selected;
|
8517 |
-
}
|
8518 |
-
} else {
|
8519 |
-
if (looseEqual(getValue(option), value)) {
|
8520 |
-
if (el.selectedIndex !== i) {
|
8521 |
-
el.selectedIndex = i;
|
8522 |
-
}
|
8523 |
-
|
8524 |
-
return;
|
8525 |
-
}
|
8526 |
-
}
|
8527 |
-
}
|
8528 |
-
|
8529 |
-
if (!isMultiple) {
|
8530 |
-
el.selectedIndex = -1;
|
8531 |
-
}
|
8532 |
-
}
|
8533 |
-
|
8534 |
-
function hasNoMatchingOption(value, options) {
|
8535 |
-
return options.every(function (o) {
|
8536 |
-
return !looseEqual(o, value);
|
8537 |
-
});
|
8538 |
-
}
|
8539 |
-
|
8540 |
-
function getValue(option) {
|
8541 |
-
return '_value' in option ? option._value : option.value;
|
8542 |
-
}
|
8543 |
-
|
8544 |
-
function onCompositionStart(e) {
|
8545 |
-
e.target.composing = true;
|
8546 |
-
}
|
8547 |
-
|
8548 |
-
function onCompositionEnd(e) {
|
8549 |
-
// prevent triggering an input event for no reason
|
8550 |
-
if (!e.target.composing) {
|
8551 |
-
return;
|
8552 |
-
}
|
8553 |
-
|
8554 |
-
e.target.composing = false;
|
8555 |
-
trigger(e.target, 'input');
|
8556 |
-
}
|
8557 |
-
|
8558 |
-
function trigger(el, type) {
|
8559 |
-
var e = document.createEvent('HTMLEvents');
|
8560 |
-
e.initEvent(type, true, true);
|
8561 |
-
el.dispatchEvent(e);
|
8562 |
-
}
|
8563 |
-
/* */
|
8564 |
-
// recursively search for possible transition defined inside the component root
|
8565 |
-
|
8566 |
-
|
8567 |
-
function locateNode(vnode) {
|
8568 |
-
return vnode.componentInstance && (!vnode.data || !vnode.data.transition) ? locateNode(vnode.componentInstance._vnode) : vnode;
|
8569 |
-
}
|
8570 |
-
|
8571 |
-
var show = {
|
8572 |
-
bind: function bind(el, ref, vnode) {
|
8573 |
-
var value = ref.value;
|
8574 |
-
vnode = locateNode(vnode);
|
8575 |
-
var transition$$1 = vnode.data && vnode.data.transition;
|
8576 |
-
var originalDisplay = el.__vOriginalDisplay = el.style.display === 'none' ? '' : el.style.display;
|
8577 |
-
|
8578 |
-
if (value && transition$$1) {
|
8579 |
-
vnode.data.show = true;
|
8580 |
-
enter(vnode, function () {
|
8581 |
-
el.style.display = originalDisplay;
|
8582 |
-
});
|
8583 |
-
} else {
|
8584 |
-
el.style.display = value ? originalDisplay : 'none';
|
8585 |
-
}
|
8586 |
-
},
|
8587 |
-
update: function update(el, ref, vnode) {
|
8588 |
-
var value = ref.value;
|
8589 |
-
var oldValue = ref.oldValue;
|
8590 |
-
/* istanbul ignore if */
|
8591 |
-
|
8592 |
-
if (!value === !oldValue) {
|
8593 |
-
return;
|
8594 |
-
}
|
8595 |
-
|
8596 |
-
vnode = locateNode(vnode);
|
8597 |
-
var transition$$1 = vnode.data && vnode.data.transition;
|
8598 |
-
|
8599 |
-
if (transition$$1) {
|
8600 |
-
vnode.data.show = true;
|
8601 |
-
|
8602 |
-
if (value) {
|
8603 |
-
enter(vnode, function () {
|
8604 |
-
el.style.display = el.__vOriginalDisplay;
|
8605 |
-
});
|
8606 |
-
} else {
|
8607 |
-
leave(vnode, function () {
|
8608 |
-
el.style.display = 'none';
|
8609 |
-
});
|
8610 |
-
}
|
8611 |
-
} else {
|
8612 |
-
el.style.display = value ? el.__vOriginalDisplay : 'none';
|
8613 |
-
}
|
8614 |
-
},
|
8615 |
-
unbind: function unbind(el, binding, vnode, oldVnode, isDestroy) {
|
8616 |
-
if (!isDestroy) {
|
8617 |
-
el.style.display = el.__vOriginalDisplay;
|
8618 |
-
}
|
8619 |
-
}
|
8620 |
-
};
|
8621 |
-
var platformDirectives = {
|
8622 |
-
model: directive,
|
8623 |
-
show: show
|
8624 |
-
};
|
8625 |
-
/* */
|
8626 |
-
|
8627 |
-
var transitionProps = {
|
8628 |
-
name: String,
|
8629 |
-
appear: Boolean,
|
8630 |
-
css: Boolean,
|
8631 |
-
mode: String,
|
8632 |
-
type: String,
|
8633 |
-
enterClass: String,
|
8634 |
-
leaveClass: String,
|
8635 |
-
enterToClass: String,
|
8636 |
-
leaveToClass: String,
|
8637 |
-
enterActiveClass: String,
|
8638 |
-
leaveActiveClass: String,
|
8639 |
-
appearClass: String,
|
8640 |
-
appearActiveClass: String,
|
8641 |
-
appearToClass: String,
|
8642 |
-
duration: [Number, String, Object]
|
8643 |
-
}; // in case the child is also an abstract component, e.g. <keep-alive>
|
8644 |
-
// we want to recursively retrieve the real component to be rendered
|
8645 |
-
|
8646 |
-
function getRealChild(vnode) {
|
8647 |
-
var compOptions = vnode && vnode.componentOptions;
|
8648 |
-
|
8649 |
-
if (compOptions && compOptions.Ctor.options["abstract"]) {
|
8650 |
-
return getRealChild(getFirstComponentChild(compOptions.children));
|
8651 |
-
} else {
|
8652 |
-
return vnode;
|
8653 |
-
}
|
8654 |
-
}
|
8655 |
-
|
8656 |
-
function extractTransitionData(comp) {
|
8657 |
-
var data = {};
|
8658 |
-
var options = comp.$options; // props
|
8659 |
-
|
8660 |
-
for (var key in options.propsData) {
|
8661 |
-
data[key] = comp[key];
|
8662 |
-
} // events.
|
8663 |
-
// extract listeners and pass them directly to the transition methods
|
8664 |
-
|
8665 |
-
|
8666 |
-
var listeners = options._parentListeners;
|
8667 |
-
|
8668 |
-
for (var key$1 in listeners) {
|
8669 |
-
data[camelize(key$1)] = listeners[key$1];
|
8670 |
-
}
|
8671 |
-
|
8672 |
-
return data;
|
8673 |
-
}
|
8674 |
-
|
8675 |
-
function placeholder(h, rawChild) {
|
8676 |
-
if (/\d-keep-alive$/.test(rawChild.tag)) {
|
8677 |
-
return h('keep-alive', {
|
8678 |
-
props: rawChild.componentOptions.propsData
|
8679 |
-
});
|
8680 |
-
}
|
8681 |
-
}
|
8682 |
-
|
8683 |
-
function hasParentTransition(vnode) {
|
8684 |
-
while (vnode = vnode.parent) {
|
8685 |
-
if (vnode.data.transition) {
|
8686 |
-
return true;
|
8687 |
-
}
|
8688 |
-
}
|
8689 |
-
}
|
8690 |
-
|
8691 |
-
function isSameChild(child, oldChild) {
|
8692 |
-
return oldChild.key === child.key && oldChild.tag === child.tag;
|
8693 |
-
}
|
8694 |
-
|
8695 |
-
var isNotTextNode = function isNotTextNode(c) {
|
8696 |
-
return c.tag || isAsyncPlaceholder(c);
|
8697 |
-
};
|
8698 |
-
|
8699 |
-
var isVShowDirective = function isVShowDirective(d) {
|
8700 |
-
return d.name === 'show';
|
8701 |
-
};
|
8702 |
-
|
8703 |
-
var Transition = {
|
8704 |
-
name: 'transition',
|
8705 |
-
props: transitionProps,
|
8706 |
-
"abstract": true,
|
8707 |
-
render: function render(h) {
|
8708 |
-
var this$1 = this;
|
8709 |
-
var children = this.$slots["default"];
|
8710 |
-
|
8711 |
-
if (!children) {
|
8712 |
-
return;
|
8713 |
-
} // filter out text nodes (possible whitespaces)
|
8714 |
-
|
8715 |
-
|
8716 |
-
children = children.filter(isNotTextNode);
|
8717 |
-
/* istanbul ignore if */
|
8718 |
-
|
8719 |
-
if (!children.length) {
|
8720 |
-
return;
|
8721 |
-
} // warn multiple elements
|
8722 |
-
|
8723 |
-
|
8724 |
-
if (children.length > 1) {
|
8725 |
-
warn('<transition> can only be used on a single element. Use ' + '<transition-group> for lists.', this.$parent);
|
8726 |
-
}
|
8727 |
-
|
8728 |
-
var mode = this.mode; // warn invalid mode
|
8729 |
-
|
8730 |
-
if (mode && mode !== 'in-out' && mode !== 'out-in') {
|
8731 |
-
warn('invalid <transition> mode: ' + mode, this.$parent);
|
8732 |
-
}
|
8733 |
-
|
8734 |
-
var rawChild = children[0]; // if this is a component root node and the component's
|
8735 |
-
// parent container node also has transition, skip.
|
8736 |
-
|
8737 |
-
if (hasParentTransition(this.$vnode)) {
|
8738 |
-
return rawChild;
|
8739 |
-
} // apply transition data to child
|
8740 |
-
// use getRealChild() to ignore abstract components e.g. keep-alive
|
8741 |
-
|
8742 |
-
|
8743 |
-
var child = getRealChild(rawChild);
|
8744 |
-
/* istanbul ignore if */
|
8745 |
-
|
8746 |
-
if (!child) {
|
8747 |
-
return rawChild;
|
8748 |
-
}
|
8749 |
-
|
8750 |
-
if (this._leaving) {
|
8751 |
-
return placeholder(h, rawChild);
|
8752 |
-
} // ensure a key that is unique to the vnode type and to this transition
|
8753 |
-
// component instance. This key will be used to remove pending leaving nodes
|
8754 |
-
// during entering.
|
8755 |
-
|
8756 |
-
|
8757 |
-
var id = "__transition-" + this._uid + "-";
|
8758 |
-
child.key = child.key == null ? child.isComment ? id + 'comment' : id + child.tag : isPrimitive(child.key) ? String(child.key).indexOf(id) === 0 ? child.key : id + child.key : child.key;
|
8759 |
-
var data = (child.data || (child.data = {})).transition = extractTransitionData(this);
|
8760 |
-
var oldRawChild = this._vnode;
|
8761 |
-
var oldChild = getRealChild(oldRawChild); // mark v-show
|
8762 |
-
// so that the transition module can hand over the control to the directive
|
8763 |
-
|
8764 |
-
if (child.data.directives && child.data.directives.some(isVShowDirective)) {
|
8765 |
-
child.data.show = true;
|
8766 |
-
}
|
8767 |
-
|
8768 |
-
if (oldChild && oldChild.data && !isSameChild(child, oldChild) && !isAsyncPlaceholder(oldChild) && // #6687 component root is a comment node
|
8769 |
-
!(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)) {
|
8770 |
-
// replace old child transition data with fresh one
|
8771 |
-
// important for dynamic transitions!
|
8772 |
-
var oldData = oldChild.data.transition = extend({}, data); // handle transition mode
|
8773 |
-
|
8774 |
-
if (mode === 'out-in') {
|
8775 |
-
// return placeholder node and queue update when leave finishes
|
8776 |
-
this._leaving = true;
|
8777 |
-
mergeVNodeHook(oldData, 'afterLeave', function () {
|
8778 |
-
this$1._leaving = false;
|
8779 |
-
this$1.$forceUpdate();
|
8780 |
-
});
|
8781 |
-
return placeholder(h, rawChild);
|
8782 |
-
} else if (mode === 'in-out') {
|
8783 |
-
if (isAsyncPlaceholder(child)) {
|
8784 |
-
return oldRawChild;
|
8785 |
-
}
|
8786 |
-
|
8787 |
-
var delayedLeave;
|
8788 |
-
|
8789 |
-
var performLeave = function performLeave() {
|
8790 |
-
delayedLeave();
|
8791 |
-
};
|
8792 |
-
|
8793 |
-
mergeVNodeHook(data, 'afterEnter', performLeave);
|
8794 |
-
mergeVNodeHook(data, 'enterCancelled', performLeave);
|
8795 |
-
mergeVNodeHook(oldData, 'delayLeave', function (leave) {
|
8796 |
-
delayedLeave = leave;
|
8797 |
-
});
|
8798 |
-
}
|
8799 |
-
}
|
8800 |
-
|
8801 |
-
return rawChild;
|
8802 |
-
}
|
8803 |
-
};
|
8804 |
-
/* */
|
8805 |
-
|
8806 |
-
var props = extend({
|
8807 |
-
tag: String,
|
8808 |
-
moveClass: String
|
8809 |
-
}, transitionProps);
|
8810 |
-
delete props.mode;
|
8811 |
-
var TransitionGroup = {
|
8812 |
-
props: props,
|
8813 |
-
beforeMount: function beforeMount() {
|
8814 |
-
var this$1 = this;
|
8815 |
-
var update = this._update;
|
8816 |
-
|
8817 |
-
this._update = function (vnode, hydrating) {
|
8818 |
-
var restoreActiveInstance = setActiveInstance(this$1); // force removing pass
|
8819 |
-
|
8820 |
-
this$1.__patch__(this$1._vnode, this$1.kept, false, // hydrating
|
8821 |
-
true // removeOnly (!important, avoids unnecessary moves)
|
8822 |
-
);
|
8823 |
-
|
8824 |
-
this$1._vnode = this$1.kept;
|
8825 |
-
restoreActiveInstance();
|
8826 |
-
update.call(this$1, vnode, hydrating);
|
8827 |
-
};
|
8828 |
-
},
|
8829 |
-
render: function render(h) {
|
8830 |
-
var tag = this.tag || this.$vnode.data.tag || 'span';
|
8831 |
-
var map = Object.create(null);
|
8832 |
-
var prevChildren = this.prevChildren = this.children;
|
8833 |
-
var rawChildren = this.$slots["default"] || [];
|
8834 |
-
var children = this.children = [];
|
8835 |
-
var transitionData = extractTransitionData(this);
|
8836 |
-
|
8837 |
-
for (var i = 0; i < rawChildren.length; i++) {
|
8838 |
-
var c = rawChildren[i];
|
8839 |
-
|
8840 |
-
if (c.tag) {
|
8841 |
-
if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {
|
8842 |
-
children.push(c);
|
8843 |
-
map[c.key] = c;
|
8844 |
-
(c.data || (c.data = {})).transition = transitionData;
|
8845 |
-
} else {
|
8846 |
-
var opts = c.componentOptions;
|
8847 |
-
var name = opts ? opts.Ctor.options.name || opts.tag || '' : c.tag;
|
8848 |
-
warn("<transition-group> children must be keyed: <" + name + ">");
|
8849 |
-
}
|
8850 |
-
}
|
8851 |
-
}
|
8852 |
-
|
8853 |
-
if (prevChildren) {
|
8854 |
-
var kept = [];
|
8855 |
-
var removed = [];
|
8856 |
-
|
8857 |
-
for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {
|
8858 |
-
var c$1 = prevChildren[i$1];
|
8859 |
-
c$1.data.transition = transitionData;
|
8860 |
-
c$1.data.pos = c$1.elm.getBoundingClientRect();
|
8861 |
-
|
8862 |
-
if (map[c$1.key]) {
|
8863 |
-
kept.push(c$1);
|
8864 |
-
} else {
|
8865 |
-
removed.push(c$1);
|
8866 |
-
}
|
8867 |
-
}
|
8868 |
-
|
8869 |
-
this.kept = h(tag, null, kept);
|
8870 |
-
this.removed = removed;
|
8871 |
-
}
|
8872 |
-
|
8873 |
-
return h(tag, null, children);
|
8874 |
-
},
|
8875 |
-
updated: function updated() {
|
8876 |
-
var children = this.prevChildren;
|
8877 |
-
var moveClass = this.moveClass || (this.name || 'v') + '-move';
|
8878 |
-
|
8879 |
-
if (!children.length || !this.hasMove(children[0].elm, moveClass)) {
|
8880 |
-
return;
|
8881 |
-
} // we divide the work into three loops to avoid mixing DOM reads and writes
|
8882 |
-
// in each iteration - which helps prevent layout thrashing.
|
8883 |
-
|
8884 |
-
|
8885 |
-
children.forEach(callPendingCbs);
|
8886 |
-
children.forEach(recordPosition);
|
8887 |
-
children.forEach(applyTranslation); // force reflow to put everything in position
|
8888 |
-
// assign to this to avoid being removed in tree-shaking
|
8889 |
-
// $flow-disable-line
|
8890 |
-
|
8891 |
-
this._reflow = document.body.offsetHeight;
|
8892 |
-
children.forEach(function (c) {
|
8893 |
-
if (c.data.moved) {
|
8894 |
-
var el = c.elm;
|
8895 |
-
var s = el.style;
|
8896 |
-
addTransitionClass(el, moveClass);
|
8897 |
-
s.transform = s.WebkitTransform = s.transitionDuration = '';
|
8898 |
-
el.addEventListener(transitionEndEvent, el._moveCb = function cb(e) {
|
8899 |
-
if (e && e.target !== el) {
|
8900 |
-
return;
|
8901 |
-
}
|
8902 |
-
|
8903 |
-
if (!e || /transform$/.test(e.propertyName)) {
|
8904 |
-
el.removeEventListener(transitionEndEvent, cb);
|
8905 |
-
el._moveCb = null;
|
8906 |
-
removeTransitionClass(el, moveClass);
|
8907 |
-
}
|
8908 |
-
});
|
8909 |
-
}
|
8910 |
-
});
|
8911 |
-
},
|
8912 |
-
methods: {
|
8913 |
-
hasMove: function hasMove(el, moveClass) {
|
8914 |
-
/* istanbul ignore if */
|
8915 |
-
if (!hasTransition) {
|
8916 |
-
return false;
|
8917 |
-
}
|
8918 |
-
/* istanbul ignore if */
|
8919 |
-
|
8920 |
-
|
8921 |
-
if (this._hasMove) {
|
8922 |
-
return this._hasMove;
|
8923 |
-
} // Detect whether an element with the move class applied has
|
8924 |
-
// CSS transitions. Since the element may be inside an entering
|
8925 |
-
// transition at this very moment, we make a clone of it and remove
|
8926 |
-
// all other transition classes applied to ensure only the move class
|
8927 |
-
// is applied.
|
8928 |
-
|
8929 |
-
|
8930 |
-
var clone = el.cloneNode();
|
8931 |
-
|
8932 |
-
if (el._transitionClasses) {
|
8933 |
-
el._transitionClasses.forEach(function (cls) {
|
8934 |
-
removeClass(clone, cls);
|
8935 |
-
});
|
8936 |
-
}
|
8937 |
-
|
8938 |
-
addClass(clone, moveClass);
|
8939 |
-
clone.style.display = 'none';
|
8940 |
-
this.$el.appendChild(clone);
|
8941 |
-
var info = getTransitionInfo(clone);
|
8942 |
-
this.$el.removeChild(clone);
|
8943 |
-
return this._hasMove = info.hasTransform;
|
8944 |
-
}
|
8945 |
-
}
|
8946 |
-
};
|
8947 |
-
|
8948 |
-
function callPendingCbs(c) {
|
8949 |
-
/* istanbul ignore if */
|
8950 |
-
if (c.elm._moveCb) {
|
8951 |
-
c.elm._moveCb();
|
8952 |
-
}
|
8953 |
-
/* istanbul ignore if */
|
8954 |
-
|
8955 |
-
|
8956 |
-
if (c.elm._enterCb) {
|
8957 |
-
c.elm._enterCb();
|
8958 |
-
}
|
8959 |
-
}
|
8960 |
-
|
8961 |
-
function recordPosition(c) {
|
8962 |
-
c.data.newPos = c.elm.getBoundingClientRect();
|
8963 |
-
}
|
8964 |
-
|
8965 |
-
function applyTranslation(c) {
|
8966 |
-
var oldPos = c.data.pos;
|
8967 |
-
var newPos = c.data.newPos;
|
8968 |
-
var dx = oldPos.left - newPos.left;
|
8969 |
-
var dy = oldPos.top - newPos.top;
|
8970 |
-
|
8971 |
-
if (dx || dy) {
|
8972 |
-
c.data.moved = true;
|
8973 |
-
var s = c.elm.style;
|
8974 |
-
s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";
|
8975 |
-
s.transitionDuration = '0s';
|
8976 |
-
}
|
8977 |
-
}
|
8978 |
-
|
8979 |
-
var platformComponents = {
|
8980 |
-
Transition: Transition,
|
8981 |
-
TransitionGroup: TransitionGroup
|
8982 |
-
};
|
8983 |
-
/* */
|
8984 |
-
// install platform specific utils
|
8985 |
-
|
8986 |
-
Vue.config.mustUseProp = mustUseProp;
|
8987 |
-
Vue.config.isReservedTag = isReservedTag;
|
8988 |
-
Vue.config.isReservedAttr = isReservedAttr;
|
8989 |
-
Vue.config.getTagNamespace = getTagNamespace;
|
8990 |
-
Vue.config.isUnknownElement = isUnknownElement; // install platform runtime directives & components
|
8991 |
-
|
8992 |
-
extend(Vue.options.directives, platformDirectives);
|
8993 |
-
extend(Vue.options.components, platformComponents); // install platform patch function
|
8994 |
-
|
8995 |
-
Vue.prototype.__patch__ = inBrowser ? patch : noop; // public mount method
|
8996 |
-
|
8997 |
-
Vue.prototype.$mount = function (el, hydrating) {
|
8998 |
-
el = el && inBrowser ? query(el) : undefined;
|
8999 |
-
return mountComponent(this, el, hydrating);
|
9000 |
-
}; // devtools global hook
|
9001 |
-
|
9002 |
-
/* istanbul ignore next */
|
9003 |
-
|
9004 |
-
|
9005 |
-
if (inBrowser) {
|
9006 |
-
setTimeout(function () {
|
9007 |
-
if (config.devtools) {
|
9008 |
-
if (devtools) {
|
9009 |
-
devtools.emit('init', Vue);
|
9010 |
-
} else {
|
9011 |
-
console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\n' + 'https://github.com/vuejs/vue-devtools');
|
9012 |
-
}
|
9013 |
-
}
|
9014 |
-
|
9015 |
-
if (config.productionTip !== false && typeof console !== 'undefined') {
|
9016 |
-
console[console.info ? 'info' : 'log']("You are running Vue in development mode.\n" + "Make sure to turn on production mode when deploying for production.\n" + "See more tips at https://vuejs.org/guide/deployment.html");
|
9017 |
-
}
|
9018 |
-
}, 0);
|
9019 |
-
}
|
9020 |
-
/* */
|
9021 |
-
|
9022 |
-
|
9023 |
-
var defaultTagRE = /\{\{((?:.|\r?\n)+?)\}\}/g;
|
9024 |
-
var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;
|
9025 |
-
var buildRegex = cached(function (delimiters) {
|
9026 |
-
var open = delimiters[0].replace(regexEscapeRE, '\\$&');
|
9027 |
-
var close = delimiters[1].replace(regexEscapeRE, '\\$&');
|
9028 |
-
return new RegExp(open + '((?:.|\\n)+?)' + close, 'g');
|
9029 |
-
});
|
9030 |
-
|
9031 |
-
function parseText(text, delimiters) {
|
9032 |
-
var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;
|
9033 |
-
|
9034 |
-
if (!tagRE.test(text)) {
|
9035 |
-
return;
|
9036 |
-
}
|
9037 |
-
|
9038 |
-
var tokens = [];
|
9039 |
-
var rawTokens = [];
|
9040 |
-
var lastIndex = tagRE.lastIndex = 0;
|
9041 |
-
var match, index, tokenValue;
|
9042 |
-
|
9043 |
-
while (match = tagRE.exec(text)) {
|
9044 |
-
index = match.index; // push text token
|
9045 |
-
|
9046 |
-
if (index > lastIndex) {
|
9047 |
-
rawTokens.push(tokenValue = text.slice(lastIndex, index));
|
9048 |
-
tokens.push(JSON.stringify(tokenValue));
|
9049 |
-
} // tag token
|
9050 |
-
|
9051 |
-
|
9052 |
-
var exp = parseFilters(match[1].trim());
|
9053 |
-
tokens.push("_s(" + exp + ")");
|
9054 |
-
rawTokens.push({
|
9055 |
-
'@binding': exp
|
9056 |
-
});
|
9057 |
-
lastIndex = index + match[0].length;
|
9058 |
-
}
|
9059 |
-
|
9060 |
-
if (lastIndex < text.length) {
|
9061 |
-
rawTokens.push(tokenValue = text.slice(lastIndex));
|
9062 |
-
tokens.push(JSON.stringify(tokenValue));
|
9063 |
-
}
|
9064 |
-
|
9065 |
-
return {
|
9066 |
-
expression: tokens.join('+'),
|
9067 |
-
tokens: rawTokens
|
9068 |
-
};
|
9069 |
-
}
|
9070 |
-
/* */
|
9071 |
-
|
9072 |
-
|
9073 |
-
function transformNode(el, options) {
|
9074 |
-
var warn = options.warn || baseWarn;
|
9075 |
-
var staticClass = getAndRemoveAttr(el, 'class');
|
9076 |
-
|
9077 |
-
if (staticClass) {
|
9078 |
-
var res = parseText(staticClass, options.delimiters);
|
9079 |
-
|
9080 |
-
if (res) {
|
9081 |
-
warn("class=\"" + staticClass + "\": " + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div class="{{ val }}">, use <div :class="val">.', el.rawAttrsMap['class']);
|
9082 |
-
}
|
9083 |
-
}
|
9084 |
-
|
9085 |
-
if (staticClass) {
|
9086 |
-
el.staticClass = JSON.stringify(staticClass);
|
9087 |
-
}
|
9088 |
-
|
9089 |
-
var classBinding = getBindingAttr(el, 'class', false
|
9090 |
-
/* getStatic */
|
9091 |
-
);
|
9092 |
-
|
9093 |
-
if (classBinding) {
|
9094 |
-
el.classBinding = classBinding;
|
9095 |
-
}
|
9096 |
-
}
|
9097 |
-
|
9098 |
-
function genData(el) {
|
9099 |
-
var data = '';
|
9100 |
-
|
9101 |
-
if (el.staticClass) {
|
9102 |
-
data += "staticClass:" + el.staticClass + ",";
|
9103 |
-
}
|
9104 |
-
|
9105 |
-
if (el.classBinding) {
|
9106 |
-
data += "class:" + el.classBinding + ",";
|
9107 |
-
}
|
9108 |
-
|
9109 |
-
return data;
|
9110 |
-
}
|
9111 |
-
|
9112 |
-
var klass$1 = {
|
9113 |
-
staticKeys: ['staticClass'],
|
9114 |
-
transformNode: transformNode,
|
9115 |
-
genData: genData
|
9116 |
-
};
|
9117 |
-
/* */
|
9118 |
-
|
9119 |
-
function transformNode$1(el, options) {
|
9120 |
-
var warn = options.warn || baseWarn;
|
9121 |
-
var staticStyle = getAndRemoveAttr(el, 'style');
|
9122 |
-
|
9123 |
-
if (staticStyle) {
|
9124 |
-
/* istanbul ignore if */
|
9125 |
-
{
|
9126 |
-
var res = parseText(staticStyle, options.delimiters);
|
9127 |
-
|
9128 |
-
if (res) {
|
9129 |
-
warn("style=\"" + staticStyle + "\": " + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div style="{{ val }}">, use <div :style="val">.', el.rawAttrsMap['style']);
|
9130 |
-
}
|
9131 |
-
}
|
9132 |
-
el.staticStyle = JSON.stringify(parseStyleText(staticStyle));
|
9133 |
-
}
|
9134 |
-
|
9135 |
-
var styleBinding = getBindingAttr(el, 'style', false
|
9136 |
-
/* getStatic */
|
9137 |
-
);
|
9138 |
-
|
9139 |
-
if (styleBinding) {
|
9140 |
-
el.styleBinding = styleBinding;
|
9141 |
-
}
|
9142 |
-
}
|
9143 |
-
|
9144 |
-
function genData$1(el) {
|
9145 |
-
var data = '';
|
9146 |
-
|
9147 |
-
if (el.staticStyle) {
|
9148 |
-
data += "staticStyle:" + el.staticStyle + ",";
|
9149 |
-
}
|
9150 |
-
|
9151 |
-
if (el.styleBinding) {
|
9152 |
-
data += "style:(" + el.styleBinding + "),";
|
9153 |
-
}
|
9154 |
-
|
9155 |
-
return data;
|
9156 |
-
}
|
9157 |
-
|
9158 |
-
var style$1 = {
|
9159 |
-
staticKeys: ['staticStyle'],
|
9160 |
-
transformNode: transformNode$1,
|
9161 |
-
genData: genData$1
|
9162 |
-
};
|
9163 |
-
/* */
|
9164 |
-
|
9165 |
-
var decoder;
|
9166 |
-
var he = {
|
9167 |
-
decode: function decode(html) {
|
9168 |
-
decoder = decoder || document.createElement('div');
|
9169 |
-
decoder.innerHTML = html;
|
9170 |
-
return decoder.textContent;
|
9171 |
-
}
|
9172 |
-
};
|
9173 |
-
/* */
|
9174 |
-
|
9175 |
-
var isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + 'link,meta,param,source,track,wbr'); // Elements that you can, intentionally, leave open
|
9176 |
-
// (and which close themselves)
|
9177 |
-
|
9178 |
-
var canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'); // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3
|
9179 |
-
// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content
|
9180 |
-
|
9181 |
-
var isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' + 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' + 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' + 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' + 'title,tr,track');
|
9182 |
-
/**
|
9183 |
-
* Not type-checking this file because it's mostly vendor code.
|
9184 |
-
*/
|
9185 |
-
// Regular Expressions for parsing tags and attributes
|
9186 |
-
|
9187 |
-
var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
|
9188 |
-
var dynamicArgAttribute = /^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;
|
9189 |
-
var ncname = "[a-zA-Z_][\\-\\.0-9_a-zA-Z" + unicodeRegExp.source + "]*";
|
9190 |
-
var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";
|
9191 |
-
var startTagOpen = new RegExp("^<" + qnameCapture);
|
9192 |
-
var startTagClose = /^\s*(\/?)>/;
|
9193 |
-
var endTag = new RegExp("^<\\/" + qnameCapture + "[^>]*>");
|
9194 |
-
var doctype = /^<!DOCTYPE [^>]+>/i; // #7298: escape - to avoid being passed as HTML comment when inlined in page
|
9195 |
-
|
9196 |
-
var comment = /^<!\--/;
|
9197 |
-
var conditionalComment = /^<!\[/; // Special Elements (can contain anything)
|
9198 |
-
|
9199 |
-
var isPlainTextElement = makeMap('script,style,textarea', true);
|
9200 |
-
var reCache = {};
|
9201 |
-
var decodingMap = {
|
9202 |
-
'<': '<',
|
9203 |
-
'>': '>',
|
9204 |
-
'"': '"',
|
9205 |
-
'&': '&',
|
9206 |
-
' ': '\n',
|
9207 |
-
'	': '\t',
|
9208 |
-
''': "'"
|
9209 |
-
};
|
9210 |
-
var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;
|
9211 |
-
var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g; // #5992
|
9212 |
-
|
9213 |
-
var isIgnoreNewlineTag = makeMap('pre,textarea', true);
|
9214 |
-
|
9215 |
-
var shouldIgnoreFirstNewline = function shouldIgnoreFirstNewline(tag, html) {
|
9216 |
-
return tag && isIgnoreNewlineTag(tag) && html[0] === '\n';
|
9217 |
-
};
|
9218 |
-
|
9219 |
-
function decodeAttr(value, shouldDecodeNewlines) {
|
9220 |
-
var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;
|
9221 |
-
return value.replace(re, function (match) {
|
9222 |
-
return decodingMap[match];
|
9223 |
-
});
|
9224 |
-
}
|
9225 |
-
|
9226 |
-
function parseHTML(html, options) {
|
9227 |
-
var stack = [];
|
9228 |
-
var expectHTML = options.expectHTML;
|
9229 |
-
var isUnaryTag$$1 = options.isUnaryTag || no;
|
9230 |
-
var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;
|
9231 |
-
var index = 0;
|
9232 |
-
var last, lastTag;
|
9233 |
-
|
9234 |
-
while (html) {
|
9235 |
-
last = html; // Make sure we're not in a plaintext content element like script/style
|
9236 |
-
|
9237 |
-
if (!lastTag || !isPlainTextElement(lastTag)) {
|
9238 |
-
var textEnd = html.indexOf('<');
|
9239 |
-
|
9240 |
-
if (textEnd === 0) {
|
9241 |
-
// Comment:
|
9242 |
-
if (comment.test(html)) {
|
9243 |
-
var commentEnd = html.indexOf('-->');
|
9244 |
-
|
9245 |
-
if (commentEnd >= 0) {
|
9246 |
-
if (options.shouldKeepComment) {
|
9247 |
-
options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);
|
9248 |
-
}
|
9249 |
-
|
9250 |
-
advance(commentEnd + 3);
|
9251 |
-
continue;
|
9252 |
-
}
|
9253 |
-
} // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment
|
9254 |
-
|
9255 |
-
|
9256 |
-
if (conditionalComment.test(html)) {
|
9257 |
-
var conditionalEnd = html.indexOf(']>');
|
9258 |
-
|
9259 |
-
if (conditionalEnd >= 0) {
|
9260 |
-
advance(conditionalEnd + 2);
|
9261 |
-
continue;
|
9262 |
-
}
|
9263 |
-
} // Doctype:
|
9264 |
-
|
9265 |
-
|
9266 |
-
var doctypeMatch = html.match(doctype);
|
9267 |
-
|
9268 |
-
if (doctypeMatch) {
|
9269 |
-
advance(doctypeMatch[0].length);
|
9270 |
-
continue;
|
9271 |
-
} // End tag:
|
9272 |
-
|
9273 |
-
|
9274 |
-
var endTagMatch = html.match(endTag);
|
9275 |
-
|
9276 |
-
if (endTagMatch) {
|
9277 |
-
var curIndex = index;
|
9278 |
-
advance(endTagMatch[0].length);
|
9279 |
-
parseEndTag(endTagMatch[1], curIndex, index);
|
9280 |
-
continue;
|
9281 |
-
} // Start tag:
|
9282 |
-
|
9283 |
-
|
9284 |
-
var startTagMatch = parseStartTag();
|
9285 |
-
|
9286 |
-
if (startTagMatch) {
|
9287 |
-
handleStartTag(startTagMatch);
|
9288 |
-
|
9289 |
-
if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {
|
9290 |
-
advance(1);
|
9291 |
-
}
|
9292 |
-
|
9293 |
-
continue;
|
9294 |
-
}
|
9295 |
-
}
|
9296 |
-
|
9297 |
-
var text = void 0,
|
9298 |
-
rest = void 0,
|
9299 |
-
next = void 0;
|
9300 |
-
|
9301 |
-
if (textEnd >= 0) {
|
9302 |
-
rest = html.slice(textEnd);
|
9303 |
-
|
9304 |
-
while (!endTag.test(rest) && !startTagOpen.test(rest) && !comment.test(rest) && !conditionalComment.test(rest)) {
|
9305 |
-
// < in plain text, be forgiving and treat it as text
|
9306 |
-
next = rest.indexOf('<', 1);
|
9307 |
-
|
9308 |
-
if (next < 0) {
|
9309 |
-
break;
|
9310 |
-
}
|
9311 |
-
|
9312 |
-
textEnd += next;
|
9313 |
-
rest = html.slice(textEnd);
|
9314 |
-
}
|
9315 |
-
|
9316 |
-
text = html.substring(0, textEnd);
|
9317 |
-
}
|
9318 |
-
|
9319 |
-
if (textEnd < 0) {
|
9320 |
-
text = html;
|
9321 |
-
}
|
9322 |
-
|
9323 |
-
if (text) {
|
9324 |
-
advance(text.length);
|
9325 |
-
}
|
9326 |
-
|
9327 |
-
if (options.chars && text) {
|
9328 |
-
options.chars(text, index - text.length, index);
|
9329 |
-
}
|
9330 |
-
} else {
|
9331 |
-
var endTagLength = 0;
|
9332 |
-
var stackedTag = lastTag.toLowerCase();
|
9333 |
-
var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));
|
9334 |
-
var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {
|
9335 |
-
endTagLength = endTag.length;
|
9336 |
-
|
9337 |
-
if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {
|
9338 |
-
text = text.replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298
|
9339 |
-
.replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');
|
9340 |
-
}
|
9341 |
-
|
9342 |
-
if (shouldIgnoreFirstNewline(stackedTag, text)) {
|
9343 |
-
text = text.slice(1);
|
9344 |
-
}
|
9345 |
-
|
9346 |
-
if (options.chars) {
|
9347 |
-
options.chars(text);
|
9348 |
-
}
|
9349 |
-
|
9350 |
-
return '';
|
9351 |
-
});
|
9352 |
-
index += html.length - rest$1.length;
|
9353 |
-
html = rest$1;
|
9354 |
-
parseEndTag(stackedTag, index - endTagLength, index);
|
9355 |
-
}
|
9356 |
-
|
9357 |
-
if (html === last) {
|
9358 |
-
options.chars && options.chars(html);
|
9359 |
-
|
9360 |
-
if (!stack.length && options.warn) {
|
9361 |
-
options.warn("Mal-formatted tag at end of template: \"" + html + "\"", {
|
9362 |
-
start: index + html.length
|
9363 |
-
});
|
9364 |
-
}
|
9365 |
-
|
9366 |
-
break;
|
9367 |
-
}
|
9368 |
-
} // Clean up any remaining tags
|
9369 |
-
|
9370 |
-
|
9371 |
-
parseEndTag();
|
9372 |
-
|
9373 |
-
function advance(n) {
|
9374 |
-
index += n;
|
9375 |
-
html = html.substring(n);
|
9376 |
-
}
|
9377 |
-
|
9378 |
-
function parseStartTag() {
|
9379 |
-
var start = html.match(startTagOpen);
|
9380 |
-
|
9381 |
-
if (start) {
|
9382 |
-
var match = {
|
9383 |
-
tagName: start[1],
|
9384 |
-
attrs: [],
|
9385 |
-
start: index
|
9386 |
-
};
|
9387 |
-
advance(start[0].length);
|
9388 |
-
var end, attr;
|
9389 |
-
|
9390 |
-
while (!(end = html.match(startTagClose)) && (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {
|
9391 |
-
attr.start = index;
|
9392 |
-
advance(attr[0].length);
|
9393 |
-
attr.end = index;
|
9394 |
-
match.attrs.push(attr);
|
9395 |
-
}
|
9396 |
-
|
9397 |
-
if (end) {
|
9398 |
-
match.unarySlash = end[1];
|
9399 |
-
advance(end[0].length);
|
9400 |
-
match.end = index;
|
9401 |
-
return match;
|
9402 |
-
}
|
9403 |
-
}
|
9404 |
-
}
|
9405 |
-
|
9406 |
-
function handleStartTag(match) {
|
9407 |
-
var tagName = match.tagName;
|
9408 |
-
var unarySlash = match.unarySlash;
|
9409 |
-
|
9410 |
-
if (expectHTML) {
|
9411 |
-
if (lastTag === 'p' && isNonPhrasingTag(tagName)) {
|
9412 |
-
parseEndTag(lastTag);
|
9413 |
-
}
|
9414 |
-
|
9415 |
-
if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {
|
9416 |
-
parseEndTag(tagName);
|
9417 |
-
}
|
9418 |
-
}
|
9419 |
-
|
9420 |
-
var unary = isUnaryTag$$1(tagName) || !!unarySlash;
|
9421 |
-
var l = match.attrs.length;
|
9422 |
-
var attrs = new Array(l);
|
9423 |
-
|
9424 |
-
for (var i = 0; i < l; i++) {
|
9425 |
-
var args = match.attrs[i];
|
9426 |
-
var value = args[3] || args[4] || args[5] || '';
|
9427 |
-
var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href' ? options.shouldDecodeNewlinesForHref : options.shouldDecodeNewlines;
|
9428 |
-
attrs[i] = {
|
9429 |
-
name: args[1],
|
9430 |
-
value: decodeAttr(value, shouldDecodeNewlines)
|
9431 |
-
};
|
9432 |
-
|
9433 |
-
if (options.outputSourceRange) {
|
9434 |
-
attrs[i].start = args.start + args[0].match(/^\s*/).length;
|
9435 |
-
attrs[i].end = args.end;
|
9436 |
-
}
|
9437 |
-
}
|
9438 |
-
|
9439 |
-
if (!unary) {
|
9440 |
-
stack.push({
|
9441 |
-
tag: tagName,
|
9442 |
-
lowerCasedTag: tagName.toLowerCase(),
|
9443 |
-
attrs: attrs,
|
9444 |
-
start: match.start,
|
9445 |
-
end: match.end
|
9446 |
-
});
|
9447 |
-
lastTag = tagName;
|
9448 |
-
}
|
9449 |
-
|
9450 |
-
if (options.start) {
|
9451 |
-
options.start(tagName, attrs, unary, match.start, match.end);
|
9452 |
-
}
|
9453 |
-
}
|
9454 |
-
|
9455 |
-
function parseEndTag(tagName, start, end) {
|
9456 |
-
var pos, lowerCasedTagName;
|
9457 |
-
|
9458 |
-
if (start == null) {
|
9459 |
-
start = index;
|
9460 |
-
}
|
9461 |
-
|
9462 |
-
if (end == null) {
|
9463 |
-
end = index;
|
9464 |
-
} // Find the closest opened tag of the same type
|
9465 |
-
|
9466 |
-
|
9467 |
-
if (tagName) {
|
9468 |
-
lowerCasedTagName = tagName.toLowerCase();
|
9469 |
-
|
9470 |
-
for (pos = stack.length - 1; pos >= 0; pos--) {
|
9471 |
-
if (stack[pos].lowerCasedTag === lowerCasedTagName) {
|
9472 |
-
break;
|
9473 |
-
}
|
9474 |
-
}
|
9475 |
-
} else {
|
9476 |
-
// If no tag name is provided, clean shop
|
9477 |
-
pos = 0;
|
9478 |
-
}
|
9479 |
-
|
9480 |
-
if (pos >= 0) {
|
9481 |
-
// Close all the open elements, up the stack
|
9482 |
-
for (var i = stack.length - 1; i >= pos; i--) {
|
9483 |
-
if (i > pos || !tagName && options.warn) {
|
9484 |
-
options.warn("tag <" + stack[i].tag + "> has no matching end tag.", {
|
9485 |
-
start: stack[i].start,
|
9486 |
-
end: stack[i].end
|
9487 |
-
});
|
9488 |
-
}
|
9489 |
-
|
9490 |
-
if (options.end) {
|
9491 |
-
options.end(stack[i].tag, start, end);
|
9492 |
-
}
|
9493 |
-
} // Remove the open elements from the stack
|
9494 |
-
|
9495 |
-
|
9496 |
-
stack.length = pos;
|
9497 |
-
lastTag = pos && stack[pos - 1].tag;
|
9498 |
-
} else if (lowerCasedTagName === 'br') {
|
9499 |
-
if (options.start) {
|
9500 |
-
options.start(tagName, [], true, start, end);
|
9501 |
-
}
|
9502 |
-
} else if (lowerCasedTagName === 'p') {
|
9503 |
-
if (options.start) {
|
9504 |
-
options.start(tagName, [], false, start, end);
|
9505 |
-
}
|
9506 |
-
|
9507 |
-
if (options.end) {
|
9508 |
-
options.end(tagName, start, end);
|
9509 |
-
}
|
9510 |
-
}
|
9511 |
-
}
|
9512 |
-
}
|
9513 |
-
/* */
|
9514 |
-
|
9515 |
-
|
9516 |
-
var onRE = /^@|^v-on:/;
|
9517 |
-
var dirRE = /^v-|^@|^:|^#/;
|
9518 |
-
var forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
|
9519 |
-
var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
|
9520 |
-
var stripParensRE = /^\(|\)$/g;
|
9521 |
-
var dynamicArgRE = /^\[.*\]$/;
|
9522 |
-
var argRE = /:(.*)$/;
|
9523 |
-
var bindRE = /^:|^\.|^v-bind:/;
|
9524 |
-
var modifierRE = /\.[^.\]]+(?=[^\]]*$)/g;
|
9525 |
-
var slotRE = /^v-slot(:|$)|^#/;
|
9526 |
-
var lineBreakRE = /[\r\n]/;
|
9527 |
-
var whitespaceRE$1 = /\s+/g;
|
9528 |
-
var invalidAttributeRE = /[\s"'<>\/=]/;
|
9529 |
-
var decodeHTMLCached = cached(he.decode);
|
9530 |
-
var emptySlotScopeToken = "_empty_"; // configurable state
|
9531 |
-
|
9532 |
-
var warn$2;
|
9533 |
-
var delimiters;
|
9534 |
-
var transforms;
|
9535 |
-
var preTransforms;
|
9536 |
-
var postTransforms;
|
9537 |
-
var platformIsPreTag;
|
9538 |
-
var platformMustUseProp;
|
9539 |
-
var platformGetTagNamespace;
|
9540 |
-
var maybeComponent;
|
9541 |
-
|
9542 |
-
function createASTElement(tag, attrs, parent) {
|
9543 |
-
return {
|
9544 |
-
type: 1,
|
9545 |
-
tag: tag,
|
9546 |
-
attrsList: attrs,
|
9547 |
-
attrsMap: makeAttrsMap(attrs),
|
9548 |
-
rawAttrsMap: {},
|
9549 |
-
parent: parent,
|
9550 |
-
children: []
|
9551 |
-
};
|
9552 |
-
}
|
9553 |
-
/**
|
9554 |
-
* Convert HTML string to AST.
|
9555 |
-
*/
|
9556 |
-
|
9557 |
-
|
9558 |
-
function parse(template, options) {
|
9559 |
-
warn$2 = options.warn || baseWarn;
|
9560 |
-
platformIsPreTag = options.isPreTag || no;
|
9561 |
-
platformMustUseProp = options.mustUseProp || no;
|
9562 |
-
platformGetTagNamespace = options.getTagNamespace || no;
|
9563 |
-
var isReservedTag = options.isReservedTag || no;
|
9564 |
-
|
9565 |
-
maybeComponent = function maybeComponent(el) {
|
9566 |
-
return !!el.component || !isReservedTag(el.tag);
|
9567 |
-
};
|
9568 |
-
|
9569 |
-
transforms = pluckModuleFunction(options.modules, 'transformNode');
|
9570 |
-
preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');
|
9571 |
-
postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');
|
9572 |
-
delimiters = options.delimiters;
|
9573 |
-
var stack = [];
|
9574 |
-
var preserveWhitespace = options.preserveWhitespace !== false;
|
9575 |
-
var whitespaceOption = options.whitespace;
|
9576 |
-
var root;
|
9577 |
-
var currentParent;
|
9578 |
-
var inVPre = false;
|
9579 |
-
var inPre = false;
|
9580 |
-
var warned = false;
|
9581 |
-
|
9582 |
-
function warnOnce(msg, range) {
|
9583 |
-
if (!warned) {
|
9584 |
-
warned = true;
|
9585 |
-
warn$2(msg, range);
|
9586 |
-
}
|
9587 |
-
}
|
9588 |
-
|
9589 |
-
function closeElement(element) {
|
9590 |
-
trimEndingWhitespace(element);
|
9591 |
-
|
9592 |
-
if (!inVPre && !element.processed) {
|
9593 |
-
element = processElement(element, options);
|
9594 |
-
} // tree management
|
9595 |
-
|
9596 |
-
|
9597 |
-
if (!stack.length && element !== root) {
|
9598 |
-
// allow root elements with v-if, v-else-if and v-else
|
9599 |
-
if (root["if"] && (element.elseif || element["else"])) {
|
9600 |
-
{
|
9601 |
-
checkRootConstraints(element);
|
9602 |
-
}
|
9603 |
-
addIfCondition(root, {
|
9604 |
-
exp: element.elseif,
|
9605 |
-
block: element
|
9606 |
-
});
|
9607 |
-
} else {
|
9608 |
-
warnOnce("Component template should contain exactly one root element. " + "If you are using v-if on multiple elements, " + "use v-else-if to chain them instead.", {
|
9609 |
-
start: element.start
|
9610 |
-
});
|
9611 |
-
}
|
9612 |
-
}
|
9613 |
-
|
9614 |
-
if (currentParent && !element.forbidden) {
|
9615 |
-
if (element.elseif || element["else"]) {
|
9616 |
-
processIfConditions(element, currentParent);
|
9617 |
-
} else {
|
9618 |
-
if (element.slotScope) {
|
9619 |
-
// scoped slot
|
9620 |
-
// keep it in the children list so that v-else(-if) conditions can
|
9621 |
-
// find it as the prev node.
|
9622 |
-
var name = element.slotTarget || '"default"';
|
9623 |
-
(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;
|
9624 |
-
}
|
9625 |
-
|
9626 |
-
currentParent.children.push(element);
|
9627 |
-
element.parent = currentParent;
|
9628 |
-
}
|
9629 |
-
} // final children cleanup
|
9630 |
-
// filter out scoped slots
|
9631 |
-
|
9632 |
-
|
9633 |
-
element.children = element.children.filter(function (c) {
|
9634 |
-
return !c.slotScope;
|
9635 |
-
}); // remove trailing whitespace node again
|
9636 |
-
|
9637 |
-
trimEndingWhitespace(element); // check pre state
|
9638 |
-
|
9639 |
-
if (element.pre) {
|
9640 |
-
inVPre = false;
|
9641 |
-
}
|
9642 |
-
|
9643 |
-
if (platformIsPreTag(element.tag)) {
|
9644 |
-
inPre = false;
|
9645 |
-
} // apply post-transforms
|
9646 |
-
|
9647 |
-
|
9648 |
-
for (var i = 0; i < postTransforms.length; i++) {
|
9649 |
-
postTransforms[i](element, options);
|
9650 |
-
}
|
9651 |
-
}
|
9652 |
-
|
9653 |
-
function trimEndingWhitespace(el) {
|
9654 |
-
// remove trailing whitespace node
|
9655 |
-
if (!inPre) {
|
9656 |
-
var lastNode;
|
9657 |
-
|
9658 |
-
while ((lastNode = el.children[el.children.length - 1]) && lastNode.type === 3 && lastNode.text === ' ') {
|
9659 |
-
el.children.pop();
|
9660 |
-
}
|
9661 |
-
}
|
9662 |
-
}
|
9663 |
-
|
9664 |
-
function checkRootConstraints(el) {
|
9665 |
-
if (el.tag === 'slot' || el.tag === 'template') {
|
9666 |
-
warnOnce("Cannot use <" + el.tag + "> as component root element because it may " + 'contain multiple nodes.', {
|
9667 |
-
start: el.start
|
9668 |
-
});
|
9669 |
-
}
|
9670 |
-
|
9671 |
-
if (el.attrsMap.hasOwnProperty('v-for')) {
|
9672 |
-
warnOnce('Cannot use v-for on stateful component root element because ' + 'it renders multiple elements.', el.rawAttrsMap['v-for']);
|
9673 |
-
}
|
9674 |
-
}
|
9675 |
-
|
9676 |
-
parseHTML(template, {
|
9677 |
-
warn: warn$2,
|
9678 |
-
expectHTML: options.expectHTML,
|
9679 |
-
isUnaryTag: options.isUnaryTag,
|
9680 |
-
canBeLeftOpenTag: options.canBeLeftOpenTag,
|
9681 |
-
shouldDecodeNewlines: options.shouldDecodeNewlines,
|
9682 |
-
shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,
|
9683 |
-
shouldKeepComment: options.comments,
|
9684 |
-
outputSourceRange: options.outputSourceRange,
|
9685 |
-
start: function start(tag, attrs, unary, start$1, end) {
|
9686 |
-
// check namespace.
|
9687 |
-
// inherit parent ns if there is one
|
9688 |
-
var ns = currentParent && currentParent.ns || platformGetTagNamespace(tag); // handle IE svg bug
|
9689 |
-
|
9690 |
-
/* istanbul ignore if */
|
9691 |
-
|
9692 |
-
if (isIE && ns === 'svg') {
|
9693 |
-
attrs = guardIESVGBug(attrs);
|
9694 |
-
}
|
9695 |
-
|
9696 |
-
var element = createASTElement(tag, attrs, currentParent);
|
9697 |
-
|
9698 |
-
if (ns) {
|
9699 |
-
element.ns = ns;
|
9700 |
-
}
|
9701 |
-
|
9702 |
-
{
|
9703 |
-
if (options.outputSourceRange) {
|
9704 |
-
element.start = start$1;
|
9705 |
-
element.end = end;
|
9706 |
-
element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {
|
9707 |
-
cumulated[attr.name] = attr;
|
9708 |
-
return cumulated;
|
9709 |
-
}, {});
|
9710 |
-
}
|
9711 |
-
|
9712 |
-
attrs.forEach(function (attr) {
|
9713 |
-
if (invalidAttributeRE.test(attr.name)) {
|
9714 |
-
warn$2("Invalid dynamic argument expression: attribute names cannot contain " + "spaces, quotes, <, >, / or =.", {
|
9715 |
-
start: attr.start + attr.name.indexOf("["),
|
9716 |
-
end: attr.start + attr.name.length
|
9717 |
-
});
|
9718 |
-
}
|
9719 |
-
});
|
9720 |
-
}
|
9721 |
-
|
9722 |
-
if (isForbiddenTag(element) && !isServerRendering()) {
|
9723 |
-
element.forbidden = true;
|
9724 |
-
warn$2('Templates should only be responsible for mapping the state to the ' + 'UI. Avoid placing tags with side-effects in your templates, such as ' + "<" + tag + ">" + ', as they will not be parsed.', {
|
9725 |
-
start: element.start
|
9726 |
-
});
|
9727 |
-
} // apply pre-transforms
|
9728 |
-
|
9729 |
-
|
9730 |
-
for (var i = 0; i < preTransforms.length; i++) {
|
9731 |
-
element = preTransforms[i](element, options) || element;
|
9732 |
-
}
|
9733 |
-
|
9734 |
-
if (!inVPre) {
|
9735 |
-
processPre(element);
|
9736 |
-
|
9737 |
-
if (element.pre) {
|
9738 |
-
inVPre = true;
|
9739 |
-
}
|
9740 |
-
}
|
9741 |
-
|
9742 |
-
if (platformIsPreTag(element.tag)) {
|
9743 |
-
inPre = true;
|
9744 |
-
}
|
9745 |
-
|
9746 |
-
if (inVPre) {
|
9747 |
-
processRawAttrs(element);
|
9748 |
-
} else if (!element.processed) {
|
9749 |
-
// structural directives
|
9750 |
-
processFor(element);
|
9751 |
-
processIf(element);
|
9752 |
-
processOnce(element);
|
9753 |
-
}
|
9754 |
-
|
9755 |
-
if (!root) {
|
9756 |
-
root = element;
|
9757 |
-
{
|
9758 |
-
checkRootConstraints(root);
|
9759 |
-
}
|
9760 |
-
}
|
9761 |
-
|
9762 |
-
if (!unary) {
|
9763 |
-
currentParent = element;
|
9764 |
-
stack.push(element);
|
9765 |
-
} else {
|
9766 |
-
closeElement(element);
|
9767 |
-
}
|
9768 |
-
},
|
9769 |
-
end: function end(tag, start, end$1) {
|
9770 |
-
var element = stack[stack.length - 1]; // pop stack
|
9771 |
-
|
9772 |
-
stack.length -= 1;
|
9773 |
-
currentParent = stack[stack.length - 1];
|
9774 |
-
|
9775 |
-
if (options.outputSourceRange) {
|
9776 |
-
element.end = end$1;
|
9777 |
-
}
|
9778 |
-
|
9779 |
-
closeElement(element);
|
9780 |
-
},
|
9781 |
-
chars: function chars(text, start, end) {
|
9782 |
-
if (!currentParent) {
|
9783 |
-
{
|
9784 |
-
if (text === template) {
|
9785 |
-
warnOnce('Component template requires a root element, rather than just text.', {
|
9786 |
-
start: start
|
9787 |
-
});
|
9788 |
-
} else if (text = text.trim()) {
|
9789 |
-
warnOnce("text \"" + text + "\" outside root element will be ignored.", {
|
9790 |
-
start: start
|
9791 |
-
});
|
9792 |
-
}
|
9793 |
-
}
|
9794 |
-
return;
|
9795 |
-
} // IE textarea placeholder bug
|
9796 |
-
|
9797 |
-
/* istanbul ignore if */
|
9798 |
-
|
9799 |
-
|
9800 |
-
if (isIE && currentParent.tag === 'textarea' && currentParent.attrsMap.placeholder === text) {
|
9801 |
-
return;
|
9802 |
-
}
|
9803 |
-
|
9804 |
-
var children = currentParent.children;
|
9805 |
-
|
9806 |
-
if (inPre || text.trim()) {
|
9807 |
-
text = isTextTag(currentParent) ? text : decodeHTMLCached(text);
|
9808 |
-
} else if (!children.length) {
|
9809 |
-
// remove the whitespace-only node right after an opening tag
|
9810 |
-
text = '';
|
9811 |
-
} else if (whitespaceOption) {
|
9812 |
-
if (whitespaceOption === 'condense') {
|
9813 |
-
// in condense mode, remove the whitespace node if it contains
|
9814 |
-
// line break, otherwise condense to a single space
|
9815 |
-
text = lineBreakRE.test(text) ? '' : ' ';
|
9816 |
-
} else {
|
9817 |
-
text = ' ';
|
9818 |
-
}
|
9819 |
-
} else {
|
9820 |
-
text = preserveWhitespace ? ' ' : '';
|
9821 |
-
}
|
9822 |
-
|
9823 |
-
if (text) {
|
9824 |
-
if (!inPre && whitespaceOption === 'condense') {
|
9825 |
-
// condense consecutive whitespaces into single space
|
9826 |
-
text = text.replace(whitespaceRE$1, ' ');
|
9827 |
-
}
|
9828 |
-
|
9829 |
-
var res;
|
9830 |
-
var child;
|
9831 |
-
|
9832 |
-
if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {
|
9833 |
-
child = {
|
9834 |
-
type: 2,
|
9835 |
-
expression: res.expression,
|
9836 |
-
tokens: res.tokens,
|
9837 |
-
text: text
|
9838 |
-
};
|
9839 |
-
} else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {
|
9840 |
-
child = {
|
9841 |
-
type: 3,
|
9842 |
-
text: text
|
9843 |
-
};
|
9844 |
-
}
|
9845 |
-
|
9846 |
-
if (child) {
|
9847 |
-
if (options.outputSourceRange) {
|
9848 |
-
child.start = start;
|
9849 |
-
child.end = end;
|
9850 |
-
}
|
9851 |
-
|
9852 |
-
children.push(child);
|
9853 |
-
}
|
9854 |
-
}
|
9855 |
-
},
|
9856 |
-
comment: function comment(text, start, end) {
|
9857 |
-
// adding anything as a sibling to the root node is forbidden
|
9858 |
-
// comments should still be allowed, but ignored
|
9859 |
-
if (currentParent) {
|
9860 |
-
var child = {
|
9861 |
-
type: 3,
|
9862 |
-
text: text,
|
9863 |
-
isComment: true
|
9864 |
-
};
|
9865 |
-
|
9866 |
-
if (options.outputSourceRange) {
|
9867 |
-
child.start = start;
|
9868 |
-
child.end = end;
|
9869 |
-
}
|
9870 |
-
|
9871 |
-
currentParent.children.push(child);
|
9872 |
-
}
|
9873 |
-
}
|
9874 |
-
});
|
9875 |
-
return root;
|
9876 |
-
}
|
9877 |
-
|
9878 |
-
function processPre(el) {
|
9879 |
-
if (getAndRemoveAttr(el, 'v-pre') != null) {
|
9880 |
-
el.pre = true;
|
9881 |
-
}
|
9882 |
-
}
|
9883 |
-
|
9884 |
-
function processRawAttrs(el) {
|
9885 |
-
var list = el.attrsList;
|
9886 |
-
var len = list.length;
|
9887 |
-
|
9888 |
-
if (len) {
|
9889 |
-
var attrs = el.attrs = new Array(len);
|
9890 |
-
|
9891 |
-
for (var i = 0; i < len; i++) {
|
9892 |
-
attrs[i] = {
|
9893 |
-
name: list[i].name,
|
9894 |
-
value: JSON.stringify(list[i].value)
|
9895 |
-
};
|
9896 |
-
|
9897 |
-
if (list[i].start != null) {
|
9898 |
-
attrs[i].start = list[i].start;
|
9899 |
-
attrs[i].end = list[i].end;
|
9900 |
-
}
|
9901 |
-
}
|
9902 |
-
} else if (!el.pre) {
|
9903 |
-
// non root node in pre blocks with no attributes
|
9904 |
-
el.plain = true;
|
9905 |
-
}
|
9906 |
-
}
|
9907 |
-
|
9908 |
-
function processElement(element, options) {
|
9909 |
-
processKey(element); // determine whether this is a plain element after
|
9910 |
-
// removing structural attributes
|
9911 |
-
|
9912 |
-
element.plain = !element.key && !element.scopedSlots && !element.attrsList.length;
|
9913 |
-
processRef(element);
|
9914 |
-
processSlotContent(element);
|
9915 |
-
processSlotOutlet(element);
|
9916 |
-
processComponent(element);
|
9917 |
-
|
9918 |
-
for (var i = 0; i < transforms.length; i++) {
|
9919 |
-
element = transforms[i](element, options) || element;
|
9920 |
-
}
|
9921 |
-
|
9922 |
-
processAttrs(element);
|
9923 |
-
return element;
|
9924 |
-
}
|
9925 |
-
|
9926 |
-
function processKey(el) {
|
9927 |
-
var exp = getBindingAttr(el, 'key');
|
9928 |
-
|
9929 |
-
if (exp) {
|
9930 |
-
{
|
9931 |
-
if (el.tag === 'template') {
|
9932 |
-
warn$2("<template> cannot be keyed. Place the key on real elements instead.", getRawBindingAttr(el, 'key'));
|
9933 |
-
}
|
9934 |
-
|
9935 |
-
if (el["for"]) {
|
9936 |
-
var iterator = el.iterator2 || el.iterator1;
|
9937 |
-
var parent = el.parent;
|
9938 |
-
|
9939 |
-
if (iterator && iterator === exp && parent && parent.tag === 'transition-group') {
|
9940 |
-
warn$2("Do not use v-for index as key on <transition-group> children, " + "this is the same as not using keys.", getRawBindingAttr(el, 'key'), true
|
9941 |
-
/* tip */
|
9942 |
-
);
|
9943 |
-
}
|
9944 |
-
}
|
9945 |
-
}
|
9946 |
-
el.key = exp;
|
9947 |
-
}
|
9948 |
-
}
|
9949 |
-
|
9950 |
-
function processRef(el) {
|
9951 |
-
var ref = getBindingAttr(el, 'ref');
|
9952 |
-
|
9953 |
-
if (ref) {
|
9954 |
-
el.ref = ref;
|
9955 |
-
el.refInFor = checkInFor(el);
|
9956 |
-
}
|
9957 |
-
}
|
9958 |
-
|
9959 |
-
function processFor(el) {
|
9960 |
-
var exp;
|
9961 |
-
|
9962 |
-
if (exp = getAndRemoveAttr(el, 'v-for')) {
|
9963 |
-
var res = parseFor(exp);
|
9964 |
-
|
9965 |
-
if (res) {
|
9966 |
-
extend(el, res);
|
9967 |
-
} else {
|
9968 |
-
warn$2("Invalid v-for expression: " + exp, el.rawAttrsMap['v-for']);
|
9969 |
-
}
|
9970 |
-
}
|
9971 |
-
}
|
9972 |
-
|
9973 |
-
function parseFor(exp) {
|
9974 |
-
var inMatch = exp.match(forAliasRE);
|
9975 |
-
|
9976 |
-
if (!inMatch) {
|
9977 |
-
return;
|
9978 |
-
}
|
9979 |
-
|
9980 |
-
var res = {};
|
9981 |
-
res["for"] = inMatch[2].trim();
|
9982 |
-
var alias = inMatch[1].trim().replace(stripParensRE, '');
|
9983 |
-
var iteratorMatch = alias.match(forIteratorRE);
|
9984 |
-
|
9985 |
-
if (iteratorMatch) {
|
9986 |
-
res.alias = alias.replace(forIteratorRE, '').trim();
|
9987 |
-
res.iterator1 = iteratorMatch[1].trim();
|
9988 |
-
|
9989 |
-
if (iteratorMatch[2]) {
|
9990 |
-
res.iterator2 = iteratorMatch[2].trim();
|
9991 |
-
}
|
9992 |
-
} else {
|
9993 |
-
res.alias = alias;
|
9994 |
-
}
|
9995 |
-
|
9996 |
-
return res;
|
9997 |
-
}
|
9998 |
-
|
9999 |
-
function processIf(el) {
|
10000 |
-
var exp = getAndRemoveAttr(el, 'v-if');
|
10001 |
-
|
10002 |
-
if (exp) {
|
10003 |
-
el["if"] = exp;
|
10004 |
-
addIfCondition(el, {
|
10005 |
-
exp: exp,
|
10006 |
-
block: el
|
10007 |
-
});
|
10008 |
-
} else {
|
10009 |
-
if (getAndRemoveAttr(el, 'v-else') != null) {
|
10010 |
-
el["else"] = true;
|
10011 |
-
}
|
10012 |
-
|
10013 |
-
var elseif = getAndRemoveAttr(el, 'v-else-if');
|
10014 |
-
|
10015 |
-
if (elseif) {
|
10016 |
-
el.elseif = elseif;
|
10017 |
-
}
|
10018 |
-
}
|
10019 |
-
}
|
10020 |
-
|
10021 |
-
function processIfConditions(el, parent) {
|
10022 |
-
var prev = findPrevElement(parent.children);
|
10023 |
-
|
10024 |
-
if (prev && prev["if"]) {
|
10025 |
-
addIfCondition(prev, {
|
10026 |
-
exp: el.elseif,
|
10027 |
-
block: el
|
10028 |
-
});
|
10029 |
-
} else {
|
10030 |
-
warn$2("v-" + (el.elseif ? 'else-if="' + el.elseif + '"' : 'else') + " " + "used on element <" + el.tag + "> without corresponding v-if.", el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']);
|
10031 |
-
}
|
10032 |
-
}
|
10033 |
-
|
10034 |
-
function findPrevElement(children) {
|
10035 |
-
var i = children.length;
|
10036 |
-
|
10037 |
-
while (i--) {
|
10038 |
-
if (children[i].type === 1) {
|
10039 |
-
return children[i];
|
10040 |
-
} else {
|
10041 |
-
if (children[i].text !== ' ') {
|
10042 |
-
warn$2("text \"" + children[i].text.trim() + "\" between v-if and v-else(-if) " + "will be ignored.", children[i]);
|
10043 |
-
}
|
10044 |
-
|
10045 |
-
children.pop();
|
10046 |
-
}
|
10047 |
-
}
|
10048 |
-
}
|
10049 |
-
|
10050 |
-
function addIfCondition(el, condition) {
|
10051 |
-
if (!el.ifConditions) {
|
10052 |
-
el.ifConditions = [];
|
10053 |
-
}
|
10054 |
-
|
10055 |
-
el.ifConditions.push(condition);
|
10056 |
-
}
|
10057 |
-
|
10058 |
-
function processOnce(el) {
|
10059 |
-
var once$$1 = getAndRemoveAttr(el, 'v-once');
|
10060 |
-
|
10061 |
-
if (once$$1 != null) {
|
10062 |
-
el.once = true;
|
10063 |
-
}
|
10064 |
-
} // handle content being passed to a component as slot,
|
10065 |
-
// e.g. <template slot="xxx">, <div slot-scope="xxx">
|
10066 |
-
|
10067 |
-
|
10068 |
-
function processSlotContent(el) {
|
10069 |
-
var slotScope;
|
10070 |
-
|
10071 |
-
if (el.tag === 'template') {
|
10072 |
-
slotScope = getAndRemoveAttr(el, 'scope');
|
10073 |
-
/* istanbul ignore if */
|
10074 |
-
|
10075 |
-
if (slotScope) {
|
10076 |
-
warn$2("the \"scope\" attribute for scoped slots have been deprecated and " + "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " + "can also be used on plain elements in addition to <template> to " + "denote scoped slots.", el.rawAttrsMap['scope'], true);
|
10077 |
-
}
|
10078 |
-
|
10079 |
-
el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');
|
10080 |
-
} else if (slotScope = getAndRemoveAttr(el, 'slot-scope')) {
|
10081 |
-
/* istanbul ignore if */
|
10082 |
-
if (el.attrsMap['v-for']) {
|
10083 |
-
warn$2("Ambiguous combined usage of slot-scope and v-for on <" + el.tag + "> " + "(v-for takes higher priority). Use a wrapper <template> for the " + "scoped slot to make it clearer.", el.rawAttrsMap['slot-scope'], true);
|
10084 |
-
}
|
10085 |
-
|
10086 |
-
el.slotScope = slotScope;
|
10087 |
-
} // slot="xxx"
|
10088 |
-
|
10089 |
-
|
10090 |
-
var slotTarget = getBindingAttr(el, 'slot');
|
10091 |
-
|
10092 |
-
if (slotTarget) {
|
10093 |
-
el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;
|
10094 |
-
el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']); // preserve slot as an attribute for native shadow DOM compat
|
10095 |
-
// only for non-scoped slots.
|
10096 |
-
|
10097 |
-
if (el.tag !== 'template' && !el.slotScope) {
|
10098 |
-
addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));
|
10099 |
-
}
|
10100 |
-
} // 2.6 v-slot syntax
|
10101 |
-
|
10102 |
-
|
10103 |
-
{
|
10104 |
-
if (el.tag === 'template') {
|
10105 |
-
// v-slot on <template>
|
10106 |
-
var slotBinding = getAndRemoveAttrByRegex(el, slotRE);
|
10107 |
-
|
10108 |
-
if (slotBinding) {
|
10109 |
-
{
|
10110 |
-
if (el.slotTarget || el.slotScope) {
|
10111 |
-
warn$2("Unexpected mixed usage of different slot syntaxes.", el);
|
10112 |
-
}
|
10113 |
-
|
10114 |
-
if (el.parent && !maybeComponent(el.parent)) {
|
10115 |
-
warn$2("<template v-slot> can only appear at the root level inside " + "the receiving component", el);
|
10116 |
-
}
|
10117 |
-
}
|
10118 |
-
var ref = getSlotName(slotBinding);
|
10119 |
-
var name = ref.name;
|
10120 |
-
var dynamic = ref.dynamic;
|
10121 |
-
el.slotTarget = name;
|
10122 |
-
el.slotTargetDynamic = dynamic;
|
10123 |
-
el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf
|
10124 |
-
}
|
10125 |
-
} else {
|
10126 |
-
// v-slot on component, denotes default slot
|
10127 |
-
var slotBinding$1 = getAndRemoveAttrByRegex(el, slotRE);
|
10128 |
-
|
10129 |
-
if (slotBinding$1) {
|
10130 |
-
{
|
10131 |
-
if (!maybeComponent(el)) {
|
10132 |
-
warn$2("v-slot can only be used on components or <template>.", slotBinding$1);
|
10133 |
-
}
|
10134 |
-
|
10135 |
-
if (el.slotScope || el.slotTarget) {
|
10136 |
-
warn$2("Unexpected mixed usage of different slot syntaxes.", el);
|
10137 |
-
}
|
10138 |
-
|
10139 |
-
if (el.scopedSlots) {
|
10140 |
-
warn$2("To avoid scope ambiguity, the default slot should also use " + "<template> syntax when there are other named slots.", slotBinding$1);
|
10141 |
-
}
|
10142 |
-
} // add the component's children to its default slot
|
10143 |
-
|
10144 |
-
var slots = el.scopedSlots || (el.scopedSlots = {});
|
10145 |
-
var ref$1 = getSlotName(slotBinding$1);
|
10146 |
-
var name$1 = ref$1.name;
|
10147 |
-
var dynamic$1 = ref$1.dynamic;
|
10148 |
-
var slotContainer = slots[name$1] = createASTElement('template', [], el);
|
10149 |
-
slotContainer.slotTarget = name$1;
|
10150 |
-
slotContainer.slotTargetDynamic = dynamic$1;
|
10151 |
-
slotContainer.children = el.children.filter(function (c) {
|
10152 |
-
if (!c.slotScope) {
|
10153 |
-
c.parent = slotContainer;
|
10154 |
-
return true;
|
10155 |
-
}
|
10156 |
-
});
|
10157 |
-
slotContainer.slotScope = slotBinding$1.value || emptySlotScopeToken; // remove children as they are returned from scopedSlots now
|
10158 |
-
|
10159 |
-
el.children = []; // mark el non-plain so data gets generated
|
10160 |
-
|
10161 |
-
el.plain = false;
|
10162 |
-
}
|
10163 |
-
}
|
10164 |
-
}
|
10165 |
-
}
|
10166 |
-
|
10167 |
-
function getSlotName(binding) {
|
10168 |
-
var name = binding.name.replace(slotRE, '');
|
10169 |
-
|
10170 |
-
if (!name) {
|
10171 |
-
if (binding.name[0] !== '#') {
|
10172 |
-
name = 'default';
|
10173 |
-
} else {
|
10174 |
-
warn$2("v-slot shorthand syntax requires a slot name.", binding);
|
10175 |
-
}
|
10176 |
-
}
|
10177 |
-
|
10178 |
-
return dynamicArgRE.test(name) // dynamic [name]
|
10179 |
-
? {
|
10180 |
-
name: name.slice(1, -1),
|
10181 |
-
dynamic: true
|
10182 |
-
} // static name
|
10183 |
-
: {
|
10184 |
-
name: "\"" + name + "\"",
|
10185 |
-
dynamic: false
|
10186 |
-
};
|
10187 |
-
} // handle <slot/> outlets
|
10188 |
-
|
10189 |
-
|
10190 |
-
function processSlotOutlet(el) {
|
10191 |
-
if (el.tag === 'slot') {
|
10192 |
-
el.slotName = getBindingAttr(el, 'name');
|
10193 |
-
|
10194 |
-
if (el.key) {
|
10195 |
-
warn$2("`key` does not work on <slot> because slots are abstract outlets " + "and can possibly expand into multiple elements. " + "Use the key on a wrapping element instead.", getRawBindingAttr(el, 'key'));
|
10196 |
-
}
|
10197 |
-
}
|
10198 |
-
}
|
10199 |
-
|
10200 |
-
function processComponent(el) {
|
10201 |
-
var binding;
|
10202 |
-
|
10203 |
-
if (binding = getBindingAttr(el, 'is')) {
|
10204 |
-
el.component = binding;
|
10205 |
-
}
|
10206 |
-
|
10207 |
-
if (getAndRemoveAttr(el, 'inline-template') != null) {
|
10208 |
-
el.inlineTemplate = true;
|
10209 |
-
}
|
10210 |
-
}
|
10211 |
-
|
10212 |
-
function processAttrs(el) {
|
10213 |
-
var list = el.attrsList;
|
10214 |
-
var i, l, name, rawName, value, modifiers, syncGen, isDynamic;
|
10215 |
-
|
10216 |
-
for (i = 0, l = list.length; i < l; i++) {
|
10217 |
-
name = rawName = list[i].name;
|
10218 |
-
value = list[i].value;
|
10219 |
-
|
10220 |
-
if (dirRE.test(name)) {
|
10221 |
-
// mark element as dynamic
|
10222 |
-
el.hasBindings = true; // modifiers
|
10223 |
-
|
10224 |
-
modifiers = parseModifiers(name.replace(dirRE, '')); // support .foo shorthand syntax for the .prop modifier
|
10225 |
-
|
10226 |
-
if (modifiers) {
|
10227 |
-
name = name.replace(modifierRE, '');
|
10228 |
-
}
|
10229 |
-
|
10230 |
-
if (bindRE.test(name)) {
|
10231 |
-
// v-bind
|
10232 |
-
name = name.replace(bindRE, '');
|
10233 |
-
value = parseFilters(value);
|
10234 |
-
isDynamic = dynamicArgRE.test(name);
|
10235 |
-
|
10236 |
-
if (isDynamic) {
|
10237 |
-
name = name.slice(1, -1);
|
10238 |
-
}
|
10239 |
-
|
10240 |
-
if (value.trim().length === 0) {
|
10241 |
-
warn$2("The value for a v-bind expression cannot be empty. Found in \"v-bind:" + name + "\"");
|
10242 |
-
}
|
10243 |
-
|
10244 |
-
if (modifiers) {
|
10245 |
-
if (modifiers.prop && !isDynamic) {
|
10246 |
-
name = camelize(name);
|
10247 |
-
|
10248 |
-
if (name === 'innerHtml') {
|
10249 |
-
name = 'innerHTML';
|
10250 |
-
}
|
10251 |
-
}
|
10252 |
-
|
10253 |
-
if (modifiers.camel && !isDynamic) {
|
10254 |
-
name = camelize(name);
|
10255 |
-
}
|
10256 |
-
|
10257 |
-
if (modifiers.sync) {
|
10258 |
-
syncGen = genAssignmentCode(value, "$event");
|
10259 |
-
|
10260 |
-
if (!isDynamic) {
|
10261 |
-
addHandler(el, "update:" + camelize(name), syncGen, null, false, warn$2, list[i]);
|
10262 |
-
|
10263 |
-
if (hyphenate(name) !== camelize(name)) {
|
10264 |
-
addHandler(el, "update:" + hyphenate(name), syncGen, null, false, warn$2, list[i]);
|
10265 |
-
}
|
10266 |
-
} else {
|
10267 |
-
// handler w/ dynamic event name
|
10268 |
-
addHandler(el, "\"update:\"+(" + name + ")", syncGen, null, false, warn$2, list[i], true // dynamic
|
10269 |
-
);
|
10270 |
-
}
|
10271 |
-
}
|
10272 |
-
}
|
10273 |
-
|
10274 |
-
if (modifiers && modifiers.prop || !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)) {
|
10275 |
-
addProp(el, name, value, list[i], isDynamic);
|
10276 |
-
} else {
|
10277 |
-
addAttr(el, name, value, list[i], isDynamic);
|
10278 |
-
}
|
10279 |
-
} else if (onRE.test(name)) {
|
10280 |
-
// v-on
|
10281 |
-
name = name.replace(onRE, '');
|
10282 |
-
isDynamic = dynamicArgRE.test(name);
|
10283 |
-
|
10284 |
-
if (isDynamic) {
|
10285 |
-
name = name.slice(1, -1);
|
10286 |
-
}
|
10287 |
-
|
10288 |
-
addHandler(el, name, value, modifiers, false, warn$2, list[i], isDynamic);
|
10289 |
-
} else {
|
10290 |
-
// normal directives
|
10291 |
-
name = name.replace(dirRE, ''); // parse arg
|
10292 |
-
|
10293 |
-
var argMatch = name.match(argRE);
|
10294 |
-
var arg = argMatch && argMatch[1];
|
10295 |
-
isDynamic = false;
|
10296 |
-
|
10297 |
-
if (arg) {
|
10298 |
-
name = name.slice(0, -(arg.length + 1));
|
10299 |
-
|
10300 |
-
if (dynamicArgRE.test(arg)) {
|
10301 |
-
arg = arg.slice(1, -1);
|
10302 |
-
isDynamic = true;
|
10303 |
-
}
|
10304 |
-
}
|
10305 |
-
|
10306 |
-
addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);
|
10307 |
-
|
10308 |
-
if (name === 'model') {
|
10309 |
-
checkForAliasModel(el, value);
|
10310 |
-
}
|
10311 |
-
}
|
10312 |
-
} else {
|
10313 |
-
// literal attribute
|
10314 |
-
{
|
10315 |
-
var res = parseText(value, delimiters);
|
10316 |
-
|
10317 |
-
if (res) {
|
10318 |
-
warn$2(name + "=\"" + value + "\": " + 'Interpolation inside attributes has been removed. ' + 'Use v-bind or the colon shorthand instead. For example, ' + 'instead of <div id="{{ val }}">, use <div :id="val">.', list[i]);
|
10319 |
-
}
|
10320 |
-
}
|
10321 |
-
addAttr(el, name, JSON.stringify(value), list[i]); // #6887 firefox doesn't update muted state if set via attribute
|
10322 |
-
// even immediately after element creation
|
10323 |
-
|
10324 |
-
if (!el.component && name === 'muted' && platformMustUseProp(el.tag, el.attrsMap.type, name)) {
|
10325 |
-
addProp(el, name, 'true', list[i]);
|
10326 |
-
}
|
10327 |
-
}
|
10328 |
-
}
|
10329 |
-
}
|
10330 |
-
|
10331 |
-
function checkInFor(el) {
|
10332 |
-
var parent = el;
|
10333 |
-
|
10334 |
-
while (parent) {
|
10335 |
-
if (parent["for"] !== undefined) {
|
10336 |
-
return true;
|
10337 |
-
}
|
10338 |
-
|
10339 |
-
parent = parent.parent;
|
10340 |
-
}
|
10341 |
-
|
10342 |
-
return false;
|
10343 |
-
}
|
10344 |
-
|
10345 |
-
function parseModifiers(name) {
|
10346 |
-
var match = name.match(modifierRE);
|
10347 |
-
|
10348 |
-
if (match) {
|
10349 |
-
var ret = {};
|
10350 |
-
match.forEach(function (m) {
|
10351 |
-
ret[m.slice(1)] = true;
|
10352 |
-
});
|
10353 |
-
return ret;
|
10354 |
-
}
|
10355 |
-
}
|
10356 |
-
|
10357 |
-
function makeAttrsMap(attrs) {
|
10358 |
-
var map = {};
|
10359 |
-
|
10360 |
-
for (var i = 0, l = attrs.length; i < l; i++) {
|
10361 |
-
if (map[attrs[i].name] && !isIE && !isEdge) {
|
10362 |
-
warn$2('duplicate attribute: ' + attrs[i].name, attrs[i]);
|
10363 |
-
}
|
10364 |
-
|
10365 |
-
map[attrs[i].name] = attrs[i].value;
|
10366 |
-
}
|
10367 |
-
|
10368 |
-
return map;
|
10369 |
-
} // for script (e.g. type="x/template") or style, do not decode content
|
10370 |
-
|
10371 |
-
|
10372 |
-
function isTextTag(el) {
|
10373 |
-
return el.tag === 'script' || el.tag === 'style';
|
10374 |
-
}
|
10375 |
-
|
10376 |
-
function isForbiddenTag(el) {
|
10377 |
-
return el.tag === 'style' || el.tag === 'script' && (!el.attrsMap.type || el.attrsMap.type === 'text/javascript');
|
10378 |
-
}
|
10379 |
-
|
10380 |
-
var ieNSBug = /^xmlns:NS\d+/;
|
10381 |
-
var ieNSPrefix = /^NS\d+:/;
|
10382 |
-
/* istanbul ignore next */
|
10383 |
-
|
10384 |
-
function guardIESVGBug(attrs) {
|
10385 |
-
var res = [];
|
10386 |
-
|
10387 |
-
for (var i = 0; i < attrs.length; i++) {
|
10388 |
-
var attr = attrs[i];
|
10389 |
-
|
10390 |
-
if (!ieNSBug.test(attr.name)) {
|
10391 |
-
attr.name = attr.name.replace(ieNSPrefix, '');
|
10392 |
-
res.push(attr);
|
10393 |
-
}
|
10394 |
-
}
|
10395 |
-
|
10396 |
-
return res;
|
10397 |
-
}
|
10398 |
-
|
10399 |
-
function checkForAliasModel(el, value) {
|
10400 |
-
var _el = el;
|
10401 |
-
|
10402 |
-
while (_el) {
|
10403 |
-
if (_el["for"] && _el.alias === value) {
|
10404 |
-
warn$2("<" + el.tag + " v-model=\"" + value + "\">: " + "You are binding v-model directly to a v-for iteration alias. " + "This will not be able to modify the v-for source array because " + "writing to the alias is like modifying a function local variable. " + "Consider using an array of objects and use v-model on an object property instead.", el.rawAttrsMap['v-model']);
|
10405 |
-
}
|
10406 |
-
|
10407 |
-
_el = _el.parent;
|
10408 |
-
}
|
10409 |
-
}
|
10410 |
-
/* */
|
10411 |
-
|
10412 |
-
|
10413 |
-
function preTransformNode(el, options) {
|
10414 |
-
if (el.tag === 'input') {
|
10415 |
-
var map = el.attrsMap;
|
10416 |
-
|
10417 |
-
if (!map['v-model']) {
|
10418 |
-
return;
|
10419 |
-
}
|
10420 |
-
|
10421 |
-
var typeBinding;
|
10422 |
-
|
10423 |
-
if (map[':type'] || map['v-bind:type']) {
|
10424 |
-
typeBinding = getBindingAttr(el, 'type');
|
10425 |
-
}
|
10426 |
-
|
10427 |
-
if (!map.type && !typeBinding && map['v-bind']) {
|
10428 |
-
typeBinding = "(" + map['v-bind'] + ").type";
|
10429 |
-
}
|
10430 |
-
|
10431 |
-
if (typeBinding) {
|
10432 |
-
var ifCondition = getAndRemoveAttr(el, 'v-if', true);
|
10433 |
-
var ifConditionExtra = ifCondition ? "&&(" + ifCondition + ")" : "";
|
10434 |
-
var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;
|
10435 |
-
var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true); // 1. checkbox
|
10436 |
-
|
10437 |
-
var branch0 = cloneASTElement(el); // process for on the main node
|
10438 |
-
|
10439 |
-
processFor(branch0);
|
10440 |
-
addRawAttr(branch0, 'type', 'checkbox');
|
10441 |
-
processElement(branch0, options);
|
10442 |
-
branch0.processed = true; // prevent it from double-processed
|
10443 |
-
|
10444 |
-
branch0["if"] = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;
|
10445 |
-
addIfCondition(branch0, {
|
10446 |
-
exp: branch0["if"],
|
10447 |
-
block: branch0
|
10448 |
-
}); // 2. add radio else-if condition
|
10449 |
-
|
10450 |
-
var branch1 = cloneASTElement(el);
|
10451 |
-
getAndRemoveAttr(branch1, 'v-for', true);
|
10452 |
-
addRawAttr(branch1, 'type', 'radio');
|
10453 |
-
processElement(branch1, options);
|
10454 |
-
addIfCondition(branch0, {
|
10455 |
-
exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,
|
10456 |
-
block: branch1
|
10457 |
-
}); // 3. other
|
10458 |
-
|
10459 |
-
var branch2 = cloneASTElement(el);
|
10460 |
-
getAndRemoveAttr(branch2, 'v-for', true);
|
10461 |
-
addRawAttr(branch2, ':type', typeBinding);
|
10462 |
-
processElement(branch2, options);
|
10463 |
-
addIfCondition(branch0, {
|
10464 |
-
exp: ifCondition,
|
10465 |
-
block: branch2
|
10466 |
-
});
|
10467 |
-
|
10468 |
-
if (hasElse) {
|
10469 |
-
branch0["else"] = true;
|
10470 |
-
} else if (elseIfCondition) {
|
10471 |
-
branch0.elseif = elseIfCondition;
|
10472 |
-
}
|
10473 |
-
|
10474 |
-
return branch0;
|
10475 |
-
}
|
10476 |
-
}
|
10477 |
-
}
|
10478 |
-
|
10479 |
-
function cloneASTElement(el) {
|
10480 |
-
return createASTElement(el.tag, el.attrsList.slice(), el.parent);
|
10481 |
-
}
|
10482 |
-
|
10483 |
-
var model$1 = {
|
10484 |
-
preTransformNode: preTransformNode
|
10485 |
-
};
|
10486 |
-
var modules$1 = [klass$1, style$1, model$1];
|
10487 |
-
/* */
|
10488 |
-
|
10489 |
-
function text(el, dir) {
|
10490 |
-
if (dir.value) {
|
10491 |
-
addProp(el, 'textContent', "_s(" + dir.value + ")", dir);
|
10492 |
-
}
|
10493 |
-
}
|
10494 |
-
/* */
|
10495 |
-
|
10496 |
-
|
10497 |
-
function html(el, dir) {
|
10498 |
-
if (dir.value) {
|
10499 |
-
addProp(el, 'innerHTML', "_s(" + dir.value + ")", dir);
|
10500 |
-
}
|
10501 |
-
}
|
10502 |
-
|
10503 |
-
var directives$1 = {
|
10504 |
-
model: model,
|
10505 |
-
text: text,
|
10506 |
-
html: html
|
10507 |
-
};
|
10508 |
-
/* */
|
10509 |
-
|
10510 |
-
var baseOptions = {
|
10511 |
-
expectHTML: true,
|
10512 |
-
modules: modules$1,
|
10513 |
-
directives: directives$1,
|
10514 |
-
isPreTag: isPreTag,
|
10515 |
-
isUnaryTag: isUnaryTag,
|
10516 |
-
mustUseProp: mustUseProp,
|
10517 |
-
canBeLeftOpenTag: canBeLeftOpenTag,
|
10518 |
-
isReservedTag: isReservedTag,
|
10519 |
-
getTagNamespace: getTagNamespace,
|
10520 |
-
staticKeys: genStaticKeys(modules$1)
|
10521 |
-
};
|
10522 |
-
/* */
|
10523 |
-
|
10524 |
-
var isStaticKey;
|
10525 |
-
var isPlatformReservedTag;
|
10526 |
-
var genStaticKeysCached = cached(genStaticKeys$1);
|
10527 |
-
/**
|
10528 |
-
* Goal of the optimizer: walk the generated template AST tree
|
10529 |
-
* and detect sub-trees that are purely static, i.e. parts of
|
10530 |
-
* the DOM that never needs to change.
|
10531 |
-
*
|
10532 |
-
* Once we detect these sub-trees, we can:
|
10533 |
-
*
|
10534 |
-
* 1. Hoist them into constants, so that we no longer need to
|
10535 |
-
* create fresh nodes for them on each re-render;
|
10536 |
-
* 2. Completely skip them in the patching process.
|
10537 |
-
*/
|
10538 |
-
|
10539 |
-
function optimize(root, options) {
|
10540 |
-
if (!root) {
|
10541 |
-
return;
|
10542 |
-
}
|
10543 |
-
|
10544 |
-
isStaticKey = genStaticKeysCached(options.staticKeys || '');
|
10545 |
-
isPlatformReservedTag = options.isReservedTag || no; // first pass: mark all non-static nodes.
|
10546 |
-
|
10547 |
-
markStatic$1(root); // second pass: mark static roots.
|
10548 |
-
|
10549 |
-
markStaticRoots(root, false);
|
10550 |
-
}
|
10551 |
-
|
10552 |
-
function genStaticKeys$1(keys) {
|
10553 |
-
return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' + (keys ? ',' + keys : ''));
|
10554 |
-
}
|
10555 |
-
|
10556 |
-
function markStatic$1(node) {
|
10557 |
-
node["static"] = isStatic(node);
|
10558 |
-
|
10559 |
-
if (node.type === 1) {
|
10560 |
-
// do not make component slot content static. this avoids
|
10561 |
-
// 1. components not able to mutate slot nodes
|
10562 |
-
// 2. static slot content fails for hot-reloading
|
10563 |
-
if (!isPlatformReservedTag(node.tag) && node.tag !== 'slot' && node.attrsMap['inline-template'] == null) {
|
10564 |
-
return;
|
10565 |
-
}
|
10566 |
-
|
10567 |
-
for (var i = 0, l = node.children.length; i < l; i++) {
|
10568 |
-
var child = node.children[i];
|
10569 |
-
markStatic$1(child);
|
10570 |
-
|
10571 |
-
if (!child["static"]) {
|
10572 |
-
node["static"] = false;
|
10573 |
-
}
|
10574 |
-
}
|
10575 |
-
|
10576 |
-
if (node.ifConditions) {
|
10577 |
-
for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
|
10578 |
-
var block = node.ifConditions[i$1].block;
|
10579 |
-
markStatic$1(block);
|
10580 |
-
|
10581 |
-
if (!block["static"]) {
|
10582 |
-
node["static"] = false;
|
10583 |
-
}
|
10584 |
-
}
|
10585 |
-
}
|
10586 |
-
}
|
10587 |
-
}
|
10588 |
-
|
10589 |
-
function markStaticRoots(node, isInFor) {
|
10590 |
-
if (node.type === 1) {
|
10591 |
-
if (node["static"] || node.once) {
|
10592 |
-
node.staticInFor = isInFor;
|
10593 |
-
} // For a node to qualify as a static root, it should have children that
|
10594 |
-
// are not just static text. Otherwise the cost of hoisting out will
|
10595 |
-
// outweigh the benefits and it's better off to just always render it fresh.
|
10596 |
-
|
10597 |
-
|
10598 |
-
if (node["static"] && node.children.length && !(node.children.length === 1 && node.children[0].type === 3)) {
|
10599 |
-
node.staticRoot = true;
|
10600 |
-
return;
|
10601 |
-
} else {
|
10602 |
-
node.staticRoot = false;
|
10603 |
-
}
|
10604 |
-
|
10605 |
-
if (node.children) {
|
10606 |
-
for (var i = 0, l = node.children.length; i < l; i++) {
|
10607 |
-
markStaticRoots(node.children[i], isInFor || !!node["for"]);
|
10608 |
-
}
|
10609 |
-
}
|
10610 |
-
|
10611 |
-
if (node.ifConditions) {
|
10612 |
-
for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {
|
10613 |
-
markStaticRoots(node.ifConditions[i$1].block, isInFor);
|
10614 |
-
}
|
10615 |
-
}
|
10616 |
-
}
|
10617 |
-
}
|
10618 |
-
|
10619 |
-
function isStatic(node) {
|
10620 |
-
if (node.type === 2) {
|
10621 |
-
// expression
|
10622 |
-
return false;
|
10623 |
-
}
|
10624 |
-
|
10625 |
-
if (node.type === 3) {
|
10626 |
-
// text
|
10627 |
-
return true;
|
10628 |
-
}
|
10629 |
-
|
10630 |
-
return !!(node.pre || !node.hasBindings && // no dynamic bindings
|
10631 |
-
!node["if"] && !node["for"] && // not v-if or v-for or v-else
|
10632 |
-
!isBuiltInTag(node.tag) && // not a built-in
|
10633 |
-
isPlatformReservedTag(node.tag) && // not a component
|
10634 |
-
!isDirectChildOfTemplateFor(node) && Object.keys(node).every(isStaticKey));
|
10635 |
-
}
|
10636 |
-
|
10637 |
-
function isDirectChildOfTemplateFor(node) {
|
10638 |
-
while (node.parent) {
|
10639 |
-
node = node.parent;
|
10640 |
-
|
10641 |
-
if (node.tag !== 'template') {
|
10642 |
-
return false;
|
10643 |
-
}
|
10644 |
-
|
10645 |
-
if (node["for"]) {
|
10646 |
-
return true;
|
10647 |
-
}
|
10648 |
-
}
|
10649 |
-
|
10650 |
-
return false;
|
10651 |
-
}
|
10652 |
-
/* */
|
10653 |
-
|
10654 |
-
|
10655 |
-
var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/;
|
10656 |
-
var fnInvokeRE = /\([^)]*?\);*$/;
|
10657 |
-
var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/; // KeyboardEvent.keyCode aliases
|
10658 |
-
|
10659 |
-
var keyCodes = {
|
10660 |
-
esc: 27,
|
10661 |
-
tab: 9,
|
10662 |
-
enter: 13,
|
10663 |
-
space: 32,
|
10664 |
-
up: 38,
|
10665 |
-
left: 37,
|
10666 |
-
right: 39,
|
10667 |
-
down: 40,
|
10668 |
-
'delete': [8, 46]
|
10669 |
-
}; // KeyboardEvent.key aliases
|
10670 |
-
|
10671 |
-
var keyNames = {
|
10672 |
-
// #7880: IE11 and Edge use `Esc` for Escape key name.
|
10673 |
-
esc: ['Esc', 'Escape'],
|
10674 |
-
tab: 'Tab',
|
10675 |
-
enter: 'Enter',
|
10676 |
-
// #9112: IE11 uses `Spacebar` for Space key name.
|
10677 |
-
space: [' ', 'Spacebar'],
|
10678 |
-
// #7806: IE11 uses key names without `Arrow` prefix for arrow keys.
|
10679 |
-
up: ['Up', 'ArrowUp'],
|
10680 |
-
left: ['Left', 'ArrowLeft'],
|
10681 |
-
right: ['Right', 'ArrowRight'],
|
10682 |
-
down: ['Down', 'ArrowDown'],
|
10683 |
-
// #9112: IE11 uses `Del` for Delete key name.
|
10684 |
-
'delete': ['Backspace', 'Delete', 'Del']
|
10685 |
-
}; // #4868: modifiers that prevent the execution of the listener
|
10686 |
-
// need to explicitly return null so that we can determine whether to remove
|
10687 |
-
// the listener for .once
|
10688 |
-
|
10689 |
-
var genGuard = function genGuard(condition) {
|
10690 |
-
return "if(" + condition + ")return null;";
|
10691 |
-
};
|
10692 |
-
|
10693 |
-
var modifierCode = {
|
10694 |
-
stop: '$event.stopPropagation();',
|
10695 |
-
prevent: '$event.preventDefault();',
|
10696 |
-
self: genGuard("$event.target !== $event.currentTarget"),
|
10697 |
-
ctrl: genGuard("!$event.ctrlKey"),
|
10698 |
-
shift: genGuard("!$event.shiftKey"),
|
10699 |
-
alt: genGuard("!$event.altKey"),
|
10700 |
-
meta: genGuard("!$event.metaKey"),
|
10701 |
-
left: genGuard("'button' in $event && $event.button !== 0"),
|
10702 |
-
middle: genGuard("'button' in $event && $event.button !== 1"),
|
10703 |
-
right: genGuard("'button' in $event && $event.button !== 2")
|
10704 |
-
};
|
10705 |
-
|
10706 |
-
function genHandlers(events, isNative) {
|
10707 |
-
var prefix = isNative ? 'nativeOn:' : 'on:';
|
10708 |
-
var staticHandlers = "";
|
10709 |
-
var dynamicHandlers = "";
|
10710 |
-
|
10711 |
-
for (var name in events) {
|
10712 |
-
var handlerCode = genHandler(events[name]);
|
10713 |
-
|
10714 |
-
if (events[name] && events[name].dynamic) {
|
10715 |
-
dynamicHandlers += name + "," + handlerCode + ",";
|
10716 |
-
} else {
|
10717 |
-
staticHandlers += "\"" + name + "\":" + handlerCode + ",";
|
10718 |
-
}
|
10719 |
-
}
|
10720 |
-
|
10721 |
-
staticHandlers = "{" + staticHandlers.slice(0, -1) + "}";
|
10722 |
-
|
10723 |
-
if (dynamicHandlers) {
|
10724 |
-
return prefix + "_d(" + staticHandlers + ",[" + dynamicHandlers.slice(0, -1) + "])";
|
10725 |
-
} else {
|
10726 |
-
return prefix + staticHandlers;
|
10727 |
-
}
|
10728 |
-
}
|
10729 |
-
|
10730 |
-
function genHandler(handler) {
|
10731 |
-
if (!handler) {
|
10732 |
-
return 'function(){}';
|
10733 |
-
}
|
10734 |
-
|
10735 |
-
if (Array.isArray(handler)) {
|
10736 |
-
return "[" + handler.map(function (handler) {
|
10737 |
-
return genHandler(handler);
|
10738 |
-
}).join(',') + "]";
|
10739 |
-
}
|
10740 |
-
|
10741 |
-
var isMethodPath = simplePathRE.test(handler.value);
|
10742 |
-
var isFunctionExpression = fnExpRE.test(handler.value);
|
10743 |
-
var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));
|
10744 |
-
|
10745 |
-
if (!handler.modifiers) {
|
10746 |
-
if (isMethodPath || isFunctionExpression) {
|
10747 |
-
return handler.value;
|
10748 |
-
}
|
10749 |
-
|
10750 |
-
return "function($event){" + (isFunctionInvocation ? "return " + handler.value : handler.value) + "}"; // inline statement
|
10751 |
-
} else {
|
10752 |
-
var code = '';
|
10753 |
-
var genModifierCode = '';
|
10754 |
-
var keys = [];
|
10755 |
-
|
10756 |
-
for (var key in handler.modifiers) {
|
10757 |
-
if (modifierCode[key]) {
|
10758 |
-
genModifierCode += modifierCode[key]; // left/right
|
10759 |
-
|
10760 |
-
if (keyCodes[key]) {
|
10761 |
-
keys.push(key);
|
10762 |
-
}
|
10763 |
-
} else if (key === 'exact') {
|
10764 |
-
var modifiers = handler.modifiers;
|
10765 |
-
genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta'].filter(function (keyModifier) {
|
10766 |
-
return !modifiers[keyModifier];
|
10767 |
-
}).map(function (keyModifier) {
|
10768 |
-
return "$event." + keyModifier + "Key";
|
10769 |
-
}).join('||'));
|
10770 |
-
} else {
|
10771 |
-
keys.push(key);
|
10772 |
-
}
|
10773 |
-
}
|
10774 |
-
|
10775 |
-
if (keys.length) {
|
10776 |
-
code += genKeyFilter(keys);
|
10777 |
-
} // Make sure modifiers like prevent and stop get executed after key filtering
|
10778 |
-
|
10779 |
-
|
10780 |
-
if (genModifierCode) {
|
10781 |
-
code += genModifierCode;
|
10782 |
-
}
|
10783 |
-
|
10784 |
-
var handlerCode = isMethodPath ? "return " + handler.value + "($event)" : isFunctionExpression ? "return (" + handler.value + ")($event)" : isFunctionInvocation ? "return " + handler.value : handler.value;
|
10785 |
-
return "function($event){" + code + handlerCode + "}";
|
10786 |
-
}
|
10787 |
-
}
|
10788 |
-
|
10789 |
-
function genKeyFilter(keys) {
|
10790 |
-
return (// make sure the key filters only apply to KeyboardEvents
|
10791 |
-
// #9441: can't use 'keyCode' in $event because Chrome autofill fires fake
|
10792 |
-
// key events that do not have keyCode property...
|
10793 |
-
"if(!$event.type.indexOf('key')&&" + keys.map(genFilterCode).join('&&') + ")return null;"
|
10794 |
-
);
|
10795 |
-
}
|
10796 |
-
|
10797 |
-
function genFilterCode(key) {
|
10798 |
-
var keyVal = parseInt(key, 10);
|
10799 |
-
|
10800 |
-
if (keyVal) {
|
10801 |
-
return "$event.keyCode!==" + keyVal;
|
10802 |
-
}
|
10803 |
-
|
10804 |
-
var keyCode = keyCodes[key];
|
10805 |
-
var keyName = keyNames[key];
|
10806 |
-
return "_k($event.keyCode," + JSON.stringify(key) + "," + JSON.stringify(keyCode) + "," + "$event.key," + "" + JSON.stringify(keyName) + ")";
|
10807 |
-
}
|
10808 |
-
/* */
|
10809 |
-
|
10810 |
-
|
10811 |
-
function on(el, dir) {
|
10812 |
-
if (dir.modifiers) {
|
10813 |
-
warn("v-on without argument does not support modifiers.");
|
10814 |
-
}
|
10815 |
-
|
10816 |
-
el.wrapListeners = function (code) {
|
10817 |
-
return "_g(" + code + "," + dir.value + ")";
|
10818 |
-
};
|
10819 |
-
}
|
10820 |
-
/* */
|
10821 |
-
|
10822 |
-
|
10823 |
-
function bind$1(el, dir) {
|
10824 |
-
el.wrapData = function (code) {
|
10825 |
-
return "_b(" + code + ",'" + el.tag + "'," + dir.value + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")";
|
10826 |
-
};
|
10827 |
-
}
|
10828 |
-
/* */
|
10829 |
-
|
10830 |
-
|
10831 |
-
var baseDirectives = {
|
10832 |
-
on: on,
|
10833 |
-
bind: bind$1,
|
10834 |
-
cloak: noop
|
10835 |
-
};
|
10836 |
-
/* */
|
10837 |
-
|
10838 |
-
var CodegenState = function CodegenState(options) {
|
10839 |
-
this.options = options;
|
10840 |
-
this.warn = options.warn || baseWarn;
|
10841 |
-
this.transforms = pluckModuleFunction(options.modules, 'transformCode');
|
10842 |
-
this.dataGenFns = pluckModuleFunction(options.modules, 'genData');
|
10843 |
-
this.directives = extend(extend({}, baseDirectives), options.directives);
|
10844 |
-
var isReservedTag = options.isReservedTag || no;
|
10845 |
-
|
10846 |
-
this.maybeComponent = function (el) {
|
10847 |
-
return !!el.component || !isReservedTag(el.tag);
|
10848 |
-
};
|
10849 |
-
|
10850 |
-
this.onceId = 0;
|
10851 |
-
this.staticRenderFns = [];
|
10852 |
-
this.pre = false;
|
10853 |
-
};
|
10854 |
-
|
10855 |
-
function generate(ast, options) {
|
10856 |
-
var state = new CodegenState(options);
|
10857 |
-
var code = ast ? genElement(ast, state) : '_c("div")';
|
10858 |
-
return {
|
10859 |
-
render: "with(this){return " + code + "}",
|
10860 |
-
staticRenderFns: state.staticRenderFns
|
10861 |
-
};
|
10862 |
-
}
|
10863 |
-
|
10864 |
-
function genElement(el, state) {
|
10865 |
-
if (el.parent) {
|
10866 |
-
el.pre = el.pre || el.parent.pre;
|
10867 |
-
}
|
10868 |
-
|
10869 |
-
if (el.staticRoot && !el.staticProcessed) {
|
10870 |
-
return genStatic(el, state);
|
10871 |
-
} else if (el.once && !el.onceProcessed) {
|
10872 |
-
return genOnce(el, state);
|
10873 |
-
} else if (el["for"] && !el.forProcessed) {
|
10874 |
-
return genFor(el, state);
|
10875 |
-
} else if (el["if"] && !el.ifProcessed) {
|
10876 |
-
return genIf(el, state);
|
10877 |
-
} else if (el.tag === 'template' && !el.slotTarget && !state.pre) {
|
10878 |
-
return genChildren(el, state) || 'void 0';
|
10879 |
-
} else if (el.tag === 'slot') {
|
10880 |
-
return genSlot(el, state);
|
10881 |
-
} else {
|
10882 |
-
// component or element
|
10883 |
-
var code;
|
10884 |
-
|
10885 |
-
if (el.component) {
|
10886 |
-
code = genComponent(el.component, el, state);
|
10887 |
-
} else {
|
10888 |
-
var data;
|
10889 |
-
|
10890 |
-
if (!el.plain || el.pre && state.maybeComponent(el)) {
|
10891 |
-
data = genData$2(el, state);
|
10892 |
-
}
|
10893 |
-
|
10894 |
-
var children = el.inlineTemplate ? null : genChildren(el, state, true);
|
10895 |
-
code = "_c('" + el.tag + "'" + (data ? "," + data : '') + (children ? "," + children : '') + ")";
|
10896 |
-
} // module transforms
|
10897 |
-
|
10898 |
-
|
10899 |
-
for (var i = 0; i < state.transforms.length; i++) {
|
10900 |
-
code = state.transforms[i](el, code);
|
10901 |
-
}
|
10902 |
-
|
10903 |
-
return code;
|
10904 |
-
}
|
10905 |
-
} // hoist static sub-trees out
|
10906 |
-
|
10907 |
-
|
10908 |
-
function genStatic(el, state) {
|
10909 |
-
el.staticProcessed = true; // Some elements (templates) need to behave differently inside of a v-pre
|
10910 |
-
// node. All pre nodes are static roots, so we can use this as a location to
|
10911 |
-
// wrap a state change and reset it upon exiting the pre node.
|
10912 |
-
|
10913 |
-
var originalPreState = state.pre;
|
10914 |
-
|
10915 |
-
if (el.pre) {
|
10916 |
-
state.pre = el.pre;
|
10917 |
-
}
|
10918 |
-
|
10919 |
-
state.staticRenderFns.push("with(this){return " + genElement(el, state) + "}");
|
10920 |
-
state.pre = originalPreState;
|
10921 |
-
return "_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")";
|
10922 |
-
} // v-once
|
10923 |
-
|
10924 |
-
|
10925 |
-
function genOnce(el, state) {
|
10926 |
-
el.onceProcessed = true;
|
10927 |
-
|
10928 |
-
if (el["if"] && !el.ifProcessed) {
|
10929 |
-
return genIf(el, state);
|
10930 |
-
} else if (el.staticInFor) {
|
10931 |
-
var key = '';
|
10932 |
-
var parent = el.parent;
|
10933 |
-
|
10934 |
-
while (parent) {
|
10935 |
-
if (parent["for"]) {
|
10936 |
-
key = parent.key;
|
10937 |
-
break;
|
10938 |
-
}
|
10939 |
-
|
10940 |
-
parent = parent.parent;
|
10941 |
-
}
|
10942 |
-
|
10943 |
-
if (!key) {
|
10944 |
-
state.warn("v-once can only be used inside v-for that is keyed. ", el.rawAttrsMap['v-once']);
|
10945 |
-
return genElement(el, state);
|
10946 |
-
}
|
10947 |
-
|
10948 |
-
return "_o(" + genElement(el, state) + "," + state.onceId++ + "," + key + ")";
|
10949 |
-
} else {
|
10950 |
-
return genStatic(el, state);
|
10951 |
-
}
|
10952 |
-
}
|
10953 |
-
|
10954 |
-
function genIf(el, state, altGen, altEmpty) {
|
10955 |
-
el.ifProcessed = true; // avoid recursion
|
10956 |
-
|
10957 |
-
return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty);
|
10958 |
-
}
|
10959 |
-
|
10960 |
-
function genIfConditions(conditions, state, altGen, altEmpty) {
|
10961 |
-
if (!conditions.length) {
|
10962 |
-
return altEmpty || '_e()';
|
10963 |
-
}
|
10964 |
-
|
10965 |
-
var condition = conditions.shift();
|
10966 |
-
|
10967 |
-
if (condition.exp) {
|
10968 |
-
return "(" + condition.exp + ")?" + genTernaryExp(condition.block) + ":" + genIfConditions(conditions, state, altGen, altEmpty);
|
10969 |
-
} else {
|
10970 |
-
return "" + genTernaryExp(condition.block);
|
10971 |
-
} // v-if with v-once should generate code like (a)?_m(0):_m(1)
|
10972 |
-
|
10973 |
-
|
10974 |
-
function genTernaryExp(el) {
|
10975 |
-
return altGen ? altGen(el, state) : el.once ? genOnce(el, state) : genElement(el, state);
|
10976 |
-
}
|
10977 |
-
}
|
10978 |
-
|
10979 |
-
function genFor(el, state, altGen, altHelper) {
|
10980 |
-
var exp = el["for"];
|
10981 |
-
var alias = el.alias;
|
10982 |
-
var iterator1 = el.iterator1 ? "," + el.iterator1 : '';
|
10983 |
-
var iterator2 = el.iterator2 ? "," + el.iterator2 : '';
|
10984 |
-
|
10985 |
-
if (state.maybeComponent(el) && el.tag !== 'slot' && el.tag !== 'template' && !el.key) {
|
10986 |
-
state.warn("<" + el.tag + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " + "v-for should have explicit keys. " + "See https://vuejs.org/guide/list.html#key for more info.", el.rawAttrsMap['v-for'], true
|
10987 |
-
/* tip */
|
10988 |
-
);
|
10989 |
-
}
|
10990 |
-
|
10991 |
-
el.forProcessed = true; // avoid recursion
|
10992 |
-
|
10993 |
-
return (altHelper || '_l') + "((" + exp + ")," + "function(" + alias + iterator1 + iterator2 + "){" + "return " + (altGen || genElement)(el, state) + '})';
|
10994 |
-
}
|
10995 |
-
|
10996 |
-
function genData$2(el, state) {
|
10997 |
-
var data = '{'; // directives first.
|
10998 |
-
// directives may mutate the el's other properties before they are generated.
|
10999 |
-
|
11000 |
-
var dirs = genDirectives(el, state);
|
11001 |
-
|
11002 |
-
if (dirs) {
|
11003 |
-
data += dirs + ',';
|
11004 |
-
} // key
|
11005 |
-
|
11006 |
-
|
11007 |
-
if (el.key) {
|
11008 |
-
data += "key:" + el.key + ",";
|
11009 |
-
} // ref
|
11010 |
-
|
11011 |
-
|
11012 |
-
if (el.ref) {
|
11013 |
-
data += "ref:" + el.ref + ",";
|
11014 |
-
}
|
11015 |
-
|
11016 |
-
if (el.refInFor) {
|
11017 |
-
data += "refInFor:true,";
|
11018 |
-
} // pre
|
11019 |
-
|
11020 |
-
|
11021 |
-
if (el.pre) {
|
11022 |
-
data += "pre:true,";
|
11023 |
-
} // record original tag name for components using "is" attribute
|
11024 |
-
|
11025 |
-
|
11026 |
-
if (el.component) {
|
11027 |
-
data += "tag:\"" + el.tag + "\",";
|
11028 |
-
} // module data generation functions
|
11029 |
-
|
11030 |
-
|
11031 |
-
for (var i = 0; i < state.dataGenFns.length; i++) {
|
11032 |
-
data += state.dataGenFns[i](el);
|
11033 |
-
} // attributes
|
11034 |
-
|
11035 |
-
|
11036 |
-
if (el.attrs) {
|
11037 |
-
data += "attrs:" + genProps(el.attrs) + ",";
|
11038 |
-
} // DOM props
|
11039 |
-
|
11040 |
-
|
11041 |
-
if (el.props) {
|
11042 |
-
data += "domProps:" + genProps(el.props) + ",";
|
11043 |
-
} // event handlers
|
11044 |
-
|
11045 |
-
|
11046 |
-
if (el.events) {
|
11047 |
-
data += genHandlers(el.events, false) + ",";
|
11048 |
-
}
|
11049 |
-
|
11050 |
-
if (el.nativeEvents) {
|
11051 |
-
data += genHandlers(el.nativeEvents, true) + ",";
|
11052 |
-
} // slot target
|
11053 |
-
// only for non-scoped slots
|
11054 |
-
|
11055 |
-
|
11056 |
-
if (el.slotTarget && !el.slotScope) {
|
11057 |
-
data += "slot:" + el.slotTarget + ",";
|
11058 |
-
} // scoped slots
|
11059 |
-
|
11060 |
-
|
11061 |
-
if (el.scopedSlots) {
|
11062 |
-
data += genScopedSlots(el, el.scopedSlots, state) + ",";
|
11063 |
-
} // component v-model
|
11064 |
-
|
11065 |
-
|
11066 |
-
if (el.model) {
|
11067 |
-
data += "model:{value:" + el.model.value + ",callback:" + el.model.callback + ",expression:" + el.model.expression + "},";
|
11068 |
-
} // inline-template
|
11069 |
-
|
11070 |
-
|
11071 |
-
if (el.inlineTemplate) {
|
11072 |
-
var inlineTemplate = genInlineTemplate(el, state);
|
11073 |
-
|
11074 |
-
if (inlineTemplate) {
|
11075 |
-
data += inlineTemplate + ",";
|
11076 |
-
}
|
11077 |
-
}
|
11078 |
-
|
11079 |
-
data = data.replace(/,$/, '') + '}'; // v-bind dynamic argument wrap
|
11080 |
-
// v-bind with dynamic arguments must be applied using the same v-bind object
|
11081 |
-
// merge helper so that class/style/mustUseProp attrs are handled correctly.
|
11082 |
-
|
11083 |
-
if (el.dynamicAttrs) {
|
11084 |
-
data = "_b(" + data + ",\"" + el.tag + "\"," + genProps(el.dynamicAttrs) + ")";
|
11085 |
-
} // v-bind data wrap
|
11086 |
-
|
11087 |
-
|
11088 |
-
if (el.wrapData) {
|
11089 |
-
data = el.wrapData(data);
|
11090 |
-
} // v-on data wrap
|
11091 |
-
|
11092 |
-
|
11093 |
-
if (el.wrapListeners) {
|
11094 |
-
data = el.wrapListeners(data);
|
11095 |
-
}
|
11096 |
-
|
11097 |
-
return data;
|
11098 |
-
}
|
11099 |
-
|
11100 |
-
function genDirectives(el, state) {
|
11101 |
-
var dirs = el.directives;
|
11102 |
-
|
11103 |
-
if (!dirs) {
|
11104 |
-
return;
|
11105 |
-
}
|
11106 |
-
|
11107 |
-
var res = 'directives:[';
|
11108 |
-
var hasRuntime = false;
|
11109 |
-
var i, l, dir, needRuntime;
|
11110 |
-
|
11111 |
-
for (i = 0, l = dirs.length; i < l; i++) {
|
11112 |
-
dir = dirs[i];
|
11113 |
-
needRuntime = true;
|
11114 |
-
var gen = state.directives[dir.name];
|
11115 |
-
|
11116 |
-
if (gen) {
|
11117 |
-
// compile-time directive that manipulates AST.
|
11118 |
-
// returns true if it also needs a runtime counterpart.
|
11119 |
-
needRuntime = !!gen(el, dir, state.warn);
|
11120 |
-
}
|
11121 |
-
|
11122 |
-
if (needRuntime) {
|
11123 |
-
hasRuntime = true;
|
11124 |
-
res += "{name:\"" + dir.name + "\",rawName:\"" + dir.rawName + "\"" + (dir.value ? ",value:(" + dir.value + "),expression:" + JSON.stringify(dir.value) : '') + (dir.arg ? ",arg:" + (dir.isDynamicArg ? dir.arg : "\"" + dir.arg + "\"") : '') + (dir.modifiers ? ",modifiers:" + JSON.stringify(dir.modifiers) : '') + "},";
|
11125 |
-
}
|
11126 |
-
}
|
11127 |
-
|
11128 |
-
if (hasRuntime) {
|
11129 |
-
return res.slice(0, -1) + ']';
|
11130 |
-
}
|
11131 |
-
}
|
11132 |
-
|
11133 |
-
function genInlineTemplate(el, state) {
|
11134 |
-
var ast = el.children[0];
|
11135 |
-
|
11136 |
-
if (el.children.length !== 1 || ast.type !== 1) {
|
11137 |
-
state.warn('Inline-template components must have exactly one child element.', {
|
11138 |
-
start: el.start
|
11139 |
-
});
|
11140 |
-
}
|
11141 |
-
|
11142 |
-
if (ast && ast.type === 1) {
|
11143 |
-
var inlineRenderFns = generate(ast, state.options);
|
11144 |
-
return "inlineTemplate:{render:function(){" + inlineRenderFns.render + "},staticRenderFns:[" + inlineRenderFns.staticRenderFns.map(function (code) {
|
11145 |
-
return "function(){" + code + "}";
|
11146 |
-
}).join(',') + "]}";
|
11147 |
-
}
|
11148 |
-
}
|
11149 |
-
|
11150 |
-
function genScopedSlots(el, slots, state) {
|
11151 |
-
// by default scoped slots are considered "stable", this allows child
|
11152 |
-
// components with only scoped slots to skip forced updates from parent.
|
11153 |
-
// but in some cases we have to bail-out of this optimization
|
11154 |
-
// for example if the slot contains dynamic names, has v-if or v-for on them...
|
11155 |
-
var needsForceUpdate = el["for"] || Object.keys(slots).some(function (key) {
|
11156 |
-
var slot = slots[key];
|
11157 |
-
return slot.slotTargetDynamic || slot["if"] || slot["for"] || containsSlotChild(slot) // is passing down slot from parent which may be dynamic
|
11158 |
-
;
|
11159 |
-
}); // #9534: if a component with scoped slots is inside a conditional branch,
|
11160 |
-
// it's possible for the same component to be reused but with different
|
11161 |
-
// compiled slot content. To avoid that, we generate a unique key based on
|
11162 |
-
// the generated code of all the slot contents.
|
11163 |
-
|
11164 |
-
var needsKey = !!el["if"]; // OR when it is inside another scoped slot or v-for (the reactivity may be
|
11165 |
-
// disconnected due to the intermediate scope variable)
|
11166 |
-
// #9438, #9506
|
11167 |
-
// TODO: this can be further optimized by properly analyzing in-scope bindings
|
11168 |
-
// and skip force updating ones that do not actually use scope variables.
|
11169 |
-
|
11170 |
-
if (!needsForceUpdate) {
|
11171 |
-
var parent = el.parent;
|
11172 |
-
|
11173 |
-
while (parent) {
|
11174 |
-
if (parent.slotScope && parent.slotScope !== emptySlotScopeToken || parent["for"]) {
|
11175 |
-
needsForceUpdate = true;
|
11176 |
-
break;
|
11177 |
-
}
|
11178 |
-
|
11179 |
-
if (parent["if"]) {
|
11180 |
-
needsKey = true;
|
11181 |
-
}
|
11182 |
-
|
11183 |
-
parent = parent.parent;
|
11184 |
-
}
|
11185 |
-
}
|
11186 |
-
|
11187 |
-
var generatedSlots = Object.keys(slots).map(function (key) {
|
11188 |
-
return genScopedSlot(slots[key], state);
|
11189 |
-
}).join(',');
|
11190 |
-
return "scopedSlots:_u([" + generatedSlots + "]" + (needsForceUpdate ? ",null,true" : "") + (!needsForceUpdate && needsKey ? ",null,false," + hash(generatedSlots) : "") + ")";
|
11191 |
-
}
|
11192 |
-
|
11193 |
-
function hash(str) {
|
11194 |
-
var hash = 5381;
|
11195 |
-
var i = str.length;
|
11196 |
-
|
11197 |
-
while (i) {
|
11198 |
-
hash = hash * 33 ^ str.charCodeAt(--i);
|
11199 |
-
}
|
11200 |
-
|
11201 |
-
return hash >>> 0;
|
11202 |
-
}
|
11203 |
-
|
11204 |
-
function containsSlotChild(el) {
|
11205 |
-
if (el.type === 1) {
|
11206 |
-
if (el.tag === 'slot') {
|
11207 |
-
return true;
|
11208 |
-
}
|
11209 |
-
|
11210 |
-
return el.children.some(containsSlotChild);
|
11211 |
-
}
|
11212 |
-
|
11213 |
-
return false;
|
11214 |
-
}
|
11215 |
-
|
11216 |
-
function genScopedSlot(el, state) {
|
11217 |
-
var isLegacySyntax = el.attrsMap['slot-scope'];
|
11218 |
-
|
11219 |
-
if (el["if"] && !el.ifProcessed && !isLegacySyntax) {
|
11220 |
-
return genIf(el, state, genScopedSlot, "null");
|
11221 |
-
}
|
11222 |
-
|
11223 |
-
if (el["for"] && !el.forProcessed) {
|
11224 |
-
return genFor(el, state, genScopedSlot);
|
11225 |
-
}
|
11226 |
-
|
11227 |
-
var slotScope = el.slotScope === emptySlotScopeToken ? "" : String(el.slotScope);
|
11228 |
-
var fn = "function(" + slotScope + "){" + "return " + (el.tag === 'template' ? el["if"] && isLegacySyntax ? "(" + el["if"] + ")?" + (genChildren(el, state) || 'undefined') + ":undefined" : genChildren(el, state) || 'undefined' : genElement(el, state)) + "}"; // reverse proxy v-slot without scope on this.$slots
|
11229 |
-
|
11230 |
-
var reverseProxy = slotScope ? "" : ",proxy:true";
|
11231 |
-
return "{key:" + (el.slotTarget || "\"default\"") + ",fn:" + fn + reverseProxy + "}";
|
11232 |
-
}
|
11233 |
-
|
11234 |
-
function genChildren(el, state, checkSkip, altGenElement, altGenNode) {
|
11235 |
-
var children = el.children;
|
11236 |
-
|
11237 |
-
if (children.length) {
|
11238 |
-
var el$1 = children[0]; // optimize single v-for
|
11239 |
-
|
11240 |
-
if (children.length === 1 && el$1["for"] && el$1.tag !== 'template' && el$1.tag !== 'slot') {
|
11241 |
-
var normalizationType = checkSkip ? state.maybeComponent(el$1) ? ",1" : ",0" : "";
|
11242 |
-
return "" + (altGenElement || genElement)(el$1, state) + normalizationType;
|
11243 |
-
}
|
11244 |
-
|
11245 |
-
var normalizationType$1 = checkSkip ? getNormalizationType(children, state.maybeComponent) : 0;
|
11246 |
-
var gen = altGenNode || genNode;
|
11247 |
-
return "[" + children.map(function (c) {
|
11248 |
-
return gen(c, state);
|
11249 |
-
}).join(',') + "]" + (normalizationType$1 ? "," + normalizationType$1 : '');
|
11250 |
-
}
|
11251 |
-
} // determine the normalization needed for the children array.
|
11252 |
-
// 0: no normalization needed
|
11253 |
-
// 1: simple normalization needed (possible 1-level deep nested array)
|
11254 |
-
// 2: full normalization needed
|
11255 |
-
|
11256 |
-
|
11257 |
-
function getNormalizationType(children, maybeComponent) {
|
11258 |
-
var res = 0;
|
11259 |
-
|
11260 |
-
for (var i = 0; i < children.length; i++) {
|
11261 |
-
var el = children[i];
|
11262 |
-
|
11263 |
-
if (el.type !== 1) {
|
11264 |
-
continue;
|
11265 |
-
}
|
11266 |
-
|
11267 |
-
if (needsNormalization(el) || el.ifConditions && el.ifConditions.some(function (c) {
|
11268 |
-
return needsNormalization(c.block);
|
11269 |
-
})) {
|
11270 |
-
res = 2;
|
11271 |
-
break;
|
11272 |
-
}
|
11273 |
-
|
11274 |
-
if (maybeComponent(el) || el.ifConditions && el.ifConditions.some(function (c) {
|
11275 |
-
return maybeComponent(c.block);
|
11276 |
-
})) {
|
11277 |
-
res = 1;
|
11278 |
-
}
|
11279 |
-
}
|
11280 |
-
|
11281 |
-
return res;
|
11282 |
-
}
|
11283 |
-
|
11284 |
-
function needsNormalization(el) {
|
11285 |
-
return el["for"] !== undefined || el.tag === 'template' || el.tag === 'slot';
|
11286 |
-
}
|
11287 |
-
|
11288 |
-
function genNode(node, state) {
|
11289 |
-
if (node.type === 1) {
|
11290 |
-
return genElement(node, state);
|
11291 |
-
} else if (node.type === 3 && node.isComment) {
|
11292 |
-
return genComment(node);
|
11293 |
-
} else {
|
11294 |
-
return genText(node);
|
11295 |
-
}
|
11296 |
-
}
|
11297 |
-
|
11298 |
-
function genText(text) {
|
11299 |
-
return "_v(" + (text.type === 2 ? text.expression // no need for () because already wrapped in _s()
|
11300 |
-
: transformSpecialNewlines(JSON.stringify(text.text))) + ")";
|
11301 |
-
}
|
11302 |
-
|
11303 |
-
function genComment(comment) {
|
11304 |
-
return "_e(" + JSON.stringify(comment.text) + ")";
|
11305 |
-
}
|
11306 |
-
|
11307 |
-
function genSlot(el, state) {
|
11308 |
-
var slotName = el.slotName || '"default"';
|
11309 |
-
var children = genChildren(el, state);
|
11310 |
-
var res = "_t(" + slotName + (children ? "," + children : '');
|
11311 |
-
var attrs = el.attrs || el.dynamicAttrs ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) {
|
11312 |
-
return {
|
11313 |
-
// slot props are camelized
|
11314 |
-
name: camelize(attr.name),
|
11315 |
-
value: attr.value,
|
11316 |
-
dynamic: attr.dynamic
|
11317 |
-
};
|
11318 |
-
})) : null;
|
11319 |
-
var bind$$1 = el.attrsMap['v-bind'];
|
11320 |
-
|
11321 |
-
if ((attrs || bind$$1) && !children) {
|
11322 |
-
res += ",null";
|
11323 |
-
}
|
11324 |
-
|
11325 |
-
if (attrs) {
|
11326 |
-
res += "," + attrs;
|
11327 |
-
}
|
11328 |
-
|
11329 |
-
if (bind$$1) {
|
11330 |
-
res += (attrs ? '' : ',null') + "," + bind$$1;
|
11331 |
-
}
|
11332 |
-
|
11333 |
-
return res + ')';
|
11334 |
-
} // componentName is el.component, take it as argument to shun flow's pessimistic refinement
|
11335 |
-
|
11336 |
-
|
11337 |
-
function genComponent(componentName, el, state) {
|
11338 |
-
var children = el.inlineTemplate ? null : genChildren(el, state, true);
|
11339 |
-
return "_c(" + componentName + "," + genData$2(el, state) + (children ? "," + children : '') + ")";
|
11340 |
-
}
|
11341 |
-
|
11342 |
-
function genProps(props) {
|
11343 |
-
var staticProps = "";
|
11344 |
-
var dynamicProps = "";
|
11345 |
-
|
11346 |
-
for (var i = 0; i < props.length; i++) {
|
11347 |
-
var prop = props[i];
|
11348 |
-
var value = transformSpecialNewlines(prop.value);
|
11349 |
-
|
11350 |
-
if (prop.dynamic) {
|
11351 |
-
dynamicProps += prop.name + "," + value + ",";
|
11352 |
-
} else {
|
11353 |
-
staticProps += "\"" + prop.name + "\":" + value + ",";
|
11354 |
-
}
|
11355 |
-
}
|
11356 |
-
|
11357 |
-
staticProps = "{" + staticProps.slice(0, -1) + "}";
|
11358 |
-
|
11359 |
-
if (dynamicProps) {
|
11360 |
-
return "_d(" + staticProps + ",[" + dynamicProps.slice(0, -1) + "])";
|
11361 |
-
} else {
|
11362 |
-
return staticProps;
|
11363 |
-
}
|
11364 |
-
} // #3895, #4268
|
11365 |
-
|
11366 |
-
|
11367 |
-
function transformSpecialNewlines(text) {
|
11368 |
-
return text.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
11369 |
-
}
|
11370 |
-
/* */
|
11371 |
-
// these keywords should not appear inside expressions, but operators like
|
11372 |
-
// typeof, instanceof and in are allowed
|
11373 |
-
|
11374 |
-
|
11375 |
-
var prohibitedKeywordRE = new RegExp('\\b' + ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' + 'super,throw,while,yield,delete,export,import,return,switch,default,' + 'extends,finally,continue,debugger,function,arguments').split(',').join('\\b|\\b') + '\\b'); // these unary operators should not be used as property/method names
|
11376 |
-
|
11377 |
-
var unaryOperatorsRE = new RegExp('\\b' + 'delete,typeof,void'.split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)'); // strip strings in expressions
|
11378 |
-
|
11379 |
-
var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g; // detect problematic expressions in a template
|
11380 |
-
|
11381 |
-
function detectErrors(ast, warn) {
|
11382 |
-
if (ast) {
|
11383 |
-
checkNode(ast, warn);
|
11384 |
-
}
|
11385 |
-
}
|
11386 |
-
|
11387 |
-
function checkNode(node, warn) {
|
11388 |
-
if (node.type === 1) {
|
11389 |
-
for (var name in node.attrsMap) {
|
11390 |
-
if (dirRE.test(name)) {
|
11391 |
-
var value = node.attrsMap[name];
|
11392 |
-
|
11393 |
-
if (value) {
|
11394 |
-
var range = node.rawAttrsMap[name];
|
11395 |
-
|
11396 |
-
if (name === 'v-for') {
|
11397 |
-
checkFor(node, "v-for=\"" + value + "\"", warn, range);
|
11398 |
-
} else if (name === 'v-slot' || name[0] === '#') {
|
11399 |
-
checkFunctionParameterExpression(value, name + "=\"" + value + "\"", warn, range);
|
11400 |
-
} else if (onRE.test(name)) {
|
11401 |
-
checkEvent(value, name + "=\"" + value + "\"", warn, range);
|
11402 |
-
} else {
|
11403 |
-
checkExpression(value, name + "=\"" + value + "\"", warn, range);
|
11404 |
-
}
|
11405 |
-
}
|
11406 |
-
}
|
11407 |
-
}
|
11408 |
-
|
11409 |
-
if (node.children) {
|
11410 |
-
for (var i = 0; i < node.children.length; i++) {
|
11411 |
-
checkNode(node.children[i], warn);
|
11412 |
-
}
|
11413 |
-
}
|
11414 |
-
} else if (node.type === 2) {
|
11415 |
-
checkExpression(node.expression, node.text, warn, node);
|
11416 |
-
}
|
11417 |
-
}
|
11418 |
-
|
11419 |
-
function checkEvent(exp, text, warn, range) {
|
11420 |
-
var stripped = exp.replace(stripStringRE, '');
|
11421 |
-
var keywordMatch = stripped.match(unaryOperatorsRE);
|
11422 |
-
|
11423 |
-
if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {
|
11424 |
-
warn("avoid using JavaScript unary operator as property name: " + "\"" + keywordMatch[0] + "\" in expression " + text.trim(), range);
|
11425 |
-
}
|
11426 |
-
|
11427 |
-
checkExpression(exp, text, warn, range);
|
11428 |
-
}
|
11429 |
-
|
11430 |
-
function checkFor(node, text, warn, range) {
|
11431 |
-
checkExpression(node["for"] || '', text, warn, range);
|
11432 |
-
checkIdentifier(node.alias, 'v-for alias', text, warn, range);
|
11433 |
-
checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);
|
11434 |
-
checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);
|
11435 |
-
}
|
11436 |
-
|
11437 |
-
function checkIdentifier(ident, type, text, warn, range) {
|
11438 |
-
if (typeof ident === 'string') {
|
11439 |
-
try {
|
11440 |
-
new Function("var " + ident + "=_");
|
11441 |
-
} catch (e) {
|
11442 |
-
warn("invalid " + type + " \"" + ident + "\" in expression: " + text.trim(), range);
|
11443 |
-
}
|
11444 |
-
}
|
11445 |
-
}
|
11446 |
-
|
11447 |
-
function checkExpression(exp, text, warn, range) {
|
11448 |
-
try {
|
11449 |
-
new Function("return " + exp);
|
11450 |
-
} catch (e) {
|
11451 |
-
var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);
|
11452 |
-
|
11453 |
-
if (keywordMatch) {
|
11454 |
-
warn("avoid using JavaScript keyword as property name: " + "\"" + keywordMatch[0] + "\"\n Raw expression: " + text.trim(), range);
|
11455 |
-
} else {
|
11456 |
-
warn("invalid expression: " + e.message + " in\n\n" + " " + exp + "\n\n" + " Raw expression: " + text.trim() + "\n", range);
|
11457 |
-
}
|
11458 |
-
}
|
11459 |
-
}
|
11460 |
-
|
11461 |
-
function checkFunctionParameterExpression(exp, text, warn, range) {
|
11462 |
-
try {
|
11463 |
-
new Function(exp, '');
|
11464 |
-
} catch (e) {
|
11465 |
-
warn("invalid function parameter expression: " + e.message + " in\n\n" + " " + exp + "\n\n" + " Raw expression: " + text.trim() + "\n", range);
|
11466 |
-
}
|
11467 |
-
}
|
11468 |
-
/* */
|
11469 |
-
|
11470 |
-
|
11471 |
-
var range = 2;
|
11472 |
-
|
11473 |
-
function generateCodeFrame(source, start, end) {
|
11474 |
-
if (start === void 0) start = 0;
|
11475 |
-
if (end === void 0) end = source.length;
|
11476 |
-
var lines = source.split(/\r?\n/);
|
11477 |
-
var count = 0;
|
11478 |
-
var res = [];
|
11479 |
-
|
11480 |
-
for (var i = 0; i < lines.length; i++) {
|
11481 |
-
count += lines[i].length + 1;
|
11482 |
-
|
11483 |
-
if (count >= start) {
|
11484 |
-
for (var j = i - range; j <= i + range || end > count; j++) {
|
11485 |
-
if (j < 0 || j >= lines.length) {
|
11486 |
-
continue;
|
11487 |
-
}
|
11488 |
-
|
11489 |
-
res.push("" + (j + 1) + repeat$1(" ", 3 - String(j + 1).length) + "| " + lines[j]);
|
11490 |
-
var lineLength = lines[j].length;
|
11491 |
-
|
11492 |
-
if (j === i) {
|
11493 |
-
// push underline
|
11494 |
-
var pad = start - (count - lineLength) + 1;
|
11495 |
-
var length = end > count ? lineLength - pad : end - start;
|
11496 |
-
res.push(" | " + repeat$1(" ", pad) + repeat$1("^", length));
|
11497 |
-
} else if (j > i) {
|
11498 |
-
if (end > count) {
|
11499 |
-
var length$1 = Math.min(end - count, lineLength);
|
11500 |
-
res.push(" | " + repeat$1("^", length$1));
|
11501 |
-
}
|
11502 |
-
|
11503 |
-
count += lineLength + 1;
|
11504 |
-
}
|
11505 |
-
}
|
11506 |
-
|
11507 |
-
break;
|
11508 |
-
}
|
11509 |
-
}
|
11510 |
-
|
11511 |
-
return res.join('\n');
|
11512 |
-
}
|
11513 |
-
|
11514 |
-
function repeat$1(str, n) {
|
11515 |
-
var result = '';
|
11516 |
-
|
11517 |
-
if (n > 0) {
|
11518 |
-
while (true) {
|
11519 |
-
// eslint-disable-line
|
11520 |
-
if (n & 1) {
|
11521 |
-
result += str;
|
11522 |
-
}
|
11523 |
-
|
11524 |
-
n >>>= 1;
|
11525 |
-
|
11526 |
-
if (n <= 0) {
|
11527 |
-
break;
|
11528 |
-
}
|
11529 |
-
|
11530 |
-
str += str;
|
11531 |
-
}
|
11532 |
-
}
|
11533 |
-
|
11534 |
-
return result;
|
11535 |
-
}
|
11536 |
-
/* */
|
11537 |
-
|
11538 |
-
|
11539 |
-
function createFunction(code, errors) {
|
11540 |
-
try {
|
11541 |
-
return new Function(code);
|
11542 |
-
} catch (err) {
|
11543 |
-
errors.push({
|
11544 |
-
err: err,
|
11545 |
-
code: code
|
11546 |
-
});
|
11547 |
-
return noop;
|
11548 |
-
}
|
11549 |
-
}
|
11550 |
-
|
11551 |
-
function createCompileToFunctionFn(compile) {
|
11552 |
-
var cache = Object.create(null);
|
11553 |
-
return function compileToFunctions(template, options, vm) {
|
11554 |
-
options = extend({}, options);
|
11555 |
-
var warn$$1 = options.warn || warn;
|
11556 |
-
delete options.warn;
|
11557 |
-
/* istanbul ignore if */
|
11558 |
-
|
11559 |
-
{
|
11560 |
-
// detect possible CSP restriction
|
11561 |
-
try {
|
11562 |
-
new Function('return 1');
|
11563 |
-
} catch (e) {
|
11564 |
-
if (e.toString().match(/unsafe-eval|CSP/)) {
|
11565 |
-
warn$$1('It seems you are using the standalone build of Vue.js in an ' + 'environment with Content Security Policy that prohibits unsafe-eval. ' + 'The template compiler cannot work in this environment. Consider ' + 'relaxing the policy to allow unsafe-eval or pre-compiling your ' + 'templates into render functions.');
|
11566 |
-
}
|
11567 |
-
}
|
11568 |
-
} // check cache
|
11569 |
-
|
11570 |
-
var key = options.delimiters ? String(options.delimiters) + template : template;
|
11571 |
-
|
11572 |
-
if (cache[key]) {
|
11573 |
-
return cache[key];
|
11574 |
-
} // compile
|
11575 |
-
|
11576 |
-
|
11577 |
-
var compiled = compile(template, options); // check compilation errors/tips
|
11578 |
-
|
11579 |
-
{
|
11580 |
-
if (compiled.errors && compiled.errors.length) {
|
11581 |
-
if (options.outputSourceRange) {
|
11582 |
-
compiled.errors.forEach(function (e) {
|
11583 |
-
warn$$1("Error compiling template:\n\n" + e.msg + "\n\n" + generateCodeFrame(template, e.start, e.end), vm);
|
11584 |
-
});
|
11585 |
-
} else {
|
11586 |
-
warn$$1("Error compiling template:\n\n" + template + "\n\n" + compiled.errors.map(function (e) {
|
11587 |
-
return "- " + e;
|
11588 |
-
}).join('\n') + '\n', vm);
|
11589 |
-
}
|
11590 |
-
}
|
11591 |
-
|
11592 |
-
if (compiled.tips && compiled.tips.length) {
|
11593 |
-
if (options.outputSourceRange) {
|
11594 |
-
compiled.tips.forEach(function (e) {
|
11595 |
-
return tip(e.msg, vm);
|
11596 |
-
});
|
11597 |
-
} else {
|
11598 |
-
compiled.tips.forEach(function (msg) {
|
11599 |
-
return tip(msg, vm);
|
11600 |
-
});
|
11601 |
-
}
|
11602 |
-
}
|
11603 |
-
} // turn code into functions
|
11604 |
-
|
11605 |
-
var res = {};
|
11606 |
-
var fnGenErrors = [];
|
11607 |
-
res.render = createFunction(compiled.render, fnGenErrors);
|
11608 |
-
res.staticRenderFns = compiled.staticRenderFns.map(function (code) {
|
11609 |
-
return createFunction(code, fnGenErrors);
|
11610 |
-
}); // check function generation errors.
|
11611 |
-
// this should only happen if there is a bug in the compiler itself.
|
11612 |
-
// mostly for codegen development use
|
11613 |
-
|
11614 |
-
/* istanbul ignore if */
|
11615 |
-
|
11616 |
-
{
|
11617 |
-
if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {
|
11618 |
-
warn$$1("Failed to generate render function:\n\n" + fnGenErrors.map(function (ref) {
|
11619 |
-
var err = ref.err;
|
11620 |
-
var code = ref.code;
|
11621 |
-
return err.toString() + " in\n\n" + code + "\n";
|
11622 |
-
}).join('\n'), vm);
|
11623 |
-
}
|
11624 |
-
}
|
11625 |
-
return cache[key] = res;
|
11626 |
-
};
|
11627 |
-
}
|
11628 |
-
/* */
|
11629 |
-
|
11630 |
-
|
11631 |
-
function createCompilerCreator(baseCompile) {
|
11632 |
-
return function createCompiler(baseOptions) {
|
11633 |
-
function compile(template, options) {
|
11634 |
-
var finalOptions = Object.create(baseOptions);
|
11635 |
-
var errors = [];
|
11636 |
-
var tips = [];
|
11637 |
-
|
11638 |
-
var warn = function warn(msg, range, tip) {
|
11639 |
-
(tip ? tips : errors).push(msg);
|
11640 |
-
};
|
11641 |
-
|
11642 |
-
if (options) {
|
11643 |
-
if (options.outputSourceRange) {
|
11644 |
-
// $flow-disable-line
|
11645 |
-
var leadingSpaceLength = template.match(/^\s*/)[0].length;
|
11646 |
-
|
11647 |
-
warn = function warn(msg, range, tip) {
|
11648 |
-
var data = {
|
11649 |
-
msg: msg
|
11650 |
-
};
|
11651 |
-
|
11652 |
-
if (range) {
|
11653 |
-
if (range.start != null) {
|
11654 |
-
data.start = range.start + leadingSpaceLength;
|
11655 |
-
}
|
11656 |
-
|
11657 |
-
if (range.end != null) {
|
11658 |
-
data.end = range.end + leadingSpaceLength;
|
11659 |
-
}
|
11660 |
-
}
|
11661 |
-
|
11662 |
-
(tip ? tips : errors).push(data);
|
11663 |
-
};
|
11664 |
-
} // merge custom modules
|
11665 |
-
|
11666 |
-
|
11667 |
-
if (options.modules) {
|
11668 |
-
finalOptions.modules = (baseOptions.modules || []).concat(options.modules);
|
11669 |
-
} // merge custom directives
|
11670 |
-
|
11671 |
-
|
11672 |
-
if (options.directives) {
|
11673 |
-
finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);
|
11674 |
-
} // copy other options
|
11675 |
-
|
11676 |
-
|
11677 |
-
for (var key in options) {
|
11678 |
-
if (key !== 'modules' && key !== 'directives') {
|
11679 |
-
finalOptions[key] = options[key];
|
11680 |
-
}
|
11681 |
-
}
|
11682 |
-
}
|
11683 |
-
|
11684 |
-
finalOptions.warn = warn;
|
11685 |
-
var compiled = baseCompile(template.trim(), finalOptions);
|
11686 |
-
{
|
11687 |
-
detectErrors(compiled.ast, warn);
|
11688 |
-
}
|
11689 |
-
compiled.errors = errors;
|
11690 |
-
compiled.tips = tips;
|
11691 |
-
return compiled;
|
11692 |
-
}
|
11693 |
-
|
11694 |
-
return {
|
11695 |
-
compile: compile,
|
11696 |
-
compileToFunctions: createCompileToFunctionFn(compile)
|
11697 |
-
};
|
11698 |
-
};
|
11699 |
-
}
|
11700 |
-
/* */
|
11701 |
-
// `createCompilerCreator` allows creating compilers that use alternative
|
11702 |
-
// parser/optimizer/codegen, e.g the SSR optimizing compiler.
|
11703 |
-
// Here we just export a default compiler using the default parts.
|
11704 |
-
|
11705 |
-
|
11706 |
-
var createCompiler = createCompilerCreator(function baseCompile(template, options) {
|
11707 |
-
var ast = parse(template.trim(), options);
|
11708 |
-
|
11709 |
-
if (options.optimize !== false) {
|
11710 |
-
optimize(ast, options);
|
11711 |
-
}
|
11712 |
-
|
11713 |
-
var code = generate(ast, options);
|
11714 |
-
return {
|
11715 |
-
ast: ast,
|
11716 |
-
render: code.render,
|
11717 |
-
staticRenderFns: code.staticRenderFns
|
11718 |
-
};
|
11719 |
-
});
|
11720 |
-
/* */
|
11721 |
-
|
11722 |
-
var ref$1 = createCompiler(baseOptions);
|
11723 |
-
var compile = ref$1.compile;
|
11724 |
-
var compileToFunctions = ref$1.compileToFunctions;
|
11725 |
-
/* */
|
11726 |
-
// check whether current browser encodes a char inside attribute values
|
11727 |
-
|
11728 |
-
var div;
|
11729 |
-
|
11730 |
-
function getShouldDecode(href) {
|
11731 |
-
div = div || document.createElement('div');
|
11732 |
-
div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";
|
11733 |
-
return div.innerHTML.indexOf(' ') > 0;
|
11734 |
-
} // #3663: IE encodes newlines inside attribute values while other browsers don't
|
11735 |
-
|
11736 |
-
|
11737 |
-
var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false; // #6828: chrome encodes content in a[href]
|
11738 |
-
|
11739 |
-
var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;
|
11740 |
-
/* */
|
11741 |
-
|
11742 |
-
var idToTemplate = cached(function (id) {
|
11743 |
-
var el = query(id);
|
11744 |
-
return el && el.innerHTML;
|
11745 |
-
});
|
11746 |
-
var mount = Vue.prototype.$mount;
|
11747 |
-
|
11748 |
-
Vue.prototype.$mount = function (el, hydrating) {
|
11749 |
-
el = el && query(el);
|
11750 |
-
/* istanbul ignore if */
|
11751 |
-
|
11752 |
-
if (el === document.body || el === document.documentElement) {
|
11753 |
-
warn("Do not mount Vue to <html> or <body> - mount to normal elements instead.");
|
11754 |
-
return this;
|
11755 |
-
}
|
11756 |
-
|
11757 |
-
var options = this.$options; // resolve template/el and convert to render function
|
11758 |
-
|
11759 |
-
if (!options.render) {
|
11760 |
-
var template = options.template;
|
11761 |
-
|
11762 |
-
if (template) {
|
11763 |
-
if (typeof template === 'string') {
|
11764 |
-
if (template.charAt(0) === '#') {
|
11765 |
-
template = idToTemplate(template);
|
11766 |
-
/* istanbul ignore if */
|
11767 |
-
|
11768 |
-
if (!template) {
|
11769 |
-
warn("Template element not found or is empty: " + options.template, this);
|
11770 |
-
}
|
11771 |
-
}
|
11772 |
-
} else if (template.nodeType) {
|
11773 |
-
template = template.innerHTML;
|
11774 |
-
} else {
|
11775 |
-
{
|
11776 |
-
warn('invalid template option:' + template, this);
|
11777 |
-
}
|
11778 |
-
return this;
|
11779 |
-
}
|
11780 |
-
} else if (el) {
|
11781 |
-
template = getOuterHTML(el);
|
11782 |
-
}
|
11783 |
-
|
11784 |
-
if (template) {
|
11785 |
-
/* istanbul ignore if */
|
11786 |
-
if (config.performance && mark) {
|
11787 |
-
mark('compile');
|
11788 |
-
}
|
11789 |
-
|
11790 |
-
var ref = compileToFunctions(template, {
|
11791 |
-
outputSourceRange: "development" !== 'production',
|
11792 |
-
shouldDecodeNewlines: shouldDecodeNewlines,
|
11793 |
-
shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,
|
11794 |
-
delimiters: options.delimiters,
|
11795 |
-
comments: options.comments
|
11796 |
-
}, this);
|
11797 |
-
var render = ref.render;
|
11798 |
-
var staticRenderFns = ref.staticRenderFns;
|
11799 |
-
options.render = render;
|
11800 |
-
options.staticRenderFns = staticRenderFns;
|
11801 |
-
/* istanbul ignore if */
|
11802 |
-
|
11803 |
-
if (config.performance && mark) {
|
11804 |
-
mark('compile end');
|
11805 |
-
measure("vue " + this._name + " compile", 'compile', 'compile end');
|
11806 |
-
}
|
11807 |
-
}
|
11808 |
-
}
|
11809 |
-
|
11810 |
-
return mount.call(this, el, hydrating);
|
11811 |
-
};
|
11812 |
-
/**
|
11813 |
-
* Get outerHTML of elements, taking care
|
11814 |
-
* of SVG elements in IE as well.
|
11815 |
-
*/
|
11816 |
-
|
11817 |
-
|
11818 |
-
function getOuterHTML(el) {
|
11819 |
-
if (el.outerHTML) {
|
11820 |
-
return el.outerHTML;
|
11821 |
-
} else {
|
11822 |
-
var container = document.createElement('div');
|
11823 |
-
container.appendChild(el.cloneNode(true));
|
11824 |
-
return container.innerHTML;
|
11825 |
-
}
|
11826 |
-
}
|
11827 |
-
|
11828 |
-
Vue.compile = compileToFunctions;
|
11829 |
-
return Vue;
|
11830 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
admin/classes/class-wp-ulike-admin-assets.php
CHANGED
@@ -20,15 +20,20 @@ if ( ! class_exists( 'wp_ulike_admin_assets' ) ) {
|
|
20 |
|
21 |
private $hook;
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
27 |
$this->hook = $hook;
|
28 |
// general assets
|
29 |
$this->load_styles();
|
30 |
$this->load_scripts();
|
31 |
-
|
32 |
|
33 |
|
34 |
/**
|
20 |
|
21 |
private $hook;
|
22 |
|
23 |
+
/**
|
24 |
+
* __construct
|
25 |
+
*/
|
26 |
+
function __construct() {
|
27 |
+
// general assets
|
28 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function enqueue( $hook ){
|
32 |
$this->hook = $hook;
|
33 |
// general assets
|
34 |
$this->load_styles();
|
35 |
$this->load_scripts();
|
36 |
+
}
|
37 |
|
38 |
|
39 |
/**
|
admin/index.php
CHANGED
@@ -15,6 +15,9 @@ if ( ! defined( 'WPINC' ) ) {
|
|
15 |
// Register admin panel
|
16 |
new wp_ulike_admin_panel();
|
17 |
|
|
|
|
|
|
|
18 |
// include about menu functions
|
19 |
require_once( WP_ULIKE_ADMIN_DIR . '/admin-functions.php');
|
20 |
// include logs menu functions
|
15 |
// Register admin panel
|
16 |
new wp_ulike_admin_panel();
|
17 |
|
18 |
+
// Include assets
|
19 |
+
new wp_ulike_admin_assets();
|
20 |
+
|
21 |
// include about menu functions
|
22 |
require_once( WP_ULIKE_ADMIN_DIR . '/admin-functions.php');
|
23 |
// include logs menu functions
|
admin/settings/assets/css/style.css
CHANGED
@@ -1492,8 +1492,8 @@
|
|
1492 |
.ulf-field-media .ulf--preview .fa-times {
|
1493 |
position: absolute;
|
1494 |
z-index: 1;
|
1495 |
-
right:
|
1496 |
-
top:
|
1497 |
font-size: 14px;
|
1498 |
width: 22px;
|
1499 |
height: 22px;
|
@@ -1502,7 +1502,8 @@
|
|
1502 |
text-decoration: none;
|
1503 |
color: #fff;
|
1504 |
background-color: #dd3333;
|
1505 |
-
opacity: 0.
|
|
|
1506 |
transition: all .2s;
|
1507 |
}
|
1508 |
.ulf-field-media .ulf--preview .fa-times:hover {
|
@@ -2059,8 +2060,9 @@
|
|
2059 |
*/
|
2060 |
.ulf-field-typography textarea,
|
2061 |
.ulf-field-typography select {
|
2062 |
-
min-width: 100%;
|
2063 |
margin: 0;
|
|
|
|
|
2064 |
}
|
2065 |
.ulf-field-typography .ulf--title {
|
2066 |
color: #777;
|
@@ -2076,6 +2078,7 @@
|
|
2076 |
}
|
2077 |
.ulf-field-typography .ulf--block {
|
2078 |
flex: 1;
|
|
|
2079 |
padding-right: 6px;
|
2080 |
padding-bottom: 6px;
|
2081 |
}
|
@@ -2389,17 +2392,22 @@
|
|
2389 |
display: inline-block;
|
2390 |
position: relative;
|
2391 |
padding: 4px;
|
2392 |
-
min-width:
|
2393 |
-
min-height:
|
|
|
2394 |
margin-bottom: 10px;
|
|
|
|
|
2395 |
border: 1px solid #ccc;
|
2396 |
background-color: #f9f9f9;
|
2397 |
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
|
2398 |
}
|
2399 |
.ulf-image-preview img {
|
2400 |
-
max-
|
|
|
2401 |
display: inline-block;
|
2402 |
vertical-align: middle;
|
|
|
2403 |
}
|
2404 |
|
2405 |
.ulf-field-custom .ulf-field {
|
@@ -3725,7 +3733,7 @@
|
|
3725 |
display: none !important;
|
3726 |
}
|
3727 |
|
3728 |
-
.ulf-content {
|
3729 |
margin-left: 0;
|
3730 |
}
|
3731 |
|
1492 |
.ulf-field-media .ulf--preview .fa-times {
|
1493 |
position: absolute;
|
1494 |
z-index: 1;
|
1495 |
+
right: 2px;
|
1496 |
+
top: 2px;
|
1497 |
font-size: 14px;
|
1498 |
width: 22px;
|
1499 |
height: 22px;
|
1502 |
text-decoration: none;
|
1503 |
color: #fff;
|
1504 |
background-color: #dd3333;
|
1505 |
+
opacity: 0.75;
|
1506 |
+
border-radius: 2px;
|
1507 |
transition: all .2s;
|
1508 |
}
|
1509 |
.ulf-field-media .ulf--preview .fa-times:hover {
|
2060 |
*/
|
2061 |
.ulf-field-typography textarea,
|
2062 |
.ulf-field-typography select {
|
|
|
2063 |
margin: 0;
|
2064 |
+
min-width: 100%;
|
2065 |
+
max-width: 100%;
|
2066 |
}
|
2067 |
.ulf-field-typography .ulf--title {
|
2068 |
color: #777;
|
2078 |
}
|
2079 |
.ulf-field-typography .ulf--block {
|
2080 |
flex: 1;
|
2081 |
+
max-width: 100%;
|
2082 |
padding-right: 6px;
|
2083 |
padding-bottom: 6px;
|
2084 |
}
|
2392 |
display: inline-block;
|
2393 |
position: relative;
|
2394 |
padding: 4px;
|
2395 |
+
min-width: 100px;
|
2396 |
+
min-height: 100px;
|
2397 |
+
line-height: 100px;
|
2398 |
margin-bottom: 10px;
|
2399 |
+
text-align: center;
|
2400 |
+
border-radius: 2px;
|
2401 |
border: 1px solid #ccc;
|
2402 |
background-color: #f9f9f9;
|
2403 |
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
|
2404 |
}
|
2405 |
.ulf-image-preview img {
|
2406 |
+
max-width: 100px;
|
2407 |
+
max-height: 100px;
|
2408 |
display: inline-block;
|
2409 |
vertical-align: middle;
|
2410 |
+
object-fit: contain;
|
2411 |
}
|
2412 |
|
2413 |
.ulf-field-custom .ulf-field {
|
3733 |
display: none !important;
|
3734 |
}
|
3735 |
|
3736 |
+
.ulf-nav-normal + .ulf-content {
|
3737 |
margin-left: 0;
|
3738 |
}
|
3739 |
|
admin/settings/assets/css/style.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.ulf{position:relative}.ulf label{padding:0;margin:0;display:inline-block}.ulf-ab-icon{top:2px}#screen-meta-links+.ulf-options{margin-top:40px}.ulf-options{margin-top:20px;margin-right:20px}.ulf-header{position:relative}.ulf-header-inner{padding:25px;transition:box-shadow .3s ease}.ulf-header-inner h1{float:left;font-size:1.5em;line-height:26px;font-weight:400;margin:0}.ulf-header-inner h1 small{font-size:11px;font-weight:500}.ulf-sticky .ulf-header-inner{position:fixed;z-index:99;top:32px;box-shadow:0 5px 10px rgba(0,0,0,.1)}.ulf-buttons{float:right}.ulf-buttons .button{margin:0 2px;line-height:26px}.ulf-buttons .button:focus{outline:0!important;box-shadow:none!important}.ulf-buttons .ulf-save{min-width:72px}.ulf-header-left{float:left}.ulf-header-right{float:right}.ulf-nav{display:block;position:relative;z-index:10;float:left}.ulf-nav ul{clear:left;margin:0;list-style-type:none}.ulf-nav ul li{margin-bottom:0}.ulf-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;transition-property:color,background;transition-duration:.2s;transition-timing-function:ease}.ulf-nav ul li a:focus{outline:0;box-shadow:none}.ulf-nav ul li .ulf-arrow:after{content:"\f054";display:inline-block;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px}.ulf-nav ul li.ulf-tab-expanded .ulf-arrow:after{transform:rotate(90deg)}.ulf-nav ul li.ulf-tab-expanded ul{display:block}.ulf-nav ul ul{display:none;position:relative}.ulf-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.ulf-nav .ulf-tab-icon{width:20px;margin-right:5px;font-size:13px;text-align:center}.ulf-nav .ulf-label-error{margin-left:4px;vertical-align:top}.ulf-nav-normal{width:225px}.ulf-nav-normal+.ulf-content{margin-left:225px}.ulf-nav-inline{width:100%}.ulf-nav-inline ul li{display:inline-block;vertical-align:top}.ulf-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.ulf-wrapper{position:relative}.ulf-content{position:relative;background-color:#fff}.ulf-sections{float:left;width:100%}.ulf-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.ulf-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.ulf-section-title .ulf-section-icon{margin-right:5px}.ulf-footer{padding:20px;font-size:11px}.ulf-copyright{float:left;margin-top:5px}.ulf-search-all .ulf-nav,.ulf-search-all .ulf-nav-background,.ulf-show-all .ulf-nav,.ulf-show-all .ulf-nav-background{display:none}.ulf-search-all .ulf-content,.ulf-show-all .ulf-content{margin-left:0}.ulf-search-all .ulf-section,.ulf-search-all .ulf-section-title,.ulf-show-all .ulf-section,.ulf-show-all .ulf-section-title{display:block!important}.ulf-search-all .ulf-section-title{display:none!important}.ulf-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:13px;line-height:30px;cursor:pointer;user-select:none;border-radius:2px;transition:all .2s}.ulf-expand-all span{font-size:11px;vertical-align:middle}.ulf-search{float:left}.ulf-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:30px;min-height:30px;text-align:inherit;padding:0 10px;border-radius:2px;box-shadow:none}.ulf-search input:focus{box-shadow:none}.ulf-saving .ulf-buttons,.ulf-saving .ulf-content{cursor:default;pointer-events:none;opacity:.5}.ulf-metabox{margin:-6px -12px -12px -12px}.ulf-metabox .ulf-field{padding:20px}.ulf-metabox .ulf-section-title{padding:20px}.block-editor-page .ulf-metabox{margin:-6px -14px -14px -14px}.block-editor-editor-skeleton__content .ulf-metabox{border-left:1px solid #e2e4e7;border-right:1px solid #e2e4e7}.ulf-sections-reset{float:left;width:100%;text-align:right;border-top:1px solid #eee}.ulf-sections-reset .ulf-button-cancel,.ulf-sections-reset input{display:none}.ulf-sections-reset label{padding:10px}.ulf-sections-reset span{-webkit-user-select:none;user-select:none}.ulf-sections-reset input:checked~.ulf-button-reset{display:none}.ulf-sections-reset input:checked~.ulf-button-cancel{display:inline-block}#side-sortables .ulf-section-title{padding:12px}#side-sortables .ulf-field{padding:10px 15px}#side-sortables .ulf-field .ulf-title{float:none;width:100%;margin-bottom:6px}#side-sortables .ulf-field .ulf-fieldset{float:none;width:100%}#side-sortables .ulf-field-text input{width:100%}#side-sortables .ulf-notice{padding:10px 15px}.ulf-comment-metabox{margin:-6px -12px -12px -12px}.ulf-comment-metabox .ulf-field{padding:20px}.ulf-comment-metabox .ulf-section-title{padding:20px}.ulf-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);border-radius:4px}.ulf-theme-dark .ulf-header-inner{background-color:#050505}.ulf-theme-dark .ulf-header-inner h1{color:#fff}.ulf-theme-dark .ulf-header-inner h1 small{color:#555}.ulf-theme-dark .ulf-expand-all{color:#999;background-color:#222}.ulf-theme-dark .ulf-expand-all:hover{color:#fff;background-color:#333}.ulf-theme-dark .ulf-search input{color:#fff;background-color:#222}.ulf-theme-dark .ulf-search:focus{background-color:#444}.ulf-theme-dark .ulf-search::-webkit-input-placeholder{color:#666}.ulf-theme-dark .ulf-nav ul li a{color:#999;border-color:#2f2f2f;background-color:#222}.ulf-theme-dark .ulf-nav ul li a:hover{color:#fff}.ulf-theme-dark .ulf-nav ul li .ulf-active{color:#fff;background-color:#111}.ulf-theme-dark .ulf-nav ul ul li a{border-color:#2f2f2f;background-color:#191919}.ulf-theme-dark .ulf-nav ul ul li .ulf-active{background-color:#101010}.ulf-theme-dark .ulf-nav ul ul:before{background-color:rgba(34,34,34,.75)}.ulf-theme-dark .ulf-nav>ul>li:last-child>a{border:none}.ulf-theme-dark .ulf-nav-normal ul li a{border-bottom-width:1px;border-bottom-style:solid}.ulf-theme-dark .ulf-nav-normal ul li .ulf-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.ulf-theme-dark .ulf-nav-inline{background-color:#222}.ulf-theme-dark .ulf-nav-inline ul li a{text-align:center;border-right-width:1px;border-right-style:solid}.ulf-theme-dark .ulf-nav-inline ul li .ulf-active:after{content:" ";position:absolute;left:50%;bottom:0;height:0;width:0;pointer-events:none;border:solid transparent;border-bottom-color:#fff;border-width:4px;margin-left:-4px}.ulf-theme-dark .ulf-nav-background{background-color:#222}.ulf-theme-dark .ulf-footer{color:#555;background-color:#050505}.ulf-theme-light .ulf-container{border:1px solid #ccd0d4;box-shadow:0 0 15 rgba(0,0,0,.04)}.ulf-theme-light .ulf-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.ulf-theme-light .ulf-header-inner h1 small{color:#999}.ulf-theme-light .ulf-expand-all{color:#999;background-color:#eee}.ulf-theme-light .ulf-expand-all:hover{color:#555}.ulf-theme-light .ulf-search input{color:#555;background-color:#eee}.ulf-theme-light .ulf-search input::-webkit-input-placeholder{color:#999}.ulf-theme-light .ulf-nav ul li a{font-weight:500;color:#444;background-color:#f5f5f5}.ulf-theme-light .ulf-nav ul li a:hover{color:#111;background-color:#fff}.ulf-theme-light .ulf-nav ul li .ulf-active{color:#111;background-color:#fff}.ulf-theme-light .ulf-nav ul ul li a{background-color:#eee}.ulf-theme-light .ulf-nav-normal>ul{margin-right:-1px;margin-bottom:-1px}.ulf-theme-light .ulf-nav-normal>ul li a{border-bottom:1px solid #ccd0d4;border-right:1px solid #ccd0d4}.ulf-theme-light .ulf-nav-normal>ul li .ulf-active{border-right-color:#fff}.ulf-theme-light .ulf-nav-inline{background-color:#f5f5f5;border-bottom:1px solid #ccd0d4}.ulf-theme-light .ulf-nav-inline>ul{margin-bottom:-1px}.ulf-theme-light .ulf-nav-inline>ul li a{text-align:center;border-right:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}.ulf-theme-light .ulf-nav-inline>ul li .ulf-active{border-bottom-color:#fff}.ulf-theme-light .ulf-nav-inline>ul ul{display:none!important}.ulf-theme-light .ulf-nav-inline .ulf-arrow:after{display:none}.ulf-theme-light .ulf-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.ulf-theme-light .ulf-footer{color:#555;border-top:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.ulf-field{position:relative;padding:30px}.ulf-field+.ulf-field{border-top:1px solid #eee}.ulf-field p:first-child{margin-top:0}.ulf-field p:last-child{margin-bottom:0}.ulf-field:after,.ulf-field:before{content:" ";display:table}.ulf-field:after{clear:both}.ulf-field h4{margin-top:0}.ulf-field .ulf-title{position:relative;width:20%;float:left}.ulf-field .ulf-title h4{margin:0;color:#23282d}.ulf-field .ulf-fieldset{float:right;width:calc(80% - 20px)}.ulf-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.ulf-pseudo-field+.ulf-pseudo-field{border:0}.ulf-pseudo-field pre{display:none}.ulf-field-accordion .ulf-accordion-item{position:relative;margin-bottom:5px}.ulf-field-accordion .ulf-accordion-item:last-child{margin-bottom:0}.ulf-field-accordion .ulf-accordion-item h4{font-size:1em}.ulf-field-accordion .ulf-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.ulf-field-accordion .ulf-accordion-title:active,.ulf-field-accordion .ulf-accordion-title:focus,.ulf-field-accordion .ulf-accordion-title:hover{outline:0;border-color:#999}.ulf-field-accordion .ulf-accordion-title .ulf--icon{width:20px;text-align:center;margin-right:2px}.ulf-field-accordion .ulf-accordion-icon{width:16px;text-align:center}.ulf-field-accordion .ulf-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-accordion .ulf-accordion-content>.ulf-field{padding:15px}.ulf-field-accordion .ulf-accordion-open{display:block}.ulf-field-background .ulf-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.ulf-field-background .ulf--title{color:#777;font-size:12px}.ulf-field-background .ulf--background-colors{display:flex;flex-wrap:wrap}.ulf-field-background .ulf--background-attributes{display:flex;flex-wrap:wrap}.ulf-field-background .ulf--background-attributes select{min-width:100%;margin:0}.ulf-field-background .ulf--background-attributes .ulf-field{flex:1}.ulf-field-background .ulf--attributes-hidden{display:none}.ulf-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.ulf-field-backup small{display:inline-block;margin:5px}.ulf-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.ulf-field-border .ulf--inputs,.ulf-field-dimensions .ulf--inputs,.ulf-field-spacing .ulf--inputs{float:left;display:flex;flex-wrap:wrap}.ulf-field-border .ulf--input,.ulf-field-dimensions .ulf--input,.ulf-field-spacing .ulf--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.ulf-field-border .ulf--input select,.ulf-field-dimensions .ulf--input select,.ulf-field-spacing .ulf--input select{margin:0}.ulf-field-border .ulf--input input,.ulf-field-dimensions .ulf--input input,.ulf-field-spacing .ulf--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.ulf-field-border .ulf--color,.ulf-field-dimensions .ulf--color,.ulf-field-spacing .ulf--color{float:left}.ulf-field-border .ulf--label,.ulf-field-dimensions .ulf--label,.ulf-field-spacing .ulf--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.ulf-field-border .ulf--icon,.ulf-field-dimensions .ulf--icon,.ulf-field-spacing .ulf--icon{border-right:0;border-radius:4px 0 0 4px}.ulf-field-border .ulf--icon+input,.ulf-field-dimensions .ulf--icon+input,.ulf-field-spacing .ulf--icon+input{border-top-left-radius:0;border-bottom-left-radius:0}.ulf-field-border .ulf--unit,.ulf-field-dimensions .ulf--unit,.ulf-field-spacing .ulf--unit{border-left:0;border-radius:0 4px 4px 0}.ulf-field-border .ulf--is-unit,.ulf-field-dimensions .ulf--is-unit,.ulf-field-spacing .ulf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.ulf-field-button_set .ulf--buttons{display:inline-block}.ulf-field-button_set .ulf--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:16px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.ulf-field-button_set .ulf--button:first-child{border-radius:4px 0 0 4px}.ulf-field-button_set .ulf--button:last-child{border-radius:0 4px 4px 0}.ulf-field-button_set .ulf--button:not(:first-child){margin-left:-1px}.ulf-field-button_set .ulf--button:hover{background-color:#eee}.ulf-field-button_set .ulf--active,.ulf-field-button_set .ulf--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.ulf-field-button_set input{display:none}.ulf-field-checkbox ul,.ulf-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto;max-height:305px}.ulf-field-checkbox ul li,.ulf-field-radio ul li{margin-bottom:6px}.ulf-field-checkbox ul ul,.ulf-field-radio ul ul{max-height:none}.ulf-field-checkbox ul ul li,.ulf-field-radio ul ul li{margin-left:8px}.ulf-field-checkbox ul ul li:first-child,.ulf-field-radio ul ul li:first-child{margin-left:0}.ulf-field-checkbox input,.ulf-field-radio input{margin:0 1px}.ulf-field-checkbox .ulf--inline-list li,.ulf-field-radio .ulf--inline-list li{display:inline-block;margin-right:15px}.ulf-field-checkbox .ulf--text,.ulf-field-radio .ulf--text{margin-left:5px;vertical-align:middle}.ulf-field-checkbox .ulf-checker,.ulf-field-radio .ulf-checker{cursor:pointer}.ulf-field-code_editor .CodeMirror{width:100%;height:400px}.ulf-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.ulf-field-code_editor textarea{width:100%;height:400px}.ulf-field-color>input{opacity:.75;width:115px;max-width:100%}.ulf-field-color .button.wp-picker-clear{padding:0 8px;margin-left:6px;line-height:2.54545455;min-height:30px}.ulf-field-color_group .ulf--left{float:left;margin-right:10px;margin-bottom:5px}.ulf-field-color_group .ulf--title{color:#999;margin-bottom:5px}.ulf-field-fieldset .ulf-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-fieldset .ulf-fieldset-content>.ulf-field{padding:15px}.ulf-field-fieldset .ulf-field-subheading{font-size:13px}.ulf-field-date input{margin:0}.ulf-field-date .ulf--to{margin-left:7px}.ulf-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;box-shadow:0 0 30px rgba(0,0,0,.15)}.ulf-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.ulf-datepicker-wrapper .ui-datepicker-header,.ulf-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.ulf-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.ulf-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.ulf-datepicker-wrapper .ui-datepicker-next,.ulf-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ulf-datepicker-wrapper .ui-datepicker-next span,.ulf-datepicker-wrapper .ui-datepicker-prev span{display:none}.ulf-datepicker-wrapper .ui-datepicker-prev{float:left}.ulf-datepicker-wrapper .ui-datepicker-next{float:right}.ulf-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.ulf-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.ulf-datepicker-wrapper .ui-datepicker-next-hover,.ulf-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.ulf-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.ulf-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.ulf-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.ulf-datepicker-wrapper select{margin:0 4px}.ulf-datepicker-wrapper select option{color:#555}.ulf-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.ulf-datepicker-wrapper thead{color:#fff;background:#32373c}.ulf-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.ulf-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.ulf-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.ulf-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.ulf-datepicker-wrapper td .ui-state-active,.ulf-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.ulf-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.ulf-field-gallery input{display:none}.ulf-field-gallery ul{margin:0;padding:0;list-style-type:none}.ulf-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.ulf-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.ulf-field-gallery .button{margin-right:5px;margin-bottom:5px}.ulf-field-group .ulf-cloneable-hidden{display:none!important}.ulf-field-group .ulf-cloneable-wrapper{position:relative}.ulf-field-group .ulf-cloneable-item{display:none;position:relative;margin-bottom:5px}.ulf-field-group .ulf-cloneable-item h4{font-size:1em}.ulf-field-group .ui-accordion .ulf-cloneable-item{display:block}.ulf-field-group .ulf-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-group .ulf-cloneable-content>.ulf-field{padding:15px}.ulf-field-group .ulf-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.ulf-field-group .ulf-cloneable-title:active,.ulf-field-group .ulf-cloneable-title:focus,.ulf-field-group .ulf-cloneable-title:hover{border-color:#999;outline:0}.ulf-field-group .ulf-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.ulf-field-group .ulf-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.ulf-field-group .ulf-cloneable-helper i:hover{color:#555}.ulf-field-group .ulf-cloneable-content{padding:0;border-top:0}.ulf-field-group .ulf-cloneable-title-number,.ulf-field-group .ulf-cloneable-title-prefix{margin-right:5px}.ulf-field-group .ulf-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.ulf-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-group .ulf-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.ulf-field-group .ulf-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.ulf-field-icon input{display:none}.ulf-field-icon .button{margin-right:5px}.ulf-field-icon .ulf-icon-preview i{display:inline-block;font-size:16px;width:30px;height:28px;line-height:28px;margin-right:5px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.ulf-field-image_select .ulf--image{display:inline-block;margin:0 5px 5px 0}.ulf-field-image_select .ulf--inline-list .ulf--image{display:block}.ulf-field-image_select figure{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;transition:all .2s}.ulf-field-image_select figure:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.ulf-field-image_select .ulf--active figure{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.ulf-field-image_select .ulf--active figure:before{opacity:1}.ulf-field-image_select img{max-width:100%;height:auto;vertical-align:top}.ulf-field-image_select input{display:none}.ulf-field-link_color .ulf--left{float:left;margin-right:10px;margin-bottom:5px}.ulf-field-link_color .ulf--title{color:#777;margin-bottom:5px}.ulf-field-map input{width:100%}.ulf-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.ulf-field-map .ulf--map-search+.ulf--map-osm-wrap{margin-top:10px}.ulf-field-map .ulf--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-map .ulf--map-osm{position:relative;z-index:1;min-height:250px}.ulf-field-map .ulf--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.ulf-field-map .ulf--map-input{flex:1}.ulf-field-map .ulf--map-input:last-child{padding-left:10px}.ulf-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.ulf-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.ulf-field-media .ulf--placeholder{display:flex;align-items:flex-start}.ulf-field-media .ulf--placeholder input{width:100%;margin:0}.ulf-field-media .button{margin-left:5px}.ulf-field-media .hidden+.button{margin-left:0}.ulf-field-media .ulf--preview{position:relative}.ulf-field-media .ulf--preview .fa-times{position:absolute;z-index:1;right:4px;top:4px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.8;transition:all .2s}.ulf-field-media .ulf--preview .fa-times:hover{opacity:1}.ulf-field-media .ulf--preview .fa-times:focus{box-shadow:none}.ulf-field-palette .ulf--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.ulf-field-palette .ulf--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.ulf-field-palette .ulf--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.ulf-field-palette .ulf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.ulf-field-palette .ulf--active:before{opacity:1}.ulf-field-palette input{display:none}.ulf-field-repeater .ulf-field-text input{width:100%}.ulf-field-repeater .ulf-repeater-hidden{display:none!important}.ulf-field-repeater .ulf-repeater-wrapper .ulf-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.ulf-field-repeater .ulf-repeater-wrapper .ulf-repeater-item h4{font-size:1em}.ulf-field-repeater .ulf-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.ulf-field-repeater .ulf-repeater-content>.ulf-field{padding:15px}.ulf-field-repeater .ulf-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.ulf-field-repeater .ulf-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.ulf-field-repeater .ulf-repeater-helper i:hover{color:#555}.ulf-field-repeater .ulf-repeater-helper-inner{width:75px}.ulf-field-repeater .ulf-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.ulf-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.ulf-field-repeater .ui-sortable-helper .ulf-repeater-content,.ulf-field-repeater .ui-sortable-helper .ulf-repeater-helper{display:none}.ulf-field-select .ulf-fieldset{min-height:30px}.ulf-field-select .ulf-chosen{display:none}.ulf-field-select select{max-width:100%;margin:0}.ulf-field-slider .ulf--wrap{display:flex;align-items:center}.ulf-field-slider .ulf--input{display:flex}.ulf-field-slider .ulf--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.ulf-field-slider .ulf-slider-ui{margin-right:15px}.ulf-field-slider input[type=number]{position:relative;z-index:1;margin:0;width:50px;text-align:center}.ulf-field-slider .ulf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.ulf-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.ulf-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.ulf-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.ulf-field-slider .ui-slider-handle:hover,.ulf-field-slider .ui-state-active{cursor:pointer;background:#111}.ulf-field-sortable .ulf-field-text input{width:100%;max-width:100%}.ulf-field-sortable .ulf-sortable .ulf-sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.ulf-field-sortable .ulf-sortable .ulf-sortable-item h4{font-size:1em}.ulf-field-sortable .ulf-sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.ulf-field-sortable .ulf-sortable-content>.ulf-field{padding:15px}.ulf-field-sortable .ulf-sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.ulf-field-sortable .ulf-sortable-helper i{display:inline-block;cursor:pointer;width:50px;color:#555}.ulf-field-sortable .ulf-sortable-helper i:hover{opacity:.5}.ulf-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.ulf-field-sortable .ui-sortable-helper .ulf-sortable-content,.ulf-field-sortable .ui-sortable-helper .ulf-sortable-helper{display:none}.ulf-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-sorter .ulf-modules{float:left;width:50%;box-sizing:border-box}.ulf-field-sorter .ulf-modules:first-child{padding-right:15px}.ulf-field-sorter .ulf-modules:last-child{padding-left:15px}.ulf-field-sorter .ulf-disabled,.ulf-field-sorter .ulf-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.ulf-field-sorter .ulf-disabled li{opacity:.5;transition:opacity .15s}.ulf-field-sorter .ulf-disabled .ui-sortable-helper{opacity:1}.ulf-field-sorter .ulf-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.ulf-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.ulf-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;transition:border-color .15s}.ulf-field-sorter ul li:hover{border-color:#bbb}.ulf-field-spinner .ulf--spin{display:flex}.ulf-field-spinner .ui-spinner{display:flex}.ulf-field-spinner .ui-button{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.ulf-field-spinner .ui-spinner-button{cursor:pointer}.ulf-field-spinner .ui-spinner-button:hover{background-color:#e7e7e7}.ulf-field-spinner .ui-spinner-button:active{background-color:#ddd}.ulf-field-spinner .ui-spinner-button:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;line-height:14px}.ulf-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.ulf-field-spinner .ui-spinner-down:before{content:"\f0d9"}.ulf-field-spinner .ui-spinner-input{order:2}.ulf-field-spinner .ulf--unit{order:3;border-left:0;user-select:none}.ulf-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.ulf-field-spinner .ui-spinner-up:before{content:"\f0da"}.ulf-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.ulf-field-spinner .ui-button-icon,.ulf-field-spinner .ui-button-icon-space,.ulf-field-spinner .ui-button-text{display:none}.ulf-field-switcher .ulf--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.ulf-field-switcher .ulf--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.ulf-field-switcher .ulf--off,.ulf-field-switcher .ulf--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.ulf-field-switcher .ulf--off{padding-right:0;padding-left:28px;opacity:1}.ulf-field-switcher .ulf--active{background:#4fb845}.ulf-field-switcher .ulf--active .ulf--on{opacity:1}.ulf-field-switcher .ulf--active .ulf--off{opacity:0}.ulf-field-switcher .ulf--active .ulf--ball{left:100%;margin-left:-28px}.ulf-field-switcher .ulf--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.ulf-field-switcher input{display:none}.ulf-field-tabbed .ulf-tabbed-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-tabbed .ulf-tabbed-content>.ulf-field{padding:15px}.ulf-field-tabbed .ulf-tabbed-nav .ulf--icon{padding-right:5px}.ulf-field-tabbed .ulf-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.ulf-field-tabbed .ulf-tabbed-nav a:hover{background-color:#f9f9f9}.ulf-field-tabbed .ulf-tabbed-nav a.ulf-tabbed-active{background-color:#fff;border-bottom-color:#fff}.ulf-field-tabbed .ulf-tabbed-nav a:focus{outline:0;box-shadow:none}.ulf-field-text input{width:50%;max-width:100%;margin:0}.ulf-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.ulf-field-textarea .ulf-shortcode-button{margin-bottom:10px;margin-right:5px}.ulf-field-typography select,.ulf-field-typography textarea{min-width:100%;margin:0}.ulf-field-typography .ulf--title{color:#777;margin:0 0 2px 0;font-size:12px}.ulf-field-typography .ulf--title small{vertical-align:top}.ulf-field-typography .ulf--blocks{display:flex;flex-wrap:wrap}.ulf-field-typography .ulf--block{flex:1;padding-right:6px;padding-bottom:6px}.ulf-field-typography .ulf--input{margin:0;min-width:100%}.ulf-field-typography .ulf--input-wrap{position:relative}.ulf-field-typography .ulf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.ulf-field-typography .ulf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.ulf-field-typography .ulf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.ulf-field-typography .ulf--black-background{border-color:#000;background-color:#000}.ulf-field-typography .ulf--toggle{position:absolute;top:5px;right:10px;color:#999}.ulf-field-typography .ulf--block-extra-styles{margin-top:5px}.ulf-field-upload input{width:100%;margin:0}.ulf-field-upload .ulf--wrap{display:flex;align-items:flex-start}.ulf-field-upload .button{margin-left:5px}.ulf-field-wp_editor .ulf-wp-editor{float:left;width:100%}.ulf-field-wp_editor .mce-toolbar-grp{border:none}.ulf-field-wp_editor .mce-btn.mce-active button,.ulf-field-wp_editor .mce-btn.mce-active i,.ulf-field-wp_editor .mce-btn.mce-active:hover button,.ulf-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.ulf-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.ulf-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.ulf-field-wp_editor .ulf-no-tinymce{border:1px solid #e5e5e5}.ulf-field-wp_editor .ulf-no-quicktags .wp-media-buttons{float:none;display:block}.ulf-field-wp_editor .ulf-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.ulf-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.ulf-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.ulf-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.ulf-field-submessage{padding:0!important;border:0!important}.ulf-field-submessage+.ulf-field{border-top:0!important}.ulf-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.ulf-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.ulf-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.ulf-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.ulf-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.ulf-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.ulf-field-notice{background-color:#f7f7f7}.ulf-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.ulf-notice-success{border-color:#46b450}.ulf-notice-info{border-color:#339fd4}.ulf-notice-warning{border-color:#ffbc00}.ulf-notice-danger{border-color:#dc3232}.ulf-notice-normal{border-color:#222}.ulf-field-number input{width:100%;margin:0}.ulf-field-number .ulf--wrap{position:relative;float:left;width:100px}.ulf-field-number .ulf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.ulf-field-link input{display:none}.ulf-field-link .ulf--result{display:inline-block;font-size:12px;line-height:16px;padding:7px 10px;margin-bottom:7px;color:#777;border:1px solid #e5e5e5;background-color:#f5f5f5;border-radius:2px;world-break:break-word}.ulf-field-link .ulf--wrap{position:relative;float:left;width:100px}.ulf-field-link .ulf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.ulf-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:13px;color:#aaa}.ulf-help .ulf-help-text{display:none}.ulf-image-preview{display:inline-block;position:relative;padding:4px;min-width:44px;min-height:22px;margin-bottom:10px;border:1px solid #ccc;background-color:#f9f9f9;box-shadow:0 1px 0 rgba(0,0,0,.08)}.ulf-image-preview img{max-height:90px;display:inline-block;vertical-align:middle}.ulf-field-custom .ulf-field{padding:0}.ulf-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.ulf-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.ulf-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.ulf-field .chosen-container-single .chosen-single abbr:hover{color:#555}.ulf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.ulf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.ulf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.ulf-field .chosen-container-single .chosen-single div b{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;color:#aaa;background:0 0}.ulf-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.ulf-field .chosen-container-single .chosen-single div b:hover{color:#555}.ulf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.ulf-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.ulf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.ulf-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.ulf-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.ulf-field .chosen-container-single .chosen-search:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:11px;content:"\f002";position:absolute;right:12px;top:10px;color:#aaa}.ulf-field .wp-picker-container{display:inline-block}.ulf-field .wp-picker-container .wp-color-result.button{margin-bottom:0}.ulf-field .ulf--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.ulf-field .wp-picker-active .ulf--transparent-wrap{display:block}.ulf-field .ulf--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.ulf-field .ulf--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.ulf-field .ulf--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.ulf-field .ulf--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;border-radius:2px;box-shadow:inset 0 0 5px rgba(0,0,0,.4)}.ulf-field .ulf--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.ulf-field .ulf--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.ulf-field .ulf--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.ulf-field .ulf--transparent-active .ulf--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.ulf-field .ulf--transparent-active .fa:before{content:"\f205"}.ulf-widgets>.ulf-field{position:relative;top:-1px;margin-right:-15px;margin-left:-15px;padding:12px 15px}.ulf-widgets>.ulf-field .ulf-field{margin-left:0;margin-right:0}.ulf-widgets>.ulf-field .ulf-title{float:none;width:100%;margin-bottom:5px}.ulf-widgets>.ulf-field .ulf-fieldset{float:none;width:100%}.ulf-widgets .ulf-field-text input{width:100%}.ulf-widgets .ulf-field-notice .ulf-notice{padding:15px}.control-section .ulf-widgets>.ulf-field{margin-right:-10px;margin-left:-10px;padding:10px 12px}.control-section .ulf-field{padding:0}.control-section .ulf-field .ulf-title{float:none;width:100%;margin-bottom:6px}.control-section .ulf-field .ulf-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .ulf-field .ulf-fieldset{float:none;width:100%}.control-section .ulf-help{top:-5px;right:-5px}.control-section .ulf-field-select select{width:100%}.control-section .ulf-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .ulf-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .ulf-subtitle-text{margin-top:4px;font-size:12px}.control-section .ulf-field-submessage .ulf-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .ulf-fieldset .ulf-field-heading,.control-section .ulf-fieldset .ulf-field-subheading,.control-section .ulf-fieldset .ulf-field-submessage .ulf-submessage{margin-left:0;margin-right:0}.control-section .ulf-field-date .ulf--to{margin-left:0}.control-section .ulf-field-sorter ul li{padding:5px}.control-section .ulf-field-sorter .ulf-modules{float:none;width:100%}.control-section .ulf-field-sorter .ulf-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .ulf-field-background .ulf--background-attributes{flex-direction:column}.control-section .ulf-field-spacing input{width:90px}.control-section .ulf-field-border .ulf--input{flex:1 50%}.control-section .ulf-field-border input,.control-section .ulf-field-border select{width:100%}.control-section .ulf-field-spinner input{width:50px}.control-section .ulf-field-number .ulf--wrap{width:100%}.control-section .ulf-field-backup .ulf-export-data{display:none}.control-section .ulf-field-fieldset .ulf-fieldset-content{border-color:#e5e5e5}.control-section .ulf-accordion-content>.ulf-field,.control-section .ulf-cloneable-content>.ulf-field,.control-section .ulf-fieldset-content>.ulf-field,.control-section .ulf-repeater-content>.ulf-field,.control-section .ulf-sortable-content>.ulf-field,.control-section .ulf-tabbed-content>.ulf-field{padding:10px}.control-section .ulf-accordion-content>.ulf-field .ulf-title,.control-section .ulf-cloneable-content>.ulf-field .ulf-title,.control-section .ulf-fieldset-content>.ulf-field .ulf-title,.control-section .ulf-repeater-content>.ulf-field .ulf-title,.control-section .ulf-sortable-content>.ulf-field .ulf-title,.control-section .ulf-tabbed-content>.ulf-field .ulf-title{margin-bottom:5px}.control-section .ulf-accordion-content>.ulf-field h4,.control-section .ulf-cloneable-content>.ulf-field h4,.control-section .ulf-fieldset-content>.ulf-field h4,.control-section .ulf-repeater-content>.ulf-field h4,.control-section .ulf-sortable-content>.ulf-field h4,.control-section .ulf-tabbed-content>.ulf-field h4{font-size:12px}.control-section .ulf-depend-hidden.ulf-depend-on{display:none!important}.control-section .ulf-depend-visible.ulf-depend-on{border-top:0!important}.ulf-taxonomy{max-width:95%}.ulf-taxonomy>.ulf-field{border-top:none!important}.ulf-taxonomy>.ulf-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.ulf-taxonomy>.ulf-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.ulf-taxonomy>.ulf-field-submessage .ulf-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.ulf-taxonomy>.ulf-field-notice{background-color:transparent}.ulf-taxonomy .ulf-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-taxonomy-add-fields>.ulf-field{padding:8px 0}.ulf-taxonomy-add-fields>.ulf-field>.ulf-title{float:none;width:100%;padding:2px 2px 4px 0}.ulf-taxonomy-add-fields>.ulf-field>.ulf-title h4{font-size:12px;font-weight:400}.ulf-taxonomy-add-fields>.ulf-field>.ulf-fieldset{float:none;width:100%}.ulf-taxonomy-add-fields>.ulf-field>.ulf-fieldset>.ulf-help{right:-5px}.ulf-taxonomy-add-fields+p.submit{margin-top:0}.ulf-taxonomy-edit-fields>.ulf-field{padding:20px 0}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-title{width:200px}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-fieldset{width:calc(100% - 220px)}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-fieldset>.ulf-help{top:-5px;right:-5px}.ulf-taxonomy-edit-fields>.ulf-field-submessage{margin:20px 0}.ulf-taxonomy-edit-fields>.ulf-field-heading,.ulf-taxonomy-edit-fields>.ulf-field-subheading{margin:20px 0;border:1px solid #ddd}.ulf-nav-menu-options{clear:both;float:left;width:100%}.ulf-nav-menu-options>.ulf-fields{margin-left:-10px;margin-top:10px;margin-bottom:10px;border-top:1px solid #eee;border-bottom:1px solid #eee}.ulf-nav-menu-options>.ulf-fields>.ulf-field{padding:12px 14px 12px 12px}.ulf-nav-menu-options>.ulf-fields>.ulf-field .ulf-title{float:none;width:100%;margin-bottom:5px}.ulf-nav-menu-options>.ulf-fields>.ulf-field .ulf-fieldset{float:none;width:100%}.ulf-nav-menu-options .ulf-field-text input{width:100%}.ulf-nav-menu-options .ulf-field-notice .ulf-notice{padding:15px}.ulf-nav-menu-title{padding:12px 14px 12px 12px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.ulf-nav-menu-title:first-child{border-top:0}.ulf-nav-menu-title h4{margin:0;padding:0;color:#23282d}.ulf-nav-menu-icon{margin-right:5px}.ulf-profile-options>h2>.fa{padding-right:7px}.ulf-profile-options>.ulf-field{max-width:750px;padding:15px 0;border-top:none!important}.ulf-profile-options>.ulf-field>.ulf-title{width:200px}.ulf-profile-options>.ulf-field>.ulf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.ulf-profile-options>.ulf-field>.ulf-fieldset{width:calc(100% - 220px)}.ulf-profile-options>.ulf-field>.ulf-fieldset>.ulf-help{top:-15px;right:-5px}.ulf-profile-options>.ulf-field-heading{font-size:1.1em}.ulf-profile-options>.ulf-field-subheading{font-size:12px}.ulf-profile-options>.ulf-field-heading,.ulf-profile-options>.ulf-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.ulf-profile-options>.ulf-field-submessage{margin:20px 0}.ulf-profile-options>.ulf-field-submessage .ulf-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.ulf-profile-options>.ulf-field-notice{background-color:transparent}.ulf-modal{position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.ulf-modal.hidden{display:none}.ulf-modal-icon{z-index:100102}.ulf-modal-table{display:table;width:100%;height:100%}.ulf-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.ulf-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.ulf-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.ulf-modal-content .ulf-shortcode-button{display:none}.ulf-modal-content .ulf-field{padding:15px 30px 15px 15px}.ulf-modal-content a:active,.ulf-modal-content a:focus{outline:0;box-shadow:none}.ulf-modal-content h4{font-size:13px}.ulf-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.ulf-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.ulf-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #ddd}.ulf-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.ulf-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.ulf-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.ulf-modal-close:hover{opacity:.5}.ulf-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #ddd}.ulf-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.ulf--repeatable{padding:15px 15px 0 15px}.ulf--repeat-button-block{text-align:center;padding-bottom:15px}.ulf--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.ulf--repeat-shortcode:first-child .ulf-repeat-remove{display:none}.ulf--repeat-shortcode .ulf-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.ulf--repeat-shortcode .ulf-repeat-remove:hover{opacity:.5}.ulf-shortcode-single .ulf-modal-inner{height:750px}.ulf-shortcode-single .ulf-modal-content{height:652px}.elementor-editor-active .ulf-shortcode-button{margin-left:5px}.elementor-editor-active .ulf-modal .hidden{display:none!important}.ulf-shortcode-block{text-align:center;padding:14px;font-size:13px;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.ulf-shortcode-block .components-button{margin-bottom:10px}.ulf-modal-icon .ulf-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.ulf-modal-icon .ulf-modal-header{text-align:center}.ulf-modal-icon .ulf-icon-search{width:50%;height:40px;line-height:40px}.ulf-modal-icon i{cursor:pointer;display:inline-block;margin:4px;width:35px;height:35px;line-height:35px;font-size:16px;color:#555;text-align:center;border:1px solid #ccc;background-color:#f7f7f7;border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,.05)}.ulf-modal-icon i:hover{color:#fff;border-color:#222;background-color:#222}.ulf-modal-icon .ulf-modal-content{padding:10px;height:618px}.ulf-modal-icon .ulf-error-text{padding:10px}.ulf-modal-loading{display:none;position:absolute;left:15px;top:15px}.ulf-loading{position:relative;width:20px;height:20px;background:#ccc;border-radius:20px;box-shadow:0 2px 5px rgba(0,0,0,.07)}.ulf-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:ulfLoader;border-radius:4px}@keyframes ulfLoader{0%{transform:rotate(0) translateX(-6px) rotate(0)}100%{transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.ulf-subtitle-text{margin-top:6px;font-weight:400;color:#999}.ulf-desc-text{clear:both;float:left;width:100%;margin-top:6px;font-weight:400;color:#999}.ulf-error-text{margin-top:6px;color:#d02c21}.ulf-before-text{margin-bottom:6px}.ulf-after-text{margin-top:6px}.ulf-metabox-hide{display:none!important}.ulf-metabox-show{display:block!important}.ulf-depend-hidden.ulf-depend-on{display:none}.ulf-depend-visible.ulf-depend-on{display:block;opacity:.75;filter:grayscale(1);user-select:none;border-top:1px solid #eee}.ulf-depend-visible.ulf-depend-on .clear:before{content:"";left:0;top:0;right:0;bottom:0;position:absolute;background-color:#eee;opacity:.25;z-index:10}.ulf-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.ulf-warning-primary:focus,.ulf-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.ulf-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.ulf-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.ulf-form-result{display:none;float:left;padding:0 8px;margin-right:4px;font-size:11px;line-height:30px;user-select:none;border-radius:2px}.ulf-form-show{display:block}.ulf-form-success{color:#fff;background-color:#46b450}.ulf-form-warning{color:#8a6d3b;background-color:#faebcc}.ulf-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;border-radius:2px}.ulf-no-option{padding:30px}.ulf-input-number{-moz-appearance:textfield}.ulf-input-number::-webkit-inner-spin-button,.ulf-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ulf-fa5-shims .ulf .fab,.ulf-fa5-shims .ulf .far,.ulf-fa5-shims .ulf .fas{font-family:FontAwesome;font-style:normal}.ulf-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.ulf-welcome-wrap p{font-size:14px;line-height:1.5}.ulf-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.ulf-welcome-wrap .ulf-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.ulf-welcome-wrap .ulf-logo .ulf--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(1){bottom:-20px;right:-70px}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(2){bottom:-35px;right:-80px}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(3){bottom:-50px;right:-90px}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(4){bottom:-65px;right:-100px}.ulf-welcome-wrap .ulf-logo .ulf--wp-logos{position:relative;padding-top:25px;text-align:center}.ulf-welcome-wrap .ulf-logo .ulf--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.ulf-welcome-wrap .ulf-logo .ulf--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.ulf-welcome-wrap .ulf-logo .ulf--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.ulf-welcome-wrap .ulf-logo .ulf--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.ulf-welcome-wrap .ulf-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.ulf-welcome-wrap .ulf-demo-button{margin:1em 200px 2em 0}.ulf-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.ulf-welcome-wrap ul{list-style-type:disc;padding-left:15px}.ulf-welcome-wrap .ulf--col{float:left;padding-right:20px;box-sizing:border-box}.ulf-welcome-wrap .ulf--col-2{width:50%}.ulf-welcome-wrap .ulf--col-3{width:33.333%}.ulf-welcome-wrap .ulf--col-4{width:25%}.ulf-welcome-wrap .ulf--col-5{width:20%}.ulf-welcome-wrap .ulf--col-last{padding-right:0}.ulf-welcome-wrap .ulf--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.ulf--table-compare tfoot td,.ulf--table-compare thead td{text-align:center}.ulf--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.ulf--table-compare td:first-child{text-align:left}.ulf--table-compare tfoot td{padding:15px 0}.ulf--table-compare .fa{font-size:18px}.ulf--table-compare .fa-check-circle{color:#46b450}.ulf--table-compare .fa-times-circle{color:#dc3232}.ulf-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.ulf-welcome-cols .ulf--col{width:33.333%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.ulf-welcome-cols .ulf--block,.ulf-welcome-cols .ulf--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.ulf-welcome-cols .ulf--block{width:80%}.ulf-welcome-cols .ulf--col-first{border-bottom:1px solid #e5e5e5}.ulf-welcome-cols .ulf--last{border-right:none}.ulf-welcome-cols .ulf--space{height:20px}.ulf-welcome-cols .ulf--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.ulf-welcome-cols .ulf--active{background-color:#5cb85c}.ulf-welcome-cols .ulf--deactive{background-color:#e14d43}.ulf-welcome-cols .ulf--title{font-weight:700;display:block}.ulf-welcome-cols p:last-child{margin-bottom:0}.ulf-features-cols .ulf--key-features{width:30%}.ulf-features-cols .ulf--available-fields{width:70%}.ulf-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.ulf-code-block pre{font-size:13px;color:#0073aa}.ulf-code-block pre span{color:#999}.ulf--table-fields td{font-size:14px}.ulf--upgrade a{color:#5cb85c;font-weight:700}.ulf--upgrade a:focus,.ulf--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.ulf-welcome-cols .ulf--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.ulf-features-cols .ulf--key-features{width:100%}.ulf-features-cols .ulf--available-fields{width:100%}}@media only screen and (max-width:1200px){.ulf-metabox .ulf-field .ulf-title{float:none;width:100%;margin-bottom:10px}.ulf-metabox .ulf-field .ulf-fieldset{float:none;width:100%}}@media only screen and (max-width:782px){.ulf-header-inner{text-align:center}.ulf-header-inner h1{width:100%;margin-bottom:10px}.ulf-form-result{float:none;margin-right:0;margin-bottom:10px}.ulf-header-left,.ulf-header-right,.ulf-search{width:100%}.ulf-search{text-align:center;margin-bottom:15px}.ulf-footer{text-align:center}.ulf-buttons{float:none}.ulf-copyright{float:none;margin-top:10px}.ulf-expand-all,.ulf-nav,.ulf-nav-background,.ulf-reset-section{display:none!important}.ulf-content{margin-left:0}.ulf-section,.ulf-section-title{display:block!important}.ulf-field .ulf-title{float:none;width:100%;margin-bottom:10px}.ulf-field .ulf-fieldset{float:none;width:100%}.ulf-field-color .button.wp-picker-clear{padding:0 8px;line-height:2.14285714;min-height:32px}.ulf-modal-inner{width:350px;height:400px}.ulf-modal-content{height:237px}.ulf-icon-dialog .ulf-modal-inner{width:305px;height:380px}.ulf-icon-dialog .ulf-modal-content{height:267px}.ulf-modal-icon .ulf-modal-inner{width:330px;height:385px}.ulf-modal-icon .ulf-modal-content{height:252px}.ulf-profile-options>.ulf-field>.ulf-title,.ulf-taxonomy-edit-fields>.ulf-field>.ulf-title{float:none;width:100%;margin-bottom:10px}.ulf-profile-options>.ulf-field>.ulf-fieldset,.ulf-taxonomy-edit-fields>.ulf-field>.ulf-fieldset{float:none;width:100%}.ulf-nav-menu-options>.ulf-fields{margin-left:-10px;margin-right:-10px}.ulf-nav-menu-options>.ulf-fields>.ulf-field{padding:10px}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}
|
1 |
+
.ulf{position:relative}.ulf label{padding:0;margin:0;display:inline-block}.ulf-ab-icon{top:2px}#screen-meta-links+.ulf-options{margin-top:40px}.ulf-options{margin-top:20px;margin-right:20px}.ulf-header{position:relative}.ulf-header-inner{padding:25px;transition:box-shadow .3s ease}.ulf-header-inner h1{float:left;font-size:1.5em;line-height:26px;font-weight:400;margin:0}.ulf-header-inner h1 small{font-size:11px;font-weight:500}.ulf-sticky .ulf-header-inner{position:fixed;z-index:99;top:32px;box-shadow:0 5px 10px rgba(0,0,0,.1)}.ulf-buttons{float:right}.ulf-buttons .button{margin:0 2px;line-height:26px}.ulf-buttons .button:focus{outline:0!important;box-shadow:none!important}.ulf-buttons .ulf-save{min-width:72px}.ulf-header-left{float:left}.ulf-header-right{float:right}.ulf-nav{display:block;position:relative;z-index:10;float:left}.ulf-nav ul{clear:left;margin:0;list-style-type:none}.ulf-nav ul li{margin-bottom:0}.ulf-nav ul li a{font-size:13px;position:relative;display:block;padding:14px 12px;text-decoration:none;transition-property:color,background;transition-duration:.2s;transition-timing-function:ease}.ulf-nav ul li a:focus{outline:0;box-shadow:none}.ulf-nav ul li .ulf-arrow:after{content:"\f054";display:inline-block;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:9px;line-height:1;position:absolute;right:10px;top:50%;margin-top:-4px}.ulf-nav ul li.ulf-tab-expanded .ulf-arrow:after{transform:rotate(90deg)}.ulf-nav ul li.ulf-tab-expanded ul{display:block}.ulf-nav ul ul{display:none;position:relative}.ulf-nav ul ul li a{font-size:12px;padding:12px 14px 12px 24px}.ulf-nav .ulf-tab-icon{width:20px;margin-right:5px;font-size:13px;text-align:center}.ulf-nav .ulf-label-error{margin-left:4px;vertical-align:top}.ulf-nav-normal{width:225px}.ulf-nav-normal+.ulf-content{margin-left:225px}.ulf-nav-inline{width:100%}.ulf-nav-inline ul li{display:inline-block;vertical-align:top}.ulf-nav-background{position:absolute;top:0;left:0;bottom:0;z-index:9;width:225px}.ulf-wrapper{position:relative}.ulf-content{position:relative;background-color:#fff}.ulf-sections{float:left;width:100%}.ulf-section-title{display:none;padding:20px 30px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.ulf-section-title h3{margin:0;padding:0;font-size:13px;font-weight:700;text-transform:uppercase}.ulf-section-title .ulf-section-icon{margin-right:5px}.ulf-footer{padding:20px;font-size:11px}.ulf-copyright{float:left;margin-top:5px}.ulf-search-all .ulf-nav,.ulf-search-all .ulf-nav-background,.ulf-show-all .ulf-nav,.ulf-show-all .ulf-nav-background{display:none}.ulf-search-all .ulf-content,.ulf-show-all .ulf-content{margin-left:0}.ulf-search-all .ulf-section,.ulf-search-all .ulf-section-title,.ulf-show-all .ulf-section,.ulf-show-all .ulf-section-title{display:block!important}.ulf-search-all .ulf-section-title{display:none!important}.ulf-expand-all{float:left;padding:0 8px;margin-right:4px;z-index:1;font-size:13px;line-height:30px;cursor:pointer;user-select:none;border-radius:2px;transition:all .2s}.ulf-expand-all span{font-size:11px;vertical-align:middle}.ulf-search{float:left}.ulf-search input{margin:0 2px 0 0;border:none;font-size:12px;line-height:30px;min-height:30px;text-align:inherit;padding:0 10px;border-radius:2px;box-shadow:none}.ulf-search input:focus{box-shadow:none}.ulf-saving .ulf-buttons,.ulf-saving .ulf-content{cursor:default;pointer-events:none;opacity:.5}.ulf-metabox{margin:-6px -12px -12px -12px}.ulf-metabox .ulf-field{padding:20px}.ulf-metabox .ulf-section-title{padding:20px}.block-editor-page .ulf-metabox{margin:-6px -14px -14px -14px}.block-editor-editor-skeleton__content .ulf-metabox{border-left:1px solid #e2e4e7;border-right:1px solid #e2e4e7}.ulf-sections-reset{float:left;width:100%;text-align:right;border-top:1px solid #eee}.ulf-sections-reset .ulf-button-cancel,.ulf-sections-reset input{display:none}.ulf-sections-reset label{padding:10px}.ulf-sections-reset span{-webkit-user-select:none;user-select:none}.ulf-sections-reset input:checked~.ulf-button-reset{display:none}.ulf-sections-reset input:checked~.ulf-button-cancel{display:inline-block}#side-sortables .ulf-section-title{padding:12px}#side-sortables .ulf-field{padding:10px 15px}#side-sortables .ulf-field .ulf-title{float:none;width:100%;margin-bottom:6px}#side-sortables .ulf-field .ulf-fieldset{float:none;width:100%}#side-sortables .ulf-field-text input{width:100%}#side-sortables .ulf-notice{padding:10px 15px}.ulf-comment-metabox{margin:-6px -12px -12px -12px}.ulf-comment-metabox .ulf-field{padding:20px}.ulf-comment-metabox .ulf-section-title{padding:20px}.ulf-tooltip{position:absolute;z-index:5000001;font-size:12px;line-height:1.4;text-align:center;text-decoration:none;padding:6px 12px;max-width:200px;color:#fff;background-color:#000;background-color:rgba(0,0,0,.85);border-radius:4px}.ulf-theme-dark .ulf-header-inner{background-color:#050505}.ulf-theme-dark .ulf-header-inner h1{color:#fff}.ulf-theme-dark .ulf-header-inner h1 small{color:#555}.ulf-theme-dark .ulf-expand-all{color:#999;background-color:#222}.ulf-theme-dark .ulf-expand-all:hover{color:#fff;background-color:#333}.ulf-theme-dark .ulf-search input{color:#fff;background-color:#222}.ulf-theme-dark .ulf-search:focus{background-color:#444}.ulf-theme-dark .ulf-search::-webkit-input-placeholder{color:#666}.ulf-theme-dark .ulf-nav ul li a{color:#999;border-color:#2f2f2f;background-color:#222}.ulf-theme-dark .ulf-nav ul li a:hover{color:#fff}.ulf-theme-dark .ulf-nav ul li .ulf-active{color:#fff;background-color:#111}.ulf-theme-dark .ulf-nav ul ul li a{border-color:#2f2f2f;background-color:#191919}.ulf-theme-dark .ulf-nav ul ul li .ulf-active{background-color:#101010}.ulf-theme-dark .ulf-nav ul ul:before{background-color:rgba(34,34,34,.75)}.ulf-theme-dark .ulf-nav>ul>li:last-child>a{border:none}.ulf-theme-dark .ulf-nav-normal ul li a{border-bottom-width:1px;border-bottom-style:solid}.ulf-theme-dark .ulf-nav-normal ul li .ulf-active:after{content:" ";position:absolute;right:0;top:50%;height:0;width:0;pointer-events:none;border:solid transparent;border-right-color:#fff;border-width:4px;margin-top:-4px}.ulf-theme-dark .ulf-nav-inline{background-color:#222}.ulf-theme-dark .ulf-nav-inline ul li a{text-align:center;border-right-width:1px;border-right-style:solid}.ulf-theme-dark .ulf-nav-inline ul li .ulf-active:after{content:" ";position:absolute;left:50%;bottom:0;height:0;width:0;pointer-events:none;border:solid transparent;border-bottom-color:#fff;border-width:4px;margin-left:-4px}.ulf-theme-dark .ulf-nav-background{background-color:#222}.ulf-theme-dark .ulf-footer{color:#555;background-color:#050505}.ulf-theme-light .ulf-container{border:1px solid #ccd0d4;box-shadow:0 0 15 rgba(0,0,0,.04)}.ulf-theme-light .ulf-header-inner{border-bottom:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fefefe,#f5f5f5)}.ulf-theme-light .ulf-header-inner h1 small{color:#999}.ulf-theme-light .ulf-expand-all{color:#999;background-color:#eee}.ulf-theme-light .ulf-expand-all:hover{color:#555}.ulf-theme-light .ulf-search input{color:#555;background-color:#eee}.ulf-theme-light .ulf-search input::-webkit-input-placeholder{color:#999}.ulf-theme-light .ulf-nav ul li a{font-weight:500;color:#444;background-color:#f5f5f5}.ulf-theme-light .ulf-nav ul li a:hover{color:#111;background-color:#fff}.ulf-theme-light .ulf-nav ul li .ulf-active{color:#111;background-color:#fff}.ulf-theme-light .ulf-nav ul ul li a{background-color:#eee}.ulf-theme-light .ulf-nav-normal>ul{margin-right:-1px;margin-bottom:-1px}.ulf-theme-light .ulf-nav-normal>ul li a{border-bottom:1px solid #ccd0d4;border-right:1px solid #ccd0d4}.ulf-theme-light .ulf-nav-normal>ul li .ulf-active{border-right-color:#fff}.ulf-theme-light .ulf-nav-inline{background-color:#f5f5f5;border-bottom:1px solid #ccd0d4}.ulf-theme-light .ulf-nav-inline>ul{margin-bottom:-1px}.ulf-theme-light .ulf-nav-inline>ul li a{text-align:center;border-right:1px solid #ccd0d4;border-bottom:1px solid #ccd0d4}.ulf-theme-light .ulf-nav-inline>ul li .ulf-active{border-bottom-color:#fff}.ulf-theme-light .ulf-nav-inline>ul ul{display:none!important}.ulf-theme-light .ulf-nav-inline .ulf-arrow:after{display:none}.ulf-theme-light .ulf-nav-background{background-color:#f5f5f5;border-right:1px solid #ccd0d4}.ulf-theme-light .ulf-footer{color:#555;border-top:1px solid #ccd0d4;background-color:#f5f5f5;background:linear-gradient(#fafafa,#f5f5f5)}.ulf-field{position:relative;padding:30px}.ulf-field+.ulf-field{border-top:1px solid #eee}.ulf-field p:first-child{margin-top:0}.ulf-field p:last-child{margin-bottom:0}.ulf-field:after,.ulf-field:before{content:" ";display:table}.ulf-field:after{clear:both}.ulf-field h4{margin-top:0}.ulf-field .ulf-title{position:relative;width:20%;float:left}.ulf-field .ulf-title h4{margin:0;color:#23282d}.ulf-field .ulf-fieldset{float:right;width:calc(80% - 20px)}.ulf-pseudo-field{padding:0 5px 0 0!important;display:inline-block}.ulf-pseudo-field+.ulf-pseudo-field{border:0}.ulf-pseudo-field pre{display:none}.ulf-field-accordion .ulf-accordion-item{position:relative;margin-bottom:5px}.ulf-field-accordion .ulf-accordion-item:last-child{margin-bottom:0}.ulf-field-accordion .ulf-accordion-item h4{font-size:1em}.ulf-field-accordion .ulf-accordion-title{display:block;cursor:pointer;position:relative;margin:0;padding:15px;min-height:0;font-size:100%;user-select:none;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.ulf-field-accordion .ulf-accordion-title:active,.ulf-field-accordion .ulf-accordion-title:focus,.ulf-field-accordion .ulf-accordion-title:hover{outline:0;border-color:#999}.ulf-field-accordion .ulf-accordion-title .ulf--icon{width:20px;text-align:center;margin-right:2px}.ulf-field-accordion .ulf-accordion-icon{width:16px;text-align:center}.ulf-field-accordion .ulf-accordion-content{display:none;padding:0;border:1px solid #ccd0d4;border-top:none;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-accordion .ulf-accordion-content>.ulf-field{padding:15px}.ulf-field-accordion .ulf-accordion-open{display:block}.ulf-field-background .ulf-field{border:0!important;padding:0;margin-bottom:6px;margin-right:6px}.ulf-field-background .ulf--title{color:#777;font-size:12px}.ulf-field-background .ulf--background-colors{display:flex;flex-wrap:wrap}.ulf-field-background .ulf--background-attributes{display:flex;flex-wrap:wrap}.ulf-field-background .ulf--background-attributes select{min-width:100%;margin:0}.ulf-field-background .ulf--background-attributes .ulf-field{flex:1}.ulf-field-background .ulf--attributes-hidden{display:none}.ulf-field-backup textarea{width:100%;min-height:200px;margin-bottom:5px}.ulf-field-backup small{display:inline-block;margin:5px}.ulf-field-backup hr{margin:20px 0;border:none;border-bottom:1px solid #e5e5e5}.ulf-field-border .ulf--inputs,.ulf-field-dimensions .ulf--inputs,.ulf-field-spacing .ulf--inputs{float:left;display:flex;flex-wrap:wrap}.ulf-field-border .ulf--input,.ulf-field-dimensions .ulf--input,.ulf-field-spacing .ulf--input{display:flex;padding-right:6px;padding-bottom:4px;box-sizing:border-box}.ulf-field-border .ulf--input select,.ulf-field-dimensions .ulf--input select,.ulf-field-spacing .ulf--input select{margin:0}.ulf-field-border .ulf--input input,.ulf-field-dimensions .ulf--input input,.ulf-field-spacing .ulf--input input{position:relative;z-index:1;margin:0;width:65px;max-width:100%;text-align:center}.ulf-field-border .ulf--color,.ulf-field-dimensions .ulf--color,.ulf-field-spacing .ulf--color{float:left}.ulf-field-border .ulf--label,.ulf-field-dimensions .ulf--label,.ulf-field-spacing .ulf--label{display:flex;flex-direction:column;justify-content:center;user-select:none;min-width:20px;max-width:100%;padding:0 4px;font-size:12px;text-align:center;color:#555;border:1px solid #7b776c;background-color:#f5f5f5}.ulf-field-border .ulf--icon,.ulf-field-dimensions .ulf--icon,.ulf-field-spacing .ulf--icon{border-right:0;border-radius:4px 0 0 4px}.ulf-field-border .ulf--icon+input,.ulf-field-dimensions .ulf--icon+input,.ulf-field-spacing .ulf--icon+input{border-top-left-radius:0;border-bottom-left-radius:0}.ulf-field-border .ulf--unit,.ulf-field-dimensions .ulf--unit,.ulf-field-spacing .ulf--unit{border-left:0;border-radius:0 4px 4px 0}.ulf-field-border .ulf--is-unit,.ulf-field-dimensions .ulf--is-unit,.ulf-field-spacing .ulf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.ulf-field-button_set .ulf--buttons{display:inline-block}.ulf-field-button_set .ulf--button{position:relative;z-index:1;float:left;cursor:pointer;padding:7px 14px;min-width:16px;text-align:center;color:#555;border:1px solid #ccc;background-color:#f7f7f7;user-select:none;box-shadow:0 1px 0 rgba(0,0,0,.1)}.ulf-field-button_set .ulf--button:first-child{border-radius:4px 0 0 4px}.ulf-field-button_set .ulf--button:last-child{border-radius:0 4px 4px 0}.ulf-field-button_set .ulf--button:not(:first-child){margin-left:-1px}.ulf-field-button_set .ulf--button:hover{background-color:#eee}.ulf-field-button_set .ulf--active,.ulf-field-button_set .ulf--active:hover{z-index:2;color:#fff;border-color:#006799;background-color:#0085ba}.ulf-field-button_set input{display:none}.ulf-field-checkbox ul,.ulf-field-radio ul{margin:0;padding:0;list-style-type:none;overflow-y:auto;max-height:305px}.ulf-field-checkbox ul li,.ulf-field-radio ul li{margin-bottom:6px}.ulf-field-checkbox ul ul,.ulf-field-radio ul ul{max-height:none}.ulf-field-checkbox ul ul li,.ulf-field-radio ul ul li{margin-left:8px}.ulf-field-checkbox ul ul li:first-child,.ulf-field-radio ul ul li:first-child{margin-left:0}.ulf-field-checkbox input,.ulf-field-radio input{margin:0 1px}.ulf-field-checkbox .ulf--inline-list li,.ulf-field-radio .ulf--inline-list li{display:inline-block;margin-right:15px}.ulf-field-checkbox .ulf--text,.ulf-field-radio .ulf--text{margin-left:5px;vertical-align:middle}.ulf-field-checkbox .ulf-checker,.ulf-field-radio .ulf-checker{cursor:pointer}.ulf-field-code_editor .CodeMirror{width:100%;height:400px}.ulf-field-code_editor .cm-s-default{border:1px solid #ccd0d4}.ulf-field-code_editor textarea{width:100%;height:400px}.ulf-field-color>input{opacity:.75;width:115px;max-width:100%}.ulf-field-color .button.wp-picker-clear{padding:0 8px;margin-left:6px;line-height:2.54545455;min-height:30px}.ulf-field-color_group .ulf--left{float:left;margin-right:10px;margin-bottom:5px}.ulf-field-color_group .ulf--title{color:#999;margin-bottom:5px}.ulf-field-fieldset .ulf-fieldset-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-fieldset .ulf-fieldset-content>.ulf-field{padding:15px}.ulf-field-fieldset .ulf-field-subheading{font-size:13px}.ulf-field-date input{margin:0}.ulf-field-date .ulf--to{margin-left:7px}.ulf-datepicker-wrapper{margin-top:5px;width:auto;background-color:#fff;z-index:9999999!important;box-shadow:0 0 30px rgba(0,0,0,.15)}.ulf-datepicker-wrapper *{float:none;margin:0;padding:0;font-family:inherit;font-weight:400;font-style:normal;text-decoration:none;border:0;border-radius:0;box-shadow:none}.ulf-datepicker-wrapper .ui-datepicker-header,.ulf-datepicker-wrapper .ui-widget-header{color:#fff;background:#00a0d2}.ulf-datepicker-wrapper .ui-datepicker-header .ui-state-hover{cursor:pointer}.ulf-datepicker-wrapper .ui-datepicker-title{font-size:14px;line-height:40px;text-align:center}.ulf-datepicker-wrapper .ui-datepicker-next,.ulf-datepicker-wrapper .ui-datepicker-prev{position:static;top:auto;left:auto;right:auto;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;text-align:center;width:41px;height:40px;line-height:40px;color:#fff;background-color:rgba(255,255,255,.1);text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ulf-datepicker-wrapper .ui-datepicker-next span,.ulf-datepicker-wrapper .ui-datepicker-prev span{display:none}.ulf-datepicker-wrapper .ui-datepicker-prev{float:left}.ulf-datepicker-wrapper .ui-datepicker-next{float:right}.ulf-datepicker-wrapper .ui-datepicker-prev:before{content:'\f053'}.ulf-datepicker-wrapper .ui-datepicker-next:before{content:'\f054'}.ulf-datepicker-wrapper .ui-datepicker-next-hover,.ulf-datepicker-wrapper .ui-datepicker-prev-hover{opacity:.75}.ulf-datepicker-wrapper tbody .ui-datepicker-week-col{background-color:#f7f7f7}.ulf-datepicker-wrapper .ui-datepicker-buttonpane{padding:10px;text-align:center;background-color:#f7f7f7}.ulf-datepicker-wrapper .ui-datepicker-buttonpane button{cursor:pointer;margin:0 5px;padding:7px 14px;border:1px solid #eee;background-color:#fff}.ulf-datepicker-wrapper select{margin:0 4px}.ulf-datepicker-wrapper select option{color:#555}.ulf-datepicker-wrapper table{font-size:13px;border-collapse:collapse;width:100%}.ulf-datepicker-wrapper thead{color:#fff;background:#32373c}.ulf-datepicker-wrapper th{text-align:center;padding:7px;border:1px solid #444}.ulf-datepicker-wrapper td{text-align:center;border:1px solid #f4f4f4}.ulf-datepicker-wrapper td.ui-datepicker-other-month{border:transparent}.ulf-datepicker-wrapper td .ui-state-default{color:#555;width:auto;display:block;padding:6px 12px}.ulf-datepicker-wrapper td .ui-state-active,.ulf-datepicker-wrapper td .ui-state-hover{color:#fff;background-color:#0073aa}.ulf-datepicker-wrapper td.ui-state-disabled .ui-state-default{opacity:.5}.ulf-field-gallery input{display:none}.ulf-field-gallery ul{margin:0;padding:0;list-style-type:none}.ulf-field-gallery ul li{display:inline-block;position:relative;padding:4px;margin:0 5px 10px 0;border:1px solid #ccc;background-color:#f9f9f9;border-radius:2px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.ulf-field-gallery ul li img{max-height:60px;display:inline-block;vertical-align:middle}.ulf-field-gallery .button{margin-right:5px;margin-bottom:5px}.ulf-field-group .ulf-cloneable-hidden{display:none!important}.ulf-field-group .ulf-cloneable-wrapper{position:relative}.ulf-field-group .ulf-cloneable-item{display:none;position:relative;margin-bottom:5px}.ulf-field-group .ulf-cloneable-item h4{font-size:1em}.ulf-field-group .ui-accordion .ulf-cloneable-item{display:block}.ulf-field-group .ulf-cloneable-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-group .ulf-cloneable-content>.ulf-field{padding:15px}.ulf-field-group .ulf-cloneable-title{display:block;cursor:pointer;position:relative;user-select:none;margin:0;padding:15px 65px 15px 10px;min-height:0;font-size:100%;border:1px solid #ccd0d4;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,.04);transition:border-color .15s}.ulf-field-group .ulf-cloneable-title:active,.ulf-field-group .ulf-cloneable-title:focus,.ulf-field-group .ulf-cloneable-title:hover{border-color:#999;outline:0}.ulf-field-group .ulf-cloneable-helper{position:absolute;top:12px;right:10px;z-index:1;font-size:14px;line-height:1em}.ulf-field-group .ulf-cloneable-helper i{display:inline-block;cursor:pointer;padding:5px;color:#999}.ulf-field-group .ulf-cloneable-helper i:hover{color:#555}.ulf-field-group .ulf-cloneable-content{padding:0;border-top:0}.ulf-field-group .ulf-cloneable-title-number,.ulf-field-group .ulf-cloneable-title-prefix{margin-right:5px}.ulf-field-group .ulf-cloneable-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.ulf-field-group .widget-placeholder{margin-bottom:10px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-group .ulf-cloneable-header-icon{display:inline-block;text-align:center;font-size:14px;width:17px;text-indent:0;vertical-align:text-top}.ulf-field-group .ulf-cloneable-placeholder{background-color:#ddd;margin-top:4px;width:100px;height:10px;font-size:10px;line-height:10px;display:inline-block;vertical-align:top;border-radius:2px}.ulf-field-icon input{display:none}.ulf-field-icon .button{margin-right:5px}.ulf-field-icon .ulf-icon-preview i{display:inline-block;font-size:16px;width:30px;height:28px;line-height:28px;margin-right:5px;text-align:center;vertical-align:top;color:#555;border:1px solid #ccc;background-color:#f7f7f7;border-radius:3px;box-shadow:0 1px 0 rgba(0,0,0,.08)}.ulf-field-image_select .ulf--image{display:inline-block;margin:0 5px 5px 0}.ulf-field-image_select .ulf--inline-list .ulf--image{display:block}.ulf-field-image_select figure{cursor:pointer;position:relative;display:inline-block;max-width:100%;margin:0;vertical-align:bottom;border:2px solid transparent;background-color:#fff;user-select:none;transition:all .2s}.ulf-field-image_select figure:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.ulf-field-image_select .ulf--active figure{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.ulf-field-image_select .ulf--active figure:before{opacity:1}.ulf-field-image_select img{max-width:100%;height:auto;vertical-align:top}.ulf-field-image_select input{display:none}.ulf-field-link_color .ulf--left{float:left;margin-right:10px;margin-bottom:5px}.ulf-field-link_color .ulf--title{color:#777;margin-bottom:5px}.ulf-field-map input{width:100%}.ulf-field-map input[type=text].ui-autocomplete-loading{background-position-x:calc(100% - 5px)}.ulf-field-map .ulf--map-search+.ulf--map-osm-wrap{margin-top:10px}.ulf-field-map .ulf--map-osm-wrap{position:relative;padding:5px;border:1px solid #eee;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-map .ulf--map-osm{position:relative;z-index:1;min-height:250px}.ulf-field-map .ulf--map-inputs{margin-top:10px;display:flex;justify-content:space-between}.ulf-field-map .ulf--map-input{flex:1}.ulf-field-map .ulf--map-input:last-child{padding-left:10px}.ulf-field-map label{display:block;color:#777;font-size:12px;margin:0 0 2px 0}.ulf-map-ui-autocomplate{z-index:999999;border-radius:4px;overflow:hidden}.ulf-field-media .ulf--placeholder{display:flex;align-items:flex-start}.ulf-field-media .ulf--placeholder input{width:100%;margin:0}.ulf-field-media .button{margin-left:5px}.ulf-field-media .hidden+.button{margin-left:0}.ulf-field-media .ulf--preview{position:relative}.ulf-field-media .ulf--preview .fa-times{position:absolute;z-index:1;right:2px;top:2px;font-size:14px;width:22px;height:22px;line-height:22px;text-align:center;text-decoration:none;color:#fff;background-color:#d33;opacity:.75;border-radius:2px;transition:all .2s}.ulf-field-media .ulf--preview .fa-times:hover{opacity:1}.ulf-field-media .ulf--preview .fa-times:focus{box-shadow:none}.ulf-field-palette .ulf--palette{position:relative;display:inline-block;cursor:pointer;border:2px solid #ddd;margin-right:10px;margin-bottom:10px;user-select:none;-webkit-user-select:none;transition:all .2s}.ulf-field-palette .ulf--palette span{vertical-align:middle;display:inline-block;width:22px;height:60px;line-height:60px;overflow:hidden;text-indent:-999px}.ulf-field-palette .ulf--palette:before{position:absolute;top:0;left:0;text-align:center;font-size:10px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;content:"\f00c";width:16px;height:16px;line-height:14px;opacity:0;color:#fff;background-color:#222;transition:opacity .2s}.ulf-field-palette .ulf--active{border-color:#222;box-shadow:0 0 20px rgba(0,0,0,.2)}.ulf-field-palette .ulf--active:before{opacity:1}.ulf-field-palette input{display:none}.ulf-field-repeater .ulf-field-text input{width:100%}.ulf-field-repeater .ulf-repeater-hidden{display:none!important}.ulf-field-repeater .ulf-repeater-wrapper .ulf-repeater-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.ulf-field-repeater .ulf-repeater-wrapper .ulf-repeater-item h4{font-size:1em}.ulf-field-repeater .ulf-repeater-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.ulf-field-repeater .ulf-repeater-content>.ulf-field{padding:15px}.ulf-field-repeater .ulf-repeater-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.ulf-field-repeater .ulf-repeater-helper i{display:inline-block;cursor:pointer;color:#999;padding:5px}.ulf-field-repeater .ulf-repeater-helper i:hover{color:#555}.ulf-field-repeater .ulf-repeater-helper-inner{width:75px}.ulf-field-repeater .ulf-repeater-alert{display:none;margin-bottom:5px;padding:10px 20px;color:#a94442;border:1px solid #ebccd1;background-color:#f2dede}.ulf-field-repeater .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-repeater .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.ulf-field-repeater .ui-sortable-helper .ulf-repeater-content,.ulf-field-repeater .ui-sortable-helper .ulf-repeater-helper{display:none}.ulf-field-select .ulf-fieldset{min-height:30px}.ulf-field-select .ulf-chosen{display:none}.ulf-field-select select{max-width:100%;margin:0}.ulf-field-slider .ulf--wrap{display:flex;align-items:center}.ulf-field-slider .ulf--input{display:flex}.ulf-field-slider .ulf--unit{display:flex;justify-content:center;flex-direction:column;user-select:none;padding:0 6px;font-size:11px;line-height:1;border-radius:0 4px 4px 0;color:#555;border:1px solid #7e8993;border-left:0;background-color:#f5f5f5}.ulf-field-slider .ulf-slider-ui{margin-right:15px}.ulf-field-slider input[type=number]{position:relative;z-index:1;margin:0;width:50px;text-align:center}.ulf-field-slider .ulf--is-unit{border-top-right-radius:0;border-bottom-right-radius:0}.ulf-field-slider .ui-slider{position:relative;width:100%;height:3px;border:none;background:#ddd;border-radius:2px}.ulf-field-slider .ui-slider-range{height:3px;border:none;background:#333;border-radius:2px}.ulf-field-slider .ui-slider-handle{position:absolute;width:16px;height:16px;top:-7px;margin-left:-8px;border:none;background:#333;border-radius:2px}.ulf-field-slider .ui-slider-handle:hover,.ulf-field-slider .ui-state-active{cursor:pointer;background:#111}.ulf-field-sortable .ulf-field-text input{width:100%;max-width:100%}.ulf-field-sortable .ulf-sortable .ulf-sortable-item{display:table;width:100%;margin-bottom:5px;border:1px solid #eee}.ulf-field-sortable .ulf-sortable .ulf-sortable-item h4{font-size:1em}.ulf-field-sortable .ulf-sortable-content{width:100%;display:table-cell;vertical-align:middle;background-color:#fff}.ulf-field-sortable .ulf-sortable-content>.ulf-field{padding:15px}.ulf-field-sortable .ulf-sortable-helper{width:100%;display:table-cell;vertical-align:middle;text-align:center;font-size:14px;line-height:1em;border-left:1px solid #eee;background-color:#f7f7f7}.ulf-field-sortable .ulf-sortable-helper i{display:inline-block;cursor:pointer;width:50px;color:#555}.ulf-field-sortable .ulf-sortable-helper i:hover{opacity:.5}.ulf-field-sortable .widget-placeholder{height:50px;margin-bottom:3px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-sortable .ui-sortable-helper{height:50px!important;overflow:hidden!important;border-color:#ccc!important;background-color:#eee!important;opacity:.5}.ulf-field-sortable .ui-sortable-helper .ulf-sortable-content,.ulf-field-sortable .ui-sortable-helper .ulf-sortable-helper{display:none}.ulf-field-sorter .ui-sortable-placeholder{height:20px;border:1px dashed #f1c40f;background-color:#fffae4}.ulf-field-sorter .ulf-modules{float:left;width:50%;box-sizing:border-box}.ulf-field-sorter .ulf-modules:first-child{padding-right:15px}.ulf-field-sorter .ulf-modules:last-child{padding-left:15px}.ulf-field-sorter .ulf-disabled,.ulf-field-sorter .ulf-enabled{padding:5px 15px;border:1px dashed #ddd;background-color:#fff}.ulf-field-sorter .ulf-disabled li{opacity:.5;transition:opacity .15s}.ulf-field-sorter .ulf-disabled .ui-sortable-helper{opacity:1}.ulf-field-sorter .ulf-sorter-title{font-size:13px;font-weight:600;padding:10px;text-align:center;border:1px dashed #ddd;border-bottom:none;background-color:#f8f8f8;text-transform:uppercase}.ulf-field-sorter ul{list-style-type:none;margin:0;padding:0;min-height:62px}.ulf-field-sorter ul li{margin:10px 0;padding:10px 15px;cursor:move;font-weight:700;text-align:center;border:1px solid #e5e5e5;background-color:#fafafa;transition:border-color .15s}.ulf-field-sorter ul li:hover{border-color:#bbb}.ulf-field-spinner .ulf--spin{display:flex}.ulf-field-spinner .ui-spinner{display:flex}.ulf-field-spinner .ui-button{display:flex;flex-direction:column;justify-content:center;text-align:center;min-width:20px;padding:0 4px;color:#555;border:1px solid #7e8993;background-color:#f5f5f5}.ulf-field-spinner .ui-spinner-button{cursor:pointer}.ulf-field-spinner .ui-spinner-button:hover{background-color:#e7e7e7}.ulf-field-spinner .ui-spinner-button:active{background-color:#ddd}.ulf-field-spinner .ui-spinner-button:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;line-height:14px}.ulf-field-spinner .ui-spinner-down{order:1;border-right:0;border-radius:4px 0 0 4px}.ulf-field-spinner .ui-spinner-down:before{content:"\f0d9"}.ulf-field-spinner .ui-spinner-input{order:2}.ulf-field-spinner .ulf--unit{order:3;border-left:0;user-select:none}.ulf-field-spinner .ui-spinner-up{order:4;border-left:0;border-radius:0 4px 4px 0}.ulf-field-spinner .ui-spinner-up:before{content:"\f0da"}.ulf-field-spinner input{position:relative;z-index:1;width:50px;text-align:center;margin:0;padding:0 8px;border-radius:0}.ulf-field-spinner .ui-button-icon,.ulf-field-spinner .ui-button-icon-space,.ulf-field-spinner .ui-button-text{display:none}.ulf-field-switcher .ulf--switcher{float:left;cursor:pointer;position:relative;width:60px;height:26px;padding:0;margin:0;overflow:hidden;border-radius:4px;background-color:#ed6f6f;user-select:none;-webkit-user-select:none}.ulf-field-switcher .ulf--ball{position:absolute;top:4px;left:4px;width:24px;height:18px;background-color:#fff;border-radius:4px;transition:all .1s;box-shadow:1px 1px 1px rgba(0,0,0,.15)}.ulf-field-switcher .ulf--off,.ulf-field-switcher .ulf--on{position:absolute;top:0;left:0;right:0;font-size:11px;line-height:26px;font-weight:500;font-style:normal;text-align:center;text-transform:uppercase;color:#fff;padding-right:28px;opacity:0;transition:all .1s}.ulf-field-switcher .ulf--off{padding-right:0;padding-left:28px;opacity:1}.ulf-field-switcher .ulf--active{background:#4fb845}.ulf-field-switcher .ulf--active .ulf--on{opacity:1}.ulf-field-switcher .ulf--active .ulf--off{opacity:0}.ulf-field-switcher .ulf--active .ulf--ball{left:100%;margin-left:-28px}.ulf-field-switcher .ulf--label{float:left;margin-top:4px;margin-left:8px;font-weight:400;color:#999}.ulf-field-switcher input{display:none}.ulf-field-tabbed .ulf-tabbed-content{border:1px solid #ccd0d4;background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-field-tabbed .ulf-tabbed-content>.ulf-field{padding:15px}.ulf-field-tabbed .ulf-tabbed-nav .ulf--icon{padding-right:5px}.ulf-field-tabbed .ulf-tabbed-nav a{display:inline-block;padding:12px 15px;margin-top:1px;margin-right:5px;margin-bottom:-1px;position:relative;text-decoration:none;color:#444;font-weight:600;border:1px solid #ccd0d4;background-color:#f3f3f3;transition:all .2s}.ulf-field-tabbed .ulf-tabbed-nav a:hover{background-color:#f9f9f9}.ulf-field-tabbed .ulf-tabbed-nav a.ulf-tabbed-active{background-color:#fff;border-bottom-color:#fff}.ulf-field-tabbed .ulf-tabbed-nav a:focus{outline:0;box-shadow:none}.ulf-field-text input{width:50%;max-width:100%;margin:0}.ulf-field-textarea textarea{width:100%;max-width:100%;min-height:125px}.ulf-field-textarea .ulf-shortcode-button{margin-bottom:10px;margin-right:5px}.ulf-field-typography select,.ulf-field-typography textarea{margin:0;min-width:100%;max-width:100%}.ulf-field-typography .ulf--title{color:#777;margin:0 0 2px 0;font-size:12px}.ulf-field-typography .ulf--title small{vertical-align:top}.ulf-field-typography .ulf--blocks{display:flex;flex-wrap:wrap}.ulf-field-typography .ulf--block{flex:1;max-width:100%;padding-right:6px;padding-bottom:6px}.ulf-field-typography .ulf--input{margin:0;min-width:100%}.ulf-field-typography .ulf--input-wrap{position:relative}.ulf-field-typography .ulf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.ulf-field-typography .ulf--preview{font-size:16px;line-height:20px;padding:20px;color:#222;border:1px solid #eee;background-color:#fff;border-radius:2.5px;user-select:none;-webkit-user-select:none;transition:background-color .2s,border-color .2s}.ulf-field-typography .ulf--block-preview{cursor:pointer;position:relative;overflow:hidden;margin-top:10px;max-width:100%}.ulf-field-typography .ulf--black-background{border-color:#000;background-color:#000}.ulf-field-typography .ulf--toggle{position:absolute;top:5px;right:10px;color:#999}.ulf-field-typography .ulf--block-extra-styles{margin-top:5px}.ulf-field-upload input{width:100%;margin:0}.ulf-field-upload .ulf--wrap{display:flex;align-items:flex-start}.ulf-field-upload .button{margin-left:5px}.ulf-field-wp_editor .ulf-wp-editor{float:left;width:100%}.ulf-field-wp_editor .mce-toolbar-grp{border:none}.ulf-field-wp_editor .mce-btn.mce-active button,.ulf-field-wp_editor .mce-btn.mce-active i,.ulf-field-wp_editor .mce-btn.mce-active:hover button,.ulf-field-wp_editor .mce-btn.mce-active:hover i{color:#23282d}.ulf-field-wp_editor .wp-media-buttons{position:relative;z-index:2}.ulf-field-wp_editor .wp-editor-tabs{position:relative;z-index:1}.ulf-field-wp_editor .ulf-no-tinymce{border:1px solid #e5e5e5}.ulf-field-wp_editor .ulf-no-quicktags .wp-media-buttons{float:none;display:block}.ulf-field-wp_editor .ulf-no-quicktags .mce-tinymce{box-shadow:none;border:1px solid #e5e5e5}.ulf-field-wp_editor textarea{width:100%;max-width:100%;margin:0;box-shadow:none}.ulf-field-heading{font-size:1.5em;font-weight:700;color:#23282d;background-color:#f5f5f5}.ulf-field-subheading{font-size:14px;font-weight:700;padding-top:17px;padding-bottom:17px;color:#23282d;background-color:#f7f7f7}.ulf-field-submessage{padding:0!important;border:0!important}.ulf-field-submessage+.ulf-field{border-top:0!important}.ulf-submessage{font-size:12px;padding:17px 30px;border-top:1px solid transparent;border-bottom:1px solid transparent}.ulf-submessage-success{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.ulf-submessage-info{color:#31708f;border-color:#bce8f1;background-color:#d9edf7}.ulf-submessage-warning{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.ulf-submessage-danger{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.ulf-submessage-normal{color:#23282d;border-color:#eee;background-color:#f7f7f7}.ulf-field-notice{background-color:#f7f7f7}.ulf-notice{padding:12px;background-color:#fff;border-left-style:solid;border-left-width:4px;box-shadow:0 1px 1px rgba(0,0,0,.1)}.ulf-notice-success{border-color:#46b450}.ulf-notice-info{border-color:#339fd4}.ulf-notice-warning{border-color:#ffbc00}.ulf-notice-danger{border-color:#dc3232}.ulf-notice-normal{border-color:#222}.ulf-field-number input{width:100%;margin:0}.ulf-field-number .ulf--wrap{position:relative;float:left;width:100px}.ulf-field-number .ulf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.ulf-field-link input{display:none}.ulf-field-link .ulf--result{display:inline-block;font-size:12px;line-height:16px;padding:7px 10px;margin-bottom:7px;color:#777;border:1px solid #e5e5e5;background-color:#f5f5f5;border-radius:2px;world-break:break-word}.ulf-field-link .ulf--wrap{position:relative;float:left;width:100px}.ulf-field-link .ulf--unit{position:absolute;z-index:1;right:4px;top:4px;bottom:4px;padding:2px 6px;color:#666;font-size:11px;line-height:1;border-radius:2px;background:#eee;user-select:none;display:flex;justify-content:center;flex-direction:column}.ulf-help{cursor:help;position:absolute;top:0;right:0;padding:5px;font-size:13px;color:#aaa}.ulf-help .ulf-help-text{display:none}.ulf-image-preview{display:inline-block;position:relative;padding:4px;min-width:100px;min-height:100px;line-height:100px;margin-bottom:10px;text-align:center;border-radius:2px;border:1px solid #ccc;background-color:#f9f9f9;box-shadow:0 1px 0 rgba(0,0,0,.08)}.ulf-image-preview img{max-width:100px;max-height:100px;display:inline-block;vertical-align:middle;object-fit:contain}.ulf-field-custom .ulf-field{padding:0}.ulf-field .chosen-container-single .chosen-single{height:28px;line-height:26px}.ulf-field .chosen-container-single .chosen-single abbr{top:0;right:20px;font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.ulf-field .chosen-container-single .chosen-single abbr:before{content:"\f00d"}.ulf-field .chosen-container-single .chosen-single abbr:hover{color:#555}.ulf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:12px;height:100%;width:18px;color:#aaa;text-align:center;background:0 0}.ulf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:before{content:"\f00d";display:inline-block;padding-top:3px}.ulf-field .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover{color:#555}.ulf-field .chosen-container-single .chosen-single div b{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:14px;color:#aaa;background:0 0}.ulf-field .chosen-container-single .chosen-single div b:before{content:"\f107"}.ulf-field .chosen-container-single .chosen-single div b:hover{color:#555}.ulf-field .chosen-container-multi .chosen-choices li.search-choice-placeholder{border:1px dashed #aaa;margin:3px 5px 3px 0}.ulf-field .chosen-container-multi .ui-sortable li.search-choice span{cursor:move}.ulf-field .chosen-container-active.chosen-with-drop .chosen-single div b:before{content:"\f106"}.ulf-field .chosen-container-single .chosen-single-with-deselect span{margin-right:40px}.ulf-field .chosen-container-single .chosen-search input[type=text]{background:0 0}.ulf-field .chosen-container-single .chosen-search:before{font-family:"Font Awesome 5 Pro","Font Awesome 5 Free",FontAwesome;font-weight:900;font-size:11px;content:"\f002";position:absolute;right:12px;top:10px;color:#aaa}.ulf-field .wp-picker-container{display:inline-block}.ulf-field .wp-picker-container .wp-color-result.button{margin-bottom:0}.ulf-field .ulf--transparent-wrap{display:none;position:relative;top:-1px;width:235px;padding:9px 10px;border:1px solid #dfdfdf;border-top:none;background-color:#fff}.ulf-field .wp-picker-active .ulf--transparent-wrap{display:block}.ulf-field .ulf--transparent-slider{position:absolute;width:190px;margin-left:2px;height:18px}.ulf-field .ulf--transparent-slider .ui-slider-handle{position:absolute;top:-3px;bottom:-3px;z-index:5;border-color:#aaa;border-style:solid;border-width:4px 3px;width:10px;height:16px;margin:0 -5px;background:0 0;cursor:ew-resize;opacity:.9;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.ulf-field .ulf--transparent-slider .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.ulf-field .ulf--transparent-offset{height:18px;width:200px;background:url(../images/checkerboard.png) repeat-y center left scroll #fff;border-radius:2px;box-shadow:inset 0 0 5px rgba(0,0,0,.4)}.ulf-field .ulf--transparent-text{position:absolute;top:12px;right:10px;width:30px;font-size:12px;line-height:12px;text-align:center;color:#999}.ulf-field .ulf--transparent-button{cursor:pointer;user-select:none;margin-top:10px;font-size:11px;text-align:center;border-radius:2px;padding:3px 7px;box-shadow:0 1px 0 rgba(0,0,0,.1);letter-spacing:.2px;color:#777;border:1px solid #ccc;background-color:#f7f7f7;transition:background-color .2s,border-color .2s,color .2s}.ulf-field .ulf--transparent-active .wp-color-result{background-image:url(../images/checkerboard.png);background-size:135px;background-position:center left;background-color:transparent!important}.ulf-field .ulf--transparent-active .ulf--transparent-button{color:#fff;border-color:#3ea032;background-color:#4fb845}.ulf-field .ulf--transparent-active .fa:before{content:"\f205"}.ulf-widgets>.ulf-field{position:relative;top:-1px;margin-right:-15px;margin-left:-15px;padding:12px 15px}.ulf-widgets>.ulf-field .ulf-field{margin-left:0;margin-right:0}.ulf-widgets>.ulf-field .ulf-title{float:none;width:100%;margin-bottom:5px}.ulf-widgets>.ulf-field .ulf-fieldset{float:none;width:100%}.ulf-widgets .ulf-field-text input{width:100%}.ulf-widgets .ulf-field-notice .ulf-notice{padding:15px}.control-section .ulf-widgets>.ulf-field{margin-right:-10px;margin-left:-10px;padding:10px 12px}.control-section .ulf-field{padding:0}.control-section .ulf-field .ulf-title{float:none;width:100%;margin-bottom:6px}.control-section .ulf-field .ulf-title h4{display:block;font-size:13px;line-height:1;font-weight:600;color:inherit}.control-section .ulf-field .ulf-fieldset{float:none;width:100%}.control-section .ulf-help{top:-5px;right:-5px}.control-section .ulf-field-select select{width:100%}.control-section .ulf-field-heading{color:inherit;font-size:14px;line-height:1em;margin-right:-15px;margin-left:-15px;padding:15px}.control-section .ulf-field-subheading{color:inherit;font-size:11px;margin-right:-15px;margin-left:-15px;padding:10px 15px}.control-section .ulf-subtitle-text{margin-top:4px;font-size:12px}.control-section .ulf-field-submessage .ulf-submessage{margin-right:-15px;margin-left:-15px;padding:15px}.control-section .ulf-fieldset .ulf-field-heading,.control-section .ulf-fieldset .ulf-field-subheading,.control-section .ulf-fieldset .ulf-field-submessage .ulf-submessage{margin-left:0;margin-right:0}.control-section .ulf-field-date .ulf--to{margin-left:0}.control-section .ulf-field-sorter ul li{padding:5px}.control-section .ulf-field-sorter .ulf-modules{float:none;width:100%}.control-section .ulf-field-sorter .ulf-modules:first-child{padding-right:0;padding-bottom:15px}.control-section .ulf-field-background .ulf--background-attributes{flex-direction:column}.control-section .ulf-field-spacing input{width:90px}.control-section .ulf-field-border .ulf--input{flex:1 50%}.control-section .ulf-field-border input,.control-section .ulf-field-border select{width:100%}.control-section .ulf-field-spinner input{width:50px}.control-section .ulf-field-number .ulf--wrap{width:100%}.control-section .ulf-field-backup .ulf-export-data{display:none}.control-section .ulf-field-fieldset .ulf-fieldset-content{border-color:#e5e5e5}.control-section .ulf-accordion-content>.ulf-field,.control-section .ulf-cloneable-content>.ulf-field,.control-section .ulf-fieldset-content>.ulf-field,.control-section .ulf-repeater-content>.ulf-field,.control-section .ulf-sortable-content>.ulf-field,.control-section .ulf-tabbed-content>.ulf-field{padding:10px}.control-section .ulf-accordion-content>.ulf-field .ulf-title,.control-section .ulf-cloneable-content>.ulf-field .ulf-title,.control-section .ulf-fieldset-content>.ulf-field .ulf-title,.control-section .ulf-repeater-content>.ulf-field .ulf-title,.control-section .ulf-sortable-content>.ulf-field .ulf-title,.control-section .ulf-tabbed-content>.ulf-field .ulf-title{margin-bottom:5px}.control-section .ulf-accordion-content>.ulf-field h4,.control-section .ulf-cloneable-content>.ulf-field h4,.control-section .ulf-fieldset-content>.ulf-field h4,.control-section .ulf-repeater-content>.ulf-field h4,.control-section .ulf-sortable-content>.ulf-field h4,.control-section .ulf-tabbed-content>.ulf-field h4{font-size:12px}.control-section .ulf-depend-hidden.ulf-depend-on{display:none!important}.control-section .ulf-depend-visible.ulf-depend-on{border-top:0!important}.ulf-taxonomy{max-width:95%}.ulf-taxonomy>.ulf-field{border-top:none!important}.ulf-taxonomy>.ulf-field-heading{font-size:1.1em;padding:20px!important;border:1px solid #ddd}.ulf-taxonomy>.ulf-field-subheading{font-size:12px;padding:15px!important;border:1px solid #ddd}.ulf-taxonomy>.ulf-field-submessage .ulf-submessage{padding:15px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.ulf-taxonomy>.ulf-field-notice{background-color:transparent}.ulf-taxonomy .ulf-section-title{display:block;padding:15px;background-color:#f9f9f9;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.ulf-taxonomy-add-fields>.ulf-field{padding:8px 0}.ulf-taxonomy-add-fields>.ulf-field>.ulf-title{float:none;width:100%;padding:2px 2px 4px 0}.ulf-taxonomy-add-fields>.ulf-field>.ulf-title h4{font-size:12px;font-weight:400}.ulf-taxonomy-add-fields>.ulf-field>.ulf-fieldset{float:none;width:100%}.ulf-taxonomy-add-fields>.ulf-field>.ulf-fieldset>.ulf-help{right:-5px}.ulf-taxonomy-add-fields+p.submit{margin-top:0}.ulf-taxonomy-edit-fields>.ulf-field{padding:20px 0}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-title{width:200px}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-fieldset{width:calc(100% - 220px)}.ulf-taxonomy-edit-fields>.ulf-field>.ulf-fieldset>.ulf-help{top:-5px;right:-5px}.ulf-taxonomy-edit-fields>.ulf-field-submessage{margin:20px 0}.ulf-taxonomy-edit-fields>.ulf-field-heading,.ulf-taxonomy-edit-fields>.ulf-field-subheading{margin:20px 0;border:1px solid #ddd}.ulf-nav-menu-options{clear:both;float:left;width:100%}.ulf-nav-menu-options>.ulf-fields{margin-left:-10px;margin-top:10px;margin-bottom:10px;border-top:1px solid #eee;border-bottom:1px solid #eee}.ulf-nav-menu-options>.ulf-fields>.ulf-field{padding:12px 14px 12px 12px}.ulf-nav-menu-options>.ulf-fields>.ulf-field .ulf-title{float:none;width:100%;margin-bottom:5px}.ulf-nav-menu-options>.ulf-fields>.ulf-field .ulf-fieldset{float:none;width:100%}.ulf-nav-menu-options .ulf-field-text input{width:100%}.ulf-nav-menu-options .ulf-field-notice .ulf-notice{padding:15px}.ulf-nav-menu-title{padding:12px 14px 12px 12px;background-color:#f5f5f5;border-top:1px solid #eee;border-bottom:1px solid #eee}.ulf-nav-menu-title:first-child{border-top:0}.ulf-nav-menu-title h4{margin:0;padding:0;color:#23282d}.ulf-nav-menu-icon{margin-right:5px}.ulf-profile-options>h2>.fa{padding-right:7px}.ulf-profile-options>.ulf-field{max-width:750px;padding:15px 0;border-top:none!important}.ulf-profile-options>.ulf-field>.ulf-title{width:200px}.ulf-profile-options>.ulf-field>.ulf-title h4{font-size:14px;font-weight:600;line-height:1.3;display:inline-block;vertical-align:middle}.ulf-profile-options>.ulf-field>.ulf-fieldset{width:calc(100% - 220px)}.ulf-profile-options>.ulf-field>.ulf-fieldset>.ulf-help{top:-15px;right:-5px}.ulf-profile-options>.ulf-field-heading{font-size:1.1em}.ulf-profile-options>.ulf-field-subheading{font-size:12px}.ulf-profile-options>.ulf-field-heading,.ulf-profile-options>.ulf-field-subheading{margin:10px 0;padding:15px!important;border:1px solid #ddd}.ulf-profile-options>.ulf-field-submessage{margin:20px 0}.ulf-profile-options>.ulf-field-submessage .ulf-submessage{padding:10px;border-left-width:1px;border-left-style:solid;border-right-width:1px;border-right-style:solid}.ulf-profile-options>.ulf-field-notice{background-color:transparent}.ulf-modal{position:fixed;z-index:100101;top:0;left:0;width:100%;height:100%}.ulf-modal.hidden{display:none}.ulf-modal-icon{z-index:100102}.ulf-modal-table{display:table;width:100%;height:100%}.ulf-modal-table-cell{display:table-cell;vertical-align:middle;margin:100px 0}.ulf-modal-inner{position:relative;z-index:10;width:760px;height:750px;margin:0 auto;background-color:#fff}.ulf-modal-content{position:relative;overflow:hidden;overflow-y:auto;height:595px}.ulf-modal-content .ulf-shortcode-button{display:none}.ulf-modal-content .ulf-field{padding:15px 30px 15px 15px}.ulf-modal-content a:active,.ulf-modal-content a:focus{outline:0;box-shadow:none}.ulf-modal-content h4{font-size:13px}.ulf-modal-content h4 small{font-style:italic;font-weight:400;color:#aaa}.ulf-modal-title{position:relative;background-color:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:16px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.ulf-modal-header{width:100%;padding:14px 0;background-color:#f5f5f5;border-bottom:1px solid #ddd}.ulf-modal-header select{display:block;width:250px;margin:0 auto;font-size:13px;line-height:1;height:30px;min-height:30px;background-color:#fff}.ulf-modal-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}.ulf-modal-close:before{font:normal 20px/36px dashicons;content:"\f158";vertical-align:top;width:36px;height:36px}.ulf-modal-close:hover{opacity:.5}.ulf-modal-insert-wrapper{text-align:center;width:100%;padding:15px 0;background-color:#f5f5f5;border-top:1px solid #ddd}.ulf-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;opacity:.5}.ulf--repeatable{padding:15px 15px 0 15px}.ulf--repeat-button-block{text-align:center;padding-bottom:15px}.ulf--repeat-shortcode{position:relative;margin-bottom:15px;border:1px dashed #ddd}.ulf--repeat-shortcode:first-child .ulf-repeat-remove{display:none}.ulf--repeat-shortcode .ulf-repeat-remove{position:absolute;right:10px;top:10px;z-index:10;cursor:pointer;display:inline-block;font-size:11px;width:18px;height:18px;line-height:18px;text-align:center;border-radius:2px;color:#fff;background-color:#e14d43;opacity:.5}.ulf--repeat-shortcode .ulf-repeat-remove:hover{opacity:.5}.ulf-shortcode-single .ulf-modal-inner{height:750px}.ulf-shortcode-single .ulf-modal-content{height:652px}.elementor-editor-active .ulf-shortcode-button{margin-left:5px}.elementor-editor-active .ulf-modal .hidden{display:none!important}.ulf-shortcode-block{text-align:center;padding:14px;font-size:13px;background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.ulf-shortcode-block .components-button{margin-bottom:10px}.ulf-modal-icon .ulf-icon-title{padding:15px 0;margin:4px;font-size:14px;font-weight:700;text-align:center;border:1px solid #eee;background-color:#f7f7f7}.ulf-modal-icon .ulf-modal-header{text-align:center}.ulf-modal-icon .ulf-icon-search{width:50%;height:40px;line-height:40px}.ulf-modal-icon i{cursor:pointer;display:inline-block;margin:4px;width:35px;height:35px;line-height:35px;font-size:16px;color:#555;text-align:center;border:1px solid #ccc;background-color:#f7f7f7;border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,.05)}.ulf-modal-icon i:hover{color:#fff;border-color:#222;background-color:#222}.ulf-modal-icon .ulf-modal-content{padding:10px;height:618px}.ulf-modal-icon .ulf-error-text{padding:10px}.ulf-modal-loading{display:none;position:absolute;left:15px;top:15px}.ulf-loading{position:relative;width:20px;height:20px;background:#ccc;border-radius:20px;box-shadow:0 2px 5px rgba(0,0,0,.07)}.ulf-loading:after{position:absolute;top:50%;left:50%;width:4px;height:4px;content:"";margin-top:-2px;margin-left:-2px;background-color:#fff;animation-duration:.5s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:ulfLoader;border-radius:4px}@keyframes ulfLoader{0%{transform:rotate(0) translateX(-6px) rotate(0)}100%{transform:rotate(360deg) translateX(-6px) rotate(-360deg)}}.ulf-subtitle-text{margin-top:6px;font-weight:400;color:#999}.ulf-desc-text{clear:both;float:left;width:100%;margin-top:6px;font-weight:400;color:#999}.ulf-error-text{margin-top:6px;color:#d02c21}.ulf-before-text{margin-bottom:6px}.ulf-after-text{margin-top:6px}.ulf-metabox-hide{display:none!important}.ulf-metabox-show{display:block!important}.ulf-depend-hidden.ulf-depend-on{display:none}.ulf-depend-visible.ulf-depend-on{display:block;opacity:.75;filter:grayscale(1);user-select:none;border-top:1px solid #eee}.ulf-depend-visible.ulf-depend-on .clear:before{content:"";left:0;top:0;right:0;bottom:0;position:absolute;background-color:#eee;opacity:.25;z-index:10}.ulf-warning-primary{color:#fff!important;border-color:#dc3545!important;background:#dc3545!important}.ulf-warning-primary:focus,.ulf-warning-primary:hover{border-color:#bd2130!important;background:#bd2130!important}.ulf-warning-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #bd2130!important}.ulf-warning-primary:active{border-color:#bd2130!important;background:#bd2130!important}.ulf-form-result{display:none;float:left;padding:0 8px;margin-right:4px;font-size:11px;line-height:30px;user-select:none;border-radius:2px}.ulf-form-show{display:block}.ulf-form-success{color:#fff;background-color:#46b450}.ulf-form-warning{color:#8a6d3b;background-color:#faebcc}.ulf-label-error{position:relative;top:-2px;display:inline-block;font-size:10px;line-height:10px;height:10px;width:10px;padding:1px;font-style:normal;text-align:center;color:#fff;vertical-align:middle;background-color:#e10000;border-radius:2px}.ulf-no-option{padding:30px}.ulf-input-number{-moz-appearance:textfield}.ulf-input-number::-webkit-inner-spin-button,.ulf-input-number::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ulf-fa5-shims .ulf .fab,.ulf-fa5-shims .ulf .far,.ulf-fa5-shims .ulf .fas{font-family:FontAwesome;font-style:normal}.ulf-welcome-wrap{position:relative;margin:25px 40px 0 20px;font-size:15px;max-width:1200px}.ulf-welcome-wrap p{font-size:14px;line-height:1.5}.ulf-welcome-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.ulf-welcome-wrap .ulf-logo{position:absolute;overflow:hidden;top:0;right:0;height:160px;width:140px;background-image:linear-gradient(45deg,#2d67cb,#ad19f3);box-shadow:0 1px 4px rgba(0,0,0,.25),inset 0 0 0 4px rgba(0,0,0,.25)}.ulf-welcome-wrap .ulf-logo .ulf--effects i{position:absolute;width:200px;height:100px;background-color:rgba(0,0,0,.15);transform:rotate(-45deg)}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(1){bottom:-20px;right:-70px}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(2){bottom:-35px;right:-80px}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(3){bottom:-50px;right:-90px}.ulf-welcome-wrap .ulf-logo .ulf--effects i:nth-child(4){bottom:-65px;right:-100px}.ulf-welcome-wrap .ulf-logo .ulf--wp-logos{position:relative;padding-top:25px;text-align:center}.ulf-welcome-wrap .ulf-logo .ulf--wp-logo{position:absolute;left:20px;width:20px;height:20px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-logo.svg)}.ulf-welcome-wrap .ulf-logo .ulf--wp-plugin-logo{display:inline-block;width:50px;height:50px;border:3px solid #fff;background-size:40px;background-repeat:no-repeat;background-position:center center;background-image:url(../images/wp-plugin-logo.svg);border-radius:100%;vertical-align:middle}.ulf-welcome-wrap .ulf-logo .ulf--text{position:absolute;left:0;right:0;top:90px;color:#fff;font-size:13px;line-height:1.2em;font-weight:600;text-align:center;text-transform:uppercase;text-shadow:1px 1px 0 rgba(0,0,0,.25)}.ulf-welcome-wrap .ulf-logo .ulf--version{top:auto;left:auto;right:8px;bottom:4px;font-size:11px;text-transform:lowercase}.ulf-welcome-wrap .ulf-about-text{font-weight:400;line-height:1.6em;font-size:19px;margin:1em 200px 1em 0;color:#555d66}.ulf-welcome-wrap .ulf-demo-button{margin:1em 200px 2em 0}.ulf-welcome-wrap .nav-tab-wrapper{margin-bottom:20px}.ulf-welcome-wrap ul{list-style-type:disc;padding-left:15px}.ulf-welcome-wrap .ulf--col{float:left;padding-right:20px;box-sizing:border-box}.ulf-welcome-wrap .ulf--col-2{width:50%}.ulf-welcome-wrap .ulf--col-3{width:33.333%}.ulf-welcome-wrap .ulf--col-4{width:25%}.ulf-welcome-wrap .ulf--col-5{width:20%}.ulf-welcome-wrap .ulf--col-last{padding-right:0}.ulf-welcome-wrap .ulf--col-upgrade{padding:10px 0;text-align:center;border-top:1px solid #e5e5e5}.ulf--table-compare tfoot td,.ulf--table-compare thead td{text-align:center}.ulf--table-compare td{font-size:14px;text-align:center;vertical-align:middle;padding:10px}.ulf--table-compare td:first-child{text-align:left}.ulf--table-compare tfoot td{padding:15px 0}.ulf--table-compare .fa{font-size:18px}.ulf--table-compare .fa-check-circle{color:#46b450}.ulf--table-compare .fa-times-circle{color:#dc3232}.ulf-welcome-cols{clear:both;margin:20px 0;background-color:#fff;padding:0 0;border-radius:2px;border:1px solid #e5e5e5}.ulf-welcome-cols .ulf--col{width:33.333%;float:left;padding:20px;text-align:center;box-sizing:border-box;min-height:200px;border-right:1px solid #e5e5e5}.ulf-welcome-cols .ulf--block,.ulf-welcome-cols .ulf--left{float:left;width:20%;padding:0 30px;text-align:center;box-sizing:border-box}.ulf-welcome-cols .ulf--block{width:80%}.ulf-welcome-cols .ulf--col-first{border-bottom:1px solid #e5e5e5}.ulf-welcome-cols .ulf--last{border-right:none}.ulf-welcome-cols .ulf--space{height:20px}.ulf-welcome-cols .ulf--icon{display:inline-block;font-size:20px;width:30px;height:30px;line-height:30px;text-align:center;margin-bottom:10px;color:#fff;background-color:#555;border-radius:30px}.ulf-welcome-cols .ulf--active{background-color:#5cb85c}.ulf-welcome-cols .ulf--deactive{background-color:#e14d43}.ulf-welcome-cols .ulf--title{font-weight:700;display:block}.ulf-welcome-cols p:last-child{margin-bottom:0}.ulf-features-cols .ulf--key-features{width:30%}.ulf-features-cols .ulf--available-fields{width:70%}.ulf-code-block{margin:20px 0;padding:5px 20px;background-color:#fff;border-radius:2px;box-shadow:0 1px 1px rgba(0,0,0,.15)}.ulf-code-block pre{font-size:13px;color:#0073aa}.ulf-code-block pre span{color:#999}.ulf--table-fields td{font-size:14px}.ulf--upgrade a{color:#5cb85c;font-weight:700}.ulf--upgrade a:focus,.ulf--upgrade a:hover{color:#4aa14a;outline:0;box-shadow:none}@media only screen and (max-width:782px){.ulf-welcome-cols .ulf--col{width:100%;min-height:auto;border-right:none;border-bottom:1px solid #e5e5e5}.ulf-features-cols .ulf--key-features{width:100%}.ulf-features-cols .ulf--available-fields{width:100%}}@media only screen and (max-width:1200px){.ulf-metabox .ulf-field .ulf-title{float:none;width:100%;margin-bottom:10px}.ulf-metabox .ulf-field .ulf-fieldset{float:none;width:100%}}@media only screen and (max-width:782px){.ulf-header-inner{text-align:center}.ulf-header-inner h1{width:100%;margin-bottom:10px}.ulf-form-result{float:none;margin-right:0;margin-bottom:10px}.ulf-header-left,.ulf-header-right,.ulf-search{width:100%}.ulf-search{text-align:center;margin-bottom:15px}.ulf-footer{text-align:center}.ulf-buttons{float:none}.ulf-copyright{float:none;margin-top:10px}.ulf-expand-all,.ulf-nav,.ulf-nav-background,.ulf-reset-section{display:none!important}.ulf-nav-normal+.ulf-content{margin-left:0}.ulf-section,.ulf-section-title{display:block!important}.ulf-field .ulf-title{float:none;width:100%;margin-bottom:10px}.ulf-field .ulf-fieldset{float:none;width:100%}.ulf-field-color .button.wp-picker-clear{padding:0 8px;line-height:2.14285714;min-height:32px}.ulf-modal-inner{width:350px;height:400px}.ulf-modal-content{height:237px}.ulf-icon-dialog .ulf-modal-inner{width:305px;height:380px}.ulf-icon-dialog .ulf-modal-content{height:267px}.ulf-modal-icon .ulf-modal-inner{width:330px;height:385px}.ulf-modal-icon .ulf-modal-content{height:252px}.ulf-profile-options>.ulf-field>.ulf-title,.ulf-taxonomy-edit-fields>.ulf-field>.ulf-title{float:none;width:100%;margin-bottom:10px}.ulf-profile-options>.ulf-field>.ulf-fieldset,.ulf-taxonomy-edit-fields>.ulf-field>.ulf-fieldset{float:none;width:100%}.ulf-nav-menu-options>.ulf-fields{margin-left:-10px;margin-right:-10px}.ulf-nav-menu-options>.ulf-fields>.ulf-field{padding:10px}}.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;user-select:none}.chosen-container *{box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto;clip-path:none}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .group-name:after{content:":";padding-left:2px;vertical-align:top}.chosen-container-single .chosen-single{position:relative;display:block;overflow:hidden;padding:0 0 0 8px;height:25px;border:1px solid #aaa;border-radius:5px;background-color:#fff;background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);color:#444;text-decoration:none;white-space:nowrap;line-height:24px}.chosen-container-single .chosen-default{color:#999}.chosen-container-single .chosen-single span{display:block;overflow:hidden;margin-right:26px;text-overflow:ellipsis;white-space:nowrap}.chosen-container-single .chosen-single-with-deselect span{margin-right:38px}.chosen-container-single .chosen-single abbr{position:absolute;top:6px;right:26px;display:block;width:12px;height:12px;font-size:1px}.chosen-container-single .chosen-single div{position:absolute;top:0;right:0;display:block;width:18px;height:100%}.chosen-container-single .chosen-single div b{display:block;width:100%;height:100%}.chosen-container-single .chosen-search{position:relative;z-index:1010;margin:0;padding:3px 4px;white-space:nowrap}.chosen-container-single .chosen-search input[type=text]{margin:1px 0;padding:4px 20px 4px 5px;width:100%;height:auto;outline:0;border:1px solid #aaa;font-size:1em;font-family:sans-serif;line-height:normal;border-radius:0}.chosen-container-single .chosen-drop{margin-top:-1px;border-radius:0 0 4px 4px;background-clip:padding-box}.chosen-container-single.chosen-container-single-nosearch .chosen-search{position:absolute;clip:rect(0,0,0,0);clip-path:inset(100% 100%)}.chosen-container .chosen-results{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0 4px 4px 0;padding:0 0 0 4px;max-height:240px;-webkit-overflow-scrolling:touch}.chosen-container .chosen-results li{display:none;margin:0;padding:5px 6px;list-style:none;line-height:15px;word-wrap:break-word;-webkit-touch-callout:none}.chosen-container .chosen-results li.active-result{display:list-item;cursor:pointer}.chosen-container .chosen-results li.disabled-result{display:list-item;color:#ccc;cursor:default}.chosen-container .chosen-results li.highlighted{background-color:#3875d7;background-image:linear-gradient(#3875d7 20%,#2a62bc 90%);color:#fff}.chosen-container .chosen-results li.no-results{color:#777;display:list-item;background:#f4f4f4}.chosen-container .chosen-results li.group-result{display:list-item;font-weight:700;cursor:default}.chosen-container .chosen-results li.group-option{padding-left:15px}.chosen-container .chosen-results li em{font-style:normal;text-decoration:underline}.chosen-container-multi .chosen-choices{position:relative;overflow:hidden;margin:0;padding:0 5px;width:100%;height:auto;border:1px solid #aaa;background-color:#fff;background-image:linear-gradient(#eee 1%,#fff 15%);cursor:text}.chosen-container-multi .chosen-choices li{float:left;list-style:none}.chosen-container-multi .chosen-choices li.search-field{margin:0;padding:0;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-field input[type=text]{margin:1px 0;padding:0;outline:0;border:0!important;background:0 0!important;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px;height:25px;min-height:25px}.chosen-container-multi .chosen-choices li.search-choice{position:relative;margin:3px 5px 3px 0;padding:3px 20px 3px 6px;border:1px solid #aaa;max-width:100%;border-radius:3px;background-color:#eee;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);color:#333;line-height:13px;cursor:default}.chosen-container-multi .chosen-choices li.search-choice span{word-wrap:break-word;white-space:nowrap}.chosen-container-multi .chosen-choices li.search-choice .search-choice-close{position:absolute;top:0;right:0;display:block;width:12px;height:12px;font-size:1px}.chosen-container-multi .chosen-choices li.search-choice-disabled{padding-right:5px;border:1px solid #ccc;background-color:#e4e4e4;background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);color:#666}.chosen-container-multi .chosen-choices li.search-choice-focus{background:#d4d4d4}.chosen-container-multi .chosen-results{margin:0;padding:0}.chosen-container-multi .chosen-drop .result-selected{display:list-item;color:#ccc;cursor:default}.chosen-container-active .chosen-single{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:linear-gradient(#eee 20%,#fff 80%);box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active .chosen-choices{border:1px solid #5897fb;box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active .chosen-choices li.search-field input[type=text]{color:#222!important}.chosen-disabled{opacity:.5!important;cursor:default}.chosen-disabled .chosen-single{cursor:default}.chosen-disabled .chosen-choices .search-choice .search-choice-close{cursor:default}.chosen-rtl{text-align:right}.chosen-rtl .chosen-single{overflow:visible;padding:0 8px 0 0}.chosen-rtl .chosen-single span{margin-right:0;margin-left:26px;direction:rtl}.chosen-rtl .chosen-single-with-deselect span{margin-left:38px}.chosen-rtl .chosen-single div{right:auto;left:3px}.chosen-rtl .chosen-single abbr{right:auto;left:26px}.chosen-rtl .chosen-choices li{float:right}.chosen-rtl .chosen-choices li.search-field input[type=text]{direction:rtl}.chosen-rtl .chosen-choices li.search-choice{margin:3px 5px 3px 0;padding:3px 5px 3px 19px}.chosen-rtl .chosen-choices li.search-choice .search-choice-close{right:auto;left:4px}.chosen-rtl.chosen-container-single .chosen-results{margin:0 0 4px 4px;padding:0 4px 0 0}.chosen-rtl .chosen-results li.group-option{padding-right:15px;padding-left:0}.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div{border-right:none}.chosen-rtl .chosen-search input[type=text]{padding:4px 5px 4px 20px;direction:rtl}
|
admin/settings/assets/js/main.js
CHANGED
@@ -1303,6 +1303,8 @@
|
|
1303 |
thumbnail = attributes.sizes.thumbnail.url;
|
1304 |
} else if ( typeof attributes.sizes !== 'undefined' && typeof attributes.sizes.full !== 'undefined' ) {
|
1305 |
thumbnail = attributes.sizes.full.url;
|
|
|
|
|
1306 |
} else {
|
1307 |
thumbnail = attributes.icon;
|
1308 |
}
|
@@ -1578,7 +1580,7 @@
|
|
1578 |
|
1579 |
var $this = $(this),
|
1580 |
$input = $this.find('input'),
|
1581 |
-
$inited = $this.find('.ui-
|
1582 |
data = $input.data();
|
1583 |
|
1584 |
if ( $inited.length ) {
|
1303 |
thumbnail = attributes.sizes.thumbnail.url;
|
1304 |
} else if ( typeof attributes.sizes !== 'undefined' && typeof attributes.sizes.full !== 'undefined' ) {
|
1305 |
thumbnail = attributes.sizes.full.url;
|
1306 |
+
} else if ( attributes.url.split('.').pop().toLowerCase() === 'svg' ) {
|
1307 |
+
thumbnail = attributes.url;
|
1308 |
} else {
|
1309 |
thumbnail = attributes.icon;
|
1310 |
}
|
1580 |
|
1581 |
var $this = $(this),
|
1582 |
$input = $this.find('input'),
|
1583 |
+
$inited = $this.find('.ui-button'),
|
1584 |
data = $input.data();
|
1585 |
|
1586 |
if ( $inited.length ) {
|
admin/settings/assets/js/main.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
/* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.
|
2 |
|
3 |
-
!function(I,_,b,y){"use strict";var T=T||{};T.funcs={},T.vars={onloaded:!1,$body:I("body"),$window:I(_),$document:I(b),$form_warning:null,is_confirm:!1,form_modified:!1,code_themes:[],is_rtl:I("body").hasClass("rtl")},T.helper={uid:function(e){return(e||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(e){return(e+"").replace(/(\[|\])/g,"\\$1")},name_nested_replace:function(e,t){var n=new RegExp(T.helper.preg_quote(t+"[\\d+]"),"g");e.find(":radio").each(function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)}),e.each(function(e){I(this).find(":input").each(function(){this.name=this.name.replace(n,t+"["+e+"]"),this.orginal_checked&&(this.checked=!0)})})},debounce:function(i,s,a){var c;return function(){var e=this,t=arguments,n=a&&!c;clearTimeout(c),c=setTimeout(function(){c=null,a||i.apply(e,t)},s),n&&i.apply(e,t)}}},I.fn.ulf_clone=function(){for(var e=I.fn.clone.apply(this,arguments),t=this.find("select").add(this.filter("select")),n=e.find("select").add(e.filter("select")),i=0;i<t.length;++i)for(var s=0;s<t[i].options.length;++s)!0===t[i].options[s].selected&&(n[i].options[s].selected=!0);return this.find(":radio").each(function(){this.orginal_checked=this.checked}),e},I.fn.ulf_expand_all=function(){return this.each(function(){I(this).on("click",function(e){e.preventDefault(),I(".ulf-wrapper").toggleClass("ulf-show-all"),I(".ulf-section").ulf_reload_script(),I(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")})})},I.fn.ulf_nav_options=function(){return this.each(function(){var s,a=I(this).find("a");I(_).on("hashchange ulf.hashchange",function(){var e=_.location.hash.replace("#tab=",""),t=e||a.first().attr("href").replace("#tab=",""),n=I('[data-tab-id="'+t+'"]');if(n.length){n.closest(".ulf-tab-item").addClass("ulf-tab-expanded").siblings().removeClass("ulf-tab-expanded"),n.next().is("ul")&&(t=(n=n.next().find("li").first().find("a")).data("tab-id")),a.removeClass("ulf-active"),n.addClass("ulf-active"),s&&s.addClass("hidden");var i=I('[data-section-id="'+t+'"]');i.removeClass("hidden"),i.ulf_reload_script(),I(".ulf-section-id").val(i.index()+1),s=i}}).trigger("ulf.hashchange")})},I.fn.ulf_nav_metabox=function(){return this.each(function(){var s,e=I(this),a=e.find("a"),c=e.parent().find(".ulf-section");a.each(function(i){I(this).on("click",function(e){e.preventDefault();var t=I(this);a.removeClass("ulf-active"),t.addClass("ulf-active"),s!==y&&s.addClass("hidden");var n=c.eq(i);n.removeClass("hidden"),n.ulf_reload_script(),s=n})}),a.first().trigger("click")})},I.fn.ulf_page_templates=function(){this.length&&I(b).on("change",".editor-page-attributes__template select, #page_template",function(){var e=I(this).val()||"default";I(".ulf-page-templates").removeClass("ulf-metabox-show").addClass("ulf-metabox-hide"),I(".ulf-page-"+e.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"-")).removeClass("ulf-metabox-hide").addClass("ulf-metabox-show")})},I.fn.ulf_post_formats=function(){this.length&&I(b).on("change",'.editor-post-format select, #formatdiv input[name="post_format"]',function(){var e=I(this).val()||"default";e="0"===e?"default":e,I(".ulf-post-formats").removeClass("ulf-metabox-show").addClass("ulf-metabox-hide"),I(".ulf-post-format-"+e).removeClass("ulf-metabox-hide").addClass("ulf-metabox-show")})},I.fn.ulf_search=function(){return this.each(function(){I(this).find("input").on("change keyup",function(){var n=I(this).val(),e=I(".ulf-wrapper"),t=e.find(".ulf-section").find("> .ulf-field:not(.ulf-depend-on)"),i=t.find("> .ulf-title, .ulf-search-tags");3<n.length?(t.addClass("ulf-metabox-hide"),e.addClass("ulf-search-all"),i.each(function(){var e=I(this);if(e.text().match(new RegExp(".*?"+n+".*?","i"))){var t=e.closest(".ulf-field");t.removeClass("ulf-metabox-hide"),t.parent().ulf_reload_script()}})):(t.removeClass("ulf-metabox-hide"),e.removeClass("ulf-search-all"))})})},I.fn.ulf_sticky=function(){return this.each(function(){var i=I(this),e=I(_),s=i.find(".ulf-header-inner"),a=parseInt(s.css("padding-left"))+parseInt(s.css("padding-right")),c=0,r=!1,t=function(){r||requestAnimationFrame(function(){var e,t,n;e=i.offset().top,t=Math.max(32,e-c),n=Math.max(b.documentElement.clientWidth,_.innerWidth||0),t<=32&&782<n?(s.css({width:i.outerWidth()-a}),i.css({height:i.outerHeight()}).addClass("ulf-sticky")):(s.removeAttr("style"),i.removeAttr("style").removeClass("ulf-sticky")),r=!1}),r=!0},n=function(){c=e.scrollTop(),t()};e.on("scroll resize",n),n()})},I.fn.ulf_dependency=function(){return this.each(function(){var e=I(this),t=e.children("[data-controller]");if(t.length){var n=I.ulf_deps.createRuleset(),i=I.ulf_deps.createRuleset(),f=[],l=[];t.each(function(){var s=I(this),e=s.data("controller").split("|"),a=s.data("condition").split("|"),c=s.data("value").toString().split("|"),r=!!s.data("depend-global"),o=r?i:n;I.each(e,function(e,t){var n=c[e]||"",i=a[e]||a[0];(o=o.createRule('[data-depend-id="'+t+'"]',i,n)).include(s),r?l.push(t):f.push(t)})}),f.length&&I.ulf_deps.enable(e,n,f),l.length&&I.ulf_deps.enable(T.vars.$body,i,l)}})},I.fn.ulf_field_accordion=function(){return this.each(function(){I(this).find(".ulf-accordion-title").on("click",function(){var e=I(this),t=e.find(".ulf-accordion-icon"),n=e.next();t.hasClass("fa-angle-right")?t.removeClass("fa-angle-right").addClass("fa-angle-down"):t.removeClass("fa-angle-down").addClass("fa-angle-right"),n.data("opened")||(n.ulf_reload_script(),n.data("opened",!0)),n.toggleClass("ulf-accordion-open")})})},I.fn.ulf_field_backup=function(){return this.each(function(){if(_.wp.customize!==y){var t=this,n=I(this),i=(I("body"),n.find(".ulf-import")),s=n.find(".ulf-reset");t.notificationOverlay=function(){wp.customize.notifications&&wp.customize.OverlayNotification&&(wp.customize.state("saved").get()||(wp.customize.state("changesetStatus").set("trash"),wp.customize.each(function(e){e._dirty=!1}),wp.customize.state("saved").set(!0)),wp.customize.notifications.add(new wp.customize.OverlayNotification("ulf_field_backup_notification",{type:"default",message:" ",loading:!0})))},s.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("ulf-reset",{unique:s.data("unique"),nonce:s.data("nonce")}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("ulf_field_backup_notification")}))}),i.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("ulf-import",{unique:i.data("unique"),nonce:i.data("nonce"),data:n.find(".ulf-import-data").val()}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("ulf_field_backup_notification")}))})}})},I.fn.ulf_field_background=function(){return this.each(function(){I(this).find(".ulf--background-image").ulf_reload_script()})},I.fn.ulf_field_code_editor=function(){return this.each(function(){if("function"==typeof CodeMirror){var t=I(this),i=t.find("textarea"),e=t.find(".CodeMirror"),s=i.data("editor");e.length&&e.remove();var a=setInterval(function(){if(t.is(":visible")){var n=CodeMirror.fromTextArea(i[0],s);if("default"!==s.theme&&-1===T.vars.code_themes.indexOf(s.theme)){var e=I("<link>");I("#ulf-codemirror-css").after(e),e.attr({rel:"stylesheet",id:"ulf-codemirror-"+s.theme+"-css",href:s.cdnURL+"/theme/"+s.theme+".min.css",type:"text/css",media:"all"}),T.vars.code_themes.push(s.theme)}CodeMirror.modeURL=s.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(n,s.mode),n.on("change",function(e,t){i.val(n.getValue()).trigger("change")}),clearInterval(a)}})}})},I.fn.ulf_field_date=function(){return this.each(function(){var e=I(this),i=e.find("input"),s=e.find(".ulf-date-settings").data("settings"),t={showAnim:"",beforeShow:function(e,t){I(t.dpDiv).addClass("ulf-datepicker-wrapper")},onClose:function(e,t){I(t.dpDiv).removeClass("ulf-datepicker-wrapper")}};s=I.extend({},s,t),2===i.length&&(s=I.extend({},s,{onSelect:function(e){I(this),i.first();var t=i.first().attr("id")===I(this).attr("id")?"minDate":"maxDate",n=I.datepicker.parseDate(s.dateFormat,e);i.not(this).datepicker("option",t,n)}})),i.each(function(){var e=I(this);e.hasClass("hasDatepicker")&&e.removeAttr("id").removeClass("hasDatepicker"),e.datepicker(s)})})},I.fn.ulf_field_fieldset=function(){return this.each(function(){I(this).find(".ulf-fieldset-content").ulf_reload_script()})},I.fn.ulf_field_gallery=function(){return this.each(function(){var a,e=I(this),c=e.find(".ulf-edit-gallery"),r=e.find(".ulf-clear-gallery"),o=e.find("ul"),f=e.find("input");e.find("img");e.on("click",".ulf-button, .ulf-edit-gallery",function(e){var t=I(this),n=f.val(),i=t.hasClass("ulf-edit-gallery")?"edit":"add",s="add"!==i||n.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&("gallery"===s?(a=_.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(a=_.wp.media.gallery.edit('[gallery ids="'+n+'"]'),"add"===i&&a.setState("gallery-library")),a.on("update",function(e){o.empty();var t=e.models.map(function(e){var t=e.toJSON(),n=t.sizes&&t.sizes.thumbnail&&t.sizes.thumbnail.url?t.sizes.thumbnail.url:t.url;return o.append('<li><img src="'+n+'"></li>'),t.id});f.val(t.join(",")).trigger("change"),r.removeClass("hidden"),c.removeClass("hidden")}))}),r.on("click",function(e){e.preventDefault(),o.empty(),f.val("").trigger("change"),r.addClass("hidden"),c.addClass("hidden")})})},I.fn.ulf_field_group=function(){return this.each(function(){var e=I(this),t=e.children(".ulf-fieldset"),n=t.length?t:e,r=n.children(".ulf-cloneable-wrapper"),i=n.children(".ulf-cloneable-hidden"),o=n.children(".ulf-cloneable-max"),f=n.children(".ulf-cloneable-min"),l=r.data("field-id"),d=Boolean(Number(r.data("title-number"))),h=parseInt(r.data("max")),s=parseInt(r.data("min"));r.hasClass("ui-accordion")&&r.find(".ui-accordion-header-icon").remove();var p=function(e){e.find(".ulf-cloneable-title-number").each(function(e){I(this).html(I(this).closest(".ulf-cloneable-item").index()+1+".")})};r.accordion({header:"> .ulf-cloneable-item > .ulf-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"ulf-cloneable-header-icon fas fa-angle-right",activeHeader:"ulf-cloneable-header-icon fas fa-angle-down"},activate:function(e,t){var n=t.newPanel,i=t.newHeader;if(n.length&&!n.data("opened")){var s=n.children().first().find(":input").first(),a=i.find(".ulf-cloneable-value");s.on("change keyup",function(e){a.text(s.val())}),n.ulf_reload_script(),n.data("opened",!0),n.data("retry",!1)}else n.data("retry")&&(n.ulf_reload_script_retry(),n.data("retry",!1))}}),r.sortable({axis:"y",handle:".ulf-cloneable-title,.ulf-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(e,t){r.accordion({active:!1}),r.sortable("refreshPositions"),t.item.children(".ulf-cloneable-content").data("retry",!0)},update:function(e,t){T.helper.name_nested_replace(r.children(".ulf-cloneable-item"),l),r.ulf_customizer_refresh(),d&&p(r)}}),n.children(".ulf-cloneable-add").on("click",function(e){e.preventDefault();var t=r.children(".ulf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=i.ulf_clone(!0);n.removeClass("ulf-cloneable-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(l+"[0]",l+"["+t+"]")}),r.append(n),r.accordion("refresh"),r.accordion({active:t}),r.ulf_customizer_refresh(),r.ulf_customizer_listen({closest:!0}),d&&p(r)}});var a=function(e){e.preventDefault();var t=r.children(".ulf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=I(this).parent().parent(),i=n.children(".ulf-cloneable-helper").ulf_clone(!0),s=n.children(".ulf-cloneable-title").ulf_clone(),a=n.children(".ulf-cloneable-content").ulf_clone(),c=I('<div class="ulf-cloneable-item" />');c.append(i),c.append(s),c.append(a),r.children().eq(n.index()).after(c),T.helper.name_nested_replace(r.children(".ulf-cloneable-item"),l),r.accordion("refresh"),r.ulf_customizer_refresh(),r.ulf_customizer_listen({closest:!0}),d&&p(r)}};r.children(".ulf-cloneable-item").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-clone",a),n.children(".ulf-cloneable-hidden").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-clone",a);var c=function(e){e.preventDefault();var t=r.children(".ulf-cloneable-item").length;o.hide(),f.hide(),s&&t-1<s?f.show():(I(this).closest(".ulf-cloneable-item").remove(),T.helper.name_nested_replace(r.children(".ulf-cloneable-item"),l),r.ulf_customizer_refresh(),d&&p(r))};r.children(".ulf-cloneable-item").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-remove",c),n.children(".ulf-cloneable-hidden").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-remove",c)})},I.fn.ulf_field_icon=function(){return this.each(function(){var n=I(this);n.on("click",".ulf-icon-add",function(e){e.preventDefault();var t=I(this),i=I("#ulf-modal-icon");i.removeClass("hidden"),T.vars.$icon_target=n,T.vars.icon_modal_loaded||(i.find(".ulf-modal-loading").show(),_.wp.ajax.post("ulf-get-icons",{nonce:t.data("nonce")}).done(function(e){i.find(".ulf-modal-loading").hide(),T.vars.icon_modal_loaded=!0;var n=i.find(".ulf-modal-load").html(e.content);n.on("click","i",function(e){e.preventDefault();var t=I(this).attr("title");T.vars.$icon_target.find(".ulf-icon-preview i").removeAttr("class").addClass(t),T.vars.$icon_target.find(".ulf-icon-preview").removeClass("hidden"),T.vars.$icon_target.find(".ulf-icon-remove").removeClass("hidden"),T.vars.$icon_target.find("input").val(t).trigger("change"),i.addClass("hidden")}),i.on("change keyup",".ulf-icon-search",function(){var t=I(this).val();n.find("i").each(function(){var e=I(this);e.attr("title").search(new RegExp(t,"i"))<0?e.hide():e.show()})}),i.on("click",".ulf-modal-close, .ulf-modal-overlay",function(){i.addClass("hidden")})}).fail(function(e){i.find(".ulf-modal-loading").hide(),i.find(".ulf-modal-load").html(e.error),i.on("click",function(){i.addClass("hidden")})}))}),n.on("click",".ulf-icon-remove",function(e){e.preventDefault(),n.find(".ulf-icon-preview").addClass("hidden"),n.find("input").val("").trigger("change"),I(this).addClass("hidden")})})},I.fn.ulf_field_map=function(){return this.each(function(){if("undefined"!=typeof L){var e=I(this),t=e.find(".ulf--map-osm"),n=e.find(".ulf--map-search input"),i=e.find(".ulf--latitude"),s=e.find(".ulf--longitude"),a=e.find(".ulf--zoom"),c=t.data("map"),r=L.map(t.get(0),c);L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(r);var o=L.marker(c.center,{draggable:!0}).addTo(r),f=function(e){i.val(e.lat),s.val(e.lng),a.val(r.getZoom())};r.on("click",function(e){o.setLatLng(e.latlng),f(e.latlng)}),r.on("zoom",function(){f(o.getLatLng())}),o.on("drag",function(){f(o.getLatLng())}),n.length||(n=I('[data-depend-id="'+e.find(".ulf--address-field").data("address-field")+'"]'));var l={};n.autocomplete({source:function(e,n){var i=e.term;i in l?n(l[i]):I.get("https://nominatim.openstreetmap.org/search",{format:"json",q:i},function(e){var t;t=e.length?e.map(function(e){return{value:e.display_name,label:e.display_name,lat:e.lat,lon:e.lon}},"json"):[{value:"no-data",label:"No Results."}],l[i]=t,n(t)})},select:function(e,t){if("no-data"===t.item.value)return!1;var n=L.latLng(t.item.lat,t.item.lon);r.panTo(n),o.setLatLng(n),f(n)},create:function(e,t){I(this).autocomplete("widget").addClass("ulf-map-ui-autocomplate")}});var d=function(){var e=L.latLng(i.val(),s.val());r.panTo(e),o.setLatLng(e)};i.on("change",d),s.on("change",d)}})},I.fn.ulf_field_link=function(){return this.each(function(){var s=I(this),e=s.find(".ulf--link"),a=s.find(".ulf--add"),c=s.find(".ulf--edit"),r=s.find(".ulf--remove"),o=s.find(".ulf--result"),t=T.helper.uid("ulf-wplink-textarea-");a.on("click",function(e){e.preventDefault(),_.wpLink.open(t)}),c.on("click",function(e){e.preventDefault(),a.trigger("click"),I("#wp-link-url").val(s.find(".ulf--url").val()),I("#wp-link-text").val(s.find(".ulf--text").val()),I("#wp-link-target").prop("checked","_blank"===s.find(".ulf--target").val())}),r.on("click",function(e){e.preventDefault(),s.find(".ulf--url").val("").trigger("change"),s.find(".ulf--text").val(""),s.find(".ulf--target").val(""),a.removeClass("hidden"),c.addClass("hidden"),r.addClass("hidden"),o.parent().addClass("hidden")}),e.attr("id",t).on("change",function(){var e=_.wpLink.getAttrs(),t=e.href,n=I("#wp-link-text").val(),i=e.target?e.target:"";s.find(".ulf--url").val(t).trigger("change"),s.find(".ulf--text").val(n),s.find(".ulf--target").val(i),o.html('{url:"'+t+'", text:"'+n+'", target:"'+i+'"}'),a.addClass("hidden"),c.removeClass("hidden"),r.removeClass("hidden"),o.parent().removeClass("hidden")})})},I.fn.ulf_field_media=function(){return this.each(function(){var i,s=I(this),a=s.find(".ulf--button"),c=s.find(".ulf--remove"),r=a.data("library")&&a.data("library").split(",")||"",o=!!s.hasClass("ulf-assign-field-background")&&s.closest(".ulf-field-background").find(".ulf--auto-attributes");a.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(i||(i=_.wp.media({library:{type:r}})).on("select",function(){var e,t=i.state().get("selection").first().attributes,n=a.data("preview-size")||"thumbnail";r.length&&-1===r.indexOf(t.subtype)&&-1===r.indexOf(t.type)||(s.find(".ulf--id").val(t.id),s.find(".ulf--width").val(t.width),s.find(".ulf--height").val(t.height),s.find(".ulf--alt").val(t.alt),s.find(".ulf--title").val(t.title),s.find(".ulf--description").val(t.description),e=void 0!==t.sizes&&void 0!==t.sizes.thumbnail&&"thumbnail"===n?t.sizes.thumbnail.url:void 0!==t.sizes&&void 0!==t.sizes.full?t.sizes.full.url:t.icon,o&&o.removeClass("ulf--attributes-hidden"),c.removeClass("hidden"),s.find(".ulf--preview").removeClass("hidden"),s.find(".ulf--src").attr("src",e),s.find(".ulf--thumbnail").val(e),s.find(".ulf--url").val(t.url).trigger("change"))}),i.open())}),c.on("click",function(e){e.preventDefault(),o&&o.addClass("ulf--attributes-hidden"),c.addClass("hidden"),s.find("input").val(""),s.find(".ulf--preview").addClass("hidden"),s.find(".ulf--url").trigger("change")})})},I.fn.ulf_field_repeater=function(){return this.each(function(){var e=I(this),t=e.children(".ulf-fieldset"),n=t.length?t:e,c=n.children(".ulf-repeater-wrapper"),i=n.children(".ulf-repeater-hidden"),r=n.children(".ulf-repeater-max"),o=n.children(".ulf-repeater-min"),f=c.data("field-id"),l=parseInt(c.data("max")),s=parseInt(c.data("min"));c.children(".ulf-repeater-item").children(".ulf-repeater-content").ulf_reload_script(),c.sortable({axis:"y",handle:".ulf-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){T.helper.name_nested_replace(c.children(".ulf-repeater-item"),f),c.ulf_customizer_refresh(),t.item.ulf_reload_script_retry()}}),n.children(".ulf-repeater-add").on("click",function(e){e.preventDefault();var t=c.children(".ulf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=i.ulf_clone(!0);n.removeClass("ulf-repeater-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(f+"[0]",f+"["+t+"]")}),c.append(n),n.children(".ulf-repeater-content").ulf_reload_script(),c.ulf_customizer_refresh(),c.ulf_customizer_listen({closest:!0})}});var a=function(e){e.preventDefault();var t=c.children(".ulf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=I(this).parent().parent().parent(),i=n.children(".ulf-repeater-content").ulf_clone(),s=n.children(".ulf-repeater-helper").ulf_clone(!0),a=I('<div class="ulf-repeater-item" />');a.append(i),a.append(s),c.children().eq(n.index()).after(a),a.children(".ulf-repeater-content").ulf_reload_script(),T.helper.name_nested_replace(c.children(".ulf-repeater-item"),f),c.ulf_customizer_refresh(),c.ulf_customizer_listen({closest:!0})}};c.children(".ulf-repeater-item").children(".ulf-repeater-helper").on("click",".ulf-repeater-clone",a),n.children(".ulf-repeater-hidden").children(".ulf-repeater-helper").on("click",".ulf-repeater-clone",a);var d=function(e){e.preventDefault();var t=c.children(".ulf-repeater-item").length;r.hide(),o.hide(),s&&t-1<s?o.show():(I(this).closest(".ulf-repeater-item").remove(),T.helper.name_nested_replace(c.children(".ulf-repeater-item"),f),c.ulf_customizer_refresh())};c.children(".ulf-repeater-item").children(".ulf-repeater-helper").on("click",".ulf-repeater-remove",d),n.children(".ulf-repeater-hidden").children(".ulf-repeater-helper").on("click",".ulf-repeater-remove",d)})},I.fn.ulf_field_slider=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".ulf-slider-ui"),i=n.data(),s=n.val()||0;t.hasClass("ui-slider")&&t.empty(),t.slider({range:"min",value:s,min:i.min||0,max:i.max||100,step:i.step||1,slide:function(e,t){n.val(t.value).trigger("change")}}),n.on("keyup",function(){t.slider("value",n.val())})})},I.fn.ulf_field_sortable=function(){return this.each(function(){var n=I(this).find(".ulf-sortable");n.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){n.ulf_customizer_refresh()}}),n.find(".ulf-sortable-content").ulf_reload_script()})},I.fn.ulf_field_sorter=function(){return this.each(function(){var i=I(this),e=i.find(".ulf-enabled"),t=i.find(".ulf-disabled"),n=!!t.length&&t;e.sortable({connectWith:n,placeholder:"ui-sortable-placeholder",update:function(e,t){var n=t.item.find("input");t.item.parent().hasClass("ulf-enabled")?n.attr("name",n.attr("name").replace("disabled","enabled")):n.attr("name",n.attr("name").replace("enabled","disabled")),i.ulf_customizer_refresh()}}),n&&n.sortable({connectWith:e,placeholder:"ui-sortable-placeholder",update:function(e,t){i.ulf_customizer_refresh()}})})},I.fn.ulf_field_spinner=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".ui-spinner-button"),i=n.data();t.length&&t.remove(),n.spinner({min:i.min||0,max:i.max||100,step:i.step||1,create:function(e,t){i.unit&&n.after('<span class="ui-button ulf--unit">'+i.unit+"</span>")},spin:function(e,t){n.val(t.value).trigger("change")}})})},I.fn.ulf_field_switcher=function(){return this.each(function(){var n=I(this).find(".ulf--switcher");n.on("click",function(){var e=0,t=n.find("input");n.hasClass("ulf--active")?n.removeClass("ulf--active"):(e=1,n.addClass("ulf--active")),t.val(e).trigger("change")})})},I.fn.ulf_field_tabbed=function(){return this.each(function(){var e=I(this),t=e.find(".ulf-tabbed-nav a"),s=e.find(".ulf-tabbed-content");s.eq(0).ulf_reload_script(),t.on("click",function(e){e.preventDefault();var t=I(this),n=t.index(),i=s.eq(n);t.addClass("ulf-tabbed-active").siblings().removeClass("ulf-tabbed-active"),i.ulf_reload_script(),i.removeClass("hidden").siblings().addClass("hidden")})})},I.fn.ulf_field_typography=function(){return this.each(function(){var j=this,L=I(this),i=[],q=ulf_typography_json.webfonts,t=ulf_typography_json.googlestyles,A=ulf_typography_json.defaultstyles;j.sanitize_subset=function(e){return e=(e=e.replace("-ext"," Extended")).charAt(0).toUpperCase()+e.slice(1)},j.sanitize_style=function(e){return t[e]?t[e]:e},j.load_google_font=function(e,t,n){e&&"object"==typeof WebFont&&(t=t?t.replace("normal",""):"",n=n?n.replace("normal",""):"",(t||n)&&(e=e+":"+t+n),-1===i.indexOf(e)&&WebFont.load({google:{families:[e]}}),i.push(e))},j.append_select_options=function(e,t,s,a,c){e.find("option").not(":first").remove();var r="";I.each(t,function(e,t){var n,i=t;n=c?s&&-1!==s.indexOf(t)?" selected":"":s&&s===t?" selected":"","subset"===a?i=j.sanitize_subset(t):"style"===a&&(i=j.sanitize_style(t)),r+='<option value="'+t+'"'+n+">"+i+"</option>"}),e.append(r).trigger("ulf.change").trigger("chosen:updated")},j.init=function(){var l=[],e=L.find(".ulf--typography"),d=L.find(".ulf--type"),h=L.find(".ulf--block-font-style"),v=e.data("unit"),g=e.data("line-height-unit"),t=e.data("exclude")?e.data("exclude").split(","):[];L.find(".ulf--chosen").length&&L.find("select").each(function(){var e=I(this),t=e.parent().find(".chosen-container");t.length&&t.remove(),e.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})});var m=L.find(".ulf--font-family"),i=m.val();m.find("option").not(":first-child").remove();var s="";I.each(q,function(n,e){t&&-1!==t.indexOf(n)||(s+='<optgroup label="'+e.label+'">',I.each(e.fonts,function(e,t){s+='<option value="'+(t="object"==typeof t?e:t)+'" data-type="'+n+'"'+(t===i?" selected":"")+">"+t+"</option>"}),s+="</optgroup>")}),m.append(s).trigger("chosen:updated");var p=L.find(".ulf--block-font-style");if(p.length){var u=L.find(".ulf--font-style-select"),_=u.val()?u.val().replace(/normal/g,""):"";u.on("change ulf.change",function(e){var t=u.val();!t&&l&&-1===l.indexOf("normal")&&(t=l[0]);var n=t&&"italic"!==t&&"normal"===t?"normal":"",i=t&&"italic"!==t&&"normal"!==t?t.replace("italic",""):n,s=t&&"italic"===t.substr(-6)?"italic":"";L.find(".ulf--font-weight").val(i),L.find(".ulf--font-style").val(s)});var b=L.find(".ulf--block-extra-styles");if(b.length)var y=L.find(".ulf--extra-styles"),w=y.val()}var C=L.find(".ulf--block-subset");if(C.length)var k=L.find(".ulf--subset"),x=k.val(),z=k.data("multiple")||!1;var D=L.find(".ulf--block-backup-font-family");m.on("change ulf.change",function(e){C.length&&C.addClass("hidden"),b.length&&b.addClass("hidden"),D.length&&D.addClass("hidden");var t=m.find(":selected"),n=t.val(),i=t.data("type");if(i&&n){if("google"!==i&&"custom"!==i||!D.length||D.removeClass("hidden"),p.length){var s=A;"google"===i&&q[i].fonts[n][0]?s=q[i].fonts[n][0]:"custom"===i&&q[i].fonts[n]&&(s=q[i].fonts[n]);var a=-1!==(l=s).indexOf("normal")?"normal":s[0],c=_&&-1!==s.indexOf(_)?_:a;j.append_select_options(u,s,c,"style"),_=!1,p.removeClass("hidden"),"google"===i&&b.length&&1<s.length&&(j.append_select_options(y,s,w,"style",!0),w=!1,b.removeClass("hidden"))}if("google"===i&&C.length&&q[i].fonts[n][1]){var r=q[i].fonts[n][1],o=r.length<2&&"latin"!==r[0]?r[0]:"",f=x&&-1!==r.indexOf(x)?x:o;f=z&&x?x:f,j.append_select_options(k,r,f,"subset",z),x=!1,C.removeClass("hidden")}}else h.find(":input").val(""),C.length&&(k.find("option").not(":first-child").remove(),k.trigger("chosen:updated")),p.length&&(u.find("option").not(":first-child").remove(),u.trigger("chosen:updated"));d.val(i)}).trigger("ulf.change");var O=L.find(".ulf--block-preview");if(O.length){var S=L.find(".ulf--preview");L.on("change",T.helper.debounce(function(e){O.removeClass("hidden");var t=m.val(),n=L.find(".ulf--font-weight").val(),i=L.find(".ulf--font-style").val(),s=L.find(".ulf--font-size").val(),a=L.find(".ulf--font-variant").val(),c=L.find(".ulf--line-height").val(),r=L.find(".ulf--text-align").val(),o=L.find(".ulf--text-transform").val(),f=L.find(".ulf--text-decoration").val(),l=L.find(".ulf--color").val(),d=L.find(".ulf--word-spacing").val(),h=L.find(".ulf--letter-spacing").val(),p=L.find(".ulf--custom-style").val();"google"===L.find(".ulf--type").val()&&j.load_google_font(t,n,i);var u={};t&&(u.fontFamily=t),n&&(u.fontWeight=n),i&&(u.fontStyle=i),a&&(u.fontVariant=a),s&&(u.fontSize=s+v),c&&(u.lineHeight=c+g),h&&(u.letterSpacing=h+v),d&&(u.wordSpacing=d+v),r&&(u.textAlign=r),o&&(u.textTransform=o),f&&(u.textDecoration=f),l&&(u.color=l),S.removeAttr("style"),p&&S.attr("style",p),S.css(u)},100)),O.on("click",function(){S.toggleClass("ulf--black-background");var e=O.find(".ulf--toggle");e.hasClass("fa-toggle-off")?e.removeClass("fa-toggle-off").addClass("fa-toggle-on"):e.removeClass("fa-toggle-on").addClass("fa-toggle-off")}),O.hasClass("hidden")||L.trigger("change")}},j.init()})},I.fn.ulf_field_upload=function(){return this.each(function(){var t,e=I(this),n=e.find("input"),i=e.find(".ulf--button"),s=e.find(".ulf--remove"),a=i.data("library")&&i.data("library").split(",")||"";n.on("change",function(e){n.val()?s.removeClass("hidden"):s.addClass("hidden")}),i.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(t||(t=_.wp.media({library:{type:a}})).on("select",function(){var e=t.state().get("selection").first().attributes;a.length&&-1===a.indexOf(e.subtype)&&-1===a.indexOf(e.type)||n.val(e.url).trigger("change")}),t.open())}),s.on("click",function(e){e.preventDefault(),n.val("").trigger("change")})})},I.fn.ulf_field_wp_editor=function(){return this.each(function(){if(void 0!==_.wp.editor&&void 0!==_.tinyMCEPreInit&&void 0!==_.tinyMCEPreInit.mceInit.ulf_wp_editor){var e=I(this),t=e.find(".ulf-wp-editor"),n=e.find("textarea");(e.find(".wp-editor-wrap").length||e.find(".mce-container").length)&&(t.empty(),t.append(n),n.css("display",""));var i=T.helper.uid("ulf-editor-");n.attr("id",i);var s={tinymce:_.tinyMCEPreInit.mceInit.ulf_wp_editor,quicktags:_.tinyMCEPreInit.qtInit.ulf_wp_editor},a=t.data("editor-settings"),c=wp.oldEditor?wp.oldEditor:wp.editor;c&&c.hasOwnProperty("autop")&&(wp.editor.autop=c.autop,wp.editor.removep=c.removep,wp.editor.initialize=c.initialize);s.tinymce=I.extend({},s.tinymce,{selector:"#"+i,setup:function(t){t.on("change keyup",function(){var e=a.wpautop?t.getContent():wp.editor.removep(t.getContent());n.val(e).trigger("change")})}}),!1===a.tinymce&&(s.tinymce=!1,t.addClass("ulf-no-tinymce")),!1===a.quicktags&&(s.quicktags=!1,t.addClass("ulf-no-quicktags"));var r=setInterval(function(){e.is(":visible")&&(_.wp.editor.initialize(i,s),clearInterval(r))});if(a.media_buttons&&_.ulf_media_buttons){var o=t.find(".wp-media-buttons");if(o.length)o.find(".ulf-shortcode-button").data("editor-id",i);else{var f=I(_.ulf_media_buttons);f.find(".ulf-shortcode-button").data("editor-id",i),t.prepend(f)}}}})},I.fn.ulf_confirm=function(){return this.each(function(){I(this).on("click",function(e){var t=I(this).data("confirm")||_.ulf_vars.i18n.confirm;if(!confirm(t))return e.preventDefault(),!1;T.vars.is_confirm=!0,T.vars.form_modified=!1})})},I.fn.serializeObject=function(){var s={};return I.each(this.serializeArray(),function(e,t){var n=t.name,i=t.value;s[n]=s[n]===y?i:I.isArray(s[n])?s[n].concat(i):[s[n],i]}),s},I.fn.ulf_save=function(){return this.each(function(){var i,s=I(this),c=I(".ulf-save"),r=I(".ulf-options"),o=!1;s.on("click",function(e){if(!o){var t=s.data("save"),n=s.val();c.attr("value",t),s.hasClass("ulf-save-ajax")?(e.preventDefault(),r.addClass("ulf-saving"),c.prop("disabled",!0),_.wp.ajax.post("ulf_"+r.data("unique")+"_ajax_save",{data:I("#ulf-form").serializeJSONULF()}).done(function(e){if(I(".ulf-error").remove(),Object.keys(e.errors).length){var a='<i class="ulf-label-error ulf-error">!</i>';I.each(e.errors,function(e,t){var n=I('[data-depend-id="'+e+'"]'),i=I("#ulf-tab-link-"+(n.closest(".ulf-section").index()+1)),s=i.closest(".ulf-tab-depth-0");n.closest(".ulf-fieldset").append('<p class="ulf-error ulf-error-text">'+t+"</p>"),i.find(".ulf-error").length||i.append(a),s.find(".ulf-arrow .ulf-error").length||s.find(".ulf-arrow").append(a)})}r.removeClass("ulf-saving"),c.prop("disabled",!1).attr("value",n),o=!1,T.vars.form_modified=!1,T.vars.$form_warning.hide(),clearTimeout(i);var t=I(".ulf-form-success");t.empty().append(e.notice).fadeIn("fast",function(){i=setTimeout(function(){t.fadeOut("fast")},1e3)})}).fail(function(e){alert(e.error)})):T.vars.form_modified=!1}o=!0})})},I.fn.ulf_options=function(){return this.each(function(){var e=I(this),t=e.find(".ulf-content"),n=e.find(".ulf-form-success"),i=e.find(".ulf-form-warning"),s=e.find(".ulf-header .ulf-save");(T.vars.$form_warning=i).length&&(_.onbeforeunload=function(){return!!T.vars.form_modified||y},t.on("change keypress",":input",function(){T.vars.form_modified||(n.hide(),i.fadeIn("fast"),T.vars.form_modified=!0)})),n.hasClass("ulf-form-show")&&setTimeout(function(){n.fadeOut("fast")},1e3),I(b).keydown(function(e){if((e.ctrlKey||e.metaKey)&&83===e.which)return s.trigger("click"),e.preventDefault(),!1})})},I.fn.ulf_taxonomy=function(){return this.each(function(){var e=I(this),t=e.parents("form");if("addtag"===t.attr("id")){var n=t.find("#submit"),i=e.find(".ulf-field").ulf_clone();n.on("click",function(){t.find(".form-required").hasClass("form-invalid")||(e.data("inited",!1),e.empty(),e.html(i),i=i.ulf_clone(),e.ulf_reload_script())})}})},I.fn.ulf_shortcode=function(){var m=this;return m.shortcode_parse=function(e,n){var i="";return I.each(e,function(e,t){i+="["+(n=n||e),I.each(t,function(e,t){"content"===e?(i+="]",i+=t,i+="[/"+n):i+=m.shortcode_tags(e,t)}),i+="]"}),i},m.shortcode_tags=function(e,t){var n="";return""!==t&&("object"!=typeof t||I.isArray(t)?n+=" "+e.replace("-","_")+'="'+t.toString()+'"':I.each(t,function(e,t){switch(e){case"background-image":t=t.url?t.url:""}""!==t&&(n+=" "+e.replace("-","_")+'="'+t.toString()+'"')})),n},m.insertAtChars=function(e,t){var n=void 0!==e[0].name?e[0]:e;return n.value.length&&void 0!==n.selectionStart?(n.focus(),n.value.substring(0,n.selectionStart)+t+n.value.substring(n.selectionEnd,n.value.length)):(n.focus(),t)},m.send_to_editor=function(e,t){var n;if("undefined"!=typeof tinymce&&(n=tinymce.get(t)),n&&!n.isHidden())n.execCommand("mceInsertContent",!1,e);else{var i=I("#"+t);i.val(m.insertAtChars(i,e)).trigger("change")}},this.each(function(){var c,r,o,n,f,l,d,s,h,p=I(this),i=p.find(".ulf-modal-load"),u=(p.find(".ulf-modal-content"),p.find(".ulf-modal-insert")),a=p.find(".ulf-modal-loading"),t=p.find("select"),v=p.data("modal-id"),g=p.data("nonce");I(b).on("click",'.ulf-shortcode-button[data-modal-id="'+v+'"]',function(e){e.preventDefault(),h=I(this),c=h.data("editor-id")||!1,r=h.data("target-id")||!1,o=h.data("gutenberg-id")||!1,p.removeClass("hidden"),p.hasClass("ulf-shortcode-single")&&f===y&&t.trigger("change")}),t.on("change",function(){var e=I(this),t=e.find(":selected");n=e.val(),f=t.data("shortcode"),l=t.data("view")||"normal",d=t.data("group")||f,i.empty(),n?(a.show(),_.wp.ajax.post("ulf-get-shortcode-"+v,{shortcode_key:n,nonce:g}).done(function(e){a.hide();var t=I(e.content).appendTo(i);u.parent().removeClass("hidden"),s=t.find(".ulf--repeat-shortcode").ulf_clone(),t.ulf_reload_script(),t.find(".ulf-fields").ulf_reload_script()})):u.parent().addClass("hidden")}),u.on("click",function(e){if(e.preventDefault(),!u.prop("disabled")&&!u.attr("disabled")){var i="",t=p.find(".ulf-field:not(.ulf-depend-on)").find(":input:not(.ignore)").serializeObjectULF();switch(l){case"contents":var n=f?t[f]:t;I.each(n,function(e,t){var n=f||e;i+="["+n+"]"+t+"[/"+n+"]"});break;case"group":i+="["+f,I.each(t[f],function(e,t){i+=m.shortcode_tags(e,t)}),i+="]",i+=m.shortcode_parse(t[d],d),i+="[/"+f+"]";break;case"repeater":i+=m.shortcode_parse(t[d],d);break;default:i+=m.shortcode_parse(t)}if(i=""===i?"["+f+"]":i,o){var s=_.ulf_gutenberg_props.attributes.hasOwnProperty("shortcode")?_.ulf_gutenberg_props.attributes.shortcode:"";_.ulf_gutenberg_props.setAttributes({shortcode:s+i})}else if(c)m.send_to_editor(i,c);else{var a=r?I(r):h.parent().find("textarea");a.val(m.insertAtChars(a,i)).trigger("change")}p.addClass("hidden")}}),p.on("click",".ulf--repeat-button",function(e){e.preventDefault();var t=p.find(".ulf--repeatable"),n=s.ulf_clone(),i=n.find(".ulf-repeat-remove");n.appendTo(t);n.find(".ulf-fields").ulf_reload_script(),T.helper.name_nested_replace(p.find(".ulf--repeat-shortcode"),d),i.on("click",function(){n.remove(),T.helper.name_nested_replace(p.find(".ulf--repeat-shortcode"),d)})}),p.on("click",".ulf-modal-close, .ulf-modal-overlay",function(){p.addClass("hidden")})})},"function"==typeof Color&&(Color.prototype.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var t=6-e.length-1;0<=t;t--)e="0"+e;return"#"+e}),T.funcs.parse_color=function(e){var t=e.replace(/\s+/g,""),n=-1!==t.indexOf("rgba")?parseFloat(100*t.replace(/^.*,(.+)\)/,"$1")):100;return{value:t,transparent:n,rgba:n<100}},I.fn.ulf_color=function(){return this.each(function(){var c,r=I(this),o=T.funcs.parse_color(r.val()),e=!_.ulf_vars.color_palette.length||_.ulf_vars.color_palette;r.hasClass("wp-color-picker")&&r.closest(".wp-picker-container").after(r).remove(),r.wpColorPicker({palettes:e,change:function(e,t){var n=t.color.toString();c.removeClass("ulf--transparent-active"),c.find(".ulf--transparent-offset").css("background-color",n),r.val(n).trigger("change")},create:function(){c=r.closest(".wp-picker-container");var i=r.data("a8cIris"),e=I('<div class="ulf--transparent-wrap"><div class="ulf--transparent-slider"></div><div class="ulf--transparent-offset"></div><div class="ulf--transparent-text"></div><div class="ulf--transparent-button">transparent <i class="fas fa-toggle-off"></i></div></div>').appendTo(c.find(".wp-picker-holder")),s=e.find(".ulf--transparent-slider"),a=e.find(".ulf--transparent-text"),n=e.find(".ulf--transparent-offset"),t=e.find(".ulf--transparent-button");"transparent"===r.val()&&c.addClass("ulf--transparent-active"),t.on("click",function(){"transparent"!==r.val()?(r.val("transparent").trigger("change").removeClass("iris-error"),c.addClass("ulf--transparent-active")):(r.val(i._color.toString()).trigger("change"),c.removeClass("ulf--transparent-active"))}),s.slider({value:o.transparent,step:1,min:0,max:100,slide:function(e,t){var n=parseFloat(t.value/100);i._color._alpha=n,r.wpColorPicker("color",i._color.toString()),a.text(1===n||0===n?"":n)},create:function(){var e=parseFloat(o.transparent/100),t=e<1?e:"";a.text(t),n.css("background-color",o.value),c.on("click",".wp-picker-clear",function(){i._color._alpha=1,a.text(""),s.slider("option","value",100),c.removeClass("ulf--transparent-active"),r.trigger("change")}),c.on("click",".wp-picker-default",function(){var e=T.funcs.parse_color(r.data("default-color")),t=parseFloat(e.transparent/100),n=t<1?t:"";i._color._alpha=t,a.text(n),s.slider("option","value",e.transparent),"transparent"===e.value&&(r.removeClass("iris-error"),c.addClass("ulf--transparent-active"))})}})}})})},I.fn.ulf_chosen=function(){return this.each(function(){var a=I(this),e=a.parent().find(".chosen-container"),t=a.hasClass("ulf-chosen-sortable")||!1,n=a.hasClass("ulf-chosen-ajax")||!1,i=a.attr("multiple")||!1,s=i?"100%":"auto",c=I.extend({allow_single_deselect:!0,disable_search_threshold:10,width:s,no_results_text:_.ulf_vars.i18n.no_results_text},a.data("chosen-settings"));if(e.length&&e.remove(),n){var r=I.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:_.ulf_vars.i18n.typing_text,searching_text:_.ulf_vars.i18n.searching_text,no_results_text:_.ulf_vars.i18n.no_results_text},a.data("chosen-settings"));a.ULFAjaxChosen(r)}else a.chosen(c);if(i){var o=a.parent().find(".ulf-hide-select"),f=o.val()||[];a.on("change",function(e,t){t&&t.selected?o.append('<option value="'+t.selected+'" selected="selected">'+t.selected+"</option>"):t&&t.deselected&&o.find('option[value="'+t.deselected+'"]').remove(),_.wp.customize!==y&&0===o.children().length&&o.data("customize-setting-link")&&_.wp.customize.control(o.data("customize-setting-link")).setting.set(""),o.trigger("change")}),a.ULFChosenOrder(f,!0)}if(t){var l=a.parent().find(".chosen-container").find(".chosen-choices");l.bind("mousedown",function(e){I(e.target).is("span")&&e.stopPropagation()}),l.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,t){t.placeholder.width(t.item.innerWidth()),t.placeholder.height(t.item.innerHeight())},update:function(e,t){var i="",s=a.data("chosen"),n=a.parent().find(".ulf-hide-select");l.find(".search-choice-close").each(function(){var n=I(this).data("option-array-index");I.each(s.results_data,function(e,t){t.array_index===n&&(i+='<option value="'+t.value+'" selected>'+t.value+"</option>")})}),n.children().remove(),n.append(i),n.trigger("change")}})}})},I.fn.ulf_checkbox=function(){return this.each(function(){var e=I(this),t=e.find(".ulf--input"),n=e.find(".ulf--checkbox");n.on("click",function(){t.val(Number(n.prop("checked"))).trigger("change")})})},I.fn.ulf_siblings=function(){return this.each(function(){var t=I(this),e=t.find(".ulf--sibling"),n=t.data("multiple")||!1;e.on("click",function(){var e=I(this);n?e.hasClass("ulf--active")?(e.removeClass("ulf--active"),e.find("input").prop("checked",!1).trigger("change")):(e.addClass("ulf--active"),e.find("input").prop("checked",!0).trigger("change")):(t.find("input").prop("checked",!1),e.find("input").prop("checked",!0).trigger("change"),e.addClass("ulf--active").siblings().removeClass("ulf--active"))})})},I.fn.ulf_help=function(){return this.each(function(){var e,t,n=I(this);n.on({mouseenter:function(){e=I('<div class="ulf-tooltip"></div>').html(n.find(".ulf-help-text").html()).appendTo("body"),t=T.vars.is_rtl?n.offset().left+24:n.offset().left-e.outerWidth(),e.css({top:n.offset().top-(e.outerHeight()/2-14),left:t})},mouseleave:function(){e!==y&&e.remove()}})})},I.fn.ulf_customizer_refresh=function(){return this.each(function(){var e=I(this),t=e.closest(".ulf-customize-complex");if(t.length){var n=t.data("unique-id");if(n===y)return;var i=t.find(":input"),s=t.data("option-id"),a=i.serializeObjectULF(),c=!I.isEmptyObject(a)&&a[n]&&a[n][s]?a[n][s]:"",r=_.wp.customize.control(n+"["+s+"]");r.setting._value=null,r.setting.set(c)}else e.find(":input").first().trigger("change");I(b).trigger("ulf-customizer-refresh",e)})},I.fn.ulf_customizer_listen=function(e){var t=I.extend({closest:!1},e);return this.each(function(){if(_.wp.customize!==y){var n=t.closest?I(this).closest(".ulf-customize-complex"):I(this),e=n.find(":input"),i=n.data("unique-id"),s=n.data("option-id");i!==y&&e.on("change keyup",function(){var e=n.find(":input").serializeObjectULF(),t=!I.isEmptyObject(e)&&e[i]&&e[i][s]?e[i][s]:"";_.wp.customize.control(i+"["+s+"]").setting.set(t)})}})},I(b).on("expanded",".control-section",function(){var e=I(this);if(e.hasClass("open")&&!e.data("inited")){var t=e.find(".ulf-customize-field"),n=e.find(".ulf-customize-complex");t.length&&(e.ulf_dependency(),t.ulf_reload_script({dependency:!1}),n.ulf_customizer_listen()),e.data("inited",!0)}}),T.vars.$window.on("resize ulf.resize",T.helper.debounce(function(e){(-1<navigator.userAgent.indexOf("AppleWebKit/")?T.vars.$window.width():_.innerWidth)<=782&&!T.vars.onloaded&&(I(".ulf-section").ulf_reload_script(),T.vars.onloaded=!0)},200)).trigger("ulf.resize"),I.fn.ulf_widgets=function(){this.length&&(I(b).on("widget-added widget-updated",function(e,t){t.find(".ulf-fields").ulf_reload_script()}),I(".widgets-sortables, .control-section-sidebar").on("sortstop",function(e,t){t.item.find(".ulf-fields").ulf_reload_script_retry()}),I(b).on("click",".widget-top",function(e){I(this).parent().find(".ulf-fields").ulf_reload_script()}))},I.fn.ulf_nav_menu=function(){return this.each(function(){var e=I(this);e.on("click","a.item-edit",function(){I(this).closest("li.menu-item").find(".ulf-fields").ulf_reload_script()}),e.on("sortstop",function(e,t){t.item.find(".ulf-fields").ulf_reload_script_retry()})})},I.fn.ulf_reload_script_retry=function(){return this.each(function(){var e=I(this);e.data("inited")&&e.children(".ulf-field-wp_editor").ulf_field_wp_editor()})},I.fn.ulf_reload_script=function(e){var t=I.extend({dependency:!0},e);return this.each(function(){var e=I(this);e.data("inited")||(e.children(".ulf-field-accordion").ulf_field_accordion(),e.children(".ulf-field-backup").ulf_field_backup(),e.children(".ulf-field-background").ulf_field_background(),e.children(".ulf-field-code_editor").ulf_field_code_editor(),e.children(".ulf-field-date").ulf_field_date(),e.children(".ulf-field-fieldset").ulf_field_fieldset(),e.children(".ulf-field-gallery").ulf_field_gallery(),e.children(".ulf-field-group").ulf_field_group(),e.children(".ulf-field-icon").ulf_field_icon(),e.children(".ulf-field-link").ulf_field_link(),e.children(".ulf-field-media").ulf_field_media(),e.children(".ulf-field-map").ulf_field_map(),e.children(".ulf-field-repeater").ulf_field_repeater(),e.children(".ulf-field-slider").ulf_field_slider(),e.children(".ulf-field-sortable").ulf_field_sortable(),e.children(".ulf-field-sorter").ulf_field_sorter(),e.children(".ulf-field-spinner").ulf_field_spinner(),e.children(".ulf-field-switcher").ulf_field_switcher(),e.children(".ulf-field-tabbed").ulf_field_tabbed(),e.children(".ulf-field-typography").ulf_field_typography(),e.children(".ulf-field-upload").ulf_field_upload(),e.children(".ulf-field-wp_editor").ulf_field_wp_editor(),e.children(".ulf-field-border").find(".ulf-color").ulf_color(),e.children(".ulf-field-background").find(".ulf-color").ulf_color(),e.children(".ulf-field-color").find(".ulf-color").ulf_color(),e.children(".ulf-field-color_group").find(".ulf-color").ulf_color(),e.children(".ulf-field-link_color").find(".ulf-color").ulf_color(),e.children(".ulf-field-typography").find(".ulf-color").ulf_color(),e.children(".ulf-field-select").find(".ulf-chosen").ulf_chosen(),e.children(".ulf-field-checkbox").find(".ulf-checkbox").ulf_checkbox(),e.children(".ulf-field-button_set").find(".ulf-siblings").ulf_siblings(),e.children(".ulf-field-image_select").find(".ulf-siblings").ulf_siblings(),e.children(".ulf-field-palette").find(".ulf-siblings").ulf_siblings(),e.children(".ulf-field").find(".ulf-help").ulf_help(),t.dependency&&e.ulf_dependency(),e.data("inited",!0),I(b).trigger("ulf-reload-script",e))})},I(b).ready(function(){I(".ulf-save").ulf_save(),I(".ulf-options").ulf_options(),I(".ulf-sticky-header").ulf_sticky(),I(".ulf-nav-options").ulf_nav_options(),I(".ulf-nav-metabox").ulf_nav_metabox(),I(".ulf-taxonomy").ulf_taxonomy(),I(".ulf-page-templates").ulf_page_templates(),I(".ulf-post-formats").ulf_post_formats(),I(".ulf-shortcode").ulf_shortcode(),I(".ulf-search").ulf_search(),I(".ulf-confirm").ulf_confirm(),I(".ulf-expand-all").ulf_expand_all(),I(".ulf-onload").ulf_reload_script(),I(".widget").ulf_widgets(),I("#menu-to-edit").ulf_nav_menu()})}(jQuery,window,document);
|
1 |
+
/* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.2*/
|
2 |
|
3 |
+
!function(I,_,b,y){"use strict";var T=T||{};T.funcs={},T.vars={onloaded:!1,$body:I("body"),$window:I(_),$document:I(b),$form_warning:null,is_confirm:!1,form_modified:!1,code_themes:[],is_rtl:I("body").hasClass("rtl")},T.helper={uid:function(e){return(e||"")+Math.random().toString(36).substr(2,9)},preg_quote:function(e){return(e+"").replace(/(\[|\])/g,"\\$1")},name_nested_replace:function(e,t){var n=new RegExp(T.helper.preg_quote(t+"[\\d+]"),"g");e.find(":radio").each(function(){(this.checked||this.orginal_checked)&&(this.orginal_checked=!0)}),e.each(function(e){I(this).find(":input").each(function(){this.name=this.name.replace(n,t+"["+e+"]"),this.orginal_checked&&(this.checked=!0)})})},debounce:function(i,s,a){var c;return function(){var e=this,t=arguments,n=a&&!c;clearTimeout(c),c=setTimeout(function(){c=null,a||i.apply(e,t)},s),n&&i.apply(e,t)}}},I.fn.ulf_clone=function(){for(var e=I.fn.clone.apply(this,arguments),t=this.find("select").add(this.filter("select")),n=e.find("select").add(e.filter("select")),i=0;i<t.length;++i)for(var s=0;s<t[i].options.length;++s)!0===t[i].options[s].selected&&(n[i].options[s].selected=!0);return this.find(":radio").each(function(){this.orginal_checked=this.checked}),e},I.fn.ulf_expand_all=function(){return this.each(function(){I(this).on("click",function(e){e.preventDefault(),I(".ulf-wrapper").toggleClass("ulf-show-all"),I(".ulf-section").ulf_reload_script(),I(this).find(".fa").toggleClass("fa-indent").toggleClass("fa-outdent")})})},I.fn.ulf_nav_options=function(){return this.each(function(){var s,a=I(this).find("a");I(_).on("hashchange ulf.hashchange",function(){var e=_.location.hash.replace("#tab=",""),t=e||a.first().attr("href").replace("#tab=",""),n=I('[data-tab-id="'+t+'"]');if(n.length){n.closest(".ulf-tab-item").addClass("ulf-tab-expanded").siblings().removeClass("ulf-tab-expanded"),n.next().is("ul")&&(t=(n=n.next().find("li").first().find("a")).data("tab-id")),a.removeClass("ulf-active"),n.addClass("ulf-active"),s&&s.addClass("hidden");var i=I('[data-section-id="'+t+'"]');i.removeClass("hidden"),i.ulf_reload_script(),I(".ulf-section-id").val(i.index()+1),s=i}}).trigger("ulf.hashchange")})},I.fn.ulf_nav_metabox=function(){return this.each(function(){var s,e=I(this),a=e.find("a"),c=e.parent().find(".ulf-section");a.each(function(i){I(this).on("click",function(e){e.preventDefault();var t=I(this);a.removeClass("ulf-active"),t.addClass("ulf-active"),s!==y&&s.addClass("hidden");var n=c.eq(i);n.removeClass("hidden"),n.ulf_reload_script(),s=n})}),a.first().trigger("click")})},I.fn.ulf_page_templates=function(){this.length&&I(b).on("change",".editor-page-attributes__template select, #page_template",function(){var e=I(this).val()||"default";I(".ulf-page-templates").removeClass("ulf-metabox-show").addClass("ulf-metabox-hide"),I(".ulf-page-"+e.toLowerCase().replace(/[^a-zA-Z0-9]+/g,"-")).removeClass("ulf-metabox-hide").addClass("ulf-metabox-show")})},I.fn.ulf_post_formats=function(){this.length&&I(b).on("change",'.editor-post-format select, #formatdiv input[name="post_format"]',function(){var e=I(this).val()||"default";e="0"===e?"default":e,I(".ulf-post-formats").removeClass("ulf-metabox-show").addClass("ulf-metabox-hide"),I(".ulf-post-format-"+e).removeClass("ulf-metabox-hide").addClass("ulf-metabox-show")})},I.fn.ulf_search=function(){return this.each(function(){I(this).find("input").on("change keyup",function(){var n=I(this).val(),e=I(".ulf-wrapper"),t=e.find(".ulf-section").find("> .ulf-field:not(.ulf-depend-on)"),i=t.find("> .ulf-title, .ulf-search-tags");3<n.length?(t.addClass("ulf-metabox-hide"),e.addClass("ulf-search-all"),i.each(function(){var e=I(this);if(e.text().match(new RegExp(".*?"+n+".*?","i"))){var t=e.closest(".ulf-field");t.removeClass("ulf-metabox-hide"),t.parent().ulf_reload_script()}})):(t.removeClass("ulf-metabox-hide"),e.removeClass("ulf-search-all"))})})},I.fn.ulf_sticky=function(){return this.each(function(){var i=I(this),e=I(_),s=i.find(".ulf-header-inner"),a=parseInt(s.css("padding-left"))+parseInt(s.css("padding-right")),c=0,r=!1,t=function(){r||requestAnimationFrame(function(){var e,t,n;e=i.offset().top,t=Math.max(32,e-c),n=Math.max(b.documentElement.clientWidth,_.innerWidth||0),t<=32&&782<n?(s.css({width:i.outerWidth()-a}),i.css({height:i.outerHeight()}).addClass("ulf-sticky")):(s.removeAttr("style"),i.removeAttr("style").removeClass("ulf-sticky")),r=!1}),r=!0},n=function(){c=e.scrollTop(),t()};e.on("scroll resize",n),n()})},I.fn.ulf_dependency=function(){return this.each(function(){var e=I(this),t=e.children("[data-controller]");if(t.length){var n=I.ulf_deps.createRuleset(),i=I.ulf_deps.createRuleset(),f=[],l=[];t.each(function(){var s=I(this),e=s.data("controller").split("|"),a=s.data("condition").split("|"),c=s.data("value").toString().split("|"),r=!!s.data("depend-global"),o=r?i:n;I.each(e,function(e,t){var n=c[e]||"",i=a[e]||a[0];(o=o.createRule('[data-depend-id="'+t+'"]',i,n)).include(s),r?l.push(t):f.push(t)})}),f.length&&I.ulf_deps.enable(e,n,f),l.length&&I.ulf_deps.enable(T.vars.$body,i,l)}})},I.fn.ulf_field_accordion=function(){return this.each(function(){I(this).find(".ulf-accordion-title").on("click",function(){var e=I(this),t=e.find(".ulf-accordion-icon"),n=e.next();t.hasClass("fa-angle-right")?t.removeClass("fa-angle-right").addClass("fa-angle-down"):t.removeClass("fa-angle-down").addClass("fa-angle-right"),n.data("opened")||(n.ulf_reload_script(),n.data("opened",!0)),n.toggleClass("ulf-accordion-open")})})},I.fn.ulf_field_backup=function(){return this.each(function(){if(_.wp.customize!==y){var t=this,n=I(this),i=(I("body"),n.find(".ulf-import")),s=n.find(".ulf-reset");t.notificationOverlay=function(){wp.customize.notifications&&wp.customize.OverlayNotification&&(wp.customize.state("saved").get()||(wp.customize.state("changesetStatus").set("trash"),wp.customize.each(function(e){e._dirty=!1}),wp.customize.state("saved").set(!0)),wp.customize.notifications.add(new wp.customize.OverlayNotification("ulf_field_backup_notification",{type:"default",message:" ",loading:!0})))},s.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("ulf-reset",{unique:s.data("unique"),nonce:s.data("nonce")}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("ulf_field_backup_notification")}))}),i.on("click",function(e){e.preventDefault(),T.vars.is_confirm&&(t.notificationOverlay(),_.wp.ajax.post("ulf-import",{unique:i.data("unique"),nonce:i.data("nonce"),data:n.find(".ulf-import-data").val()}).done(function(e){_.location.reload(!0)}).fail(function(e){alert(e.error),wp.customize.notifications.remove("ulf_field_backup_notification")}))})}})},I.fn.ulf_field_background=function(){return this.each(function(){I(this).find(".ulf--background-image").ulf_reload_script()})},I.fn.ulf_field_code_editor=function(){return this.each(function(){if("function"==typeof CodeMirror){var t=I(this),i=t.find("textarea"),e=t.find(".CodeMirror"),s=i.data("editor");e.length&&e.remove();var a=setInterval(function(){if(t.is(":visible")){var n=CodeMirror.fromTextArea(i[0],s);if("default"!==s.theme&&-1===T.vars.code_themes.indexOf(s.theme)){var e=I("<link>");I("#ulf-codemirror-css").after(e),e.attr({rel:"stylesheet",id:"ulf-codemirror-"+s.theme+"-css",href:s.cdnURL+"/theme/"+s.theme+".min.css",type:"text/css",media:"all"}),T.vars.code_themes.push(s.theme)}CodeMirror.modeURL=s.cdnURL+"/mode/%N/%N.min.js",CodeMirror.autoLoadMode(n,s.mode),n.on("change",function(e,t){i.val(n.getValue()).trigger("change")}),clearInterval(a)}})}})},I.fn.ulf_field_date=function(){return this.each(function(){var e=I(this),i=e.find("input"),s=e.find(".ulf-date-settings").data("settings"),t={showAnim:"",beforeShow:function(e,t){I(t.dpDiv).addClass("ulf-datepicker-wrapper")},onClose:function(e,t){I(t.dpDiv).removeClass("ulf-datepicker-wrapper")}};s=I.extend({},s,t),2===i.length&&(s=I.extend({},s,{onSelect:function(e){I(this),i.first();var t=i.first().attr("id")===I(this).attr("id")?"minDate":"maxDate",n=I.datepicker.parseDate(s.dateFormat,e);i.not(this).datepicker("option",t,n)}})),i.each(function(){var e=I(this);e.hasClass("hasDatepicker")&&e.removeAttr("id").removeClass("hasDatepicker"),e.datepicker(s)})})},I.fn.ulf_field_fieldset=function(){return this.each(function(){I(this).find(".ulf-fieldset-content").ulf_reload_script()})},I.fn.ulf_field_gallery=function(){return this.each(function(){var a,e=I(this),c=e.find(".ulf-edit-gallery"),r=e.find(".ulf-clear-gallery"),o=e.find("ul"),f=e.find("input");e.find("img");e.on("click",".ulf-button, .ulf-edit-gallery",function(e){var t=I(this),n=f.val(),i=t.hasClass("ulf-edit-gallery")?"edit":"add",s="add"!==i||n.length?"gallery-edit":"gallery";e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&("gallery"===s?(a=_.wp.media({library:{type:"image"},frame:"post",state:"gallery",multiple:!0})).open():(a=_.wp.media.gallery.edit('[gallery ids="'+n+'"]'),"add"===i&&a.setState("gallery-library")),a.on("update",function(e){o.empty();var t=e.models.map(function(e){var t=e.toJSON(),n=t.sizes&&t.sizes.thumbnail&&t.sizes.thumbnail.url?t.sizes.thumbnail.url:t.url;return o.append('<li><img src="'+n+'"></li>'),t.id});f.val(t.join(",")).trigger("change"),r.removeClass("hidden"),c.removeClass("hidden")}))}),r.on("click",function(e){e.preventDefault(),o.empty(),f.val("").trigger("change"),r.addClass("hidden"),c.addClass("hidden")})})},I.fn.ulf_field_group=function(){return this.each(function(){var e=I(this),t=e.children(".ulf-fieldset"),n=t.length?t:e,r=n.children(".ulf-cloneable-wrapper"),i=n.children(".ulf-cloneable-hidden"),o=n.children(".ulf-cloneable-max"),f=n.children(".ulf-cloneable-min"),l=r.data("field-id"),d=Boolean(Number(r.data("title-number"))),h=parseInt(r.data("max")),s=parseInt(r.data("min"));r.hasClass("ui-accordion")&&r.find(".ui-accordion-header-icon").remove();var p=function(e){e.find(".ulf-cloneable-title-number").each(function(e){I(this).html(I(this).closest(".ulf-cloneable-item").index()+1+".")})};r.accordion({header:"> .ulf-cloneable-item > .ulf-cloneable-title",collapsible:!0,active:!1,animate:!1,heightStyle:"content",icons:{header:"ulf-cloneable-header-icon fas fa-angle-right",activeHeader:"ulf-cloneable-header-icon fas fa-angle-down"},activate:function(e,t){var n=t.newPanel,i=t.newHeader;if(n.length&&!n.data("opened")){var s=n.children().first().find(":input").first(),a=i.find(".ulf-cloneable-value");s.on("change keyup",function(e){a.text(s.val())}),n.ulf_reload_script(),n.data("opened",!0),n.data("retry",!1)}else n.data("retry")&&(n.ulf_reload_script_retry(),n.data("retry",!1))}}),r.sortable({axis:"y",handle:".ulf-cloneable-title,.ulf-cloneable-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",start:function(e,t){r.accordion({active:!1}),r.sortable("refreshPositions"),t.item.children(".ulf-cloneable-content").data("retry",!0)},update:function(e,t){T.helper.name_nested_replace(r.children(".ulf-cloneable-item"),l),r.ulf_customizer_refresh(),d&&p(r)}}),n.children(".ulf-cloneable-add").on("click",function(e){e.preventDefault();var t=r.children(".ulf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=i.ulf_clone(!0);n.removeClass("ulf-cloneable-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(l+"[0]",l+"["+t+"]")}),r.append(n),r.accordion("refresh"),r.accordion({active:t}),r.ulf_customizer_refresh(),r.ulf_customizer_listen({closest:!0}),d&&p(r)}});var a=function(e){e.preventDefault();var t=r.children(".ulf-cloneable-item").length;if(f.hide(),h&&h<t+1)o.show();else{var n=I(this).parent().parent(),i=n.children(".ulf-cloneable-helper").ulf_clone(!0),s=n.children(".ulf-cloneable-title").ulf_clone(),a=n.children(".ulf-cloneable-content").ulf_clone(),c=I('<div class="ulf-cloneable-item" />');c.append(i),c.append(s),c.append(a),r.children().eq(n.index()).after(c),T.helper.name_nested_replace(r.children(".ulf-cloneable-item"),l),r.accordion("refresh"),r.ulf_customizer_refresh(),r.ulf_customizer_listen({closest:!0}),d&&p(r)}};r.children(".ulf-cloneable-item").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-clone",a),n.children(".ulf-cloneable-hidden").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-clone",a);var c=function(e){e.preventDefault();var t=r.children(".ulf-cloneable-item").length;o.hide(),f.hide(),s&&t-1<s?f.show():(I(this).closest(".ulf-cloneable-item").remove(),T.helper.name_nested_replace(r.children(".ulf-cloneable-item"),l),r.ulf_customizer_refresh(),d&&p(r))};r.children(".ulf-cloneable-item").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-remove",c),n.children(".ulf-cloneable-hidden").children(".ulf-cloneable-helper").on("click",".ulf-cloneable-remove",c)})},I.fn.ulf_field_icon=function(){return this.each(function(){var n=I(this);n.on("click",".ulf-icon-add",function(e){e.preventDefault();var t=I(this),i=I("#ulf-modal-icon");i.removeClass("hidden"),T.vars.$icon_target=n,T.vars.icon_modal_loaded||(i.find(".ulf-modal-loading").show(),_.wp.ajax.post("ulf-get-icons",{nonce:t.data("nonce")}).done(function(e){i.find(".ulf-modal-loading").hide(),T.vars.icon_modal_loaded=!0;var n=i.find(".ulf-modal-load").html(e.content);n.on("click","i",function(e){e.preventDefault();var t=I(this).attr("title");T.vars.$icon_target.find(".ulf-icon-preview i").removeAttr("class").addClass(t),T.vars.$icon_target.find(".ulf-icon-preview").removeClass("hidden"),T.vars.$icon_target.find(".ulf-icon-remove").removeClass("hidden"),T.vars.$icon_target.find("input").val(t).trigger("change"),i.addClass("hidden")}),i.on("change keyup",".ulf-icon-search",function(){var t=I(this).val();n.find("i").each(function(){var e=I(this);e.attr("title").search(new RegExp(t,"i"))<0?e.hide():e.show()})}),i.on("click",".ulf-modal-close, .ulf-modal-overlay",function(){i.addClass("hidden")})}).fail(function(e){i.find(".ulf-modal-loading").hide(),i.find(".ulf-modal-load").html(e.error),i.on("click",function(){i.addClass("hidden")})}))}),n.on("click",".ulf-icon-remove",function(e){e.preventDefault(),n.find(".ulf-icon-preview").addClass("hidden"),n.find("input").val("").trigger("change"),I(this).addClass("hidden")})})},I.fn.ulf_field_map=function(){return this.each(function(){if("undefined"!=typeof L){var e=I(this),t=e.find(".ulf--map-osm"),n=e.find(".ulf--map-search input"),i=e.find(".ulf--latitude"),s=e.find(".ulf--longitude"),a=e.find(".ulf--zoom"),c=t.data("map"),r=L.map(t.get(0),c);L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(r);var o=L.marker(c.center,{draggable:!0}).addTo(r),f=function(e){i.val(e.lat),s.val(e.lng),a.val(r.getZoom())};r.on("click",function(e){o.setLatLng(e.latlng),f(e.latlng)}),r.on("zoom",function(){f(o.getLatLng())}),o.on("drag",function(){f(o.getLatLng())}),n.length||(n=I('[data-depend-id="'+e.find(".ulf--address-field").data("address-field")+'"]'));var l={};n.autocomplete({source:function(e,n){var i=e.term;i in l?n(l[i]):I.get("https://nominatim.openstreetmap.org/search",{format:"json",q:i},function(e){var t;t=e.length?e.map(function(e){return{value:e.display_name,label:e.display_name,lat:e.lat,lon:e.lon}},"json"):[{value:"no-data",label:"No Results."}],l[i]=t,n(t)})},select:function(e,t){if("no-data"===t.item.value)return!1;var n=L.latLng(t.item.lat,t.item.lon);r.panTo(n),o.setLatLng(n),f(n)},create:function(e,t){I(this).autocomplete("widget").addClass("ulf-map-ui-autocomplate")}});var d=function(){var e=L.latLng(i.val(),s.val());r.panTo(e),o.setLatLng(e)};i.on("change",d),s.on("change",d)}})},I.fn.ulf_field_link=function(){return this.each(function(){var s=I(this),e=s.find(".ulf--link"),a=s.find(".ulf--add"),c=s.find(".ulf--edit"),r=s.find(".ulf--remove"),o=s.find(".ulf--result"),t=T.helper.uid("ulf-wplink-textarea-");a.on("click",function(e){e.preventDefault(),_.wpLink.open(t)}),c.on("click",function(e){e.preventDefault(),a.trigger("click"),I("#wp-link-url").val(s.find(".ulf--url").val()),I("#wp-link-text").val(s.find(".ulf--text").val()),I("#wp-link-target").prop("checked","_blank"===s.find(".ulf--target").val())}),r.on("click",function(e){e.preventDefault(),s.find(".ulf--url").val("").trigger("change"),s.find(".ulf--text").val(""),s.find(".ulf--target").val(""),a.removeClass("hidden"),c.addClass("hidden"),r.addClass("hidden"),o.parent().addClass("hidden")}),e.attr("id",t).on("change",function(){var e=_.wpLink.getAttrs(),t=e.href,n=I("#wp-link-text").val(),i=e.target?e.target:"";s.find(".ulf--url").val(t).trigger("change"),s.find(".ulf--text").val(n),s.find(".ulf--target").val(i),o.html('{url:"'+t+'", text:"'+n+'", target:"'+i+'"}'),a.addClass("hidden"),c.removeClass("hidden"),r.removeClass("hidden"),o.parent().removeClass("hidden")})})},I.fn.ulf_field_media=function(){return this.each(function(){var i,s=I(this),a=s.find(".ulf--button"),c=s.find(".ulf--remove"),r=a.data("library")&&a.data("library").split(",")||"",o=!!s.hasClass("ulf-assign-field-background")&&s.closest(".ulf-field-background").find(".ulf--auto-attributes");a.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(i||(i=_.wp.media({library:{type:r}})).on("select",function(){var e,t=i.state().get("selection").first().attributes,n=a.data("preview-size")||"thumbnail";r.length&&-1===r.indexOf(t.subtype)&&-1===r.indexOf(t.type)||(s.find(".ulf--id").val(t.id),s.find(".ulf--width").val(t.width),s.find(".ulf--height").val(t.height),s.find(".ulf--alt").val(t.alt),s.find(".ulf--title").val(t.title),s.find(".ulf--description").val(t.description),e=void 0!==t.sizes&&void 0!==t.sizes.thumbnail&&"thumbnail"===n?t.sizes.thumbnail.url:void 0!==t.sizes&&void 0!==t.sizes.full?t.sizes.full.url:"svg"===t.url.split(".").pop().toLowerCase()?t.url:t.icon,o&&o.removeClass("ulf--attributes-hidden"),c.removeClass("hidden"),s.find(".ulf--preview").removeClass("hidden"),s.find(".ulf--src").attr("src",e),s.find(".ulf--thumbnail").val(e),s.find(".ulf--url").val(t.url).trigger("change"))}),i.open())}),c.on("click",function(e){e.preventDefault(),o&&o.addClass("ulf--attributes-hidden"),c.addClass("hidden"),s.find("input").val(""),s.find(".ulf--preview").addClass("hidden"),s.find(".ulf--url").trigger("change")})})},I.fn.ulf_field_repeater=function(){return this.each(function(){var e=I(this),t=e.children(".ulf-fieldset"),n=t.length?t:e,c=n.children(".ulf-repeater-wrapper"),i=n.children(".ulf-repeater-hidden"),r=n.children(".ulf-repeater-max"),o=n.children(".ulf-repeater-min"),f=c.data("field-id"),l=parseInt(c.data("max")),s=parseInt(c.data("min"));c.children(".ulf-repeater-item").children(".ulf-repeater-content").ulf_reload_script(),c.sortable({axis:"y",handle:".ulf-repeater-sort",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){T.helper.name_nested_replace(c.children(".ulf-repeater-item"),f),c.ulf_customizer_refresh(),t.item.ulf_reload_script_retry()}}),n.children(".ulf-repeater-add").on("click",function(e){e.preventDefault();var t=c.children(".ulf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=i.ulf_clone(!0);n.removeClass("ulf-repeater-hidden"),n.find(':input[name!="_pseudo"]').each(function(){this.name=this.name.replace("___","").replace(f+"[0]",f+"["+t+"]")}),c.append(n),n.children(".ulf-repeater-content").ulf_reload_script(),c.ulf_customizer_refresh(),c.ulf_customizer_listen({closest:!0})}});var a=function(e){e.preventDefault();var t=c.children(".ulf-repeater-item").length;if(o.hide(),l&&l<t+1)r.show();else{var n=I(this).parent().parent().parent(),i=n.children(".ulf-repeater-content").ulf_clone(),s=n.children(".ulf-repeater-helper").ulf_clone(!0),a=I('<div class="ulf-repeater-item" />');a.append(i),a.append(s),c.children().eq(n.index()).after(a),a.children(".ulf-repeater-content").ulf_reload_script(),T.helper.name_nested_replace(c.children(".ulf-repeater-item"),f),c.ulf_customizer_refresh(),c.ulf_customizer_listen({closest:!0})}};c.children(".ulf-repeater-item").children(".ulf-repeater-helper").on("click",".ulf-repeater-clone",a),n.children(".ulf-repeater-hidden").children(".ulf-repeater-helper").on("click",".ulf-repeater-clone",a);var d=function(e){e.preventDefault();var t=c.children(".ulf-repeater-item").length;r.hide(),o.hide(),s&&t-1<s?o.show():(I(this).closest(".ulf-repeater-item").remove(),T.helper.name_nested_replace(c.children(".ulf-repeater-item"),f),c.ulf_customizer_refresh())};c.children(".ulf-repeater-item").children(".ulf-repeater-helper").on("click",".ulf-repeater-remove",d),n.children(".ulf-repeater-hidden").children(".ulf-repeater-helper").on("click",".ulf-repeater-remove",d)})},I.fn.ulf_field_slider=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".ulf-slider-ui"),i=n.data(),s=n.val()||0;t.hasClass("ui-slider")&&t.empty(),t.slider({range:"min",value:s,min:i.min||0,max:i.max||100,step:i.step||1,slide:function(e,t){n.val(t.value).trigger("change")}}),n.on("keyup",function(){t.slider("value",n.val())})})},I.fn.ulf_field_sortable=function(){return this.each(function(){var n=I(this).find(".ulf-sortable");n.sortable({axis:"y",helper:"original",cursor:"move",placeholder:"widget-placeholder",update:function(e,t){n.ulf_customizer_refresh()}}),n.find(".ulf-sortable-content").ulf_reload_script()})},I.fn.ulf_field_sorter=function(){return this.each(function(){var i=I(this),e=i.find(".ulf-enabled"),t=i.find(".ulf-disabled"),n=!!t.length&&t;e.sortable({connectWith:n,placeholder:"ui-sortable-placeholder",update:function(e,t){var n=t.item.find("input");t.item.parent().hasClass("ulf-enabled")?n.attr("name",n.attr("name").replace("disabled","enabled")):n.attr("name",n.attr("name").replace("enabled","disabled")),i.ulf_customizer_refresh()}}),n&&n.sortable({connectWith:e,placeholder:"ui-sortable-placeholder",update:function(e,t){i.ulf_customizer_refresh()}})})},I.fn.ulf_field_spinner=function(){return this.each(function(){var e=I(this),n=e.find("input"),t=e.find(".ui-button"),i=n.data();t.length&&t.remove(),n.spinner({min:i.min||0,max:i.max||100,step:i.step||1,create:function(e,t){i.unit&&n.after('<span class="ui-button ulf--unit">'+i.unit+"</span>")},spin:function(e,t){n.val(t.value).trigger("change")}})})},I.fn.ulf_field_switcher=function(){return this.each(function(){var n=I(this).find(".ulf--switcher");n.on("click",function(){var e=0,t=n.find("input");n.hasClass("ulf--active")?n.removeClass("ulf--active"):(e=1,n.addClass("ulf--active")),t.val(e).trigger("change")})})},I.fn.ulf_field_tabbed=function(){return this.each(function(){var e=I(this),t=e.find(".ulf-tabbed-nav a"),s=e.find(".ulf-tabbed-content");s.eq(0).ulf_reload_script(),t.on("click",function(e){e.preventDefault();var t=I(this),n=t.index(),i=s.eq(n);t.addClass("ulf-tabbed-active").siblings().removeClass("ulf-tabbed-active"),i.ulf_reload_script(),i.removeClass("hidden").siblings().addClass("hidden")})})},I.fn.ulf_field_typography=function(){return this.each(function(){var j=this,L=I(this),i=[],q=ulf_typography_json.webfonts,t=ulf_typography_json.googlestyles,A=ulf_typography_json.defaultstyles;j.sanitize_subset=function(e){return e=(e=e.replace("-ext"," Extended")).charAt(0).toUpperCase()+e.slice(1)},j.sanitize_style=function(e){return t[e]?t[e]:e},j.load_google_font=function(e,t,n){e&&"object"==typeof WebFont&&(t=t?t.replace("normal",""):"",n=n?n.replace("normal",""):"",(t||n)&&(e=e+":"+t+n),-1===i.indexOf(e)&&WebFont.load({google:{families:[e]}}),i.push(e))},j.append_select_options=function(e,t,s,a,c){e.find("option").not(":first").remove();var r="";I.each(t,function(e,t){var n,i=t;n=c?s&&-1!==s.indexOf(t)?" selected":"":s&&s===t?" selected":"","subset"===a?i=j.sanitize_subset(t):"style"===a&&(i=j.sanitize_style(t)),r+='<option value="'+t+'"'+n+">"+i+"</option>"}),e.append(r).trigger("ulf.change").trigger("chosen:updated")},j.init=function(){var l=[],e=L.find(".ulf--typography"),d=L.find(".ulf--type"),h=L.find(".ulf--block-font-style"),v=e.data("unit"),g=e.data("line-height-unit"),t=e.data("exclude")?e.data("exclude").split(","):[];L.find(".ulf--chosen").length&&L.find("select").each(function(){var e=I(this),t=e.parent().find(".chosen-container");t.length&&t.remove(),e.chosen({allow_single_deselect:!0,disable_search_threshold:15,width:"100%"})});var m=L.find(".ulf--font-family"),i=m.val();m.find("option").not(":first-child").remove();var s="";I.each(q,function(n,e){t&&-1!==t.indexOf(n)||(s+='<optgroup label="'+e.label+'">',I.each(e.fonts,function(e,t){s+='<option value="'+(t="object"==typeof t?e:t)+'" data-type="'+n+'"'+(t===i?" selected":"")+">"+t+"</option>"}),s+="</optgroup>")}),m.append(s).trigger("chosen:updated");var p=L.find(".ulf--block-font-style");if(p.length){var u=L.find(".ulf--font-style-select"),_=u.val()?u.val().replace(/normal/g,""):"";u.on("change ulf.change",function(e){var t=u.val();!t&&l&&-1===l.indexOf("normal")&&(t=l[0]);var n=t&&"italic"!==t&&"normal"===t?"normal":"",i=t&&"italic"!==t&&"normal"!==t?t.replace("italic",""):n,s=t&&"italic"===t.substr(-6)?"italic":"";L.find(".ulf--font-weight").val(i),L.find(".ulf--font-style").val(s)});var b=L.find(".ulf--block-extra-styles");if(b.length)var y=L.find(".ulf--extra-styles"),w=y.val()}var C=L.find(".ulf--block-subset");if(C.length)var k=L.find(".ulf--subset"),x=k.val(),z=k.data("multiple")||!1;var D=L.find(".ulf--block-backup-font-family");m.on("change ulf.change",function(e){C.length&&C.addClass("hidden"),b.length&&b.addClass("hidden"),D.length&&D.addClass("hidden");var t=m.find(":selected"),n=t.val(),i=t.data("type");if(i&&n){if("google"!==i&&"custom"!==i||!D.length||D.removeClass("hidden"),p.length){var s=A;"google"===i&&q[i].fonts[n][0]?s=q[i].fonts[n][0]:"custom"===i&&q[i].fonts[n]&&(s=q[i].fonts[n]);var a=-1!==(l=s).indexOf("normal")?"normal":s[0],c=_&&-1!==s.indexOf(_)?_:a;j.append_select_options(u,s,c,"style"),_=!1,p.removeClass("hidden"),"google"===i&&b.length&&1<s.length&&(j.append_select_options(y,s,w,"style",!0),w=!1,b.removeClass("hidden"))}if("google"===i&&C.length&&q[i].fonts[n][1]){var r=q[i].fonts[n][1],o=r.length<2&&"latin"!==r[0]?r[0]:"",f=x&&-1!==r.indexOf(x)?x:o;f=z&&x?x:f,j.append_select_options(k,r,f,"subset",z),x=!1,C.removeClass("hidden")}}else h.find(":input").val(""),C.length&&(k.find("option").not(":first-child").remove(),k.trigger("chosen:updated")),p.length&&(u.find("option").not(":first-child").remove(),u.trigger("chosen:updated"));d.val(i)}).trigger("ulf.change");var O=L.find(".ulf--block-preview");if(O.length){var S=L.find(".ulf--preview");L.on("change",T.helper.debounce(function(e){O.removeClass("hidden");var t=m.val(),n=L.find(".ulf--font-weight").val(),i=L.find(".ulf--font-style").val(),s=L.find(".ulf--font-size").val(),a=L.find(".ulf--font-variant").val(),c=L.find(".ulf--line-height").val(),r=L.find(".ulf--text-align").val(),o=L.find(".ulf--text-transform").val(),f=L.find(".ulf--text-decoration").val(),l=L.find(".ulf--color").val(),d=L.find(".ulf--word-spacing").val(),h=L.find(".ulf--letter-spacing").val(),p=L.find(".ulf--custom-style").val();"google"===L.find(".ulf--type").val()&&j.load_google_font(t,n,i);var u={};t&&(u.fontFamily=t),n&&(u.fontWeight=n),i&&(u.fontStyle=i),a&&(u.fontVariant=a),s&&(u.fontSize=s+v),c&&(u.lineHeight=c+g),h&&(u.letterSpacing=h+v),d&&(u.wordSpacing=d+v),r&&(u.textAlign=r),o&&(u.textTransform=o),f&&(u.textDecoration=f),l&&(u.color=l),S.removeAttr("style"),p&&S.attr("style",p),S.css(u)},100)),O.on("click",function(){S.toggleClass("ulf--black-background");var e=O.find(".ulf--toggle");e.hasClass("fa-toggle-off")?e.removeClass("fa-toggle-off").addClass("fa-toggle-on"):e.removeClass("fa-toggle-on").addClass("fa-toggle-off")}),O.hasClass("hidden")||L.trigger("change")}},j.init()})},I.fn.ulf_field_upload=function(){return this.each(function(){var t,e=I(this),n=e.find("input"),i=e.find(".ulf--button"),s=e.find(".ulf--remove"),a=i.data("library")&&i.data("library").split(",")||"";n.on("change",function(e){n.val()?s.removeClass("hidden"):s.addClass("hidden")}),i.on("click",function(e){e.preventDefault(),void 0!==_.wp&&_.wp.media&&_.wp.media.gallery&&(t||(t=_.wp.media({library:{type:a}})).on("select",function(){var e=t.state().get("selection").first().attributes;a.length&&-1===a.indexOf(e.subtype)&&-1===a.indexOf(e.type)||n.val(e.url).trigger("change")}),t.open())}),s.on("click",function(e){e.preventDefault(),n.val("").trigger("change")})})},I.fn.ulf_field_wp_editor=function(){return this.each(function(){if(void 0!==_.wp.editor&&void 0!==_.tinyMCEPreInit&&void 0!==_.tinyMCEPreInit.mceInit.ulf_wp_editor){var e=I(this),t=e.find(".ulf-wp-editor"),n=e.find("textarea");(e.find(".wp-editor-wrap").length||e.find(".mce-container").length)&&(t.empty(),t.append(n),n.css("display",""));var i=T.helper.uid("ulf-editor-");n.attr("id",i);var s={tinymce:_.tinyMCEPreInit.mceInit.ulf_wp_editor,quicktags:_.tinyMCEPreInit.qtInit.ulf_wp_editor},a=t.data("editor-settings"),c=wp.oldEditor?wp.oldEditor:wp.editor;c&&c.hasOwnProperty("autop")&&(wp.editor.autop=c.autop,wp.editor.removep=c.removep,wp.editor.initialize=c.initialize);s.tinymce=I.extend({},s.tinymce,{selector:"#"+i,setup:function(t){t.on("change keyup",function(){var e=a.wpautop?t.getContent():wp.editor.removep(t.getContent());n.val(e).trigger("change")})}}),!1===a.tinymce&&(s.tinymce=!1,t.addClass("ulf-no-tinymce")),!1===a.quicktags&&(s.quicktags=!1,t.addClass("ulf-no-quicktags"));var r=setInterval(function(){e.is(":visible")&&(_.wp.editor.initialize(i,s),clearInterval(r))});if(a.media_buttons&&_.ulf_media_buttons){var o=t.find(".wp-media-buttons");if(o.length)o.find(".ulf-shortcode-button").data("editor-id",i);else{var f=I(_.ulf_media_buttons);f.find(".ulf-shortcode-button").data("editor-id",i),t.prepend(f)}}}})},I.fn.ulf_confirm=function(){return this.each(function(){I(this).on("click",function(e){var t=I(this).data("confirm")||_.ulf_vars.i18n.confirm;if(!confirm(t))return e.preventDefault(),!1;T.vars.is_confirm=!0,T.vars.form_modified=!1})})},I.fn.serializeObject=function(){var s={};return I.each(this.serializeArray(),function(e,t){var n=t.name,i=t.value;s[n]=s[n]===y?i:I.isArray(s[n])?s[n].concat(i):[s[n],i]}),s},I.fn.ulf_save=function(){return this.each(function(){var i,s=I(this),c=I(".ulf-save"),r=I(".ulf-options"),o=!1;s.on("click",function(e){if(!o){var t=s.data("save"),n=s.val();c.attr("value",t),s.hasClass("ulf-save-ajax")?(e.preventDefault(),r.addClass("ulf-saving"),c.prop("disabled",!0),_.wp.ajax.post("ulf_"+r.data("unique")+"_ajax_save",{data:I("#ulf-form").serializeJSONULF()}).done(function(e){if(I(".ulf-error").remove(),Object.keys(e.errors).length){var a='<i class="ulf-label-error ulf-error">!</i>';I.each(e.errors,function(e,t){var n=I('[data-depend-id="'+e+'"]'),i=I("#ulf-tab-link-"+(n.closest(".ulf-section").index()+1)),s=i.closest(".ulf-tab-depth-0");n.closest(".ulf-fieldset").append('<p class="ulf-error ulf-error-text">'+t+"</p>"),i.find(".ulf-error").length||i.append(a),s.find(".ulf-arrow .ulf-error").length||s.find(".ulf-arrow").append(a)})}r.removeClass("ulf-saving"),c.prop("disabled",!1).attr("value",n),o=!1,T.vars.form_modified=!1,T.vars.$form_warning.hide(),clearTimeout(i);var t=I(".ulf-form-success");t.empty().append(e.notice).fadeIn("fast",function(){i=setTimeout(function(){t.fadeOut("fast")},1e3)})}).fail(function(e){alert(e.error)})):T.vars.form_modified=!1}o=!0})})},I.fn.ulf_options=function(){return this.each(function(){var e=I(this),t=e.find(".ulf-content"),n=e.find(".ulf-form-success"),i=e.find(".ulf-form-warning"),s=e.find(".ulf-header .ulf-save");(T.vars.$form_warning=i).length&&(_.onbeforeunload=function(){return!!T.vars.form_modified||y},t.on("change keypress",":input",function(){T.vars.form_modified||(n.hide(),i.fadeIn("fast"),T.vars.form_modified=!0)})),n.hasClass("ulf-form-show")&&setTimeout(function(){n.fadeOut("fast")},1e3),I(b).keydown(function(e){if((e.ctrlKey||e.metaKey)&&83===e.which)return s.trigger("click"),e.preventDefault(),!1})})},I.fn.ulf_taxonomy=function(){return this.each(function(){var e=I(this),t=e.parents("form");if("addtag"===t.attr("id")){var n=t.find("#submit"),i=e.find(".ulf-field").ulf_clone();n.on("click",function(){t.find(".form-required").hasClass("form-invalid")||(e.data("inited",!1),e.empty(),e.html(i),i=i.ulf_clone(),e.ulf_reload_script())})}})},I.fn.ulf_shortcode=function(){var m=this;return m.shortcode_parse=function(e,n){var i="";return I.each(e,function(e,t){i+="["+(n=n||e),I.each(t,function(e,t){"content"===e?(i+="]",i+=t,i+="[/"+n):i+=m.shortcode_tags(e,t)}),i+="]"}),i},m.shortcode_tags=function(e,t){var n="";return""!==t&&("object"!=typeof t||I.isArray(t)?n+=" "+e.replace("-","_")+'="'+t.toString()+'"':I.each(t,function(e,t){switch(e){case"background-image":t=t.url?t.url:""}""!==t&&(n+=" "+e.replace("-","_")+'="'+t.toString()+'"')})),n},m.insertAtChars=function(e,t){var n=void 0!==e[0].name?e[0]:e;return n.value.length&&void 0!==n.selectionStart?(n.focus(),n.value.substring(0,n.selectionStart)+t+n.value.substring(n.selectionEnd,n.value.length)):(n.focus(),t)},m.send_to_editor=function(e,t){var n;if("undefined"!=typeof tinymce&&(n=tinymce.get(t)),n&&!n.isHidden())n.execCommand("mceInsertContent",!1,e);else{var i=I("#"+t);i.val(m.insertAtChars(i,e)).trigger("change")}},this.each(function(){var c,r,o,n,f,l,d,s,h,p=I(this),i=p.find(".ulf-modal-load"),u=(p.find(".ulf-modal-content"),p.find(".ulf-modal-insert")),a=p.find(".ulf-modal-loading"),t=p.find("select"),v=p.data("modal-id"),g=p.data("nonce");I(b).on("click",'.ulf-shortcode-button[data-modal-id="'+v+'"]',function(e){e.preventDefault(),h=I(this),c=h.data("editor-id")||!1,r=h.data("target-id")||!1,o=h.data("gutenberg-id")||!1,p.removeClass("hidden"),p.hasClass("ulf-shortcode-single")&&f===y&&t.trigger("change")}),t.on("change",function(){var e=I(this),t=e.find(":selected");n=e.val(),f=t.data("shortcode"),l=t.data("view")||"normal",d=t.data("group")||f,i.empty(),n?(a.show(),_.wp.ajax.post("ulf-get-shortcode-"+v,{shortcode_key:n,nonce:g}).done(function(e){a.hide();var t=I(e.content).appendTo(i);u.parent().removeClass("hidden"),s=t.find(".ulf--repeat-shortcode").ulf_clone(),t.ulf_reload_script(),t.find(".ulf-fields").ulf_reload_script()})):u.parent().addClass("hidden")}),u.on("click",function(e){if(e.preventDefault(),!u.prop("disabled")&&!u.attr("disabled")){var i="",t=p.find(".ulf-field:not(.ulf-depend-on)").find(":input:not(.ignore)").serializeObjectULF();switch(l){case"contents":var n=f?t[f]:t;I.each(n,function(e,t){var n=f||e;i+="["+n+"]"+t+"[/"+n+"]"});break;case"group":i+="["+f,I.each(t[f],function(e,t){i+=m.shortcode_tags(e,t)}),i+="]",i+=m.shortcode_parse(t[d],d),i+="[/"+f+"]";break;case"repeater":i+=m.shortcode_parse(t[d],d);break;default:i+=m.shortcode_parse(t)}if(i=""===i?"["+f+"]":i,o){var s=_.ulf_gutenberg_props.attributes.hasOwnProperty("shortcode")?_.ulf_gutenberg_props.attributes.shortcode:"";_.ulf_gutenberg_props.setAttributes({shortcode:s+i})}else if(c)m.send_to_editor(i,c);else{var a=r?I(r):h.parent().find("textarea");a.val(m.insertAtChars(a,i)).trigger("change")}p.addClass("hidden")}}),p.on("click",".ulf--repeat-button",function(e){e.preventDefault();var t=p.find(".ulf--repeatable"),n=s.ulf_clone(),i=n.find(".ulf-repeat-remove");n.appendTo(t);n.find(".ulf-fields").ulf_reload_script(),T.helper.name_nested_replace(p.find(".ulf--repeat-shortcode"),d),i.on("click",function(){n.remove(),T.helper.name_nested_replace(p.find(".ulf--repeat-shortcode"),d)})}),p.on("click",".ulf-modal-close, .ulf-modal-overlay",function(){p.addClass("hidden")})})},"function"==typeof Color&&(Color.prototype.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var t=6-e.length-1;0<=t;t--)e="0"+e;return"#"+e}),T.funcs.parse_color=function(e){var t=e.replace(/\s+/g,""),n=-1!==t.indexOf("rgba")?parseFloat(100*t.replace(/^.*,(.+)\)/,"$1")):100;return{value:t,transparent:n,rgba:n<100}},I.fn.ulf_color=function(){return this.each(function(){var c,r=I(this),o=T.funcs.parse_color(r.val()),e=!_.ulf_vars.color_palette.length||_.ulf_vars.color_palette;r.hasClass("wp-color-picker")&&r.closest(".wp-picker-container").after(r).remove(),r.wpColorPicker({palettes:e,change:function(e,t){var n=t.color.toString();c.removeClass("ulf--transparent-active"),c.find(".ulf--transparent-offset").css("background-color",n),r.val(n).trigger("change")},create:function(){c=r.closest(".wp-picker-container");var i=r.data("a8cIris"),e=I('<div class="ulf--transparent-wrap"><div class="ulf--transparent-slider"></div><div class="ulf--transparent-offset"></div><div class="ulf--transparent-text"></div><div class="ulf--transparent-button">transparent <i class="fas fa-toggle-off"></i></div></div>').appendTo(c.find(".wp-picker-holder")),s=e.find(".ulf--transparent-slider"),a=e.find(".ulf--transparent-text"),n=e.find(".ulf--transparent-offset"),t=e.find(".ulf--transparent-button");"transparent"===r.val()&&c.addClass("ulf--transparent-active"),t.on("click",function(){"transparent"!==r.val()?(r.val("transparent").trigger("change").removeClass("iris-error"),c.addClass("ulf--transparent-active")):(r.val(i._color.toString()).trigger("change"),c.removeClass("ulf--transparent-active"))}),s.slider({value:o.transparent,step:1,min:0,max:100,slide:function(e,t){var n=parseFloat(t.value/100);i._color._alpha=n,r.wpColorPicker("color",i._color.toString()),a.text(1===n||0===n?"":n)},create:function(){var e=parseFloat(o.transparent/100),t=e<1?e:"";a.text(t),n.css("background-color",o.value),c.on("click",".wp-picker-clear",function(){i._color._alpha=1,a.text(""),s.slider("option","value",100),c.removeClass("ulf--transparent-active"),r.trigger("change")}),c.on("click",".wp-picker-default",function(){var e=T.funcs.parse_color(r.data("default-color")),t=parseFloat(e.transparent/100),n=t<1?t:"";i._color._alpha=t,a.text(n),s.slider("option","value",e.transparent),"transparent"===e.value&&(r.removeClass("iris-error"),c.addClass("ulf--transparent-active"))})}})}})})},I.fn.ulf_chosen=function(){return this.each(function(){var a=I(this),e=a.parent().find(".chosen-container"),t=a.hasClass("ulf-chosen-sortable")||!1,n=a.hasClass("ulf-chosen-ajax")||!1,i=a.attr("multiple")||!1,s=i?"100%":"auto",c=I.extend({allow_single_deselect:!0,disable_search_threshold:10,width:s,no_results_text:_.ulf_vars.i18n.no_results_text},a.data("chosen-settings"));if(e.length&&e.remove(),n){var r=I.extend({data:{type:"post",nonce:""},allow_single_deselect:!0,disable_search_threshold:-1,width:"100%",min_length:3,type_delay:500,typing_text:_.ulf_vars.i18n.typing_text,searching_text:_.ulf_vars.i18n.searching_text,no_results_text:_.ulf_vars.i18n.no_results_text},a.data("chosen-settings"));a.ULFAjaxChosen(r)}else a.chosen(c);if(i){var o=a.parent().find(".ulf-hide-select"),f=o.val()||[];a.on("change",function(e,t){t&&t.selected?o.append('<option value="'+t.selected+'" selected="selected">'+t.selected+"</option>"):t&&t.deselected&&o.find('option[value="'+t.deselected+'"]').remove(),_.wp.customize!==y&&0===o.children().length&&o.data("customize-setting-link")&&_.wp.customize.control(o.data("customize-setting-link")).setting.set(""),o.trigger("change")}),a.ULFChosenOrder(f,!0)}if(t){var l=a.parent().find(".chosen-container").find(".chosen-choices");l.bind("mousedown",function(e){I(e.target).is("span")&&e.stopPropagation()}),l.sortable({items:"li:not(.search-field)",helper:"orginal",cursor:"move",placeholder:"search-choice-placeholder",start:function(e,t){t.placeholder.width(t.item.innerWidth()),t.placeholder.height(t.item.innerHeight())},update:function(e,t){var i="",s=a.data("chosen"),n=a.parent().find(".ulf-hide-select");l.find(".search-choice-close").each(function(){var n=I(this).data("option-array-index");I.each(s.results_data,function(e,t){t.array_index===n&&(i+='<option value="'+t.value+'" selected>'+t.value+"</option>")})}),n.children().remove(),n.append(i),n.trigger("change")}})}})},I.fn.ulf_checkbox=function(){return this.each(function(){var e=I(this),t=e.find(".ulf--input"),n=e.find(".ulf--checkbox");n.on("click",function(){t.val(Number(n.prop("checked"))).trigger("change")})})},I.fn.ulf_siblings=function(){return this.each(function(){var t=I(this),e=t.find(".ulf--sibling"),n=t.data("multiple")||!1;e.on("click",function(){var e=I(this);n?e.hasClass("ulf--active")?(e.removeClass("ulf--active"),e.find("input").prop("checked",!1).trigger("change")):(e.addClass("ulf--active"),e.find("input").prop("checked",!0).trigger("change")):(t.find("input").prop("checked",!1),e.find("input").prop("checked",!0).trigger("change"),e.addClass("ulf--active").siblings().removeClass("ulf--active"))})})},I.fn.ulf_help=function(){return this.each(function(){var e,t,n=I(this);n.on({mouseenter:function(){e=I('<div class="ulf-tooltip"></div>').html(n.find(".ulf-help-text").html()).appendTo("body"),t=T.vars.is_rtl?n.offset().left+24:n.offset().left-e.outerWidth(),e.css({top:n.offset().top-(e.outerHeight()/2-14),left:t})},mouseleave:function(){e!==y&&e.remove()}})})},I.fn.ulf_customizer_refresh=function(){return this.each(function(){var e=I(this),t=e.closest(".ulf-customize-complex");if(t.length){var n=t.data("unique-id");if(n===y)return;var i=t.find(":input"),s=t.data("option-id"),a=i.serializeObjectULF(),c=!I.isEmptyObject(a)&&a[n]&&a[n][s]?a[n][s]:"",r=_.wp.customize.control(n+"["+s+"]");r.setting._value=null,r.setting.set(c)}else e.find(":input").first().trigger("change");I(b).trigger("ulf-customizer-refresh",e)})},I.fn.ulf_customizer_listen=function(e){var t=I.extend({closest:!1},e);return this.each(function(){if(_.wp.customize!==y){var n=t.closest?I(this).closest(".ulf-customize-complex"):I(this),e=n.find(":input"),i=n.data("unique-id"),s=n.data("option-id");i!==y&&e.on("change keyup",function(){var e=n.find(":input").serializeObjectULF(),t=!I.isEmptyObject(e)&&e[i]&&e[i][s]?e[i][s]:"";_.wp.customize.control(i+"["+s+"]").setting.set(t)})}})},I(b).on("expanded",".control-section",function(){var e=I(this);if(e.hasClass("open")&&!e.data("inited")){var t=e.find(".ulf-customize-field"),n=e.find(".ulf-customize-complex");t.length&&(e.ulf_dependency(),t.ulf_reload_script({dependency:!1}),n.ulf_customizer_listen()),e.data("inited",!0)}}),T.vars.$window.on("resize ulf.resize",T.helper.debounce(function(e){(-1<navigator.userAgent.indexOf("AppleWebKit/")?T.vars.$window.width():_.innerWidth)<=782&&!T.vars.onloaded&&(I(".ulf-section").ulf_reload_script(),T.vars.onloaded=!0)},200)).trigger("ulf.resize"),I.fn.ulf_widgets=function(){this.length&&(I(b).on("widget-added widget-updated",function(e,t){t.find(".ulf-fields").ulf_reload_script()}),I(".widgets-sortables, .control-section-sidebar").on("sortstop",function(e,t){t.item.find(".ulf-fields").ulf_reload_script_retry()}),I(b).on("click",".widget-top",function(e){I(this).parent().find(".ulf-fields").ulf_reload_script()}))},I.fn.ulf_nav_menu=function(){return this.each(function(){var e=I(this);e.on("click","a.item-edit",function(){I(this).closest("li.menu-item").find(".ulf-fields").ulf_reload_script()}),e.on("sortstop",function(e,t){t.item.find(".ulf-fields").ulf_reload_script_retry()})})},I.fn.ulf_reload_script_retry=function(){return this.each(function(){var e=I(this);e.data("inited")&&e.children(".ulf-field-wp_editor").ulf_field_wp_editor()})},I.fn.ulf_reload_script=function(e){var t=I.extend({dependency:!0},e);return this.each(function(){var e=I(this);e.data("inited")||(e.children(".ulf-field-accordion").ulf_field_accordion(),e.children(".ulf-field-backup").ulf_field_backup(),e.children(".ulf-field-background").ulf_field_background(),e.children(".ulf-field-code_editor").ulf_field_code_editor(),e.children(".ulf-field-date").ulf_field_date(),e.children(".ulf-field-fieldset").ulf_field_fieldset(),e.children(".ulf-field-gallery").ulf_field_gallery(),e.children(".ulf-field-group").ulf_field_group(),e.children(".ulf-field-icon").ulf_field_icon(),e.children(".ulf-field-link").ulf_field_link(),e.children(".ulf-field-media").ulf_field_media(),e.children(".ulf-field-map").ulf_field_map(),e.children(".ulf-field-repeater").ulf_field_repeater(),e.children(".ulf-field-slider").ulf_field_slider(),e.children(".ulf-field-sortable").ulf_field_sortable(),e.children(".ulf-field-sorter").ulf_field_sorter(),e.children(".ulf-field-spinner").ulf_field_spinner(),e.children(".ulf-field-switcher").ulf_field_switcher(),e.children(".ulf-field-tabbed").ulf_field_tabbed(),e.children(".ulf-field-typography").ulf_field_typography(),e.children(".ulf-field-upload").ulf_field_upload(),e.children(".ulf-field-wp_editor").ulf_field_wp_editor(),e.children(".ulf-field-border").find(".ulf-color").ulf_color(),e.children(".ulf-field-background").find(".ulf-color").ulf_color(),e.children(".ulf-field-color").find(".ulf-color").ulf_color(),e.children(".ulf-field-color_group").find(".ulf-color").ulf_color(),e.children(".ulf-field-link_color").find(".ulf-color").ulf_color(),e.children(".ulf-field-typography").find(".ulf-color").ulf_color(),e.children(".ulf-field-select").find(".ulf-chosen").ulf_chosen(),e.children(".ulf-field-checkbox").find(".ulf-checkbox").ulf_checkbox(),e.children(".ulf-field-button_set").find(".ulf-siblings").ulf_siblings(),e.children(".ulf-field-image_select").find(".ulf-siblings").ulf_siblings(),e.children(".ulf-field-palette").find(".ulf-siblings").ulf_siblings(),e.children(".ulf-field").find(".ulf-help").ulf_help(),t.dependency&&e.ulf_dependency(),e.data("inited",!0),I(b).trigger("ulf-reload-script",e))})},I(b).ready(function(){I(".ulf-save").ulf_save(),I(".ulf-options").ulf_options(),I(".ulf-sticky-header").ulf_sticky(),I(".ulf-nav-options").ulf_nav_options(),I(".ulf-nav-metabox").ulf_nav_metabox(),I(".ulf-taxonomy").ulf_taxonomy(),I(".ulf-page-templates").ulf_page_templates(),I(".ulf-post-formats").ulf_post_formats(),I(".ulf-shortcode").ulf_shortcode(),I(".ulf-search").ulf_search(),I(".ulf-confirm").ulf_confirm(),I(".ulf-expand-all").ulf_expand_all(),I(".ulf-onload").ulf_reload_script(),I(".widget").ulf_widgets(),I("#menu-to-edit").ulf_nav_menu()})}(jQuery,window,document);
|
admin/settings/assets/js/plugins.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
/* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.
|
2 |
|
3 |
!function(o){function e(t,e){this.element=o(t),this.options=e,this.init()}e.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},e.prototype.events=function(){var t=this;this.search_field.on("compositionstart",function(){t.is_typing=!0}),this.search_field.on("compositionend",function(){t.is_typing=!1,t.update_list()}),this.search_field.on("keyup",function(){t.update_list()}),this.search_field.on("focus",function(){t.search_field_focused()})},e.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},e.prototype.search_welcome_message=function(){var t=o.trim(this.search_field.val()),e=this.container.find(".chosen-results");0===e.children().length&&0===t.length&&e.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-t.length)+"</li>")},e.prototype.update_list=function(){var e=this;if(this.search_welcome_message(),!this.is_typing){var t=o.trim(this.search_field.val()),s=t.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-t.length):this.options.searching_text;this.container.find(".no-results").text(s),t!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",t),this.timer&&clearTimeout(this.timer),t.length<this.options.min_length||(this.timer=setTimeout(function(){e.chosenXhr&&e.chosenXhr.abort(),e.options.data.term=t,e.chosenXhr=window.wp.ajax.post("ulf-chosen",e.options.data).done(function(t){e.show_results(t)}).fail(function(t){e.container.find(".no-results").text(t.error)})},this.options.type_delay)))}},e.prototype.show_results=function(t){var s=this;if(!this.is_typing&&null!==t){if(0===t.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var i=[];this.element.find("option").each(function(){o(this).is(":selected")?i.push(o(this).val()+"-"+o(this).text()):o(this).attr("value").length&&o(this).remove()}),o.each(t,function(t,e){-1===o.inArray(e.value+"-"+e.text,i)&&o("<option />").attr("value",e.value).html(e.text).appendTo(s.element)});var e=this.search_field.val(),n=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var r=this.element.parent().find(".ulf-hide-select").val()||[];this.element.ULFChosenOrder(r,!0),this.search_field.css("width",n)}this.search_field.val(e),null!==this.chosenXhr.done&&this.chosenXhr.done(t)}},o.fn.ULFAjaxChosen=function(t){return this.each(function(){new e(this,t)})}}(jQuery),function(){var s,i,o=[].indexOf||function(t){for(var e=0,s=this.length;e<s;e++)if(e in this&&this[e]===t)return e;return-1},n={}.hasOwnProperty;i=function(){function t(){}return t.insertAt=function(t,e,s){return s.insertBefore(t,s.children[e].nextSibling)},t.getFlattenedOptionsAndGroups=function(t){var e,s,i,n,r,o,h,l,c;for(e=[],o=0,l=(i=Array.prototype.filter.call(t.childNodes,function(t){var e;return"OPTION"===(e=t.nodeName.toUpperCase())||"OPTGROUP"===e})).length;o<l;o++)if(s=i[o],e.push(s),"OPTGROUP"===s.nodeName.toUpperCase())for(h=0,c=(r=Array.prototype.filter.call(s.childNodes,function(t){return"OPTION"===t.nodeName.toUpperCase()})).length;h<c;h++)n=r[h],e.push(n);return e},t.isValidMultipleSelectElement=function(t){return null!=t&&"SELECT"===t.nodeName&&t.multiple},t.getChosenUIContainer=function(t){return""!==t.id?document.getElementById(t.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(t)},t.isChosenified=function(t){return null!=this.getChosenUIContainer(t)},t.forceSelection=function(t,e){var s,i,n,r;for(n=this.getFlattenedOptionsAndGroups(t),s=0;s<n.length;)r=(i=n[s]).getAttribute("value"),0<=o.call(e,r)?(i.selected=!0,i.setAttribute("selected","")):(i.selected=!1,i.removeAttribute("selected")),s++;return this.triggerEvent(t,"chosen:updated")},t.ULFChosenOrder=function(t,e,s){var i,n,r,o,h,l,c,a,u,_,d,p,f,g;if(null!=this.getDOMElement&&(t=this.getDOMElement(t)),this.isValidMultipleSelectElement(t)&&null!=(n=this.getChosenUIContainer(t))&&e instanceof Array){for(e=e.map(Function.prototype.call,String.prototype.trim),c=this.getFlattenedOptionsAndGroups(t),null!=s&&!0===s&&this.forceSelection(t,e),g=[],r=_=0,p=e.length;_<p;r=++_){for(h=e[r],a=null,o=d=0,f=c.length;d<f;o=++d)c[o].value===h&&(a=o);i=n.querySelectorAll(".search-choice"),u=this.relAttributeName,null!=(l=Array.prototype.filter.call(i,function(t){return null!=t.querySelector("a.search-choice-close["+u+'="'+a+'"]')})[0])&&(n.querySelector("ul.chosen-choices"),g.push(this.insertAt(l,r,n.querySelector("ul.chosen-choices"))))}return g}},t}(),(s=jQuery).fn.extend({ULFChosenOrder:function(t,e){return _ULFChosenOrder.ULFChosenOrder(this,t,e)}}),this._ULFChosenOrder=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)n.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,i),e.relAttributeName="data-option-array-index",e.isjQueryObject=function(t){return"undefined"!=typeof jQuery&&null!==jQuery&&t instanceof jQuery},e.getDOMElement=function(t){return this.isjQueryObject(t)?t.get(0):t},e.searchChosenUIContainer=function(t){return null!=s(t).data("chosen")?s(t).data("chosen").container[0]:s(t).next(".chosen-container.chosen-container-multi").get(0)},e.triggerEvent=function(t,e){return s(t).trigger(e)},e}()}.call(this),function(){var h,s,n,o,r={}.hasOwnProperty;(o=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s<i;s++)n=r[s],o.push(this.add_option(n,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,i,n,r;for(n=new o,s=0,i=(r=t.childNodes).length;s<i;s++)e=r[s],n.add_node(e);return n.parsed},s=function(){function n(t,e){var s,i;this.form_field=t,this.options=null!=e?e:{},this.label_click_handler=(s=this.label_click_handler,i=this,function(){return s.apply(i,arguments)}),n.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return n.prototype.set_default_values=function(){var e,s;return this.click_test_action=(e=this,function(t){return e.test_active_click(t)}),this.activate_action=(s=this,function(t){return s.activate_field(t)}),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},n.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||n.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||n.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||n.default_no_result_text},n.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+this.escape_html(t.group_label)+"</b>"+t.html:t.html},n.prototype.mouse_enter=function(){return this.mouse_on_container=!0},n.prototype.mouse_leave=function(){return this.mouse_on_container=!1},n.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout((e=this,function(){return e.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var e},n.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((e=this,function(){return e.blur_test()}),100);var e},n.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},n.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",n=h=0,r=(o=this.results_data).length;n<r&&((i="")!==(i=(s=o[n]).group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},n.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&0<t.active_options?((e=[]).push("group-result"),t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},n.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},n.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},n.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},n.prototype.winnow_results=function(t){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f;for(this.no_results_clear(),a=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(r=l[i]).search_match=!1,_=u=null,r.highlighted_html="",this.include_option_in_results(r)&&(r.group&&(r.group_match=!1,r.active_options=0),null!=r.group_array_index&&this.results_data[r.group_array_index]&&(0===(u=this.results_data[r.group_array_index]).active_options&&u.search_match&&(a+=1),u.active_options+=1),f=r.group?r.label:r.text,r.group&&!this.group_search||(_=this.search_string_match(f,c),r.search_match=null!=_,r.search_match&&!r.group&&(a+=1),r.search_match?(h.length&&(d=_.index,o=f.slice(0,d),s=f.slice(d,d+h.length),p=f.slice(d+h.length),r.highlighted_html=this.escape_html(o)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),a<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},n.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},n.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},n.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(t=this.selected_option_count=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},n.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},n.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},n.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&0<this.choices_count()?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},n.prototype.clipboard_event_checker=function(t){var e;if(!this.is_disabled)return setTimeout((e=this,function(){return e.results_search()}),50)},n.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},n.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},n.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},n.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},n.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},n.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},n.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},n.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},n.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},n.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?8<=document.documentMode:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},n.default_multiple_text="Select Some Options",n.default_single_text="Select an Option",n.default_no_result_text="No results match",n}(),(h=jQuery).fn.extend({chosen:function(i){return s.browser_is_supported()?this.each(function(t){var e,s;s=(e=h(this)).data("chosen"),"destroy"!==i?s instanceof n||e.data("chosen",new n(this,i)):s instanceof n&&s.destroy()}):this}}),n=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)r.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,s),e.prototype.setup=function(){return this.form_field_jq=h(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},e.prototype.set_up_html=function(){var t,e;return(t=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&t.push(this.form_field.className),this.is_rtl&&t.push("chosen-rtl"),e={class:t.join(" "),title:this.form_field.title},this.form_field.id.length&&(e.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=h("<div />",e),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},e.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},e.prototype.register_observers=function(){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f,g,m,v,y,b,w,x,k,C;return this.container.on("touchstart.chosen",(e=this,function(t){e.container_mousedown(t)})),this.container.on("touchend.chosen",(s=this,function(t){s.container_mouseup(t)})),this.container.on("mousedown.chosen",(i=this,function(t){i.container_mousedown(t)})),this.container.on("mouseup.chosen",(n=this,function(t){n.container_mouseup(t)})),this.container.on("mouseenter.chosen",(r=this,function(t){r.mouse_enter(t)})),this.container.on("mouseleave.chosen",(o=this,function(t){o.mouse_leave(t)})),this.search_results.on("mouseup.chosen",(h=this,function(t){h.search_results_mouseup(t)})),this.search_results.on("mouseover.chosen",(l=this,function(t){l.search_results_mouseover(t)})),this.search_results.on("mouseout.chosen",(c=this,function(t){c.search_results_mouseout(t)})),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",(a=this,function(t){a.search_results_mousewheel(t)})),this.search_results.on("touchstart.chosen",(u=this,function(t){u.search_results_touchstart(t)})),this.search_results.on("touchmove.chosen",(_=this,function(t){_.search_results_touchmove(t)})),this.search_results.on("touchend.chosen",(d=this,function(t){d.search_results_touchend(t)})),this.form_field_jq.on("chosen:updated.chosen",(p=this,function(t){p.results_update_field(t)})),this.form_field_jq.on("chosen:activate.chosen",(f=this,function(t){f.activate_field(t)})),this.form_field_jq.on("chosen:open.chosen",(g=this,function(t){g.container_mousedown(t)})),this.form_field_jq.on("chosen:close.chosen",(m=this,function(t){m.close_field(t)})),this.search_field.on("blur.chosen",(v=this,function(t){v.input_blur(t)})),this.search_field.on("keyup.chosen",(y=this,function(t){y.keyup_checker(t)})),this.search_field.on("keydown.chosen",(b=this,function(t){b.keydown_checker(t)})),this.search_field.on("focus.chosen",(w=this,function(t){w.input_focus(t)})),this.search_field.on("cut.chosen",(x=this,function(t){x.clipboard_event_checker(t)})),this.search_field.on("paste.chosen",(k=this,function(t){k.clipboard_event_checker(t)})),this.is_multiple?this.search_choices.on("click.chosen",(C=this,function(t){C.choices_click(t)})):this.container.on("click.chosen",function(t){t.preventDefault()})},e.prototype.destroy=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),0<this.form_field_label.length&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},e.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},e.prototype.container_mousedown=function(t){var e;if(!this.is_disabled)return!t||"mousedown"!==(e=t.type)&&"touchstart"!==e||this.results_showing||t.preventDefault(),null!=t&&h(t.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!t||h(t.target)[0]!==this.selected_item[0]&&!h(t.target).parents("a.chosen-single").length||(t.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),h(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},e.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},e.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},e.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},e.prototype.close_field=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},e.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},e.prototype.test_active_click=function(t){var e;return(e=h(t.target).closest(".chosen-container")).length&&this.container[0]===e[0]?this.active_field=!0:this.close_field()},e.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=o.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},e.prototype.result_do_highlight=function(t){var e,s,i,n;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),(i=parseInt(this.search_results.css("maxHeight"),10))+(n=this.search_results.scrollTop())<=(e=(s=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight()))return this.search_results.scrollTop(0<e-i?e-i:0);if(s<n)return this.search_results.scrollTop(s)}},e.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},e.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},e.prototype.update_results_content=function(t){return this.search_results.html(t)},e.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},e.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},e.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=h("label[for='"+this.form_field.id+"']")),0<this.form_field_label.length)return this.form_field_label.on("click.chosen",this.label_click_handler)},e.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},e.prototype.search_results_mouseup=function(t){var e;if((e=h(t.target).hasClass("active-result")?h(t.target):h(t.target).parents(".active-result").first()).length)return this.result_highlight=e,this.result_select(t),this.search_field.focus()},e.prototype.search_results_mouseover=function(t){var e;if(e=h(t.target).hasClass("active-result")?h(t.target):h(t.target).parents(".active-result").first())return this.result_do_highlight(e)},e.prototype.search_results_mouseout=function(t){if(h(t.target).hasClass("active-result")||h(t.target).parents(".active-result").first())return this.result_clear_highlight()},e.prototype.choice_build=function(t){var e,s,i;return e=h("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(t)+"</span>"),t.disabled?e.addClass("search-choice-disabled"):((s=h("<a />",{class:"search-choice-close","data-option-array-index":t.array_index})).on("click.chosen",(i=this,function(t){return i.choice_destroy_link_click(t)})),e.append(s)),this.search_container.before(e)},e.prototype.choice_destroy_link_click=function(t){if(t.preventDefault(),t.stopPropagation(),!this.is_disabled)return this.choice_destroy(h(t.target))},e.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&0<this.choices_count()&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},e.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},e.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},e.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),(s=this.results_data[e[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},e.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},e.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},e.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},e.prototype.get_search_field_value=function(){return this.search_field.val()},e.prototype.get_search_text=function(){return h.trim(this.get_search_field_value())},e.prototype.escape_html=function(t){return h("<div/>").text(t).html()},e.prototype.winnow_results_set_highlight=function(){var t,e;if(null!=(t=(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},e.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},e.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},e.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},e.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(0<this.choices_count()&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},e.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},e.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},e.prototype.search_field_scale=function(){var t,e,s,i,n,r,o;if(this.is_multiple){for(n={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},e=0,s=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;e<s;e++)n[i=r[e]]=this.search_field.css(i);return(t=h("<div />").css(n)).text(this.get_search_field_value()),h("body").append(t),o=t.width()+25,t.remove(),this.container.is(":visible")&&(o=Math.min(this.container.outerWidth()-10,o)),this.search_field.width(o)}},e.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},e}()}.call(this),function(o){"use strict";function n(t,e,s){this.init(t,e,s)}function t(){this.rules=[]}o.extend(n.prototype,{init:function(t,e,s){this.controller=t,this.condition=e,this.value=s,this.rules=[],this.controls=[]},evalCondition:function(t,e,s,i,n){if("=="==s)return this.checkBoolean(i)==this.checkBoolean(n);if("!="==s)return this.checkBoolean(i)!=this.checkBoolean(n);if(">="==s)return Number(n)>=Number(i);if("<="==s)return Number(n)<=Number(i);if(">"==s)return Number(n)>Number(i);if("<"==s)return Number(n)<Number(i);if("()"==s)return window[i](t,e,n);if("any"==s){if(o.isArray(n)){for(var r=n.length-1;0<=r;r--)if(-1!==o.inArray(n[r],i.split(",")))return!0}else if(-1!==o.inArray(n,i.split(",")))return!0}else if("not-any"==s)if(o.isArray(n)){for(r=n.length-1;0<=r;r--)if(-1==o.inArray(n[r],i.split(",")))return!0}else if(-1==o.inArray(n,i.split(",")))return!0;return!1},checkBoolean:function(t){switch(t){case!0:case"true":case 1:case"1":t=!0;break;case null:case!1:case"false":case 0:case"0":t=!1}return t},checkCondition:function(t){if(!this.condition)return!0;var e=t.find(this.controller),s=this.getControlValue(t,e);return void 0!==s&&(s=this.normalizeValue(e,this.value,s),this.evalCondition(t,e,this.condition,this.value,s))},normalizeValue:function(t,e,s){return"number"==typeof e?parseFloat(s):s},getControlValue:function(t,e){return 1<e.length&&("radio"==e.attr("type")||"checkbox"==e.attr("type"))?e.filter(":checked").map(function(){return this.value}).get():"checkbox"==e.attr("type")||"radio"==e.attr("type")?e.is(":checked"):e.val()},createRule:function(t,e,s){var i=new n(t,e,s);return this.rules.push(i),i},include:function(t){this.controls.push(t)},applyRule:function(s,t){var e;e=void 0===t?this.checkCondition(s):t;var i=o.map(this.controls,function(t,e){return s.find(t)});e?(o(i).each(function(){o(this).removeClass("ulf-depend-on")}),o(this.rules).each(function(){this.applyRule(s)})):(o(i).each(function(){o(this).addClass("ulf-depend-on")}),o(this.rules).each(function(){this.applyRule(s,!1)}))}}),o.extend(t.prototype,{createRule:function(t,e,s){var i=new n(t,e,s);return this.rules.push(i),i},applyRules:function(t){o(this.rules).each(function(){this.applyRule(t)})}}),o.ulf_deps={createRuleset:function(){return new t},enable:function(s,i,n){return s.on("change keyup",function(t){var e=t.target.getAttribute("data-depend-id")||t.target.getAttribute("data-sub-depend-id");-1!==n.indexOf(e)&&i.applyRules(s)}),i.applyRules(s),!0}}}(jQuery),function(t,s){if("function"==typeof define&&define.amd)define(["exports","jquery"],function(t,e){return s(t,e)});else if("undefined"!=typeof exports){var e=require("jquery");s(exports,e)}else s(t,t.jQuery||t.Zepto||t.ender||t.$)}(this,function(t,e){var h={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function s(i,t){var s={},r={};function o(t,e,s){return t[e]=s,t}function e(){return s}this.addPair=function(t){if(!h.validate.test(t.name))return this;var e=function(t,e){for(var s,i=t.match(h.key);void 0!==(s=i.pop());)h.push.test(s)?e=o([],(n=t.replace(/\[\]$/,""),void 0===r[n]&&(r[n]=0),r[n]++),e):h.fixed.test(s)?e=o([],s,e):h.named.test(s)&&(e=o({},s,e));var n;return e}(t.name,t.value);return s=i.extend(!0,s,e),this},this.addPairs=function(t){if(!i.isArray(t))throw new Error("formSerializer.addPairs expects an Array");for(var e=0,s=t.length;e<s;e++)this.addPair(t[e]);return this},this.serialize=e,this.serializeJSON=function(){return JSON.stringify(e())}}return s.patterns=h,s.serializeObject=function(){return new s(e,this).addPairs(this.serializeArray()).serialize()},s.serializeJSON=function(){return new s(e,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==e.fn&&(e.fn.serializeObjectULF=s.serializeObject,e.fn.serializeJSONULF=s.serializeJSON),t.FormSerializer=s});
|
1 |
+
/* Codestar Framework | A Simple and Lightweight WordPress Option Framework - v2.2.2*/
|
2 |
|
3 |
!function(o){function e(t,e){this.element=o(t),this.options=e,this.init()}e.prototype.init=function(){this.element.chosen(this.options),this.container=this.element.next(".chosen-container"),this.search_field=this.container.find(".chosen-search-input"),this.is_multiple=this.container.hasClass("chosen-container-multi"),this.is_typing=!1,this.chosenXhr=null,this.events()},e.prototype.events=function(){var t=this;this.search_field.on("compositionstart",function(){t.is_typing=!0}),this.search_field.on("compositionend",function(){t.is_typing=!1,t.update_list()}),this.search_field.on("keyup",function(){t.update_list()}),this.search_field.on("focus",function(){t.search_field_focused()})},e.prototype.search_field_focused=function(){this.search_welcome_message(),0===this.options.min_length&&0===this.search_field.val().length&&this.update_list()},e.prototype.search_welcome_message=function(){var t=o.trim(this.search_field.val()),e=this.container.find(".chosen-results");0===e.children().length&&0===t.length&&e.html('<li class="no-results">'+this.options.typing_text.replace("%s",this.options.min_length-t.length)+"</li>")},e.prototype.update_list=function(){var e=this;if(this.search_welcome_message(),!this.is_typing){var t=o.trim(this.search_field.val()),s=t.length<this.options.min_length?this.options.typing_text.replace("%s",this.options.min_length-t.length):this.options.searching_text;this.container.find(".no-results").text(s),t!==this.search_field.data("prevVal")&&(this.search_field.data("prevVal",t),this.timer&&clearTimeout(this.timer),t.length<this.options.min_length||(this.timer=setTimeout(function(){e.chosenXhr&&e.chosenXhr.abort(),e.options.data.term=t,e.chosenXhr=window.wp.ajax.post("ulf-chosen",e.options.data).done(function(t){e.show_results(t)}).fail(function(t){e.container.find(".no-results").text(t.error)})},this.options.type_delay)))}},e.prototype.show_results=function(t){var s=this;if(!this.is_typing&&null!==t){if(0===t.length)return this.element.data().chosen.no_results_clear(),void this.element.data().chosen.no_results(this.search_field.val());var i=[];this.element.find("option").each(function(){o(this).is(":selected")?i.push(o(this).val()+"-"+o(this).text()):o(this).attr("value").length&&o(this).remove()}),o.each(t,function(t,e){-1===o.inArray(e.value+"-"+e.text,i)&&o("<option />").attr("value",e.value).html(e.text).appendTo(s.element)});var e=this.search_field.val(),n=this.search_field.innerWidth();if(this.element.trigger("chosen:updated"),this.is_multiple){var r=this.element.parent().find(".ulf-hide-select").val()||[];this.element.ULFChosenOrder(r,!0),this.search_field.css("width",n)}this.search_field.val(e),null!==this.chosenXhr.done&&this.chosenXhr.done(t)}},o.fn.ULFAjaxChosen=function(t){return this.each(function(){new e(this,t)})}}(jQuery),function(){var s,i,o=[].indexOf||function(t){for(var e=0,s=this.length;e<s;e++)if(e in this&&this[e]===t)return e;return-1},n={}.hasOwnProperty;i=function(){function t(){}return t.insertAt=function(t,e,s){return s.insertBefore(t,s.children[e].nextSibling)},t.getFlattenedOptionsAndGroups=function(t){var e,s,i,n,r,o,h,l,c;for(e=[],o=0,l=(i=Array.prototype.filter.call(t.childNodes,function(t){var e;return"OPTION"===(e=t.nodeName.toUpperCase())||"OPTGROUP"===e})).length;o<l;o++)if(s=i[o],e.push(s),"OPTGROUP"===s.nodeName.toUpperCase())for(h=0,c=(r=Array.prototype.filter.call(s.childNodes,function(t){return"OPTION"===t.nodeName.toUpperCase()})).length;h<c;h++)n=r[h],e.push(n);return e},t.isValidMultipleSelectElement=function(t){return null!=t&&"SELECT"===t.nodeName&&t.multiple},t.getChosenUIContainer=function(t){return""!==t.id?document.getElementById(t.id.replace(/-/g,"_")+"_chosen"):this.searchChosenUIContainer(t)},t.isChosenified=function(t){return null!=this.getChosenUIContainer(t)},t.forceSelection=function(t,e){var s,i,n,r;for(n=this.getFlattenedOptionsAndGroups(t),s=0;s<n.length;)r=(i=n[s]).getAttribute("value"),0<=o.call(e,r)?(i.selected=!0,i.setAttribute("selected","")):(i.selected=!1,i.removeAttribute("selected")),s++;return this.triggerEvent(t,"chosen:updated")},t.ULFChosenOrder=function(t,e,s){var i,n,r,o,h,l,c,a,u,_,d,p,f,g;if(null!=this.getDOMElement&&(t=this.getDOMElement(t)),this.isValidMultipleSelectElement(t)&&null!=(n=this.getChosenUIContainer(t))&&e instanceof Array){for(e=e.map(Function.prototype.call,String.prototype.trim),c=this.getFlattenedOptionsAndGroups(t),null!=s&&!0===s&&this.forceSelection(t,e),g=[],r=_=0,p=e.length;_<p;r=++_){for(h=e[r],a=null,o=d=0,f=c.length;d<f;o=++d)c[o].value===h&&(a=o);i=n.querySelectorAll(".search-choice"),u=this.relAttributeName,null!=(l=Array.prototype.filter.call(i,function(t){return null!=t.querySelector("a.search-choice-close["+u+'="'+a+'"]')})[0])&&(n.querySelector("ul.chosen-choices"),g.push(this.insertAt(l,r,n.querySelector("ul.chosen-choices"))))}return g}},t}(),(s=jQuery).fn.extend({ULFChosenOrder:function(t,e){return _ULFChosenOrder.ULFChosenOrder(this,t,e)}}),this._ULFChosenOrder=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)n.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,i),e.relAttributeName="data-option-array-index",e.isjQueryObject=function(t){return"undefined"!=typeof jQuery&&null!==jQuery&&t instanceof jQuery},e.getDOMElement=function(t){return this.isjQueryObject(t)?t.get(0):t},e.searchChosenUIContainer=function(t){return null!=s(t).data("chosen")?s(t).data("chosen").container[0]:s(t).next(".chosen-container.chosen-container-multi").get(0)},e.triggerEvent=function(t,e){return s(t).trigger(e)},e}()}.call(this),function(){var h,s,n,o,r={}.hasOwnProperty;(o=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s<i;s++)n=r[s],o.push(this.add_option(n,e,t.disabled));return o},t.prototype.add_option=function(t,e,s){if("OPTION"===t.nodeName.toUpperCase())return""!==t.text?(null!=e&&(this.parsed[e].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:t.value,text:t.text,html:t.innerHTML,title:t.title?t.title:void 0,selected:t.selected,disabled:!0===s?s:t.disabled,group_array_index:e,group_label:null!=e?this.parsed[e].label:null,classes:t.className,style:t.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},t}()).select_to_array=function(t){var e,s,i,n,r;for(n=new o,s=0,i=(r=t.childNodes).length;s<i;s++)e=r[s],n.add_node(e);return n.parsed},s=function(){function n(t,e){var s,i;this.form_field=t,this.options=null!=e?e:{},this.label_click_handler=(s=this.label_click_handler,i=this,function(){return s.apply(i,arguments)}),n.browser_is_supported()&&(this.is_multiple=this.form_field.multiple,this.set_default_text(),this.set_default_values(),this.setup(),this.set_up_html(),this.register_observers(),this.on_ready())}return n.prototype.set_default_values=function(){var e,s;return this.click_test_action=(e=this,function(t){return e.test_active_click(t)}),this.activate_action=(s=this,function(t){return s.activate_field(t)}),this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.is_rtl=this.options.rtl||/\bchosen-rtl\b/.test(this.form_field.className),this.allow_single_deselect=null!=this.options.allow_single_deselect&&null!=this.form_field.options[0]&&""===this.form_field.options[0].text&&this.options.allow_single_deselect,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.enable_split_word_search=null==this.options.enable_split_word_search||this.options.enable_split_word_search,this.group_search=null==this.options.group_search||this.options.group_search,this.search_contains=this.options.search_contains||!1,this.single_backstroke_delete=null==this.options.single_backstroke_delete||this.options.single_backstroke_delete,this.max_selected_options=this.options.max_selected_options||1/0,this.inherit_select_classes=this.options.inherit_select_classes||!1,this.display_selected_options=null==this.options.display_selected_options||this.options.display_selected_options,this.display_disabled_options=null==this.options.display_disabled_options||this.options.display_disabled_options,this.include_group_label_in_selected=this.options.include_group_label_in_selected||!1,this.max_shown_results=this.options.max_shown_results||Number.POSITIVE_INFINITY,this.case_sensitive_search=this.options.case_sensitive_search||!1,this.hide_results_on_select=null==this.options.hide_results_on_select||this.options.hide_results_on_select},n.prototype.set_default_text=function(){return this.form_field.getAttribute("data-placeholder")?this.default_text=this.form_field.getAttribute("data-placeholder"):this.is_multiple?this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||n.default_multiple_text:this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||n.default_single_text,this.default_text=this.escape_html(this.default_text),this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||n.default_no_result_text},n.prototype.choice_label=function(t){return this.include_group_label_in_selected&&null!=t.group_label?"<b class='group-name'>"+this.escape_html(t.group_label)+"</b>"+t.html:t.html},n.prototype.mouse_enter=function(){return this.mouse_on_container=!0},n.prototype.mouse_leave=function(){return this.mouse_on_container=!1},n.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout((e=this,function(){return e.container_mousedown()}),50)}else if(!this.active_field)return this.activate_field();var e},n.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout((e=this,function(){return e.blur_test()}),100);var e},n.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},n.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",n=h=0,r=(o=this.results_data).length;n<r&&((i="")!==(i=(s=o[n]).group?this.result_add_group(s):this.result_add_option(s))&&(h++,e+=i),(null!=t?t.first:void 0)&&(s.selected&&this.is_multiple?this.choice_build(s):s.selected&&!this.is_multiple&&this.single_set_selected_text(this.choice_label(s))),!(h>=this.max_shown_results));n++);return e},n.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),t.style&&(s.style.cssText=t.style),s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&0<t.active_options?((e=[]).push("group-result"),t.classes&&e.push(t.classes),(s=document.createElement("li")).className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},n.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},n.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t<e;t++)(i=s[t]).selected?n.push(i.selected=!1):n.push(void 0);return n},n.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},n.prototype.results_search=function(t){return this.results_showing?this.winnow_results():this.results_show()},n.prototype.winnow_results=function(t){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f;for(this.no_results_clear(),a=0,e=(h=this.get_search_text()).replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),c=this.get_search_regex(e),i=0,n=(l=this.results_data).length;i<n;i++)(r=l[i]).search_match=!1,_=u=null,r.highlighted_html="",this.include_option_in_results(r)&&(r.group&&(r.group_match=!1,r.active_options=0),null!=r.group_array_index&&this.results_data[r.group_array_index]&&(0===(u=this.results_data[r.group_array_index]).active_options&&u.search_match&&(a+=1),u.active_options+=1),f=r.group?r.label:r.text,r.group&&!this.group_search||(_=this.search_string_match(f,c),r.search_match=null!=_,r.search_match&&!r.group&&(a+=1),r.search_match?(h.length&&(d=_.index,o=f.slice(0,d),s=f.slice(d,d+h.length),p=f.slice(d+h.length),r.highlighted_html=this.escape_html(o)+"<em>"+this.escape_html(s)+"</em>"+this.escape_html(p)),null!=u&&(u.group_match=!0)):null!=r.group_array_index&&this.results_data[r.group_array_index].search_match&&(r.search_match=!0)));return this.result_clear_highlight(),a<1&&h.length?(this.update_results_content(""),this.no_results(h)):(this.update_results_content(this.results_option_build()),(null!=t?t.skip_highlight:void 0)?void 0:this.winnow_results_set_highlight())},n.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},n.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},n.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(t=this.selected_option_count=0,e=(s=this.form_field.options).length;t<e;t++)s[t].selected&&(this.selected_option_count+=1);return this.selected_option_count},n.prototype.choices_click=function(t){if(t.preventDefault(),this.activate_field(),!this.results_showing&&!this.is_disabled)return this.results_show()},n.prototype.keydown_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),8!==s&&this.pending_backstroke&&this.clear_backstroke(),s){case 8:this.backstroke_length=this.get_search_field_value().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(t),this.mouse_on_container=!1;break;case 13:case 27:this.results_showing&&t.preventDefault();break;case 32:this.disable_search&&t.preventDefault();break;case 38:t.preventDefault(),this.keyup_arrow();break;case 40:t.preventDefault(),this.keydown_arrow()}},n.prototype.keyup_checker=function(t){var e,s;switch(s=null!=(e=t.which)?e:t.keyCode,this.search_field_scale(),s){case 8:this.is_multiple&&this.backstroke_length<1&&0<this.choices_count()?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},n.prototype.clipboard_event_checker=function(t){var e;if(!this.is_disabled)return setTimeout((e=this,function(){return e.results_search()}),50)},n.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},n.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},n.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},n.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},n.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},n.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},n.prototype.get_single_html=function(){return'<a class="chosen-single chosen-default">\n <span>'+this.default_text+'</span>\n <div><b></b></div>\n</a>\n<div class="chosen-drop">\n <div class="chosen-search">\n <input class="chosen-search-input" type="text" autocomplete="off" />\n </div>\n <ul class="chosen-results"></ul>\n</div>'},n.prototype.get_multi_html=function(){return'<ul class="chosen-choices">\n <li class="search-field">\n <input class="chosen-search-input" type="text" autocomplete="off" value="'+this.default_text+'" />\n </li>\n</ul>\n<div class="chosen-drop">\n <ul class="chosen-results"></ul>\n</div>'},n.prototype.get_no_results_html=function(t){return'<li class="no-results">\n '+this.results_none_found+" <span>"+this.escape_html(t)+"</span>\n</li>"},n.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?8<=document.documentMode:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},n.default_multiple_text="Select Some Options",n.default_single_text="Select an Option",n.default_no_result_text="No results match",n}(),(h=jQuery).fn.extend({chosen:function(i){return s.browser_is_supported()?this.each(function(t){var e,s;s=(e=h(this)).data("chosen"),"destroy"!==i?s instanceof n||e.data("chosen",new n(this,i)):s instanceof n&&s.destroy()}):this}}),n=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return function(t,e){for(var s in e)r.call(e,s)&&(t[s]=e[s]);function i(){this.constructor=t}i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype}(e,s),e.prototype.setup=function(){return this.form_field_jq=h(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},e.prototype.set_up_html=function(){var t,e;return(t=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&t.push(this.form_field.className),this.is_rtl&&t.push("chosen-rtl"),e={class:t.join(" "),title:this.form_field.title},this.form_field.id.length&&(e.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=h("<div />",e),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},e.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},e.prototype.register_observers=function(){var e,s,i,n,r,o,h,l,c,a,u,_,d,p,f,g,m,v,y,b,w,x,k,C;return this.container.on("touchstart.chosen",(e=this,function(t){e.container_mousedown(t)})),this.container.on("touchend.chosen",(s=this,function(t){s.container_mouseup(t)})),this.container.on("mousedown.chosen",(i=this,function(t){i.container_mousedown(t)})),this.container.on("mouseup.chosen",(n=this,function(t){n.container_mouseup(t)})),this.container.on("mouseenter.chosen",(r=this,function(t){r.mouse_enter(t)})),this.container.on("mouseleave.chosen",(o=this,function(t){o.mouse_leave(t)})),this.search_results.on("mouseup.chosen",(h=this,function(t){h.search_results_mouseup(t)})),this.search_results.on("mouseover.chosen",(l=this,function(t){l.search_results_mouseover(t)})),this.search_results.on("mouseout.chosen",(c=this,function(t){c.search_results_mouseout(t)})),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",(a=this,function(t){a.search_results_mousewheel(t)})),this.search_results.on("touchstart.chosen",(u=this,function(t){u.search_results_touchstart(t)})),this.search_results.on("touchmove.chosen",(_=this,function(t){_.search_results_touchmove(t)})),this.search_results.on("touchend.chosen",(d=this,function(t){d.search_results_touchend(t)})),this.form_field_jq.on("chosen:updated.chosen",(p=this,function(t){p.results_update_field(t)})),this.form_field_jq.on("chosen:activate.chosen",(f=this,function(t){f.activate_field(t)})),this.form_field_jq.on("chosen:open.chosen",(g=this,function(t){g.container_mousedown(t)})),this.form_field_jq.on("chosen:close.chosen",(m=this,function(t){m.close_field(t)})),this.search_field.on("blur.chosen",(v=this,function(t){v.input_blur(t)})),this.search_field.on("keyup.chosen",(y=this,function(t){y.keyup_checker(t)})),this.search_field.on("keydown.chosen",(b=this,function(t){b.keydown_checker(t)})),this.search_field.on("focus.chosen",(w=this,function(t){w.input_focus(t)})),this.search_field.on("cut.chosen",(x=this,function(t){x.clipboard_event_checker(t)})),this.search_field.on("paste.chosen",(k=this,function(t){k.clipboard_event_checker(t)})),this.is_multiple?this.search_choices.on("click.chosen",(C=this,function(t){C.choices_click(t)})):this.container.on("click.chosen",function(t){t.preventDefault()})},e.prototype.destroy=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),0<this.form_field_label.length&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},e.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},e.prototype.container_mousedown=function(t){var e;if(!this.is_disabled)return!t||"mousedown"!==(e=t.type)&&"touchstart"!==e||this.results_showing||t.preventDefault(),null!=t&&h(t.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!t||h(t.target)[0]!==this.selected_item[0]&&!h(t.target).parents("a.chosen-single").length||(t.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),h(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},e.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},e.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},e.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},e.prototype.close_field=function(){return h(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},e.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},e.prototype.test_active_click=function(t){var e;return(e=h(t.target).closest(".chosen-container")).length&&this.container[0]===e[0]?this.active_field=!0:this.close_field()},e.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=o.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():(this.single_set_selected_text(),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?(this.search_field[0].readOnly=!0,this.container.addClass("chosen-container-single-nosearch")):(this.search_field[0].readOnly=!1,this.container.removeClass("chosen-container-single-nosearch"))),this.update_results_content(this.results_option_build({first:!0})),this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.parsing=!1},e.prototype.result_do_highlight=function(t){var e,s,i,n;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),(i=parseInt(this.search_results.css("maxHeight"),10))+(n=this.search_results.scrollTop())<=(e=(s=this.result_highlight.position().top+this.search_results.scrollTop())+this.result_highlight.outerHeight()))return this.search_results.scrollTop(0<e-i?e-i:0);if(s<n)return this.search_results.scrollTop(s)}},e.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},e.prototype.results_show=function(){return this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.container.addClass("chosen-with-drop"),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.get_search_field_value()),this.winnow_results(),this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this}))},e.prototype.update_results_content=function(t){return this.search_results.html(t)},e.prototype.results_hide=function(){return this.results_showing&&(this.result_clear_highlight(),this.container.removeClass("chosen-with-drop"),this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})),this.results_showing=!1},e.prototype.set_tab_index=function(t){var e;if(this.form_field.tabIndex)return e=this.form_field.tabIndex,this.form_field.tabIndex=-1,this.search_field[0].tabIndex=e},e.prototype.set_label_behavior=function(){if(this.form_field_label=this.form_field_jq.parents("label"),!this.form_field_label.length&&this.form_field.id.length&&(this.form_field_label=h("label[for='"+this.form_field.id+"']")),0<this.form_field_label.length)return this.form_field_label.on("click.chosen",this.label_click_handler)},e.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},e.prototype.search_results_mouseup=function(t){var e;if((e=h(t.target).hasClass("active-result")?h(t.target):h(t.target).parents(".active-result").first()).length)return this.result_highlight=e,this.result_select(t),this.search_field.focus()},e.prototype.search_results_mouseover=function(t){var e;if(e=h(t.target).hasClass("active-result")?h(t.target):h(t.target).parents(".active-result").first())return this.result_do_highlight(e)},e.prototype.search_results_mouseout=function(t){if(h(t.target).hasClass("active-result")||h(t.target).parents(".active-result").first())return this.result_clear_highlight()},e.prototype.choice_build=function(t){var e,s,i;return e=h("<li />",{class:"search-choice"}).html("<span>"+this.choice_label(t)+"</span>"),t.disabled?e.addClass("search-choice-disabled"):((s=h("<a />",{class:"search-choice-close","data-option-array-index":t.array_index})).on("click.chosen",(i=this,function(t){return i.choice_destroy_link_click(t)})),e.append(s)),this.search_container.before(e)},e.prototype.choice_destroy_link_click=function(t){if(t.preventDefault(),t.stopPropagation(),!this.is_disabled)return this.choice_destroy(h(t.target))},e.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&0<this.choices_count()&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},e.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},e.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},e.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),(s=this.results_data[e[0].getAttribute("data-option-array-index")]).selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?t.metaKey||t.ctrlKey?this.winnow_results({skip_highlight:!0}):(this.search_field.val(""),this.winnow_results()):(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},e.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},e.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},e.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>'),this.selected_item.addClass("chosen-single-with-deselect")},e.prototype.get_search_field_value=function(){return this.search_field.val()},e.prototype.get_search_text=function(){return h.trim(this.get_search_field_value())},e.prototype.escape_html=function(t){return h("<div/>").text(t).html()},e.prototype.winnow_results_set_highlight=function(){var t,e;if(null!=(t=(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result")).length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},e.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},e.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},e.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},e.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(0<this.choices_count()&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},e.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},e.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},e.prototype.search_field_scale=function(){var t,e,s,i,n,r,o;if(this.is_multiple){for(n={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},e=0,s=(r=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;e<s;e++)n[i=r[e]]=this.search_field.css(i);return(t=h("<div />").css(n)).text(this.get_search_field_value()),h("body").append(t),o=t.width()+25,t.remove(),this.container.is(":visible")&&(o=Math.min(this.container.outerWidth()-10,o)),this.search_field.width(o)}},e.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},e}()}.call(this),function(o){"use strict";function n(t,e,s){this.init(t,e,s)}function t(){this.rules=[]}o.extend(n.prototype,{init:function(t,e,s){this.controller=t,this.condition=e,this.value=s,this.rules=[],this.controls=[]},evalCondition:function(t,e,s,i,n){if("=="==s)return this.checkBoolean(i)==this.checkBoolean(n);if("!="==s)return this.checkBoolean(i)!=this.checkBoolean(n);if(">="==s)return Number(n)>=Number(i);if("<="==s)return Number(n)<=Number(i);if(">"==s)return Number(n)>Number(i);if("<"==s)return Number(n)<Number(i);if("()"==s)return window[i](t,e,n);if("any"==s){if(o.isArray(n)){for(var r=n.length-1;0<=r;r--)if(-1!==o.inArray(n[r],i.split(",")))return!0}else if(-1!==o.inArray(n,i.split(",")))return!0}else if("not-any"==s)if(o.isArray(n)){for(r=n.length-1;0<=r;r--)if(-1==o.inArray(n[r],i.split(",")))return!0}else if(-1==o.inArray(n,i.split(",")))return!0;return!1},checkBoolean:function(t){switch(t){case!0:case"true":case 1:case"1":t=!0;break;case null:case!1:case"false":case 0:case"0":t=!1}return t},checkCondition:function(t){if(!this.condition)return!0;var e=t.find(this.controller),s=this.getControlValue(t,e);return void 0!==s&&(s=this.normalizeValue(e,this.value,s),this.evalCondition(t,e,this.condition,this.value,s))},normalizeValue:function(t,e,s){return"number"==typeof e?parseFloat(s):s},getControlValue:function(t,e){return 1<e.length&&("radio"==e.attr("type")||"checkbox"==e.attr("type"))?e.filter(":checked").map(function(){return this.value}).get():"checkbox"==e.attr("type")||"radio"==e.attr("type")?e.is(":checked"):e.val()},createRule:function(t,e,s){var i=new n(t,e,s);return this.rules.push(i),i},include:function(t){this.controls.push(t)},applyRule:function(s,t){var e;e=void 0===t?this.checkCondition(s):t;var i=o.map(this.controls,function(t,e){return s.find(t)});e?(o(i).each(function(){o(this).removeClass("ulf-depend-on")}),o(this.rules).each(function(){this.applyRule(s)})):(o(i).each(function(){o(this).addClass("ulf-depend-on")}),o(this.rules).each(function(){this.applyRule(s,!1)}))}}),o.extend(t.prototype,{createRule:function(t,e,s){var i=new n(t,e,s);return this.rules.push(i),i},applyRules:function(t){o(this.rules).each(function(){this.applyRule(t)})}}),o.ulf_deps={createRuleset:function(){return new t},enable:function(s,i,n){return s.on("change keyup",function(t){var e=t.target.getAttribute("data-depend-id")||t.target.getAttribute("data-sub-depend-id");-1!==n.indexOf(e)&&i.applyRules(s)}),i.applyRules(s),!0}}}(jQuery),function(t,s){if("function"==typeof define&&define.amd)define(["exports","jquery"],function(t,e){return s(t,e)});else if("undefined"!=typeof exports){var e=require("jquery");s(exports,e)}else s(t,t.jQuery||t.Zepto||t.ender||t.$)}(this,function(t,e){var h={validate:/^(?!(_nonce|_pseudo))[a-zA-Z0-9_-]*(?:\[(?:\d*|(?!(_nonce|_pseudo))[a-zA-Z0-9_-]+)\])*$/i,key:/[a-zA-Z0-9_-]+|(?=\[\])/g,named:/^[a-zA-Z0-9_-]+$/,push:/^$/,fixed:/^\d+$/};function s(i,t){var s={},r={};function o(t,e,s){return t[e]=s,t}function e(){return s}this.addPair=function(t){if(!h.validate.test(t.name))return this;var e=function(t,e){for(var s,i=t.match(h.key);void 0!==(s=i.pop());)h.push.test(s)?e=o([],(n=t.replace(/\[\]$/,""),void 0===r[n]&&(r[n]=0),r[n]++),e):h.fixed.test(s)?e=o([],s,e):h.named.test(s)&&(e=o({},s,e));var n;return e}(t.name,t.value);return s=i.extend(!0,s,e),this},this.addPairs=function(t){if(!i.isArray(t))throw new Error("formSerializer.addPairs expects an Array");for(var e=0,s=t.length;e<s;e++)this.addPair(t[e]);return this},this.serialize=e,this.serializeJSON=function(){return JSON.stringify(e())}}return s.patterns=h,s.serializeObject=function(){return new s(e,this).addPairs(this.serializeArray()).serialize()},s.serializeJSON=function(){return new s(e,this).addPairs(this.serializeArray()).serializeJSON()},void 0!==e.fn&&(e.fn.serializeObjectULF=s.serializeObject,e.fn.serializeJSONULF=s.serializeJSON),t.FormSerializer=s});
|
admin/settings/assets/scss/vendor/_fields.scss
CHANGED
@@ -979,8 +979,8 @@
|
|
979 |
.fa-times{
|
980 |
position: absolute;
|
981 |
z-index: 1;
|
982 |
-
right:
|
983 |
-
top:
|
984 |
font-size: 14px;
|
985 |
width: 22px;
|
986 |
height: 22px;
|
@@ -989,7 +989,8 @@
|
|
989 |
text-decoration: none;
|
990 |
color: #fff;
|
991 |
background-color: #dd3333;
|
992 |
-
opacity: 0.
|
|
|
993 |
transition: all .2s;
|
994 |
|
995 |
&:hover{
|
@@ -1678,8 +1679,9 @@
|
|
1678 |
|
1679 |
textarea,
|
1680 |
select{
|
1681 |
-
min-width: 100%;
|
1682 |
margin: 0;
|
|
|
|
|
1683 |
}
|
1684 |
|
1685 |
.csf--title{
|
@@ -1699,6 +1701,7 @@
|
|
1699 |
|
1700 |
.csf--block{
|
1701 |
flex: 1;
|
|
|
1702 |
padding-right: 6px;
|
1703 |
padding-bottom: 6px;
|
1704 |
}
|
@@ -2054,17 +2057,22 @@
|
|
2054 |
display: inline-block;
|
2055 |
position: relative;
|
2056 |
padding: 4px;
|
2057 |
-
min-width:
|
2058 |
-
min-height:
|
|
|
2059 |
margin-bottom: 10px;
|
|
|
|
|
2060 |
border: 1px solid #ccc;
|
2061 |
background-color: #f9f9f9;
|
2062 |
box-shadow: 0 1px 0 rgba(0,0,0,0.08);
|
2063 |
|
2064 |
img{
|
2065 |
-
max-
|
|
|
2066 |
display: inline-block;
|
2067 |
vertical-align: middle;
|
|
|
2068 |
}
|
2069 |
}
|
2070 |
|
979 |
.fa-times{
|
980 |
position: absolute;
|
981 |
z-index: 1;
|
982 |
+
right: 2px;
|
983 |
+
top: 2px;
|
984 |
font-size: 14px;
|
985 |
width: 22px;
|
986 |
height: 22px;
|
989 |
text-decoration: none;
|
990 |
color: #fff;
|
991 |
background-color: #dd3333;
|
992 |
+
opacity: 0.75;
|
993 |
+
border-radius: 2px;
|
994 |
transition: all .2s;
|
995 |
|
996 |
&:hover{
|
1679 |
|
1680 |
textarea,
|
1681 |
select{
|
|
|
1682 |
margin: 0;
|
1683 |
+
min-width: 100%;
|
1684 |
+
max-width: 100%;
|
1685 |
}
|
1686 |
|
1687 |
.csf--title{
|
1701 |
|
1702 |
.csf--block{
|
1703 |
flex: 1;
|
1704 |
+
max-width: 100%;
|
1705 |
padding-right: 6px;
|
1706 |
padding-bottom: 6px;
|
1707 |
}
|
2057 |
display: inline-block;
|
2058 |
position: relative;
|
2059 |
padding: 4px;
|
2060 |
+
min-width: 100px;
|
2061 |
+
min-height: 100px;
|
2062 |
+
line-height: 100px;
|
2063 |
margin-bottom: 10px;
|
2064 |
+
text-align: center;
|
2065 |
+
border-radius: 2px;
|
2066 |
border: 1px solid #ccc;
|
2067 |
background-color: #f9f9f9;
|
2068 |
box-shadow: 0 1px 0 rgba(0,0,0,0.08);
|
2069 |
|
2070 |
img{
|
2071 |
+
max-width: 100px;
|
2072 |
+
max-height: 100px;
|
2073 |
display: inline-block;
|
2074 |
vertical-align: middle;
|
2075 |
+
object-fit: contain;
|
2076 |
}
|
2077 |
}
|
2078 |
|
admin/settings/assets/scss/vendor/_responsive.scss
CHANGED
@@ -69,7 +69,7 @@
|
|
69 |
display: none !important;
|
70 |
}
|
71 |
|
72 |
-
.csf-content{
|
73 |
margin-left: 0;
|
74 |
}
|
75 |
|
69 |
display: none !important;
|
70 |
}
|
71 |
|
72 |
+
.csf-nav-normal + .csf-content{
|
73 |
margin-left: 0;
|
74 |
}
|
75 |
|
admin/settings/classes/abstract.class.php
CHANGED
@@ -36,12 +36,10 @@ if ( ! class_exists( 'ULF_Abstract' ) ) {
|
|
36 |
$field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
|
37 |
$field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
|
38 |
$field_check = ( $field_type === 'typography' || $field_output ) ? true : false;
|
|
|
39 |
|
40 |
if ( $field_type && $field_id ) {
|
41 |
|
42 |
-
ULF::maybe_include_field( $field_type );
|
43 |
-
|
44 |
-
$class_name = 'ULF_Field_' . $field_type;
|
45 |
|
46 |
if( $field_type === 'fieldset' ) {
|
47 |
if ( ! empty( $field['fields'] ) ) {
|
@@ -65,9 +63,9 @@ if ( ! class_exists( 'ULF_Abstract' ) ) {
|
|
65 |
}
|
66 |
}
|
67 |
|
68 |
-
if ( class_exists( $
|
69 |
|
70 |
-
if ( method_exists( $
|
71 |
|
72 |
$field_value = '';
|
73 |
|
@@ -99,7 +97,7 @@ if ( ! class_exists( 'ULF_Abstract' ) ) {
|
|
99 |
|
100 |
}
|
101 |
|
102 |
-
$instance = new $
|
103 |
|
104 |
// typography enqueue and embed google web fonts
|
105 |
if ( $field_type === 'typography' && $this->args['enqueue_webfont'] && ! empty( $field_value['font-family'] ) ) {
|
36 |
$field_type = ( ! empty( $field['type'] ) ) ? $field['type'] : '';
|
37 |
$field_output = ( ! empty( $field['output'] ) ) ? $field['output'] : '';
|
38 |
$field_check = ( $field_type === 'typography' || $field_output ) ? true : false;
|
39 |
+
$field_class = 'ULF_Field_' . $field_type;
|
40 |
|
41 |
if ( $field_type && $field_id ) {
|
42 |
|
|
|
|
|
|
|
43 |
|
44 |
if( $field_type === 'fieldset' ) {
|
45 |
if ( ! empty( $field['fields'] ) ) {
|
63 |
}
|
64 |
}
|
65 |
|
66 |
+
if ( class_exists( $field_class ) ) {
|
67 |
|
68 |
+
if ( method_exists( $field_class, 'output' ) || method_exists( $field_class, 'enqueue_google_fonts' ) ) {
|
69 |
|
70 |
$field_value = '';
|
71 |
|
97 |
|
98 |
}
|
99 |
|
100 |
+
$instance = new $field_class( $field, $field_value, $this->unique, 'wp/enqueue', $this );
|
101 |
|
102 |
// typography enqueue and embed google web fonts
|
103 |
if ( $field_type === 'typography' && $this->args['enqueue_webfont'] && ! empty( $field_value['font-family'] ) ) {
|
admin/settings/classes/admin-options.class.php
CHANGED
@@ -52,6 +52,7 @@ if ( ! class_exists( 'ULF_Options' ) ) {
|
|
52 |
'sticky_header' => true,
|
53 |
'save_defaults' => true,
|
54 |
'ajax_save' => true,
|
|
|
55 |
|
56 |
// admin bar menu settings
|
57 |
'admin_bar_menu_icon' => '',
|
@@ -533,6 +534,7 @@ if ( ! class_exists( 'ULF_Options' ) ) {
|
|
533 |
$theme = ( $this->args['theme'] ) ? ' ulf-theme-'. $this->args['theme'] : '';
|
534 |
$class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
|
535 |
$nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
|
|
|
536 |
|
537 |
do_action( 'ulf_options_before' );
|
538 |
|
@@ -540,7 +542,7 @@ if ( ! class_exists( 'ULF_Options' ) ) {
|
|
540 |
|
541 |
echo '<div class="ulf-container">';
|
542 |
|
543 |
-
echo '<form method="post" action="" enctype="multipart/form-data" id="ulf-form" autocomplete="off" novalidate="novalidate">';
|
544 |
|
545 |
echo '<input type="hidden" class="ulf-section-id" name="ulf_transient[section]" value="1">';
|
546 |
|
52 |
'sticky_header' => true,
|
53 |
'save_defaults' => true,
|
54 |
'ajax_save' => true,
|
55 |
+
'form_action' => '',
|
56 |
|
57 |
// admin bar menu settings
|
58 |
'admin_bar_menu_icon' => '',
|
534 |
$theme = ( $this->args['theme'] ) ? ' ulf-theme-'. $this->args['theme'] : '';
|
535 |
$class = ( $this->args['class'] ) ? ' '. $this->args['class'] : '';
|
536 |
$nav_type = ( $this->args['nav'] === 'inline' ) ? 'inline' : 'normal';
|
537 |
+
$form_action = ( $this->args['form_action'] ) ? $this->args['form_action'] : '';
|
538 |
|
539 |
do_action( 'ulf_options_before' );
|
540 |
|
542 |
|
543 |
echo '<div class="ulf-container">';
|
544 |
|
545 |
+
echo '<form method="post" action="'. esc_attr( $form_action ) .'" enctype="multipart/form-data" id="ulf-form" autocomplete="off" novalidate="novalidate">';
|
546 |
|
547 |
echo '<input type="hidden" class="ulf-section-id" name="ulf_transient[section]" value="1">';
|
548 |
|
admin/settings/classes/setup.class.php
CHANGED
@@ -12,10 +12,12 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
12 |
|
13 |
// Default constants
|
14 |
public static $premium = true;
|
15 |
-
public static $version = '2.2.
|
16 |
public static $dir = '';
|
17 |
public static $url = '';
|
18 |
public static $css = '';
|
|
|
|
|
19 |
public static $webfonts = array();
|
20 |
public static $subsets = array();
|
21 |
public static $inited = array();
|
@@ -35,18 +37,33 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
35 |
// Shortcode instances
|
36 |
public static $shortcode_instances = array();
|
37 |
|
38 |
-
|
39 |
-
public static function init() {
|
40 |
|
41 |
-
|
42 |
-
|
|
|
|
|
43 |
|
44 |
-
// Set
|
45 |
self::constants();
|
46 |
|
47 |
// Include files
|
48 |
self::includes();
|
49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
// Setup textdomain
|
51 |
self::textdomain();
|
52 |
|
@@ -68,7 +85,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
68 |
|
69 |
// Setup admin option framework
|
70 |
$params = array();
|
71 |
-
if ( ! empty( self::$args['admin_options'] ) ) {
|
72 |
foreach ( self::$args['admin_options'] as $key => $value ) {
|
73 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
74 |
|
@@ -91,7 +108,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
91 |
|
92 |
// Setup customize option framework
|
93 |
$params = array();
|
94 |
-
if ( ! empty( self::$args['customize_options'] ) ) {
|
95 |
foreach ( self::$args['customize_options'] as $key => $value ) {
|
96 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
97 |
|
@@ -107,7 +124,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
107 |
|
108 |
// Setup metabox option framework
|
109 |
$params = array();
|
110 |
-
if ( ! empty( self::$args['metabox_options'] ) ) {
|
111 |
foreach ( self::$args['metabox_options'] as $key => $value ) {
|
112 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
113 |
|
@@ -123,7 +140,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
123 |
|
124 |
// Setup nav menu option framework
|
125 |
$params = array();
|
126 |
-
if ( ! empty( self::$args['nav_menu_options'] ) ) {
|
127 |
foreach ( self::$args['nav_menu_options'] as $key => $value ) {
|
128 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
129 |
|
@@ -139,7 +156,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
139 |
|
140 |
// Setup profile option framework
|
141 |
$params = array();
|
142 |
-
if ( ! empty( self::$args['profile_options'] ) ) {
|
143 |
foreach ( self::$args['profile_options'] as $key => $value ) {
|
144 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
145 |
|
@@ -155,7 +172,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
155 |
|
156 |
// Setup taxonomy option framework
|
157 |
$params = array();
|
158 |
-
if ( ! empty( self::$args['taxonomy_options'] ) ) {
|
159 |
$taxonomy = ( isset( $_GET['taxonomy'] ) ) ? sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ) : '';
|
160 |
foreach ( self::$args['taxonomy_options'] as $key => $value ) {
|
161 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
@@ -171,7 +188,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
171 |
}
|
172 |
|
173 |
// Setup widget option framework
|
174 |
-
if (
|
175 |
$wp_widget_factory = new WP_Widget_Factory();
|
176 |
foreach ( self::$args['widget_options'] as $key => $value ) {
|
177 |
if ( ! isset( self::$inited[$key] ) ) {
|
@@ -185,7 +202,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
185 |
|
186 |
// Setup comment option framework
|
187 |
$params = array();
|
188 |
-
if ( ! empty( self::$args['comment_options'] ) ) {
|
189 |
foreach ( self::$args['comment_options'] as $key => $value ) {
|
190 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
191 |
|
@@ -201,8 +218,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
201 |
|
202 |
// Setup shortcode option framework
|
203 |
$params = array();
|
204 |
-
if ( ! empty( self::$args['shortcode_options'] ) ) {
|
205 |
-
|
206 |
foreach ( self::$args['shortcode_options'] as $key => $value ) {
|
207 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
208 |
|
@@ -216,7 +232,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
216 |
}
|
217 |
|
218 |
// Once editor setup for gutenberg and media buttons
|
219 |
-
if ( ! empty( self::$shortcode_instances ) ) {
|
220 |
foreach ( self::$shortcode_instances as $instance ) {
|
221 |
if ( ! empty( $instance['show_in_editor'] ) ) {
|
222 |
ULF_Shortcoder::once_editor_setup();
|
@@ -287,7 +303,7 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
287 |
public static function constants() {
|
288 |
|
289 |
// We need this path-finder code for set URL of framework
|
290 |
-
$dirname = str_replace( '//', '/', wp_normalize_path( dirname( dirname(
|
291 |
$theme_dir = str_replace( '//', '/', wp_normalize_path( get_parent_theme_file_path() ) );
|
292 |
$plugin_dir = str_replace( '//', '/', wp_normalize_path( WP_PLUGIN_DIR ) );
|
293 |
$located_plugin = ( preg_match( '#'. self::sanitize_dirname( $plugin_dir ) .'#', self::sanitize_dirname( $dirname ) ) ) ? true : false;
|
@@ -382,13 +398,61 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
382 |
self::include_plugin_file( 'classes/comment-options.class.php' );
|
383 |
}
|
384 |
|
385 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
386 |
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
|
|
|
|
391 |
}
|
|
|
392 |
}
|
393 |
|
394 |
// Setup textdomain
|
@@ -429,13 +493,12 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
429 |
public static function add_admin_enqueue_scripts() {
|
430 |
|
431 |
// Loads scripts and styles only when needed
|
432 |
-
$enqueue = false;
|
433 |
$wpscreen = get_current_screen();
|
434 |
|
435 |
if ( ! empty( self::$args['admin_options'] ) ) {
|
436 |
foreach ( self::$args['admin_options'] as $argument ) {
|
437 |
if ( substr( $wpscreen->id, -strlen( $argument['menu_slug'] ) ) === $argument['menu_slug'] ) {
|
438 |
-
|
439 |
}
|
440 |
}
|
441 |
}
|
@@ -443,15 +506,15 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
443 |
if ( ! empty( self::$args['metabox_options'] ) ) {
|
444 |
foreach ( self::$args['metabox_options'] as $argument ) {
|
445 |
if ( in_array( $wpscreen->post_type, (array) $argument['post_type'] ) ) {
|
446 |
-
|
447 |
}
|
448 |
}
|
449 |
}
|
450 |
|
451 |
if ( ! empty( self::$args['taxonomy_options'] ) ) {
|
452 |
foreach ( self::$args['taxonomy_options'] as $argument ) {
|
453 |
-
if ( $wpscreen->taxonomy
|
454 |
-
|
455 |
}
|
456 |
}
|
457 |
}
|
@@ -459,36 +522,36 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
459 |
if ( ! empty( self::$shortcode_instances ) ) {
|
460 |
foreach ( self::$shortcode_instances as $argument ) {
|
461 |
if ( ( $argument['show_in_editor'] && $wpscreen->base === 'post' ) || $argument['show_in_custom'] ) {
|
462 |
-
|
463 |
}
|
464 |
}
|
465 |
}
|
466 |
|
467 |
if ( ! empty( self::$args['widget_options'] ) && ( $wpscreen->id === 'widgets' || $wpscreen->id === 'customize' ) ) {
|
468 |
-
|
469 |
}
|
470 |
|
471 |
if ( ! empty( self::$args['customize_options'] ) && $wpscreen->id === 'customize' ) {
|
472 |
-
|
473 |
}
|
474 |
|
475 |
if ( ! empty( self::$args['nav_menu_options'] ) && $wpscreen->id === 'nav-menus' ) {
|
476 |
-
|
477 |
}
|
478 |
|
479 |
if ( ! empty( self::$args['profile_options'] ) && ( $wpscreen->id === 'profile' || $wpscreen->id === 'user-edit' ) ) {
|
480 |
-
|
481 |
}
|
482 |
|
483 |
if ( ! empty( self::$args['comment_options'] ) && $wpscreen->id === 'comment' ) {
|
484 |
-
|
485 |
}
|
486 |
|
487 |
if ( $wpscreen->id === 'tools_page_ulf-welcome' ) {
|
488 |
-
|
489 |
}
|
490 |
|
491 |
-
if ( !
|
492 |
return;
|
493 |
}
|
494 |
|
@@ -506,8 +569,8 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
506 |
if ( apply_filters( 'ulf_fa4', false ) ) {
|
507 |
wp_enqueue_style( 'ulf-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome'. $min .'.css', array(), '4.7.0', 'all' );
|
508 |
} else {
|
509 |
-
wp_enqueue_style( 'ulf-fa5', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.
|
510 |
-
wp_enqueue_style( 'ulf-fa5-v4-shims', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.
|
511 |
}
|
512 |
|
513 |
// Main style
|
@@ -540,7 +603,6 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
540 |
foreach ( self::$fields as $field ) {
|
541 |
if ( ! empty( $field['type'] ) ) {
|
542 |
$classname = 'ULF_Field_' . $field['type'];
|
543 |
-
self::maybe_include_field( $field['type'] );
|
544 |
if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
|
545 |
$instance = new $classname( $field );
|
546 |
if ( method_exists( $classname, 'enqueue' ) ) {
|
@@ -697,8 +759,6 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
697 |
$value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
|
698 |
$value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
|
699 |
|
700 |
-
self::maybe_include_field( $field_type );
|
701 |
-
|
702 |
$classname = 'ULF_Field_'. $field_type;
|
703 |
|
704 |
if ( class_exists( $classname ) ) {
|
@@ -720,5 +780,6 @@ if ( ! class_exists( 'ULF' ) ) {
|
|
720 |
|
721 |
}
|
722 |
|
723 |
-
ULF::init();
|
724 |
}
|
|
|
|
12 |
|
13 |
// Default constants
|
14 |
public static $premium = true;
|
15 |
+
public static $version = '2.2.2';
|
16 |
public static $dir = '';
|
17 |
public static $url = '';
|
18 |
public static $css = '';
|
19 |
+
public static $file = '';
|
20 |
+
public static $enqueue = false;
|
21 |
public static $webfonts = array();
|
22 |
public static $subsets = array();
|
23 |
public static $inited = array();
|
37 |
// Shortcode instances
|
38 |
public static $shortcode_instances = array();
|
39 |
|
40 |
+
private static $instance = null;
|
|
|
41 |
|
42 |
+
public static function init( $file = __FILE__ ) {
|
43 |
+
|
44 |
+
// Set file constant
|
45 |
+
self::$file = $file;
|
46 |
|
47 |
+
// Set constants
|
48 |
self::constants();
|
49 |
|
50 |
// Include files
|
51 |
self::includes();
|
52 |
|
53 |
+
if ( is_null( self::$instance ) ) {
|
54 |
+
self::$instance = new self();
|
55 |
+
}
|
56 |
+
|
57 |
+
return self::$instance;
|
58 |
+
|
59 |
+
}
|
60 |
+
|
61 |
+
// Initalize
|
62 |
+
public function __construct() {
|
63 |
+
|
64 |
+
// Init action
|
65 |
+
do_action( 'ulf_init' );
|
66 |
+
|
67 |
// Setup textdomain
|
68 |
self::textdomain();
|
69 |
|
85 |
|
86 |
// Setup admin option framework
|
87 |
$params = array();
|
88 |
+
if ( class_exists( 'ULF_Options' ) && ! empty( self::$args['admin_options'] ) ) {
|
89 |
foreach ( self::$args['admin_options'] as $key => $value ) {
|
90 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
91 |
|
108 |
|
109 |
// Setup customize option framework
|
110 |
$params = array();
|
111 |
+
if ( class_exists( 'ULF_Customize_Options' ) && ! empty( self::$args['customize_options'] ) ) {
|
112 |
foreach ( self::$args['customize_options'] as $key => $value ) {
|
113 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
114 |
|
124 |
|
125 |
// Setup metabox option framework
|
126 |
$params = array();
|
127 |
+
if ( class_exists( 'ULF_Metabox' ) && ! empty( self::$args['metabox_options'] ) ) {
|
128 |
foreach ( self::$args['metabox_options'] as $key => $value ) {
|
129 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
130 |
|
140 |
|
141 |
// Setup nav menu option framework
|
142 |
$params = array();
|
143 |
+
if ( class_exists( 'ULF_Nav_Menu_Options' ) && ! empty( self::$args['nav_menu_options'] ) ) {
|
144 |
foreach ( self::$args['nav_menu_options'] as $key => $value ) {
|
145 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
146 |
|
156 |
|
157 |
// Setup profile option framework
|
158 |
$params = array();
|
159 |
+
if ( class_exists( 'ULF_Profile_Options' ) && ! empty( self::$args['profile_options'] ) ) {
|
160 |
foreach ( self::$args['profile_options'] as $key => $value ) {
|
161 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
162 |
|
172 |
|
173 |
// Setup taxonomy option framework
|
174 |
$params = array();
|
175 |
+
if ( class_exists( 'ULF_Taxonomy_Options' ) && ! empty( self::$args['taxonomy_options'] ) ) {
|
176 |
$taxonomy = ( isset( $_GET['taxonomy'] ) ) ? sanitize_text_field( wp_unslash( $_GET['taxonomy'] ) ) : '';
|
177 |
foreach ( self::$args['taxonomy_options'] as $key => $value ) {
|
178 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
188 |
}
|
189 |
|
190 |
// Setup widget option framework
|
191 |
+
if ( class_exists( 'ULF_Widget' ) && class_exists( 'WP_Widget_Factory' ) && ! empty( self::$args['widget_options'] ) ) {
|
192 |
$wp_widget_factory = new WP_Widget_Factory();
|
193 |
foreach ( self::$args['widget_options'] as $key => $value ) {
|
194 |
if ( ! isset( self::$inited[$key] ) ) {
|
202 |
|
203 |
// Setup comment option framework
|
204 |
$params = array();
|
205 |
+
if ( class_exists( 'ULF_Comment_Metabox' ) && ! empty( self::$args['comment_options'] ) ) {
|
206 |
foreach ( self::$args['comment_options'] as $key => $value ) {
|
207 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
208 |
|
218 |
|
219 |
// Setup shortcode option framework
|
220 |
$params = array();
|
221 |
+
if ( class_exists( 'ULF_Shortcoder' ) && ! empty( self::$args['shortcode_options'] ) ) {
|
|
|
222 |
foreach ( self::$args['shortcode_options'] as $key => $value ) {
|
223 |
if ( ! empty( self::$args['sections'][$key] ) && ! isset( self::$inited[$key] ) ) {
|
224 |
|
232 |
}
|
233 |
|
234 |
// Once editor setup for gutenberg and media buttons
|
235 |
+
if ( class_exists( 'ULF_Shortcoder' ) && ! empty( self::$shortcode_instances ) ) {
|
236 |
foreach ( self::$shortcode_instances as $instance ) {
|
237 |
if ( ! empty( $instance['show_in_editor'] ) ) {
|
238 |
ULF_Shortcoder::once_editor_setup();
|
303 |
public static function constants() {
|
304 |
|
305 |
// We need this path-finder code for set URL of framework
|
306 |
+
$dirname = str_replace( '//', '/', wp_normalize_path( dirname( dirname( self::$file ) ) ) );
|
307 |
$theme_dir = str_replace( '//', '/', wp_normalize_path( get_parent_theme_file_path() ) );
|
308 |
$plugin_dir = str_replace( '//', '/', wp_normalize_path( WP_PLUGIN_DIR ) );
|
309 |
$located_plugin = ( preg_match( '#'. self::sanitize_dirname( $plugin_dir ) .'#', self::sanitize_dirname( $dirname ) ) ) ? true : false;
|
398 |
self::include_plugin_file( 'classes/comment-options.class.php' );
|
399 |
}
|
400 |
|
401 |
+
// Include all framework fields
|
402 |
+
$fields = apply_filters( 'ulf_fields', array(
|
403 |
+
'accordion',
|
404 |
+
'background',
|
405 |
+
'backup',
|
406 |
+
'border',
|
407 |
+
'button_set',
|
408 |
+
'callback',
|
409 |
+
'checkbox',
|
410 |
+
'code_editor',
|
411 |
+
'color',
|
412 |
+
'color_group',
|
413 |
+
'content',
|
414 |
+
'date',
|
415 |
+
'dimensions',
|
416 |
+
'fieldset',
|
417 |
+
'gallery',
|
418 |
+
'group',
|
419 |
+
'heading',
|
420 |
+
'icon',
|
421 |
+
'image_select',
|
422 |
+
'link',
|
423 |
+
'link_color',
|
424 |
+
'map',
|
425 |
+
'media',
|
426 |
+
'notice',
|
427 |
+
'number',
|
428 |
+
'palette',
|
429 |
+
'radio',
|
430 |
+
'repeater',
|
431 |
+
'select',
|
432 |
+
'slider',
|
433 |
+
'sortable',
|
434 |
+
'sorter',
|
435 |
+
'spacing',
|
436 |
+
'spinner',
|
437 |
+
'subheading',
|
438 |
+
'submessage',
|
439 |
+
'switcher',
|
440 |
+
'tabbed',
|
441 |
+
'text',
|
442 |
+
'textarea',
|
443 |
+
'typography',
|
444 |
+
'upload',
|
445 |
+
'wp_editor',
|
446 |
+
) );
|
447 |
|
448 |
+
if ( ! empty( $fields ) ) {
|
449 |
+
foreach ( $fields as $field ) {
|
450 |
+
if ( ! class_exists( 'ULF_Field_'. $field ) && class_exists( 'ULF_Fields' ) ) {
|
451 |
+
self::include_plugin_file( 'fields/'. $field .'/'. $field .'.php' );
|
452 |
+
}
|
453 |
+
}
|
454 |
}
|
455 |
+
|
456 |
}
|
457 |
|
458 |
// Setup textdomain
|
493 |
public static function add_admin_enqueue_scripts() {
|
494 |
|
495 |
// Loads scripts and styles only when needed
|
|
|
496 |
$wpscreen = get_current_screen();
|
497 |
|
498 |
if ( ! empty( self::$args['admin_options'] ) ) {
|
499 |
foreach ( self::$args['admin_options'] as $argument ) {
|
500 |
if ( substr( $wpscreen->id, -strlen( $argument['menu_slug'] ) ) === $argument['menu_slug'] ) {
|
501 |
+
self::$enqueue = true;
|
502 |
}
|
503 |
}
|
504 |
}
|
506 |
if ( ! empty( self::$args['metabox_options'] ) ) {
|
507 |
foreach ( self::$args['metabox_options'] as $argument ) {
|
508 |
if ( in_array( $wpscreen->post_type, (array) $argument['post_type'] ) ) {
|
509 |
+
self::$enqueue = true;
|
510 |
}
|
511 |
}
|
512 |
}
|
513 |
|
514 |
if ( ! empty( self::$args['taxonomy_options'] ) ) {
|
515 |
foreach ( self::$args['taxonomy_options'] as $argument ) {
|
516 |
+
if ( in_array( $wpscreen->taxonomy, (array) $argument['taxonomy'] ) ) {
|
517 |
+
self::$enqueue = true;
|
518 |
}
|
519 |
}
|
520 |
}
|
522 |
if ( ! empty( self::$shortcode_instances ) ) {
|
523 |
foreach ( self::$shortcode_instances as $argument ) {
|
524 |
if ( ( $argument['show_in_editor'] && $wpscreen->base === 'post' ) || $argument['show_in_custom'] ) {
|
525 |
+
self::$enqueue = true;
|
526 |
}
|
527 |
}
|
528 |
}
|
529 |
|
530 |
if ( ! empty( self::$args['widget_options'] ) && ( $wpscreen->id === 'widgets' || $wpscreen->id === 'customize' ) ) {
|
531 |
+
self::$enqueue = true;
|
532 |
}
|
533 |
|
534 |
if ( ! empty( self::$args['customize_options'] ) && $wpscreen->id === 'customize' ) {
|
535 |
+
self::$enqueue = true;
|
536 |
}
|
537 |
|
538 |
if ( ! empty( self::$args['nav_menu_options'] ) && $wpscreen->id === 'nav-menus' ) {
|
539 |
+
self::$enqueue = true;
|
540 |
}
|
541 |
|
542 |
if ( ! empty( self::$args['profile_options'] ) && ( $wpscreen->id === 'profile' || $wpscreen->id === 'user-edit' ) ) {
|
543 |
+
self::$enqueue = true;
|
544 |
}
|
545 |
|
546 |
if ( ! empty( self::$args['comment_options'] ) && $wpscreen->id === 'comment' ) {
|
547 |
+
self::$enqueue = true;
|
548 |
}
|
549 |
|
550 |
if ( $wpscreen->id === 'tools_page_ulf-welcome' ) {
|
551 |
+
self::$enqueue = true;
|
552 |
}
|
553 |
|
554 |
+
if ( ! apply_filters( 'ulf_enqueue_assets', self::$enqueue ) ) {
|
555 |
return;
|
556 |
}
|
557 |
|
569 |
if ( apply_filters( 'ulf_fa4', false ) ) {
|
570 |
wp_enqueue_style( 'ulf-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome'. $min .'.css', array(), '4.7.0', 'all' );
|
571 |
} else {
|
572 |
+
wp_enqueue_style( 'ulf-fa5', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.3/css/all'. $min .'.css', array(), '5.15.3', 'all' );
|
573 |
+
wp_enqueue_style( 'ulf-fa5-v4-shims', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.3/css/v4-shims'. $min .'.css', array(), '5.15.3', 'all' );
|
574 |
}
|
575 |
|
576 |
// Main style
|
603 |
foreach ( self::$fields as $field ) {
|
604 |
if ( ! empty( $field['type'] ) ) {
|
605 |
$classname = 'ULF_Field_' . $field['type'];
|
|
|
606 |
if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) {
|
607 |
$instance = new $classname( $field );
|
608 |
if ( method_exists( $classname, 'enqueue' ) ) {
|
759 |
$value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value;
|
760 |
$value = ( isset( $field['value'] ) ) ? $field['value'] : $value;
|
761 |
|
|
|
|
|
762 |
$classname = 'ULF_Field_'. $field_type;
|
763 |
|
764 |
if ( class_exists( $classname ) ) {
|
780 |
|
781 |
}
|
782 |
|
|
|
783 |
}
|
784 |
+
|
785 |
+
ULF::init( __FILE__ );
|
admin/settings/fields/callback/callback.php
CHANGED
@@ -16,7 +16,7 @@ if ( ! class_exists( 'ULF_Field_callback' ) ) {
|
|
16 |
|
17 |
public function render() {
|
18 |
|
19 |
-
if ( isset( $this->field['function'] ) &&
|
20 |
|
21 |
$args = ( isset( $this->field['args'] ) ) ? $this->field['args'] : null;
|
22 |
|
@@ -28,3 +28,4 @@ if ( ! class_exists( 'ULF_Field_callback' ) ) {
|
|
28 |
|
29 |
}
|
30 |
}
|
|
16 |
|
17 |
public function render() {
|
18 |
|
19 |
+
if ( isset( $this->field['function'] ) && is_callable( $this->field['function'] ) ) {
|
20 |
|
21 |
$args = ( isset( $this->field['args'] ) ) ? $this->field['args'] : null;
|
22 |
|
28 |
|
29 |
}
|
30 |
}
|
31 |
+
|
admin/settings/fields/code_editor/code_editor.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
if ( ! class_exists( 'ULF_Field_code_editor' ) ) {
|
11 |
class ULF_Field_code_editor extends ULF_Fields {
|
12 |
|
13 |
-
public $version = '5.
|
14 |
public $cdn_url = 'https://cdn.jsdelivr.net/npm/codemirror@';
|
15 |
|
16 |
public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
|
10 |
if ( ! class_exists( 'ULF_Field_code_editor' ) ) {
|
11 |
class ULF_Field_code_editor extends ULF_Fields {
|
12 |
|
13 |
+
public $version = '5.60.0';
|
14 |
public $cdn_url = 'https://cdn.jsdelivr.net/npm/codemirror@';
|
15 |
|
16 |
public function __construct( $field, $value = '', $unique = '', $where = '', $parent = '' ) {
|
admin/settings/fields/icon/fa4-icons.php
CHANGED
@@ -2,9 +2,11 @@
|
|
2 |
//
|
3 |
// Font Awesome 4 Icons
|
4 |
//
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
'icons' => array( 'fa fa-glass','fa fa-music','fa fa-search','fa fa-envelope-o','fa fa-heart','fa fa-star','fa fa-star-o','fa fa-user','fa fa-film','fa fa-th-large','fa fa-th','fa fa-th-list','fa fa-check','fa fa-times','fa fa-search-plus','fa fa-search-minus','fa fa-power-off','fa fa-signal','fa fa-cog','fa fa-trash-o','fa fa-home','fa fa-file-o','fa fa-clock-o','fa fa-road','fa fa-download','fa fa-arrow-circle-o-down','fa fa-arrow-circle-o-up','fa fa-inbox','fa fa-play-circle-o','fa fa-repeat','fa fa-refresh','fa fa-list-alt','fa fa-lock','fa fa-flag','fa fa-headphones','fa fa-volume-off','fa fa-volume-down','fa fa-volume-up','fa fa-qrcode','fa fa-barcode','fa fa-tag','fa fa-tags','fa fa-book','fa fa-bookmark','fa fa-print','fa fa-camera','fa fa-font','fa fa-bold','fa fa-italic','fa fa-text-height','fa fa-text-width','fa fa-align-left','fa fa-align-center','fa fa-align-right','fa fa-align-justify','fa fa-list','fa fa-outdent','fa fa-indent','fa fa-video-camera','fa fa-picture-o','fa fa-pencil','fa fa-map-marker','fa fa-adjust','fa fa-tint','fa fa-pencil-square-o','fa fa-share-square-o','fa fa-check-square-o','fa fa-arrows','fa fa-step-backward','fa fa-fast-backward','fa fa-backward','fa fa-play','fa fa-pause','fa fa-stop','fa fa-forward','fa fa-fast-forward','fa fa-step-forward','fa fa-eject','fa fa-chevron-left','fa fa-chevron-right','fa fa-plus-circle','fa fa-minus-circle','fa fa-times-circle','fa fa-check-circle','fa fa-question-circle','fa fa-info-circle','fa fa-crosshairs','fa fa-times-circle-o','fa fa-check-circle-o','fa fa-ban','fa fa-arrow-left','fa fa-arrow-right','fa fa-arrow-up','fa fa-arrow-down','fa fa-share','fa fa-expand','fa fa-compress','fa fa-plus','fa fa-minus','fa fa-asterisk','fa fa-exclamation-circle','fa fa-gift','fa fa-leaf','fa fa-fire','fa fa-eye','fa fa-eye-slash','fa fa-exclamation-triangle','fa fa-plane','fa fa-calendar','fa fa-random','fa fa-comment','fa fa-magnet','fa fa-chevron-up','fa fa-chevron-down','fa fa-retweet','fa fa-shopping-cart','fa fa-folder','fa fa-folder-open','fa fa-arrows-v','fa fa-arrows-h','fa fa-bar-chart','fa fa-twitter-square','fa fa-facebook-square','fa fa-camera-retro','fa fa-key','fa fa-cogs','fa fa-comments','fa fa-thumbs-o-up','fa fa-thumbs-o-down','fa fa-star-half','fa fa-heart-o','fa fa-sign-out','fa fa-linkedin-square','fa fa-thumb-tack','fa fa-external-link','fa fa-sign-in','fa fa-trophy','fa fa-github-square','fa fa-upload','fa fa-lemon-o','fa fa-phone','fa fa-square-o','fa fa-bookmark-o','fa fa-phone-square','fa fa-twitter','fa fa-facebook','fa fa-github','fa fa-unlock','fa fa-credit-card','fa fa-rss','fa fa-hdd-o','fa fa-bullhorn','fa fa-bell','fa fa-certificate','fa fa-hand-o-right','fa fa-hand-o-left','fa fa-hand-o-up','fa fa-hand-o-down','fa fa-arrow-circle-left','fa fa-arrow-circle-right','fa fa-arrow-circle-up','fa fa-arrow-circle-down','fa fa-globe','fa fa-wrench','fa fa-tasks','fa fa-filter','fa fa-briefcase','fa fa-arrows-alt','fa fa-users','fa fa-link','fa fa-cloud','fa fa-flask','fa fa-scissors','fa fa-files-o','fa fa-paperclip','fa fa-floppy-o','fa fa-square','fa fa-bars','fa fa-list-ul','fa fa-list-ol','fa fa-strikethrough','fa fa-underline','fa fa-table','fa fa-magic','fa fa-truck','fa fa-pinterest','fa fa-pinterest-square','fa fa-google-plus-square','fa fa-google-plus','fa fa-money','fa fa-caret-down','fa fa-caret-up','fa fa-caret-left','fa fa-caret-right','fa fa-columns','fa fa-sort','fa fa-sort-desc','fa fa-sort-asc','fa fa-envelope','fa fa-linkedin','fa fa-undo','fa fa-gavel','fa fa-tachometer','fa fa-comment-o','fa fa-comments-o','fa fa-bolt','fa fa-sitemap','fa fa-umbrella','fa fa-clipboard','fa fa-lightbulb-o','fa fa-exchange','fa fa-cloud-download','fa fa-cloud-upload','fa fa-user-md','fa fa-stethoscope','fa fa-suitcase','fa fa-bell-o','fa fa-coffee','fa fa-cutlery','fa fa-file-text-o','fa fa-building-o','fa fa-hospital-o','fa fa-ambulance','fa fa-medkit','fa fa-fighter-jet','fa fa-beer','fa fa-h-square','fa fa-plus-square','fa fa-angle-double-left','fa fa-angle-double-right','fa fa-angle-double-up','fa fa-angle-double-down','fa fa-angle-left','fa fa-angle-right','fa fa-angle-up','fa fa-angle-down','fa fa-desktop','fa fa-laptop','fa fa-tablet','fa fa-mobile','fa fa-circle-o','fa fa-quote-left','fa fa-quote-right','fa fa-spinner','fa fa-circle','fa fa-reply','fa fa-github-alt','fa fa-folder-o','fa fa-folder-open-o','fa fa-smile-o','fa fa-frown-o','fa fa-meh-o','fa fa-gamepad','fa fa-keyboard-o','fa fa-flag-o','fa fa-flag-checkered','fa fa-terminal','fa fa-code','fa fa-reply-all','fa fa-star-half-o','fa fa-location-arrow','fa fa-crop','fa fa-code-fork','fa fa-chain-broken','fa fa-question','fa fa-info','fa fa-exclamation','fa fa-superscript','fa fa-subscript','fa fa-eraser','fa fa-puzzle-piece','fa fa-microphone','fa fa-microphone-slash','fa fa-shield','fa fa-calendar-o','fa fa-fire-extinguisher','fa fa-rocket','fa fa-maxcdn','fa fa-chevron-circle-left','fa fa-chevron-circle-right','fa fa-chevron-circle-up','fa fa-chevron-circle-down','fa fa-html5','fa fa-css3','fa fa-anchor','fa fa-unlock-alt','fa fa-bullseye','fa fa-ellipsis-h','fa fa-ellipsis-v','fa fa-rss-square','fa fa-play-circle','fa fa-ticket','fa fa-minus-square','fa fa-minus-square-o','fa fa-level-up','fa fa-level-down','fa fa-check-square','fa fa-pencil-square','fa fa-external-link-square','fa fa-share-square','fa fa-compass','fa fa-caret-square-o-down','fa fa-caret-square-o-up','fa fa-caret-square-o-right','fa fa-eur','fa fa-gbp','fa fa-usd','fa fa-inr','fa fa-jpy','fa fa-rub','fa fa-krw','fa fa-btc','fa fa-file','fa fa-file-text','fa fa-sort-alpha-asc','fa fa-sort-alpha-desc','fa fa-sort-amount-asc','fa fa-sort-amount-desc','fa fa-sort-numeric-asc','fa fa-sort-numeric-desc','fa fa-thumbs-up','fa fa-thumbs-down','fa fa-youtube-square','fa fa-youtube','fa fa-xing','fa fa-xing-square','fa fa-youtube-play','fa fa-dropbox','fa fa-stack-overflow','fa fa-instagram','fa fa-flickr','fa fa-adn','fa fa-bitbucket','fa fa-bitbucket-square','fa fa-tumblr','fa fa-tumblr-square','fa fa-long-arrow-down','fa fa-long-arrow-up','fa fa-long-arrow-left','fa fa-long-arrow-right','fa fa-apple','fa fa-windows','fa fa-android','fa fa-linux','fa fa-dribbble','fa fa-skype','fa fa-foursquare','fa fa-trello','fa fa-female','fa fa-male','fa fa-gratipay','fa fa-sun-o','fa fa-moon-o','fa fa-archive','fa fa-bug','fa fa-vk','fa fa-weibo','fa fa-renren','fa fa-pagelines','fa fa-stack-exchange','fa fa-arrow-circle-o-right','fa fa-arrow-circle-o-left','fa fa-caret-square-o-left','fa fa-dot-circle-o','fa fa-wheelchair','fa fa-vimeo-square','fa fa-try','fa fa-plus-square-o','fa fa-space-shuttle','fa fa-slack','fa fa-envelope-square','fa fa-wordpress','fa fa-openid','fa fa-university','fa fa-graduation-cap','fa fa-yahoo','fa fa-google','fa fa-reddit','fa fa-reddit-square','fa fa-stumbleupon-circle','fa fa-stumbleupon','fa fa-delicious','fa fa-digg','fa fa-pied-piper-pp','fa fa-pied-piper-alt','fa fa-drupal','fa fa-joomla','fa fa-language','fa fa-fax','fa fa-building','fa fa-child','fa fa-paw','fa fa-spoon','fa fa-cube','fa fa-cubes','fa fa-behance','fa fa-behance-square','fa fa-steam','fa fa-steam-square','fa fa-recycle','fa fa-car','fa fa-taxi','fa fa-tree','fa fa-spotify','fa fa-deviantart','fa fa-soundcloud','fa fa-database','fa fa-file-pdf-o','fa fa-file-word-o','fa fa-file-excel-o','fa fa-file-powerpoint-o','fa fa-file-image-o','fa fa-file-archive-o','fa fa-file-audio-o','fa fa-file-video-o','fa fa-file-code-o','fa fa-vine','fa fa-codepen','fa fa-jsfiddle','fa fa-life-ring','fa fa-circle-o-notch','fa fa-rebel','fa fa-empire','fa fa-git-square','fa fa-git','fa fa-hacker-news','fa fa-tencent-weibo','fa fa-qq','fa fa-weixin','fa fa-paper-plane','fa fa-paper-plane-o','fa fa-history','fa fa-circle-thin','fa fa-header','fa fa-paragraph','fa fa-sliders','fa fa-share-alt','fa fa-share-alt-square','fa fa-bomb','fa fa-futbol-o','fa fa-tty','fa fa-binoculars','fa fa-plug','fa fa-slideshare','fa fa-twitch','fa fa-yelp','fa fa-newspaper-o','fa fa-wifi','fa fa-calculator','fa fa-paypal','fa fa-google-wallet','fa fa-cc-visa','fa fa-cc-mastercard','fa fa-cc-discover','fa fa-cc-amex','fa fa-cc-paypal','fa fa-cc-stripe','fa fa-bell-slash','fa fa-bell-slash-o','fa fa-trash','fa fa-copyright','fa fa-at','fa fa-eyedropper','fa fa-paint-brush','fa fa-birthday-cake','fa fa-area-chart','fa fa-pie-chart','fa fa-line-chart','fa fa-lastfm','fa fa-lastfm-square','fa fa-toggle-off','fa fa-toggle-on','fa fa-bicycle','fa fa-bus','fa fa-ioxhost','fa fa-angellist','fa fa-cc','fa fa-ils','fa fa-meanpath','fa fa-buysellads','fa fa-connectdevelop','fa fa-dashcube','fa fa-forumbee','fa fa-leanpub','fa fa-sellsy','fa fa-shirtsinbulk','fa fa-simplybuilt','fa fa-skyatlas','fa fa-cart-plus','fa fa-cart-arrow-down','fa fa-diamond','fa fa-ship','fa fa-user-secret','fa fa-motorcycle','fa fa-street-view','fa fa-heartbeat','fa fa-venus','fa fa-mars','fa fa-mercury','fa fa-transgender','fa fa-transgender-alt','fa fa-venus-double','fa fa-mars-double','fa fa-venus-mars','fa fa-mars-stroke','fa fa-mars-stroke-v','fa fa-mars-stroke-h','fa fa-neuter','fa fa-genderless','fa fa-facebook-official','fa fa-pinterest-p','fa fa-whatsapp','fa fa-server','fa fa-user-plus','fa fa-user-times','fa fa-bed','fa fa-viacoin','fa fa-train','fa fa-subway','fa fa-medium','fa fa-y-combinator','fa fa-optin-monster','fa fa-opencart','fa fa-expeditedssl','fa fa-battery-full','fa fa-battery-three-quarters','fa fa-battery-half','fa fa-battery-quarter','fa fa-battery-empty','fa fa-mouse-pointer','fa fa-i-cursor','fa fa-object-group','fa fa-object-ungroup','fa fa-sticky-note','fa fa-sticky-note-o','fa fa-cc-jcb','fa fa-cc-diners-club','fa fa-clone','fa fa-balance-scale','fa fa-hourglass-o','fa fa-hourglass-start','fa fa-hourglass-half','fa fa-hourglass-end','fa fa-hourglass','fa fa-hand-rock-o','fa fa-hand-paper-o','fa fa-hand-scissors-o','fa fa-hand-lizard-o','fa fa-hand-spock-o','fa fa-hand-pointer-o','fa fa-hand-peace-o','fa fa-trademark','fa fa-registered','fa fa-creative-commons','fa fa-gg','fa fa-gg-circle','fa fa-tripadvisor','fa fa-odnoklassniki','fa fa-odnoklassniki-square','fa fa-get-pocket','fa fa-wikipedia-w','fa fa-safari','fa fa-chrome','fa fa-firefox','fa fa-opera','fa fa-internet-explorer','fa fa-television','fa fa-contao','fa fa-500px','fa fa-amazon','fa fa-calendar-plus-o','fa fa-calendar-minus-o','fa fa-calendar-times-o','fa fa-calendar-check-o','fa fa-industry','fa fa-map-pin','fa fa-map-signs','fa fa-map-o','fa fa-map','fa fa-commenting','fa fa-commenting-o','fa fa-houzz','fa fa-vimeo','fa fa-black-tie','fa fa-fonticons','fa fa-reddit-alien','fa fa-edge','fa fa-credit-card-alt','fa fa-codiepie','fa fa-modx','fa fa-fort-awesome','fa fa-usb','fa fa-product-hunt','fa fa-mixcloud','fa fa-scribd','fa fa-pause-circle','fa fa-pause-circle-o','fa fa-stop-circle','fa fa-stop-circle-o','fa fa-shopping-bag','fa fa-shopping-basket','fa fa-hashtag','fa fa-bluetooth','fa fa-bluetooth-b','fa fa-percent','fa fa-gitlab','fa fa-wpbeginner','fa fa-wpforms','fa fa-envira','fa fa-universal-access','fa fa-wheelchair-alt','fa fa-question-circle-o','fa fa-blind','fa fa-audio-description','fa fa-volume-control-phone','fa fa-braille','fa fa-assistive-listening-systems','fa fa-american-sign-language-interpreting','fa fa-deaf','fa fa-glide','fa fa-glide-g','fa fa-sign-language','fa fa-low-vision','fa fa-viadeo','fa fa-viadeo-square','fa fa-snapchat','fa fa-snapchat-ghost','fa fa-snapchat-square','fa fa-pied-piper','fa fa-first-order','fa fa-yoast','fa fa-themeisle','fa fa-google-plus-official','fa fa-font-awesome','fa fa-handshake-o','fa fa-envelope-open','fa fa-envelope-open-o','fa fa-linode','fa fa-address-book','fa fa-address-book-o','fa fa-address-card','fa fa-address-card-o','fa fa-user-circle','fa fa-user-circle-o','fa fa-user-o','fa fa-id-badge','fa fa-id-card','fa fa-id-card-o','fa fa-quora','fa fa-free-code-camp','fa fa-telegram','fa fa-thermometer-full','fa fa-thermometer-three-quarters','fa fa-thermometer-half','fa fa-thermometer-quarter','fa fa-thermometer-empty','fa fa-shower','fa fa-bath','fa fa-podcast','fa fa-window-maximize','fa fa-window-minimize','fa fa-window-restore','fa fa-window-close','fa fa-window-close-o','fa fa-bandcamp','fa fa-grav','fa fa-etsy','fa fa-imdb','fa fa-ravelry','fa fa-eercast','fa fa-microchip','fa fa-snowflake-o','fa fa-superpowers','fa fa-wpexplorer','fa fa-meetup' )
|
9 |
-
) );
|
|
|
|
|
10 |
}
|
2 |
//
|
3 |
// Font Awesome 4 Icons
|
4 |
//
|
5 |
+
if ( ! function_exists( 'ulf_get_default_icons' ) ) {
|
6 |
+
function ulf_get_default_icons() {
|
7 |
+
return array( array(
|
8 |
+
'title' => 'Font Awesome',
|
9 |
+
'icons' => array( 'fa fa-glass','fa fa-music','fa fa-search','fa fa-envelope-o','fa fa-heart','fa fa-star','fa fa-star-o','fa fa-user','fa fa-film','fa fa-th-large','fa fa-th','fa fa-th-list','fa fa-check','fa fa-times','fa fa-search-plus','fa fa-search-minus','fa fa-power-off','fa fa-signal','fa fa-cog','fa fa-trash-o','fa fa-home','fa fa-file-o','fa fa-clock-o','fa fa-road','fa fa-download','fa fa-arrow-circle-o-down','fa fa-arrow-circle-o-up','fa fa-inbox','fa fa-play-circle-o','fa fa-repeat','fa fa-refresh','fa fa-list-alt','fa fa-lock','fa fa-flag','fa fa-headphones','fa fa-volume-off','fa fa-volume-down','fa fa-volume-up','fa fa-qrcode','fa fa-barcode','fa fa-tag','fa fa-tags','fa fa-book','fa fa-bookmark','fa fa-print','fa fa-camera','fa fa-font','fa fa-bold','fa fa-italic','fa fa-text-height','fa fa-text-width','fa fa-align-left','fa fa-align-center','fa fa-align-right','fa fa-align-justify','fa fa-list','fa fa-outdent','fa fa-indent','fa fa-video-camera','fa fa-picture-o','fa fa-pencil','fa fa-map-marker','fa fa-adjust','fa fa-tint','fa fa-pencil-square-o','fa fa-share-square-o','fa fa-check-square-o','fa fa-arrows','fa fa-step-backward','fa fa-fast-backward','fa fa-backward','fa fa-play','fa fa-pause','fa fa-stop','fa fa-forward','fa fa-fast-forward','fa fa-step-forward','fa fa-eject','fa fa-chevron-left','fa fa-chevron-right','fa fa-plus-circle','fa fa-minus-circle','fa fa-times-circle','fa fa-check-circle','fa fa-question-circle','fa fa-info-circle','fa fa-crosshairs','fa fa-times-circle-o','fa fa-check-circle-o','fa fa-ban','fa fa-arrow-left','fa fa-arrow-right','fa fa-arrow-up','fa fa-arrow-down','fa fa-share','fa fa-expand','fa fa-compress','fa fa-plus','fa fa-minus','fa fa-asterisk','fa fa-exclamation-circle','fa fa-gift','fa fa-leaf','fa fa-fire','fa fa-eye','fa fa-eye-slash','fa fa-exclamation-triangle','fa fa-plane','fa fa-calendar','fa fa-random','fa fa-comment','fa fa-magnet','fa fa-chevron-up','fa fa-chevron-down','fa fa-retweet','fa fa-shopping-cart','fa fa-folder','fa fa-folder-open','fa fa-arrows-v','fa fa-arrows-h','fa fa-bar-chart','fa fa-twitter-square','fa fa-facebook-square','fa fa-camera-retro','fa fa-key','fa fa-cogs','fa fa-comments','fa fa-thumbs-o-up','fa fa-thumbs-o-down','fa fa-star-half','fa fa-heart-o','fa fa-sign-out','fa fa-linkedin-square','fa fa-thumb-tack','fa fa-external-link','fa fa-sign-in','fa fa-trophy','fa fa-github-square','fa fa-upload','fa fa-lemon-o','fa fa-phone','fa fa-square-o','fa fa-bookmark-o','fa fa-phone-square','fa fa-twitter','fa fa-facebook','fa fa-github','fa fa-unlock','fa fa-credit-card','fa fa-rss','fa fa-hdd-o','fa fa-bullhorn','fa fa-bell','fa fa-certificate','fa fa-hand-o-right','fa fa-hand-o-left','fa fa-hand-o-up','fa fa-hand-o-down','fa fa-arrow-circle-left','fa fa-arrow-circle-right','fa fa-arrow-circle-up','fa fa-arrow-circle-down','fa fa-globe','fa fa-wrench','fa fa-tasks','fa fa-filter','fa fa-briefcase','fa fa-arrows-alt','fa fa-users','fa fa-link','fa fa-cloud','fa fa-flask','fa fa-scissors','fa fa-files-o','fa fa-paperclip','fa fa-floppy-o','fa fa-square','fa fa-bars','fa fa-list-ul','fa fa-list-ol','fa fa-strikethrough','fa fa-underline','fa fa-table','fa fa-magic','fa fa-truck','fa fa-pinterest','fa fa-pinterest-square','fa fa-google-plus-square','fa fa-google-plus','fa fa-money','fa fa-caret-down','fa fa-caret-up','fa fa-caret-left','fa fa-caret-right','fa fa-columns','fa fa-sort','fa fa-sort-desc','fa fa-sort-asc','fa fa-envelope','fa fa-linkedin','fa fa-undo','fa fa-gavel','fa fa-tachometer','fa fa-comment-o','fa fa-comments-o','fa fa-bolt','fa fa-sitemap','fa fa-umbrella','fa fa-clipboard','fa fa-lightbulb-o','fa fa-exchange','fa fa-cloud-download','fa fa-cloud-upload','fa fa-user-md','fa fa-stethoscope','fa fa-suitcase','fa fa-bell-o','fa fa-coffee','fa fa-cutlery','fa fa-file-text-o','fa fa-building-o','fa fa-hospital-o','fa fa-ambulance','fa fa-medkit','fa fa-fighter-jet','fa fa-beer','fa fa-h-square','fa fa-plus-square','fa fa-angle-double-left','fa fa-angle-double-right','fa fa-angle-double-up','fa fa-angle-double-down','fa fa-angle-left','fa fa-angle-right','fa fa-angle-up','fa fa-angle-down','fa fa-desktop','fa fa-laptop','fa fa-tablet','fa fa-mobile','fa fa-circle-o','fa fa-quote-left','fa fa-quote-right','fa fa-spinner','fa fa-circle','fa fa-reply','fa fa-github-alt','fa fa-folder-o','fa fa-folder-open-o','fa fa-smile-o','fa fa-frown-o','fa fa-meh-o','fa fa-gamepad','fa fa-keyboard-o','fa fa-flag-o','fa fa-flag-checkered','fa fa-terminal','fa fa-code','fa fa-reply-all','fa fa-star-half-o','fa fa-location-arrow','fa fa-crop','fa fa-code-fork','fa fa-chain-broken','fa fa-question','fa fa-info','fa fa-exclamation','fa fa-superscript','fa fa-subscript','fa fa-eraser','fa fa-puzzle-piece','fa fa-microphone','fa fa-microphone-slash','fa fa-shield','fa fa-calendar-o','fa fa-fire-extinguisher','fa fa-rocket','fa fa-maxcdn','fa fa-chevron-circle-left','fa fa-chevron-circle-right','fa fa-chevron-circle-up','fa fa-chevron-circle-down','fa fa-html5','fa fa-css3','fa fa-anchor','fa fa-unlock-alt','fa fa-bullseye','fa fa-ellipsis-h','fa fa-ellipsis-v','fa fa-rss-square','fa fa-play-circle','fa fa-ticket','fa fa-minus-square','fa fa-minus-square-o','fa fa-level-up','fa fa-level-down','fa fa-check-square','fa fa-pencil-square','fa fa-external-link-square','fa fa-share-square','fa fa-compass','fa fa-caret-square-o-down','fa fa-caret-square-o-up','fa fa-caret-square-o-right','fa fa-eur','fa fa-gbp','fa fa-usd','fa fa-inr','fa fa-jpy','fa fa-rub','fa fa-krw','fa fa-btc','fa fa-file','fa fa-file-text','fa fa-sort-alpha-asc','fa fa-sort-alpha-desc','fa fa-sort-amount-asc','fa fa-sort-amount-desc','fa fa-sort-numeric-asc','fa fa-sort-numeric-desc','fa fa-thumbs-up','fa fa-thumbs-down','fa fa-youtube-square','fa fa-youtube','fa fa-xing','fa fa-xing-square','fa fa-youtube-play','fa fa-dropbox','fa fa-stack-overflow','fa fa-instagram','fa fa-flickr','fa fa-adn','fa fa-bitbucket','fa fa-bitbucket-square','fa fa-tumblr','fa fa-tumblr-square','fa fa-long-arrow-down','fa fa-long-arrow-up','fa fa-long-arrow-left','fa fa-long-arrow-right','fa fa-apple','fa fa-windows','fa fa-android','fa fa-linux','fa fa-dribbble','fa fa-skype','fa fa-foursquare','fa fa-trello','fa fa-female','fa fa-male','fa fa-gratipay','fa fa-sun-o','fa fa-moon-o','fa fa-archive','fa fa-bug','fa fa-vk','fa fa-weibo','fa fa-renren','fa fa-pagelines','fa fa-stack-exchange','fa fa-arrow-circle-o-right','fa fa-arrow-circle-o-left','fa fa-caret-square-o-left','fa fa-dot-circle-o','fa fa-wheelchair','fa fa-vimeo-square','fa fa-try','fa fa-plus-square-o','fa fa-space-shuttle','fa fa-slack','fa fa-envelope-square','fa fa-wordpress','fa fa-openid','fa fa-university','fa fa-graduation-cap','fa fa-yahoo','fa fa-google','fa fa-reddit','fa fa-reddit-square','fa fa-stumbleupon-circle','fa fa-stumbleupon','fa fa-delicious','fa fa-digg','fa fa-pied-piper-pp','fa fa-pied-piper-alt','fa fa-drupal','fa fa-joomla','fa fa-language','fa fa-fax','fa fa-building','fa fa-child','fa fa-paw','fa fa-spoon','fa fa-cube','fa fa-cubes','fa fa-behance','fa fa-behance-square','fa fa-steam','fa fa-steam-square','fa fa-recycle','fa fa-car','fa fa-taxi','fa fa-tree','fa fa-spotify','fa fa-deviantart','fa fa-soundcloud','fa fa-database','fa fa-file-pdf-o','fa fa-file-word-o','fa fa-file-excel-o','fa fa-file-powerpoint-o','fa fa-file-image-o','fa fa-file-archive-o','fa fa-file-audio-o','fa fa-file-video-o','fa fa-file-code-o','fa fa-vine','fa fa-codepen','fa fa-jsfiddle','fa fa-life-ring','fa fa-circle-o-notch','fa fa-rebel','fa fa-empire','fa fa-git-square','fa fa-git','fa fa-hacker-news','fa fa-tencent-weibo','fa fa-qq','fa fa-weixin','fa fa-paper-plane','fa fa-paper-plane-o','fa fa-history','fa fa-circle-thin','fa fa-header','fa fa-paragraph','fa fa-sliders','fa fa-share-alt','fa fa-share-alt-square','fa fa-bomb','fa fa-futbol-o','fa fa-tty','fa fa-binoculars','fa fa-plug','fa fa-slideshare','fa fa-twitch','fa fa-yelp','fa fa-newspaper-o','fa fa-wifi','fa fa-calculator','fa fa-paypal','fa fa-google-wallet','fa fa-cc-visa','fa fa-cc-mastercard','fa fa-cc-discover','fa fa-cc-amex','fa fa-cc-paypal','fa fa-cc-stripe','fa fa-bell-slash','fa fa-bell-slash-o','fa fa-trash','fa fa-copyright','fa fa-at','fa fa-eyedropper','fa fa-paint-brush','fa fa-birthday-cake','fa fa-area-chart','fa fa-pie-chart','fa fa-line-chart','fa fa-lastfm','fa fa-lastfm-square','fa fa-toggle-off','fa fa-toggle-on','fa fa-bicycle','fa fa-bus','fa fa-ioxhost','fa fa-angellist','fa fa-cc','fa fa-ils','fa fa-meanpath','fa fa-buysellads','fa fa-connectdevelop','fa fa-dashcube','fa fa-forumbee','fa fa-leanpub','fa fa-sellsy','fa fa-shirtsinbulk','fa fa-simplybuilt','fa fa-skyatlas','fa fa-cart-plus','fa fa-cart-arrow-down','fa fa-diamond','fa fa-ship','fa fa-user-secret','fa fa-motorcycle','fa fa-street-view','fa fa-heartbeat','fa fa-venus','fa fa-mars','fa fa-mercury','fa fa-transgender','fa fa-transgender-alt','fa fa-venus-double','fa fa-mars-double','fa fa-venus-mars','fa fa-mars-stroke','fa fa-mars-stroke-v','fa fa-mars-stroke-h','fa fa-neuter','fa fa-genderless','fa fa-facebook-official','fa fa-pinterest-p','fa fa-whatsapp','fa fa-server','fa fa-user-plus','fa fa-user-times','fa fa-bed','fa fa-viacoin','fa fa-train','fa fa-subway','fa fa-medium','fa fa-y-combinator','fa fa-optin-monster','fa fa-opencart','fa fa-expeditedssl','fa fa-battery-full','fa fa-battery-three-quarters','fa fa-battery-half','fa fa-battery-quarter','fa fa-battery-empty','fa fa-mouse-pointer','fa fa-i-cursor','fa fa-object-group','fa fa-object-ungroup','fa fa-sticky-note','fa fa-sticky-note-o','fa fa-cc-jcb','fa fa-cc-diners-club','fa fa-clone','fa fa-balance-scale','fa fa-hourglass-o','fa fa-hourglass-start','fa fa-hourglass-half','fa fa-hourglass-end','fa fa-hourglass','fa fa-hand-rock-o','fa fa-hand-paper-o','fa fa-hand-scissors-o','fa fa-hand-lizard-o','fa fa-hand-spock-o','fa fa-hand-pointer-o','fa fa-hand-peace-o','fa fa-trademark','fa fa-registered','fa fa-creative-commons','fa fa-gg','fa fa-gg-circle','fa fa-tripadvisor','fa fa-odnoklassniki','fa fa-odnoklassniki-square','fa fa-get-pocket','fa fa-wikipedia-w','fa fa-safari','fa fa-chrome','fa fa-firefox','fa fa-opera','fa fa-internet-explorer','fa fa-television','fa fa-contao','fa fa-500px','fa fa-amazon','fa fa-calendar-plus-o','fa fa-calendar-minus-o','fa fa-calendar-times-o','fa fa-calendar-check-o','fa fa-industry','fa fa-map-pin','fa fa-map-signs','fa fa-map-o','fa fa-map','fa fa-commenting','fa fa-commenting-o','fa fa-houzz','fa fa-vimeo','fa fa-black-tie','fa fa-fonticons','fa fa-reddit-alien','fa fa-edge','fa fa-credit-card-alt','fa fa-codiepie','fa fa-modx','fa fa-fort-awesome','fa fa-usb','fa fa-product-hunt','fa fa-mixcloud','fa fa-scribd','fa fa-pause-circle','fa fa-pause-circle-o','fa fa-stop-circle','fa fa-stop-circle-o','fa fa-shopping-bag','fa fa-shopping-basket','fa fa-hashtag','fa fa-bluetooth','fa fa-bluetooth-b','fa fa-percent','fa fa-gitlab','fa fa-wpbeginner','fa fa-wpforms','fa fa-envira','fa fa-universal-access','fa fa-wheelchair-alt','fa fa-question-circle-o','fa fa-blind','fa fa-audio-description','fa fa-volume-control-phone','fa fa-braille','fa fa-assistive-listening-systems','fa fa-american-sign-language-interpreting','fa fa-deaf','fa fa-glide','fa fa-glide-g','fa fa-sign-language','fa fa-low-vision','fa fa-viadeo','fa fa-viadeo-square','fa fa-snapchat','fa fa-snapchat-ghost','fa fa-snapchat-square','fa fa-pied-piper','fa fa-first-order','fa fa-yoast','fa fa-themeisle','fa fa-google-plus-official','fa fa-font-awesome','fa fa-handshake-o','fa fa-envelope-open','fa fa-envelope-open-o','fa fa-linode','fa fa-address-book','fa fa-address-book-o','fa fa-address-card','fa fa-address-card-o','fa fa-user-circle','fa fa-user-circle-o','fa fa-user-o','fa fa-id-badge','fa fa-id-card','fa fa-id-card-o','fa fa-quora','fa fa-free-code-camp','fa fa-telegram','fa fa-thermometer-full','fa fa-thermometer-three-quarters','fa fa-thermometer-half','fa fa-thermometer-quarter','fa fa-thermometer-empty','fa fa-shower','fa fa-bath','fa fa-podcast','fa fa-window-maximize','fa fa-window-minimize','fa fa-window-restore','fa fa-window-close','fa fa-window-close-o','fa fa-bandcamp','fa fa-grav','fa fa-etsy','fa fa-imdb','fa fa-ravelry','fa fa-eercast','fa fa-microchip','fa fa-snowflake-o','fa fa-superpowers','fa fa-wpexplorer','fa fa-meetup' )
|
10 |
+
) );
|
11 |
+
}
|
12 |
}
|
admin/settings/fields/icon/fa5-icons.php
CHANGED
@@ -2,9 +2,11 @@
|
|
2 |
//
|
3 |
// Font Awesome 5 Free Icons
|
4 |
//
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
'icons' => array( 'fab fa-500px','fab fa-accessible-icon','fab fa-accusoft','fab fa-acquisitions-incorporated','fas fa-ad','fas fa-address-book','far fa-address-book','fas fa-address-card','far fa-address-card','fas fa-adjust','fab fa-adn','fab fa-adversal','fab fa-affiliatetheme','fas fa-air-freshener','fab fa-airbnb','fab fa-algolia','fas fa-align-center','fas fa-align-justify','fas fa-align-left','fas fa-align-right','fab fa-alipay','fas fa-allergies','fab fa-amazon','fab fa-amazon-pay','fas fa-ambulance','fas fa-american-sign-language-interpreting','fab fa-amilia','fas fa-anchor','fab fa-android','fab fa-angellist','fas fa-angle-double-down','fas fa-angle-double-left','fas fa-angle-double-right','fas fa-angle-double-up','fas fa-angle-down','fas fa-angle-left','fas fa-angle-right','fas fa-angle-up','fas fa-angry','far fa-angry','fab fa-angrycreative','fab fa-angular','fas fa-ankh','fab fa-app-store','fab fa-app-store-ios','fab fa-apper','fab fa-apple','fas fa-apple-alt','fab fa-apple-pay','fas fa-archive','fas fa-archway','fas fa-arrow-alt-circle-down','far fa-arrow-alt-circle-down','fas fa-arrow-alt-circle-left','far fa-arrow-alt-circle-left','fas fa-arrow-alt-circle-right','far fa-arrow-alt-circle-right','fas fa-arrow-alt-circle-up','far fa-arrow-alt-circle-up','fas fa-arrow-circle-down','fas fa-arrow-circle-left','fas fa-arrow-circle-right','fas fa-arrow-circle-up','fas fa-arrow-down','fas fa-arrow-left','fas fa-arrow-right','fas fa-arrow-up','fas fa-arrows-alt','fas fa-arrows-alt-h','fas fa-arrows-alt-v','fab fa-artstation','fas fa-assistive-listening-systems','fas fa-asterisk','fab fa-asymmetrik','fas fa-at','fas fa-atlas','fab fa-atlassian','fas fa-atom','fab fa-audible','fas fa-audio-description','fab fa-autoprefixer','fab fa-avianex','fab fa-aviato','fas fa-award','fab fa-aws','fas fa-baby','fas fa-baby-carriage','fas fa-backspace','fas fa-backward','fas fa-bacon','fas fa-bacteria','fas fa-bacterium','fas fa-bahai','fas fa-balance-scale','fas fa-balance-scale-left','fas fa-balance-scale-right','fas fa-ban','fas fa-band-aid','fab fa-bandcamp','fas fa-barcode','fas fa-bars','fas fa-baseball-ball','fas fa-basketball-ball','fas fa-bath','fas fa-battery-empty','fas fa-battery-full','fas fa-battery-half','fas fa-battery-quarter','fas fa-battery-three-quarters','fab fa-battle-net','fas fa-bed','fas fa-beer','fab fa-behance','fab fa-behance-square','fas fa-bell','far fa-bell','fas fa-bell-slash','far fa-bell-slash','fas fa-bezier-curve','fas fa-bible','fas fa-bicycle','fas fa-biking','fab fa-bimobject','fas fa-binoculars','fas fa-biohazard','fas fa-birthday-cake','fab fa-bitbucket','fab fa-bitcoin','fab fa-bity','fab fa-black-tie','fab fa-blackberry','fas fa-blender','fas fa-blender-phone','fas fa-blind','fas fa-blog','fab fa-blogger','fab fa-blogger-b','fab fa-bluetooth','fab fa-bluetooth-b','fas fa-bold','fas fa-bolt','fas fa-bomb','fas fa-bone','fas fa-bong','fas fa-book','fas fa-book-dead','fas fa-book-medical','fas fa-book-open','fas fa-book-reader','fas fa-bookmark','far fa-bookmark','fab fa-bootstrap','fas fa-border-all','fas fa-border-none','fas fa-border-style','fas fa-bowling-ball','fas fa-box','fas fa-box-open','fas fa-box-tissue','fas fa-boxes','fas fa-braille','fas fa-brain','fas fa-bread-slice','fas fa-briefcase','fas fa-briefcase-medical','fas fa-broadcast-tower','fas fa-broom','fas fa-brush','fab fa-btc','fab fa-buffer','fas fa-bug','fas fa-building','far fa-building','fas fa-bullhorn','fas fa-bullseye','fas fa-burn','fab fa-buromobelexperte','fas fa-bus','fas fa-bus-alt','fas fa-business-time','fab fa-buy-n-large','fab fa-buysellads','fas fa-calculator','fas fa-calendar','far fa-calendar','fas fa-calendar-alt','far fa-calendar-alt','fas fa-calendar-check','far fa-calendar-check','fas fa-calendar-day','fas fa-calendar-minus','far fa-calendar-minus','fas fa-calendar-plus','far fa-calendar-plus','fas fa-calendar-times','far fa-calendar-times','fas fa-calendar-week','fas fa-camera','fas fa-camera-retro','fas fa-campground','fab fa-canadian-maple-leaf','fas fa-candy-cane','fas fa-cannabis','fas fa-capsules','fas fa-car','fas fa-car-alt','fas fa-car-battery','fas fa-car-crash','fas fa-car-side','fas fa-caravan','fas fa-caret-down','fas fa-caret-left','fas fa-caret-right','fas fa-caret-square-down','far fa-caret-square-down','fas fa-caret-square-left','far fa-caret-square-left','fas fa-caret-square-right','far fa-caret-square-right','fas fa-caret-square-up','far fa-caret-square-up','fas fa-caret-up','fas fa-carrot','fas fa-cart-arrow-down','fas fa-cart-plus','fas fa-cash-register','fas fa-cat','fab fa-cc-amazon-pay','fab fa-cc-amex','fab fa-cc-apple-pay','fab fa-cc-diners-club','fab fa-cc-discover','fab fa-cc-jcb','fab fa-cc-mastercard','fab fa-cc-paypal','fab fa-cc-stripe','fab fa-cc-visa','fab fa-centercode','fab fa-centos','fas fa-certificate','fas fa-chair','fas fa-chalkboard','fas fa-chalkboard-teacher','fas fa-charging-station','fas fa-chart-area','fas fa-chart-bar','far fa-chart-bar','fas fa-chart-line','fas fa-chart-pie','fas fa-check','fas fa-check-circle','far fa-check-circle','fas fa-check-double','fas fa-check-square','far fa-check-square','fas fa-cheese','fas fa-chess','fas fa-chess-bishop','fas fa-chess-board','fas fa-chess-king','fas fa-chess-knight','fas fa-chess-pawn','fas fa-chess-queen','fas fa-chess-rook','fas fa-chevron-circle-down','fas fa-chevron-circle-left','fas fa-chevron-circle-right','fas fa-chevron-circle-up','fas fa-chevron-down','fas fa-chevron-left','fas fa-chevron-right','fas fa-chevron-up','fas fa-child','fab fa-chrome','fab fa-chromecast','fas fa-church','fas fa-circle','far fa-circle','fas fa-circle-notch','fas fa-city','fas fa-clinic-medical','fas fa-clipboard','far fa-clipboard','fas fa-clipboard-check','fas fa-clipboard-list','fas fa-clock','far fa-clock','fas fa-clone','far fa-clone','fas fa-closed-captioning','far fa-closed-captioning','fas fa-cloud','fas fa-cloud-download-alt','fas fa-cloud-meatball','fas fa-cloud-moon','fas fa-cloud-moon-rain','fas fa-cloud-rain','fas fa-cloud-showers-heavy','fas fa-cloud-sun','fas fa-cloud-sun-rain','fas fa-cloud-upload-alt','fab fa-cloudflare','fab fa-cloudscale','fab fa-cloudsmith','fab fa-cloudversify','fas fa-cocktail','fas fa-code','fas fa-code-branch','fab fa-codepen','fab fa-codiepie','fas fa-coffee','fas fa-cog','fas fa-cogs','fas fa-coins','fas fa-columns','fas fa-comment','far fa-comment','fas fa-comment-alt','far fa-comment-alt','fas fa-comment-dollar','fas fa-comment-dots','far fa-comment-dots','fas fa-comment-medical','fas fa-comment-slash','fas fa-comments','far fa-comments','fas fa-comments-dollar','fas fa-compact-disc','fas fa-compass','far fa-compass','fas fa-compress','fas fa-compress-alt','fas fa-compress-arrows-alt','fas fa-concierge-bell','fab fa-confluence','fab fa-connectdevelop','fab fa-contao','fas fa-cookie','fas fa-cookie-bite','fas fa-copy','far fa-copy','fas fa-copyright','far fa-copyright','fab fa-cotton-bureau','fas fa-couch','fab fa-cpanel','fab fa-creative-commons','fab fa-creative-commons-by','fab fa-creative-commons-nc','fab fa-creative-commons-nc-eu','fab fa-creative-commons-nc-jp','fab fa-creative-commons-nd','fab fa-creative-commons-pd','fab fa-creative-commons-pd-alt','fab fa-creative-commons-remix','fab fa-creative-commons-sa','fab fa-creative-commons-sampling','fab fa-creative-commons-sampling-plus','fab fa-creative-commons-share','fab fa-creative-commons-zero','fas fa-credit-card','far fa-credit-card','fab fa-critical-role','fas fa-crop','fas fa-crop-alt','fas fa-cross','fas fa-crosshairs','fas fa-crow','fas fa-crown','fas fa-crutch','fab fa-css3','fab fa-css3-alt','fas fa-cube','fas fa-cubes','fas fa-cut','fab fa-cuttlefish','fab fa-d-and-d','fab fa-d-and-d-beyond','fab fa-dailymotion','fab fa-dashcube','fas fa-database','fas fa-deaf','fab fa-deezer','fab fa-delicious','fas fa-democrat','fab fa-deploydog','fab fa-deskpro','fas fa-desktop','fab fa-dev','fab fa-deviantart','fas fa-dharmachakra','fab fa-dhl','fas fa-diagnoses','fab fa-diaspora','fas fa-dice','fas fa-dice-d20','fas fa-dice-d6','fas fa-dice-five','fas fa-dice-four','fas fa-dice-one','fas fa-dice-six','fas fa-dice-three','fas fa-dice-two','fab fa-digg','fab fa-digital-ocean','fas fa-digital-tachograph','fas fa-directions','fab fa-discord','fab fa-discourse','fas fa-disease','fas fa-divide','fas fa-dizzy','far fa-dizzy','fas fa-dna','fab fa-dochub','fab fa-docker','fas fa-dog','fas fa-dollar-sign','fas fa-dolly','fas fa-dolly-flatbed','fas fa-donate','fas fa-door-closed','fas fa-door-open','fas fa-dot-circle','far fa-dot-circle','fas fa-dove','fas fa-download','fab fa-draft2digital','fas fa-drafting-compass','fas fa-dragon','fas fa-draw-polygon','fab fa-dribbble','fab fa-dribbble-square','fab fa-dropbox','fas fa-drum','fas fa-drum-steelpan','fas fa-drumstick-bite','fab fa-drupal','fas fa-dumbbell','fas fa-dumpster','fas fa-dumpster-fire','fas fa-dungeon','fab fa-dyalog','fab fa-earlybirds','fab fa-ebay','fab fa-edge','fab fa-edge-legacy','fas fa-edit','far fa-edit','fas fa-egg','fas fa-eject','fab fa-elementor','fas fa-ellipsis-h','fas fa-ellipsis-v','fab fa-ello','fab fa-ember','fab fa-empire','fas fa-envelope','far fa-envelope','fas fa-envelope-open','far fa-envelope-open','fas fa-envelope-open-text','fas fa-envelope-square','fab fa-envira','fas fa-equals','fas fa-eraser','fab fa-erlang','fab fa-ethereum','fas fa-ethernet','fab fa-etsy','fas fa-euro-sign','fab fa-evernote','fas fa-exchange-alt','fas fa-exclamation','fas fa-exclamation-circle','fas fa-exclamation-triangle','fas fa-expand','fas fa-expand-alt','fas fa-expand-arrows-alt','fab fa-expeditedssl','fas fa-external-link-alt','fas fa-external-link-square-alt','fas fa-eye','far fa-eye','fas fa-eye-dropper','fas fa-eye-slash','far fa-eye-slash','fab fa-facebook','fab fa-facebook-f','fab fa-facebook-messenger','fab fa-facebook-square','fas fa-fan','fab fa-fantasy-flight-games','fas fa-fast-backward','fas fa-fast-forward','fas fa-faucet','fas fa-fax','fas fa-feather','fas fa-feather-alt','fab fa-fedex','fab fa-fedora','fas fa-female','fas fa-fighter-jet','fab fa-figma','fas fa-file','far fa-file','fas fa-file-alt','far fa-file-alt','fas fa-file-archive','far fa-file-archive','fas fa-file-audio','far fa-file-audio','fas fa-file-code','far fa-file-code','fas fa-file-contract','fas fa-file-csv','fas fa-file-download','fas fa-file-excel','far fa-file-excel','fas fa-file-export','fas fa-file-image','far fa-file-image','fas fa-file-import','fas fa-file-invoice','fas fa-file-invoice-dollar','fas fa-file-medical','fas fa-file-medical-alt','fas fa-file-pdf','far fa-file-pdf','fas fa-file-powerpoint','far fa-file-powerpoint','fas fa-file-prescription','fas fa-file-signature','fas fa-file-upload','fas fa-file-video','far fa-file-video','fas fa-file-word','far fa-file-word','fas fa-fill','fas fa-fill-drip','fas fa-film','fas fa-filter','fas fa-fingerprint','fas fa-fire','fas fa-fire-alt','fas fa-fire-extinguisher','fab fa-firefox','fab fa-firefox-browser','fas fa-first-aid','fab fa-first-order','fab fa-first-order-alt','fab fa-firstdraft','fas fa-fish','fas fa-fist-raised','fas fa-flag','far fa-flag','fas fa-flag-checkered','fas fa-flag-usa','fas fa-flask','fab fa-flickr','fab fa-flipboard','fas fa-flushed','far fa-flushed','fab fa-fly','fas fa-folder','far fa-folder','fas fa-folder-minus','fas fa-folder-open','far fa-folder-open','fas fa-folder-plus','fas fa-font','fab fa-font-awesome','fab fa-font-awesome-alt','fab fa-font-awesome-flag','fab fa-fonticons','fab fa-fonticons-fi','fas fa-football-ball','fab fa-fort-awesome','fab fa-fort-awesome-alt','fab fa-forumbee','fas fa-forward','fab fa-foursquare','fab fa-free-code-camp','fab fa-freebsd','fas fa-frog','fas fa-frown','far fa-frown','fas fa-frown-open','far fa-frown-open','fab fa-fulcrum','fas fa-funnel-dollar','fas fa-futbol','far fa-futbol','fab fa-galactic-republic','fab fa-galactic-senate','fas fa-gamepad','fas fa-gas-pump','fas fa-gavel','fas fa-gem','far fa-gem','fas fa-genderless','fab fa-get-pocket','fab fa-gg','fab fa-gg-circle','fas fa-ghost','fas fa-gift','fas fa-gifts','fab fa-git','fab fa-git-alt','fab fa-git-square','fab fa-github','fab fa-github-alt','fab fa-github-square','fab fa-gitkraken','fab fa-gitlab','fab fa-gitter','fas fa-glass-cheers','fas fa-glass-martini','fas fa-glass-martini-alt','fas fa-glass-whiskey','fas fa-glasses','fab fa-glide','fab fa-glide-g','fas fa-globe','fas fa-globe-africa','fas fa-globe-americas','fas fa-globe-asia','fas fa-globe-europe','fab fa-gofore','fas fa-golf-ball','fab fa-goodreads','fab fa-goodreads-g','fab fa-google','fab fa-google-drive','fab fa-google-pay','fab fa-google-play','fab fa-google-plus','fab fa-google-plus-g','fab fa-google-plus-square','fab fa-google-wallet','fas fa-gopuram','fas fa-graduation-cap','fab fa-gratipay','fab fa-grav','fas fa-greater-than','fas fa-greater-than-equal','fas fa-grimace','far fa-grimace','fas fa-grin','far fa-grin','fas fa-grin-alt','far fa-grin-alt','fas fa-grin-beam','far fa-grin-beam','fas fa-grin-beam-sweat','far fa-grin-beam-sweat','fas fa-grin-hearts','far fa-grin-hearts','fas fa-grin-squint','far fa-grin-squint','fas fa-grin-squint-tears','far fa-grin-squint-tears','fas fa-grin-stars','far fa-grin-stars','fas fa-grin-tears','far fa-grin-tears','fas fa-grin-tongue','far fa-grin-tongue','fas fa-grin-tongue-squint','far fa-grin-tongue-squint','fas fa-grin-tongue-wink','far fa-grin-tongue-wink','fas fa-grin-wink','far fa-grin-wink','fas fa-grip-horizontal','fas fa-grip-lines','fas fa-grip-lines-vertical','fas fa-grip-vertical','fab fa-gripfire','fab fa-grunt','fab fa-guilded','fas fa-guitar','fab fa-gulp','fas fa-h-square','fab fa-hacker-news','fab fa-hacker-news-square','fab fa-hackerrank','fas fa-hamburger','fas fa-hammer','fas fa-hamsa','fas fa-hand-holding','fas fa-hand-holding-heart','fas fa-hand-holding-medical','fas fa-hand-holding-usd','fas fa-hand-holding-water','fas fa-hand-lizard','far fa-hand-lizard','fas fa-hand-middle-finger','fas fa-hand-paper','far fa-hand-paper','fas fa-hand-peace','far fa-hand-peace','fas fa-hand-point-down','far fa-hand-point-down','fas fa-hand-point-left','far fa-hand-point-left','fas fa-hand-point-right','far fa-hand-point-right','fas fa-hand-point-up','far fa-hand-point-up','fas fa-hand-pointer','far fa-hand-pointer','fas fa-hand-rock','far fa-hand-rock','fas fa-hand-scissors','far fa-hand-scissors','fas fa-hand-sparkles','fas fa-hand-spock','far fa-hand-spock','fas fa-hands','fas fa-hands-helping','fas fa-hands-wash','fas fa-handshake','far fa-handshake','fas fa-handshake-alt-slash','fas fa-handshake-slash','fas fa-hanukiah','fas fa-hard-hat','fas fa-hashtag','fas fa-hat-cowboy','fas fa-hat-cowboy-side','fas fa-hat-wizard','fas fa-hdd','far fa-hdd','fas fa-head-side-cough','fas fa-head-side-cough-slash','fas fa-head-side-mask','fas fa-head-side-virus','fas fa-heading','fas fa-headphones','fas fa-headphones-alt','fas fa-headset','fas fa-heart','far fa-heart','fas fa-heart-broken','fas fa-heartbeat','fas fa-helicopter','fas fa-highlighter','fas fa-hiking','fas fa-hippo','fab fa-hips','fab fa-hire-a-helper','fas fa-history','fab fa-hive','fas fa-hockey-puck','fas fa-holly-berry','fas fa-home','fab fa-hooli','fab fa-hornbill','fas fa-horse','fas fa-horse-head','fas fa-hospital','far fa-hospital','fas fa-hospital-alt','fas fa-hospital-symbol','fas fa-hospital-user','fas fa-hot-tub','fas fa-hotdog','fas fa-hotel','fab fa-hotjar','fas fa-hourglass','far fa-hourglass','fas fa-hourglass-end','fas fa-hourglass-half','fas fa-hourglass-start','fas fa-house-damage','fas fa-house-user','fab fa-houzz','fas fa-hryvnia','fab fa-html5','fab fa-hubspot','fas fa-i-cursor','fas fa-ice-cream','fas fa-icicles','fas fa-icons','fas fa-id-badge','far fa-id-badge','fas fa-id-card','far fa-id-card','fas fa-id-card-alt','fab fa-ideal','fas fa-igloo','fas fa-image','far fa-image','fas fa-images','far fa-images','fab fa-imdb','fas fa-inbox','fas fa-indent','fas fa-industry','fas fa-infinity','fas fa-info','fas fa-info-circle','fab fa-innosoft','fab fa-instagram','fab fa-instagram-square','fab fa-instalod','fab fa-intercom','fab fa-internet-explorer','fab fa-invision','fab fa-ioxhost','fas fa-italic','fab fa-itch-io','fab fa-itunes','fab fa-itunes-note','fab fa-java','fas fa-jedi','fab fa-jedi-order','fab fa-jenkins','fab fa-jira','fab fa-joget','fas fa-joint','fab fa-joomla','fas fa-journal-whills','fab fa-js','fab fa-js-square','fab fa-jsfiddle','fas fa-kaaba','fab fa-kaggle','fas fa-key','fab fa-keybase','fas fa-keyboard','far fa-keyboard','fab fa-keycdn','fas fa-khanda','fab fa-kickstarter','fab fa-kickstarter-k','fas fa-kiss','far fa-kiss','fas fa-kiss-beam','far fa-kiss-beam','fas fa-kiss-wink-heart','far fa-kiss-wink-heart','fas fa-kiwi-bird','fab fa-korvue','fas fa-landmark','fas fa-language','fas fa-laptop','fas fa-laptop-code','fas fa-laptop-house','fas fa-laptop-medical','fab fa-laravel','fab fa-lastfm','fab fa-lastfm-square','fas fa-laugh','far fa-laugh','fas fa-laugh-beam','far fa-laugh-beam','fas fa-laugh-squint','far fa-laugh-squint','fas fa-laugh-wink','far fa-laugh-wink','fas fa-layer-group','fas fa-leaf','fab fa-leanpub','fas fa-lemon','far fa-lemon','fab fa-less','fas fa-less-than','fas fa-less-than-equal','fas fa-level-down-alt','fas fa-level-up-alt','fas fa-life-ring','far fa-life-ring','fas fa-lightbulb','far fa-lightbulb','fab fa-line','fas fa-link','fab fa-linkedin','fab fa-linkedin-in','fab fa-linode','fab fa-linux','fas fa-lira-sign','fas fa-list','fas fa-list-alt','far fa-list-alt','fas fa-list-ol','fas fa-list-ul','fas fa-location-arrow','fas fa-lock','fas fa-lock-open','fas fa-long-arrow-alt-down','fas fa-long-arrow-alt-left','fas fa-long-arrow-alt-right','fas fa-long-arrow-alt-up','fas fa-low-vision','fas fa-luggage-cart','fas fa-lungs','fas fa-lungs-virus','fab fa-lyft','fab fa-magento','fas fa-magic','fas fa-magnet','fas fa-mail-bulk','fab fa-mailchimp','fas fa-male','fab fa-mandalorian','fas fa-map','far fa-map','fas fa-map-marked','fas fa-map-marked-alt','fas fa-map-marker','fas fa-map-marker-alt','fas fa-map-pin','fas fa-map-signs','fab fa-markdown','fas fa-marker','fas fa-mars','fas fa-mars-double','fas fa-mars-stroke','fas fa-mars-stroke-h','fas fa-mars-stroke-v','fas fa-mask','fab fa-mastodon','fab fa-maxcdn','fab fa-mdb','fas fa-medal','fab fa-medapps','fab fa-medium','fab fa-medium-m','fas fa-medkit','fab fa-medrt','fab fa-meetup','fab fa-megaport','fas fa-meh','far fa-meh','fas fa-meh-blank','far fa-meh-blank','fas fa-meh-rolling-eyes','far fa-meh-rolling-eyes','fas fa-memory','fab fa-mendeley','fas fa-menorah','fas fa-mercury','fas fa-meteor','fab fa-microblog','fas fa-microchip','fas fa-microphone','fas fa-microphone-alt','fas fa-microphone-alt-slash','fas fa-microphone-slash','fas fa-microscope','fab fa-microsoft','fas fa-minus','fas fa-minus-circle','fas fa-minus-square','far fa-minus-square','fas fa-mitten','fab fa-mix','fab fa-mixcloud','fab fa-mixer','fab fa-mizuni','fas fa-mobile','fas fa-mobile-alt','fab fa-modx','fab fa-monero','fas fa-money-bill','fas fa-money-bill-alt','far fa-money-bill-alt','fas fa-money-bill-wave','fas fa-money-bill-wave-alt','fas fa-money-check','fas fa-money-check-alt','fas fa-monument','fas fa-moon','far fa-moon','fas fa-mortar-pestle','fas fa-mosque','fas fa-motorcycle','fas fa-mountain','fas fa-mouse','fas fa-mouse-pointer','fas fa-mug-hot','fas fa-music','fab fa-napster','fab fa-neos','fas fa-network-wired','fas fa-neuter','fas fa-newspaper','far fa-newspaper','fab fa-nimblr','fab fa-node','fab fa-node-js','fas fa-not-equal','fas fa-notes-medical','fab fa-npm','fab fa-ns8','fab fa-nutritionix','fas fa-object-group','far fa-object-group','fas fa-object-ungroup','far fa-object-ungroup','fab fa-octopus-deploy','fab fa-odnoklassniki','fab fa-odnoklassniki-square','fas fa-oil-can','fab fa-old-republic','fas fa-om','fab fa-opencart','fab fa-openid','fab fa-opera','fab fa-optin-monster','fab fa-orcid','fab fa-osi','fas fa-otter','fas fa-outdent','fab fa-page4','fab fa-pagelines','fas fa-pager','fas fa-paint-brush','fas fa-paint-roller','fas fa-palette','fab fa-palfed','fas fa-pallet','fas fa-paper-plane','far fa-paper-plane','fas fa-paperclip','fas fa-parachute-box','fas fa-paragraph','fas fa-parking','fas fa-passport','fas fa-pastafarianism','fas fa-paste','fab fa-patreon','fas fa-pause','fas fa-pause-circle','far fa-pause-circle','fas fa-paw','fab fa-paypal','fas fa-peace','fas fa-pen','fas fa-pen-alt','fas fa-pen-fancy','fas fa-pen-nib','fas fa-pen-square','fas fa-pencil-alt','fas fa-pencil-ruler','fab fa-penny-arcade','fas fa-people-arrows','fas fa-people-carry','fas fa-pepper-hot','fab fa-perbyte','fas fa-percent','fas fa-percentage','fab fa-periscope','fas fa-person-booth','fab fa-phabricator','fab fa-phoenix-framework','fab fa-phoenix-squadron','fas fa-phone','fas fa-phone-alt','fas fa-phone-slash','fas fa-phone-square','fas fa-phone-square-alt','fas fa-phone-volume','fas fa-photo-video','fab fa-php','fab fa-pied-piper','fab fa-pied-piper-alt','fab fa-pied-piper-hat','fab fa-pied-piper-pp','fab fa-pied-piper-square','fas fa-piggy-bank','fas fa-pills','fab fa-pinterest','fab fa-pinterest-p','fab fa-pinterest-square','fas fa-pizza-slice','fas fa-place-of-worship','fas fa-plane','fas fa-plane-arrival','fas fa-plane-departure','fas fa-plane-slash','fas fa-play','fas fa-play-circle','far fa-play-circle','fab fa-playstation','fas fa-plug','fas fa-plus','fas fa-plus-circle','fas fa-plus-square','far fa-plus-square','fas fa-podcast','fas fa-poll','fas fa-poll-h','fas fa-poo','fas fa-poo-storm','fas fa-poop','fas fa-portrait','fas fa-pound-sign','fas fa-power-off','fas fa-pray','fas fa-praying-hands','fas fa-prescription','fas fa-prescription-bottle','fas fa-prescription-bottle-alt','fas fa-print','fas fa-procedures','fab fa-product-hunt','fas fa-project-diagram','fas fa-pump-medical','fas fa-pump-soap','fab fa-pushed','fas fa-puzzle-piece','fab fa-python','fab fa-qq','fas fa-qrcode','fas fa-question','fas fa-question-circle','far fa-question-circle','fas fa-quidditch','fab fa-quinscape','fab fa-quora','fas fa-quote-left','fas fa-quote-right','fas fa-quran','fab fa-r-project','fas fa-radiation','fas fa-radiation-alt','fas fa-rainbow','fas fa-random','fab fa-raspberry-pi','fab fa-ravelry','fab fa-react','fab fa-reacteurope','fab fa-readme','fab fa-rebel','fas fa-receipt','fas fa-record-vinyl','fas fa-recycle','fab fa-red-river','fab fa-reddit','fab fa-reddit-alien','fab fa-reddit-square','fab fa-redhat','fas fa-redo','fas fa-redo-alt','fas fa-registered','far fa-registered','fas fa-remove-format','fab fa-renren','fas fa-reply','fas fa-reply-all','fab fa-replyd','fas fa-republican','fab fa-researchgate','fab fa-resolving','fas fa-restroom','fas fa-retweet','fab fa-rev','fas fa-ribbon','fas fa-ring','fas fa-road','fas fa-robot','fas fa-rocket','fab fa-rocketchat','fab fa-rockrms','fas fa-route','fas fa-rss','fas fa-rss-square','fas fa-ruble-sign','fas fa-ruler','fas fa-ruler-combined','fas fa-ruler-horizontal','fas fa-ruler-vertical','fas fa-running','fas fa-rupee-sign','fab fa-rust','fas fa-sad-cry','far fa-sad-cry','fas fa-sad-tear','far fa-sad-tear','fab fa-safari','fab fa-salesforce','fab fa-sass','fas fa-satellite','fas fa-satellite-dish','fas fa-save','far fa-save','fab fa-schlix','fas fa-school','fas fa-screwdriver','fab fa-scribd','fas fa-scroll','fas fa-sd-card','fas fa-search','fas fa-search-dollar','fas fa-search-location','fas fa-search-minus','fas fa-search-plus','fab fa-searchengin','fas fa-seedling','fab fa-sellcast','fab fa-sellsy','fas fa-server','fab fa-servicestack','fas fa-shapes','fas fa-share','fas fa-share-alt','fas fa-share-alt-square','fas fa-share-square','far fa-share-square','fas fa-shekel-sign','fas fa-shield-alt','fas fa-shield-virus','fas fa-ship','fas fa-shipping-fast','fab fa-shirtsinbulk','fas fa-shoe-prints','fab fa-shopify','fas fa-shopping-bag','fas fa-shopping-basket','fas fa-shopping-cart','fab fa-shopware','fas fa-shower','fas fa-shuttle-van','fas fa-sign','fas fa-sign-in-alt','fas fa-sign-language','fas fa-sign-out-alt','fas fa-signal','fas fa-signature','fas fa-sim-card','fab fa-simplybuilt','fas fa-sink','fab fa-sistrix','fas fa-sitemap','fab fa-sith','fas fa-skating','fab fa-sketch','fas fa-skiing','fas fa-skiing-nordic','fas fa-skull','fas fa-skull-crossbones','fab fa-skyatlas','fab fa-skype','fab fa-slack','fab fa-slack-hash','fas fa-slash','fas fa-sleigh','fas fa-sliders-h','fab fa-slideshare','fas fa-smile','far fa-smile','fas fa-smile-beam','far fa-smile-beam','fas fa-smile-wink','far fa-smile-wink','fas fa-smog','fas fa-smoking','fas fa-smoking-ban','fas fa-sms','fab fa-snapchat','fab fa-snapchat-ghost','fab fa-snapchat-square','fas fa-snowboarding','fas fa-snowflake','far fa-snowflake','fas fa-snowman','fas fa-snowplow','fas fa-soap','fas fa-socks','fas fa-solar-panel','fas fa-sort','fas fa-sort-alpha-down','fas fa-sort-alpha-down-alt','fas fa-sort-alpha-up','fas fa-sort-alpha-up-alt','fas fa-sort-amount-down','fas fa-sort-amount-down-alt','fas fa-sort-amount-up','fas fa-sort-amount-up-alt','fas fa-sort-down','fas fa-sort-numeric-down','fas fa-sort-numeric-down-alt','fas fa-sort-numeric-up','fas fa-sort-numeric-up-alt','fas fa-sort-up','fab fa-soundcloud','fab fa-sourcetree','fas fa-spa','fas fa-space-shuttle','fab fa-speakap','fab fa-speaker-deck','fas fa-spell-check','fas fa-spider','fas fa-spinner','fas fa-splotch','fab fa-spotify','fas fa-spray-can','fas fa-square','far fa-square','fas fa-square-full','fas fa-square-root-alt','fab fa-squarespace','fab fa-stack-exchange','fab fa-stack-overflow','fab fa-stackpath','fas fa-stamp','fas fa-star','far fa-star','fas fa-star-and-crescent','fas fa-star-half','far fa-star-half','fas fa-star-half-alt','fas fa-star-of-david','fas fa-star-of-life','fab fa-staylinked','fab fa-steam','fab fa-steam-square','fab fa-steam-symbol','fas fa-step-backward','fas fa-step-forward','fas fa-stethoscope','fab fa-sticker-mule','fas fa-sticky-note','far fa-sticky-note','fas fa-stop','fas fa-stop-circle','far fa-stop-circle','fas fa-stopwatch','fas fa-stopwatch-20','fas fa-store','fas fa-store-alt','fas fa-store-alt-slash','fas fa-store-slash','fab fa-strava','fas fa-stream','fas fa-street-view','fas fa-strikethrough','fab fa-stripe','fab fa-stripe-s','fas fa-stroopwafel','fab fa-studiovinari','fab fa-stumbleupon','fab fa-stumbleupon-circle','fas fa-subscript','fas fa-subway','fas fa-suitcase','fas fa-suitcase-rolling','fas fa-sun','far fa-sun','fab fa-superpowers','fas fa-superscript','fab fa-supple','fas fa-surprise','far fa-surprise','fab fa-suse','fas fa-swatchbook','fab fa-swift','fas fa-swimmer','fas fa-swimming-pool','fab fa-symfony','fas fa-synagogue','fas fa-sync','fas fa-sync-alt','fas fa-syringe','fas fa-table','fas fa-table-tennis','fas fa-tablet','fas fa-tablet-alt','fas fa-tablets','fas fa-tachometer-alt','fas fa-tag','fas fa-tags','fas fa-tape','fas fa-tasks','fas fa-taxi','fab fa-teamspeak','fas fa-teeth','fas fa-teeth-open','fab fa-telegram','fab fa-telegram-plane','fas fa-temperature-high','fas fa-temperature-low','fab fa-tencent-weibo','fas fa-tenge','fas fa-terminal','fas fa-text-height','fas fa-text-width','fas fa-th','fas fa-th-large','fas fa-th-list','fab fa-the-red-yeti','fas fa-theater-masks','fab fa-themeco','fab fa-themeisle','fas fa-thermometer','fas fa-thermometer-empty','fas fa-thermometer-full','fas fa-thermometer-half','fas fa-thermometer-quarter','fas fa-thermometer-three-quarters','fab fa-think-peaks','fas fa-thumbs-down','far fa-thumbs-down','fas fa-thumbs-up','far fa-thumbs-up','fas fa-thumbtack','fas fa-ticket-alt','fab fa-tiktok','fas fa-times','fas fa-times-circle','far fa-times-circle','fas fa-tint','fas fa-tint-slash','fas fa-tired','far fa-tired','fas fa-toggle-off','fas fa-toggle-on','fas fa-toilet','fas fa-toilet-paper','fas fa-toilet-paper-slash','fas fa-toolbox','fas fa-tools','fas fa-tooth','fas fa-torah','fas fa-torii-gate','fas fa-tractor','fab fa-trade-federation','fas fa-trademark','fas fa-traffic-light','fas fa-trailer','fas fa-train','fas fa-tram','fas fa-transgender','fas fa-transgender-alt','fas fa-trash','fas fa-trash-alt','far fa-trash-alt','fas fa-trash-restore','fas fa-trash-restore-alt','fas fa-tree','fab fa-trello','fab fa-tripadvisor','fas fa-trophy','fas fa-truck','fas fa-truck-loading','fas fa-truck-monster','fas fa-truck-moving','fas fa-truck-pickup','fas fa-tshirt','fas fa-tty','fab fa-tumblr','fab fa-tumblr-square','fas fa-tv','fab fa-twitch','fab fa-twitter','fab fa-twitter-square','fab fa-typo3','fab fa-uber','fab fa-ubuntu','fab fa-uikit','fab fa-umbraco','fas fa-umbrella','fas fa-umbrella-beach','fab fa-uncharted','fas fa-underline','fas fa-undo','fas fa-undo-alt','fab fa-uniregistry','fab fa-unity','fas fa-universal-access','fas fa-university','fas fa-unlink','fas fa-unlock','fas fa-unlock-alt','fab fa-unsplash','fab fa-untappd','fas fa-upload','fab fa-ups','fab fa-usb','fas fa-user','far fa-user','fas fa-user-alt','fas fa-user-alt-slash','fas fa-user-astronaut','fas fa-user-check','fas fa-user-circle','far fa-user-circle','fas fa-user-clock','fas fa-user-cog','fas fa-user-edit','fas fa-user-friends','fas fa-user-graduate','fas fa-user-injured','fas fa-user-lock','fas fa-user-md','fas fa-user-minus','fas fa-user-ninja','fas fa-user-nurse','fas fa-user-plus','fas fa-user-secret','fas fa-user-shield','fas fa-user-slash','fas fa-user-tag','fas fa-user-tie','fas fa-user-times','fas fa-users','fas fa-users-cog','fas fa-users-slash','fab fa-usps','fab fa-ussunnah','fas fa-utensil-spoon','fas fa-utensils','fab fa-vaadin','fas fa-vector-square','fas fa-venus','fas fa-venus-double','fas fa-venus-mars','fas fa-vest','fas fa-vest-patches','fab fa-viacoin','fab fa-viadeo','fab fa-viadeo-square','fas fa-vial','fas fa-vials','fab fa-viber','fas fa-video','fas fa-video-slash','fas fa-vihara','fab fa-vimeo','fab fa-vimeo-square','fab fa-vimeo-v','fab fa-vine','fas fa-virus','fas fa-virus-slash','fas fa-viruses','fab fa-vk','fab fa-vnv','fas fa-voicemail','fas fa-volleyball-ball','fas fa-volume-down','fas fa-volume-mute','fas fa-volume-off','fas fa-volume-up','fas fa-vote-yea','fas fa-vr-cardboard','fab fa-vuejs','fas fa-walking','fas fa-wallet','fas fa-warehouse','fab fa-watchman-monitoring','fas fa-water','fas fa-wave-square','fab fa-waze','fab fa-weebly','fab fa-weibo','fas fa-weight','fas fa-weight-hanging','fab fa-weixin','fab fa-whatsapp','fab fa-whatsapp-square','fas fa-wheelchair','fab fa-whmcs','fas fa-wifi','fab fa-wikipedia-w','fas fa-wind','fas fa-window-close','far fa-window-close','fas fa-window-maximize','far fa-window-maximize','fas fa-window-minimize','far fa-window-minimize','fas fa-window-restore','far fa-window-restore','fab fa-windows','fas fa-wine-bottle','fas fa-wine-glass','fas fa-wine-glass-alt','fab fa-wix','fab fa-wizards-of-the-coast','fab fa-wodu','fab fa-wolf-pack-battalion','fas fa-won-sign','fab fa-wordpress','fab fa-wordpress-simple','fab fa-wpbeginner','fab fa-wpexplorer','fab fa-wpforms','fab fa-wpressr','fas fa-wrench','fas fa-x-ray','fab fa-xbox','fab fa-xing','fab fa-xing-square','fab fa-y-combinator','fab fa-yahoo','fab fa-yammer','fab fa-yandex','fab fa-yandex-international','fab fa-yarn','fab fa-yelp','fas fa-yen-sign','fas fa-yin-yang','fab fa-yoast','fab fa-youtube','fab fa-youtube-square','fab fa-zhihu' )
|
9 |
-
) );
|
|
|
|
|
10 |
}
|
2 |
//
|
3 |
// Font Awesome 5 Free Icons
|
4 |
//
|
5 |
+
if ( ! function_exists( 'ulf_get_default_icons' ) ) {
|
6 |
+
function ulf_get_default_icons() {
|
7 |
+
return array( array(
|
8 |
+
'title' => 'Font Awesome 5 Free',
|
9 |
+
'icons' => array( 'fab fa-500px','fab fa-accessible-icon','fab fa-accusoft','fab fa-acquisitions-incorporated','fas fa-ad','fas fa-address-book','far fa-address-book','fas fa-address-card','far fa-address-card','fas fa-adjust','fab fa-adn','fab fa-adversal','fab fa-affiliatetheme','fas fa-air-freshener','fab fa-airbnb','fab fa-algolia','fas fa-align-center','fas fa-align-justify','fas fa-align-left','fas fa-align-right','fab fa-alipay','fas fa-allergies','fab fa-amazon','fab fa-amazon-pay','fas fa-ambulance','fas fa-american-sign-language-interpreting','fab fa-amilia','fas fa-anchor','fab fa-android','fab fa-angellist','fas fa-angle-double-down','fas fa-angle-double-left','fas fa-angle-double-right','fas fa-angle-double-up','fas fa-angle-down','fas fa-angle-left','fas fa-angle-right','fas fa-angle-up','fas fa-angry','far fa-angry','fab fa-angrycreative','fab fa-angular','fas fa-ankh','fab fa-app-store','fab fa-app-store-ios','fab fa-apper','fab fa-apple','fas fa-apple-alt','fab fa-apple-pay','fas fa-archive','fas fa-archway','fas fa-arrow-alt-circle-down','far fa-arrow-alt-circle-down','fas fa-arrow-alt-circle-left','far fa-arrow-alt-circle-left','fas fa-arrow-alt-circle-right','far fa-arrow-alt-circle-right','fas fa-arrow-alt-circle-up','far fa-arrow-alt-circle-up','fas fa-arrow-circle-down','fas fa-arrow-circle-left','fas fa-arrow-circle-right','fas fa-arrow-circle-up','fas fa-arrow-down','fas fa-arrow-left','fas fa-arrow-right','fas fa-arrow-up','fas fa-arrows-alt','fas fa-arrows-alt-h','fas fa-arrows-alt-v','fab fa-artstation','fas fa-assistive-listening-systems','fas fa-asterisk','fab fa-asymmetrik','fas fa-at','fas fa-atlas','fab fa-atlassian','fas fa-atom','fab fa-audible','fas fa-audio-description','fab fa-autoprefixer','fab fa-avianex','fab fa-aviato','fas fa-award','fab fa-aws','fas fa-baby','fas fa-baby-carriage','fas fa-backspace','fas fa-backward','fas fa-bacon','fas fa-bacteria','fas fa-bacterium','fas fa-bahai','fas fa-balance-scale','fas fa-balance-scale-left','fas fa-balance-scale-right','fas fa-ban','fas fa-band-aid','fab fa-bandcamp','fas fa-barcode','fas fa-bars','fas fa-baseball-ball','fas fa-basketball-ball','fas fa-bath','fas fa-battery-empty','fas fa-battery-full','fas fa-battery-half','fas fa-battery-quarter','fas fa-battery-three-quarters','fab fa-battle-net','fas fa-bed','fas fa-beer','fab fa-behance','fab fa-behance-square','fas fa-bell','far fa-bell','fas fa-bell-slash','far fa-bell-slash','fas fa-bezier-curve','fas fa-bible','fas fa-bicycle','fas fa-biking','fab fa-bimobject','fas fa-binoculars','fas fa-biohazard','fas fa-birthday-cake','fab fa-bitbucket','fab fa-bitcoin','fab fa-bity','fab fa-black-tie','fab fa-blackberry','fas fa-blender','fas fa-blender-phone','fas fa-blind','fas fa-blog','fab fa-blogger','fab fa-blogger-b','fab fa-bluetooth','fab fa-bluetooth-b','fas fa-bold','fas fa-bolt','fas fa-bomb','fas fa-bone','fas fa-bong','fas fa-book','fas fa-book-dead','fas fa-book-medical','fas fa-book-open','fas fa-book-reader','fas fa-bookmark','far fa-bookmark','fab fa-bootstrap','fas fa-border-all','fas fa-border-none','fas fa-border-style','fas fa-bowling-ball','fas fa-box','fas fa-box-open','fas fa-box-tissue','fas fa-boxes','fas fa-braille','fas fa-brain','fas fa-bread-slice','fas fa-briefcase','fas fa-briefcase-medical','fas fa-broadcast-tower','fas fa-broom','fas fa-brush','fab fa-btc','fab fa-buffer','fas fa-bug','fas fa-building','far fa-building','fas fa-bullhorn','fas fa-bullseye','fas fa-burn','fab fa-buromobelexperte','fas fa-bus','fas fa-bus-alt','fas fa-business-time','fab fa-buy-n-large','fab fa-buysellads','fas fa-calculator','fas fa-calendar','far fa-calendar','fas fa-calendar-alt','far fa-calendar-alt','fas fa-calendar-check','far fa-calendar-check','fas fa-calendar-day','fas fa-calendar-minus','far fa-calendar-minus','fas fa-calendar-plus','far fa-calendar-plus','fas fa-calendar-times','far fa-calendar-times','fas fa-calendar-week','fas fa-camera','fas fa-camera-retro','fas fa-campground','fab fa-canadian-maple-leaf','fas fa-candy-cane','fas fa-cannabis','fas fa-capsules','fas fa-car','fas fa-car-alt','fas fa-car-battery','fas fa-car-crash','fas fa-car-side','fas fa-caravan','fas fa-caret-down','fas fa-caret-left','fas fa-caret-right','fas fa-caret-square-down','far fa-caret-square-down','fas fa-caret-square-left','far fa-caret-square-left','fas fa-caret-square-right','far fa-caret-square-right','fas fa-caret-square-up','far fa-caret-square-up','fas fa-caret-up','fas fa-carrot','fas fa-cart-arrow-down','fas fa-cart-plus','fas fa-cash-register','fas fa-cat','fab fa-cc-amazon-pay','fab fa-cc-amex','fab fa-cc-apple-pay','fab fa-cc-diners-club','fab fa-cc-discover','fab fa-cc-jcb','fab fa-cc-mastercard','fab fa-cc-paypal','fab fa-cc-stripe','fab fa-cc-visa','fab fa-centercode','fab fa-centos','fas fa-certificate','fas fa-chair','fas fa-chalkboard','fas fa-chalkboard-teacher','fas fa-charging-station','fas fa-chart-area','fas fa-chart-bar','far fa-chart-bar','fas fa-chart-line','fas fa-chart-pie','fas fa-check','fas fa-check-circle','far fa-check-circle','fas fa-check-double','fas fa-check-square','far fa-check-square','fas fa-cheese','fas fa-chess','fas fa-chess-bishop','fas fa-chess-board','fas fa-chess-king','fas fa-chess-knight','fas fa-chess-pawn','fas fa-chess-queen','fas fa-chess-rook','fas fa-chevron-circle-down','fas fa-chevron-circle-left','fas fa-chevron-circle-right','fas fa-chevron-circle-up','fas fa-chevron-down','fas fa-chevron-left','fas fa-chevron-right','fas fa-chevron-up','fas fa-child','fab fa-chrome','fab fa-chromecast','fas fa-church','fas fa-circle','far fa-circle','fas fa-circle-notch','fas fa-city','fas fa-clinic-medical','fas fa-clipboard','far fa-clipboard','fas fa-clipboard-check','fas fa-clipboard-list','fas fa-clock','far fa-clock','fas fa-clone','far fa-clone','fas fa-closed-captioning','far fa-closed-captioning','fas fa-cloud','fas fa-cloud-download-alt','fas fa-cloud-meatball','fas fa-cloud-moon','fas fa-cloud-moon-rain','fas fa-cloud-rain','fas fa-cloud-showers-heavy','fas fa-cloud-sun','fas fa-cloud-sun-rain','fas fa-cloud-upload-alt','fab fa-cloudflare','fab fa-cloudscale','fab fa-cloudsmith','fab fa-cloudversify','fas fa-cocktail','fas fa-code','fas fa-code-branch','fab fa-codepen','fab fa-codiepie','fas fa-coffee','fas fa-cog','fas fa-cogs','fas fa-coins','fas fa-columns','fas fa-comment','far fa-comment','fas fa-comment-alt','far fa-comment-alt','fas fa-comment-dollar','fas fa-comment-dots','far fa-comment-dots','fas fa-comment-medical','fas fa-comment-slash','fas fa-comments','far fa-comments','fas fa-comments-dollar','fas fa-compact-disc','fas fa-compass','far fa-compass','fas fa-compress','fas fa-compress-alt','fas fa-compress-arrows-alt','fas fa-concierge-bell','fab fa-confluence','fab fa-connectdevelop','fab fa-contao','fas fa-cookie','fas fa-cookie-bite','fas fa-copy','far fa-copy','fas fa-copyright','far fa-copyright','fab fa-cotton-bureau','fas fa-couch','fab fa-cpanel','fab fa-creative-commons','fab fa-creative-commons-by','fab fa-creative-commons-nc','fab fa-creative-commons-nc-eu','fab fa-creative-commons-nc-jp','fab fa-creative-commons-nd','fab fa-creative-commons-pd','fab fa-creative-commons-pd-alt','fab fa-creative-commons-remix','fab fa-creative-commons-sa','fab fa-creative-commons-sampling','fab fa-creative-commons-sampling-plus','fab fa-creative-commons-share','fab fa-creative-commons-zero','fas fa-credit-card','far fa-credit-card','fab fa-critical-role','fas fa-crop','fas fa-crop-alt','fas fa-cross','fas fa-crosshairs','fas fa-crow','fas fa-crown','fas fa-crutch','fab fa-css3','fab fa-css3-alt','fas fa-cube','fas fa-cubes','fas fa-cut','fab fa-cuttlefish','fab fa-d-and-d','fab fa-d-and-d-beyond','fab fa-dailymotion','fab fa-dashcube','fas fa-database','fas fa-deaf','fab fa-deezer','fab fa-delicious','fas fa-democrat','fab fa-deploydog','fab fa-deskpro','fas fa-desktop','fab fa-dev','fab fa-deviantart','fas fa-dharmachakra','fab fa-dhl','fas fa-diagnoses','fab fa-diaspora','fas fa-dice','fas fa-dice-d20','fas fa-dice-d6','fas fa-dice-five','fas fa-dice-four','fas fa-dice-one','fas fa-dice-six','fas fa-dice-three','fas fa-dice-two','fab fa-digg','fab fa-digital-ocean','fas fa-digital-tachograph','fas fa-directions','fab fa-discord','fab fa-discourse','fas fa-disease','fas fa-divide','fas fa-dizzy','far fa-dizzy','fas fa-dna','fab fa-dochub','fab fa-docker','fas fa-dog','fas fa-dollar-sign','fas fa-dolly','fas fa-dolly-flatbed','fas fa-donate','fas fa-door-closed','fas fa-door-open','fas fa-dot-circle','far fa-dot-circle','fas fa-dove','fas fa-download','fab fa-draft2digital','fas fa-drafting-compass','fas fa-dragon','fas fa-draw-polygon','fab fa-dribbble','fab fa-dribbble-square','fab fa-dropbox','fas fa-drum','fas fa-drum-steelpan','fas fa-drumstick-bite','fab fa-drupal','fas fa-dumbbell','fas fa-dumpster','fas fa-dumpster-fire','fas fa-dungeon','fab fa-dyalog','fab fa-earlybirds','fab fa-ebay','fab fa-edge','fab fa-edge-legacy','fas fa-edit','far fa-edit','fas fa-egg','fas fa-eject','fab fa-elementor','fas fa-ellipsis-h','fas fa-ellipsis-v','fab fa-ello','fab fa-ember','fab fa-empire','fas fa-envelope','far fa-envelope','fas fa-envelope-open','far fa-envelope-open','fas fa-envelope-open-text','fas fa-envelope-square','fab fa-envira','fas fa-equals','fas fa-eraser','fab fa-erlang','fab fa-ethereum','fas fa-ethernet','fab fa-etsy','fas fa-euro-sign','fab fa-evernote','fas fa-exchange-alt','fas fa-exclamation','fas fa-exclamation-circle','fas fa-exclamation-triangle','fas fa-expand','fas fa-expand-alt','fas fa-expand-arrows-alt','fab fa-expeditedssl','fas fa-external-link-alt','fas fa-external-link-square-alt','fas fa-eye','far fa-eye','fas fa-eye-dropper','fas fa-eye-slash','far fa-eye-slash','fab fa-facebook','fab fa-facebook-f','fab fa-facebook-messenger','fab fa-facebook-square','fas fa-fan','fab fa-fantasy-flight-games','fas fa-fast-backward','fas fa-fast-forward','fas fa-faucet','fas fa-fax','fas fa-feather','fas fa-feather-alt','fab fa-fedex','fab fa-fedora','fas fa-female','fas fa-fighter-jet','fab fa-figma','fas fa-file','far fa-file','fas fa-file-alt','far fa-file-alt','fas fa-file-archive','far fa-file-archive','fas fa-file-audio','far fa-file-audio','fas fa-file-code','far fa-file-code','fas fa-file-contract','fas fa-file-csv','fas fa-file-download','fas fa-file-excel','far fa-file-excel','fas fa-file-export','fas fa-file-image','far fa-file-image','fas fa-file-import','fas fa-file-invoice','fas fa-file-invoice-dollar','fas fa-file-medical','fas fa-file-medical-alt','fas fa-file-pdf','far fa-file-pdf','fas fa-file-powerpoint','far fa-file-powerpoint','fas fa-file-prescription','fas fa-file-signature','fas fa-file-upload','fas fa-file-video','far fa-file-video','fas fa-file-word','far fa-file-word','fas fa-fill','fas fa-fill-drip','fas fa-film','fas fa-filter','fas fa-fingerprint','fas fa-fire','fas fa-fire-alt','fas fa-fire-extinguisher','fab fa-firefox','fab fa-firefox-browser','fas fa-first-aid','fab fa-first-order','fab fa-first-order-alt','fab fa-firstdraft','fas fa-fish','fas fa-fist-raised','fas fa-flag','far fa-flag','fas fa-flag-checkered','fas fa-flag-usa','fas fa-flask','fab fa-flickr','fab fa-flipboard','fas fa-flushed','far fa-flushed','fab fa-fly','fas fa-folder','far fa-folder','fas fa-folder-minus','fas fa-folder-open','far fa-folder-open','fas fa-folder-plus','fas fa-font','fab fa-font-awesome','fab fa-font-awesome-alt','fab fa-font-awesome-flag','far fa-font-awesome-logo-full','fas fa-font-awesome-logo-full','fab fa-font-awesome-logo-full','fab fa-fonticons','fab fa-fonticons-fi','fas fa-football-ball','fab fa-fort-awesome','fab fa-fort-awesome-alt','fab fa-forumbee','fas fa-forward','fab fa-foursquare','fab fa-free-code-camp','fab fa-freebsd','fas fa-frog','fas fa-frown','far fa-frown','fas fa-frown-open','far fa-frown-open','fab fa-fulcrum','fas fa-funnel-dollar','fas fa-futbol','far fa-futbol','fab fa-galactic-republic','fab fa-galactic-senate','fas fa-gamepad','fas fa-gas-pump','fas fa-gavel','fas fa-gem','far fa-gem','fas fa-genderless','fab fa-get-pocket','fab fa-gg','fab fa-gg-circle','fas fa-ghost','fas fa-gift','fas fa-gifts','fab fa-git','fab fa-git-alt','fab fa-git-square','fab fa-github','fab fa-github-alt','fab fa-github-square','fab fa-gitkraken','fab fa-gitlab','fab fa-gitter','fas fa-glass-cheers','fas fa-glass-martini','fas fa-glass-martini-alt','fas fa-glass-whiskey','fas fa-glasses','fab fa-glide','fab fa-glide-g','fas fa-globe','fas fa-globe-africa','fas fa-globe-americas','fas fa-globe-asia','fas fa-globe-europe','fab fa-gofore','fas fa-golf-ball','fab fa-goodreads','fab fa-goodreads-g','fab fa-google','fab fa-google-drive','fab fa-google-pay','fab fa-google-play','fab fa-google-plus','fab fa-google-plus-g','fab fa-google-plus-square','fab fa-google-wallet','fas fa-gopuram','fas fa-graduation-cap','fab fa-gratipay','fab fa-grav','fas fa-greater-than','fas fa-greater-than-equal','fas fa-grimace','far fa-grimace','fas fa-grin','far fa-grin','fas fa-grin-alt','far fa-grin-alt','fas fa-grin-beam','far fa-grin-beam','fas fa-grin-beam-sweat','far fa-grin-beam-sweat','fas fa-grin-hearts','far fa-grin-hearts','fas fa-grin-squint','far fa-grin-squint','fas fa-grin-squint-tears','far fa-grin-squint-tears','fas fa-grin-stars','far fa-grin-stars','fas fa-grin-tears','far fa-grin-tears','fas fa-grin-tongue','far fa-grin-tongue','fas fa-grin-tongue-squint','far fa-grin-tongue-squint','fas fa-grin-tongue-wink','far fa-grin-tongue-wink','fas fa-grin-wink','far fa-grin-wink','fas fa-grip-horizontal','fas fa-grip-lines','fas fa-grip-lines-vertical','fas fa-grip-vertical','fab fa-gripfire','fab fa-grunt','fab fa-guilded','fas fa-guitar','fab fa-gulp','fas fa-h-square','fab fa-hacker-news','fab fa-hacker-news-square','fab fa-hackerrank','fas fa-hamburger','fas fa-hammer','fas fa-hamsa','fas fa-hand-holding','fas fa-hand-holding-heart','fas fa-hand-holding-medical','fas fa-hand-holding-usd','fas fa-hand-holding-water','fas fa-hand-lizard','far fa-hand-lizard','fas fa-hand-middle-finger','fas fa-hand-paper','far fa-hand-paper','fas fa-hand-peace','far fa-hand-peace','fas fa-hand-point-down','far fa-hand-point-down','fas fa-hand-point-left','far fa-hand-point-left','fas fa-hand-point-right','far fa-hand-point-right','fas fa-hand-point-up','far fa-hand-point-up','fas fa-hand-pointer','far fa-hand-pointer','fas fa-hand-rock','far fa-hand-rock','fas fa-hand-scissors','far fa-hand-scissors','fas fa-hand-sparkles','fas fa-hand-spock','far fa-hand-spock','fas fa-hands','fas fa-hands-helping','fas fa-hands-wash','fas fa-handshake','far fa-handshake','fas fa-handshake-alt-slash','fas fa-handshake-slash','fas fa-hanukiah','fas fa-hard-hat','fas fa-hashtag','fas fa-hat-cowboy','fas fa-hat-cowboy-side','fas fa-hat-wizard','fas fa-hdd','far fa-hdd','fas fa-head-side-cough','fas fa-head-side-cough-slash','fas fa-head-side-mask','fas fa-head-side-virus','fas fa-heading','fas fa-headphones','fas fa-headphones-alt','fas fa-headset','fas fa-heart','far fa-heart','fas fa-heart-broken','fas fa-heartbeat','fas fa-helicopter','fas fa-highlighter','fas fa-hiking','fas fa-hippo','fab fa-hips','fab fa-hire-a-helper','fas fa-history','fab fa-hive','fas fa-hockey-puck','fas fa-holly-berry','fas fa-home','fab fa-hooli','fab fa-hornbill','fas fa-horse','fas fa-horse-head','fas fa-hospital','far fa-hospital','fas fa-hospital-alt','fas fa-hospital-symbol','fas fa-hospital-user','fas fa-hot-tub','fas fa-hotdog','fas fa-hotel','fab fa-hotjar','fas fa-hourglass','far fa-hourglass','fas fa-hourglass-end','fas fa-hourglass-half','fas fa-hourglass-start','fas fa-house-damage','fas fa-house-user','fab fa-houzz','fas fa-hryvnia','fab fa-html5','fab fa-hubspot','fas fa-i-cursor','fas fa-ice-cream','fas fa-icicles','fas fa-icons','fas fa-id-badge','far fa-id-badge','fas fa-id-card','far fa-id-card','fas fa-id-card-alt','fab fa-ideal','fas fa-igloo','fas fa-image','far fa-image','fas fa-images','far fa-images','fab fa-imdb','fas fa-inbox','fas fa-indent','fas fa-industry','fas fa-infinity','fas fa-info','fas fa-info-circle','fab fa-innosoft','fab fa-instagram','fab fa-instagram-square','fab fa-instalod','fab fa-intercom','fab fa-internet-explorer','fab fa-invision','fab fa-ioxhost','fas fa-italic','fab fa-itch-io','fab fa-itunes','fab fa-itunes-note','fab fa-java','fas fa-jedi','fab fa-jedi-order','fab fa-jenkins','fab fa-jira','fab fa-joget','fas fa-joint','fab fa-joomla','fas fa-journal-whills','fab fa-js','fab fa-js-square','fab fa-jsfiddle','fas fa-kaaba','fab fa-kaggle','fas fa-key','fab fa-keybase','fas fa-keyboard','far fa-keyboard','fab fa-keycdn','fas fa-khanda','fab fa-kickstarter','fab fa-kickstarter-k','fas fa-kiss','far fa-kiss','fas fa-kiss-beam','far fa-kiss-beam','fas fa-kiss-wink-heart','far fa-kiss-wink-heart','fas fa-kiwi-bird','fab fa-korvue','fas fa-landmark','fas fa-language','fas fa-laptop','fas fa-laptop-code','fas fa-laptop-house','fas fa-laptop-medical','fab fa-laravel','fab fa-lastfm','fab fa-lastfm-square','fas fa-laugh','far fa-laugh','fas fa-laugh-beam','far fa-laugh-beam','fas fa-laugh-squint','far fa-laugh-squint','fas fa-laugh-wink','far fa-laugh-wink','fas fa-layer-group','fas fa-leaf','fab fa-leanpub','fas fa-lemon','far fa-lemon','fab fa-less','fas fa-less-than','fas fa-less-than-equal','fas fa-level-down-alt','fas fa-level-up-alt','fas fa-life-ring','far fa-life-ring','fas fa-lightbulb','far fa-lightbulb','fab fa-line','fas fa-link','fab fa-linkedin','fab fa-linkedin-in','fab fa-linode','fab fa-linux','fas fa-lira-sign','fas fa-list','fas fa-list-alt','far fa-list-alt','fas fa-list-ol','fas fa-list-ul','fas fa-location-arrow','fas fa-lock','fas fa-lock-open','fas fa-long-arrow-alt-down','fas fa-long-arrow-alt-left','fas fa-long-arrow-alt-right','fas fa-long-arrow-alt-up','fas fa-low-vision','fas fa-luggage-cart','fas fa-lungs','fas fa-lungs-virus','fab fa-lyft','fab fa-magento','fas fa-magic','fas fa-magnet','fas fa-mail-bulk','fab fa-mailchimp','fas fa-male','fab fa-mandalorian','fas fa-map','far fa-map','fas fa-map-marked','fas fa-map-marked-alt','fas fa-map-marker','fas fa-map-marker-alt','fas fa-map-pin','fas fa-map-signs','fab fa-markdown','fas fa-marker','fas fa-mars','fas fa-mars-double','fas fa-mars-stroke','fas fa-mars-stroke-h','fas fa-mars-stroke-v','fas fa-mask','fab fa-mastodon','fab fa-maxcdn','fab fa-mdb','fas fa-medal','fab fa-medapps','fab fa-medium','fab fa-medium-m','fas fa-medkit','fab fa-medrt','fab fa-meetup','fab fa-megaport','fas fa-meh','far fa-meh','fas fa-meh-blank','far fa-meh-blank','fas fa-meh-rolling-eyes','far fa-meh-rolling-eyes','fas fa-memory','fab fa-mendeley','fas fa-menorah','fas fa-mercury','fas fa-meteor','fab fa-microblog','fas fa-microchip','fas fa-microphone','fas fa-microphone-alt','fas fa-microphone-alt-slash','fas fa-microphone-slash','fas fa-microscope','fab fa-microsoft','fas fa-minus','fas fa-minus-circle','fas fa-minus-square','far fa-minus-square','fas fa-mitten','fab fa-mix','fab fa-mixcloud','fab fa-mixer','fab fa-mizuni','fas fa-mobile','fas fa-mobile-alt','fab fa-modx','fab fa-monero','fas fa-money-bill','fas fa-money-bill-alt','far fa-money-bill-alt','fas fa-money-bill-wave','fas fa-money-bill-wave-alt','fas fa-money-check','fas fa-money-check-alt','fas fa-monument','fas fa-moon','far fa-moon','fas fa-mortar-pestle','fas fa-mosque','fas fa-motorcycle','fas fa-mountain','fas fa-mouse','fas fa-mouse-pointer','fas fa-mug-hot','fas fa-music','fab fa-napster','fab fa-neos','fas fa-network-wired','fas fa-neuter','fas fa-newspaper','far fa-newspaper','fab fa-nimblr','fab fa-node','fab fa-node-js','fas fa-not-equal','fas fa-notes-medical','fab fa-npm','fab fa-ns8','fab fa-nutritionix','fas fa-object-group','far fa-object-group','fas fa-object-ungroup','far fa-object-ungroup','fab fa-octopus-deploy','fab fa-odnoklassniki','fab fa-odnoklassniki-square','fas fa-oil-can','fab fa-old-republic','fas fa-om','fab fa-opencart','fab fa-openid','fab fa-opera','fab fa-optin-monster','fab fa-orcid','fab fa-osi','fas fa-otter','fas fa-outdent','fab fa-page4','fab fa-pagelines','fas fa-pager','fas fa-paint-brush','fas fa-paint-roller','fas fa-palette','fab fa-palfed','fas fa-pallet','fas fa-paper-plane','far fa-paper-plane','fas fa-paperclip','fas fa-parachute-box','fas fa-paragraph','fas fa-parking','fas fa-passport','fas fa-pastafarianism','fas fa-paste','fab fa-patreon','fas fa-pause','fas fa-pause-circle','far fa-pause-circle','fas fa-paw','fab fa-paypal','fas fa-peace','fas fa-pen','fas fa-pen-alt','fas fa-pen-fancy','fas fa-pen-nib','fas fa-pen-square','fas fa-pencil-alt','fas fa-pencil-ruler','fab fa-penny-arcade','fas fa-people-arrows','fas fa-people-carry','fas fa-pepper-hot','fab fa-perbyte','fas fa-percent','fas fa-percentage','fab fa-periscope','fas fa-person-booth','fab fa-phabricator','fab fa-phoenix-framework','fab fa-phoenix-squadron','fas fa-phone','fas fa-phone-alt','fas fa-phone-slash','fas fa-phone-square','fas fa-phone-square-alt','fas fa-phone-volume','fas fa-photo-video','fab fa-php','fab fa-pied-piper','fab fa-pied-piper-alt','fab fa-pied-piper-hat','fab fa-pied-piper-pp','fab fa-pied-piper-square','fas fa-piggy-bank','fas fa-pills','fab fa-pinterest','fab fa-pinterest-p','fab fa-pinterest-square','fas fa-pizza-slice','fas fa-place-of-worship','fas fa-plane','fas fa-plane-arrival','fas fa-plane-departure','fas fa-plane-slash','fas fa-play','fas fa-play-circle','far fa-play-circle','fab fa-playstation','fas fa-plug','fas fa-plus','fas fa-plus-circle','fas fa-plus-square','far fa-plus-square','fas fa-podcast','fas fa-poll','fas fa-poll-h','fas fa-poo','fas fa-poo-storm','fas fa-poop','fas fa-portrait','fas fa-pound-sign','fas fa-power-off','fas fa-pray','fas fa-praying-hands','fas fa-prescription','fas fa-prescription-bottle','fas fa-prescription-bottle-alt','fas fa-print','fas fa-procedures','fab fa-product-hunt','fas fa-project-diagram','fas fa-pump-medical','fas fa-pump-soap','fab fa-pushed','fas fa-puzzle-piece','fab fa-python','fab fa-qq','fas fa-qrcode','fas fa-question','fas fa-question-circle','far fa-question-circle','fas fa-quidditch','fab fa-quinscape','fab fa-quora','fas fa-quote-left','fas fa-quote-right','fas fa-quran','fab fa-r-project','fas fa-radiation','fas fa-radiation-alt','fas fa-rainbow','fas fa-random','fab fa-raspberry-pi','fab fa-ravelry','fab fa-react','fab fa-reacteurope','fab fa-readme','fab fa-rebel','fas fa-receipt','fas fa-record-vinyl','fas fa-recycle','fab fa-red-river','fab fa-reddit','fab fa-reddit-alien','fab fa-reddit-square','fab fa-redhat','fas fa-redo','fas fa-redo-alt','fas fa-registered','far fa-registered','fas fa-remove-format','fab fa-renren','fas fa-reply','fas fa-reply-all','fab fa-replyd','fas fa-republican','fab fa-researchgate','fab fa-resolving','fas fa-restroom','fas fa-retweet','fab fa-rev','fas fa-ribbon','fas fa-ring','fas fa-road','fas fa-robot','fas fa-rocket','fab fa-rocketchat','fab fa-rockrms','fas fa-route','fas fa-rss','fas fa-rss-square','fas fa-ruble-sign','fas fa-ruler','fas fa-ruler-combined','fas fa-ruler-horizontal','fas fa-ruler-vertical','fas fa-running','fas fa-rupee-sign','fab fa-rust','fas fa-sad-cry','far fa-sad-cry','fas fa-sad-tear','far fa-sad-tear','fab fa-safari','fab fa-salesforce','fab fa-sass','fas fa-satellite','fas fa-satellite-dish','fas fa-save','far fa-save','fab fa-schlix','fas fa-school','fas fa-screwdriver','fab fa-scribd','fas fa-scroll','fas fa-sd-card','fas fa-search','fas fa-search-dollar','fas fa-search-location','fas fa-search-minus','fas fa-search-plus','fab fa-searchengin','fas fa-seedling','fab fa-sellcast','fab fa-sellsy','fas fa-server','fab fa-servicestack','fas fa-shapes','fas fa-share','fas fa-share-alt','fas fa-share-alt-square','fas fa-share-square','far fa-share-square','fas fa-shekel-sign','fas fa-shield-alt','fas fa-shield-virus','fas fa-ship','fas fa-shipping-fast','fab fa-shirtsinbulk','fas fa-shoe-prints','fab fa-shopify','fas fa-shopping-bag','fas fa-shopping-basket','fas fa-shopping-cart','fab fa-shopware','fas fa-shower','fas fa-shuttle-van','fas fa-sign','fas fa-sign-in-alt','fas fa-sign-language','fas fa-sign-out-alt','fas fa-signal','fas fa-signature','fas fa-sim-card','fab fa-simplybuilt','fas fa-sink','fab fa-sistrix','fas fa-sitemap','fab fa-sith','fas fa-skating','fab fa-sketch','fas fa-skiing','fas fa-skiing-nordic','fas fa-skull','fas fa-skull-crossbones','fab fa-skyatlas','fab fa-skype','fab fa-slack','fab fa-slack-hash','fas fa-slash','fas fa-sleigh','fas fa-sliders-h','fab fa-slideshare','fas fa-smile','far fa-smile','fas fa-smile-beam','far fa-smile-beam','fas fa-smile-wink','far fa-smile-wink','fas fa-smog','fas fa-smoking','fas fa-smoking-ban','fas fa-sms','fab fa-snapchat','fab fa-snapchat-ghost','fab fa-snapchat-square','fas fa-snowboarding','fas fa-snowflake','far fa-snowflake','fas fa-snowman','fas fa-snowplow','fas fa-soap','fas fa-socks','fas fa-solar-panel','fas fa-sort','fas fa-sort-alpha-down','fas fa-sort-alpha-down-alt','fas fa-sort-alpha-up','fas fa-sort-alpha-up-alt','fas fa-sort-amount-down','fas fa-sort-amount-down-alt','fas fa-sort-amount-up','fas fa-sort-amount-up-alt','fas fa-sort-down','fas fa-sort-numeric-down','fas fa-sort-numeric-down-alt','fas fa-sort-numeric-up','fas fa-sort-numeric-up-alt','fas fa-sort-up','fab fa-soundcloud','fab fa-sourcetree','fas fa-spa','fas fa-space-shuttle','fab fa-speakap','fab fa-speaker-deck','fas fa-spell-check','fas fa-spider','fas fa-spinner','fas fa-splotch','fab fa-spotify','fas fa-spray-can','fas fa-square','far fa-square','fas fa-square-full','fas fa-square-root-alt','fab fa-squarespace','fab fa-stack-exchange','fab fa-stack-overflow','fab fa-stackpath','fas fa-stamp','fas fa-star','far fa-star','fas fa-star-and-crescent','fas fa-star-half','far fa-star-half','fas fa-star-half-alt','fas fa-star-of-david','fas fa-star-of-life','fab fa-staylinked','fab fa-steam','fab fa-steam-square','fab fa-steam-symbol','fas fa-step-backward','fas fa-step-forward','fas fa-stethoscope','fab fa-sticker-mule','fas fa-sticky-note','far fa-sticky-note','fas fa-stop','fas fa-stop-circle','far fa-stop-circle','fas fa-stopwatch','fas fa-stopwatch-20','fas fa-store','fas fa-store-alt','fas fa-store-alt-slash','fas fa-store-slash','fab fa-strava','fas fa-stream','fas fa-street-view','fas fa-strikethrough','fab fa-stripe','fab fa-stripe-s','fas fa-stroopwafel','fab fa-studiovinari','fab fa-stumbleupon','fab fa-stumbleupon-circle','fas fa-subscript','fas fa-subway','fas fa-suitcase','fas fa-suitcase-rolling','fas fa-sun','far fa-sun','fab fa-superpowers','fas fa-superscript','fab fa-supple','fas fa-surprise','far fa-surprise','fab fa-suse','fas fa-swatchbook','fab fa-swift','fas fa-swimmer','fas fa-swimming-pool','fab fa-symfony','fas fa-synagogue','fas fa-sync','fas fa-sync-alt','fas fa-syringe','fas fa-table','fas fa-table-tennis','fas fa-tablet','fas fa-tablet-alt','fas fa-tablets','fas fa-tachometer-alt','fas fa-tag','fas fa-tags','fas fa-tape','fas fa-tasks','fas fa-taxi','fab fa-teamspeak','fas fa-teeth','fas fa-teeth-open','fab fa-telegram','fab fa-telegram-plane','fas fa-temperature-high','fas fa-temperature-low','fab fa-tencent-weibo','fas fa-tenge','fas fa-terminal','fas fa-text-height','fas fa-text-width','fas fa-th','fas fa-th-large','fas fa-th-list','fab fa-the-red-yeti','fas fa-theater-masks','fab fa-themeco','fab fa-themeisle','fas fa-thermometer','fas fa-thermometer-empty','fas fa-thermometer-full','fas fa-thermometer-half','fas fa-thermometer-quarter','fas fa-thermometer-three-quarters','fab fa-think-peaks','fas fa-thumbs-down','far fa-thumbs-down','fas fa-thumbs-up','far fa-thumbs-up','fas fa-thumbtack','fas fa-ticket-alt','fab fa-tiktok','fas fa-times','fas fa-times-circle','far fa-times-circle','fas fa-tint','fas fa-tint-slash','fas fa-tired','far fa-tired','fas fa-toggle-off','fas fa-toggle-on','fas fa-toilet','fas fa-toilet-paper','fas fa-toilet-paper-slash','fas fa-toolbox','fas fa-tools','fas fa-tooth','fas fa-torah','fas fa-torii-gate','fas fa-tractor','fab fa-trade-federation','fas fa-trademark','fas fa-traffic-light','fas fa-trailer','fas fa-train','fas fa-tram','fas fa-transgender','fas fa-transgender-alt','fas fa-trash','fas fa-trash-alt','far fa-trash-alt','fas fa-trash-restore','fas fa-trash-restore-alt','fas fa-tree','fab fa-trello','fab fa-tripadvisor','fas fa-trophy','fas fa-truck','fas fa-truck-loading','fas fa-truck-monster','fas fa-truck-moving','fas fa-truck-pickup','fas fa-tshirt','fas fa-tty','fab fa-tumblr','fab fa-tumblr-square','fas fa-tv','fab fa-twitch','fab fa-twitter','fab fa-twitter-square','fab fa-typo3','fab fa-uber','fab fa-ubuntu','fab fa-uikit','fab fa-umbraco','fas fa-umbrella','fas fa-umbrella-beach','fab fa-uncharted','fas fa-underline','fas fa-undo','fas fa-undo-alt','fab fa-uniregistry','fab fa-unity','fas fa-universal-access','fas fa-university','fas fa-unlink','fas fa-unlock','fas fa-unlock-alt','fab fa-unsplash','fab fa-untappd','fas fa-upload','fab fa-ups','fab fa-usb','fas fa-user','far fa-user','fas fa-user-alt','fas fa-user-alt-slash','fas fa-user-astronaut','fas fa-user-check','fas fa-user-circle','far fa-user-circle','fas fa-user-clock','fas fa-user-cog','fas fa-user-edit','fas fa-user-friends','fas fa-user-graduate','fas fa-user-injured','fas fa-user-lock','fas fa-user-md','fas fa-user-minus','fas fa-user-ninja','fas fa-user-nurse','fas fa-user-plus','fas fa-user-secret','fas fa-user-shield','fas fa-user-slash','fas fa-user-tag','fas fa-user-tie','fas fa-user-times','fas fa-users','fas fa-users-cog','fas fa-users-slash','fab fa-usps','fab fa-ussunnah','fas fa-utensil-spoon','fas fa-utensils','fab fa-vaadin','fas fa-vector-square','fas fa-venus','fas fa-venus-double','fas fa-venus-mars','fas fa-vest','fas fa-vest-patches','fab fa-viacoin','fab fa-viadeo','fab fa-viadeo-square','fas fa-vial','fas fa-vials','fab fa-viber','fas fa-video','fas fa-video-slash','fas fa-vihara','fab fa-vimeo','fab fa-vimeo-square','fab fa-vimeo-v','fab fa-vine','fas fa-virus','fas fa-virus-slash','fas fa-viruses','fab fa-vk','fab fa-vnv','fas fa-voicemail','fas fa-volleyball-ball','fas fa-volume-down','fas fa-volume-mute','fas fa-volume-off','fas fa-volume-up','fas fa-vote-yea','fas fa-vr-cardboard','fab fa-vuejs','fas fa-walking','fas fa-wallet','fas fa-warehouse','fab fa-watchman-monitoring','fas fa-water','fas fa-wave-square','fab fa-waze','fab fa-weebly','fab fa-weibo','fas fa-weight','fas fa-weight-hanging','fab fa-weixin','fab fa-whatsapp','fab fa-whatsapp-square','fas fa-wheelchair','fab fa-whmcs','fas fa-wifi','fab fa-wikipedia-w','fas fa-wind','fas fa-window-close','far fa-window-close','fas fa-window-maximize','far fa-window-maximize','fas fa-window-minimize','far fa-window-minimize','fas fa-window-restore','far fa-window-restore','fab fa-windows','fas fa-wine-bottle','fas fa-wine-glass','fas fa-wine-glass-alt','fab fa-wix','fab fa-wizards-of-the-coast','fab fa-wodu','fab fa-wolf-pack-battalion','fas fa-won-sign','fab fa-wordpress','fab fa-wordpress-simple','fab fa-wpbeginner','fab fa-wpexplorer','fab fa-wpforms','fab fa-wpressr','fas fa-wrench','fas fa-x-ray','fab fa-xbox','fab fa-xing','fab fa-xing-square','fab fa-y-combinator','fab fa-yahoo','fab fa-yammer','fab fa-yandex','fab fa-yandex-international','fab fa-yarn','fab fa-yelp','fas fa-yen-sign','fas fa-yin-yang','fab fa-yoast','fab fa-youtube','fab fa-youtube-square','fab fa-zhihu' )
|
10 |
+
) );
|
11 |
+
}
|
12 |
}
|
admin/settings/fields/typography/google-fonts.php
CHANGED
@@ -13,13 +13,15 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
13 |
'Adamina'=>[['normal'],['latin']],
|
14 |
'Advent Pro'=>[['100','200','300','normal','500','600','700'],['greek','latin','latin-ext']],
|
15 |
'Aguafina Script'=>[['normal'],['latin','latin-ext']],
|
|
|
|
|
16 |
'Akronim'=>[['normal'],['latin','latin-ext']],
|
17 |
'Aladin'=>[['normal'],['latin','latin-ext']],
|
18 |
'Alata'=>[['normal'],['latin','latin-ext','vietnamese']],
|
19 |
'Alatsi'=>[['normal'],['latin','latin-ext','vietnamese']],
|
20 |
'Aldrich'=>[['normal'],['latin']],
|
21 |
'Alef'=>[['normal','700'],['hebrew','latin']],
|
22 |
-
'Alegreya'=>[['normal','
|
23 |
'Alegreya SC'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
24 |
'Alegreya Sans'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
25 |
'Alegreya Sans SC'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
@@ -47,6 +49,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
47 |
'Anaheim'=>[['normal'],['latin','latin-ext']],
|
48 |
'Andada'=>[['normal'],['latin','latin-ext']],
|
49 |
'Andika'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
|
|
50 |
'Angkor'=>[['normal'],['khmer']],
|
51 |
'Annie Use Your Telescope'=>[['normal'],['latin']],
|
52 |
'Anonymous Pro'=>[['normal','italic','700','700italic'],['cyrillic','greek','latin','latin-ext']],
|
@@ -61,9 +64,9 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
61 |
'Archivo'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
62 |
'Archivo Black'=>[['normal'],['latin','latin-ext']],
|
63 |
'Archivo Narrow'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
64 |
-
'Aref Ruqaa'=>[['normal','700'],['arabic','latin']],
|
65 |
'Arima Madurai'=>[['100','200','300','normal','500','700','800','900'],['latin','latin-ext','tamil','vietnamese']],
|
66 |
-
'Arimo'=>[['normal','
|
67 |
'Arizonia'=>[['normal'],['latin','latin-ext']],
|
68 |
'Armata'=>[['normal'],['latin','latin-ext']],
|
69 |
'Arsenal'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
@@ -95,6 +98,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
95 |
'Bahiana'=>[['normal'],['latin','latin-ext']],
|
96 |
'Bahianita'=>[['normal'],['latin','latin-ext','vietnamese']],
|
97 |
'Bai Jamjuree'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
|
|
|
98 |
'Baloo 2'=>[['normal','500','600','700','800'],['devanagari','latin','latin-ext','vietnamese']],
|
99 |
'Baloo Bhai 2'=>[['normal','500','600','700','800'],['gujarati','latin','latin-ext','vietnamese']],
|
100 |
'Baloo Bhaina 2'=>[['normal','500','600','700','800'],['latin','latin-ext','oriya','vietnamese']],
|
@@ -125,11 +129,16 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
125 |
'Bellota'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','latin','latin-ext','vietnamese']],
|
126 |
'Bellota Text'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','latin','latin-ext','vietnamese']],
|
127 |
'BenchNine'=>[['300','normal','700'],['latin','latin-ext']],
|
|
|
128 |
'Bentham'=>[['normal'],['latin']],
|
129 |
'Berkshire Swash'=>[['normal'],['latin','latin-ext']],
|
130 |
'Beth Ellen'=>[['normal'],['latin']],
|
131 |
'Bevan'=>[['normal'],['latin','latin-ext','vietnamese']],
|
132 |
'Big Shoulders Display'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
|
|
|
|
|
|
|
|
133 |
'Big Shoulders Text'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
134 |
'Bigelow Rules'=>[['normal'],['latin','latin-ext']],
|
135 |
'Bigshot One'=>[['normal'],['latin']],
|
@@ -143,6 +152,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
143 |
'Black Han Sans'=>[['normal'],['korean','latin']],
|
144 |
'Black Ops One'=>[['normal'],['latin','latin-ext']],
|
145 |
'Blinker'=>[['100','200','300','normal','600','700','800','900'],['latin','latin-ext']],
|
|
|
146 |
'Bokor'=>[['normal'],['khmer']],
|
147 |
'Bonbon'=>[['normal'],['latin']],
|
148 |
'Boogaloo'=>[['normal'],['latin']],
|
@@ -150,6 +160,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
150 |
'Bowlby One SC'=>[['normal'],['latin','latin-ext']],
|
151 |
'Brawler'=>[['normal'],['latin']],
|
152 |
'Bree Serif'=>[['normal'],['latin','latin-ext']],
|
|
|
153 |
'Bubblegum Sans'=>[['normal'],['latin','latin-ext']],
|
154 |
'Bubbler One'=>[['normal'],['latin','latin-ext']],
|
155 |
'Buda'=>[['300'],['latin']],
|
@@ -182,9 +193,10 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
182 |
'Carrois Gothic'=>[['normal'],['latin']],
|
183 |
'Carrois Gothic SC'=>[['normal'],['latin']],
|
184 |
'Carter One'=>[['normal'],['latin']],
|
|
|
185 |
'Catamaran'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','tamil']],
|
186 |
'Caudex'=>[['normal','italic','700','700italic'],['greek','greek-ext','latin','latin-ext']],
|
187 |
-
'Caveat'=>[['normal','700'],['cyrillic','cyrillic-ext','latin','latin-ext']],
|
188 |
'Caveat Brush'=>[['normal'],['latin','latin-ext']],
|
189 |
'Cedarville Cursive'=>[['normal'],['latin']],
|
190 |
'Ceviche One'=>[['normal'],['latin','latin-ext']],
|
@@ -277,6 +289,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
277 |
'Doppio One'=>[['normal'],['latin','latin-ext']],
|
278 |
'Dorsa'=>[['normal'],['latin']],
|
279 |
'Dosis'=>[['200','300','normal','500','600','700','800'],['latin','latin-ext','vietnamese']],
|
|
|
280 |
'Dr Sugiyama'=>[['normal'],['latin','latin-ext']],
|
281 |
'Duru Sans'=>[['normal'],['latin','latin-ext']],
|
282 |
'Dynalight'=>[['normal'],['latin','latin-ext']],
|
@@ -337,6 +350,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
337 |
'Forum'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext']],
|
338 |
'Francois One'=>[['normal'],['latin','latin-ext','vietnamese']],
|
339 |
'Frank Ruhl Libre'=>[['300','normal','500','700','900'],['hebrew','latin','latin-ext']],
|
|
|
340 |
'Freckle Face'=>[['normal'],['latin','latin-ext']],
|
341 |
'Fredericka the Great'=>[['normal'],['latin','latin-ext']],
|
342 |
'Fredoka One'=>[['normal'],['latin']],
|
@@ -371,6 +385,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
371 |
'Gloria Hallelujah'=>[['normal'],['latin']],
|
372 |
'Goblin One'=>[['normal'],['latin']],
|
373 |
'Gochi Hand'=>[['normal'],['latin']],
|
|
|
374 |
'Gorditas'=>[['normal','700'],['latin']],
|
375 |
'Gothic A1'=>[['100','200','300','normal','500','600','700','800','900'],['korean','latin']],
|
376 |
'Gotu'=>[['normal'],['devanagari','latin','latin-ext','vietnamese']],
|
@@ -389,6 +404,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
389 |
'Gupter'=>[['normal','500','700'],['latin']],
|
390 |
'Gurajada'=>[['normal'],['latin','telugu']],
|
391 |
'Habibi'=>[['normal'],['latin','latin-ext']],
|
|
|
392 |
'Halant'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
|
393 |
'Hammersmith One'=>[['normal'],['latin','latin-ext']],
|
394 |
'Hanalei'=>[['normal'],['latin','latin-ext']],
|
@@ -425,9 +441,10 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
425 |
'IM Fell French Canon SC'=>[['normal'],['latin']],
|
426 |
'IM Fell Great Primer'=>[['normal','italic'],['latin']],
|
427 |
'IM Fell Great Primer SC'=>[['normal'],['latin']],
|
428 |
-
'Ibarra Real Nova'=>[['normal','
|
429 |
'Iceberg'=>[['normal'],['latin']],
|
430 |
'Iceland'=>[['normal'],['latin']],
|
|
|
431 |
'Imprima'=>[['normal'],['latin','latin-ext']],
|
432 |
'Inconsolata'=>[['200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
433 |
'Inder'=>[['normal'],['latin','latin-ext']],
|
@@ -445,13 +462,14 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
445 |
'Jacques Francois'=>[['normal'],['latin']],
|
446 |
'Jacques Francois Shadow'=>[['normal'],['latin']],
|
447 |
'Jaldi'=>[['normal','700'],['devanagari','latin','latin-ext']],
|
|
|
448 |
'Jim Nightshade'=>[['normal'],['latin','latin-ext']],
|
449 |
'Jockey One'=>[['normal'],['latin','latin-ext']],
|
450 |
'Jolly Lodger'=>[['normal'],['latin','latin-ext']],
|
451 |
'Jomhuria'=>[['normal'],['arabic','latin','latin-ext']],
|
452 |
'Jomolhari'=>[['normal'],['latin','tibetan']],
|
453 |
'Josefin Sans'=>[['100','200','300','normal','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
|
454 |
-
'Josefin Slab'=>[['100','
|
455 |
'Jost'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','latin','latin-ext']],
|
456 |
'Joti One'=>[['normal'],['latin','latin-ext']],
|
457 |
'Jua'=>[['normal'],['korean','latin']],
|
@@ -468,7 +486,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
468 |
'Kameron'=>[['normal','700'],['latin']],
|
469 |
'Kanit'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','thai','vietnamese']],
|
470 |
'Kantumruy'=>[['300','normal','700'],['khmer']],
|
471 |
-
'Karla'=>[['normal','
|
472 |
'Karma'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
|
473 |
'Katibeh'=>[['normal'],['arabic','latin','latin-ext']],
|
474 |
'Kaushan Script'=>[['normal'],['latin','latin-ext']],
|
@@ -507,6 +525,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
507 |
'Lakki Reddy'=>[['normal'],['latin','telugu']],
|
508 |
'Lalezar'=>[['normal'],['arabic','latin','latin-ext','vietnamese']],
|
509 |
'Lancelot'=>[['normal'],['latin','latin-ext']],
|
|
|
510 |
'Lateef'=>[['normal'],['arabic','latin']],
|
511 |
'Lato'=>[['100','100italic','300','300italic','normal','italic','700','700italic','900','900italic'],['latin','latin-ext']],
|
512 |
'League Script'=>[['normal'],['latin']],
|
@@ -528,10 +547,11 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
528 |
'Libre Barcode 39 Extended'=>[['normal'],['latin']],
|
529 |
'Libre Barcode 39 Extended Text'=>[['normal'],['latin']],
|
530 |
'Libre Barcode 39 Text'=>[['normal'],['latin']],
|
|
|
531 |
'Libre Baskerville'=>[['normal','italic','700'],['latin','latin-ext']],
|
532 |
'Libre Caslon Display'=>[['normal'],['latin','latin-ext']],
|
533 |
'Libre Caslon Text'=>[['normal','italic','700'],['latin','latin-ext']],
|
534 |
-
'Libre Franklin'=>[['100','
|
535 |
'Life Savers'=>[['normal','700','800'],['latin','latin-ext']],
|
536 |
'Lilita One'=>[['normal'],['latin','latin-ext']],
|
537 |
'Lily Script One'=>[['normal'],['latin','latin-ext']],
|
@@ -646,10 +666,12 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
646 |
'Nanum Gothic Coding'=>[['normal','700'],['korean','latin']],
|
647 |
'Nanum Myeongjo'=>[['normal','700','800'],['korean','latin']],
|
648 |
'Nanum Pen Script'=>[['normal'],['korean','latin']],
|
|
|
649 |
'Neucha'=>[['normal'],['cyrillic','latin']],
|
650 |
'Neuton'=>[['200','300','normal','italic','700','800'],['latin','latin-ext']],
|
651 |
'New Rocker'=>[['normal'],['latin','latin-ext']],
|
652 |
'News Cycle'=>[['normal','700'],['latin','latin-ext']],
|
|
|
653 |
'Niconne'=>[['normal'],['latin','latin-ext']],
|
654 |
'Niramit'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
|
655 |
'Nixie One'=>[['normal'],['latin']],
|
@@ -685,6 +707,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
685 |
'Odibee Sans'=>[['normal'],['latin']],
|
686 |
'Odor Mean Chey'=>[['normal'],['khmer']],
|
687 |
'Offside'=>[['normal'],['latin']],
|
|
|
688 |
'Old Standard TT'=>[['normal','italic','700'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
689 |
'Oldenburg'=>[['normal'],['latin','latin-ext']],
|
690 |
'Oleo Script'=>[['normal','700'],['latin','latin-ext']],
|
@@ -753,6 +776,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
753 |
'Poppins'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['devanagari','latin','latin-ext']],
|
754 |
'Port Lligat Sans'=>[['normal'],['latin']],
|
755 |
'Port Lligat Slab'=>[['normal'],['latin']],
|
|
|
756 |
'Pragati Narrow'=>[['normal','700'],['devanagari','latin','latin-ext']],
|
757 |
'Prata'=>[['normal'],['cyrillic','cyrillic-ext','latin','vietnamese']],
|
758 |
'Preahvihear'=>[['normal'],['khmer']],
|
@@ -797,6 +821,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
797 |
'Redressed'=>[['normal'],['latin']],
|
798 |
'Reem Kufi'=>[['normal'],['arabic','latin']],
|
799 |
'Reenie Beanie'=>[['normal'],['latin']],
|
|
|
800 |
'Revalia'=>[['normal'],['latin','latin-ext']],
|
801 |
'Rhodium Libre'=>[['normal'],['devanagari','latin','latin-ext']],
|
802 |
'Ribeye'=>[['normal'],['latin','latin-ext']],
|
@@ -809,6 +834,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
809 |
'Roboto Slab'=>[['100','200','300','normal','500','600','700','800','900'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
810 |
'Rochester'=>[['normal'],['latin']],
|
811 |
'Rock Salt'=>[['normal'],['latin']],
|
|
|
812 |
'Rokkitt'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
813 |
'Romanesco'=>[['normal'],['latin','latin-ext']],
|
814 |
'Ropa Sans'=>[['normal','italic'],['latin','latin-ext']],
|
@@ -831,7 +857,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
831 |
'Sacramento'=>[['normal'],['latin','latin-ext']],
|
832 |
'Sahitya'=>[['normal','700'],['devanagari','latin']],
|
833 |
'Sail'=>[['normal'],['latin','latin-ext']],
|
834 |
-
'Saira'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
835 |
'Saira Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
836 |
'Saira Extra Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
837 |
'Saira Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
@@ -865,6 +891,8 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
865 |
'Share'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
|
866 |
'Share Tech'=>[['normal'],['latin']],
|
867 |
'Share Tech Mono'=>[['normal'],['latin']],
|
|
|
|
|
868 |
'Shojumaru'=>[['normal'],['latin','latin-ext']],
|
869 |
'Short Stack'=>[['normal'],['latin']],
|
870 |
'Shrikhand'=>[['normal'],['gujarati','latin','latin-ext']],
|
@@ -896,6 +924,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
896 |
'Source Code Pro'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
|
897 |
'Source Sans Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
898 |
'Source Serif Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
|
|
|
899 |
'Space Mono'=>[['normal','italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
900 |
'Spartan'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext']],
|
901 |
'Special Elite'=>[['normal'],['latin']],
|
@@ -912,6 +941,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
912 |
'Stalemate'=>[['normal'],['latin','latin-ext']],
|
913 |
'Stalinist One'=>[['normal'],['cyrillic','latin','latin-ext']],
|
914 |
'Stardos Stencil'=>[['normal','700'],['latin']],
|
|
|
915 |
'Stint Ultra Condensed'=>[['normal'],['latin','latin-ext']],
|
916 |
'Stint Ultra Expanded'=>[['normal'],['latin','latin-ext']],
|
917 |
'Stoke'=>[['300','normal'],['latin','latin-ext']],
|
@@ -943,6 +973,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
943 |
'Tenali Ramakrishna'=>[['normal'],['latin','telugu']],
|
944 |
'Tenor Sans'=>[['normal'],['cyrillic','latin','latin-ext']],
|
945 |
'Text Me One'=>[['normal'],['latin','latin-ext']],
|
|
|
946 |
'Thasadith'=>[['normal','italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
|
947 |
'The Girl Next Door'=>[['normal'],['latin']],
|
948 |
'Tienne'=>[['normal','700','900'],['latin']],
|
@@ -957,6 +988,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
957 |
'Trispace'=>[['100','200','300','normal','500','600','700','800'],['latin','latin-ext','vietnamese']],
|
958 |
'Trocchi'=>[['normal'],['latin','latin-ext']],
|
959 |
'Trochut'=>[['normal','italic','700'],['latin']],
|
|
|
960 |
'Trykker'=>[['normal'],['latin','latin-ext']],
|
961 |
'Tulpen One'=>[['normal'],['latin']],
|
962 |
'Turret Road'=>[['200','300','normal','500','700','800'],['latin','latin-ext']],
|
@@ -997,6 +1029,7 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
997 |
'Wendy One'=>[['normal'],['latin','latin-ext']],
|
998 |
'Wire One'=>[['normal'],['latin']],
|
999 |
'Work Sans'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
|
|
|
1000 |
'Yanone Kaffeesatz'=>[['200','300','normal','500','600','700'],['cyrillic','latin','latin-ext','vietnamese']],
|
1001 |
'Yantramanav'=>[['100','300','normal','500','700','900'],['devanagari','latin','latin-ext']],
|
1002 |
'Yatra One'=>[['normal'],['devanagari','latin','latin-ext']],
|
@@ -1005,13 +1038,14 @@ if ( ! function_exists( 'ulf_get_google_fonts' ) ) {
|
|
1005 |
'Yeseva One'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
1006 |
'Yesteryear'=>[['normal'],['latin']],
|
1007 |
'Yrsa'=>[['300','normal','500','600','700'],['latin','latin-ext']],
|
|
|
1008 |
'ZCOOL KuaiLe'=>[['normal'],['chinese-simplified','latin']],
|
1009 |
'ZCOOL QingKe HuangYou'=>[['normal'],['chinese-simplified','latin']],
|
1010 |
'ZCOOL XiaoWei'=>[['normal'],['chinese-simplified','latin']],
|
1011 |
'Zeyada'=>[['normal'],['latin']],
|
1012 |
'Zhi Mang Xing'=>[['normal'],['chinese-simplified','latin']],
|
1013 |
'Zilla Slab'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext']],
|
1014 |
-
'Zilla Slab Highlight'=>[['normal','700'],['latin','latin-ext']]
|
1015 |
];
|
1016 |
}
|
1017 |
}
|
13 |
'Adamina'=>[['normal'],['latin']],
|
14 |
'Advent Pro'=>[['100','200','300','normal','500','600','700'],['greek','latin','latin-ext']],
|
15 |
'Aguafina Script'=>[['normal'],['latin','latin-ext']],
|
16 |
+
'Akaya Kanadaka'=>[['normal'],['kannada','latin','latin-ext']],
|
17 |
+
'Akaya Telivigala'=>[['normal'],['latin','latin-ext','telugu']],
|
18 |
'Akronim'=>[['normal'],['latin','latin-ext']],
|
19 |
'Aladin'=>[['normal'],['latin','latin-ext']],
|
20 |
'Alata'=>[['normal'],['latin','latin-ext','vietnamese']],
|
21 |
'Alatsi'=>[['normal'],['latin','latin-ext','vietnamese']],
|
22 |
'Aldrich'=>[['normal'],['latin']],
|
23 |
'Alef'=>[['normal','700'],['hebrew','latin']],
|
24 |
+
'Alegreya'=>[['normal','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
25 |
'Alegreya SC'=>[['normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
26 |
'Alegreya Sans'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
27 |
'Alegreya Sans SC'=>[['100','100italic','300','300italic','normal','italic','500','500italic','700','700italic','800','800italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
49 |
'Anaheim'=>[['normal'],['latin','latin-ext']],
|
50 |
'Andada'=>[['normal'],['latin','latin-ext']],
|
51 |
'Andika'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
52 |
+
'Andika New Basic'=>[['normal','italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
53 |
'Angkor'=>[['normal'],['khmer']],
|
54 |
'Annie Use Your Telescope'=>[['normal'],['latin']],
|
55 |
'Anonymous Pro'=>[['normal','italic','700','700italic'],['cyrillic','greek','latin','latin-ext']],
|
64 |
'Archivo'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
65 |
'Archivo Black'=>[['normal'],['latin','latin-ext']],
|
66 |
'Archivo Narrow'=>[['normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
67 |
+
'Aref Ruqaa'=>[['normal','700'],['arabic','latin','latin-ext']],
|
68 |
'Arima Madurai'=>[['100','200','300','normal','500','700','800','900'],['latin','latin-ext','tamil','vietnamese']],
|
69 |
+
'Arimo'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['cyrillic','cyrillic-ext','greek','greek-ext','hebrew','latin','latin-ext','vietnamese']],
|
70 |
'Arizonia'=>[['normal'],['latin','latin-ext']],
|
71 |
'Armata'=>[['normal'],['latin','latin-ext']],
|
72 |
'Arsenal'=>[['normal','italic','700','700italic'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
98 |
'Bahiana'=>[['normal'],['latin','latin-ext']],
|
99 |
'Bahianita'=>[['normal'],['latin','latin-ext','vietnamese']],
|
100 |
'Bai Jamjuree'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
|
101 |
+
'Ballet'=>[['normal'],['latin','latin-ext','vietnamese']],
|
102 |
'Baloo 2'=>[['normal','500','600','700','800'],['devanagari','latin','latin-ext','vietnamese']],
|
103 |
'Baloo Bhai 2'=>[['normal','500','600','700','800'],['gujarati','latin','latin-ext','vietnamese']],
|
104 |
'Baloo Bhaina 2'=>[['normal','500','600','700','800'],['latin','latin-ext','oriya','vietnamese']],
|
129 |
'Bellota'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','latin','latin-ext','vietnamese']],
|
130 |
'Bellota Text'=>[['300','300italic','normal','italic','700','700italic'],['cyrillic','latin','latin-ext','vietnamese']],
|
131 |
'BenchNine'=>[['300','normal','700'],['latin','latin-ext']],
|
132 |
+
'Benne'=>[['normal'],['kannada','latin','latin-ext']],
|
133 |
'Bentham'=>[['normal'],['latin']],
|
134 |
'Berkshire Swash'=>[['normal'],['latin','latin-ext']],
|
135 |
'Beth Ellen'=>[['normal'],['latin']],
|
136 |
'Bevan'=>[['normal'],['latin','latin-ext','vietnamese']],
|
137 |
'Big Shoulders Display'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
138 |
+
'Big Shoulders Inline Display'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
139 |
+
'Big Shoulders Inline Text'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
140 |
+
'Big Shoulders Stencil Display'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
141 |
+
'Big Shoulders Stencil Text'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
142 |
'Big Shoulders Text'=>[['100','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
143 |
'Bigelow Rules'=>[['normal'],['latin','latin-ext']],
|
144 |
'Bigshot One'=>[['normal'],['latin']],
|
152 |
'Black Han Sans'=>[['normal'],['korean','latin']],
|
153 |
'Black Ops One'=>[['normal'],['latin','latin-ext']],
|
154 |
'Blinker'=>[['100','200','300','normal','600','700','800','900'],['latin','latin-ext']],
|
155 |
+
'Bodoni Moda'=>[['normal','500','600','700','800','900','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext']],
|
156 |
'Bokor'=>[['normal'],['khmer']],
|
157 |
'Bonbon'=>[['normal'],['latin']],
|
158 |
'Boogaloo'=>[['normal'],['latin']],
|
160 |
'Bowlby One SC'=>[['normal'],['latin','latin-ext']],
|
161 |
'Brawler'=>[['normal'],['latin']],
|
162 |
'Bree Serif'=>[['normal'],['latin','latin-ext']],
|
163 |
+
'Brygada 1918'=>[['normal','500','600','700'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
|
164 |
'Bubblegum Sans'=>[['normal'],['latin','latin-ext']],
|
165 |
'Bubbler One'=>[['normal'],['latin','latin-ext']],
|
166 |
'Buda'=>[['300'],['latin']],
|
193 |
'Carrois Gothic'=>[['normal'],['latin']],
|
194 |
'Carrois Gothic SC'=>[['normal'],['latin']],
|
195 |
'Carter One'=>[['normal'],['latin']],
|
196 |
+
'Castoro'=>[['normal','italic'],['latin','latin-ext']],
|
197 |
'Catamaran'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','tamil']],
|
198 |
'Caudex'=>[['normal','italic','700','700italic'],['greek','greek-ext','latin','latin-ext']],
|
199 |
+
'Caveat'=>[['normal','500','600','700'],['cyrillic','cyrillic-ext','latin','latin-ext']],
|
200 |
'Caveat Brush'=>[['normal'],['latin','latin-ext']],
|
201 |
'Cedarville Cursive'=>[['normal'],['latin']],
|
202 |
'Ceviche One'=>[['normal'],['latin','latin-ext']],
|
289 |
'Doppio One'=>[['normal'],['latin','latin-ext']],
|
290 |
'Dorsa'=>[['normal'],['latin']],
|
291 |
'Dosis'=>[['200','300','normal','500','600','700','800'],['latin','latin-ext','vietnamese']],
|
292 |
+
'DotGothic16'=>[['normal'],['cyrillic','japanese','latin','latin-ext']],
|
293 |
'Dr Sugiyama'=>[['normal'],['latin','latin-ext']],
|
294 |
'Duru Sans'=>[['normal'],['latin','latin-ext']],
|
295 |
'Dynalight'=>[['normal'],['latin','latin-ext']],
|
350 |
'Forum'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext']],
|
351 |
'Francois One'=>[['normal'],['latin','latin-ext','vietnamese']],
|
352 |
'Frank Ruhl Libre'=>[['300','normal','500','700','900'],['hebrew','latin','latin-ext']],
|
353 |
+
'Fraunces'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
|
354 |
'Freckle Face'=>[['normal'],['latin','latin-ext']],
|
355 |
'Fredericka the Great'=>[['normal'],['latin','latin-ext']],
|
356 |
'Fredoka One'=>[['normal'],['latin']],
|
385 |
'Gloria Hallelujah'=>[['normal'],['latin']],
|
386 |
'Goblin One'=>[['normal'],['latin']],
|
387 |
'Gochi Hand'=>[['normal'],['latin']],
|
388 |
+
'Goldman'=>[['normal','700'],['latin','latin-ext','vietnamese']],
|
389 |
'Gorditas'=>[['normal','700'],['latin']],
|
390 |
'Gothic A1'=>[['100','200','300','normal','500','600','700','800','900'],['korean','latin']],
|
391 |
'Gotu'=>[['normal'],['devanagari','latin','latin-ext','vietnamese']],
|
404 |
'Gupter'=>[['normal','500','700'],['latin']],
|
405 |
'Gurajada'=>[['normal'],['latin','telugu']],
|
406 |
'Habibi'=>[['normal'],['latin','latin-ext']],
|
407 |
+
'Hachi Maru Pop'=>[['normal'],['cyrillic','japanese','latin','latin-ext']],
|
408 |
'Halant'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
|
409 |
'Hammersmith One'=>[['normal'],['latin','latin-ext']],
|
410 |
'Hanalei'=>[['normal'],['latin','latin-ext']],
|
441 |
'IM Fell French Canon SC'=>[['normal'],['latin']],
|
442 |
'IM Fell Great Primer'=>[['normal','italic'],['latin']],
|
443 |
'IM Fell Great Primer SC'=>[['normal'],['latin']],
|
444 |
+
'Ibarra Real Nova'=>[['normal','500','600','700','italic','500italic','600italic','700italic'],['latin','latin-ext']],
|
445 |
'Iceberg'=>[['normal'],['latin']],
|
446 |
'Iceland'=>[['normal'],['latin']],
|
447 |
+
'Imbue'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
448 |
'Imprima'=>[['normal'],['latin','latin-ext']],
|
449 |
'Inconsolata'=>[['200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
450 |
'Inder'=>[['normal'],['latin','latin-ext']],
|
462 |
'Jacques Francois'=>[['normal'],['latin']],
|
463 |
'Jacques Francois Shadow'=>[['normal'],['latin']],
|
464 |
'Jaldi'=>[['normal','700'],['devanagari','latin','latin-ext']],
|
465 |
+
'JetBrains Mono'=>[['100','200','300','normal','500','600','700','800','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
|
466 |
'Jim Nightshade'=>[['normal'],['latin','latin-ext']],
|
467 |
'Jockey One'=>[['normal'],['latin','latin-ext']],
|
468 |
'Jolly Lodger'=>[['normal'],['latin','latin-ext']],
|
469 |
'Jomhuria'=>[['normal'],['arabic','latin','latin-ext']],
|
470 |
'Jomolhari'=>[['normal'],['latin','tibetan']],
|
471 |
'Josefin Sans'=>[['100','200','300','normal','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'],['latin','latin-ext','vietnamese']],
|
472 |
+
'Josefin Slab'=>[['100','200','300','normal','500','600','700','100italic','200italic','300italic','italic','500italic','600italic','700italic'],['latin']],
|
473 |
'Jost'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['cyrillic','latin','latin-ext']],
|
474 |
'Joti One'=>[['normal'],['latin','latin-ext']],
|
475 |
'Jua'=>[['normal'],['korean','latin']],
|
486 |
'Kameron'=>[['normal','700'],['latin']],
|
487 |
'Kanit'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['latin','latin-ext','thai','vietnamese']],
|
488 |
'Kantumruy'=>[['300','normal','700'],['khmer']],
|
489 |
+
'Karla'=>[['200','300','normal','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'],['latin','latin-ext']],
|
490 |
'Karma'=>[['300','normal','500','600','700'],['devanagari','latin','latin-ext']],
|
491 |
'Katibeh'=>[['normal'],['arabic','latin','latin-ext']],
|
492 |
'Kaushan Script'=>[['normal'],['latin','latin-ext']],
|
525 |
'Lakki Reddy'=>[['normal'],['latin','telugu']],
|
526 |
'Lalezar'=>[['normal'],['arabic','latin','latin-ext','vietnamese']],
|
527 |
'Lancelot'=>[['normal'],['latin','latin-ext']],
|
528 |
+
'Langar'=>[['normal'],['gurmukhi','latin','latin-ext']],
|
529 |
'Lateef'=>[['normal'],['arabic','latin']],
|
530 |
'Lato'=>[['100','100italic','300','300italic','normal','italic','700','700italic','900','900italic'],['latin','latin-ext']],
|
531 |
'League Script'=>[['normal'],['latin']],
|
547 |
'Libre Barcode 39 Extended'=>[['normal'],['latin']],
|
548 |
'Libre Barcode 39 Extended Text'=>[['normal'],['latin']],
|
549 |
'Libre Barcode 39 Text'=>[['normal'],['latin']],
|
550 |
+
'Libre Barcode EAN13 Text'=>[['normal'],['latin']],
|
551 |
'Libre Baskerville'=>[['normal','italic','700'],['latin','latin-ext']],
|
552 |
'Libre Caslon Display'=>[['normal'],['latin','latin-ext']],
|
553 |
'Libre Caslon Text'=>[['normal','italic','700'],['latin','latin-ext']],
|
554 |
+
'Libre Franklin'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
|
555 |
'Life Savers'=>[['normal','700','800'],['latin','latin-ext']],
|
556 |
'Lilita One'=>[['normal'],['latin','latin-ext']],
|
557 |
'Lily Script One'=>[['normal'],['latin','latin-ext']],
|
666 |
'Nanum Gothic Coding'=>[['normal','700'],['korean','latin']],
|
667 |
'Nanum Myeongjo'=>[['normal','700','800'],['korean','latin']],
|
668 |
'Nanum Pen Script'=>[['normal'],['korean','latin']],
|
669 |
+
'Nerko One'=>[['normal'],['latin','latin-ext']],
|
670 |
'Neucha'=>[['normal'],['cyrillic','latin']],
|
671 |
'Neuton'=>[['200','300','normal','italic','700','800'],['latin','latin-ext']],
|
672 |
'New Rocker'=>[['normal'],['latin','latin-ext']],
|
673 |
'News Cycle'=>[['normal','700'],['latin','latin-ext']],
|
674 |
+
'Newsreader'=>[['200','300','normal','500','600','700','800','200italic','300italic','italic','500italic','600italic','700italic','800italic'],['latin','latin-ext','vietnamese']],
|
675 |
'Niconne'=>[['normal'],['latin','latin-ext']],
|
676 |
'Niramit'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
|
677 |
'Nixie One'=>[['normal'],['latin']],
|
707 |
'Odibee Sans'=>[['normal'],['latin']],
|
708 |
'Odor Mean Chey'=>[['normal'],['khmer']],
|
709 |
'Offside'=>[['normal'],['latin']],
|
710 |
+
'Oi'=>[['normal'],['greek','latin','latin-ext','vietnamese']],
|
711 |
'Old Standard TT'=>[['normal','italic','700'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
712 |
'Oldenburg'=>[['normal'],['latin','latin-ext']],
|
713 |
'Oleo Script'=>[['normal','700'],['latin','latin-ext']],
|
776 |
'Poppins'=>[['100','100italic','200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','800','800italic','900','900italic'],['devanagari','latin','latin-ext']],
|
777 |
'Port Lligat Sans'=>[['normal'],['latin']],
|
778 |
'Port Lligat Slab'=>[['normal'],['latin']],
|
779 |
+
'Potta One'=>[['normal'],['japanese','latin','latin-ext','vietnamese']],
|
780 |
'Pragati Narrow'=>[['normal','700'],['devanagari','latin','latin-ext']],
|
781 |
'Prata'=>[['normal'],['cyrillic','cyrillic-ext','latin','vietnamese']],
|
782 |
'Preahvihear'=>[['normal'],['khmer']],
|
821 |
'Redressed'=>[['normal'],['latin']],
|
822 |
'Reem Kufi'=>[['normal'],['arabic','latin']],
|
823 |
'Reenie Beanie'=>[['normal'],['latin']],
|
824 |
+
'Reggae One'=>[['normal'],['cyrillic','japanese','latin','latin-ext']],
|
825 |
'Revalia'=>[['normal'],['latin','latin-ext']],
|
826 |
'Rhodium Libre'=>[['normal'],['devanagari','latin','latin-ext']],
|
827 |
'Ribeye'=>[['normal'],['latin','latin-ext']],
|
834 |
'Roboto Slab'=>[['100','200','300','normal','500','600','700','800','900'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
835 |
'Rochester'=>[['normal'],['latin']],
|
836 |
'Rock Salt'=>[['normal'],['latin']],
|
837 |
+
'RocknRoll One'=>[['normal'],['cyrillic','japanese','latin','latin-ext']],
|
838 |
'Rokkitt'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
839 |
'Romanesco'=>[['normal'],['latin','latin-ext']],
|
840 |
'Ropa Sans'=>[['normal','italic'],['latin','latin-ext']],
|
857 |
'Sacramento'=>[['normal'],['latin','latin-ext']],
|
858 |
'Sahitya'=>[['normal','700'],['devanagari','latin']],
|
859 |
'Sail'=>[['normal'],['latin','latin-ext']],
|
860 |
+
'Saira'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
|
861 |
'Saira Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
862 |
'Saira Extra Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
863 |
'Saira Semi Condensed'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
891 |
'Share'=>[['normal','italic','700','700italic'],['latin','latin-ext']],
|
892 |
'Share Tech'=>[['normal'],['latin']],
|
893 |
'Share Tech Mono'=>[['normal'],['latin']],
|
894 |
+
'Shippori Mincho'=>[['normal','500','600','700','800'],['japanese','latin','latin-ext']],
|
895 |
+
'Shippori Mincho B1'=>[['normal','500','600','700','800'],['japanese','latin','latin-ext']],
|
896 |
'Shojumaru'=>[['normal'],['latin','latin-ext']],
|
897 |
'Short Stack'=>[['normal'],['latin']],
|
898 |
'Shrikhand'=>[['normal'],['gujarati','latin','latin-ext']],
|
924 |
'Source Code Pro'=>[['200','200italic','300','300italic','normal','italic','500','500italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
|
925 |
'Source Sans Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','greek-ext','latin','latin-ext','vietnamese']],
|
926 |
'Source Serif Pro'=>[['200','200italic','300','300italic','normal','italic','600','600italic','700','700italic','900','900italic'],['cyrillic','cyrillic-ext','greek','latin','latin-ext','vietnamese']],
|
927 |
+
'Space Grotesk'=>[['300','normal','500','600','700'],['latin','latin-ext','vietnamese']],
|
928 |
'Space Mono'=>[['normal','italic','700','700italic'],['latin','latin-ext','vietnamese']],
|
929 |
'Spartan'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext']],
|
930 |
'Special Elite'=>[['normal'],['latin']],
|
941 |
'Stalemate'=>[['normal'],['latin','latin-ext']],
|
942 |
'Stalinist One'=>[['normal'],['cyrillic','latin','latin-ext']],
|
943 |
'Stardos Stencil'=>[['normal','700'],['latin']],
|
944 |
+
'Stick'=>[['normal'],['cyrillic','japanese','latin','latin-ext']],
|
945 |
'Stint Ultra Condensed'=>[['normal'],['latin','latin-ext']],
|
946 |
'Stint Ultra Expanded'=>[['normal'],['latin','latin-ext']],
|
947 |
'Stoke'=>[['300','normal'],['latin','latin-ext']],
|
973 |
'Tenali Ramakrishna'=>[['normal'],['latin','telugu']],
|
974 |
'Tenor Sans'=>[['normal'],['cyrillic','latin','latin-ext']],
|
975 |
'Text Me One'=>[['normal'],['latin','latin-ext']],
|
976 |
+
'Texturina'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
|
977 |
'Thasadith'=>[['normal','italic','700','700italic'],['latin','latin-ext','thai','vietnamese']],
|
978 |
'The Girl Next Door'=>[['normal'],['latin']],
|
979 |
'Tienne'=>[['normal','700','900'],['latin']],
|
988 |
'Trispace'=>[['100','200','300','normal','500','600','700','800'],['latin','latin-ext','vietnamese']],
|
989 |
'Trocchi'=>[['normal'],['latin','latin-ext']],
|
990 |
'Trochut'=>[['normal','italic','700'],['latin']],
|
991 |
+
'Truculenta'=>[['100','200','300','normal','500','600','700','800','900'],['latin','latin-ext','vietnamese']],
|
992 |
'Trykker'=>[['normal'],['latin','latin-ext']],
|
993 |
'Tulpen One'=>[['normal'],['latin']],
|
994 |
'Turret Road'=>[['200','300','normal','500','700','800'],['latin','latin-ext']],
|
1029 |
'Wendy One'=>[['normal'],['latin','latin-ext']],
|
1030 |
'Wire One'=>[['normal'],['latin']],
|
1031 |
'Work Sans'=>[['100','200','300','normal','500','600','700','800','900','100italic','200italic','300italic','italic','500italic','600italic','700italic','800italic','900italic'],['latin','latin-ext','vietnamese']],
|
1032 |
+
'Xanh Mono'=>[['normal','italic'],['latin','latin-ext','vietnamese']],
|
1033 |
'Yanone Kaffeesatz'=>[['200','300','normal','500','600','700'],['cyrillic','latin','latin-ext','vietnamese']],
|
1034 |
'Yantramanav'=>[['100','300','normal','500','700','900'],['devanagari','latin','latin-ext']],
|
1035 |
'Yatra One'=>[['normal'],['devanagari','latin','latin-ext']],
|
1038 |
'Yeseva One'=>[['normal'],['cyrillic','cyrillic-ext','latin','latin-ext','vietnamese']],
|
1039 |
'Yesteryear'=>[['normal'],['latin']],
|
1040 |
'Yrsa'=>[['300','normal','500','600','700'],['latin','latin-ext']],
|
1041 |
+
'Yusei Magic'=>[['normal'],['japanese','latin','latin-ext']],
|
1042 |
'ZCOOL KuaiLe'=>[['normal'],['chinese-simplified','latin']],
|
1043 |
'ZCOOL QingKe HuangYou'=>[['normal'],['chinese-simplified','latin']],
|
1044 |
'ZCOOL XiaoWei'=>[['normal'],['chinese-simplified','latin']],
|
1045 |
'Zeyada'=>[['normal'],['latin']],
|
1046 |
'Zhi Mang Xing'=>[['normal'],['chinese-simplified','latin']],
|
1047 |
'Zilla Slab'=>[['300','300italic','normal','italic','500','500italic','600','600italic','700','700italic'],['latin','latin-ext']],
|
1048 |
+
'Zilla Slab Highlight'=>[['normal','700'],['latin','latin-ext']],
|
1049 |
];
|
1050 |
}
|
1051 |
}
|
admin/settings/functions/customize.php
CHANGED
@@ -42,13 +42,6 @@ if ( ! class_exists( 'WP_Customize_Control_ULF' ) && class_exists( 'WP_Customize
|
|
42 |
public $field = '';
|
43 |
public $unique = '';
|
44 |
|
45 |
-
public function enqueue() {
|
46 |
-
|
47 |
-
// parent::enqueue();
|
48 |
-
// echo 'xxx';
|
49 |
-
|
50 |
-
}
|
51 |
-
|
52 |
public function render() {
|
53 |
|
54 |
$depend = '';
|
@@ -110,6 +103,7 @@ if ( ! class_exists( 'WP_Customize_Control_ULF' ) && class_exists( 'WP_Customize
|
|
110 |
'fieldset',
|
111 |
'group',
|
112 |
'image_select',
|
|
|
113 |
'link_color',
|
114 |
'media',
|
115 |
'palette',
|
42 |
public $field = '';
|
43 |
public $unique = '';
|
44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
public function render() {
|
46 |
|
47 |
$depend = '';
|
103 |
'fieldset',
|
104 |
'group',
|
105 |
'image_select',
|
106 |
+
'link',
|
107 |
'link_color',
|
108 |
'media',
|
109 |
'palette',
|
admin/settings/functions/helpers.php
CHANGED
@@ -36,7 +36,7 @@ if ( ! function_exists( 'ulf_array_search' ) ) {
|
|
36 |
* @version 1.0.0
|
37 |
*
|
38 |
*/
|
39 |
-
if ( ! function_exists( '
|
40 |
function ulf_timeout( $timenow, $starttime, $timeout = 30 ) {
|
41 |
return ( ( $timenow - $starttime ) < $timeout ) ? true : false;
|
42 |
}
|
36 |
* @version 1.0.0
|
37 |
*
|
38 |
*/
|
39 |
+
if ( ! function_exists( 'ulf_timeout' ) ) {
|
40 |
function ulf_timeout( $timenow, $starttime, $timeout = 30 ) {
|
41 |
return ( ( $timenow - $starttime ) < $timeout ) ? true : false;
|
42 |
}
|
admin/settings/languages/default.pot
CHANGED
@@ -2,73 +2,73 @@
|
|
2 |
# This file is distributed under the same license as the Codestar Framework package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Codestar Framework 2.2.
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/codestar-framework\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
|
12 |
-
#: classes/admin-options.class.php:
|
13 |
msgid "Error while saving the changes."
|
14 |
msgstr ""
|
15 |
|
16 |
-
#: classes/admin-options.class.php:
|
17 |
msgid "Settings successfully imported."
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: classes/admin-options.class.php:
|
21 |
msgid "Default settings restored."
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: classes/admin-options.class.php:
|
25 |
msgid "Settings saved."
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: classes/admin-options.class.php:
|
29 |
msgid "You have unsaved changes, save your changes!"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: classes/admin-options.class.php:
|
33 |
msgid "show all settings"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: classes/admin-options.class.php:
|
37 |
#: fields/map/map.php:23
|
38 |
msgid "Search..."
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: classes/admin-options.class.php:
|
42 |
msgid "Save"
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: classes/admin-options.class.php:
|
46 |
msgid "Saving..."
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: classes/admin-options.class.php:
|
50 |
msgid "Reset Section"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: classes/admin-options.class.php:
|
54 |
msgid "Are you sure to reset this section options?"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: classes/admin-options.class.php:
|
58 |
msgid "Reset All"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: classes/admin-options.class.php:
|
62 |
#: classes/comment-options.class.php:215 classes/metabox-options.class.php:293
|
63 |
#: fields/backup/backup.php:31
|
64 |
msgid "Reset"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: classes/admin-options.class.php:
|
68 |
msgid "Are you sure you want to reset all settings to default values?"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: classes/admin-options.class.php:
|
72 |
#: classes/metabox-options.class.php:276 fields/button_set/button_set.php:56
|
73 |
#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
|
74 |
#: fields/select/select.php:113 functions/actions.php:41
|
@@ -83,27 +83,27 @@ msgstr ""
|
|
83 |
msgid "Cancel"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: classes/setup.class.php:
|
87 |
msgid "Are you sure?"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: classes/setup.class.php:
|
91 |
msgid "Please enter %s or more characters"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: classes/setup.class.php:
|
95 |
msgid "Searching..."
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: classes/setup.class.php:
|
99 |
msgid "No results found."
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: classes/setup.class.php:
|
103 |
msgid "Oops! Not allowed."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: classes/setup.class.php:
|
107 |
msgid "Field not found!"
|
108 |
msgstr ""
|
109 |
|
@@ -645,4 +645,4 @@ msgstr ""
|
|
645 |
|
646 |
#: functions/validate.php:68 functions/validate.php:146
|
647 |
msgid "Please enter a valid URL."
|
648 |
-
msgstr ""
|
2 |
# This file is distributed under the same license as the Codestar Framework package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Codestar Framework 2.2.2\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/codestar-framework\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
|
12 |
+
#: classes/admin-options.class.php:226
|
13 |
msgid "Error while saving the changes."
|
14 |
msgstr ""
|
15 |
|
16 |
+
#: classes/admin-options.class.php:286
|
17 |
msgid "Settings successfully imported."
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: classes/admin-options.class.php:298 classes/admin-options.class.php:314
|
21 |
msgid "Default settings restored."
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: classes/admin-options.class.php:385
|
25 |
msgid "Settings saved."
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: classes/admin-options.class.php:565
|
29 |
msgid "You have unsaved changes, save your changes!"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: classes/admin-options.class.php:567
|
33 |
msgid "show all settings"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: classes/admin-options.class.php:569 fields/icon/icon.php:57
|
37 |
#: fields/map/map.php:23
|
38 |
msgid "Search..."
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: classes/admin-options.class.php:572 classes/admin-options.class.php:695
|
42 |
msgid "Save"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: classes/admin-options.class.php:572 classes/admin-options.class.php:695
|
46 |
msgid "Saving..."
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: classes/admin-options.class.php:573 classes/admin-options.class.php:696
|
50 |
msgid "Reset Section"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: classes/admin-options.class.php:573 classes/admin-options.class.php:696
|
54 |
msgid "Are you sure to reset this section options?"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: classes/admin-options.class.php:574 classes/admin-options.class.php:697
|
58 |
msgid "Reset All"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: classes/admin-options.class.php:574 classes/admin-options.class.php:697
|
62 |
#: classes/comment-options.class.php:215 classes/metabox-options.class.php:293
|
63 |
#: fields/backup/backup.php:31
|
64 |
msgid "Reset"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: classes/admin-options.class.php:574 classes/admin-options.class.php:697
|
68 |
msgid "Are you sure you want to reset all settings to default values?"
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: classes/admin-options.class.php:672 classes/comment-options.class.php:198
|
72 |
#: classes/metabox-options.class.php:276 fields/button_set/button_set.php:56
|
73 |
#: fields/checkbox/checkbox.php:76 fields/radio/radio.php:75
|
74 |
#: fields/select/select.php:113 functions/actions.php:41
|
83 |
msgid "Cancel"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: classes/setup.class.php:592
|
87 |
msgid "Are you sure?"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: classes/setup.class.php:593
|
91 |
msgid "Please enter %s or more characters"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: classes/setup.class.php:594
|
95 |
msgid "Searching..."
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: classes/setup.class.php:595
|
99 |
msgid "No results found."
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: classes/setup.class.php:696
|
103 |
msgid "Oops! Not allowed."
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: classes/setup.class.php:768 classes/setup.class.php:772
|
107 |
msgid "Field not found!"
|
108 |
msgstr ""
|
109 |
|
645 |
|
646 |
#: functions/validate.php:68 functions/validate.php:146
|
647 |
msgid "Please enter a valid URL."
|
648 |
+
msgstr ""
|
assets/js/dist/wp-ulike.dev.js
DELETED
@@ -1,216 +0,0 @@
|
|
1 |
-
"use strict";
|
2 |
-
|
3 |
-
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
4 |
-
|
5 |
-
!function (t, e, i, s) {
|
6 |
-
"use strict";
|
7 |
-
|
8 |
-
var n = {
|
9 |
-
messageType: "success",
|
10 |
-
messageText: "Hello World!",
|
11 |
-
timeout: 8e3,
|
12 |
-
messageElement: "wpulike-message",
|
13 |
-
notifContainer: "wpulike-notification"
|
14 |
-
};
|
15 |
-
|
16 |
-
function l(e, i) {
|
17 |
-
this.element = e, this.$element = t(e), this.settings = t.extend({}, n, i), this._defaults = n, this._name = "WordpressUlikeNotifications", this.init();
|
18 |
-
}
|
19 |
-
|
20 |
-
t.extend(l.prototype, {
|
21 |
-
init: function init() {
|
22 |
-
this._message(), this._container(), this._append(), this._remove();
|
23 |
-
},
|
24 |
-
_message: function _message() {
|
25 |
-
this.$messageElement = t("<div/>").addClass(this.settings.messageElement + " wpulike-" + this.settings.messageType).text(this.settings.messageText);
|
26 |
-
},
|
27 |
-
_container: function _container() {
|
28 |
-
t("." + this.settings.notifContainer).length || this.$element.append(t("<div/>").addClass(this.settings.notifContainer)), this.$notifContainer = this.$element.find("." + this.settings.notifContainer);
|
29 |
-
},
|
30 |
-
_append: function _append() {
|
31 |
-
this.$notifContainer.append(this.$messageElement).trigger("WordpressUlikeNotificationAppend");
|
32 |
-
},
|
33 |
-
_remove: function _remove() {
|
34 |
-
var e = this;
|
35 |
-
this.$messageElement.click(function () {
|
36 |
-
t(this).fadeOut(300, function () {
|
37 |
-
t(this).remove(), t("." + e.settings.messageElement).length || e.$notifContainer.remove();
|
38 |
-
}).trigger("WordpressUlikeRemoveNotification");
|
39 |
-
}), e.settings.timeout && setTimeout(function () {
|
40 |
-
e.$messageElement.fadeOut(300, function () {
|
41 |
-
t(this).remove(), t("." + e.settings.messageElement).length || e.$notifContainer.remove();
|
42 |
-
}).trigger("WordpressUlikeRemoveNotification");
|
43 |
-
}, e.settings.timeout);
|
44 |
-
}
|
45 |
-
}), t.fn.WordpressUlikeNotifications = function (t) {
|
46 |
-
return this.each(function () {
|
47 |
-
new l(this, t);
|
48 |
-
});
|
49 |
-
};
|
50 |
-
}(jQuery, window, document), function (t, e, i, s) {
|
51 |
-
"use strict";
|
52 |
-
|
53 |
-
t(e);
|
54 |
-
var n = t(i),
|
55 |
-
l = {
|
56 |
-
ID: 0,
|
57 |
-
nonce: 0,
|
58 |
-
type: "",
|
59 |
-
append: "",
|
60 |
-
appendTimeout: 2e3,
|
61 |
-
displayLikers: !1,
|
62 |
-
disablePophover: !0,
|
63 |
-
isTotal: !1,
|
64 |
-
factor: "",
|
65 |
-
template: "",
|
66 |
-
counterSelector: ".count-box",
|
67 |
-
generalSelector: ".wp_ulike_general_class",
|
68 |
-
buttonSelector: ".wp_ulike_btn",
|
69 |
-
likersSelector: ".wp_ulike_likers_wrapper"
|
70 |
-
},
|
71 |
-
a = {
|
72 |
-
"ulike-id": "ID",
|
73 |
-
"ulike-nonce": "nonce",
|
74 |
-
"ulike-type": "type",
|
75 |
-
"ulike-append": "append",
|
76 |
-
"ulike-is-total": "isTotal",
|
77 |
-
"ulike-display-likers": "displayLikers",
|
78 |
-
"ulike-disable-pophover": "disablePophover",
|
79 |
-
"ulike-append-timeout": "appendTimeout",
|
80 |
-
"ulike-factor": "factor",
|
81 |
-
"ulike-template": "template"
|
82 |
-
};
|
83 |
-
|
84 |
-
function o(e, i) {
|
85 |
-
for (var s in this.element = e, this.$element = t(e), this.settings = t.extend({}, l, i), this._defaults = l, this._name = "WordpressUlike", this.buttonElement = this.$element.find(this.settings.buttonSelector), this.generalElement = this.$element.find(this.settings.generalSelector), this.counterElement = this.generalElement.find(this.settings.counterSelector), this.likersElement = this.$element.find(this.settings.likersSelector), a) {
|
86 |
-
var n = this.buttonElement.data(s);
|
87 |
-
void 0 !== n && (this.settings[a[s]] = n);
|
88 |
-
}
|
89 |
-
|
90 |
-
this.init();
|
91 |
-
}
|
92 |
-
|
93 |
-
t.extend(o.prototype, {
|
94 |
-
init: function init() {
|
95 |
-
this.buttonElement.click(this._initLike.bind(this)), this.generalElement.one("mouseenter", this._updateLikers.bind(this));
|
96 |
-
},
|
97 |
-
_ajax: function _ajax(e, i) {
|
98 |
-
t.ajax({
|
99 |
-
url: wp_ulike_params.ajax_url,
|
100 |
-
type: "POST",
|
101 |
-
cache: !1,
|
102 |
-
dataType: "json",
|
103 |
-
data: e
|
104 |
-
}).done(i);
|
105 |
-
},
|
106 |
-
_initLike: function _initLike(t) {
|
107 |
-
t.stopPropagation(), this._maybeUpdateElements(t), this._updateSameButtons(), this._updateSameLikers(), this.buttonElement.prop("disabled", !0), n.trigger("WordpressUlikeLoading", this.element), this.generalElement.addClass("wp_ulike_is_loading"), this._ajax({
|
108 |
-
action: "wp_ulike_process",
|
109 |
-
id: this.settings.ID,
|
110 |
-
nonce: this.settings.nonce,
|
111 |
-
factor: this.settings.factor,
|
112 |
-
type: this.settings.type,
|
113 |
-
template: this.settings.template,
|
114 |
-
displayLikers: this.settings.displayLikers,
|
115 |
-
disablePophover: this.settings.disablePophover
|
116 |
-
}, function (t) {
|
117 |
-
this.generalElement.removeClass("wp_ulike_is_loading"), t.success ? (this._updateMarkup(t), this._appendChild()) : this._sendNotification("error", t.data), this.buttonElement.prop("disabled", !1), n.trigger("WordpressUlikeUpdated", this.element);
|
118 |
-
}.bind(this));
|
119 |
-
},
|
120 |
-
_maybeUpdateElements: function _maybeUpdateElements(e) {
|
121 |
-
this.buttonElement = t(e.currentTarget), this.generalElement = this.buttonElement.closest(this.settings.generalSelector), this.counterElement = this.generalElement.find(this.settings.counterSelector), this.settings.factor = this.buttonElement.data("ulike-factor");
|
122 |
-
},
|
123 |
-
_appendChild: function _appendChild() {
|
124 |
-
if ("" !== this.settings.append) {
|
125 |
-
var e = t(this.settings.append);
|
126 |
-
this.buttonElement.append(e), this.settings.appendTimeout && setTimeout(function () {
|
127 |
-
e.detach();
|
128 |
-
}, this.settings.appendTimeout);
|
129 |
-
}
|
130 |
-
},
|
131 |
-
_updateMarkup: function _updateMarkup(t) {
|
132 |
-
this._setSbilingElement(), this._setSbilingButtons(), this._updateGeneralClassNames(t.data.status), null !== t.data.data && (t.data.status < 5 && (this.__updateCounter(t.data.data), this.settings.displayLikers && void 0 !== t.data.likers && this._updateLikersMarkup(t.data.likers)), this._updateButton(t.data.btnText, t.data.status)), this._sendNotification(t.data.messageType, t.data.message);
|
133 |
-
},
|
134 |
-
_updateGeneralClassNames: function _updateGeneralClassNames(t) {
|
135 |
-
var e = "wp_ulike_is_not_liked",
|
136 |
-
i = "wp_ulike_is_liked",
|
137 |
-
s = "wp_ulike_is_unliked",
|
138 |
-
n = "wp_ulike_click_is_disabled";
|
139 |
-
|
140 |
-
switch (this.siblingElement.length && this.siblingElement.removeClass(this._arrayToString([i, s])), t) {
|
141 |
-
case 1:
|
142 |
-
this.generalElement.addClass(i).removeClass(e), this.generalElement.children().first().addClass(n);
|
143 |
-
break;
|
144 |
-
|
145 |
-
case 2:
|
146 |
-
this.generalElement.addClass(s).removeClass(i);
|
147 |
-
break;
|
148 |
-
|
149 |
-
case 3:
|
150 |
-
this.generalElement.addClass(i).removeClass(s);
|
151 |
-
break;
|
152 |
-
|
153 |
-
default:
|
154 |
-
this.generalElement.addClass(n), this.siblingElement.length && this.siblingElement.addClass(n);
|
155 |
-
}
|
156 |
-
},
|
157 |
-
_arrayToString: function _arrayToString(t) {
|
158 |
-
return t.join(" ");
|
159 |
-
},
|
160 |
-
_setSbilingElement: function _setSbilingElement() {
|
161 |
-
this.siblingElement = this.generalElement.siblings();
|
162 |
-
},
|
163 |
-
_setSbilingButtons: function _setSbilingButtons() {
|
164 |
-
this.siblingButton = this.buttonElement.siblings(this.settings.buttonSelector);
|
165 |
-
},
|
166 |
-
__updateCounter: function __updateCounter(t) {
|
167 |
-
"object" != _typeof(t) ? this.counterElement.text(t) : this.settings.isTotal && void 0 !== t.sub ? this.counterElement.text(t.sub) : "down" === this.settings.factor ? (this.counterElement.text(t.down), this.siblingElement.length && this.siblingElement.find(this.settings.counterSelector).text(t.up)) : (this.counterElement.text(t.up), this.siblingElement.length && this.siblingElement.find(this.settings.counterSelector).text(t.down)), n.trigger("WordpressUlikeCounterUpdated", [this.buttonElement]);
|
168 |
-
},
|
169 |
-
_updateLikers: function _updateLikers() {
|
170 |
-
this.settings.displayLikers && !this.likersElement.length && (this.generalElement.addClass("wp_ulike_is_getting_likers_list"), this._ajax({
|
171 |
-
action: "wp_ulike_get_likers",
|
172 |
-
id: this.settings.ID,
|
173 |
-
nonce: this.settings.nonce,
|
174 |
-
type: this.settings.type,
|
175 |
-
displayLikers: this.settings.displayLikers,
|
176 |
-
disablePophover: this.settings.disablePophover
|
177 |
-
}, function (t) {
|
178 |
-
this.generalElement.removeClass("wp_ulike_is_getting_likers_list"), t.success && this._updateLikersMarkup(t.data);
|
179 |
-
}.bind(this)));
|
180 |
-
},
|
181 |
-
_updateLikersMarkup: function _updateLikersMarkup(e) {
|
182 |
-
this.likersElement.length || (this.likersElement = t("<div>", {
|
183 |
-
"class": e["class"]
|
184 |
-
}).appendTo(this.$element)), e.template ? this.likersElement.show().html(e.template) : this.likersElement.hide();
|
185 |
-
},
|
186 |
-
_updateSameButtons: function _updateSameButtons() {
|
187 |
-
var t = void 0 !== this.settings.factor ? "_" + this.settings.factor : "";
|
188 |
-
this.sameButtons = n.find(".wp_" + this.settings.type.toLowerCase() + t + "_btn_" + this.settings.ID), this.sameButtons.length > 1 && (this.buttonElement = this.sameButtons, this.generalElement = this.buttonElement.closest(this.settings.generalSelector), this.counterElement = this.generalElement.find(this.settings.counterSelector));
|
189 |
-
},
|
190 |
-
_updateSameLikers: function _updateSameLikers() {
|
191 |
-
this.sameLikers = n.find(".wp_" + this.settings.type.toLowerCase() + "_likers_" + this.settings.ID), this.sameLikers.length > 1 && (this.likersElement = this.sameLikers);
|
192 |
-
},
|
193 |
-
_getLikersElement: function _getLikersElement() {
|
194 |
-
return this.likersElement;
|
195 |
-
},
|
196 |
-
_updateButton: function _updateButton(t, e) {
|
197 |
-
this.buttonElement.hasClass("wp_ulike_put_image") ? (this.buttonElement.toggleClass("image-unlike wp_ulike_btn_is_active"), this.siblingElement.length && this.siblingElement.find(this.settings.buttonSelector).removeClass("image-unlike wp_ulike_btn_is_active"), this.siblingButton.length && this.siblingButton.removeClass("image-unlike wp_ulike_btn_is_active")) : this.buttonElement.hasClass("wp_ulike_put_text") && null !== t && ("object" != _typeof(t) ? this.buttonElement.find("span").html(t) : "down" === this.settings.factor ? (this.buttonElement.find("span").html(t.down), this.siblingElement.length && this.siblingElement.find(this.settings.buttonSelector).find("span").html(t.up)) : (this.buttonElement.find("span").html(t.up), this.siblingElement.length && this.siblingElement.find(this.settings.buttonSelector).find("span").html(t.down)));
|
198 |
-
},
|
199 |
-
_sendNotification: function _sendNotification(e, s) {
|
200 |
-
"1" === wp_ulike_params.notifications && t(i.body).WordpressUlikeNotifications({
|
201 |
-
messageType: e,
|
202 |
-
messageText: s
|
203 |
-
});
|
204 |
-
}
|
205 |
-
}), t.fn.WordpressUlike = function (e) {
|
206 |
-
return this.each(function () {
|
207 |
-
t.data(this, "plugin_WordpressUlike") || t.data(this, "plugin_WordpressUlike", new o(this, e));
|
208 |
-
});
|
209 |
-
};
|
210 |
-
}(jQuery, window, document), function (t) {
|
211 |
-
t(function () {
|
212 |
-
t(this).bind("DOMNodeInserted", function (e) {
|
213 |
-
t(".wpulike").WordpressUlike();
|
214 |
-
});
|
215 |
-
}), t(".wpulike").WordpressUlike();
|
216 |
-
}(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/wp-ulike.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! WP ULike - v4.4.
|
2 |
* https://wpulike.com
|
3 |
* TechnoWich 2021;
|
4 |
*/
|
1 |
+
/*! WP ULike - v4.4.7
|
2 |
* https://wpulike.com
|
3 |
* TechnoWich 2021;
|
4 |
*/
|
assets/js/wp-ulike.min.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! WP ULike - v4.4.
|
2 |
* https://wpulike.com
|
3 |
* TechnoWich 2021;
|
4 |
*/
|
1 |
+
/*! WP ULike - v4.4.7
|
2 |
* https://wpulike.com
|
3 |
* TechnoWich 2021;
|
4 |
*/
|
dist/Gruntfile.dev.js
DELETED
@@ -1,463 +0,0 @@
|
|
1 |
-
'use strict';
|
2 |
-
|
3 |
-
module.exports = function (grunt) {
|
4 |
-
// load all grunt tasks matching the `grunt-*` pattern
|
5 |
-
require('load-grunt-tasks')(grunt);
|
6 |
-
|
7 |
-
require('time-grunt')(grunt);
|
8 |
-
|
9 |
-
grunt.initConfig({
|
10 |
-
pkg: grunt.file.readJSON('package.json'),
|
11 |
-
// Meta definitions
|
12 |
-
meta: {
|
13 |
-
project: "wp-ulike",
|
14 |
-
version: "<%= pkg.title || pkg.name %> - v<%= pkg.version %>",
|
15 |
-
copyright: "<%= pkg.author.name %> <%= grunt.template.today('yyyy') %>",
|
16 |
-
header: "/*\n" + " * <%= meta.version %>\n" + " * <%= pkg.homepage %>\n" + " *\n" + " * <%= pkg.description %>\n" + " *\n" + " * <%= meta.copyright %>" + " */\n",
|
17 |
-
phpheader: "\n" + " * @package <%= pkg.name %>\n" + " * @author <%= pkg.author.name %> <%= grunt.template.today('yyyy') %>\n" + " * @link <%= pkg.homepage %>",
|
18 |
-
buildDir: "build",
|
19 |
-
projectSubDir: '<%= meta.project %>',
|
20 |
-
buildPath: '<%= meta.buildDir %>/<%= meta.projectSubDir %>',
|
21 |
-
installableZipFile: '<%= meta.project %>',
|
22 |
-
// '<%= meta.project %>-installable'
|
23 |
-
zipBuildPath: '<%= meta.buildDir %>/<%= meta.installableZipFile %>.zip'
|
24 |
-
},
|
25 |
-
// javascript linting with jshint
|
26 |
-
jshint: {
|
27 |
-
options: {
|
28 |
-
jshintrc: '.jshintrc',
|
29 |
-
"force": true
|
30 |
-
},
|
31 |
-
gruntFile: {
|
32 |
-
// you can overrides global options for this target here
|
33 |
-
options: {},
|
34 |
-
files: {
|
35 |
-
src: ['Gruntfile.js']
|
36 |
-
}
|
37 |
-
},
|
38 |
-
frontJsScript: {
|
39 |
-
// you can overrides global options for this target here
|
40 |
-
options: {},
|
41 |
-
files: {
|
42 |
-
src: ['assets/js/wp-ulike.js']
|
43 |
-
}
|
44 |
-
}
|
45 |
-
},
|
46 |
-
// watch and compile scss files to css
|
47 |
-
compass: {
|
48 |
-
options: {
|
49 |
-
config: 'assets/sass/config.rb',
|
50 |
-
sassDir: 'assets/sass',
|
51 |
-
cssDir: 'assets/css',
|
52 |
-
sourcemap: false
|
53 |
-
},
|
54 |
-
back_dev: {
|
55 |
-
options: {
|
56 |
-
sassDir: 'admin/assets/sass',
|
57 |
-
cssDir: 'admin/assets/css/',
|
58 |
-
environment: 'development',
|
59 |
-
watch: true,
|
60 |
-
trace: true,
|
61 |
-
outputStyle: 'compact' // nested, expanded, compact, compressed.
|
62 |
-
|
63 |
-
}
|
64 |
-
},
|
65 |
-
back_build: {
|
66 |
-
options: {
|
67 |
-
sassDir: 'admin/assets/sass',
|
68 |
-
cssDir: 'admin/assets/css/',
|
69 |
-
environment: 'development',
|
70 |
-
watch: false,
|
71 |
-
trace: true,
|
72 |
-
outputStyle: 'expanded' // nested, expanded, compact, compressed.
|
73 |
-
|
74 |
-
}
|
75 |
-
},
|
76 |
-
front_dev: {
|
77 |
-
options: {
|
78 |
-
sassDir: 'assets/sass',
|
79 |
-
cssDir: 'assets/css',
|
80 |
-
specify: ['assets/sass/wp-ulike.scss'],
|
81 |
-
environment: 'development',
|
82 |
-
watch: true,
|
83 |
-
trace: true,
|
84 |
-
outputStyle: 'expanded' // nested, expanded, compact, compressed.
|
85 |
-
|
86 |
-
}
|
87 |
-
},
|
88 |
-
front_build: {
|
89 |
-
options: {
|
90 |
-
sassDir: 'assets/sass',
|
91 |
-
cssDir: 'assets/css',
|
92 |
-
specify: ['assets/sass/wp-ulike.scss'],
|
93 |
-
environment: 'development',
|
94 |
-
watch: false,
|
95 |
-
trace: true,
|
96 |
-
outputStyle: 'expanded' // nested, expanded, compact, compressed.
|
97 |
-
|
98 |
-
}
|
99 |
-
}
|
100 |
-
},
|
101 |
-
phplint: {
|
102 |
-
options: {
|
103 |
-
phpArgs: {
|
104 |
-
"-d": null,
|
105 |
-
"-f": null
|
106 |
-
}
|
107 |
-
},
|
108 |
-
all: {
|
109 |
-
src: ['*.php', '**/*.php', '!node_modules/**', '!vendor/**']
|
110 |
-
}
|
111 |
-
},
|
112 |
-
// Generate POT file
|
113 |
-
makepot: {
|
114 |
-
target: {
|
115 |
-
options: {
|
116 |
-
domainPath: 'languages',
|
117 |
-
mainFile: 'wp-ulike.php',
|
118 |
-
potFilename: 'wp-ulike.pot',
|
119 |
-
potHeaders: {
|
120 |
-
poedit: true,
|
121 |
-
'Report-Msgid-Bugs-To': 'https://wordpress.org/plugins/wp-ulike/',
|
122 |
-
'Last-Translator': 'Alimir <info@alimir.ir>',
|
123 |
-
'Language-Team': 'Alimir <info@alimir.ir>',
|
124 |
-
'x-poedit-keywordslist': '__;_e;__ngettext:1,2;__ngettext_noop:1,2;_n:1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_attr_ex:1,2c;esc_html_x',
|
125 |
-
'x-poedit-country': 'United States',
|
126 |
-
'x-textdomain-support': 'yes'
|
127 |
-
},
|
128 |
-
type: 'wp-plugin',
|
129 |
-
updatePoFiles: true
|
130 |
-
}
|
131 |
-
}
|
132 |
-
},
|
133 |
-
po2mo: {
|
134 |
-
files: {
|
135 |
-
src: 'languages/*.po',
|
136 |
-
expand: true
|
137 |
-
}
|
138 |
-
},
|
139 |
-
// Copy files from bower_component folder to right places
|
140 |
-
copy: {
|
141 |
-
// gMaps: {
|
142 |
-
// files: [
|
143 |
-
// {
|
144 |
-
// expand: true, // Enable dynamic expansion.
|
145 |
-
// cwd: '<%= pkg.bower.components %>jqvmap/dist', // Src matches are relative to this path.
|
146 |
-
// src: ['jquery.vmap.min.js', 'maps/jquery.vmap.world.js'], // Actual pattern(s) to match.
|
147 |
-
// dest: 'admin/assets/js/src/plugins' // Destination path prefix.
|
148 |
-
// }
|
149 |
-
// ]
|
150 |
-
// },
|
151 |
-
chartjs: {
|
152 |
-
files: [{
|
153 |
-
expand: true,
|
154 |
-
// Enable dynamic expansion.
|
155 |
-
cwd: 'node_modules/chart.js/dist',
|
156 |
-
// Src matches are relative to this path.
|
157 |
-
src: ['Chart.min.js'],
|
158 |
-
// Actual pattern(s) to match.
|
159 |
-
dest: 'admin/assets/js/src/plugins/' // Destination path prefix.
|
160 |
-
|
161 |
-
}]
|
162 |
-
},
|
163 |
-
vueJs: {
|
164 |
-
files: [{
|
165 |
-
expand: true,
|
166 |
-
// Enable dynamic expansion.
|
167 |
-
cwd: 'node_modules/vue/dist',
|
168 |
-
// Src matches are relative to this path.
|
169 |
-
src: ['vue.min.js', 'vue.js'],
|
170 |
-
// Actual pattern(s) to match.
|
171 |
-
dest: 'admin/assets/js/solo/vue/' // Destination path prefix.
|
172 |
-
|
173 |
-
}]
|
174 |
-
},
|
175 |
-
matchHeight: {
|
176 |
-
files: [{
|
177 |
-
expand: true,
|
178 |
-
// Enable dynamic expansion.
|
179 |
-
cwd: 'node_modules/jquery-match-height/dist',
|
180 |
-
// Src matches are relative to this path.
|
181 |
-
src: ['jquery.matchHeight-min.js'],
|
182 |
-
// Actual pattern(s) to match.
|
183 |
-
dest: 'admin/assets/js/src/plugins/' // Destination path prefix.
|
184 |
-
|
185 |
-
}]
|
186 |
-
}
|
187 |
-
},
|
188 |
-
// merge js files
|
189 |
-
concat: {
|
190 |
-
frontJsScripts: {
|
191 |
-
options: {
|
192 |
-
banner: "/*! <%= meta.version %>\n" + " * <%= pkg.homepage %>\n" + " * <%= meta.copyright %>;\n" + " */\n",
|
193 |
-
process: function process(src, filepath) {
|
194 |
-
var separator = "\n\n/* ================== " + filepath + " =================== */\n\n\n";
|
195 |
-
return (separator + src).replace(/;\s*$/, "") + ";"; // make sure always a semicolon is at the end
|
196 |
-
}
|
197 |
-
},
|
198 |
-
src: ['assets/js/src/tooltip.js', 'assets/js/src/wordpress-ulike-notifications.js', 'assets/js/src/wordpress-ulike.js', 'assets/js/src/scripts.js'],
|
199 |
-
dest: 'assets/js/wp-ulike.js'
|
200 |
-
},
|
201 |
-
adminJsPlugins: {
|
202 |
-
options: {
|
203 |
-
banner: "/*! <%= meta.version %>\n" + " * <%= pkg.homepage %>\n" + " * <%= meta.copyright %>;\n" + " */\n",
|
204 |
-
process: function process(src, filepath) {
|
205 |
-
var separator = "\n\n/* ================== " + filepath + " =================== */\n\n\n";
|
206 |
-
return (separator + src).replace(/;\s*$/, "") + ";"; // make sure always a semicolon is at the end
|
207 |
-
}
|
208 |
-
},
|
209 |
-
src: ['node_modules/chart.js/dist/Chart.js', 'node_modules/jquery-match-height/dist/jquery.matchHeight.js'],
|
210 |
-
dest: 'admin/assets/js/plugins.js'
|
211 |
-
} // adminJsScripts: {
|
212 |
-
// options: {
|
213 |
-
// banner: "/*! <%= meta.version %>\n" +
|
214 |
-
// " * <%= pkg.homepage %>\n" +
|
215 |
-
// " * <%= meta.copyright %>;\n" +
|
216 |
-
// " */\n",
|
217 |
-
// process: function(src, filepath) {
|
218 |
-
// var separator = "\n\n/* ================== " + filepath + " =================== */\n\n\n";
|
219 |
-
// return (separator + src).replace(/;\s*$/, "") + ";"; // make sure always a semicolon is at the end
|
220 |
-
// },
|
221 |
-
// },
|
222 |
-
// src: [
|
223 |
-
// 'admin/assets/js/src/*.js',
|
224 |
-
// ],
|
225 |
-
// dest: 'admin/assets/js/scripts.js'
|
226 |
-
// }
|
227 |
-
|
228 |
-
},
|
229 |
-
// css minify
|
230 |
-
cssmin: {
|
231 |
-
options: {
|
232 |
-
keepSpecialComments: 1
|
233 |
-
},
|
234 |
-
target: {
|
235 |
-
files: {
|
236 |
-
'assets/css/wp-ulike.min.css': ['assets/css/wp-ulike.css']
|
237 |
-
}
|
238 |
-
}
|
239 |
-
},
|
240 |
-
clean: {
|
241 |
-
build: ['<%= meta.buildPath %>', '<%= meta.zipBuildPath %>'],
|
242 |
-
version: ['build/*.txt']
|
243 |
-
},
|
244 |
-
// JS minification
|
245 |
-
uglify: {
|
246 |
-
options: {
|
247 |
-
mangle: true,
|
248 |
-
preserveComments: 'some'
|
249 |
-
},
|
250 |
-
frontJsScripts: {
|
251 |
-
src: '<%= concat.frontJsScripts.dest %>',
|
252 |
-
dest: 'assets/js/wp-ulike.min.js'
|
253 |
-
}
|
254 |
-
},
|
255 |
-
// JS minification
|
256 |
-
terser: {
|
257 |
-
options: {},
|
258 |
-
main: {
|
259 |
-
files: {
|
260 |
-
'assets/js/wp-ulike.min.js': ['<%= concat.frontJsScripts.dest %>'],
|
261 |
-
'admin/assets/js/plugins.js': ['<%= concat.adminJsPlugins.dest %>']
|
262 |
-
}
|
263 |
-
}
|
264 |
-
},
|
265 |
-
preprocess: {
|
266 |
-
options: {
|
267 |
-
context: {
|
268 |
-
VERSION: "<%= pkg.version %>",
|
269 |
-
DEV: true,
|
270 |
-
TODO: true,
|
271 |
-
LITE: false,
|
272 |
-
PRO: false,
|
273 |
-
HEADER: "<%= meta.phpheader %>"
|
274 |
-
}
|
275 |
-
},
|
276 |
-
pro: {
|
277 |
-
src: ['<%= meta.buildPath %>/**/*.php', '<%= meta.buildPath %>/**/*.css', '<%= meta.buildPath %>/README.txt'],
|
278 |
-
options: {
|
279 |
-
inline: true,
|
280 |
-
context: {
|
281 |
-
DEV: false,
|
282 |
-
TODO: false,
|
283 |
-
LITE: false,
|
284 |
-
PRO: true
|
285 |
-
}
|
286 |
-
}
|
287 |
-
},
|
288 |
-
liteOfficial: {
|
289 |
-
src: ['<%= meta.buildPath %>/**/*.php', '<%= meta.buildPath %>/**/*.css', '<%= meta.buildPath %>/README.txt'],
|
290 |
-
options: {
|
291 |
-
inline: true,
|
292 |
-
context: {
|
293 |
-
DEV: false,
|
294 |
-
TODO: false,
|
295 |
-
LITE: true,
|
296 |
-
PRO: false
|
297 |
-
}
|
298 |
-
}
|
299 |
-
}
|
300 |
-
},
|
301 |
-
shell: {
|
302 |
-
install: {
|
303 |
-
command: "brew install jpegoptim; brew install pngquant; mkdir <%= meta.buildPath %>"
|
304 |
-
},
|
305 |
-
// Sync package.json version with git repo version
|
306 |
-
updateVersion: {
|
307 |
-
command: 'npm version $(git describe --tags `git rev-list --tags --max-count=1`);'
|
308 |
-
},
|
309 |
-
// Increase package.json version one step
|
310 |
-
bumpVersion: {
|
311 |
-
command: 'npm version patch'
|
312 |
-
},
|
313 |
-
cleanBuildDotFiles: {
|
314 |
-
command: ' find <%= meta.buildDir %> -name ".DS_Store" -delete' // exclude dotfiles
|
315 |
-
|
316 |
-
},
|
317 |
-
zipBuild: {
|
318 |
-
command: 'cd <%= meta.buildDir %>; zip -FSr -9 <%= meta.installableZipFile %> <%= meta.projectSubDir %> -x */\.*; cd ..;' // exclude dotfiles
|
319 |
-
|
320 |
-
},
|
321 |
-
zipDlPack: {
|
322 |
-
command: 'cd <%= meta.buildDir %>; zip -FSr -9 <%= meta.project %>-download-package * -x /<%= meta.projectSubDir %>/* */\.*; cd ..;' // exclude dotfiles
|
323 |
-
|
324 |
-
},
|
325 |
-
createTextVersion: {
|
326 |
-
command: 'echo Latest version: v<%= pkg.version %> >> <%= meta.buildDir %>/<%= pkg.version %>.txt'
|
327 |
-
},
|
328 |
-
findLitePngs: {
|
329 |
-
command: "find ./<%= meta.buildPath %>/ -name '*.png'"
|
330 |
-
},
|
331 |
-
compressLitePngs: {
|
332 |
-
command: "find ./<%= meta.buildPath %>/ -name '*.png' -exec pngquant --speed 3 --quality=65-80 --skip-if-larger --ext .png --force 256 {} \\;"
|
333 |
-
},
|
334 |
-
getLitePngsSize: {
|
335 |
-
command: "find ./<%= meta.buildPath %>/ -name '*.png' -exec du -ch {} + | grep total$ "
|
336 |
-
},
|
337 |
-
findLiteJpgs: {
|
338 |
-
command: "find ./<%= meta.buildPath %>/ -name '*.jpg'"
|
339 |
-
},
|
340 |
-
compressLiteJpgs: {
|
341 |
-
command: "find ./<%= meta.buildPath %>/ -name '*.jpg' -exec jpegoptim -m80 -o -p {} \\;"
|
342 |
-
},
|
343 |
-
getLiteJpgsSize: {
|
344 |
-
command: "find ./<%= meta.buildPath %>/ -name '*.jpg' -exec du -ch {} + | grep total$ "
|
345 |
-
}
|
346 |
-
},
|
347 |
-
// Running multiple blocking tasks
|
348 |
-
concurrent: {
|
349 |
-
watch_frontend_scss: {
|
350 |
-
tasks: ['compass_dev', 'watch', 'compass:front_dev'],
|
351 |
-
options: {
|
352 |
-
logConcurrentOutput: true
|
353 |
-
}
|
354 |
-
}
|
355 |
-
},
|
356 |
-
// watch for changes and trigger sass, jshint, uglify and livereload
|
357 |
-
watch: {
|
358 |
-
concat_front_js_scripts: {
|
359 |
-
files: ['assets/js/src/*.js'],
|
360 |
-
tasks: ['concat:frontJsScripts']
|
361 |
-
},
|
362 |
-
concat_admin_js_plugins: {
|
363 |
-
files: ['admin/assets/js/src/plugins/**/*.js'],
|
364 |
-
tasks: ['concat:adminJsPlugins']
|
365 |
-
},
|
366 |
-
// concat_admin_js_scripts: {
|
367 |
-
// files: ['admin/assets/js/src/*.js'],
|
368 |
-
// tasks: ['concat:adminJsScripts']
|
369 |
-
// },
|
370 |
-
livereload: {
|
371 |
-
options: {
|
372 |
-
livereload: 35985
|
373 |
-
},
|
374 |
-
files: ['*.css', 'assets/css/*.css', 'assets/js/src/*.js', 'assets/js/*.js', 'assets/img/**/*.{png,jpg,jpeg,gif,webp,svg}']
|
375 |
-
}
|
376 |
-
},
|
377 |
-
wp_deploy: {
|
378 |
-
deploy: {
|
379 |
-
options: {
|
380 |
-
plugin_slug: '<%= meta.project %>',
|
381 |
-
svn_user: 'alimir',
|
382 |
-
build_dir: '<%= meta.buildPath %>',
|
383 |
-
//relative path to your build directory
|
384 |
-
assets_dir: 'wp-assets' //relative path to your assets directory (optional).
|
385 |
-
|
386 |
-
}
|
387 |
-
}
|
388 |
-
},
|
389 |
-
// deploy via rsync
|
390 |
-
deploy: {
|
391 |
-
options: {
|
392 |
-
args: ["--verbose --delete-after"],
|
393 |
-
// z:compress while transfering data, P: display progress
|
394 |
-
exclude: ['.git*', 'node_modules', 'Gruntfile.js', 'package.json', 'composer.json', 'assets/js/src', 'admin/assets/js/src', 'readme.md', '.jshintrc', 'build', '.*', '.ds_store', 'package-lock.json', 'config.rb', 'assets/sass/', 'admin/assets/sass/', 'deploy.sh', 'wp-assets', 'docs', 'README.md', 'SUMMARY.md'],
|
395 |
-
recursive: true,
|
396 |
-
syncDestIgnoreExcl: true
|
397 |
-
},
|
398 |
-
build: {
|
399 |
-
options: {
|
400 |
-
src: "./",
|
401 |
-
dest: "<%= meta.buildPath %>"
|
402 |
-
}
|
403 |
-
},
|
404 |
-
prod_ir: {
|
405 |
-
options: {
|
406 |
-
exclude: [],
|
407 |
-
src: "<%= meta.buildPath %>/",
|
408 |
-
dest: "/home/wpulike.ir/public_html/wp-content/plugins/<%= meta.project %>/",
|
409 |
-
host: "root@78.46.117.192"
|
410 |
-
}
|
411 |
-
},
|
412 |
-
prod: {
|
413 |
-
options: {
|
414 |
-
exclude: [],
|
415 |
-
src: "<%= meta.buildPath %>/",
|
416 |
-
dest: "/home/wpulike.com/public_html/wp-content/plugins/<%= meta.project %>/",
|
417 |
-
host: "root@159.69.92.197"
|
418 |
-
}
|
419 |
-
},
|
420 |
-
sandbox: {
|
421 |
-
options: {
|
422 |
-
exclude: [],
|
423 |
-
src: "<%= meta.buildPath %>/",
|
424 |
-
dest: "/home/sandbox.wpulike.com/public_html/wp-content/plugins/<%= meta.project %>/",
|
425 |
-
host: "root@159.69.92.197"
|
426 |
-
}
|
427 |
-
},
|
428 |
-
lite: {
|
429 |
-
options: {
|
430 |
-
exclude: ['.git*', 'node_modules', '.sass-cache', 'Gruntfile.js', 'package.json', 'composer.json', '_devDependencies', 'assets/js/src', 'admin/assets/js/src', 'readme.md', '.jshintrc', 'build', '.*', '.ds_store', 'package-lock.json', 'bower.json', 'config.rb', 'assets/sass/', 'admin/assets/sass/', 'deploy.sh', 'docs', 'wp-assets', 'README.md', 'SUMMARY.md'],
|
431 |
-
src: ['./'],
|
432 |
-
dest: "<%= meta.buildPath %>"
|
433 |
-
}
|
434 |
-
}
|
435 |
-
}
|
436 |
-
});
|
437 |
-
grunt.registerTask('install', ['shell:install']);
|
438 |
-
grunt.registerTask('compress', ['shell:compressLitePngs', 'shell:compressLiteJpgs']);
|
439 |
-
grunt.registerTask('buildVersion', ['clean:version', 'shell:createTextVersion']); // rename tasks
|
440 |
-
|
441 |
-
grunt.renameTask('rsync', 'deploy'); // phplint
|
442 |
-
|
443 |
-
grunt.registerTask("php", ["phplint"]); // register task
|
444 |
-
|
445 |
-
grunt.registerTask('syncversion', ['shell:updateVersion']);
|
446 |
-
grunt.registerTask('bump', ['shell:bumpVersion']);
|
447 |
-
grunt.registerTask('i18n', ['makepot', 'po2mo']);
|
448 |
-
grunt.registerTask('compass_dev', ['compass:back_dev']); // compress the product in one pack
|
449 |
-
|
450 |
-
grunt.registerTask('pack', ['shell:zipBuild']); // deploy the lite version in /build folder
|
451 |
-
|
452 |
-
grunt.registerTask('beta', ['clean:build', 'compass:front_build', 'compass:back_build', 'cssmin', 'deploy:lite', 'shell:cleanBuildDotFiles', 'compress']); // build the final lite version in /build folder and pack the product
|
453 |
-
|
454 |
-
grunt.registerTask('build', ['concat', 'terser', 'beta', 'preprocess:liteOfficial', 'buildVersion', 'pack']);
|
455 |
-
grunt.registerTask('release', ['build', 'wp_deploy:deploy']); // register task
|
456 |
-
|
457 |
-
grunt.registerTask('default', ['concat', 'cssmin', 'terser']);
|
458 |
-
grunt.registerTask('dev', ['concurrent']);
|
459 |
-
grunt.registerTask('update_dep', ['copy', 'concat']);
|
460 |
-
grunt.registerTask('product', ['build', 'deploy:prod']);
|
461 |
-
grunt.registerTask('sandbox', ['build', 'deploy:sandbox']);
|
462 |
-
grunt.registerTask('product_fa', ['build', 'deploy:prod_ir']);
|
463 |
-
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/action.php
ADDED
@@ -0,0 +1,171 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WP ULIKE Register Hook CLASS
|
4 |
+
*
|
5 |
+
*
|
6 |
+
* @package wp-ulike
|
7 |
+
* @author TechnoWich 2021
|
8 |
+
* @link https://wpulike.com
|
9 |
+
*/
|
10 |
+
|
11 |
+
// If this file is called directly, abort.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit; // Exit if accessed directly.
|
14 |
+
}
|
15 |
+
|
16 |
+
if ( ! class_exists( 'wp_ulike_register_action_hook' ) ) :
|
17 |
+
|
18 |
+
class wp_ulike_register_action_hook {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Instance of this class.
|
22 |
+
*
|
23 |
+
* @var object
|
24 |
+
*/
|
25 |
+
protected static $instance = null;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Initialize the plugin
|
29 |
+
*
|
30 |
+
* @since 1.0.0
|
31 |
+
*/
|
32 |
+
private function __construct() {
|
33 |
+
add_action( 'wpmu_new_blog', array( $this, 'activate_new_site' ) );
|
34 |
+
}
|
35 |
+
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Fired when the plugin is activated.
|
39 |
+
*
|
40 |
+
* @param boolean $network_wide True if WPMU superadmin uses
|
41 |
+
* "Network Activate" action, false if
|
42 |
+
* WPMU is disabled or plugin is
|
43 |
+
* activated on an individual blog.
|
44 |
+
*/
|
45 |
+
public static function activate( $network_wide ) {
|
46 |
+
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
|
47 |
+
if ( $network_wide ) {
|
48 |
+
// Get all blog ids
|
49 |
+
$blog_ids = self::get_blog_ids();
|
50 |
+
foreach ( $blog_ids as $blog_id ) {
|
51 |
+
|
52 |
+
switch_to_blog( $blog_id );
|
53 |
+
self::single_activate();
|
54 |
+
}
|
55 |
+
restore_current_blog();
|
56 |
+
} else {
|
57 |
+
self::single_activate();
|
58 |
+
}
|
59 |
+
} else {
|
60 |
+
self::single_activate();
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Fired when the plugin is deactivated.
|
66 |
+
*
|
67 |
+
* @param boolean $network_wide True if WPMU superadmin uses
|
68 |
+
* "Network Deactivate" action, false if
|
69 |
+
* WPMU is disabled or plugin is
|
70 |
+
* deactivated on an individual blog.
|
71 |
+
*/
|
72 |
+
public static function deactivate( $network_wide ) {
|
73 |
+
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
|
74 |
+
if ( $network_wide ) {
|
75 |
+
// Get all blog ids
|
76 |
+
$blog_ids = self::get_blog_ids();
|
77 |
+
foreach ( $blog_ids as $blog_id ) {
|
78 |
+
switch_to_blog( $blog_id );
|
79 |
+
self::single_deactivate();
|
80 |
+
}
|
81 |
+
restore_current_blog();
|
82 |
+
} else {
|
83 |
+
self::single_deactivate();
|
84 |
+
}
|
85 |
+
} else {
|
86 |
+
self::single_deactivate();
|
87 |
+
}
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Fired for each blog when the plugin is activated.
|
92 |
+
*/
|
93 |
+
private static function single_activate() {
|
94 |
+
// Init activator class
|
95 |
+
if( ! class_exists('wp_ulike_activator') ){
|
96 |
+
require_once WP_ULIKE_INC_DIR . '/classes/class-wp-ulike-activator.php';
|
97 |
+
}
|
98 |
+
wp_ulike_activator::get_instance()::activate();
|
99 |
+
|
100 |
+
// Fire action
|
101 |
+
do_action( 'wp_ulike_activated', get_current_blog_id() );
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
* Fired for each blog when the plugin is deactivated.
|
106 |
+
*/
|
107 |
+
private static function single_deactivate() {
|
108 |
+
// Init activator class
|
109 |
+
if( ! class_exists('wp_ulike_deactivator') ){
|
110 |
+
require_once WP_ULIKE_INC_DIR . '/classes/class-wp-ulike-deactivator.php';
|
111 |
+
}
|
112 |
+
// Init deactivator class
|
113 |
+
wp_ulike_deactivator::deactivate();
|
114 |
+
|
115 |
+
// Fire action
|
116 |
+
do_action( 'wp_ulike_deactivated' );
|
117 |
+
}
|
118 |
+
|
119 |
+
/**
|
120 |
+
* Fired when a new site is activated with a WPMU environment.
|
121 |
+
*
|
122 |
+
* @param int $blog_id ID of the new blog.
|
123 |
+
*/
|
124 |
+
public function activate_new_site( $blog_id ) {
|
125 |
+
if ( 1 !== did_action( 'wpmu_new_blog' ) ) {
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
|
129 |
+
switch_to_blog( $blog_id );
|
130 |
+
self::single_activate();
|
131 |
+
restore_current_blog();
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Get all blog ids of blogs in the current network that are:
|
136 |
+
* - not archived
|
137 |
+
* - not spam
|
138 |
+
* - not deleted
|
139 |
+
*
|
140 |
+
* @return array|false The blog ids, false if no matches.
|
141 |
+
*/
|
142 |
+
private static function get_blog_ids() {
|
143 |
+
global $wpdb;
|
144 |
+
|
145 |
+
// get an array of blog ids
|
146 |
+
$sql = "SELECT blog_id FROM $wpdb->blogs
|
147 |
+
WHERE archived = '0' AND spam = '0'
|
148 |
+
AND deleted = '0'";
|
149 |
+
|
150 |
+
return $wpdb->get_col( $sql );
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Return an instance of this class.
|
155 |
+
*
|
156 |
+
* @return object A single instance of this class.
|
157 |
+
*/
|
158 |
+
public static function get_instance() {
|
159 |
+
// If the single instance hasn't been set, set it now.
|
160 |
+
if ( null == self::$instance ) {
|
161 |
+
self::$instance = new self;
|
162 |
+
}
|
163 |
+
|
164 |
+
return self::$instance;
|
165 |
+
}
|
166 |
+
|
167 |
+
}
|
168 |
+
|
169 |
+
endif;
|
170 |
+
|
171 |
+
wp_ulike_register_action_hook::get_instance();
|
includes/classes/class-wp-ulike-activator.php
ADDED
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WP ULike Activator
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author TechnoWich 2021
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
+
}
|
14 |
+
|
15 |
+
class wp_ulike_activator {
|
16 |
+
|
17 |
+
/**
|
18 |
+
* Instance of this class.
|
19 |
+
*
|
20 |
+
* @var object
|
21 |
+
*/
|
22 |
+
protected static $instance = null;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Other variables
|
26 |
+
*/
|
27 |
+
protected static $tables, $database;
|
28 |
+
|
29 |
+
public function __construct(){
|
30 |
+
global $wpdb;
|
31 |
+
|
32 |
+
self::$database = $wpdb;
|
33 |
+
self::$tables = array(
|
34 |
+
'posts' => self::$database->prefix . "ulike",
|
35 |
+
'comments' => self::$database->prefix . "ulike_comments",
|
36 |
+
'activities' => self::$database->prefix . "ulike_activities",
|
37 |
+
'forums' => self::$database->prefix . "ulike_forums",
|
38 |
+
'meta' => self::$database->prefix . "ulike_meta"
|
39 |
+
);
|
40 |
+
}
|
41 |
+
|
42 |
+
|
43 |
+
public static function activate() {
|
44 |
+
self::install_tables();
|
45 |
+
}
|
46 |
+
|
47 |
+
public static function install_tables(){
|
48 |
+
|
49 |
+
$max_index_length = 191;
|
50 |
+
$charset_collate = '';
|
51 |
+
|
52 |
+
if ( ! empty( $wpdb->charset ) ) {
|
53 |
+
$charset_collate = "DEFAULT CHARACTER SET " . self::$database->charset;
|
54 |
+
}
|
55 |
+
if ( ! empty( self::$database->collate ) ) {
|
56 |
+
$charset_collate .= " COLLATE " . self::$database->collate;
|
57 |
+
}
|
58 |
+
|
59 |
+
if( ! function_exists('maybe_create_table') ){
|
60 |
+
// Add one library admin function for next function
|
61 |
+
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
62 |
+
}
|
63 |
+
|
64 |
+
// Extract array to variables
|
65 |
+
extract( self::$tables );
|
66 |
+
|
67 |
+
// Posts table
|
68 |
+
maybe_create_table( $posts, "CREATE TABLE IF NOT EXISTS `{$posts}` (
|
69 |
+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
70 |
+
`post_id` bigint(20) NOT NULL,
|
71 |
+
`date_time` datetime NOT NULL,
|
72 |
+
`ip` varchar(100) NOT NULL,
|
73 |
+
`user_id` varchar(100) NOT NULL,
|
74 |
+
`status` varchar(30) NOT NULL,
|
75 |
+
PRIMARY KEY (`id`),
|
76 |
+
KEY `post_id` (`post_id`),
|
77 |
+
KEY `date_time` (`date_time`),
|
78 |
+
KEY `user_id` (`user_id`),
|
79 |
+
KEY `status` (`status`)
|
80 |
+
) $charset_collate AUTO_INCREMENT=1;" );
|
81 |
+
|
82 |
+
// Comments table
|
83 |
+
maybe_create_table( $comments, "CREATE TABLE IF NOT EXISTS `{$comments}` (
|
84 |
+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
85 |
+
`comment_id` bigint(20) NOT NULL,
|
86 |
+
`date_time` datetime NOT NULL,
|
87 |
+
`ip` varchar(100) NOT NULL,
|
88 |
+
`user_id` varchar(100) NOT NULL,
|
89 |
+
`status` varchar(30) NOT NULL,
|
90 |
+
PRIMARY KEY (`id`),
|
91 |
+
KEY `comment_id` (`comment_id`),
|
92 |
+
KEY `date_time` (`date_time`),
|
93 |
+
KEY `user_id` (`user_id`),
|
94 |
+
KEY `status` (`status`)
|
95 |
+
) $charset_collate AUTO_INCREMENT=1;" );
|
96 |
+
|
97 |
+
// Activities table
|
98 |
+
maybe_create_table( $activities, "CREATE TABLE IF NOT EXISTS `{$activities}` (
|
99 |
+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
100 |
+
`activity_id` bigint(20) NOT NULL,
|
101 |
+
`date_time` datetime NOT NULL,
|
102 |
+
`ip` varchar(100) NOT NULL,
|
103 |
+
`user_id` varchar(100) NOT NULL,
|
104 |
+
`status` varchar(30) NOT NULL,
|
105 |
+
PRIMARY KEY (`id`),
|
106 |
+
KEY `activity_id` (`activity_id`),
|
107 |
+
KEY `date_time` (`date_time`),
|
108 |
+
KEY `user_id` (`user_id`),
|
109 |
+
KEY `status` (`status`)
|
110 |
+
) $charset_collate AUTO_INCREMENT=1;" );
|
111 |
+
|
112 |
+
// Forums table
|
113 |
+
maybe_create_table( $forums, "CREATE TABLE IF NOT EXISTS `{$forums}` (
|
114 |
+
`id` bigint(20) NOT NULL AUTO_INCREMENT,
|
115 |
+
`topic_id` bigint(20) NOT NULL,
|
116 |
+
`date_time` datetime NOT NULL,
|
117 |
+
`ip` varchar(100) NOT NULL,
|
118 |
+
`user_id` varchar(100) NOT NULL,
|
119 |
+
`status` varchar(30) NOT NULL,
|
120 |
+
PRIMARY KEY (`id`),
|
121 |
+
KEY `topic_id` (`topic_id`),
|
122 |
+
KEY `date_time` (`date_time`),
|
123 |
+
KEY `user_id` (`user_id`),
|
124 |
+
KEY `status` (`status`)
|
125 |
+
) $charset_collate AUTO_INCREMENT=1;" );
|
126 |
+
|
127 |
+
// Meta values table
|
128 |
+
maybe_create_table( $meta, "CREATE TABLE IF NOT EXISTS `{$meta}` (
|
129 |
+
`meta_id` bigint(20) unsigned NOT NULL auto_increment,
|
130 |
+
`item_id` bigint(20) unsigned NOT NULL default '0',
|
131 |
+
`meta_group` varchar(100) default NULL,
|
132 |
+
`meta_key` varchar(255) default NULL,
|
133 |
+
`meta_value` longtext,
|
134 |
+
PRIMARY KEY (`meta_id`),
|
135 |
+
KEY `item_id` (`item_id`),
|
136 |
+
KEY `meta_group` (`meta_group`),
|
137 |
+
KEY `meta_key` (`meta_key`($max_index_length))
|
138 |
+
) $charset_collate AUTO_INCREMENT=1;" );
|
139 |
+
|
140 |
+
}
|
141 |
+
|
142 |
+
public static function upgrade_0(){
|
143 |
+
// Extract array to variables
|
144 |
+
extract( self::$tables );
|
145 |
+
|
146 |
+
// Upgrade Tables
|
147 |
+
if ( version_compare( get_option( 'wp_ulike_dbVersion', '1.6' ), WP_ULIKE_DB_VERSION, '<' ) ) {
|
148 |
+
// Posts ugrades
|
149 |
+
self::$database->query( "
|
150 |
+
ALTER TABLE $posts
|
151 |
+
ADD INDEX( `post_id`, `date_time`, `user_id`, `status`),
|
152 |
+
CHANGE `user_id` `user_id` VARCHAR(100) NOT NULL,
|
153 |
+
CHANGE `ip` `ip` VARCHAR(100) NOT NULL;
|
154 |
+
" );
|
155 |
+
// Comments ugrades
|
156 |
+
self::$database->query( "
|
157 |
+
ALTER TABLE $comments
|
158 |
+
ADD INDEX( `comment_id`, `date_time`, `user_id`, `status`),
|
159 |
+
CHANGE `user_id` `user_id` VARCHAR(100) NOT NULL,
|
160 |
+
CHANGE `ip` `ip` VARCHAR(100) NOT NULL;
|
161 |
+
" );
|
162 |
+
// BuddyPress ugrades
|
163 |
+
self::$database->query( "
|
164 |
+
ALTER TABLE $activities
|
165 |
+
ADD INDEX( `activity_id`, `date_time`, `user_id`, `status`),
|
166 |
+
CHANGE `user_id` `user_id` VARCHAR(100) NOT NULL,
|
167 |
+
CHANGE `ip` `ip` VARCHAR(100) NOT NULL;
|
168 |
+
" );
|
169 |
+
// bbPress upgrades
|
170 |
+
self::$database->query( "
|
171 |
+
ALTER TABLE $forums
|
172 |
+
ADD INDEX( `topic_id`, `date_time`, `user_id`, `status`),
|
173 |
+
CHANGE `user_id` `user_id` VARCHAR(100) NOT NULL,
|
174 |
+
CHANGE `ip` `ip` VARCHAR(100) NOT NULL;
|
175 |
+
" );
|
176 |
+
// Update db version
|
177 |
+
update_option( 'wp_ulike_dbVersion', WP_ULIKE_DB_VERSION );
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Return an instance of this class.
|
183 |
+
*
|
184 |
+
* @return object A single instance of this class.
|
185 |
+
*/
|
186 |
+
public static function get_instance() {
|
187 |
+
// If the single instance hasn't been set, set it now.
|
188 |
+
if ( null == self::$instance ) {
|
189 |
+
self::$instance = new self;
|
190 |
+
}
|
191 |
+
|
192 |
+
return self::$instance;
|
193 |
+
}
|
194 |
+
}
|
{inc → includes}/classes/class-wp-ulike-ajax-listener-base.php
RENAMED
@@ -1,4 +1,16 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
/**
|
4 |
* Base AJAX class
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* WP ULike AJAX Listener
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author TechnoWich 2021
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
+
}
|
14 |
|
15 |
/**
|
16 |
* Base AJAX class
|
{inc → includes}/classes/class-wp-ulike-cta-listener.php
RENAMED
@@ -1,4 +1,16 @@
|
|
1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
final class wp_ulike_cta_listener extends wp_ulike_ajax_listener_base {
|
4 |
|
@@ -159,9 +171,9 @@ final class wp_ulike_cta_listener extends wp_ulike_ajax_listener_base {
|
|
159 |
*/
|
160 |
private function validates(){
|
161 |
// Return false when ID not exist
|
162 |
-
if( empty( $this->data['id'] ) ) return false;
|
163 |
// Return false when nonce invalid
|
164 |
-
if( ! wp_verify_nonce( $this->data['nonce'], $this->data['type'] . $this->data['id'] ) && wp_ulike_is_cache_exist() ) return false;
|
165 |
|
166 |
return true;
|
167 |
}
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* WP ULike CTA Listener
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author TechnoWich 2021
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
+
}
|
14 |
|
15 |
final class wp_ulike_cta_listener extends wp_ulike_ajax_listener_base {
|
16 |
|
171 |
*/
|
172 |
private function validates(){
|
173 |
// Return false when ID not exist
|
174 |
+
if( empty( $this->data['id'] ) || empty( $this->data['type'] ) ) return false;
|
175 |
// Return false when nonce invalid
|
176 |
+
if( ! $this->user && ! wp_verify_nonce( $this->data['nonce'], $this->data['type'] . $this->data['id'] ) && ! wp_ulike_is_cache_exist() ) return false;
|
177 |
|
178 |
return true;
|
179 |
}
|
{inc → includes}/classes/class-wp-ulike-cta-process.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_cta_process' ) ) {
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_cta_process' ) ) {
|
{inc → includes}/classes/class-wp-ulike-cta-template.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_cta_template' ) ) {
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_cta_template' ) ) {
|
{inc → includes}/classes/class-wp-ulike-customizer.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_customizer' ) ) {
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_customizer' ) ) {
|
includes/classes/class-wp-ulike-deactivator.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WP ULike Deactivator
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author TechnoWich 2021
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
+
}
|
14 |
+
|
15 |
+
class wp_ulike_deactivator {
|
16 |
+
|
17 |
+
public static function deactivate() {
|
18 |
+
|
19 |
+
}
|
20 |
+
|
21 |
+
}
|
{inc → includes}/classes/class-wp-ulike-entities-process.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_entities_process' ) ) {
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_entities_process' ) ) {
|
{inc → includes}/classes/class-wp-ulike-frontend-assets.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_frontend_assets' ) ) {
|
@@ -24,6 +24,11 @@ if ( ! class_exists( 'wp_ulike_frontend_assets' ) ) {
|
|
24 |
* __construct
|
25 |
*/
|
26 |
function __construct() {
|
|
|
|
|
|
|
|
|
|
|
27 |
// If user has been disabled this page in options, then return.
|
28 |
if( ! is_wp_ulike( wp_ulike_get_option( 'disable_plugin_files' ), array(), true ) ) {
|
29 |
return;
|
@@ -31,8 +36,7 @@ if ( ! class_exists( 'wp_ulike_frontend_assets' ) ) {
|
|
31 |
// general assets
|
32 |
$this->load_styles();
|
33 |
$this->load_scripts();
|
34 |
-
|
35 |
-
|
36 |
|
37 |
/**
|
38 |
* Styles for admin
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike_frontend_assets' ) ) {
|
24 |
* __construct
|
25 |
*/
|
26 |
function __construct() {
|
27 |
+
// general assets
|
28 |
+
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue' ) );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function enqueue(){
|
32 |
// If user has been disabled this page in options, then return.
|
33 |
if( ! is_wp_ulike( wp_ulike_get_option( 'disable_plugin_files' ), array(), true ) ) {
|
34 |
return;
|
36 |
// general assets
|
37 |
$this->load_styles();
|
38 |
$this->load_scripts();
|
39 |
+
}
|
|
|
40 |
|
41 |
/**
|
42 |
* Styles for admin
|
{inc → includes}/classes/class-wp-ulike-mycred.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( class_exists( 'myCRED_Hook' ) ) :
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( class_exists( 'myCRED_Hook' ) ) :
|
{inc → includes}/classes/class-wp-ulike-setting-repo.php
RENAMED
@@ -1,5 +1,10 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
3 |
class wp_ulike_setting_repo {
|
4 |
|
5 |
protected static function getOption( $key, $default = NULL ){
|
1 |
<?php
|
2 |
|
3 |
+
// If this file is called directly, abort.
|
4 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
+
exit; // Exit if accessed directly.
|
6 |
+
}
|
7 |
+
|
8 |
class wp_ulike_setting_repo {
|
9 |
|
10 |
protected static function getOption( $key, $default = NULL ){
|
{inc → includes}/classes/class-wp-ulike-setting-type.php
RENAMED
@@ -1,5 +1,10 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
3 |
class wp_ulike_setting_type {
|
4 |
|
5 |
protected $typeSettings;
|
1 |
<?php
|
2 |
|
3 |
+
// If this file is called directly, abort.
|
4 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
+
exit; // Exit if accessed directly.
|
6 |
+
}
|
7 |
+
|
8 |
class wp_ulike_setting_type {
|
9 |
|
10 |
protected $typeSettings;
|
{inc → includes}/classes/class-wp-ulike-voters-listener.php
RENAMED
@@ -1,5 +1,10 @@
|
|
1 |
<?php
|
2 |
|
|
|
|
|
|
|
|
|
|
|
3 |
final class wp_ulike_voters_listener extends wp_ulike_ajax_listener_base {
|
4 |
|
5 |
public function __construct(){
|
@@ -86,8 +91,6 @@ final class wp_ulike_voters_listener extends wp_ulike_ajax_listener_base {
|
|
86 |
if( wp_ulike_setting_repo::restrictLikersBox( $this->settings_type->getType() ) && ! $this->user ) return false;
|
87 |
// Return false display is off
|
88 |
if( ! $this->data['displayLikers'] ) return false;
|
89 |
-
// Return false when nonce invalid
|
90 |
-
if( ! wp_verify_nonce( $this->data['nonce'], $this->data['type'] . $this->data['id'] ) && wp_ulike_is_cache_exist() ) return false;
|
91 |
|
92 |
return true;
|
93 |
}
|
1 |
<?php
|
2 |
|
3 |
+
// If this file is called directly, abort.
|
4 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
5 |
+
exit; // Exit if accessed directly.
|
6 |
+
}
|
7 |
+
|
8 |
final class wp_ulike_voters_listener extends wp_ulike_ajax_listener_base {
|
9 |
|
10 |
public function __construct(){
|
91 |
if( wp_ulike_setting_repo::restrictLikersBox( $this->settings_type->getType() ) && ! $this->user ) return false;
|
92 |
// Return false display is off
|
93 |
if( ! $this->data['displayLikers'] ) return false;
|
|
|
|
|
94 |
|
95 |
return true;
|
96 |
}
|
{inc → includes}/classes/class-wp-ulike.php
RENAMED
@@ -7,9 +7,9 @@
|
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
-
//
|
11 |
-
if ( ! defined('ABSPATH') ) {
|
12 |
-
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike' ) ) {
|
7 |
* @link https://wpulike.com
|
8 |
*/
|
9 |
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
12 |
+
exit; // Exit if accessed directly.
|
13 |
}
|
14 |
|
15 |
if ( ! class_exists( 'wp_ulike' ) ) {
|
{inc → includes}/functions/content-types.php
RENAMED
File without changes
|
{inc → includes}/functions/counter.php
RENAMED
File without changes
|
{inc → includes}/functions/general.php
RENAMED
File without changes
|
{inc → includes}/functions/meta.php
RENAMED
File without changes
|
{inc → includes}/functions/queries.php
RENAMED
File without changes
|
{inc → includes}/functions/templates.php
RENAMED
File without changes
|
{inc → includes}/functions/utilities.php
RENAMED
@@ -172,7 +172,7 @@ if( ! function_exists( 'wp_ulike_validate_ip' ) ){
|
|
172 |
* @return boolean
|
173 |
*/
|
174 |
function wp_ulike_validate_ip( $ip ) {
|
175 |
-
return filter_var( $ip, FILTER_VALIDATE_IP
|
176 |
}
|
177 |
}
|
178 |
|
172 |
* @return boolean
|
173 |
*/
|
174 |
function wp_ulike_validate_ip( $ip ) {
|
175 |
+
return filter_var( $ip, FILTER_VALIDATE_IP ) === false ? false : true;
|
176 |
}
|
177 |
}
|
178 |
|
{inc → includes}/hooks/frontend-ajax.php
RENAMED
File without changes
|
{inc → includes}/hooks/general.php
RENAMED
File without changes
|
{inc → includes}/hooks/shortcodes.php
RENAMED
File without changes
|
{inc → includes}/hooks/third-party.php
RENAMED
@@ -56,7 +56,6 @@ if( ! function_exists( 'wp_ulike_put_buddypress' ) ){
|
|
56 |
add_action( 'bp_activity_entry_content', 'wp_ulike_put_buddypress', 15 );
|
57 |
}
|
58 |
|
59 |
-
|
60 |
if( ! function_exists( 'wp_ulike_buddypress_activity_content_ajax_display' ) ){
|
61 |
/**
|
62 |
* BuddyPress activity content display for ajax load more
|
56 |
add_action( 'bp_activity_entry_content', 'wp_ulike_put_buddypress', 15 );
|
57 |
}
|
58 |
|
|
|
59 |
if( ! function_exists( 'wp_ulike_buddypress_activity_content_ajax_display' ) ){
|
60 |
/**
|
61 |
* BuddyPress activity content display for ajax load more
|
{inc → includes}/index.php
RENAMED
File without changes
|
includes/plugin.php
ADDED
@@ -0,0 +1,293 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WP ULIKE BASE CLASS
|
4 |
+
*
|
5 |
+
*
|
6 |
+
* @package wp-ulike
|
7 |
+
* @author TechnoWich 2021
|
8 |
+
* @link https://wpulike.com
|
9 |
+
*/
|
10 |
+
|
11 |
+
// If this file is called directly, abort.
|
12 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
13 |
+
exit; // Exit if accessed directly.
|
14 |
+
}
|
15 |
+
|
16 |
+
class WpUlikeInit {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Instance of this class.
|
20 |
+
*
|
21 |
+
* @since 3.1
|
22 |
+
*
|
23 |
+
* @var object
|
24 |
+
*/
|
25 |
+
protected static $instance = null;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Initialize the plugin
|
29 |
+
*
|
30 |
+
* @since 3.1
|
31 |
+
*/
|
32 |
+
private function __construct() {
|
33 |
+
// init plugin
|
34 |
+
$this->init();
|
35 |
+
|
36 |
+
// This hook is called once any activated plugins have been loaded.
|
37 |
+
add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
|
38 |
+
|
39 |
+
// Activate plugin when new blog is added
|
40 |
+
add_action( 'activated_plugin', array( $this, 'after_activation' ) );
|
41 |
+
|
42 |
+
$prefix = is_network_admin() ? 'network_admin_' : '';
|
43 |
+
add_filter( "{$prefix}plugin_action_links", array( $this, 'add_links' ), 10, 5 );
|
44 |
+
}
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Plugins loaded hook
|
48 |
+
*
|
49 |
+
* @return void
|
50 |
+
*/
|
51 |
+
public function plugins_loaded(){
|
52 |
+
// Upgrade database
|
53 |
+
if ( self::is_admin_backend() ) {
|
54 |
+
$this->maybe_upgrade_database();
|
55 |
+
}
|
56 |
+
// Load plugin text domain
|
57 |
+
$this->load_plugin_textdomain();
|
58 |
+
}
|
59 |
+
|
60 |
+
private function maybe_upgrade_database(){
|
61 |
+
$current_version = get_option( 'wp_ulike_dbVersion', '1.6' );
|
62 |
+
// Check database upgrade if needed
|
63 |
+
if ( version_compare( $current_version, '2.1', '<' ) ) {
|
64 |
+
wp_ulike_activator::get_instance()::upgrade_0();
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Init the plugin when WordPress Initialises.
|
70 |
+
*
|
71 |
+
* @return void
|
72 |
+
*/
|
73 |
+
public function init(){
|
74 |
+
// Define constant values
|
75 |
+
$this->define_constants();
|
76 |
+
|
77 |
+
// Include Files
|
78 |
+
$this->includes();
|
79 |
+
|
80 |
+
// Loaded action
|
81 |
+
do_action( 'wp_ulike_loaded' );
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Define constants
|
86 |
+
*
|
87 |
+
* @return void
|
88 |
+
*/
|
89 |
+
private function define_constants(){
|
90 |
+
// a custom directory in uploads directory for storing custom files. Default uploads/{TWT_DOMAIN}
|
91 |
+
$uploads = wp_get_upload_dir();
|
92 |
+
define( 'WP_ULIKE_CUSTOM_DIR' , $uploads['basedir'] . '/' . WP_ULIKE_SLUG );
|
93 |
+
}
|
94 |
+
|
95 |
+
/**
|
96 |
+
* Add admin links
|
97 |
+
*
|
98 |
+
* @param array $actions
|
99 |
+
* @param string $plugin_file
|
100 |
+
* @return array
|
101 |
+
*/
|
102 |
+
public function add_links( $actions, $plugin_file ) {
|
103 |
+
|
104 |
+
if ( $plugin_file === WP_ULIKE_BASENAME ) {
|
105 |
+
$settings = array('settings' => '<a href="admin.php?page=wp-ulike-settings">' . __('Settings', WP_ULIKE_SLUG) . '</a>');
|
106 |
+
$stats = array('stats' => '<a href="admin.php?page=wp-ulike-statistics">' . __('Statistics', WP_ULIKE_SLUG) . '</a>');
|
107 |
+
$about = array('about' => '<a href="admin.php?page=wp-ulike-about">' . __('About', WP_ULIKE_SLUG) . '</a>');
|
108 |
+
// Merge on actions array
|
109 |
+
$actions = array_merge( $about, $actions );
|
110 |
+
$actions = array_merge( $stats, $actions );
|
111 |
+
$actions = array_merge( $settings, $actions );
|
112 |
+
}
|
113 |
+
|
114 |
+
return $actions;
|
115 |
+
}
|
116 |
+
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Auto-load classes on demand to reduce memory consumption
|
120 |
+
*
|
121 |
+
* @param mixed $class
|
122 |
+
* @return void
|
123 |
+
*/
|
124 |
+
public function autoload( $class ) {
|
125 |
+
$path = null;
|
126 |
+
$class = strtolower( $class );
|
127 |
+
$file = 'class-' . str_replace( '_', '-', $class ) . '.php';
|
128 |
+
|
129 |
+
// the possible pathes containing classes
|
130 |
+
$possible_pathes = array(
|
131 |
+
WP_ULIKE_INC_DIR . '/classes/',
|
132 |
+
WP_ULIKE_ADMIN_DIR . '/classes/'
|
133 |
+
);
|
134 |
+
|
135 |
+
foreach ( $possible_pathes as $path ) {
|
136 |
+
if( is_readable( $path . $file ) ){
|
137 |
+
include_once( $path . $file );
|
138 |
+
return;
|
139 |
+
}
|
140 |
+
}
|
141 |
+
}
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Include Files
|
145 |
+
*
|
146 |
+
* @return void
|
147 |
+
*/
|
148 |
+
private function includes() {
|
149 |
+
// Auto-load classes on demand
|
150 |
+
if ( function_exists( "__autoload" ) ) {
|
151 |
+
spl_autoload_register( "__autoload" );
|
152 |
+
}
|
153 |
+
spl_autoload_register( array( $this, 'autoload' ) );
|
154 |
+
|
155 |
+
// load common functionalities
|
156 |
+
include_once( WP_ULIKE_INC_DIR . '/index.php' );
|
157 |
+
|
158 |
+
// Dashboard and Administrative Functionality
|
159 |
+
if ( self::is_admin_backend() ) {
|
160 |
+
// Load admin specific codes
|
161 |
+
include( WP_ULIKE_ADMIN_DIR . '/index.php' );
|
162 |
+
|
163 |
+
// Load AJAX specific codes on demand
|
164 |
+
if ( self::is_ajax() ){
|
165 |
+
include( WP_ULIKE_INC_DIR . '/hooks/frontend-ajax.php' );
|
166 |
+
include( WP_ULIKE_ADMIN_DIR . '/admin-ajax.php' );
|
167 |
+
}
|
168 |
+
}
|
169 |
+
|
170 |
+
// Load Frontend Functionality
|
171 |
+
if( self::is_frontend() ){
|
172 |
+
include( WP_ULIKE_INC_DIR . '/public/index.php' );
|
173 |
+
}
|
174 |
+
}
|
175 |
+
|
176 |
+
/**
|
177 |
+
* Is ajax
|
178 |
+
*
|
179 |
+
* @return bool
|
180 |
+
*/
|
181 |
+
public static function is_ajax() {
|
182 |
+
return ( function_exists( 'wp_doing_ajax' ) && wp_doing_ajax() ) || defined( 'DOING_AJAX' );
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Is admin
|
187 |
+
*
|
188 |
+
* @return bool
|
189 |
+
*/
|
190 |
+
public static function is_admin_backend() {
|
191 |
+
return is_admin();
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Is cron
|
196 |
+
*
|
197 |
+
* @return bool
|
198 |
+
*/
|
199 |
+
public static function is_cron() {
|
200 |
+
return ( function_exists( 'wp_doing_cron' ) && wp_doing_cron() ) || defined( 'DOING_CRON' );
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* Is rest
|
205 |
+
*
|
206 |
+
* @return bool
|
207 |
+
*/
|
208 |
+
public static function is_rest() {
|
209 |
+
return defined( 'REST_REQUEST' );
|
210 |
+
}
|
211 |
+
|
212 |
+
/**
|
213 |
+
* Is frontend
|
214 |
+
*
|
215 |
+
* @return bool
|
216 |
+
*/
|
217 |
+
public static function is_frontend() {
|
218 |
+
return ( ! self::is_admin_backend() || ! self::is_ajax() ) && ! self::is_cron() && ! self::is_rest();
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* Get Client IP address
|
223 |
+
*
|
224 |
+
* @return String
|
225 |
+
*/
|
226 |
+
public function get_ip() {
|
227 |
+
_deprecated_function( 'get_ip', '4.2.7', 'wp_ulike_get_user_ip' );
|
228 |
+
// Get user IP
|
229 |
+
return wp_ulike_get_user_ip();
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Plugin redirect after activation
|
234 |
+
*
|
235 |
+
* @param string $plugin
|
236 |
+
* @return void
|
237 |
+
*/
|
238 |
+
public function after_activation( $plugin ) {
|
239 |
+
if( $plugin == WP_ULIKE_BASENAME ) {
|
240 |
+
// Redirect to the about page
|
241 |
+
if( wp_safe_redirect( admin_url( 'admin.php?page=wp-ulike-about' ) ) ) exit;
|
242 |
+
}
|
243 |
+
}
|
244 |
+
|
245 |
+
/**
|
246 |
+
* Load the plugin text domain for translation.
|
247 |
+
*
|
248 |
+
* @return void
|
249 |
+
*/
|
250 |
+
public function load_plugin_textdomain() {
|
251 |
+
// Set filter for language directory
|
252 |
+
$lang_dir = WP_ULIKE_DIR . 'languages/';
|
253 |
+
$lang_dir = apply_filters( 'wp_ulike_languages_directory', $lang_dir );
|
254 |
+
|
255 |
+
// Traditional WordPress plugin locale filter
|
256 |
+
$locale = apply_filters( 'plugin_locale', get_locale(), WP_ULIKE_SLUG );
|
257 |
+
$mofile = sprintf( '%1$s-%2$s.mo', WP_ULIKE_SLUG, $locale );
|
258 |
+
|
259 |
+
// Setup paths to current locale file
|
260 |
+
$mofile_local = $lang_dir . $mofile;
|
261 |
+
$mofile_global = WP_LANG_DIR . '/plugins/' . WP_ULIKE_SLUG . '/' . $mofile;
|
262 |
+
|
263 |
+
if( file_exists( $mofile_global ) ) {
|
264 |
+
// Look in global /wp-content/languages/plugins/wp-ulike/ folder
|
265 |
+
load_textdomain( WP_ULIKE_SLUG, $mofile_global );
|
266 |
+
} elseif( file_exists( $mofile_local ) ) {
|
267 |
+
// Look in local /wp-content/plugins/wp-ulike/languages/ folder
|
268 |
+
load_textdomain( WP_ULIKE_SLUG, $mofile_local );
|
269 |
+
} else {
|
270 |
+
// Load the default language files
|
271 |
+
load_plugin_textdomain( WP_ULIKE_SLUG, false, $lang_dir );
|
272 |
+
}
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Return an instance of this class.
|
277 |
+
*
|
278 |
+
* @since 3.1
|
279 |
+
*
|
280 |
+
* @return object A single instance of this class.
|
281 |
+
*/
|
282 |
+
public static function get_instance() {
|
283 |
+
// If the single instance hasn't been set, set it now.
|
284 |
+
if ( null == self::$instance ) {
|
285 |
+
self::$instance = new self;
|
286 |
+
}
|
287 |
+
|
288 |
+
return self::$instance;
|
289 |
+
}
|
290 |
+
|
291 |
+
}
|
292 |
+
|
293 |
+
WpUlikeInit::get_instance();
|
includes/public/index.php
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Include Public Files
|
4 |
+
*
|
5 |
+
* @package wp-ulike
|
6 |
+
* @author TechnoWich 2021
|
7 |
+
* @link https://wpulike.com
|
8 |
+
*/
|
9 |
+
|
10 |
+
// If this file is called directly, abort.
|
11 |
+
if ( ! defined( 'WPINC' ) ) {
|
12 |
+
die('No Naughty Business Please !');
|
13 |
+
}
|
14 |
+
|
15 |
+
new wp_ulike_frontend_assets();
|
languages/wp-ulike-ar.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"PO-Revision-Date: 2017-01-20 23:26:42+0000\n"
|
9 |
"Language: ar\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -34,11 +34,11 @@ msgid "It's Ok!"
|
|
34 |
msgstr "لا بأس!"
|
35 |
|
36 |
#: admin/admin-functions.php:240
|
37 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
38 |
#: build/wp-ulike/admin/admin-functions.php:243
|
39 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
40 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
41 |
-
#:
|
42 |
msgid "Button"
|
43 |
msgstr ""
|
44 |
|
@@ -99,15 +99,17 @@ msgstr ""
|
|
99 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
100 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
101 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
102 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
103 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
|
|
104 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
105 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
106 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
107 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
108 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
109 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
110 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
|
|
111 |
msgid "Get More Information"
|
112 |
msgstr "احصل على المزيد من المعلومات"
|
113 |
|
@@ -151,25 +153,25 @@ msgstr "استعمل النسخة الإحترافية"
|
|
151 |
|
152 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
153 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
154 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
155 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
156 |
#: admin/classes/class-wp-ulike-widget.php:355
|
157 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
158 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
159 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
160 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
161 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
162 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
163 |
msgid "Like"
|
164 |
msgstr "اعجاب"
|
165 |
|
166 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
167 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
168 |
msgid "Are you sure to remove this item?!"
|
169 |
msgstr "هل أنت متأكد لإزالة هذا البند ؟!"
|
170 |
|
171 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
172 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
173 |
msgid "No information was found in this database!"
|
174 |
msgstr "لا من نجد معلومات في قاعدة البيانات هذه!"
|
175 |
|
@@ -205,13 +207,13 @@ msgstr "سجلات مواضيع الإعجاب"
|
|
205 |
#: admin/includes/templates/statistics.php:124
|
206 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
207 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
208 |
-
#: build/wp-ulike/wp-ulike.php:
|
209 |
msgid "Statistics"
|
210 |
msgstr "إحصائيات"
|
211 |
|
212 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
213 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
214 |
-
#: build/wp-ulike/wp-ulike.php:
|
215 |
msgid "About"
|
216 |
msgstr ""
|
217 |
|
@@ -238,7 +240,7 @@ msgstr "السجلات"
|
|
238 |
|
239 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
240 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
241 |
-
#: build/wp-ulike/wp-ulike.php:
|
242 |
msgid "Settings"
|
243 |
msgstr "الإعدادات"
|
244 |
|
@@ -280,12 +282,12 @@ msgstr ""
|
|
280 |
|
281 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
282 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
283 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
284 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
285 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
286 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
287 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
288 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
289 |
msgid "Unlike"
|
290 |
msgstr "الغاء اعجابي"
|
291 |
|
@@ -389,53 +391,53 @@ msgid "With this option, you can disable all plugin assets on these pages."
|
|
389 |
msgstr "بإستخدام هذا الخيار، بإمكانك تعطيل جميع مكونات الإضافة في هذه الصفحات."
|
390 |
|
391 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
392 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
393 |
#: admin/includes/templates/about.php:46
|
394 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
395 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
396 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
397 |
msgid "Home"
|
398 |
msgstr "الرئیسیة"
|
399 |
|
400 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
401 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
402 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
403 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
404 |
msgid "Singular"
|
405 |
msgstr "التفرد"
|
406 |
|
407 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
408 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
409 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
410 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
411 |
msgid "Archives"
|
412 |
msgstr "أرشيف"
|
413 |
|
414 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
415 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
416 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
417 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
418 |
msgid "Categories"
|
419 |
msgstr "تصنیفات"
|
420 |
|
421 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
422 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
423 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
424 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
425 |
msgid "Search Results"
|
426 |
msgstr "نتائج البحث"
|
427 |
|
428 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
429 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
430 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
431 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
432 |
msgid "Tags"
|
433 |
msgstr "الوسوم"
|
434 |
|
435 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
436 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
437 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
438 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
439 |
msgid "Author Page"
|
440 |
msgstr "صفحة المبرمج"
|
441 |
|
@@ -502,12 +504,12 @@ msgstr "النص لنشاطات المنشور :"
|
|
502 |
|
503 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
504 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
505 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
506 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
507 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
508 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
509 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
510 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
511 |
msgid "Allowed Variables:"
|
512 |
msgstr "المتغیرات المسموحة :"
|
513 |
|
@@ -633,176 +635,196 @@ msgid ""
|
|
633 |
"with just a few simple clicks."
|
634 |
msgstr ""
|
635 |
|
636 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
637 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
638 |
msgid "Translations"
|
639 |
msgstr "الترجمة"
|
640 |
|
641 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
642 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
643 |
#, fuzzy
|
644 |
msgid "Strings"
|
645 |
msgstr "الإعدادات"
|
646 |
|
647 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
648 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
649 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:30
|
650 |
-
#:
|
651 |
msgid "You have already registered a vote."
|
652 |
msgstr ""
|
653 |
|
654 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
655 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
656 |
msgid "Already Voted Message"
|
657 |
msgstr "إشعار تم التصويت بالفعل"
|
658 |
|
659 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
660 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
661 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:21
|
662 |
-
#:
|
663 |
msgid "You Should Login To Submit Your Like"
|
664 |
msgstr "عليك تسجيل الدخول لاعمال اعجاب"
|
665 |
|
666 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
667 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
668 |
msgid "Login Required Message"
|
669 |
msgstr "رسالة تسجيل الدخول مطلوب"
|
670 |
|
671 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
672 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
673 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:39
|
674 |
-
#:
|
675 |
msgid "Thanks! You Liked This."
|
676 |
msgstr "شكراً! لقد قمت بالإعجاب بهذا."
|
677 |
|
678 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
679 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
680 |
msgid "Liked Notice Message"
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
684 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
685 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:48
|
686 |
-
#:
|
687 |
msgid "Sorry! You unliked this."
|
688 |
msgstr "نأسف لعدم إعجابك بهذا!"
|
689 |
|
690 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
691 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
692 |
msgid "Unliked Notice Message"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
696 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
697 |
#: build/wp-ulike/inc/functions/templates.php:73
|
698 |
#: build/wp-ulike/inc/functions/templates.php:125
|
699 |
#: build/wp-ulike/inc/functions/templates.php:177
|
700 |
#: build/wp-ulike/inc/functions/templates.php:227
|
701 |
-
#:
|
702 |
-
#:
|
703 |
msgid "Like Button"
|
704 |
msgstr "زر الاعجاب"
|
705 |
|
706 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
707 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
708 |
msgid "Like Button Aria Label"
|
709 |
msgstr ""
|
710 |
|
711 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
712 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
713 |
msgid "Developer Tools"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
717 |
#: admin/settings/fields/typography/typography.php:295
|
718 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
719 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:295
|
720 |
msgid "Custom Style"
|
721 |
msgstr "تخصیص الاسلوب ( Style) : "
|
722 |
|
723 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
724 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
725 |
msgid "Custom Spinner"
|
726 |
msgstr "سبينر مخصص"
|
727 |
|
728 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
729 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
730 |
msgid "Enable Inline Custom CSS"
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
734 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
735 |
msgid ""
|
736 |
"If you don't want to use \"custom.css\" file for any reason, by activating "
|
737 |
"this option, the styles will be added to the page as inline."
|
738 |
msgstr ""
|
739 |
|
740 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
741 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
742 |
msgid "REST API"
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
746 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
747 |
msgid "How to Get Started with WP ULike REST API?"
|
748 |
msgstr ""
|
749 |
|
750 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
751 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
752 |
msgid ""
|
753 |
"Have you ever tried to get data from online sources like WP ULike logs and "
|
754 |
"use them in your Application or website? the solution is Rest API!"
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
758 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
759 |
msgid "Optimization"
|
760 |
msgstr ""
|
761 |
|
762 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
763 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
764 |
msgid "How to Optimize or Repair WP ULike Database Tables?"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
768 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
769 |
msgid ""
|
770 |
"Have you ever optimized your WP ULike database? Optimizing your database "
|
771 |
"cleans up unwanted data which reduces database size and improves performance."
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
775 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
776 |
msgid "Select a Template"
|
777 |
msgstr "اختر قالب"
|
778 |
|
779 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
780 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
781 |
msgid "Display online preview"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
785 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
786 |
msgid "Here"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
790 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
791 |
msgid "Button Type"
|
792 |
msgstr "نوع الزر"
|
793 |
|
794 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
795 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
796 |
msgid "Image"
|
797 |
msgstr "الصورة"
|
798 |
|
799 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
800 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
801 |
msgid "Text"
|
802 |
msgstr "نص"
|
803 |
|
804 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
805 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
806 |
msgid ""
|
807 |
"Enter your custom button text in the fields above. You can also use HTML "
|
808 |
"tags in these fields."
|
@@ -810,30 +832,30 @@ msgstr ""
|
|
810 |
"ادخل نص المخصص للزر بالحقل أعلاه. وكذلك بإمكانك استخدام وسوم HTML في هذه "
|
811 |
"الحقول."
|
812 |
|
813 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
814 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
815 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
816 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
817 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
818 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
819 |
msgid "Button Text"
|
820 |
msgstr "نص الزر"
|
821 |
|
822 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
823 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
824 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
825 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
826 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
827 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
828 |
msgid "Button Image"
|
829 |
msgstr "صورة الزر"
|
830 |
|
831 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
832 |
#: admin/classes/class-wp-ulike-settings.php:65
|
833 |
#: admin/classes/class-wp-ulike-settings.php:72
|
834 |
#: admin/classes/class-wp-ulike-settings.php:78
|
835 |
#: admin/classes/class-wp-ulike-settings.php:84
|
836 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
837 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:68
|
838 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:75
|
839 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:81
|
@@ -841,241 +863,224 @@ msgstr "صورة الزر"
|
|
841 |
msgid "Automatic display"
|
842 |
msgstr "عرض تلقائي"
|
843 |
|
844 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
845 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
846 |
msgid "Button Position"
|
847 |
msgstr "موضع الزر"
|
848 |
|
849 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
850 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
851 |
msgid "Top of Content"
|
852 |
msgstr "اعلی المحتوا"
|
853 |
|
854 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
855 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
856 |
msgid "Bottom of Content"
|
857 |
msgstr "اسفل المحتوا"
|
858 |
|
859 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
860 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
861 |
msgid "Top and Bottom"
|
862 |
msgstr "أعلى وأسفل"
|
863 |
|
864 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
865 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
866 |
msgid "Automatic Display Restriction"
|
867 |
msgstr "تقييد العرض التلقائي"
|
868 |
|
869 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
870 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
871 |
msgid "With this option, you can disable automatic display on these pages."
|
872 |
msgstr "بإستخدام هذا الخيار، بإمكانك تعطيل العرض التلقائي في هذه الصفحات."
|
873 |
|
874 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
875 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
876 |
msgid "Post Types Filter"
|
877 |
msgstr "تصفية أنواع المنشورات"
|
878 |
|
879 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
880 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
881 |
msgid "Select a post type"
|
882 |
msgstr "تحديد مقالة لنسخها"
|
883 |
|
884 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
885 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
886 |
msgid "Make these post types an exception and display the button on them."
|
887 |
msgstr "اجعل لأنواع المنشورات هذه إستثناء واعرض الزر فيها"
|
888 |
|
889 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
890 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
891 |
msgid "Display Counter Value Condition"
|
892 |
msgstr ""
|
893 |
|
894 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
895 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
896 |
#, fuzzy
|
897 |
msgid "Visible"
|
898 |
msgstr "تم الزيارة"
|
899 |
|
900 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
901 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
902 |
msgid "Hidden"
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
906 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
907 |
#, fuzzy
|
908 |
msgid "Only Logged In Users"
|
909 |
msgstr "فقط المستخدمين المسجلين"
|
910 |
|
911 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
912 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
913 |
msgid "Hide Zero Counter Box"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
917 |
#: admin/classes/class-wp-ulike-settings.php:58
|
918 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
919 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:61
|
920 |
msgid "Logging Method"
|
921 |
msgstr "طريقة تسجيل"
|
922 |
|
923 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
924 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
925 |
#, fuzzy
|
926 |
msgid "No Limit"
|
927 |
msgstr "حدود"
|
928 |
|
929 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
930 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
931 |
msgid "Cookie"
|
932 |
msgstr ""
|
933 |
|
934 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
935 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
936 |
#, fuzzy
|
937 |
msgid "Username/IP"
|
938 |
msgstr "اسم المستخدم : "
|
939 |
|
940 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
941 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
942 |
#, fuzzy
|
943 |
msgid "Username/IP + Cookie"
|
944 |
msgstr "اسم المستخدم : "
|
945 |
|
946 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
947 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
948 |
msgid ""
|
949 |
"\"No Limit\": There will be no restrictions and users can submit their "
|
950 |
"points each time they refresh the page. In this option, it will not be "
|
951 |
"possible to resubmit reverse points (un-like/un-dislike)."
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
955 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
956 |
msgid ""
|
957 |
"\"Cookie\": By saving users' cookies, it is possible to submit points only "
|
958 |
"once per user and in case of re-clicking, the appropriate message will be "
|
959 |
"displayed."
|
960 |
msgstr ""
|
961 |
|
962 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
963 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
964 |
msgid ""
|
965 |
"Username/IP: By saving the username/IP of users, It supports the reverse "
|
966 |
"feature (un-like and un-dislike) and users can change their reactions and "
|
967 |
"are only allowed to have a specific point type."
|
968 |
msgstr ""
|
969 |
|
970 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
971 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
972 |
msgid "Only logged in users"
|
973 |
msgstr "فقط المستخدمين المسجلين"
|
974 |
|
975 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
976 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
977 |
msgid "Display Type"
|
978 |
msgstr "عرض النوع"
|
979 |
|
980 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
981 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
982 |
msgid "Template"
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
986 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
987 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:138
|
988 |
-
#:
|
989 |
msgid "You need to login in order to like this post: "
|
990 |
msgstr "تحتاج إلى تسجيل الدخول لتقییم هذا المنشور :"
|
991 |
|
992 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
993 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
994 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:140
|
995 |
-
#:
|
996 |
msgid "click here"
|
997 |
msgstr "اضغط هنا انقر للدخول"
|
998 |
|
999 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1000 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1001 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1002 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1003 |
msgid "Custom HTML Template"
|
1004 |
msgstr "قالب HTML المخصص"
|
1005 |
|
1006 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1007 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1008 |
msgid "Display Likers Box"
|
1009 |
msgstr "عرض صندوق Likers"
|
1010 |
|
1011 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1012 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1013 |
msgid "User List Arrange"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1017 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1018 |
msgid "Ascending"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1022 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1023 |
msgid "Descending"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1027 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1028 |
msgid "Hide For Anonymous Users"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1032 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1033 |
#, fuzzy
|
1034 |
msgid "Likers Box Display"
|
1035 |
msgstr "عدد من قام بالضغط على زر الإعجاب"
|
1036 |
|
1037 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1038 |
-
#:
|
1039 |
-
|
1040 |
-
|
1041 |
-
#: admin/settings/fields/typography/typography.php:160
|
1042 |
-
#: admin/settings/fields/typography/typography.php:176
|
1043 |
-
#: admin/settings/fields/typography/typography.php:189
|
1044 |
-
#: admin/settings/fields/typography/typography.php:203
|
1045 |
-
#: admin/settings/fields/typography/typography.php:221
|
1046 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:810
|
1047 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:119
|
1048 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:132
|
1049 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:145
|
1050 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:160
|
1051 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:176
|
1052 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:189
|
1053 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:203
|
1054 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:221
|
1055 |
-
#: build/wp-ulike/inc/functions/templates.php:26 inc/functions/templates.php:23
|
1056 |
-
msgid "Default"
|
1057 |
-
msgstr "افتراضي"
|
1058 |
|
1059 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1060 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1061 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:550
|
1062 |
-
#:
|
1063 |
#, fuzzy
|
1064 |
msgid "Popover"
|
1065 |
msgstr "غلاف"
|
1066 |
|
1067 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1068 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1069 |
msgid "Size of Gravatars"
|
1070 |
msgstr "مقیاس قراواتار"
|
1071 |
|
1072 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1073 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1074 |
msgid "Likers Count"
|
1075 |
msgstr "عدد من قام بالضغط على زر الإعجاب"
|
1076 |
|
1077 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1078 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1079 |
msgid "The number of users to show in the users liked box"
|
1080 |
msgstr "حد الاقصی لإعرض عدد المستخدمين فی الباکس ؟!"
|
1081 |
|
@@ -1182,14 +1187,14 @@ msgstr ""
|
|
1182 |
|
1183 |
#: admin/classes/class-wp-ulike-settings.php:59
|
1184 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:62
|
1185 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1186 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1187 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1188 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1189 |
-
#:
|
1190 |
-
#:
|
1191 |
-
#:
|
1192 |
-
#:
|
1193 |
msgid "required"
|
1194 |
msgstr ""
|
1195 |
|
@@ -1515,7 +1520,8 @@ msgstr ""
|
|
1515 |
|
1516 |
#: admin/classes/class-wp-ulike-widget.php:543
|
1517 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:546
|
1518 |
-
#: build/wp-ulike/inc/functions/templates.php:32
|
|
|
1519 |
msgid "Heart"
|
1520 |
msgstr ""
|
1521 |
|
@@ -1832,8 +1838,8 @@ msgstr ""
|
|
1832 |
msgid "WP ULike Premium"
|
1833 |
msgstr "نسخة البريميوم من WP ULike"
|
1834 |
|
1835 |
-
#: admin/includes/templates/go-pro.php:
|
1836 |
-
#: build/wp-ulike/admin/includes/templates/go-pro.php:
|
1837 |
msgid ""
|
1838 |
"Elementor is the #1 WordPress page builder. In the new version of the WP "
|
1839 |
"ULike PRO plugin we fully support this page builder and have a variety of "
|
@@ -1843,8 +1849,8 @@ msgstr ""
|
|
1843 |
"PRO ، قمنا بدعم بانئ الصفحات هذا بشكل كامل ولدينا مجموعة متنوعة من عناصر "
|
1844 |
"التحكم وأدوات التحكم التي تجعل الأمر أسهل لك."
|
1845 |
|
1846 |
-
#: admin/includes/templates/go-pro.php:
|
1847 |
-
#: build/wp-ulike/admin/includes/templates/go-pro.php:
|
1848 |
msgid ""
|
1849 |
"Just drag your desired widget and drop it in your Elementor sections, "
|
1850 |
"customize as you go and enjoy your like and dislike buttons on your contents."
|
@@ -1918,42 +1924,42 @@ msgstr ""
|
|
1918 |
msgid "Topic Title"
|
1919 |
msgstr "عنوان الموضوع"
|
1920 |
|
1921 |
-
#: admin/settings/classes/admin-options.class.php:
|
1922 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:225
|
1923 |
#, fuzzy
|
1924 |
msgid "Error while saving the changes."
|
1925 |
msgstr "حصل خلل أثناء حفظ التغييرات."
|
1926 |
|
1927 |
-
#: admin/settings/classes/admin-options.class.php:
|
1928 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:285
|
1929 |
msgid "Settings successfully imported."
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: admin/settings/classes/admin-options.class.php:
|
1933 |
-
#: admin/settings/classes/admin-options.class.php:
|
1934 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:297
|
1935 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:313
|
1936 |
#, fuzzy
|
1937 |
msgid "Default settings restored."
|
1938 |
msgstr "تمت إستعادة الخيارات الإفتراضية."
|
1939 |
|
1940 |
-
#: admin/settings/classes/admin-options.class.php:
|
1941 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:384
|
1942 |
msgid "Settings saved."
|
1943 |
msgstr "تم حفظ التغییرات"
|
1944 |
|
1945 |
-
#: admin/settings/classes/admin-options.class.php:
|
1946 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:563
|
1947 |
msgid "You have unsaved changes, save your changes!"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
-
#: admin/settings/classes/admin-options.class.php:
|
1951 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:565
|
1952 |
#, fuzzy
|
1953 |
msgid "show all settings"
|
1954 |
msgstr "عرض جميع الخيارات"
|
1955 |
|
1956 |
-
#: admin/settings/classes/admin-options.class.php:
|
1957 |
#: admin/settings/fields/icon/icon.php:57 admin/settings/fields/map/map.php:23
|
1958 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:567
|
1959 |
#: build/wp-ulike/admin/settings/fields/icon/icon.php:57
|
@@ -1962,43 +1968,43 @@ msgstr "عرض جميع الخيارات"
|
|
1962 |
msgid "Search..."
|
1963 |
msgstr "يتم البحث..."
|
1964 |
|
1965 |
-
#: admin/settings/classes/admin-options.class.php:
|
1966 |
-
#: admin/settings/classes/admin-options.class.php:
|
1967 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1968 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1969 |
msgid "Save"
|
1970 |
msgstr "حفظ"
|
1971 |
|
1972 |
-
#: admin/settings/classes/admin-options.class.php:
|
1973 |
-
#: admin/settings/classes/admin-options.class.php:
|
1974 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1975 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1976 |
msgid "Saving..."
|
1977 |
msgstr "جاري الحفظ..."
|
1978 |
|
1979 |
-
#: admin/settings/classes/admin-options.class.php:
|
1980 |
-
#: admin/settings/classes/admin-options.class.php:
|
1981 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1982 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1983 |
msgid "Reset Section"
|
1984 |
msgstr "إعادة تعيين القسم"
|
1985 |
|
1986 |
-
#: admin/settings/classes/admin-options.class.php:
|
1987 |
-
#: admin/settings/classes/admin-options.class.php:
|
1988 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1989 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1990 |
msgid "Are you sure to reset this section options?"
|
1991 |
msgstr "هل أنت متأكد من إعادة تعيين جميع الخيارات إلى الخيارات الإفتراضية؟"
|
1992 |
|
1993 |
-
#: admin/settings/classes/admin-options.class.php:
|
1994 |
-
#: admin/settings/classes/admin-options.class.php:
|
1995 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1996 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1997 |
msgid "Reset All"
|
1998 |
msgstr "إعادة تعيين الكل"
|
1999 |
|
2000 |
-
#: admin/settings/classes/admin-options.class.php:
|
2001 |
-
#: admin/settings/classes/admin-options.class.php:
|
2002 |
#: admin/settings/classes/comment-options.class.php:215
|
2003 |
#: admin/settings/classes/metabox-options.class.php:293
|
2004 |
#: admin/settings/fields/backup/backup.php:31
|
@@ -2011,15 +2017,15 @@ msgstr "إعادة تعيين الكل"
|
|
2011 |
msgid "Reset"
|
2012 |
msgstr "إعادة تعيين الكل"
|
2013 |
|
2014 |
-
#: admin/settings/classes/admin-options.class.php:
|
2015 |
-
#: admin/settings/classes/admin-options.class.php:
|
2016 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
2017 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
2018 |
#, fuzzy
|
2019 |
msgid "Are you sure you want to reset all settings to default values?"
|
2020 |
msgstr "هل تريد حقا أن إعادة تعيين كافة هذه الإعدادات إلى قيمها الافتراضية؟"
|
2021 |
|
2022 |
-
#: admin/settings/classes/admin-options.class.php:
|
2023 |
#: admin/settings/classes/comment-options.class.php:198
|
2024 |
#: admin/settings/classes/metabox-options.class.php:276
|
2025 |
#: admin/settings/fields/button_set/button_set.php:56
|
@@ -2053,34 +2059,34 @@ msgstr "حدث المنشورللإستعادة"
|
|
2053 |
msgid "Cancel"
|
2054 |
msgstr "إلغاء"
|
2055 |
|
2056 |
-
#: admin/settings/classes/setup.class.php:
|
2057 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:529
|
2058 |
msgid "Are you sure?"
|
2059 |
msgstr "هل أنت متأكد من ذلك؟"
|
2060 |
|
2061 |
-
#: admin/settings/classes/setup.class.php:
|
2062 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:530
|
2063 |
msgid "Please enter %s or more characters"
|
2064 |
msgstr "الرجاء إدخال %s او اكثر من الحروف"
|
2065 |
|
2066 |
-
#: admin/settings/classes/setup.class.php:
|
2067 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:531
|
2068 |
msgid "Searching..."
|
2069 |
msgstr "يتم البحث..."
|
2070 |
|
2071 |
-
#: admin/settings/classes/setup.class.php:
|
2072 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:532
|
2073 |
#, fuzzy
|
2074 |
msgid "No results found."
|
2075 |
msgstr "لم نجد نتائج في"
|
2076 |
|
2077 |
-
#: admin/settings/classes/setup.class.php:
|
2078 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:634
|
2079 |
msgid "Oops! Not allowed."
|
2080 |
msgstr ""
|
2081 |
|
2082 |
-
#: admin/settings/classes/setup.class.php:
|
2083 |
-
#: admin/settings/classes/setup.class.php:
|
2084 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:708
|
2085 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:712
|
2086 |
#, fuzzy
|
@@ -2316,9 +2322,9 @@ msgstr "وضع مزيج الخلفية"
|
|
2316 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:76
|
2317 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:164
|
2318 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:306
|
2319 |
-
#:
|
2320 |
-
#:
|
2321 |
-
#:
|
2322 |
msgid "Normal"
|
2323 |
msgstr "عادي"
|
2324 |
|
@@ -2562,8 +2568,8 @@ msgstr "إزالة الأيقونة"
|
|
2562 |
#: build/wp-ulike/admin/settings/fields/link_color/link_color.php:37
|
2563 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:94
|
2564 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:202
|
2565 |
-
#:
|
2566 |
-
#:
|
2567 |
msgid "Hover"
|
2568 |
msgstr "المرور فوق"
|
2569 |
|
@@ -2572,9 +2578,9 @@ msgstr "المرور فوق"
|
|
2572 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:114
|
2573 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:237
|
2574 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:330
|
2575 |
-
#:
|
2576 |
-
#:
|
2577 |
-
#:
|
2578 |
msgid "Active"
|
2579 |
msgstr "تفعيل"
|
2580 |
|
@@ -2647,6 +2653,27 @@ msgstr "اختر خط"
|
|
2647 |
msgid "Backup Font Family"
|
2648 |
msgstr "النسخ الإحتياطي للخط"
|
2649 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2650 |
#: admin/settings/fields/typography/typography.php:130
|
2651 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:130
|
2652 |
msgid "Font Style"
|
@@ -2850,45 +2877,45 @@ msgid "Please enter a valid URL."
|
|
2850 |
msgstr "من فضلك أدخل رابط صحيح!"
|
2851 |
|
2852 |
#: build/wp-ulike/inc/classes/class-wp-ulike-ajax-listener-base.php:60
|
2853 |
-
#:
|
2854 |
msgid "There was an error processing the request."
|
2855 |
msgstr ""
|
2856 |
|
2857 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:
|
2858 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:
|
2859 |
-
#:
|
2860 |
-
#:
|
2861 |
msgid "permission denied."
|
2862 |
msgstr ""
|
2863 |
|
2864 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:
|
2865 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:
|
2866 |
-
#:
|
2867 |
-
#:
|
2868 |
msgid "Invalid item type."
|
2869 |
msgstr ""
|
2870 |
|
2871 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:52
|
2872 |
-
#:
|
2873 |
#, fuzzy
|
2874 |
msgid "Button Templates"
|
2875 |
msgstr "نص الزر"
|
2876 |
|
2877 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:56
|
2878 |
-
#:
|
2879 |
#, fuzzy
|
2880 |
msgid "Template Wrapper"
|
2881 |
msgstr "متغيرات القالب"
|
2882 |
|
2883 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:61
|
2884 |
-
#:
|
2885 |
msgid "In this section, you can customize the template wrapper styles."
|
2886 |
msgstr ""
|
2887 |
|
2888 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:68
|
2889 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:380
|
2890 |
-
#:
|
2891 |
-
#:
|
2892 |
msgid "Typography"
|
2893 |
msgstr ""
|
2894 |
|
@@ -2905,19 +2932,19 @@ msgstr ""
|
|
2905 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:475
|
2906 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:513
|
2907 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:556
|
2908 |
-
#:
|
2909 |
-
#:
|
2910 |
-
#:
|
2911 |
-
#:
|
2912 |
-
#:
|
2913 |
-
#:
|
2914 |
-
#:
|
2915 |
-
#:
|
2916 |
-
#:
|
2917 |
-
#:
|
2918 |
-
#:
|
2919 |
-
#:
|
2920 |
-
#:
|
2921 |
#, fuzzy
|
2922 |
msgid "Background"
|
2923 |
msgstr "حجم الخلفية"
|
@@ -2935,19 +2962,19 @@ msgstr "حجم الخلفية"
|
|
2935 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:482
|
2936 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:520
|
2937 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:563
|
2938 |
-
#:
|
2939 |
-
#:
|
2940 |
-
#:
|
2941 |
-
#:
|
2942 |
-
#:
|
2943 |
-
#:
|
2944 |
-
#:
|
2945 |
-
#:
|
2946 |
-
#:
|
2947 |
-
#:
|
2948 |
-
#:
|
2949 |
-
#:
|
2950 |
-
#:
|
2951 |
#, fuzzy
|
2952 |
msgid "Border"
|
2953 |
msgstr "حدود الصندوق"
|
@@ -2955,9 +2982,9 @@ msgstr "حدود الصندوق"
|
|
2955 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:137
|
2956 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:280
|
2957 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:358
|
2958 |
-
#:
|
2959 |
-
#:
|
2960 |
-
#:
|
2961 |
#, fuzzy
|
2962 |
msgid "Padding"
|
2963 |
msgstr "حشوة الصندوق"
|
@@ -2965,14 +2992,14 @@ msgstr "حشوة الصندوق"
|
|
2965 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:145
|
2966 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:288
|
2967 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:365
|
2968 |
-
#:
|
2969 |
-
#:
|
2970 |
-
#:
|
2971 |
msgid "Margin"
|
2972 |
msgstr ""
|
2973 |
|
2974 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:157
|
2975 |
-
#:
|
2976 |
msgid ""
|
2977 |
"In this section, you can customize the styles related to the buttons. Please "
|
2978 |
"note that some buttons have different structures (such as SVG based) and "
|
@@ -2988,15 +3015,15 @@ msgstr ""
|
|
2988 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:431
|
2989 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:469
|
2990 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:507
|
2991 |
-
#:
|
2992 |
-
#:
|
2993 |
-
#:
|
2994 |
-
#:
|
2995 |
-
#:
|
2996 |
-
#:
|
2997 |
-
#:
|
2998 |
-
#:
|
2999 |
-
#:
|
3000 |
#, fuzzy
|
3001 |
msgid "Text Color"
|
3002 |
msgstr "لون الخط"
|
@@ -3006,48 +3033,48 @@ msgstr "لون الخط"
|
|
3006 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:451
|
3007 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:489
|
3008 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:527
|
3009 |
-
#:
|
3010 |
-
#:
|
3011 |
-
#:
|
3012 |
-
#:
|
3013 |
-
#:
|
3014 |
msgid "Image Dimensions"
|
3015 |
msgstr ""
|
3016 |
|
3017 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:196
|
3018 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:231
|
3019 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:262
|
3020 |
-
#:
|
3021 |
-
#:
|
3022 |
-
#:
|
3023 |
#, fuzzy
|
3024 |
msgid "Like Image"
|
3025 |
msgstr "الصورة"
|
3026 |
|
3027 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:273
|
3028 |
-
#:
|
3029 |
#, fuzzy
|
3030 |
msgid "Button Dimensions"
|
3031 |
msgstr "موضع الزر"
|
3032 |
|
3033 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:294
|
3034 |
-
#:
|
3035 |
#, fuzzy
|
3036 |
msgid "Counter"
|
3037 |
msgstr "وسط"
|
3038 |
|
3039 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:299
|
3040 |
-
#:
|
3041 |
msgid "In this section, you can customize the template counter styles."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:373
|
3045 |
-
#:
|
3046 |
msgid "Toast Messages"
|
3047 |
msgstr ""
|
3048 |
|
3049 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:388
|
3050 |
-
#:
|
3051 |
msgid "Info"
|
3052 |
msgstr ""
|
3053 |
|
@@ -3055,220 +3082,254 @@ msgstr ""
|
|
3055 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:458
|
3056 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:496
|
3057 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:534
|
3058 |
-
#:
|
3059 |
-
#:
|
3060 |
-
#:
|
3061 |
-
#:
|
3062 |
#, fuzzy
|
3063 |
msgid "Icon Image"
|
3064 |
msgstr "صورة الزر"
|
3065 |
|
3066 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:426
|
3067 |
-
#:
|
3068 |
msgid "Success"
|
3069 |
msgstr ""
|
3070 |
|
3071 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:464
|
3072 |
-
#:
|
3073 |
msgid "Error"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:502
|
3077 |
-
#:
|
3078 |
msgid "Warning"
|
3079 |
msgstr ""
|
3080 |
|
3081 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:546
|
3082 |
-
#:
|
3083 |
#, fuzzy
|
3084 |
msgid "Likers Box"
|
3085 |
msgstr "عدد من قام بالضغط على زر الإعجاب"
|
3086 |
|
3087 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:570
|
3088 |
-
#:
|
3089 |
#, fuzzy
|
3090 |
msgid "Arrow Color"
|
3091 |
msgstr "لون الخط"
|
3092 |
|
3093 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3094 |
-
#:
|
3095 |
msgid "Points for Liking content"
|
3096 |
msgstr ""
|
3097 |
|
3098 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3099 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3100 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3101 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3102 |
-
#:
|
3103 |
-
#:
|
3104 |
-
#:
|
3105 |
-
#:
|
3106 |
msgid "Points"
|
3107 |
msgstr "نقاط"
|
3108 |
|
3109 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3110 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3111 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3112 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3113 |
-
#:
|
3114 |
-
#:
|
3115 |
-
#:
|
3116 |
-
#:
|
3117 |
msgid "Use zero to disable."
|
3118 |
msgstr "اكتب الصفر لتعطيلها."
|
3119 |
|
3120 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3121 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3122 |
-
#: inc/classes/class-wp-ulike-mycred.php:
|
3123 |
-
#: inc/classes/class-wp-ulike-mycred.php:
|
|
|
|
|
|
|
|
|
3124 |
msgid "Limit"
|
3125 |
msgstr ""
|
3126 |
|
3127 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3128 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3129 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3130 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3131 |
-
#:
|
3132 |
-
#:
|
3133 |
-
#:
|
3134 |
-
#:
|
3135 |
msgid "Log template"
|
3136 |
msgstr ""
|
3137 |
|
3138 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3139 |
-
#:
|
3140 |
msgid "Points for Author Who Get Liked"
|
3141 |
msgstr ""
|
3142 |
|
3143 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3144 |
-
#:
|
3145 |
msgid "Points for unliking content"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3149 |
-
#:
|
3150 |
msgid "Points for Author Who Get Unliked"
|
3151 |
msgstr ""
|
3152 |
|
3153 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3154 |
-
#:
|
3155 |
msgid "Limits"
|
3156 |
msgstr "حدود"
|
3157 |
|
3158 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3159 |
-
#:
|
3160 |
msgid ""
|
3161 |
"%plural% is to be awarded even when item authors Like/Unlike their own item."
|
3162 |
msgstr "%plural% سيتم منحها حتى عند إعجاب او عدم إعجاب مؤلف المنشور."
|
3163 |
|
3164 |
-
#: build/wp-ulike/inc/functions/counter.php:72
|
|
|
3165 |
msgid "Please enter some value for required variables."
|
3166 |
msgstr "الرجاء إدخال قيمة للمتغيرات المطلوبة."
|
3167 |
|
3168 |
-
#: build/wp-ulike/inc/functions/counter.php:86
|
|
|
3169 |
msgid "Table info is empty."
|
3170 |
msgstr "جدول المعلومات فارغ"
|
3171 |
|
3172 |
-
#: build/wp-ulike/inc/functions/templates.php:38
|
|
|
3173 |
msgid "Twitter Heart"
|
3174 |
msgstr "قلب تويتر"
|
3175 |
|
3176 |
-
#: build/wp-ulike/inc/functions/templates.php:44
|
|
|
3177 |
msgid "Animated Heart"
|
3178 |
msgstr "قلب متحرك"
|
3179 |
|
3180 |
-
#: build/wp-ulike/inc/hooks/shortcodes.php:146
|
|
|
3181 |
msgid "Error receiving input parameters"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: build/wp-ulike/inc/hooks/third-party.php:120
|
|
|
3185 |
msgid "WP ULike Activity"
|
3186 |
msgstr "نشاطات وردبرس یولایک"
|
3187 |
|
3188 |
-
#: build/wp-ulike/inc/hooks/third-party.php:135
|
|
|
3189 |
msgid "Votes"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: build/wp-ulike/inc/hooks/third-party.php:344
|
|
|
3193 |
msgid "posts"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
-
#: build/wp-ulike/inc/hooks/third-party.php:351
|
|
|
3197 |
msgid "comments"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: build/wp-ulike/inc/hooks/third-party.php:357
|
|
|
3201 |
msgid "activities"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
#: build/wp-ulike/inc/hooks/third-party.php:365
|
|
|
3205 |
msgid "topics"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: build/wp-ulike/inc/hooks/third-party.php:368
|
|
|
3209 |
msgid "replies"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: build/wp-ulike/inc/hooks/third-party.php:380
|
|
|
3213 |
msgid "You have %d new %s likes"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: build/wp-ulike/inc/hooks/third-party.php:384
|
|
|
3217 |
msgid "%s liked one of your %s"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: build/wp-ulike/inc/hooks/third-party.php:428
|
|
|
3221 |
msgid "New activity liked"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: build/wp-ulike/inc/hooks/third-party.php:433
|
|
|
3225 |
msgid "New comment liked"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: build/wp-ulike/inc/hooks/third-party.php:438
|
|
|
3229 |
msgid "New post liked"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
-
#: build/wp-ulike/inc/hooks/third-party.php:443
|
|
|
3233 |
msgid "New topic liked"
|
3234 |
msgstr "موضوع جديد تم الإعجاب به"
|
3235 |
|
3236 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
3237 |
msgid ""
|
3238 |
"This hook award / deducts points from users who Like/Unlike any content of "
|
3239 |
"WordPress, bbPress, BuddyPress & ..."
|
3240 |
msgstr ""
|
3241 |
|
3242 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3243 |
msgid "Liking Content"
|
3244 |
msgstr ""
|
3245 |
|
3246 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3247 |
msgid "Liked Content"
|
3248 |
msgstr "المحتوى الحاصل على إعجاب"
|
3249 |
|
3250 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3251 |
msgid "Unliking Content"
|
3252 |
msgstr ""
|
3253 |
|
3254 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3255 |
msgid "Unliked Content"
|
3256 |
msgstr ""
|
3257 |
|
3258 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3259 |
msgid "Recent Posts Liked"
|
3260 |
msgstr "مشاركات تم الإعجاب بها مؤخراً"
|
3261 |
|
3262 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3263 |
msgid "Recent Comments Liked"
|
3264 |
msgstr "تعليقات تم الإعجاب بها مؤخراً"
|
3265 |
|
3266 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3267 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3268 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3269 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3270 |
-
#:
|
3271 |
-
#:
|
3272 |
msgid "This user has not made any likes."
|
3273 |
msgstr ""
|
3274 |
|
@@ -3276,7 +3337,7 @@ msgstr ""
|
|
3276 |
msgid "WP ULike"
|
3277 |
msgstr "وردبرس یولایک"
|
3278 |
|
3279 |
-
#: build/wp-ulike/wp-ulike.php:
|
3280 |
msgid ""
|
3281 |
"You are using two instances of WP ULike plugin at same time, please deactive "
|
3282 |
"one of them."
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
+
"POT-Creation-Date: 2021-04-04 15:20:05+00:00\n"
|
8 |
"PO-Revision-Date: 2017-01-20 23:26:42+0000\n"
|
9 |
"Language: ar\n"
|
10 |
"MIME-Version: 1.0\n"
|
34 |
msgstr "لا بأس!"
|
35 |
|
36 |
#: admin/admin-functions.php:240
|
37 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:786
|
38 |
#: build/wp-ulike/admin/admin-functions.php:243
|
39 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:789
|
40 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
41 |
+
#: includes/classes/class-wp-ulike-customizer.php:149
|
42 |
msgid "Button"
|
43 |
msgstr ""
|
44 |
|
99 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
100 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
101 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
102 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:443
|
103 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
104 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:589
|
105 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
106 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
107 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
108 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
109 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
110 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:446
|
111 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
112 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:592
|
113 |
msgid "Get More Information"
|
114 |
msgstr "احصل على المزيد من المعلومات"
|
115 |
|
153 |
|
154 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
155 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
156 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:640
|
157 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:670
|
158 |
#: admin/classes/class-wp-ulike-widget.php:355
|
159 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
160 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
161 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
162 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:643
|
163 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:673
|
164 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
165 |
msgid "Like"
|
166 |
msgstr "اعجاب"
|
167 |
|
168 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:126
|
169 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:109
|
170 |
msgid "Are you sure to remove this item?!"
|
171 |
msgstr "هل أنت متأكد لإزالة هذا البند ؟!"
|
172 |
|
173 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:127
|
174 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:110
|
175 |
msgid "No information was found in this database!"
|
176 |
msgstr "لا من نجد معلومات في قاعدة البيانات هذه!"
|
177 |
|
207 |
#: admin/includes/templates/statistics.php:124
|
208 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
209 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
210 |
+
#: build/wp-ulike/wp-ulike.php:179 includes/plugin.php:103
|
211 |
msgid "Statistics"
|
212 |
msgstr "إحصائيات"
|
213 |
|
214 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
215 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
216 |
+
#: build/wp-ulike/wp-ulike.php:180 includes/plugin.php:104
|
217 |
msgid "About"
|
218 |
msgstr ""
|
219 |
|
240 |
|
241 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
242 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
243 |
+
#: build/wp-ulike/wp-ulike.php:178 includes/plugin.php:102
|
244 |
msgid "Settings"
|
245 |
msgstr "الإعدادات"
|
246 |
|
282 |
|
283 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
284 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
285 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:651
|
286 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:682
|
287 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
288 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
289 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:654
|
290 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:685
|
291 |
msgid "Unlike"
|
292 |
msgstr "الغاء اعجابي"
|
293 |
|
391 |
msgstr "بإستخدام هذا الخيار، بإمكانك تعطيل جميع مكونات الإضافة في هذه الصفحات."
|
392 |
|
393 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
394 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:723
|
395 |
#: admin/includes/templates/about.php:46
|
396 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
397 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:726
|
398 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
399 |
msgid "Home"
|
400 |
msgstr "الرئیسیة"
|
401 |
|
402 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
403 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:724
|
404 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
405 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:727
|
406 |
msgid "Singular"
|
407 |
msgstr "التفرد"
|
408 |
|
409 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
410 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:725
|
411 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
412 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:728
|
413 |
msgid "Archives"
|
414 |
msgstr "أرشيف"
|
415 |
|
416 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
417 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:726
|
418 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
419 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:729
|
420 |
msgid "Categories"
|
421 |
msgstr "تصنیفات"
|
422 |
|
423 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
424 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:727
|
425 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
426 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:730
|
427 |
msgid "Search Results"
|
428 |
msgstr "نتائج البحث"
|
429 |
|
430 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
431 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:728
|
432 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
433 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:731
|
434 |
msgid "Tags"
|
435 |
msgstr "الوسوم"
|
436 |
|
437 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
438 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:729
|
439 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
440 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:732
|
441 |
msgid "Author Page"
|
442 |
msgstr "صفحة المبرمج"
|
443 |
|
504 |
|
505 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
506 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
507 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:794
|
508 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:850
|
509 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
510 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
511 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:797
|
512 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:853
|
513 |
msgid "Allowed Variables:"
|
514 |
msgstr "المتغیرات المسموحة :"
|
515 |
|
635 |
"with just a few simple clicks."
|
636 |
msgstr ""
|
637 |
|
638 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:430
|
639 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:433
|
640 |
+
#, fuzzy
|
641 |
+
msgid "Share Buttons"
|
642 |
+
msgstr "زر الاعجاب"
|
643 |
+
|
644 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:437
|
645 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:440
|
646 |
+
msgid "Easy Social Share Buttons for WordPress"
|
647 |
+
msgstr ""
|
648 |
+
|
649 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:438
|
650 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:441
|
651 |
+
msgid ""
|
652 |
+
"WP ULike Share buttons enables your website users to share the content over "
|
653 |
+
"Facebook, Twitter, Google, Linkedin, Whatsapp, Tumblr, Pinterest, Reddit and "
|
654 |
+
"over 23 more social sharing services. This is the Simplest and Smoothest "
|
655 |
+
"Social Sharing service with optimized and great looking vector icons."
|
656 |
+
msgstr ""
|
657 |
+
|
658 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:462
|
659 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:465
|
660 |
msgid "Translations"
|
661 |
msgstr "الترجمة"
|
662 |
|
663 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:471
|
664 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:474
|
665 |
#, fuzzy
|
666 |
msgid "Strings"
|
667 |
msgstr "الإعدادات"
|
668 |
|
669 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:477
|
670 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:480
|
671 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:30
|
672 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:35
|
673 |
msgid "You have already registered a vote."
|
674 |
msgstr ""
|
675 |
|
676 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:478
|
677 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:481
|
678 |
msgid "Already Voted Message"
|
679 |
msgstr "إشعار تم التصويت بالفعل"
|
680 |
|
681 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:483
|
682 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:486
|
683 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:21
|
684 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:26
|
685 |
msgid "You Should Login To Submit Your Like"
|
686 |
msgstr "عليك تسجيل الدخول لاعمال اعجاب"
|
687 |
|
688 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:484
|
689 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:487
|
690 |
msgid "Login Required Message"
|
691 |
msgstr "رسالة تسجيل الدخول مطلوب"
|
692 |
|
693 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:489
|
694 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:492
|
695 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:39
|
696 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:44
|
697 |
msgid "Thanks! You Liked This."
|
698 |
msgstr "شكراً! لقد قمت بالإعجاب بهذا."
|
699 |
|
700 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:490
|
701 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:493
|
702 |
msgid "Liked Notice Message"
|
703 |
msgstr ""
|
704 |
|
705 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:495
|
706 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:498
|
707 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:48
|
708 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:53
|
709 |
msgid "Sorry! You unliked this."
|
710 |
msgstr "نأسف لعدم إعجابك بهذا!"
|
711 |
|
712 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:496
|
713 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:499
|
714 |
msgid "Unliked Notice Message"
|
715 |
msgstr ""
|
716 |
|
717 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:501
|
718 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:504
|
719 |
#: build/wp-ulike/inc/functions/templates.php:73
|
720 |
#: build/wp-ulike/inc/functions/templates.php:125
|
721 |
#: build/wp-ulike/inc/functions/templates.php:177
|
722 |
#: build/wp-ulike/inc/functions/templates.php:227
|
723 |
+
#: includes/functions/templates.php:70 includes/functions/templates.php:122
|
724 |
+
#: includes/functions/templates.php:174 includes/functions/templates.php:224
|
725 |
msgid "Like Button"
|
726 |
msgstr "زر الاعجاب"
|
727 |
|
728 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:502
|
729 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:505
|
730 |
msgid "Like Button Aria Label"
|
731 |
msgstr ""
|
732 |
|
733 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:512
|
734 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:515
|
735 |
msgid "Developer Tools"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:518
|
739 |
#: admin/settings/fields/typography/typography.php:295
|
740 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:521
|
741 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:295
|
742 |
msgid "Custom Style"
|
743 |
msgstr "تخصیص الاسلوب ( Style) : "
|
744 |
|
745 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:532
|
746 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:535
|
747 |
msgid "Custom Spinner"
|
748 |
msgstr "سبينر مخصص"
|
749 |
|
750 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:539
|
751 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:542
|
752 |
msgid "Enable Inline Custom CSS"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:540
|
756 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:543
|
757 |
msgid ""
|
758 |
"If you don't want to use \"custom.css\" file for any reason, by activating "
|
759 |
"this option, the styles will be added to the page as inline."
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:547
|
763 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:550
|
764 |
msgid "REST API"
|
765 |
msgstr ""
|
766 |
|
767 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:554
|
768 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:557
|
769 |
msgid "How to Get Started with WP ULike REST API?"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:555
|
773 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:558
|
774 |
msgid ""
|
775 |
"Have you ever tried to get data from online sources like WP ULike logs and "
|
776 |
"use them in your Application or website? the solution is Rest API!"
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:576
|
780 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:579
|
781 |
msgid "Optimization"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:583
|
785 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:586
|
786 |
msgid "How to Optimize or Repair WP ULike Database Tables?"
|
787 |
msgstr ""
|
788 |
|
789 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:584
|
790 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:587
|
791 |
msgid ""
|
792 |
"Have you ever optimized your WP ULike database? Optimizing your database "
|
793 |
"cleans up unwanted data which reduces database size and improves performance."
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:616
|
797 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:619
|
798 |
msgid "Select a Template"
|
799 |
msgstr "اختر قالب"
|
800 |
|
801 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:617
|
802 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:620
|
803 |
msgid "Display online preview"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:617
|
807 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:620
|
808 |
msgid "Here"
|
809 |
msgstr ""
|
810 |
|
811 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:625
|
812 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:628
|
813 |
msgid "Button Type"
|
814 |
msgstr "نوع الزر"
|
815 |
|
816 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:628
|
817 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:631
|
818 |
msgid "Image"
|
819 |
msgstr "الصورة"
|
820 |
|
821 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:629
|
822 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:632
|
823 |
msgid "Text"
|
824 |
msgstr "نص"
|
825 |
|
826 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:636
|
827 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:639
|
828 |
msgid ""
|
829 |
"Enter your custom button text in the fields above. You can also use HTML "
|
830 |
"tags in these fields."
|
832 |
"ادخل نص المخصص للزر بالحقل أعلاه. وكذلك بإمكانك استخدام وسوم HTML في هذه "
|
833 |
"الحقول."
|
834 |
|
835 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:637
|
836 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:645
|
837 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:656
|
838 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:640
|
839 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:648
|
840 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:659
|
841 |
msgid "Button Text"
|
842 |
msgstr "نص الزر"
|
843 |
|
844 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:667
|
845 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:675
|
846 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:687
|
847 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:670
|
848 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:678
|
849 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:690
|
850 |
msgid "Button Image"
|
851 |
msgstr "صورة الزر"
|
852 |
|
853 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:700
|
854 |
#: admin/classes/class-wp-ulike-settings.php:65
|
855 |
#: admin/classes/class-wp-ulike-settings.php:72
|
856 |
#: admin/classes/class-wp-ulike-settings.php:78
|
857 |
#: admin/classes/class-wp-ulike-settings.php:84
|
858 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:703
|
859 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:68
|
860 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:75
|
861 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:81
|
863 |
msgid "Automatic display"
|
864 |
msgstr "عرض تلقائي"
|
865 |
|
866 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:705
|
867 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:708
|
868 |
msgid "Button Position"
|
869 |
msgstr "موضع الزر"
|
870 |
|
871 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:708
|
872 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:711
|
873 |
msgid "Top of Content"
|
874 |
msgstr "اعلی المحتوا"
|
875 |
|
876 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:709
|
877 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:712
|
878 |
msgid "Bottom of Content"
|
879 |
msgstr "اسفل المحتوا"
|
880 |
|
881 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:710
|
882 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:713
|
883 |
msgid "Top and Bottom"
|
884 |
msgstr "أعلى وأسفل"
|
885 |
|
886 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:717
|
887 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:720
|
888 |
msgid "Automatic Display Restriction"
|
889 |
msgstr "تقييد العرض التلقائي"
|
890 |
|
891 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:718
|
892 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:721
|
893 |
msgid "With this option, you can disable automatic display on these pages."
|
894 |
msgstr "بإستخدام هذا الخيار، بإمكانك تعطيل العرض التلقائي في هذه الصفحات."
|
895 |
|
896 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:736
|
897 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:739
|
898 |
msgid "Post Types Filter"
|
899 |
msgstr "تصفية أنواع المنشورات"
|
900 |
|
901 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:737
|
902 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:740
|
903 |
msgid "Select a post type"
|
904 |
msgstr "تحديد مقالة لنسخها"
|
905 |
|
906 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:738
|
907 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:741
|
908 |
msgid "Make these post types an exception and display the button on them."
|
909 |
msgstr "اجعل لأنواع المنشورات هذه إستثناء واعرض الزر فيها"
|
910 |
|
911 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:748
|
912 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:751
|
913 |
msgid "Display Counter Value Condition"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:751
|
917 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:754
|
918 |
#, fuzzy
|
919 |
msgid "Visible"
|
920 |
msgstr "تم الزيارة"
|
921 |
|
922 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:752
|
923 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:755
|
924 |
msgid "Hidden"
|
925 |
msgstr ""
|
926 |
|
927 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:753
|
928 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:756
|
929 |
#, fuzzy
|
930 |
msgid "Only Logged In Users"
|
931 |
msgstr "فقط المستخدمين المسجلين"
|
932 |
|
933 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:759
|
934 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:762
|
935 |
msgid "Hide Zero Counter Box"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:765
|
939 |
#: admin/classes/class-wp-ulike-settings.php:58
|
940 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:768
|
941 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:61
|
942 |
msgid "Logging Method"
|
943 |
msgstr "طريقة تسجيل"
|
944 |
|
945 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:767
|
946 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:770
|
947 |
#, fuzzy
|
948 |
msgid "No Limit"
|
949 |
msgstr "حدود"
|
950 |
|
951 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:768
|
952 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:771
|
953 |
msgid "Cookie"
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:769
|
957 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:772
|
958 |
#, fuzzy
|
959 |
msgid "Username/IP"
|
960 |
msgstr "اسم المستخدم : "
|
961 |
|
962 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:770
|
963 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:773
|
964 |
#, fuzzy
|
965 |
msgid "Username/IP + Cookie"
|
966 |
msgstr "اسم المستخدم : "
|
967 |
|
968 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
969 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
970 |
msgid ""
|
971 |
"\"No Limit\": There will be no restrictions and users can submit their "
|
972 |
"points each time they refresh the page. In this option, it will not be "
|
973 |
"possible to resubmit reverse points (un-like/un-dislike)."
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
977 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
978 |
msgid ""
|
979 |
"\"Cookie\": By saving users' cookies, it is possible to submit points only "
|
980 |
"once per user and in case of re-clicking, the appropriate message will be "
|
981 |
"displayed."
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
985 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
986 |
msgid ""
|
987 |
"Username/IP: By saving the username/IP of users, It supports the reverse "
|
988 |
"feature (un-like and un-dislike) and users can change their reactions and "
|
989 |
"are only allowed to have a specific point type."
|
990 |
msgstr ""
|
991 |
|
992 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:778
|
993 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:781
|
994 |
msgid "Only logged in users"
|
995 |
msgstr "فقط المستخدمين المسجلين"
|
996 |
|
997 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:783
|
998 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:786
|
999 |
msgid "Display Type"
|
1000 |
msgstr "عرض النوع"
|
1001 |
|
1002 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:785
|
1003 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:788
|
1004 |
msgid "Template"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:800
|
1008 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:803
|
1009 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:138
|
1010 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:143
|
1011 |
msgid "You need to login in order to like this post: "
|
1012 |
msgstr "تحتاج إلى تسجيل الدخول لتقییم هذا المنشور :"
|
1013 |
|
1014 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:802
|
1015 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:805
|
1016 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:140
|
1017 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:145
|
1018 |
msgid "click here"
|
1019 |
msgstr "اضغط هنا انقر للدخول"
|
1020 |
|
1021 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:804
|
1022 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:849
|
1023 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:807
|
1024 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:852
|
1025 |
msgid "Custom HTML Template"
|
1026 |
msgstr "قالب HTML المخصص"
|
1027 |
|
1028 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:810
|
1029 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:813
|
1030 |
msgid "Display Likers Box"
|
1031 |
msgstr "عرض صندوق Likers"
|
1032 |
|
1033 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:815
|
1034 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:818
|
1035 |
msgid "User List Arrange"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:818
|
1039 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:821
|
1040 |
msgid "Ascending"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:819
|
1044 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:822
|
1045 |
msgid "Descending"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:827
|
1049 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:830
|
1050 |
msgid "Hide For Anonymous Users"
|
1051 |
msgstr ""
|
1052 |
|
1053 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:833
|
1054 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:836
|
1055 |
#, fuzzy
|
1056 |
msgid "Likers Box Display"
|
1057 |
msgstr "عدد من قام بالضغط على زر الإعجاب"
|
1058 |
|
1059 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:836
|
1060 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:839
|
1061 |
+
msgid "Inline"
|
1062 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1063 |
|
1064 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:837
|
1065 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:840
|
1066 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:550
|
1067 |
+
#: includes/classes/class-wp-ulike-customizer.php:547
|
1068 |
#, fuzzy
|
1069 |
msgid "Popover"
|
1070 |
msgstr "غلاف"
|
1071 |
|
1072 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:863
|
1073 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:866
|
1074 |
msgid "Size of Gravatars"
|
1075 |
msgstr "مقیاس قراواتار"
|
1076 |
|
1077 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:871
|
1078 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:874
|
1079 |
msgid "Likers Count"
|
1080 |
msgstr "عدد من قام بالضغط على زر الإعجاب"
|
1081 |
|
1082 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:872
|
1083 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:875
|
1084 |
msgid "The number of users to show in the users liked box"
|
1085 |
msgstr "حد الاقصی لإعرض عدد المستخدمين فی الباکس ؟!"
|
1086 |
|
1187 |
|
1188 |
#: admin/classes/class-wp-ulike-settings.php:59
|
1189 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:62
|
1190 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:259
|
1191 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:284
|
1192 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:309
|
1193 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:334
|
1194 |
+
#: includes/classes/class-wp-ulike-mycred.php:256
|
1195 |
+
#: includes/classes/class-wp-ulike-mycred.php:281
|
1196 |
+
#: includes/classes/class-wp-ulike-mycred.php:306
|
1197 |
+
#: includes/classes/class-wp-ulike-mycred.php:331
|
1198 |
msgid "required"
|
1199 |
msgstr ""
|
1200 |
|
1520 |
|
1521 |
#: admin/classes/class-wp-ulike-widget.php:543
|
1522 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:546
|
1523 |
+
#: build/wp-ulike/inc/functions/templates.php:32
|
1524 |
+
#: includes/functions/templates.php:29
|
1525 |
msgid "Heart"
|
1526 |
msgstr ""
|
1527 |
|
1838 |
msgid "WP ULike Premium"
|
1839 |
msgstr "نسخة البريميوم من WP ULike"
|
1840 |
|
1841 |
+
#: admin/includes/templates/go-pro.php:140
|
1842 |
+
#: build/wp-ulike/admin/includes/templates/go-pro.php:143
|
1843 |
msgid ""
|
1844 |
"Elementor is the #1 WordPress page builder. In the new version of the WP "
|
1845 |
"ULike PRO plugin we fully support this page builder and have a variety of "
|
1849 |
"PRO ، قمنا بدعم بانئ الصفحات هذا بشكل كامل ولدينا مجموعة متنوعة من عناصر "
|
1850 |
"التحكم وأدوات التحكم التي تجعل الأمر أسهل لك."
|
1851 |
|
1852 |
+
#: admin/includes/templates/go-pro.php:140
|
1853 |
+
#: build/wp-ulike/admin/includes/templates/go-pro.php:143
|
1854 |
msgid ""
|
1855 |
"Just drag your desired widget and drop it in your Elementor sections, "
|
1856 |
"customize as you go and enjoy your like and dislike buttons on your contents."
|
1924 |
msgid "Topic Title"
|
1925 |
msgstr "عنوان الموضوع"
|
1926 |
|
1927 |
+
#: admin/settings/classes/admin-options.class.php:226
|
1928 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:225
|
1929 |
#, fuzzy
|
1930 |
msgid "Error while saving the changes."
|
1931 |
msgstr "حصل خلل أثناء حفظ التغييرات."
|
1932 |
|
1933 |
+
#: admin/settings/classes/admin-options.class.php:286
|
1934 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:285
|
1935 |
msgid "Settings successfully imported."
|
1936 |
msgstr ""
|
1937 |
|
1938 |
+
#: admin/settings/classes/admin-options.class.php:298
|
1939 |
+
#: admin/settings/classes/admin-options.class.php:314
|
1940 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:297
|
1941 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:313
|
1942 |
#, fuzzy
|
1943 |
msgid "Default settings restored."
|
1944 |
msgstr "تمت إستعادة الخيارات الإفتراضية."
|
1945 |
|
1946 |
+
#: admin/settings/classes/admin-options.class.php:385
|
1947 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:384
|
1948 |
msgid "Settings saved."
|
1949 |
msgstr "تم حفظ التغییرات"
|
1950 |
|
1951 |
+
#: admin/settings/classes/admin-options.class.php:565
|
1952 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:563
|
1953 |
msgid "You have unsaved changes, save your changes!"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
+
#: admin/settings/classes/admin-options.class.php:567
|
1957 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:565
|
1958 |
#, fuzzy
|
1959 |
msgid "show all settings"
|
1960 |
msgstr "عرض جميع الخيارات"
|
1961 |
|
1962 |
+
#: admin/settings/classes/admin-options.class.php:569
|
1963 |
#: admin/settings/fields/icon/icon.php:57 admin/settings/fields/map/map.php:23
|
1964 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:567
|
1965 |
#: build/wp-ulike/admin/settings/fields/icon/icon.php:57
|
1968 |
msgid "Search..."
|
1969 |
msgstr "يتم البحث..."
|
1970 |
|
1971 |
+
#: admin/settings/classes/admin-options.class.php:572
|
1972 |
+
#: admin/settings/classes/admin-options.class.php:695
|
1973 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1974 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1975 |
msgid "Save"
|
1976 |
msgstr "حفظ"
|
1977 |
|
1978 |
+
#: admin/settings/classes/admin-options.class.php:572
|
1979 |
+
#: admin/settings/classes/admin-options.class.php:695
|
1980 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1981 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1982 |
msgid "Saving..."
|
1983 |
msgstr "جاري الحفظ..."
|
1984 |
|
1985 |
+
#: admin/settings/classes/admin-options.class.php:573
|
1986 |
+
#: admin/settings/classes/admin-options.class.php:696
|
1987 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1988 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1989 |
msgid "Reset Section"
|
1990 |
msgstr "إعادة تعيين القسم"
|
1991 |
|
1992 |
+
#: admin/settings/classes/admin-options.class.php:573
|
1993 |
+
#: admin/settings/classes/admin-options.class.php:696
|
1994 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1995 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1996 |
msgid "Are you sure to reset this section options?"
|
1997 |
msgstr "هل أنت متأكد من إعادة تعيين جميع الخيارات إلى الخيارات الإفتراضية؟"
|
1998 |
|
1999 |
+
#: admin/settings/classes/admin-options.class.php:574
|
2000 |
+
#: admin/settings/classes/admin-options.class.php:697
|
2001 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
2002 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
2003 |
msgid "Reset All"
|
2004 |
msgstr "إعادة تعيين الكل"
|
2005 |
|
2006 |
+
#: admin/settings/classes/admin-options.class.php:574
|
2007 |
+
#: admin/settings/classes/admin-options.class.php:697
|
2008 |
#: admin/settings/classes/comment-options.class.php:215
|
2009 |
#: admin/settings/classes/metabox-options.class.php:293
|
2010 |
#: admin/settings/fields/backup/backup.php:31
|
2017 |
msgid "Reset"
|
2018 |
msgstr "إعادة تعيين الكل"
|
2019 |
|
2020 |
+
#: admin/settings/classes/admin-options.class.php:574
|
2021 |
+
#: admin/settings/classes/admin-options.class.php:697
|
2022 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
2023 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
2024 |
#, fuzzy
|
2025 |
msgid "Are you sure you want to reset all settings to default values?"
|
2026 |
msgstr "هل تريد حقا أن إعادة تعيين كافة هذه الإعدادات إلى قيمها الافتراضية؟"
|
2027 |
|
2028 |
+
#: admin/settings/classes/admin-options.class.php:672
|
2029 |
#: admin/settings/classes/comment-options.class.php:198
|
2030 |
#: admin/settings/classes/metabox-options.class.php:276
|
2031 |
#: admin/settings/fields/button_set/button_set.php:56
|
2059 |
msgid "Cancel"
|
2060 |
msgstr "إلغاء"
|
2061 |
|
2062 |
+
#: admin/settings/classes/setup.class.php:592
|
2063 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:529
|
2064 |
msgid "Are you sure?"
|
2065 |
msgstr "هل أنت متأكد من ذلك؟"
|
2066 |
|
2067 |
+
#: admin/settings/classes/setup.class.php:593
|
2068 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:530
|
2069 |
msgid "Please enter %s or more characters"
|
2070 |
msgstr "الرجاء إدخال %s او اكثر من الحروف"
|
2071 |
|
2072 |
+
#: admin/settings/classes/setup.class.php:594
|
2073 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:531
|
2074 |
msgid "Searching..."
|
2075 |
msgstr "يتم البحث..."
|
2076 |
|
2077 |
+
#: admin/settings/classes/setup.class.php:595
|
2078 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:532
|
2079 |
#, fuzzy
|
2080 |
msgid "No results found."
|
2081 |
msgstr "لم نجد نتائج في"
|
2082 |
|
2083 |
+
#: admin/settings/classes/setup.class.php:696
|
2084 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:634
|
2085 |
msgid "Oops! Not allowed."
|
2086 |
msgstr ""
|
2087 |
|
2088 |
+
#: admin/settings/classes/setup.class.php:768
|
2089 |
+
#: admin/settings/classes/setup.class.php:772
|
2090 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:708
|
2091 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:712
|
2092 |
#, fuzzy
|
2322 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:76
|
2323 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:164
|
2324 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:306
|
2325 |
+
#: includes/classes/class-wp-ulike-customizer.php:73
|
2326 |
+
#: includes/classes/class-wp-ulike-customizer.php:161
|
2327 |
+
#: includes/classes/class-wp-ulike-customizer.php:303
|
2328 |
msgid "Normal"
|
2329 |
msgstr "عادي"
|
2330 |
|
2568 |
#: build/wp-ulike/admin/settings/fields/link_color/link_color.php:37
|
2569 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:94
|
2570 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:202
|
2571 |
+
#: includes/classes/class-wp-ulike-customizer.php:91
|
2572 |
+
#: includes/classes/class-wp-ulike-customizer.php:199
|
2573 |
msgid "Hover"
|
2574 |
msgstr "المرور فوق"
|
2575 |
|
2578 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:114
|
2579 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:237
|
2580 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:330
|
2581 |
+
#: includes/classes/class-wp-ulike-customizer.php:111
|
2582 |
+
#: includes/classes/class-wp-ulike-customizer.php:234
|
2583 |
+
#: includes/classes/class-wp-ulike-customizer.php:327
|
2584 |
msgid "Active"
|
2585 |
msgstr "تفعيل"
|
2586 |
|
2653 |
msgid "Backup Font Family"
|
2654 |
msgstr "النسخ الإحتياطي للخط"
|
2655 |
|
2656 |
+
#: admin/settings/fields/typography/typography.php:119
|
2657 |
+
#: admin/settings/fields/typography/typography.php:132
|
2658 |
+
#: admin/settings/fields/typography/typography.php:145
|
2659 |
+
#: admin/settings/fields/typography/typography.php:160
|
2660 |
+
#: admin/settings/fields/typography/typography.php:176
|
2661 |
+
#: admin/settings/fields/typography/typography.php:189
|
2662 |
+
#: admin/settings/fields/typography/typography.php:203
|
2663 |
+
#: admin/settings/fields/typography/typography.php:221
|
2664 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:119
|
2665 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:132
|
2666 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:145
|
2667 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:160
|
2668 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:176
|
2669 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:189
|
2670 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:203
|
2671 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:221
|
2672 |
+
#: build/wp-ulike/inc/functions/templates.php:26
|
2673 |
+
#: includes/functions/templates.php:23
|
2674 |
+
msgid "Default"
|
2675 |
+
msgstr "افتراضي"
|
2676 |
+
|
2677 |
#: admin/settings/fields/typography/typography.php:130
|
2678 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:130
|
2679 |
msgid "Font Style"
|
2877 |
msgstr "من فضلك أدخل رابط صحيح!"
|
2878 |
|
2879 |
#: build/wp-ulike/inc/classes/class-wp-ulike-ajax-listener-base.php:60
|
2880 |
+
#: includes/classes/class-wp-ulike-ajax-listener-base.php:69
|
2881 |
msgid "There was an error processing the request."
|
2882 |
msgstr ""
|
2883 |
|
2884 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:46
|
2885 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:36
|
2886 |
+
#: includes/classes/class-wp-ulike-cta-listener.php:55
|
2887 |
+
#: includes/classes/class-wp-ulike-voters-listener.php:41
|
2888 |
msgid "permission denied."
|
2889 |
msgstr ""
|
2890 |
|
2891 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:50
|
2892 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:40
|
2893 |
+
#: includes/classes/class-wp-ulike-cta-listener.php:59
|
2894 |
+
#: includes/classes/class-wp-ulike-voters-listener.php:45
|
2895 |
msgid "Invalid item type."
|
2896 |
msgstr ""
|
2897 |
|
2898 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:52
|
2899 |
+
#: includes/classes/class-wp-ulike-customizer.php:49
|
2900 |
#, fuzzy
|
2901 |
msgid "Button Templates"
|
2902 |
msgstr "نص الزر"
|
2903 |
|
2904 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:56
|
2905 |
+
#: includes/classes/class-wp-ulike-customizer.php:53
|
2906 |
#, fuzzy
|
2907 |
msgid "Template Wrapper"
|
2908 |
msgstr "متغيرات القالب"
|
2909 |
|
2910 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:61
|
2911 |
+
#: includes/classes/class-wp-ulike-customizer.php:58
|
2912 |
msgid "In this section, you can customize the template wrapper styles."
|
2913 |
msgstr ""
|
2914 |
|
2915 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:68
|
2916 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:380
|
2917 |
+
#: includes/classes/class-wp-ulike-customizer.php:65
|
2918 |
+
#: includes/classes/class-wp-ulike-customizer.php:377
|
2919 |
msgid "Typography"
|
2920 |
msgstr ""
|
2921 |
|
2932 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:475
|
2933 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:513
|
2934 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:556
|
2935 |
+
#: includes/classes/class-wp-ulike-customizer.php:78
|
2936 |
+
#: includes/classes/class-wp-ulike-customizer.php:97
|
2937 |
+
#: includes/classes/class-wp-ulike-customizer.php:117
|
2938 |
+
#: includes/classes/class-wp-ulike-customizer.php:173
|
2939 |
+
#: includes/classes/class-wp-ulike-customizer.php:212
|
2940 |
+
#: includes/classes/class-wp-ulike-customizer.php:246
|
2941 |
+
#: includes/classes/class-wp-ulike-customizer.php:314
|
2942 |
+
#: includes/classes/class-wp-ulike-customizer.php:339
|
2943 |
+
#: includes/classes/class-wp-ulike-customizer.php:396
|
2944 |
+
#: includes/classes/class-wp-ulike-customizer.php:434
|
2945 |
+
#: includes/classes/class-wp-ulike-customizer.php:472
|
2946 |
+
#: includes/classes/class-wp-ulike-customizer.php:510
|
2947 |
+
#: includes/classes/class-wp-ulike-customizer.php:553
|
2948 |
#, fuzzy
|
2949 |
msgid "Background"
|
2950 |
msgstr "حجم الخلفية"
|
2962 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:482
|
2963 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:520
|
2964 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:563
|
2965 |
+
#: includes/classes/class-wp-ulike-customizer.php:85
|
2966 |
+
#: includes/classes/class-wp-ulike-customizer.php:105
|
2967 |
+
#: includes/classes/class-wp-ulike-customizer.php:123
|
2968 |
+
#: includes/classes/class-wp-ulike-customizer.php:179
|
2969 |
+
#: includes/classes/class-wp-ulike-customizer.php:220
|
2970 |
+
#: includes/classes/class-wp-ulike-customizer.php:252
|
2971 |
+
#: includes/classes/class-wp-ulike-customizer.php:321
|
2972 |
+
#: includes/classes/class-wp-ulike-customizer.php:345
|
2973 |
+
#: includes/classes/class-wp-ulike-customizer.php:403
|
2974 |
+
#: includes/classes/class-wp-ulike-customizer.php:441
|
2975 |
+
#: includes/classes/class-wp-ulike-customizer.php:479
|
2976 |
+
#: includes/classes/class-wp-ulike-customizer.php:517
|
2977 |
+
#: includes/classes/class-wp-ulike-customizer.php:560
|
2978 |
#, fuzzy
|
2979 |
msgid "Border"
|
2980 |
msgstr "حدود الصندوق"
|
2982 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:137
|
2983 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:280
|
2984 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:358
|
2985 |
+
#: includes/classes/class-wp-ulike-customizer.php:134
|
2986 |
+
#: includes/classes/class-wp-ulike-customizer.php:277
|
2987 |
+
#: includes/classes/class-wp-ulike-customizer.php:355
|
2988 |
#, fuzzy
|
2989 |
msgid "Padding"
|
2990 |
msgstr "حشوة الصندوق"
|
2992 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:145
|
2993 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:288
|
2994 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:365
|
2995 |
+
#: includes/classes/class-wp-ulike-customizer.php:142
|
2996 |
+
#: includes/classes/class-wp-ulike-customizer.php:285
|
2997 |
+
#: includes/classes/class-wp-ulike-customizer.php:362
|
2998 |
msgid "Margin"
|
2999 |
msgstr ""
|
3000 |
|
3001 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:157
|
3002 |
+
#: includes/classes/class-wp-ulike-customizer.php:154
|
3003 |
msgid ""
|
3004 |
"In this section, you can customize the styles related to the buttons. Please "
|
3005 |
"note that some buttons have different structures (such as SVG based) and "
|
3015 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:431
|
3016 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:469
|
3017 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:507
|
3018 |
+
#: includes/classes/class-wp-ulike-customizer.php:166
|
3019 |
+
#: includes/classes/class-wp-ulike-customizer.php:205
|
3020 |
+
#: includes/classes/class-wp-ulike-customizer.php:239
|
3021 |
+
#: includes/classes/class-wp-ulike-customizer.php:308
|
3022 |
+
#: includes/classes/class-wp-ulike-customizer.php:332
|
3023 |
+
#: includes/classes/class-wp-ulike-customizer.php:390
|
3024 |
+
#: includes/classes/class-wp-ulike-customizer.php:428
|
3025 |
+
#: includes/classes/class-wp-ulike-customizer.php:466
|
3026 |
+
#: includes/classes/class-wp-ulike-customizer.php:504
|
3027 |
#, fuzzy
|
3028 |
msgid "Text Color"
|
3029 |
msgstr "لون الخط"
|
3033 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:451
|
3034 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:489
|
3035 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:527
|
3036 |
+
#: includes/classes/class-wp-ulike-customizer.php:186
|
3037 |
+
#: includes/classes/class-wp-ulike-customizer.php:410
|
3038 |
+
#: includes/classes/class-wp-ulike-customizer.php:448
|
3039 |
+
#: includes/classes/class-wp-ulike-customizer.php:486
|
3040 |
+
#: includes/classes/class-wp-ulike-customizer.php:524
|
3041 |
msgid "Image Dimensions"
|
3042 |
msgstr ""
|
3043 |
|
3044 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:196
|
3045 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:231
|
3046 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:262
|
3047 |
+
#: includes/classes/class-wp-ulike-customizer.php:193
|
3048 |
+
#: includes/classes/class-wp-ulike-customizer.php:228
|
3049 |
+
#: includes/classes/class-wp-ulike-customizer.php:259
|
3050 |
#, fuzzy
|
3051 |
msgid "Like Image"
|
3052 |
msgstr "الصورة"
|
3053 |
|
3054 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:273
|
3055 |
+
#: includes/classes/class-wp-ulike-customizer.php:270
|
3056 |
#, fuzzy
|
3057 |
msgid "Button Dimensions"
|
3058 |
msgstr "موضع الزر"
|
3059 |
|
3060 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:294
|
3061 |
+
#: includes/classes/class-wp-ulike-customizer.php:291
|
3062 |
#, fuzzy
|
3063 |
msgid "Counter"
|
3064 |
msgstr "وسط"
|
3065 |
|
3066 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:299
|
3067 |
+
#: includes/classes/class-wp-ulike-customizer.php:296
|
3068 |
msgid "In this section, you can customize the template counter styles."
|
3069 |
msgstr ""
|
3070 |
|
3071 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:373
|
3072 |
+
#: includes/classes/class-wp-ulike-customizer.php:370
|
3073 |
msgid "Toast Messages"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:388
|
3077 |
+
#: includes/classes/class-wp-ulike-customizer.php:385
|
3078 |
msgid "Info"
|
3079 |
msgstr ""
|
3080 |
|
3082 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:458
|
3083 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:496
|
3084 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:534
|
3085 |
+
#: includes/classes/class-wp-ulike-customizer.php:417
|
3086 |
+
#: includes/classes/class-wp-ulike-customizer.php:455
|
3087 |
+
#: includes/classes/class-wp-ulike-customizer.php:493
|
3088 |
+
#: includes/classes/class-wp-ulike-customizer.php:531
|
3089 |
#, fuzzy
|
3090 |
msgid "Icon Image"
|
3091 |
msgstr "صورة الزر"
|
3092 |
|
3093 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:426
|
3094 |
+
#: includes/classes/class-wp-ulike-customizer.php:423
|
3095 |
msgid "Success"
|
3096 |
msgstr ""
|
3097 |
|
3098 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:464
|
3099 |
+
#: includes/classes/class-wp-ulike-customizer.php:461
|
3100 |
msgid "Error"
|
3101 |
msgstr ""
|
3102 |
|
3103 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:502
|
3104 |
+
#: includes/classes/class-wp-ulike-customizer.php:499
|
3105 |
msgid "Warning"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:546
|
3109 |
+
#: includes/classes/class-wp-ulike-customizer.php:543
|
3110 |
#, fuzzy
|
3111 |
msgid "Likers Box"
|
3112 |
msgstr "عدد من قام بالضغط على زر الإعجاب"
|
3113 |
|
3114 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:570
|
3115 |
+
#: includes/classes/class-wp-ulike-customizer.php:567
|
3116 |
#, fuzzy
|
3117 |
msgid "Arrow Color"
|
3118 |
msgstr "لون الخط"
|
3119 |
|
3120 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:241
|
3121 |
+
#: includes/classes/class-wp-ulike-mycred.php:238
|
3122 |
msgid "Points for Liking content"
|
3123 |
msgstr ""
|
3124 |
|
3125 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:245
|
3126 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:270
|
3127 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:295
|
3128 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:320
|
3129 |
+
#: includes/classes/class-wp-ulike-mycred.php:242
|
3130 |
+
#: includes/classes/class-wp-ulike-mycred.php:267
|
3131 |
+
#: includes/classes/class-wp-ulike-mycred.php:292
|
3132 |
+
#: includes/classes/class-wp-ulike-mycred.php:317
|
3133 |
msgid "Points"
|
3134 |
msgstr "نقاط"
|
3135 |
|
3136 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:247
|
3137 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:272
|
3138 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:297
|
3139 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:322
|
3140 |
+
#: includes/classes/class-wp-ulike-mycred.php:244
|
3141 |
+
#: includes/classes/class-wp-ulike-mycred.php:269
|
3142 |
+
#: includes/classes/class-wp-ulike-mycred.php:294
|
3143 |
+
#: includes/classes/class-wp-ulike-mycred.php:319
|
3144 |
msgid "Use zero to disable."
|
3145 |
msgstr "اكتب الصفر لتعطيلها."
|
3146 |
|
3147 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:252
|
3148 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:277
|
3149 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:302
|
3150 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:327
|
3151 |
+
#: includes/classes/class-wp-ulike-mycred.php:249
|
3152 |
+
#: includes/classes/class-wp-ulike-mycred.php:274
|
3153 |
+
#: includes/classes/class-wp-ulike-mycred.php:299
|
3154 |
+
#: includes/classes/class-wp-ulike-mycred.php:324
|
3155 |
msgid "Limit"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:258
|
3159 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:283
|
3160 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:308
|
3161 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:333
|
3162 |
+
#: includes/classes/class-wp-ulike-mycred.php:255
|
3163 |
+
#: includes/classes/class-wp-ulike-mycred.php:280
|
3164 |
+
#: includes/classes/class-wp-ulike-mycred.php:305
|
3165 |
+
#: includes/classes/class-wp-ulike-mycred.php:330
|
3166 |
msgid "Log template"
|
3167 |
msgstr ""
|
3168 |
|
3169 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:266
|
3170 |
+
#: includes/classes/class-wp-ulike-mycred.php:263
|
3171 |
msgid "Points for Author Who Get Liked"
|
3172 |
msgstr ""
|
3173 |
|
3174 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:291
|
3175 |
+
#: includes/classes/class-wp-ulike-mycred.php:288
|
3176 |
msgid "Points for unliking content"
|
3177 |
msgstr ""
|
3178 |
|
3179 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:316
|
3180 |
+
#: includes/classes/class-wp-ulike-mycred.php:313
|
3181 |
msgid "Points for Author Who Get Unliked"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:341
|
3185 |
+
#: includes/classes/class-wp-ulike-mycred.php:338
|
3186 |
msgid "Limits"
|
3187 |
msgstr "حدود"
|
3188 |
|
3189 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:346
|
3190 |
+
#: includes/classes/class-wp-ulike-mycred.php:343
|
3191 |
msgid ""
|
3192 |
"%plural% is to be awarded even when item authors Like/Unlike their own item."
|
3193 |
msgstr "%plural% سيتم منحها حتى عند إعجاب او عدم إعجاب مؤلف المنشور."
|
3194 |
|
3195 |
+
#: build/wp-ulike/inc/functions/counter.php:72
|
3196 |
+
#: includes/functions/counter.php:69
|
3197 |
msgid "Please enter some value for required variables."
|
3198 |
msgstr "الرجاء إدخال قيمة للمتغيرات المطلوبة."
|
3199 |
|
3200 |
+
#: build/wp-ulike/inc/functions/counter.php:86
|
3201 |
+
#: includes/functions/counter.php:83
|
3202 |
msgid "Table info is empty."
|
3203 |
msgstr "جدول المعلومات فارغ"
|
3204 |
|
3205 |
+
#: build/wp-ulike/inc/functions/templates.php:38
|
3206 |
+
#: includes/functions/templates.php:35
|
3207 |
msgid "Twitter Heart"
|
3208 |
msgstr "قلب تويتر"
|
3209 |
|
3210 |
+
#: build/wp-ulike/inc/functions/templates.php:44
|
3211 |
+
#: includes/functions/templates.php:41
|
3212 |
msgid "Animated Heart"
|
3213 |
msgstr "قلب متحرك"
|
3214 |
|
3215 |
+
#: build/wp-ulike/inc/hooks/shortcodes.php:146
|
3216 |
+
#: includes/hooks/shortcodes.php:143
|
3217 |
msgid "Error receiving input parameters"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
+
#: build/wp-ulike/inc/hooks/third-party.php:120
|
3221 |
+
#: includes/hooks/third-party.php:116
|
3222 |
msgid "WP ULike Activity"
|
3223 |
msgstr "نشاطات وردبرس یولایک"
|
3224 |
|
3225 |
+
#: build/wp-ulike/inc/hooks/third-party.php:135
|
3226 |
+
#: includes/hooks/third-party.php:131
|
3227 |
msgid "Votes"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
+
#: build/wp-ulike/inc/hooks/third-party.php:344
|
3231 |
+
#: includes/hooks/third-party.php:340
|
3232 |
msgid "posts"
|
3233 |
msgstr ""
|
3234 |
|
3235 |
+
#: build/wp-ulike/inc/hooks/third-party.php:351
|
3236 |
+
#: includes/hooks/third-party.php:347
|
3237 |
msgid "comments"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: build/wp-ulike/inc/hooks/third-party.php:357
|
3241 |
+
#: includes/hooks/third-party.php:353
|
3242 |
msgid "activities"
|
3243 |
msgstr ""
|
3244 |
|
3245 |
+
#: build/wp-ulike/inc/hooks/third-party.php:365
|
3246 |
+
#: includes/hooks/third-party.php:361
|
3247 |
msgid "topics"
|
3248 |
msgstr ""
|
3249 |
|
3250 |
+
#: build/wp-ulike/inc/hooks/third-party.php:368
|
3251 |
+
#: includes/hooks/third-party.php:364
|
3252 |
msgid "replies"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
+
#: build/wp-ulike/inc/hooks/third-party.php:380
|
3256 |
+
#: includes/hooks/third-party.php:376
|
3257 |
msgid "You have %d new %s likes"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
+
#: build/wp-ulike/inc/hooks/third-party.php:384
|
3261 |
+
#: includes/hooks/third-party.php:380
|
3262 |
msgid "%s liked one of your %s"
|
3263 |
msgstr ""
|
3264 |
|
3265 |
+
#: build/wp-ulike/inc/hooks/third-party.php:428
|
3266 |
+
#: includes/hooks/third-party.php:424
|
3267 |
msgid "New activity liked"
|
3268 |
msgstr ""
|
3269 |
|
3270 |
+
#: build/wp-ulike/inc/hooks/third-party.php:433
|
3271 |
+
#: includes/hooks/third-party.php:429
|
3272 |
msgid "New comment liked"
|
3273 |
msgstr ""
|
3274 |
|
3275 |
+
#: build/wp-ulike/inc/hooks/third-party.php:438
|
3276 |
+
#: includes/hooks/third-party.php:434
|
3277 |
msgid "New post liked"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: build/wp-ulike/inc/hooks/third-party.php:443
|
3281 |
+
#: includes/hooks/third-party.php:439
|
3282 |
msgid "New topic liked"
|
3283 |
msgstr "موضوع جديد تم الإعجاب به"
|
3284 |
|
3285 |
+
#: build/wp-ulike/inc/hooks/third-party.php:797
|
3286 |
+
#: includes/hooks/third-party.php:795
|
3287 |
+
msgid "Points for liking content"
|
3288 |
+
msgstr ""
|
3289 |
+
|
3290 |
+
#: build/wp-ulike/inc/hooks/third-party.php:798
|
3291 |
+
#: includes/hooks/third-party.php:796
|
3292 |
msgid ""
|
3293 |
"This hook award / deducts points from users who Like/Unlike any content of "
|
3294 |
"WordPress, bbPress, BuddyPress & ..."
|
3295 |
msgstr ""
|
3296 |
|
3297 |
+
#: build/wp-ulike/inc/hooks/third-party.php:814
|
3298 |
+
#: includes/hooks/third-party.php:812
|
3299 |
msgid "Liking Content"
|
3300 |
msgstr ""
|
3301 |
|
3302 |
+
#: build/wp-ulike/inc/hooks/third-party.php:815
|
3303 |
+
#: includes/hooks/third-party.php:813
|
3304 |
msgid "Liked Content"
|
3305 |
msgstr "المحتوى الحاصل على إعجاب"
|
3306 |
|
3307 |
+
#: build/wp-ulike/inc/hooks/third-party.php:816
|
3308 |
+
#: includes/hooks/third-party.php:814
|
3309 |
msgid "Unliking Content"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
+
#: build/wp-ulike/inc/hooks/third-party.php:817
|
3313 |
+
#: includes/hooks/third-party.php:815
|
3314 |
msgid "Unliked Content"
|
3315 |
msgstr ""
|
3316 |
|
3317 |
+
#: build/wp-ulike/inc/hooks/third-party.php:835
|
3318 |
+
#: includes/hooks/third-party.php:833
|
3319 |
msgid "Recent Posts Liked"
|
3320 |
msgstr "مشاركات تم الإعجاب بها مؤخراً"
|
3321 |
|
3322 |
+
#: build/wp-ulike/inc/hooks/third-party.php:840
|
3323 |
+
#: includes/hooks/third-party.php:838
|
3324 |
msgid "Recent Comments Liked"
|
3325 |
msgstr "تعليقات تم الإعجاب بها مؤخراً"
|
3326 |
|
3327 |
+
#: build/wp-ulike/inc/hooks/third-party.php:871
|
3328 |
+
#: build/wp-ulike/inc/hooks/third-party.php:897
|
3329 |
+
#: build/wp-ulike/inc/hooks/third-party.php:927
|
3330 |
+
#: build/wp-ulike/inc/hooks/third-party.php:957
|
3331 |
+
#: includes/hooks/third-party.php:869 includes/hooks/third-party.php:895
|
3332 |
+
#: includes/hooks/third-party.php:925 includes/hooks/third-party.php:955
|
3333 |
msgid "This user has not made any likes."
|
3334 |
msgstr ""
|
3335 |
|
3337 |
msgid "WP ULike"
|
3338 |
msgstr "وردبرس یولایک"
|
3339 |
|
3340 |
+
#: build/wp-ulike/wp-ulike.php:594 wp-ulike.php:76
|
3341 |
msgid ""
|
3342 |
"You are using two instances of WP ULike plugin at same time, please deactive "
|
3343 |
"one of them."
|
languages/wp-ulike-de.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"PO-Revision-Date: 2019-06-19 16:23:52+0000\n"
|
9 |
"Language: de\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -33,11 +33,11 @@ msgid "It's Ok!"
|
|
33 |
msgstr ""
|
34 |
|
35 |
#: admin/admin-functions.php:240
|
36 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
37 |
#: build/wp-ulike/admin/admin-functions.php:243
|
38 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
39 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
40 |
-
#:
|
41 |
msgid "Button"
|
42 |
msgstr ""
|
43 |
|
@@ -95,15 +95,17 @@ msgstr ""
|
|
95 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
96 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
97 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
98 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
99 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
|
|
100 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
101 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
102 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
103 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
104 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
105 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
106 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
|
|
107 |
msgid "Get More Information"
|
108 |
msgstr ""
|
109 |
|
@@ -143,25 +145,25 @@ msgstr ""
|
|
143 |
|
144 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
145 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
146 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
147 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
148 |
#: admin/classes/class-wp-ulike-widget.php:355
|
149 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
150 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
151 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
152 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
153 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
154 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
155 |
msgid "Like"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
159 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
160 |
msgid "Are you sure to remove this item?!"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
164 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
165 |
msgid "No information was found in this database!"
|
166 |
msgstr ""
|
167 |
|
@@ -197,13 +199,13 @@ msgstr ""
|
|
197 |
#: admin/includes/templates/statistics.php:124
|
198 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
199 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
200 |
-
#: build/wp-ulike/wp-ulike.php:
|
201 |
msgid "Statistics"
|
202 |
msgstr ""
|
203 |
|
204 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
205 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
206 |
-
#: build/wp-ulike/wp-ulike.php:
|
207 |
msgid "About"
|
208 |
msgstr ""
|
209 |
|
@@ -230,7 +232,7 @@ msgstr "Logdateien"
|
|
230 |
|
231 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
232 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
233 |
-
#: build/wp-ulike/wp-ulike.php:
|
234 |
msgid "Settings"
|
235 |
msgstr ""
|
236 |
|
@@ -271,12 +273,12 @@ msgstr ""
|
|
271 |
|
272 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
273 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
274 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
275 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
276 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
277 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
278 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
279 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
280 |
msgid "Unlike"
|
281 |
msgstr ""
|
282 |
|
@@ -376,53 +378,53 @@ msgid "With this option, you can disable all plugin assets on these pages."
|
|
376 |
msgstr ""
|
377 |
|
378 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
379 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
380 |
#: admin/includes/templates/about.php:46
|
381 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
382 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
383 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
384 |
msgid "Home"
|
385 |
msgstr "Home"
|
386 |
|
387 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
388 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
389 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
390 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
391 |
msgid "Singular"
|
392 |
msgstr ""
|
393 |
|
394 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
395 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
396 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
397 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
398 |
msgid "Archives"
|
399 |
msgstr "Archives"
|
400 |
|
401 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
402 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
403 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
404 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
405 |
msgid "Categories"
|
406 |
msgstr "Katgeorien"
|
407 |
|
408 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
409 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
410 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
411 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
412 |
msgid "Search Results"
|
413 |
msgstr "Suchergebnisse"
|
414 |
|
415 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
416 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
417 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
418 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
419 |
msgid "Tags"
|
420 |
msgstr "Schlagwörter"
|
421 |
|
422 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
423 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
424 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
425 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
426 |
msgid "Author Page"
|
427 |
msgstr ""
|
428 |
|
@@ -488,12 +490,12 @@ msgstr ""
|
|
488 |
|
489 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
490 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
491 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
492 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
493 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
494 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
495 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
496 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
497 |
msgid "Allowed Variables:"
|
498 |
msgstr ""
|
499 |
|
@@ -615,204 +617,223 @@ msgid ""
|
|
615 |
"with just a few simple clicks."
|
616 |
msgstr ""
|
617 |
|
618 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
619 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
620 |
msgid "Translations"
|
621 |
msgstr "Übersetzungen"
|
622 |
|
623 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
624 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
625 |
msgid "Strings"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
629 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
630 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:30
|
631 |
-
#:
|
632 |
msgid "You have already registered a vote."
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
636 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
637 |
msgid "Already Voted Message"
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
641 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
642 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:21
|
643 |
-
#:
|
644 |
msgid "You Should Login To Submit Your Like"
|
645 |
msgstr ""
|
646 |
|
647 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
648 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
649 |
msgid "Login Required Message"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
653 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
654 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:39
|
655 |
-
#:
|
656 |
msgid "Thanks! You Liked This."
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
660 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
661 |
msgid "Liked Notice Message"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
665 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
666 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:48
|
667 |
-
#:
|
668 |
msgid "Sorry! You unliked this."
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
672 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
673 |
msgid "Unliked Notice Message"
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
677 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
678 |
#: build/wp-ulike/inc/functions/templates.php:73
|
679 |
#: build/wp-ulike/inc/functions/templates.php:125
|
680 |
#: build/wp-ulike/inc/functions/templates.php:177
|
681 |
#: build/wp-ulike/inc/functions/templates.php:227
|
682 |
-
#:
|
683 |
-
#:
|
684 |
msgid "Like Button"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
688 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
689 |
msgid "Like Button Aria Label"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
693 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
694 |
msgid "Developer Tools"
|
695 |
msgstr ""
|
696 |
|
697 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
698 |
#: admin/settings/fields/typography/typography.php:295
|
699 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
700 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:295
|
701 |
msgid "Custom Style"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
705 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
706 |
msgid "Custom Spinner"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
710 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
711 |
msgid "Enable Inline Custom CSS"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
715 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
716 |
msgid ""
|
717 |
"If you don't want to use \"custom.css\" file for any reason, by activating "
|
718 |
"this option, the styles will be added to the page as inline."
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
722 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
723 |
msgid "REST API"
|
724 |
msgstr ""
|
725 |
|
726 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
727 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
728 |
msgid "How to Get Started with WP ULike REST API?"
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
732 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
733 |
msgid ""
|
734 |
"Have you ever tried to get data from online sources like WP ULike logs and "
|
735 |
"use them in your Application or website? the solution is Rest API!"
|
736 |
msgstr ""
|
737 |
|
738 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
739 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
740 |
msgid "Optimization"
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
744 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
745 |
msgid "How to Optimize or Repair WP ULike Database Tables?"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
749 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
750 |
msgid ""
|
751 |
"Have you ever optimized your WP ULike database? Optimizing your database "
|
752 |
"cleans up unwanted data which reduces database size and improves performance."
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
756 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
757 |
msgid "Select a Template"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
761 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
762 |
msgid "Display online preview"
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
766 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
767 |
msgid "Here"
|
768 |
msgstr ""
|
769 |
|
770 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
771 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
772 |
msgid "Button Type"
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
776 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
777 |
msgid "Image"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
781 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
782 |
msgid "Text"
|
783 |
msgstr "Text"
|
784 |
|
785 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
786 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
787 |
msgid ""
|
788 |
"Enter your custom button text in the fields above. You can also use HTML "
|
789 |
"tags in these fields."
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
793 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
794 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
795 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
796 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
797 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
798 |
msgid "Button Text"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
802 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
803 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
804 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
805 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
806 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
807 |
msgid "Button Image"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
811 |
#: admin/classes/class-wp-ulike-settings.php:65
|
812 |
#: admin/classes/class-wp-ulike-settings.php:72
|
813 |
#: admin/classes/class-wp-ulike-settings.php:78
|
814 |
#: admin/classes/class-wp-ulike-settings.php:84
|
815 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
816 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:68
|
817 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:75
|
818 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:81
|
@@ -820,236 +841,219 @@ msgstr ""
|
|
820 |
msgid "Automatic display"
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
824 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
825 |
msgid "Button Position"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
829 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
830 |
msgid "Top of Content"
|
831 |
msgstr ""
|
832 |
|
833 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
834 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
835 |
msgid "Bottom of Content"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
839 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
840 |
msgid "Top and Bottom"
|
841 |
msgstr ""
|
842 |
|
843 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
844 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
845 |
msgid "Automatic Display Restriction"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
849 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
850 |
msgid "With this option, you can disable automatic display on these pages."
|
851 |
msgstr ""
|
852 |
|
853 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
854 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
855 |
msgid "Post Types Filter"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
859 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
860 |
msgid "Select a post type"
|
861 |
msgstr ""
|
862 |
|
863 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
864 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
865 |
msgid "Make these post types an exception and display the button on them."
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
869 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
870 |
msgid "Display Counter Value Condition"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
874 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
875 |
msgid "Visible"
|
876 |
msgstr ""
|
877 |
|
878 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
879 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
880 |
msgid "Hidden"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
884 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
885 |
msgid "Only Logged In Users"
|
886 |
msgstr ""
|
887 |
|
888 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
889 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
890 |
msgid "Hide Zero Counter Box"
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
894 |
#: admin/classes/class-wp-ulike-settings.php:58
|
895 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
896 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:61
|
897 |
msgid "Logging Method"
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
901 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
902 |
msgid "No Limit"
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
906 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
907 |
msgid "Cookie"
|
908 |
msgstr ""
|
909 |
|
910 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
911 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
912 |
#, fuzzy
|
913 |
msgid "Username/IP"
|
914 |
msgstr "Benutzername"
|
915 |
|
916 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
917 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
918 |
#, fuzzy
|
919 |
msgid "Username/IP + Cookie"
|
920 |
msgstr "Benutzername"
|
921 |
|
922 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
923 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
924 |
msgid ""
|
925 |
"\"No Limit\": There will be no restrictions and users can submit their "
|
926 |
"points each time they refresh the page. In this option, it will not be "
|
927 |
"possible to resubmit reverse points (un-like/un-dislike)."
|
928 |
msgstr ""
|
929 |
|
930 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
931 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
932 |
msgid ""
|
933 |
"\"Cookie\": By saving users' cookies, it is possible to submit points only "
|
934 |
"once per user and in case of re-clicking, the appropriate message will be "
|
935 |
"displayed."
|
936 |
msgstr ""
|
937 |
|
938 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
939 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
940 |
msgid ""
|
941 |
"Username/IP: By saving the username/IP of users, It supports the reverse "
|
942 |
"feature (un-like and un-dislike) and users can change their reactions and "
|
943 |
"are only allowed to have a specific point type."
|
944 |
msgstr ""
|
945 |
|
946 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
947 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
948 |
msgid "Only logged in users"
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
952 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
953 |
msgid "Display Type"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
957 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
958 |
msgid "Template"
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
962 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
963 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:138
|
964 |
-
#:
|
965 |
msgid "You need to login in order to like this post: "
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
969 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
970 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:140
|
971 |
-
#:
|
972 |
msgid "click here"
|
973 |
msgstr ""
|
974 |
|
975 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
976 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
977 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
978 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
979 |
msgid "Custom HTML Template"
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
983 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
984 |
msgid "Display Likers Box"
|
985 |
msgstr ""
|
986 |
|
987 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
988 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
989 |
msgid "User List Arrange"
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
993 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
994 |
msgid "Ascending"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
998 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
999 |
msgid "Descending"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1003 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1004 |
msgid "Hide For Anonymous Users"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1008 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1009 |
msgid "Likers Box Display"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1013 |
-
#:
|
1014 |
-
|
1015 |
-
|
1016 |
-
#: admin/settings/fields/typography/typography.php:160
|
1017 |
-
#: admin/settings/fields/typography/typography.php:176
|
1018 |
-
#: admin/settings/fields/typography/typography.php:189
|
1019 |
-
#: admin/settings/fields/typography/typography.php:203
|
1020 |
-
#: admin/settings/fields/typography/typography.php:221
|
1021 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:810
|
1022 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:119
|
1023 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:132
|
1024 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:145
|
1025 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:160
|
1026 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:176
|
1027 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:189
|
1028 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:203
|
1029 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:221
|
1030 |
-
#: build/wp-ulike/inc/functions/templates.php:26 inc/functions/templates.php:23
|
1031 |
-
msgid "Default"
|
1032 |
-
msgstr "Standard"
|
1033 |
|
1034 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1035 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1036 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:550
|
1037 |
-
#:
|
1038 |
msgid "Popover"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1042 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1043 |
msgid "Size of Gravatars"
|
1044 |
msgstr ""
|
1045 |
|
1046 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1047 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1048 |
msgid "Likers Count"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1052 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1053 |
msgid "The number of users to show in the users liked box"
|
1054 |
msgstr ""
|
1055 |
|
@@ -1139,14 +1143,14 @@ msgstr ""
|
|
1139 |
|
1140 |
#: admin/classes/class-wp-ulike-settings.php:59
|
1141 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:62
|
1142 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1143 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1144 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1145 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1146 |
-
#:
|
1147 |
-
#:
|
1148 |
-
#:
|
1149 |
-
#:
|
1150 |
msgid "required"
|
1151 |
msgstr ""
|
1152 |
|
@@ -1468,7 +1472,8 @@ msgstr ""
|
|
1468 |
|
1469 |
#: admin/classes/class-wp-ulike-widget.php:543
|
1470 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:546
|
1471 |
-
#: build/wp-ulike/inc/functions/templates.php:32
|
|
|
1472 |
msgid "Heart"
|
1473 |
msgstr ""
|
1474 |
|
@@ -1777,16 +1782,16 @@ msgstr ""
|
|
1777 |
msgid "WP ULike Premium"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
-
#: admin/includes/templates/go-pro.php:
|
1781 |
-
#: build/wp-ulike/admin/includes/templates/go-pro.php:
|
1782 |
msgid ""
|
1783 |
"Elementor is the #1 WordPress page builder. In the new version of the WP "
|
1784 |
"ULike PRO plugin we fully support this page builder and have a variety of "
|
1785 |
"widgets & controllers that make life much easier for you."
|
1786 |
msgstr ""
|
1787 |
|
1788 |
-
#: admin/includes/templates/go-pro.php:
|
1789 |
-
#: build/wp-ulike/admin/includes/templates/go-pro.php:
|
1790 |
msgid ""
|
1791 |
"Just drag your desired widget and drop it in your Elementor sections, "
|
1792 |
"customize as you go and enjoy your like and dislike buttons on your contents."
|
@@ -1857,39 +1862,39 @@ msgstr ""
|
|
1857 |
msgid "Topic Title"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
-
#: admin/settings/classes/admin-options.class.php:
|
1861 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:225
|
1862 |
msgid "Error while saving the changes."
|
1863 |
msgstr ""
|
1864 |
|
1865 |
-
#: admin/settings/classes/admin-options.class.php:
|
1866 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:285
|
1867 |
msgid "Settings successfully imported."
|
1868 |
msgstr ""
|
1869 |
|
1870 |
-
#: admin/settings/classes/admin-options.class.php:
|
1871 |
-
#: admin/settings/classes/admin-options.class.php:
|
1872 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:297
|
1873 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:313
|
1874 |
msgid "Default settings restored."
|
1875 |
msgstr ""
|
1876 |
|
1877 |
-
#: admin/settings/classes/admin-options.class.php:
|
1878 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:384
|
1879 |
msgid "Settings saved."
|
1880 |
msgstr "Einstellungen gespeichert."
|
1881 |
|
1882 |
-
#: admin/settings/classes/admin-options.class.php:
|
1883 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:563
|
1884 |
msgid "You have unsaved changes, save your changes!"
|
1885 |
msgstr ""
|
1886 |
|
1887 |
-
#: admin/settings/classes/admin-options.class.php:
|
1888 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:565
|
1889 |
msgid "show all settings"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
-
#: admin/settings/classes/admin-options.class.php:
|
1893 |
#: admin/settings/fields/icon/icon.php:57 admin/settings/fields/map/map.php:23
|
1894 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:567
|
1895 |
#: build/wp-ulike/admin/settings/fields/icon/icon.php:57
|
@@ -1897,43 +1902,43 @@ msgstr ""
|
|
1897 |
msgid "Search..."
|
1898 |
msgstr ""
|
1899 |
|
1900 |
-
#: admin/settings/classes/admin-options.class.php:
|
1901 |
-
#: admin/settings/classes/admin-options.class.php:
|
1902 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1903 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1904 |
msgid "Save"
|
1905 |
msgstr ""
|
1906 |
|
1907 |
-
#: admin/settings/classes/admin-options.class.php:
|
1908 |
-
#: admin/settings/classes/admin-options.class.php:
|
1909 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1910 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1911 |
msgid "Saving..."
|
1912 |
msgstr ""
|
1913 |
|
1914 |
-
#: admin/settings/classes/admin-options.class.php:
|
1915 |
-
#: admin/settings/classes/admin-options.class.php:
|
1916 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1917 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1918 |
msgid "Reset Section"
|
1919 |
msgstr ""
|
1920 |
|
1921 |
-
#: admin/settings/classes/admin-options.class.php:
|
1922 |
-
#: admin/settings/classes/admin-options.class.php:
|
1923 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1924 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1925 |
msgid "Are you sure to reset this section options?"
|
1926 |
msgstr ""
|
1927 |
|
1928 |
-
#: admin/settings/classes/admin-options.class.php:
|
1929 |
-
#: admin/settings/classes/admin-options.class.php:
|
1930 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1931 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1932 |
msgid "Reset All"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
-
#: admin/settings/classes/admin-options.class.php:
|
1936 |
-
#: admin/settings/classes/admin-options.class.php:
|
1937 |
#: admin/settings/classes/comment-options.class.php:215
|
1938 |
#: admin/settings/classes/metabox-options.class.php:293
|
1939 |
#: admin/settings/fields/backup/backup.php:31
|
@@ -1945,14 +1950,14 @@ msgstr ""
|
|
1945 |
msgid "Reset"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: admin/settings/classes/admin-options.class.php:
|
1949 |
-
#: admin/settings/classes/admin-options.class.php:
|
1950 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1951 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1952 |
msgid "Are you sure you want to reset all settings to default values?"
|
1953 |
msgstr ""
|
1954 |
|
1955 |
-
#: admin/settings/classes/admin-options.class.php:
|
1956 |
#: admin/settings/classes/comment-options.class.php:198
|
1957 |
#: admin/settings/classes/metabox-options.class.php:276
|
1958 |
#: admin/settings/fields/button_set/button_set.php:56
|
@@ -1985,33 +1990,33 @@ msgstr ""
|
|
1985 |
msgid "Cancel"
|
1986 |
msgstr ""
|
1987 |
|
1988 |
-
#: admin/settings/classes/setup.class.php:
|
1989 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:529
|
1990 |
msgid "Are you sure?"
|
1991 |
msgstr ""
|
1992 |
|
1993 |
-
#: admin/settings/classes/setup.class.php:
|
1994 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:530
|
1995 |
msgid "Please enter %s or more characters"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: admin/settings/classes/setup.class.php:
|
1999 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:531
|
2000 |
msgid "Searching..."
|
2001 |
msgstr ""
|
2002 |
|
2003 |
-
#: admin/settings/classes/setup.class.php:
|
2004 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:532
|
2005 |
msgid "No results found."
|
2006 |
msgstr ""
|
2007 |
|
2008 |
-
#: admin/settings/classes/setup.class.php:
|
2009 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:634
|
2010 |
msgid "Oops! Not allowed."
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: admin/settings/classes/setup.class.php:
|
2014 |
-
#: admin/settings/classes/setup.class.php:
|
2015 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:708
|
2016 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:712
|
2017 |
msgid "Field not found!"
|
@@ -2245,9 +2250,9 @@ msgstr ""
|
|
2245 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:76
|
2246 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:164
|
2247 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:306
|
2248 |
-
#:
|
2249 |
-
#:
|
2250 |
-
#:
|
2251 |
msgid "Normal"
|
2252 |
msgstr ""
|
2253 |
|
@@ -2486,8 +2491,8 @@ msgstr ""
|
|
2486 |
#: build/wp-ulike/admin/settings/fields/link_color/link_color.php:37
|
2487 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:94
|
2488 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:202
|
2489 |
-
#:
|
2490 |
-
#:
|
2491 |
msgid "Hover"
|
2492 |
msgstr ""
|
2493 |
|
@@ -2496,9 +2501,9 @@ msgstr ""
|
|
2496 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:114
|
2497 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:237
|
2498 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:330
|
2499 |
-
#:
|
2500 |
-
#:
|
2501 |
-
#:
|
2502 |
msgid "Active"
|
2503 |
msgstr ""
|
2504 |
|
@@ -2571,6 +2576,27 @@ msgstr ""
|
|
2571 |
msgid "Backup Font Family"
|
2572 |
msgstr ""
|
2573 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2574 |
#: admin/settings/fields/typography/typography.php:130
|
2575 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:130
|
2576 |
msgid "Font Style"
|
@@ -2769,43 +2795,43 @@ msgid "Please enter a valid URL."
|
|
2769 |
msgstr ""
|
2770 |
|
2771 |
#: build/wp-ulike/inc/classes/class-wp-ulike-ajax-listener-base.php:60
|
2772 |
-
#:
|
2773 |
msgid "There was an error processing the request."
|
2774 |
msgstr ""
|
2775 |
|
2776 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:
|
2777 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:
|
2778 |
-
#:
|
2779 |
-
#:
|
2780 |
msgid "permission denied."
|
2781 |
msgstr ""
|
2782 |
|
2783 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:
|
2784 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:
|
2785 |
-
#:
|
2786 |
-
#:
|
2787 |
msgid "Invalid item type."
|
2788 |
msgstr ""
|
2789 |
|
2790 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:52
|
2791 |
-
#:
|
2792 |
msgid "Button Templates"
|
2793 |
msgstr ""
|
2794 |
|
2795 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:56
|
2796 |
-
#:
|
2797 |
msgid "Template Wrapper"
|
2798 |
msgstr ""
|
2799 |
|
2800 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:61
|
2801 |
-
#:
|
2802 |
msgid "In this section, you can customize the template wrapper styles."
|
2803 |
msgstr ""
|
2804 |
|
2805 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:68
|
2806 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:380
|
2807 |
-
#:
|
2808 |
-
#:
|
2809 |
msgid "Typography"
|
2810 |
msgstr ""
|
2811 |
|
@@ -2822,19 +2848,19 @@ msgstr ""
|
|
2822 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:475
|
2823 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:513
|
2824 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:556
|
2825 |
-
#:
|
2826 |
-
#:
|
2827 |
-
#:
|
2828 |
-
#:
|
2829 |
-
#:
|
2830 |
-
#:
|
2831 |
-
#:
|
2832 |
-
#:
|
2833 |
-
#:
|
2834 |
-
#:
|
2835 |
-
#:
|
2836 |
-
#:
|
2837 |
-
#:
|
2838 |
msgid "Background"
|
2839 |
msgstr ""
|
2840 |
|
@@ -2851,42 +2877,42 @@ msgstr ""
|
|
2851 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:482
|
2852 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:520
|
2853 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:563
|
2854 |
-
#:
|
2855 |
-
#:
|
2856 |
-
#:
|
2857 |
-
#:
|
2858 |
-
#:
|
2859 |
-
#:
|
2860 |
-
#:
|
2861 |
-
#:
|
2862 |
-
#:
|
2863 |
-
#:
|
2864 |
-
#:
|
2865 |
-
#:
|
2866 |
-
#:
|
2867 |
msgid "Border"
|
2868 |
msgstr ""
|
2869 |
|
2870 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:137
|
2871 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:280
|
2872 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:358
|
2873 |
-
#:
|
2874 |
-
#:
|
2875 |
-
#:
|
2876 |
msgid "Padding"
|
2877 |
msgstr ""
|
2878 |
|
2879 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:145
|
2880 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:288
|
2881 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:365
|
2882 |
-
#:
|
2883 |
-
#:
|
2884 |
-
#:
|
2885 |
msgid "Margin"
|
2886 |
msgstr ""
|
2887 |
|
2888 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:157
|
2889 |
-
#:
|
2890 |
msgid ""
|
2891 |
"In this section, you can customize the styles related to the buttons. Please "
|
2892 |
"note that some buttons have different structures (such as SVG based) and "
|
@@ -2902,15 +2928,15 @@ msgstr ""
|
|
2902 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:431
|
2903 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:469
|
2904 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:507
|
2905 |
-
#:
|
2906 |
-
#:
|
2907 |
-
#:
|
2908 |
-
#:
|
2909 |
-
#:
|
2910 |
-
#:
|
2911 |
-
#:
|
2912 |
-
#:
|
2913 |
-
#:
|
2914 |
msgid "Text Color"
|
2915 |
msgstr ""
|
2916 |
|
@@ -2919,46 +2945,46 @@ msgstr ""
|
|
2919 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:451
|
2920 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:489
|
2921 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:527
|
2922 |
-
#:
|
2923 |
-
#:
|
2924 |
-
#:
|
2925 |
-
#:
|
2926 |
-
#:
|
2927 |
msgid "Image Dimensions"
|
2928 |
msgstr ""
|
2929 |
|
2930 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:196
|
2931 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:231
|
2932 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:262
|
2933 |
-
#:
|
2934 |
-
#:
|
2935 |
-
#:
|
2936 |
msgid "Like Image"
|
2937 |
msgstr ""
|
2938 |
|
2939 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:273
|
2940 |
-
#:
|
2941 |
msgid "Button Dimensions"
|
2942 |
msgstr ""
|
2943 |
|
2944 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:294
|
2945 |
-
#:
|
2946 |
#, fuzzy
|
2947 |
msgid "Counter"
|
2948 |
msgstr "Zentriert"
|
2949 |
|
2950 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:299
|
2951 |
-
#:
|
2952 |
msgid "In this section, you can customize the template counter styles."
|
2953 |
msgstr ""
|
2954 |
|
2955 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:373
|
2956 |
-
#:
|
2957 |
msgid "Toast Messages"
|
2958 |
msgstr ""
|
2959 |
|
2960 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:388
|
2961 |
-
#:
|
2962 |
msgid "Info"
|
2963 |
msgstr ""
|
2964 |
|
@@ -2966,217 +2992,251 @@ msgstr ""
|
|
2966 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:458
|
2967 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:496
|
2968 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:534
|
2969 |
-
#:
|
2970 |
-
#:
|
2971 |
-
#:
|
2972 |
-
#:
|
2973 |
msgid "Icon Image"
|
2974 |
msgstr ""
|
2975 |
|
2976 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:426
|
2977 |
-
#:
|
2978 |
msgid "Success"
|
2979 |
msgstr ""
|
2980 |
|
2981 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:464
|
2982 |
-
#:
|
2983 |
msgid "Error"
|
2984 |
msgstr ""
|
2985 |
|
2986 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:502
|
2987 |
-
#:
|
2988 |
msgid "Warning"
|
2989 |
msgstr ""
|
2990 |
|
2991 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:546
|
2992 |
-
#:
|
2993 |
msgid "Likers Box"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:570
|
2997 |
-
#:
|
2998 |
msgid "Arrow Color"
|
2999 |
msgstr ""
|
3000 |
|
3001 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3002 |
-
#:
|
3003 |
msgid "Points for Liking content"
|
3004 |
msgstr ""
|
3005 |
|
3006 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3007 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3008 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3009 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3010 |
-
#:
|
3011 |
-
#:
|
3012 |
-
#:
|
3013 |
-
#:
|
3014 |
msgid "Points"
|
3015 |
msgstr ""
|
3016 |
|
3017 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3018 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3019 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3020 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3021 |
-
#:
|
3022 |
-
#:
|
3023 |
-
#:
|
3024 |
-
#:
|
3025 |
msgid "Use zero to disable."
|
3026 |
msgstr ""
|
3027 |
|
3028 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3029 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3030 |
-
#: inc/classes/class-wp-ulike-mycred.php:
|
3031 |
-
#: inc/classes/class-wp-ulike-mycred.php:
|
|
|
|
|
|
|
|
|
3032 |
msgid "Limit"
|
3033 |
msgstr ""
|
3034 |
|
3035 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3036 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3037 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3038 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3039 |
-
#:
|
3040 |
-
#:
|
3041 |
-
#:
|
3042 |
-
#:
|
3043 |
msgid "Log template"
|
3044 |
msgstr ""
|
3045 |
|
3046 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3047 |
-
#:
|
3048 |
msgid "Points for Author Who Get Liked"
|
3049 |
msgstr ""
|
3050 |
|
3051 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3052 |
-
#:
|
3053 |
msgid "Points for unliking content"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3057 |
-
#:
|
3058 |
msgid "Points for Author Who Get Unliked"
|
3059 |
msgstr ""
|
3060 |
|
3061 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3062 |
-
#:
|
3063 |
msgid "Limits"
|
3064 |
msgstr ""
|
3065 |
|
3066 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3067 |
-
#:
|
3068 |
msgid ""
|
3069 |
"%plural% is to be awarded even when item authors Like/Unlike their own item."
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: build/wp-ulike/inc/functions/counter.php:72
|
|
|
3073 |
msgid "Please enter some value for required variables."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: build/wp-ulike/inc/functions/counter.php:86
|
|
|
3077 |
msgid "Table info is empty."
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: build/wp-ulike/inc/functions/templates.php:38
|
|
|
3081 |
msgid "Twitter Heart"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: build/wp-ulike/inc/functions/templates.php:44
|
|
|
3085 |
msgid "Animated Heart"
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: build/wp-ulike/inc/hooks/shortcodes.php:146
|
|
|
3089 |
msgid "Error receiving input parameters"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: build/wp-ulike/inc/hooks/third-party.php:120
|
|
|
3093 |
msgid "WP ULike Activity"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: build/wp-ulike/inc/hooks/third-party.php:135
|
|
|
3097 |
msgid "Votes"
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: build/wp-ulike/inc/hooks/third-party.php:344
|
|
|
3101 |
msgid "posts"
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: build/wp-ulike/inc/hooks/third-party.php:351
|
|
|
3105 |
msgid "comments"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: build/wp-ulike/inc/hooks/third-party.php:357
|
|
|
3109 |
msgid "activities"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: build/wp-ulike/inc/hooks/third-party.php:365
|
|
|
3113 |
msgid "topics"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
-
#: build/wp-ulike/inc/hooks/third-party.php:368
|
|
|
3117 |
msgid "replies"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: build/wp-ulike/inc/hooks/third-party.php:380
|
|
|
3121 |
msgid "You have %d new %s likes"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: build/wp-ulike/inc/hooks/third-party.php:384
|
|
|
3125 |
msgid "%s liked one of your %s"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: build/wp-ulike/inc/hooks/third-party.php:428
|
|
|
3129 |
msgid "New activity liked"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
-
#: build/wp-ulike/inc/hooks/third-party.php:433
|
|
|
3133 |
msgid "New comment liked"
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: build/wp-ulike/inc/hooks/third-party.php:438
|
|
|
3137 |
msgid "New post liked"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: build/wp-ulike/inc/hooks/third-party.php:443
|
|
|
3141 |
msgid "New topic liked"
|
3142 |
msgstr ""
|
3143 |
|
3144 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
3145 |
msgid ""
|
3146 |
"This hook award / deducts points from users who Like/Unlike any content of "
|
3147 |
"WordPress, bbPress, BuddyPress & ..."
|
3148 |
msgstr ""
|
3149 |
|
3150 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3151 |
msgid "Liking Content"
|
3152 |
msgstr ""
|
3153 |
|
3154 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3155 |
msgid "Liked Content"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3159 |
msgid "Unliking Content"
|
3160 |
msgstr ""
|
3161 |
|
3162 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3163 |
msgid "Unliked Content"
|
3164 |
msgstr ""
|
3165 |
|
3166 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3167 |
msgid "Recent Posts Liked"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3171 |
msgid "Recent Comments Liked"
|
3172 |
msgstr ""
|
3173 |
|
3174 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3175 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3176 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3177 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3178 |
-
#:
|
3179 |
-
#:
|
3180 |
msgid "This user has not made any likes."
|
3181 |
msgstr ""
|
3182 |
|
@@ -3184,7 +3244,7 @@ msgstr ""
|
|
3184 |
msgid "WP ULike"
|
3185 |
msgstr ""
|
3186 |
|
3187 |
-
#: build/wp-ulike/wp-ulike.php:
|
3188 |
msgid ""
|
3189 |
"You are using two instances of WP ULike plugin at same time, please deactive "
|
3190 |
"one of them."
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
+
"POT-Creation-Date: 2021-04-04 15:20:05+00:00\n"
|
8 |
"PO-Revision-Date: 2019-06-19 16:23:52+0000\n"
|
9 |
"Language: de\n"
|
10 |
"MIME-Version: 1.0\n"
|
33 |
msgstr ""
|
34 |
|
35 |
#: admin/admin-functions.php:240
|
36 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:786
|
37 |
#: build/wp-ulike/admin/admin-functions.php:243
|
38 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:789
|
39 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
40 |
+
#: includes/classes/class-wp-ulike-customizer.php:149
|
41 |
msgid "Button"
|
42 |
msgstr ""
|
43 |
|
95 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
96 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
97 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
98 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:443
|
99 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
100 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:589
|
101 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
102 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
103 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
104 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
105 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
106 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:446
|
107 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
108 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:592
|
109 |
msgid "Get More Information"
|
110 |
msgstr ""
|
111 |
|
145 |
|
146 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
147 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
148 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:640
|
149 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:670
|
150 |
#: admin/classes/class-wp-ulike-widget.php:355
|
151 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
152 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
153 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
154 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:643
|
155 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:673
|
156 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
157 |
msgid "Like"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:126
|
161 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:109
|
162 |
msgid "Are you sure to remove this item?!"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:127
|
166 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:110
|
167 |
msgid "No information was found in this database!"
|
168 |
msgstr ""
|
169 |
|
199 |
#: admin/includes/templates/statistics.php:124
|
200 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
201 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
202 |
+
#: build/wp-ulike/wp-ulike.php:179 includes/plugin.php:103
|
203 |
msgid "Statistics"
|
204 |
msgstr ""
|
205 |
|
206 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
207 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
208 |
+
#: build/wp-ulike/wp-ulike.php:180 includes/plugin.php:104
|
209 |
msgid "About"
|
210 |
msgstr ""
|
211 |
|
232 |
|
233 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
234 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
235 |
+
#: build/wp-ulike/wp-ulike.php:178 includes/plugin.php:102
|
236 |
msgid "Settings"
|
237 |
msgstr ""
|
238 |
|
273 |
|
274 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
275 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
276 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:651
|
277 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:682
|
278 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
279 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
280 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:654
|
281 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:685
|
282 |
msgid "Unlike"
|
283 |
msgstr ""
|
284 |
|
378 |
msgstr ""
|
379 |
|
380 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
381 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:723
|
382 |
#: admin/includes/templates/about.php:46
|
383 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
384 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:726
|
385 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
386 |
msgid "Home"
|
387 |
msgstr "Home"
|
388 |
|
389 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
390 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:724
|
391 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
392 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:727
|
393 |
msgid "Singular"
|
394 |
msgstr ""
|
395 |
|
396 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
397 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:725
|
398 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
399 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:728
|
400 |
msgid "Archives"
|
401 |
msgstr "Archives"
|
402 |
|
403 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
404 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:726
|
405 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
406 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:729
|
407 |
msgid "Categories"
|
408 |
msgstr "Katgeorien"
|
409 |
|
410 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
411 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:727
|
412 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
413 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:730
|
414 |
msgid "Search Results"
|
415 |
msgstr "Suchergebnisse"
|
416 |
|
417 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
418 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:728
|
419 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
420 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:731
|
421 |
msgid "Tags"
|
422 |
msgstr "Schlagwörter"
|
423 |
|
424 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
425 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:729
|
426 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
427 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:732
|
428 |
msgid "Author Page"
|
429 |
msgstr ""
|
430 |
|
490 |
|
491 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
492 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
493 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:794
|
494 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:850
|
495 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
496 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
497 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:797
|
498 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:853
|
499 |
msgid "Allowed Variables:"
|
500 |
msgstr ""
|
501 |
|
617 |
"with just a few simple clicks."
|
618 |
msgstr ""
|
619 |
|
620 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:430
|
621 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:433
|
622 |
+
msgid "Share Buttons"
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:437
|
626 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:440
|
627 |
+
msgid "Easy Social Share Buttons for WordPress"
|
628 |
+
msgstr ""
|
629 |
+
|
630 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:438
|
631 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:441
|
632 |
+
msgid ""
|
633 |
+
"WP ULike Share buttons enables your website users to share the content over "
|
634 |
+
"Facebook, Twitter, Google, Linkedin, Whatsapp, Tumblr, Pinterest, Reddit and "
|
635 |
+
"over 23 more social sharing services. This is the Simplest and Smoothest "
|
636 |
+
"Social Sharing service with optimized and great looking vector icons."
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:462
|
640 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:465
|
641 |
msgid "Translations"
|
642 |
msgstr "Übersetzungen"
|
643 |
|
644 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:471
|
645 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:474
|
646 |
msgid "Strings"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:477
|
650 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:480
|
651 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:30
|
652 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:35
|
653 |
msgid "You have already registered a vote."
|
654 |
msgstr ""
|
655 |
|
656 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:478
|
657 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:481
|
658 |
msgid "Already Voted Message"
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:483
|
662 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:486
|
663 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:21
|
664 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:26
|
665 |
msgid "You Should Login To Submit Your Like"
|
666 |
msgstr ""
|
667 |
|
668 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:484
|
669 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:487
|
670 |
msgid "Login Required Message"
|
671 |
msgstr ""
|
672 |
|
673 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:489
|
674 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:492
|
675 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:39
|
676 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:44
|
677 |
msgid "Thanks! You Liked This."
|
678 |
msgstr ""
|
679 |
|
680 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:490
|
681 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:493
|
682 |
msgid "Liked Notice Message"
|
683 |
msgstr ""
|
684 |
|
685 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:495
|
686 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:498
|
687 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:48
|
688 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:53
|
689 |
msgid "Sorry! You unliked this."
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:496
|
693 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:499
|
694 |
msgid "Unliked Notice Message"
|
695 |
msgstr ""
|
696 |
|
697 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:501
|
698 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:504
|
699 |
#: build/wp-ulike/inc/functions/templates.php:73
|
700 |
#: build/wp-ulike/inc/functions/templates.php:125
|
701 |
#: build/wp-ulike/inc/functions/templates.php:177
|
702 |
#: build/wp-ulike/inc/functions/templates.php:227
|
703 |
+
#: includes/functions/templates.php:70 includes/functions/templates.php:122
|
704 |
+
#: includes/functions/templates.php:174 includes/functions/templates.php:224
|
705 |
msgid "Like Button"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:502
|
709 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:505
|
710 |
msgid "Like Button Aria Label"
|
711 |
msgstr ""
|
712 |
|
713 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:512
|
714 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:515
|
715 |
msgid "Developer Tools"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:518
|
719 |
#: admin/settings/fields/typography/typography.php:295
|
720 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:521
|
721 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:295
|
722 |
msgid "Custom Style"
|
723 |
msgstr ""
|
724 |
|
725 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:532
|
726 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:535
|
727 |
msgid "Custom Spinner"
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:539
|
731 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:542
|
732 |
msgid "Enable Inline Custom CSS"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:540
|
736 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:543
|
737 |
msgid ""
|
738 |
"If you don't want to use \"custom.css\" file for any reason, by activating "
|
739 |
"this option, the styles will be added to the page as inline."
|
740 |
msgstr ""
|
741 |
|
742 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:547
|
743 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:550
|
744 |
msgid "REST API"
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:554
|
748 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:557
|
749 |
msgid "How to Get Started with WP ULike REST API?"
|
750 |
msgstr ""
|
751 |
|
752 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:555
|
753 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:558
|
754 |
msgid ""
|
755 |
"Have you ever tried to get data from online sources like WP ULike logs and "
|
756 |
"use them in your Application or website? the solution is Rest API!"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:576
|
760 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:579
|
761 |
msgid "Optimization"
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:583
|
765 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:586
|
766 |
msgid "How to Optimize or Repair WP ULike Database Tables?"
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:584
|
770 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:587
|
771 |
msgid ""
|
772 |
"Have you ever optimized your WP ULike database? Optimizing your database "
|
773 |
"cleans up unwanted data which reduces database size and improves performance."
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:616
|
777 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:619
|
778 |
msgid "Select a Template"
|
779 |
msgstr ""
|
780 |
|
781 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:617
|
782 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:620
|
783 |
msgid "Display online preview"
|
784 |
msgstr ""
|
785 |
|
786 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:617
|
787 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:620
|
788 |
msgid "Here"
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:625
|
792 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:628
|
793 |
msgid "Button Type"
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:628
|
797 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:631
|
798 |
msgid "Image"
|
799 |
msgstr ""
|
800 |
|
801 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:629
|
802 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:632
|
803 |
msgid "Text"
|
804 |
msgstr "Text"
|
805 |
|
806 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:636
|
807 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:639
|
808 |
msgid ""
|
809 |
"Enter your custom button text in the fields above. You can also use HTML "
|
810 |
"tags in these fields."
|
811 |
msgstr ""
|
812 |
|
813 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:637
|
814 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:645
|
815 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:656
|
816 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:640
|
817 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:648
|
818 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:659
|
819 |
msgid "Button Text"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:667
|
823 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:675
|
824 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:687
|
825 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:670
|
826 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:678
|
827 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:690
|
828 |
msgid "Button Image"
|
829 |
msgstr ""
|
830 |
|
831 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:700
|
832 |
#: admin/classes/class-wp-ulike-settings.php:65
|
833 |
#: admin/classes/class-wp-ulike-settings.php:72
|
834 |
#: admin/classes/class-wp-ulike-settings.php:78
|
835 |
#: admin/classes/class-wp-ulike-settings.php:84
|
836 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:703
|
837 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:68
|
838 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:75
|
839 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:81
|
841 |
msgid "Automatic display"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:705
|
845 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:708
|
846 |
msgid "Button Position"
|
847 |
msgstr ""
|
848 |
|
849 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:708
|
850 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:711
|
851 |
msgid "Top of Content"
|
852 |
msgstr ""
|
853 |
|
854 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:709
|
855 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:712
|
856 |
msgid "Bottom of Content"
|
857 |
msgstr ""
|
858 |
|
859 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:710
|
860 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:713
|
861 |
msgid "Top and Bottom"
|
862 |
msgstr ""
|
863 |
|
864 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:717
|
865 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:720
|
866 |
msgid "Automatic Display Restriction"
|
867 |
msgstr ""
|
868 |
|
869 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:718
|
870 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:721
|
871 |
msgid "With this option, you can disable automatic display on these pages."
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:736
|
875 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:739
|
876 |
msgid "Post Types Filter"
|
877 |
msgstr ""
|
878 |
|
879 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:737
|
880 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:740
|
881 |
msgid "Select a post type"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:738
|
885 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:741
|
886 |
msgid "Make these post types an exception and display the button on them."
|
887 |
msgstr ""
|
888 |
|
889 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:748
|
890 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:751
|
891 |
msgid "Display Counter Value Condition"
|
892 |
msgstr ""
|
893 |
|
894 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:751
|
895 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:754
|
896 |
msgid "Visible"
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:752
|
900 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:755
|
901 |
msgid "Hidden"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:753
|
905 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:756
|
906 |
msgid "Only Logged In Users"
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:759
|
910 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:762
|
911 |
msgid "Hide Zero Counter Box"
|
912 |
msgstr ""
|
913 |
|
914 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:765
|
915 |
#: admin/classes/class-wp-ulike-settings.php:58
|
916 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:768
|
917 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:61
|
918 |
msgid "Logging Method"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:767
|
922 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:770
|
923 |
msgid "No Limit"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:768
|
927 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:771
|
928 |
msgid "Cookie"
|
929 |
msgstr ""
|
930 |
|
931 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:769
|
932 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:772
|
933 |
#, fuzzy
|
934 |
msgid "Username/IP"
|
935 |
msgstr "Benutzername"
|
936 |
|
937 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:770
|
938 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:773
|
939 |
#, fuzzy
|
940 |
msgid "Username/IP + Cookie"
|
941 |
msgstr "Benutzername"
|
942 |
|
943 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
944 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
945 |
msgid ""
|
946 |
"\"No Limit\": There will be no restrictions and users can submit their "
|
947 |
"points each time they refresh the page. In this option, it will not be "
|
948 |
"possible to resubmit reverse points (un-like/un-dislike)."
|
949 |
msgstr ""
|
950 |
|
951 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
952 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
953 |
msgid ""
|
954 |
"\"Cookie\": By saving users' cookies, it is possible to submit points only "
|
955 |
"once per user and in case of re-clicking, the appropriate message will be "
|
956 |
"displayed."
|
957 |
msgstr ""
|
958 |
|
959 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
960 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
961 |
msgid ""
|
962 |
"Username/IP: By saving the username/IP of users, It supports the reverse "
|
963 |
"feature (un-like and un-dislike) and users can change their reactions and "
|
964 |
"are only allowed to have a specific point type."
|
965 |
msgstr ""
|
966 |
|
967 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:778
|
968 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:781
|
969 |
msgid "Only logged in users"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:783
|
973 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:786
|
974 |
msgid "Display Type"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:785
|
978 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:788
|
979 |
msgid "Template"
|
980 |
msgstr ""
|
981 |
|
982 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:800
|
983 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:803
|
984 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:138
|
985 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:143
|
986 |
msgid "You need to login in order to like this post: "
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:802
|
990 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:805
|
991 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:140
|
992 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:145
|
993 |
msgid "click here"
|
994 |
msgstr ""
|
995 |
|
996 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:804
|
997 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:849
|
998 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:807
|
999 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:852
|
1000 |
msgid "Custom HTML Template"
|
1001 |
msgstr ""
|
1002 |
|
1003 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:810
|
1004 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:813
|
1005 |
msgid "Display Likers Box"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:815
|
1009 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:818
|
1010 |
msgid "User List Arrange"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:818
|
1014 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:821
|
1015 |
msgid "Ascending"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:819
|
1019 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:822
|
1020 |
msgid "Descending"
|
1021 |
msgstr ""
|
1022 |
|
1023 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:827
|
1024 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:830
|
1025 |
msgid "Hide For Anonymous Users"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:833
|
1029 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:836
|
1030 |
msgid "Likers Box Display"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:836
|
1034 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:839
|
1035 |
+
msgid "Inline"
|
1036 |
+
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1037 |
|
1038 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:837
|
1039 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:840
|
1040 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:550
|
1041 |
+
#: includes/classes/class-wp-ulike-customizer.php:547
|
1042 |
msgid "Popover"
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:863
|
1046 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:866
|
1047 |
msgid "Size of Gravatars"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:871
|
1051 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:874
|
1052 |
msgid "Likers Count"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:872
|
1056 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:875
|
1057 |
msgid "The number of users to show in the users liked box"
|
1058 |
msgstr ""
|
1059 |
|
1143 |
|
1144 |
#: admin/classes/class-wp-ulike-settings.php:59
|
1145 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:62
|
1146 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:259
|
1147 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:284
|
1148 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:309
|
1149 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:334
|
1150 |
+
#: includes/classes/class-wp-ulike-mycred.php:256
|
1151 |
+
#: includes/classes/class-wp-ulike-mycred.php:281
|
1152 |
+
#: includes/classes/class-wp-ulike-mycred.php:306
|
1153 |
+
#: includes/classes/class-wp-ulike-mycred.php:331
|
1154 |
msgid "required"
|
1155 |
msgstr ""
|
1156 |
|
1472 |
|
1473 |
#: admin/classes/class-wp-ulike-widget.php:543
|
1474 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:546
|
1475 |
+
#: build/wp-ulike/inc/functions/templates.php:32
|
1476 |
+
#: includes/functions/templates.php:29
|
1477 |
msgid "Heart"
|
1478 |
msgstr ""
|
1479 |
|
1782 |
msgid "WP ULike Premium"
|
1783 |
msgstr ""
|
1784 |
|
1785 |
+
#: admin/includes/templates/go-pro.php:140
|
1786 |
+
#: build/wp-ulike/admin/includes/templates/go-pro.php:143
|
1787 |
msgid ""
|
1788 |
"Elementor is the #1 WordPress page builder. In the new version of the WP "
|
1789 |
"ULike PRO plugin we fully support this page builder and have a variety of "
|
1790 |
"widgets & controllers that make life much easier for you."
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: admin/includes/templates/go-pro.php:140
|
1794 |
+
#: build/wp-ulike/admin/includes/templates/go-pro.php:143
|
1795 |
msgid ""
|
1796 |
"Just drag your desired widget and drop it in your Elementor sections, "
|
1797 |
"customize as you go and enjoy your like and dislike buttons on your contents."
|
1862 |
msgid "Topic Title"
|
1863 |
msgstr ""
|
1864 |
|
1865 |
+
#: admin/settings/classes/admin-options.class.php:226
|
1866 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:225
|
1867 |
msgid "Error while saving the changes."
|
1868 |
msgstr ""
|
1869 |
|
1870 |
+
#: admin/settings/classes/admin-options.class.php:286
|
1871 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:285
|
1872 |
msgid "Settings successfully imported."
|
1873 |
msgstr ""
|
1874 |
|
1875 |
+
#: admin/settings/classes/admin-options.class.php:298
|
1876 |
+
#: admin/settings/classes/admin-options.class.php:314
|
1877 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:297
|
1878 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:313
|
1879 |
msgid "Default settings restored."
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: admin/settings/classes/admin-options.class.php:385
|
1883 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:384
|
1884 |
msgid "Settings saved."
|
1885 |
msgstr "Einstellungen gespeichert."
|
1886 |
|
1887 |
+
#: admin/settings/classes/admin-options.class.php:565
|
1888 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:563
|
1889 |
msgid "You have unsaved changes, save your changes!"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
+
#: admin/settings/classes/admin-options.class.php:567
|
1893 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:565
|
1894 |
msgid "show all settings"
|
1895 |
msgstr ""
|
1896 |
|
1897 |
+
#: admin/settings/classes/admin-options.class.php:569
|
1898 |
#: admin/settings/fields/icon/icon.php:57 admin/settings/fields/map/map.php:23
|
1899 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:567
|
1900 |
#: build/wp-ulike/admin/settings/fields/icon/icon.php:57
|
1902 |
msgid "Search..."
|
1903 |
msgstr ""
|
1904 |
|
1905 |
+
#: admin/settings/classes/admin-options.class.php:572
|
1906 |
+
#: admin/settings/classes/admin-options.class.php:695
|
1907 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1908 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1909 |
msgid "Save"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
+
#: admin/settings/classes/admin-options.class.php:572
|
1913 |
+
#: admin/settings/classes/admin-options.class.php:695
|
1914 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1915 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1916 |
msgid "Saving..."
|
1917 |
msgstr ""
|
1918 |
|
1919 |
+
#: admin/settings/classes/admin-options.class.php:573
|
1920 |
+
#: admin/settings/classes/admin-options.class.php:696
|
1921 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1922 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1923 |
msgid "Reset Section"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
+
#: admin/settings/classes/admin-options.class.php:573
|
1927 |
+
#: admin/settings/classes/admin-options.class.php:696
|
1928 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1929 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1930 |
msgid "Are you sure to reset this section options?"
|
1931 |
msgstr ""
|
1932 |
|
1933 |
+
#: admin/settings/classes/admin-options.class.php:574
|
1934 |
+
#: admin/settings/classes/admin-options.class.php:697
|
1935 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1936 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1937 |
msgid "Reset All"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: admin/settings/classes/admin-options.class.php:574
|
1941 |
+
#: admin/settings/classes/admin-options.class.php:697
|
1942 |
#: admin/settings/classes/comment-options.class.php:215
|
1943 |
#: admin/settings/classes/metabox-options.class.php:293
|
1944 |
#: admin/settings/fields/backup/backup.php:31
|
1950 |
msgid "Reset"
|
1951 |
msgstr ""
|
1952 |
|
1953 |
+
#: admin/settings/classes/admin-options.class.php:574
|
1954 |
+
#: admin/settings/classes/admin-options.class.php:697
|
1955 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1956 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1957 |
msgid "Are you sure you want to reset all settings to default values?"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
+
#: admin/settings/classes/admin-options.class.php:672
|
1961 |
#: admin/settings/classes/comment-options.class.php:198
|
1962 |
#: admin/settings/classes/metabox-options.class.php:276
|
1963 |
#: admin/settings/fields/button_set/button_set.php:56
|
1990 |
msgid "Cancel"
|
1991 |
msgstr ""
|
1992 |
|
1993 |
+
#: admin/settings/classes/setup.class.php:592
|
1994 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:529
|
1995 |
msgid "Are you sure?"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
+
#: admin/settings/classes/setup.class.php:593
|
1999 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:530
|
2000 |
msgid "Please enter %s or more characters"
|
2001 |
msgstr ""
|
2002 |
|
2003 |
+
#: admin/settings/classes/setup.class.php:594
|
2004 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:531
|
2005 |
msgid "Searching..."
|
2006 |
msgstr ""
|
2007 |
|
2008 |
+
#: admin/settings/classes/setup.class.php:595
|
2009 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:532
|
2010 |
msgid "No results found."
|
2011 |
msgstr ""
|
2012 |
|
2013 |
+
#: admin/settings/classes/setup.class.php:696
|
2014 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:634
|
2015 |
msgid "Oops! Not allowed."
|
2016 |
msgstr ""
|
2017 |
|
2018 |
+
#: admin/settings/classes/setup.class.php:768
|
2019 |
+
#: admin/settings/classes/setup.class.php:772
|
2020 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:708
|
2021 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:712
|
2022 |
msgid "Field not found!"
|
2250 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:76
|
2251 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:164
|
2252 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:306
|
2253 |
+
#: includes/classes/class-wp-ulike-customizer.php:73
|
2254 |
+
#: includes/classes/class-wp-ulike-customizer.php:161
|
2255 |
+
#: includes/classes/class-wp-ulike-customizer.php:303
|
2256 |
msgid "Normal"
|
2257 |
msgstr ""
|
2258 |
|
2491 |
#: build/wp-ulike/admin/settings/fields/link_color/link_color.php:37
|
2492 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:94
|
2493 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:202
|
2494 |
+
#: includes/classes/class-wp-ulike-customizer.php:91
|
2495 |
+
#: includes/classes/class-wp-ulike-customizer.php:199
|
2496 |
msgid "Hover"
|
2497 |
msgstr ""
|
2498 |
|
2501 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:114
|
2502 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:237
|
2503 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:330
|
2504 |
+
#: includes/classes/class-wp-ulike-customizer.php:111
|
2505 |
+
#: includes/classes/class-wp-ulike-customizer.php:234
|
2506 |
+
#: includes/classes/class-wp-ulike-customizer.php:327
|
2507 |
msgid "Active"
|
2508 |
msgstr ""
|
2509 |
|
2576 |
msgid "Backup Font Family"
|
2577 |
msgstr ""
|
2578 |
|
2579 |
+
#: admin/settings/fields/typography/typography.php:119
|
2580 |
+
#: admin/settings/fields/typography/typography.php:132
|
2581 |
+
#: admin/settings/fields/typography/typography.php:145
|
2582 |
+
#: admin/settings/fields/typography/typography.php:160
|
2583 |
+
#: admin/settings/fields/typography/typography.php:176
|
2584 |
+
#: admin/settings/fields/typography/typography.php:189
|
2585 |
+
#: admin/settings/fields/typography/typography.php:203
|
2586 |
+
#: admin/settings/fields/typography/typography.php:221
|
2587 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:119
|
2588 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:132
|
2589 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:145
|
2590 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:160
|
2591 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:176
|
2592 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:189
|
2593 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:203
|
2594 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:221
|
2595 |
+
#: build/wp-ulike/inc/functions/templates.php:26
|
2596 |
+
#: includes/functions/templates.php:23
|
2597 |
+
msgid "Default"
|
2598 |
+
msgstr "Standard"
|
2599 |
+
|
2600 |
#: admin/settings/fields/typography/typography.php:130
|
2601 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:130
|
2602 |
msgid "Font Style"
|
2795 |
msgstr ""
|
2796 |
|
2797 |
#: build/wp-ulike/inc/classes/class-wp-ulike-ajax-listener-base.php:60
|
2798 |
+
#: includes/classes/class-wp-ulike-ajax-listener-base.php:69
|
2799 |
msgid "There was an error processing the request."
|
2800 |
msgstr ""
|
2801 |
|
2802 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:46
|
2803 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:36
|
2804 |
+
#: includes/classes/class-wp-ulike-cta-listener.php:55
|
2805 |
+
#: includes/classes/class-wp-ulike-voters-listener.php:41
|
2806 |
msgid "permission denied."
|
2807 |
msgstr ""
|
2808 |
|
2809 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:50
|
2810 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:40
|
2811 |
+
#: includes/classes/class-wp-ulike-cta-listener.php:59
|
2812 |
+
#: includes/classes/class-wp-ulike-voters-listener.php:45
|
2813 |
msgid "Invalid item type."
|
2814 |
msgstr ""
|
2815 |
|
2816 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:52
|
2817 |
+
#: includes/classes/class-wp-ulike-customizer.php:49
|
2818 |
msgid "Button Templates"
|
2819 |
msgstr ""
|
2820 |
|
2821 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:56
|
2822 |
+
#: includes/classes/class-wp-ulike-customizer.php:53
|
2823 |
msgid "Template Wrapper"
|
2824 |
msgstr ""
|
2825 |
|
2826 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:61
|
2827 |
+
#: includes/classes/class-wp-ulike-customizer.php:58
|
2828 |
msgid "In this section, you can customize the template wrapper styles."
|
2829 |
msgstr ""
|
2830 |
|
2831 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:68
|
2832 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:380
|
2833 |
+
#: includes/classes/class-wp-ulike-customizer.php:65
|
2834 |
+
#: includes/classes/class-wp-ulike-customizer.php:377
|
2835 |
msgid "Typography"
|
2836 |
msgstr ""
|
2837 |
|
2848 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:475
|
2849 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:513
|
2850 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:556
|
2851 |
+
#: includes/classes/class-wp-ulike-customizer.php:78
|
2852 |
+
#: includes/classes/class-wp-ulike-customizer.php:97
|
2853 |
+
#: includes/classes/class-wp-ulike-customizer.php:117
|
2854 |
+
#: includes/classes/class-wp-ulike-customizer.php:173
|
2855 |
+
#: includes/classes/class-wp-ulike-customizer.php:212
|
2856 |
+
#: includes/classes/class-wp-ulike-customizer.php:246
|
2857 |
+
#: includes/classes/class-wp-ulike-customizer.php:314
|
2858 |
+
#: includes/classes/class-wp-ulike-customizer.php:339
|
2859 |
+
#: includes/classes/class-wp-ulike-customizer.php:396
|
2860 |
+
#: includes/classes/class-wp-ulike-customizer.php:434
|
2861 |
+
#: includes/classes/class-wp-ulike-customizer.php:472
|
2862 |
+
#: includes/classes/class-wp-ulike-customizer.php:510
|
2863 |
+
#: includes/classes/class-wp-ulike-customizer.php:553
|
2864 |
msgid "Background"
|
2865 |
msgstr ""
|
2866 |
|
2877 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:482
|
2878 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:520
|
2879 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:563
|
2880 |
+
#: includes/classes/class-wp-ulike-customizer.php:85
|
2881 |
+
#: includes/classes/class-wp-ulike-customizer.php:105
|
2882 |
+
#: includes/classes/class-wp-ulike-customizer.php:123
|
2883 |
+
#: includes/classes/class-wp-ulike-customizer.php:179
|
2884 |
+
#: includes/classes/class-wp-ulike-customizer.php:220
|
2885 |
+
#: includes/classes/class-wp-ulike-customizer.php:252
|
2886 |
+
#: includes/classes/class-wp-ulike-customizer.php:321
|
2887 |
+
#: includes/classes/class-wp-ulike-customizer.php:345
|
2888 |
+
#: includes/classes/class-wp-ulike-customizer.php:403
|
2889 |
+
#: includes/classes/class-wp-ulike-customizer.php:441
|
2890 |
+
#: includes/classes/class-wp-ulike-customizer.php:479
|
2891 |
+
#: includes/classes/class-wp-ulike-customizer.php:517
|
2892 |
+
#: includes/classes/class-wp-ulike-customizer.php:560
|
2893 |
msgid "Border"
|
2894 |
msgstr ""
|
2895 |
|
2896 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:137
|
2897 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:280
|
2898 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:358
|
2899 |
+
#: includes/classes/class-wp-ulike-customizer.php:134
|
2900 |
+
#: includes/classes/class-wp-ulike-customizer.php:277
|
2901 |
+
#: includes/classes/class-wp-ulike-customizer.php:355
|
2902 |
msgid "Padding"
|
2903 |
msgstr ""
|
2904 |
|
2905 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:145
|
2906 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:288
|
2907 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:365
|
2908 |
+
#: includes/classes/class-wp-ulike-customizer.php:142
|
2909 |
+
#: includes/classes/class-wp-ulike-customizer.php:285
|
2910 |
+
#: includes/classes/class-wp-ulike-customizer.php:362
|
2911 |
msgid "Margin"
|
2912 |
msgstr ""
|
2913 |
|
2914 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:157
|
2915 |
+
#: includes/classes/class-wp-ulike-customizer.php:154
|
2916 |
msgid ""
|
2917 |
"In this section, you can customize the styles related to the buttons. Please "
|
2918 |
"note that some buttons have different structures (such as SVG based) and "
|
2928 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:431
|
2929 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:469
|
2930 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:507
|
2931 |
+
#: includes/classes/class-wp-ulike-customizer.php:166
|
2932 |
+
#: includes/classes/class-wp-ulike-customizer.php:205
|
2933 |
+
#: includes/classes/class-wp-ulike-customizer.php:239
|
2934 |
+
#: includes/classes/class-wp-ulike-customizer.php:308
|
2935 |
+
#: includes/classes/class-wp-ulike-customizer.php:332
|
2936 |
+
#: includes/classes/class-wp-ulike-customizer.php:390
|
2937 |
+
#: includes/classes/class-wp-ulike-customizer.php:428
|
2938 |
+
#: includes/classes/class-wp-ulike-customizer.php:466
|
2939 |
+
#: includes/classes/class-wp-ulike-customizer.php:504
|
2940 |
msgid "Text Color"
|
2941 |
msgstr ""
|
2942 |
|
2945 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:451
|
2946 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:489
|
2947 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:527
|
2948 |
+
#: includes/classes/class-wp-ulike-customizer.php:186
|
2949 |
+
#: includes/classes/class-wp-ulike-customizer.php:410
|
2950 |
+
#: includes/classes/class-wp-ulike-customizer.php:448
|
2951 |
+
#: includes/classes/class-wp-ulike-customizer.php:486
|
2952 |
+
#: includes/classes/class-wp-ulike-customizer.php:524
|
2953 |
msgid "Image Dimensions"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:196
|
2957 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:231
|
2958 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:262
|
2959 |
+
#: includes/classes/class-wp-ulike-customizer.php:193
|
2960 |
+
#: includes/classes/class-wp-ulike-customizer.php:228
|
2961 |
+
#: includes/classes/class-wp-ulike-customizer.php:259
|
2962 |
msgid "Like Image"
|
2963 |
msgstr ""
|
2964 |
|
2965 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:273
|
2966 |
+
#: includes/classes/class-wp-ulike-customizer.php:270
|
2967 |
msgid "Button Dimensions"
|
2968 |
msgstr ""
|
2969 |
|
2970 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:294
|
2971 |
+
#: includes/classes/class-wp-ulike-customizer.php:291
|
2972 |
#, fuzzy
|
2973 |
msgid "Counter"
|
2974 |
msgstr "Zentriert"
|
2975 |
|
2976 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:299
|
2977 |
+
#: includes/classes/class-wp-ulike-customizer.php:296
|
2978 |
msgid "In this section, you can customize the template counter styles."
|
2979 |
msgstr ""
|
2980 |
|
2981 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:373
|
2982 |
+
#: includes/classes/class-wp-ulike-customizer.php:370
|
2983 |
msgid "Toast Messages"
|
2984 |
msgstr ""
|
2985 |
|
2986 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:388
|
2987 |
+
#: includes/classes/class-wp-ulike-customizer.php:385
|
2988 |
msgid "Info"
|
2989 |
msgstr ""
|
2990 |
|
2992 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:458
|
2993 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:496
|
2994 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:534
|
2995 |
+
#: includes/classes/class-wp-ulike-customizer.php:417
|
2996 |
+
#: includes/classes/class-wp-ulike-customizer.php:455
|
2997 |
+
#: includes/classes/class-wp-ulike-customizer.php:493
|
2998 |
+
#: includes/classes/class-wp-ulike-customizer.php:531
|
2999 |
msgid "Icon Image"
|
3000 |
msgstr ""
|
3001 |
|
3002 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:426
|
3003 |
+
#: includes/classes/class-wp-ulike-customizer.php:423
|
3004 |
msgid "Success"
|
3005 |
msgstr ""
|
3006 |
|
3007 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:464
|
3008 |
+
#: includes/classes/class-wp-ulike-customizer.php:461
|
3009 |
msgid "Error"
|
3010 |
msgstr ""
|
3011 |
|
3012 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:502
|
3013 |
+
#: includes/classes/class-wp-ulike-customizer.php:499
|
3014 |
msgid "Warning"
|
3015 |
msgstr ""
|
3016 |
|
3017 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:546
|
3018 |
+
#: includes/classes/class-wp-ulike-customizer.php:543
|
3019 |
msgid "Likers Box"
|
3020 |
msgstr ""
|
3021 |
|
3022 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:570
|
3023 |
+
#: includes/classes/class-wp-ulike-customizer.php:567
|
3024 |
msgid "Arrow Color"
|
3025 |
msgstr ""
|
3026 |
|
3027 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:241
|
3028 |
+
#: includes/classes/class-wp-ulike-mycred.php:238
|
3029 |
msgid "Points for Liking content"
|
3030 |
msgstr ""
|
3031 |
|
3032 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:245
|
3033 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:270
|
3034 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:295
|
3035 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:320
|
3036 |
+
#: includes/classes/class-wp-ulike-mycred.php:242
|
3037 |
+
#: includes/classes/class-wp-ulike-mycred.php:267
|
3038 |
+
#: includes/classes/class-wp-ulike-mycred.php:292
|
3039 |
+
#: includes/classes/class-wp-ulike-mycred.php:317
|
3040 |
msgid "Points"
|
3041 |
msgstr ""
|
3042 |
|
3043 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:247
|
3044 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:272
|
3045 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:297
|
3046 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:322
|
3047 |
+
#: includes/classes/class-wp-ulike-mycred.php:244
|
3048 |
+
#: includes/classes/class-wp-ulike-mycred.php:269
|
3049 |
+
#: includes/classes/class-wp-ulike-mycred.php:294
|
3050 |
+
#: includes/classes/class-wp-ulike-mycred.php:319
|
3051 |
msgid "Use zero to disable."
|
3052 |
msgstr ""
|
3053 |
|
3054 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:252
|
3055 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:277
|
3056 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:302
|
3057 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:327
|
3058 |
+
#: includes/classes/class-wp-ulike-mycred.php:249
|
3059 |
+
#: includes/classes/class-wp-ulike-mycred.php:274
|
3060 |
+
#: includes/classes/class-wp-ulike-mycred.php:299
|
3061 |
+
#: includes/classes/class-wp-ulike-mycred.php:324
|
3062 |
msgid "Limit"
|
3063 |
msgstr ""
|
3064 |
|
3065 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:258
|
3066 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:283
|
3067 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:308
|
3068 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:333
|
3069 |
+
#: includes/classes/class-wp-ulike-mycred.php:255
|
3070 |
+
#: includes/classes/class-wp-ulike-mycred.php:280
|
3071 |
+
#: includes/classes/class-wp-ulike-mycred.php:305
|
3072 |
+
#: includes/classes/class-wp-ulike-mycred.php:330
|
3073 |
msgid "Log template"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:266
|
3077 |
+
#: includes/classes/class-wp-ulike-mycred.php:263
|
3078 |
msgid "Points for Author Who Get Liked"
|
3079 |
msgstr ""
|
3080 |
|
3081 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:291
|
3082 |
+
#: includes/classes/class-wp-ulike-mycred.php:288
|
3083 |
msgid "Points for unliking content"
|
3084 |
msgstr ""
|
3085 |
|
3086 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:316
|
3087 |
+
#: includes/classes/class-wp-ulike-mycred.php:313
|
3088 |
msgid "Points for Author Who Get Unliked"
|
3089 |
msgstr ""
|
3090 |
|
3091 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:341
|
3092 |
+
#: includes/classes/class-wp-ulike-mycred.php:338
|
3093 |
msgid "Limits"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:346
|
3097 |
+
#: includes/classes/class-wp-ulike-mycred.php:343
|
3098 |
msgid ""
|
3099 |
"%plural% is to be awarded even when item authors Like/Unlike their own item."
|
3100 |
msgstr ""
|
3101 |
|
3102 |
+
#: build/wp-ulike/inc/functions/counter.php:72
|
3103 |
+
#: includes/functions/counter.php:69
|
3104 |
msgid "Please enter some value for required variables."
|
3105 |
msgstr ""
|
3106 |
|
3107 |
+
#: build/wp-ulike/inc/functions/counter.php:86
|
3108 |
+
#: includes/functions/counter.php:83
|
3109 |
msgid "Table info is empty."
|
3110 |
msgstr ""
|
3111 |
|
3112 |
+
#: build/wp-ulike/inc/functions/templates.php:38
|
3113 |
+
#: includes/functions/templates.php:35
|
3114 |
msgid "Twitter Heart"
|
3115 |
msgstr ""
|
3116 |
|
3117 |
+
#: build/wp-ulike/inc/functions/templates.php:44
|
3118 |
+
#: includes/functions/templates.php:41
|
3119 |
msgid "Animated Heart"
|
3120 |
msgstr ""
|
3121 |
|
3122 |
+
#: build/wp-ulike/inc/hooks/shortcodes.php:146
|
3123 |
+
#: includes/hooks/shortcodes.php:143
|
3124 |
msgid "Error receiving input parameters"
|
3125 |
msgstr ""
|
3126 |
|
3127 |
+
#: build/wp-ulike/inc/hooks/third-party.php:120
|
3128 |
+
#: includes/hooks/third-party.php:116
|
3129 |
msgid "WP ULike Activity"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
+
#: build/wp-ulike/inc/hooks/third-party.php:135
|
3133 |
+
#: includes/hooks/third-party.php:131
|
3134 |
msgid "Votes"
|
3135 |
msgstr ""
|
3136 |
|
3137 |
+
#: build/wp-ulike/inc/hooks/third-party.php:344
|
3138 |
+
#: includes/hooks/third-party.php:340
|
3139 |
msgid "posts"
|
3140 |
msgstr ""
|
3141 |
|
3142 |
+
#: build/wp-ulike/inc/hooks/third-party.php:351
|
3143 |
+
#: includes/hooks/third-party.php:347
|
3144 |
msgid "comments"
|
3145 |
msgstr ""
|
3146 |
|
3147 |
+
#: build/wp-ulike/inc/hooks/third-party.php:357
|
3148 |
+
#: includes/hooks/third-party.php:353
|
3149 |
msgid "activities"
|
3150 |
msgstr ""
|
3151 |
|
3152 |
+
#: build/wp-ulike/inc/hooks/third-party.php:365
|
3153 |
+
#: includes/hooks/third-party.php:361
|
3154 |
msgid "topics"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
+
#: build/wp-ulike/inc/hooks/third-party.php:368
|
3158 |
+
#: includes/hooks/third-party.php:364
|
3159 |
msgid "replies"
|
3160 |
msgstr ""
|
3161 |
|
3162 |
+
#: build/wp-ulike/inc/hooks/third-party.php:380
|
3163 |
+
#: includes/hooks/third-party.php:376
|
3164 |
msgid "You have %d new %s likes"
|
3165 |
msgstr ""
|
3166 |
|
3167 |
+
#: build/wp-ulike/inc/hooks/third-party.php:384
|
3168 |
+
#: includes/hooks/third-party.php:380
|
3169 |
msgid "%s liked one of your %s"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
+
#: build/wp-ulike/inc/hooks/third-party.php:428
|
3173 |
+
#: includes/hooks/third-party.php:424
|
3174 |
msgid "New activity liked"
|
3175 |
msgstr ""
|
3176 |
|
3177 |
+
#: build/wp-ulike/inc/hooks/third-party.php:433
|
3178 |
+
#: includes/hooks/third-party.php:429
|
3179 |
msgid "New comment liked"
|
3180 |
msgstr ""
|
3181 |
|
3182 |
+
#: build/wp-ulike/inc/hooks/third-party.php:438
|
3183 |
+
#: includes/hooks/third-party.php:434
|
3184 |
msgid "New post liked"
|
3185 |
msgstr ""
|
3186 |
|
3187 |
+
#: build/wp-ulike/inc/hooks/third-party.php:443
|
3188 |
+
#: includes/hooks/third-party.php:439
|
3189 |
msgid "New topic liked"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
+
#: build/wp-ulike/inc/hooks/third-party.php:797
|
3193 |
+
#: includes/hooks/third-party.php:795
|
3194 |
+
msgid "Points for liking content"
|
3195 |
+
msgstr ""
|
3196 |
+
|
3197 |
+
#: build/wp-ulike/inc/hooks/third-party.php:798
|
3198 |
+
#: includes/hooks/third-party.php:796
|
3199 |
msgid ""
|
3200 |
"This hook award / deducts points from users who Like/Unlike any content of "
|
3201 |
"WordPress, bbPress, BuddyPress & ..."
|
3202 |
msgstr ""
|
3203 |
|
3204 |
+
#: build/wp-ulike/inc/hooks/third-party.php:814
|
3205 |
+
#: includes/hooks/third-party.php:812
|
3206 |
msgid "Liking Content"
|
3207 |
msgstr ""
|
3208 |
|
3209 |
+
#: build/wp-ulike/inc/hooks/third-party.php:815
|
3210 |
+
#: includes/hooks/third-party.php:813
|
3211 |
msgid "Liked Content"
|
3212 |
msgstr ""
|
3213 |
|
3214 |
+
#: build/wp-ulike/inc/hooks/third-party.php:816
|
3215 |
+
#: includes/hooks/third-party.php:814
|
3216 |
msgid "Unliking Content"
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: build/wp-ulike/inc/hooks/third-party.php:817
|
3220 |
+
#: includes/hooks/third-party.php:815
|
3221 |
msgid "Unliked Content"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
+
#: build/wp-ulike/inc/hooks/third-party.php:835
|
3225 |
+
#: includes/hooks/third-party.php:833
|
3226 |
msgid "Recent Posts Liked"
|
3227 |
msgstr ""
|
3228 |
|
3229 |
+
#: build/wp-ulike/inc/hooks/third-party.php:840
|
3230 |
+
#: includes/hooks/third-party.php:838
|
3231 |
msgid "Recent Comments Liked"
|
3232 |
msgstr ""
|
3233 |
|
3234 |
+
#: build/wp-ulike/inc/hooks/third-party.php:871
|
3235 |
+
#: build/wp-ulike/inc/hooks/third-party.php:897
|
3236 |
+
#: build/wp-ulike/inc/hooks/third-party.php:927
|
3237 |
+
#: build/wp-ulike/inc/hooks/third-party.php:957
|
3238 |
+
#: includes/hooks/third-party.php:869 includes/hooks/third-party.php:895
|
3239 |
+
#: includes/hooks/third-party.php:925 includes/hooks/third-party.php:955
|
3240 |
msgid "This user has not made any likes."
|
3241 |
msgstr ""
|
3242 |
|
3244 |
msgid "WP ULike"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
+
#: build/wp-ulike/wp-ulike.php:594 wp-ulike.php:76
|
3248 |
msgid ""
|
3249 |
"You are using two instances of WP ULike plugin at same time, please deactive "
|
3250 |
"one of them."
|
languages/wp-ulike-es-co.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"PO-Revision-Date: +0000\n"
|
9 |
"Language: es_CO\n"
|
10 |
"MIME-Version: 1.0\n"
|
@@ -33,11 +33,11 @@ msgid "It's Ok!"
|
|
33 |
msgstr ""
|
34 |
|
35 |
#: admin/admin-functions.php:240
|
36 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
37 |
#: build/wp-ulike/admin/admin-functions.php:243
|
38 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
39 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
40 |
-
#:
|
41 |
msgid "Button"
|
42 |
msgstr ""
|
43 |
|
@@ -95,15 +95,17 @@ msgstr ""
|
|
95 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
96 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
97 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
98 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
99 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
|
|
100 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
101 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
102 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
103 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
104 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
105 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
106 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
|
|
107 |
msgid "Get More Information"
|
108 |
msgstr ""
|
109 |
|
@@ -143,25 +145,25 @@ msgstr ""
|
|
143 |
|
144 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
145 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
146 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
147 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
148 |
#: admin/classes/class-wp-ulike-widget.php:355
|
149 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
150 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
151 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
152 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
153 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
154 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
155 |
msgid "Like"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
159 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
160 |
msgid "Are you sure to remove this item?!"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
164 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
165 |
msgid "No information was found in this database!"
|
166 |
msgstr ""
|
167 |
|
@@ -197,13 +199,13 @@ msgstr ""
|
|
197 |
#: admin/includes/templates/statistics.php:124
|
198 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
199 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
200 |
-
#: build/wp-ulike/wp-ulike.php:
|
201 |
msgid "Statistics"
|
202 |
msgstr ""
|
203 |
|
204 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
205 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
206 |
-
#: build/wp-ulike/wp-ulike.php:
|
207 |
msgid "About"
|
208 |
msgstr ""
|
209 |
|
@@ -230,7 +232,7 @@ msgstr ""
|
|
230 |
|
231 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
232 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
233 |
-
#: build/wp-ulike/wp-ulike.php:
|
234 |
msgid "Settings"
|
235 |
msgstr ""
|
236 |
|
@@ -271,12 +273,12 @@ msgstr ""
|
|
271 |
|
272 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
273 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
274 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
275 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
276 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
277 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
278 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
279 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
280 |
msgid "Unlike"
|
281 |
msgstr ""
|
282 |
|
@@ -375,53 +377,53 @@ msgid "With this option, you can disable all plugin assets on these pages."
|
|
375 |
msgstr ""
|
376 |
|
377 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
378 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
379 |
#: admin/includes/templates/about.php:46
|
380 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
381 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
382 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
383 |
msgid "Home"
|
384 |
msgstr ""
|
385 |
|
386 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
387 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
388 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
389 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
390 |
msgid "Singular"
|
391 |
msgstr ""
|
392 |
|
393 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
394 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
395 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
396 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
397 |
msgid "Archives"
|
398 |
msgstr ""
|
399 |
|
400 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
401 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
402 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
403 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
404 |
msgid "Categories"
|
405 |
msgstr ""
|
406 |
|
407 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
408 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
409 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
410 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
411 |
msgid "Search Results"
|
412 |
msgstr ""
|
413 |
|
414 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
415 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
416 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
417 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
418 |
msgid "Tags"
|
419 |
msgstr ""
|
420 |
|
421 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
422 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
423 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
424 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
425 |
msgid "Author Page"
|
426 |
msgstr ""
|
427 |
|
@@ -487,12 +489,12 @@ msgstr ""
|
|
487 |
|
488 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
489 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
490 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
491 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
492 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
493 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
494 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
495 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
496 |
msgid "Allowed Variables:"
|
497 |
msgstr ""
|
498 |
|
@@ -614,204 +616,223 @@ msgid ""
|
|
614 |
"with just a few simple clicks."
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
618 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
619 |
msgid "Translations"
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
623 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
624 |
msgid "Strings"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
628 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
629 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:30
|
630 |
-
#:
|
631 |
msgid "You have already registered a vote."
|
632 |
msgstr ""
|
633 |
|
634 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
635 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
636 |
msgid "Already Voted Message"
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
640 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
641 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:21
|
642 |
-
#:
|
643 |
msgid "You Should Login To Submit Your Like"
|
644 |
msgstr ""
|
645 |
|
646 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
647 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
648 |
msgid "Login Required Message"
|
649 |
msgstr ""
|
650 |
|
651 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
652 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
653 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:39
|
654 |
-
#:
|
655 |
msgid "Thanks! You Liked This."
|
656 |
msgstr ""
|
657 |
|
658 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
659 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
660 |
msgid "Liked Notice Message"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
664 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
665 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:48
|
666 |
-
#:
|
667 |
msgid "Sorry! You unliked this."
|
668 |
msgstr ""
|
669 |
|
670 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
671 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
672 |
msgid "Unliked Notice Message"
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
676 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
677 |
#: build/wp-ulike/inc/functions/templates.php:73
|
678 |
#: build/wp-ulike/inc/functions/templates.php:125
|
679 |
#: build/wp-ulike/inc/functions/templates.php:177
|
680 |
#: build/wp-ulike/inc/functions/templates.php:227
|
681 |
-
#:
|
682 |
-
#:
|
683 |
msgid "Like Button"
|
684 |
msgstr ""
|
685 |
|
686 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
687 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
688 |
msgid "Like Button Aria Label"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
692 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
693 |
msgid "Developer Tools"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
697 |
#: admin/settings/fields/typography/typography.php:295
|
698 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
699 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:295
|
700 |
msgid "Custom Style"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
704 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
705 |
msgid "Custom Spinner"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
709 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
710 |
msgid "Enable Inline Custom CSS"
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
714 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
715 |
msgid ""
|
716 |
"If you don't want to use \"custom.css\" file for any reason, by activating "
|
717 |
"this option, the styles will be added to the page as inline."
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
721 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
722 |
msgid "REST API"
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
726 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
727 |
msgid "How to Get Started with WP ULike REST API?"
|
728 |
msgstr ""
|
729 |
|
730 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
731 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
732 |
msgid ""
|
733 |
"Have you ever tried to get data from online sources like WP ULike logs and "
|
734 |
"use them in your Application or website? the solution is Rest API!"
|
735 |
msgstr ""
|
736 |
|
737 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
738 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
739 |
msgid "Optimization"
|
740 |
msgstr ""
|
741 |
|
742 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
743 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
744 |
msgid "How to Optimize or Repair WP ULike Database Tables?"
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
748 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
749 |
msgid ""
|
750 |
"Have you ever optimized your WP ULike database? Optimizing your database "
|
751 |
"cleans up unwanted data which reduces database size and improves performance."
|
752 |
msgstr ""
|
753 |
|
754 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
755 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
756 |
msgid "Select a Template"
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
760 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
761 |
msgid "Display online preview"
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
765 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
766 |
msgid "Here"
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
770 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
771 |
msgid "Button Type"
|
772 |
msgstr ""
|
773 |
|
774 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
775 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
776 |
msgid "Image"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
780 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
781 |
msgid "Text"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
785 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
786 |
msgid ""
|
787 |
"Enter your custom button text in the fields above. You can also use HTML "
|
788 |
"tags in these fields."
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
792 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
793 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
794 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
795 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
796 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
797 |
msgid "Button Text"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
801 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
802 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
803 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
804 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
805 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
806 |
msgid "Button Image"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
810 |
#: admin/classes/class-wp-ulike-settings.php:65
|
811 |
#: admin/classes/class-wp-ulike-settings.php:72
|
812 |
#: admin/classes/class-wp-ulike-settings.php:78
|
813 |
#: admin/classes/class-wp-ulike-settings.php:84
|
814 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
815 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:68
|
816 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:75
|
817 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:81
|
@@ -819,234 +840,217 @@ msgstr ""
|
|
819 |
msgid "Automatic display"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
823 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
824 |
msgid "Button Position"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
828 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
829 |
msgid "Top of Content"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
833 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
834 |
msgid "Bottom of Content"
|
835 |
msgstr ""
|
836 |
|
837 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
838 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
839 |
msgid "Top and Bottom"
|
840 |
msgstr ""
|
841 |
|
842 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
843 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
844 |
msgid "Automatic Display Restriction"
|
845 |
msgstr ""
|
846 |
|
847 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
848 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
849 |
msgid "With this option, you can disable automatic display on these pages."
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
853 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
854 |
msgid "Post Types Filter"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
858 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
859 |
msgid "Select a post type"
|
860 |
msgstr ""
|
861 |
|
862 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
863 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
864 |
msgid "Make these post types an exception and display the button on them."
|
865 |
msgstr ""
|
866 |
|
867 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
868 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
869 |
msgid "Display Counter Value Condition"
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
873 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
874 |
msgid "Visible"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
878 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
879 |
msgid "Hidden"
|
880 |
msgstr ""
|
881 |
|
882 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
883 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
884 |
msgid "Only Logged In Users"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
888 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
889 |
msgid "Hide Zero Counter Box"
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
893 |
#: admin/classes/class-wp-ulike-settings.php:58
|
894 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
895 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:61
|
896 |
msgid "Logging Method"
|
897 |
msgstr ""
|
898 |
|
899 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
900 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
901 |
msgid "No Limit"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
905 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
906 |
msgid "Cookie"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
910 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
911 |
msgid "Username/IP"
|
912 |
msgstr ""
|
913 |
|
914 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
915 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
916 |
msgid "Username/IP + Cookie"
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
920 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
921 |
msgid ""
|
922 |
"\"No Limit\": There will be no restrictions and users can submit their "
|
923 |
"points each time they refresh the page. In this option, it will not be "
|
924 |
"possible to resubmit reverse points (un-like/un-dislike)."
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
928 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
929 |
msgid ""
|
930 |
"\"Cookie\": By saving users' cookies, it is possible to submit points only "
|
931 |
"once per user and in case of re-clicking, the appropriate message will be "
|
932 |
"displayed."
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
936 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
937 |
msgid ""
|
938 |
"Username/IP: By saving the username/IP of users, It supports the reverse "
|
939 |
"feature (un-like and un-dislike) and users can change their reactions and "
|
940 |
"are only allowed to have a specific point type."
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
944 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
945 |
msgid "Only logged in users"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
949 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
950 |
msgid "Display Type"
|
951 |
msgstr ""
|
952 |
|
953 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
954 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
955 |
msgid "Template"
|
956 |
msgstr ""
|
957 |
|
958 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
959 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
960 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:138
|
961 |
-
#:
|
962 |
msgid "You need to login in order to like this post: "
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
966 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
967 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:140
|
968 |
-
#:
|
969 |
msgid "click here"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
973 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
974 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
975 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
976 |
msgid "Custom HTML Template"
|
977 |
msgstr ""
|
978 |
|
979 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
980 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
981 |
msgid "Display Likers Box"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
985 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
986 |
msgid "User List Arrange"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
990 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
991 |
msgid "Ascending"
|
992 |
msgstr ""
|
993 |
|
994 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
995 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
996 |
msgid "Descending"
|
997 |
msgstr ""
|
998 |
|
999 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1000 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1001 |
msgid "Hide For Anonymous Users"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1005 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1006 |
msgid "Likers Box Display"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1010 |
-
#:
|
1011 |
-
|
1012 |
-
#: admin/settings/fields/typography/typography.php:145
|
1013 |
-
#: admin/settings/fields/typography/typography.php:160
|
1014 |
-
#: admin/settings/fields/typography/typography.php:176
|
1015 |
-
#: admin/settings/fields/typography/typography.php:189
|
1016 |
-
#: admin/settings/fields/typography/typography.php:203
|
1017 |
-
#: admin/settings/fields/typography/typography.php:221
|
1018 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:810
|
1019 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:119
|
1020 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:132
|
1021 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:145
|
1022 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:160
|
1023 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:176
|
1024 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:189
|
1025 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:203
|
1026 |
-
#: build/wp-ulike/admin/settings/fields/typography/typography.php:221
|
1027 |
-
#: build/wp-ulike/inc/functions/templates.php:26 inc/functions/templates.php:23
|
1028 |
-
msgid "Default"
|
1029 |
msgstr ""
|
1030 |
|
1031 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1032 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1033 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:550
|
1034 |
-
#:
|
1035 |
msgid "Popover"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1039 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1040 |
msgid "Size of Gravatars"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1044 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1045 |
msgid "Likers Count"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
1049 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
1050 |
msgid "The number of users to show in the users liked box"
|
1051 |
msgstr ""
|
1052 |
|
@@ -1136,14 +1140,14 @@ msgstr ""
|
|
1136 |
|
1137 |
#: admin/classes/class-wp-ulike-settings.php:59
|
1138 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:62
|
1139 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1140 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1141 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1142 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
1143 |
-
#:
|
1144 |
-
#:
|
1145 |
-
#:
|
1146 |
-
#:
|
1147 |
msgid "required"
|
1148 |
msgstr ""
|
1149 |
|
@@ -1465,7 +1469,8 @@ msgstr ""
|
|
1465 |
|
1466 |
#: admin/classes/class-wp-ulike-widget.php:543
|
1467 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:546
|
1468 |
-
#: build/wp-ulike/inc/functions/templates.php:32
|
|
|
1469 |
msgid "Heart"
|
1470 |
msgstr ""
|
1471 |
|
@@ -1774,16 +1779,16 @@ msgstr ""
|
|
1774 |
msgid "WP ULike Premium"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: admin/includes/templates/go-pro.php:
|
1778 |
-
#: build/wp-ulike/admin/includes/templates/go-pro.php:
|
1779 |
msgid ""
|
1780 |
"Elementor is the #1 WordPress page builder. In the new version of the WP "
|
1781 |
"ULike PRO plugin we fully support this page builder and have a variety of "
|
1782 |
"widgets & controllers that make life much easier for you."
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: admin/includes/templates/go-pro.php:
|
1786 |
-
#: build/wp-ulike/admin/includes/templates/go-pro.php:
|
1787 |
msgid ""
|
1788 |
"Just drag your desired widget and drop it in your Elementor sections, "
|
1789 |
"customize as you go and enjoy your like and dislike buttons on your contents."
|
@@ -1854,39 +1859,39 @@ msgstr ""
|
|
1854 |
msgid "Topic Title"
|
1855 |
msgstr ""
|
1856 |
|
1857 |
-
#: admin/settings/classes/admin-options.class.php:
|
1858 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:225
|
1859 |
msgid "Error while saving the changes."
|
1860 |
msgstr ""
|
1861 |
|
1862 |
-
#: admin/settings/classes/admin-options.class.php:
|
1863 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:285
|
1864 |
msgid "Settings successfully imported."
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: admin/settings/classes/admin-options.class.php:
|
1868 |
-
#: admin/settings/classes/admin-options.class.php:
|
1869 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:297
|
1870 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:313
|
1871 |
msgid "Default settings restored."
|
1872 |
msgstr ""
|
1873 |
|
1874 |
-
#: admin/settings/classes/admin-options.class.php:
|
1875 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:384
|
1876 |
msgid "Settings saved."
|
1877 |
msgstr ""
|
1878 |
|
1879 |
-
#: admin/settings/classes/admin-options.class.php:
|
1880 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:563
|
1881 |
msgid "You have unsaved changes, save your changes!"
|
1882 |
msgstr ""
|
1883 |
|
1884 |
-
#: admin/settings/classes/admin-options.class.php:
|
1885 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:565
|
1886 |
msgid "show all settings"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
-
#: admin/settings/classes/admin-options.class.php:
|
1890 |
#: admin/settings/fields/icon/icon.php:57 admin/settings/fields/map/map.php:23
|
1891 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:567
|
1892 |
#: build/wp-ulike/admin/settings/fields/icon/icon.php:57
|
@@ -1894,43 +1899,43 @@ msgstr ""
|
|
1894 |
msgid "Search..."
|
1895 |
msgstr ""
|
1896 |
|
1897 |
-
#: admin/settings/classes/admin-options.class.php:
|
1898 |
-
#: admin/settings/classes/admin-options.class.php:
|
1899 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1900 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1901 |
msgid "Save"
|
1902 |
msgstr ""
|
1903 |
|
1904 |
-
#: admin/settings/classes/admin-options.class.php:
|
1905 |
-
#: admin/settings/classes/admin-options.class.php:
|
1906 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1907 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1908 |
msgid "Saving..."
|
1909 |
msgstr ""
|
1910 |
|
1911 |
-
#: admin/settings/classes/admin-options.class.php:
|
1912 |
-
#: admin/settings/classes/admin-options.class.php:
|
1913 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1914 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1915 |
msgid "Reset Section"
|
1916 |
msgstr ""
|
1917 |
|
1918 |
-
#: admin/settings/classes/admin-options.class.php:
|
1919 |
-
#: admin/settings/classes/admin-options.class.php:
|
1920 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1921 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1922 |
msgid "Are you sure to reset this section options?"
|
1923 |
msgstr ""
|
1924 |
|
1925 |
-
#: admin/settings/classes/admin-options.class.php:
|
1926 |
-
#: admin/settings/classes/admin-options.class.php:
|
1927 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1928 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1929 |
msgid "Reset All"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
-
#: admin/settings/classes/admin-options.class.php:
|
1933 |
-
#: admin/settings/classes/admin-options.class.php:
|
1934 |
#: admin/settings/classes/comment-options.class.php:215
|
1935 |
#: admin/settings/classes/metabox-options.class.php:293
|
1936 |
#: admin/settings/fields/backup/backup.php:31
|
@@ -1942,14 +1947,14 @@ msgstr ""
|
|
1942 |
msgid "Reset"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
-
#: admin/settings/classes/admin-options.class.php:
|
1946 |
-
#: admin/settings/classes/admin-options.class.php:
|
1947 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1948 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1949 |
msgid "Are you sure you want to reset all settings to default values?"
|
1950 |
msgstr ""
|
1951 |
|
1952 |
-
#: admin/settings/classes/admin-options.class.php:
|
1953 |
#: admin/settings/classes/comment-options.class.php:198
|
1954 |
#: admin/settings/classes/metabox-options.class.php:276
|
1955 |
#: admin/settings/fields/button_set/button_set.php:56
|
@@ -1982,33 +1987,33 @@ msgstr ""
|
|
1982 |
msgid "Cancel"
|
1983 |
msgstr ""
|
1984 |
|
1985 |
-
#: admin/settings/classes/setup.class.php:
|
1986 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:529
|
1987 |
msgid "Are you sure?"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: admin/settings/classes/setup.class.php:
|
1991 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:530
|
1992 |
msgid "Please enter %s or more characters"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
-
#: admin/settings/classes/setup.class.php:
|
1996 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:531
|
1997 |
msgid "Searching..."
|
1998 |
msgstr ""
|
1999 |
|
2000 |
-
#: admin/settings/classes/setup.class.php:
|
2001 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:532
|
2002 |
msgid "No results found."
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: admin/settings/classes/setup.class.php:
|
2006 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:634
|
2007 |
msgid "Oops! Not allowed."
|
2008 |
msgstr ""
|
2009 |
|
2010 |
-
#: admin/settings/classes/setup.class.php:
|
2011 |
-
#: admin/settings/classes/setup.class.php:
|
2012 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:708
|
2013 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:712
|
2014 |
msgid "Field not found!"
|
@@ -2242,9 +2247,9 @@ msgstr ""
|
|
2242 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:76
|
2243 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:164
|
2244 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:306
|
2245 |
-
#:
|
2246 |
-
#:
|
2247 |
-
#:
|
2248 |
msgid "Normal"
|
2249 |
msgstr ""
|
2250 |
|
@@ -2483,8 +2488,8 @@ msgstr ""
|
|
2483 |
#: build/wp-ulike/admin/settings/fields/link_color/link_color.php:37
|
2484 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:94
|
2485 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:202
|
2486 |
-
#:
|
2487 |
-
#:
|
2488 |
msgid "Hover"
|
2489 |
msgstr ""
|
2490 |
|
@@ -2493,9 +2498,9 @@ msgstr ""
|
|
2493 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:114
|
2494 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:237
|
2495 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:330
|
2496 |
-
#:
|
2497 |
-
#:
|
2498 |
-
#:
|
2499 |
msgid "Active"
|
2500 |
msgstr ""
|
2501 |
|
@@ -2568,6 +2573,27 @@ msgstr ""
|
|
2568 |
msgid "Backup Font Family"
|
2569 |
msgstr ""
|
2570 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2571 |
#: admin/settings/fields/typography/typography.php:130
|
2572 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:130
|
2573 |
msgid "Font Style"
|
@@ -2766,43 +2792,43 @@ msgid "Please enter a valid URL."
|
|
2766 |
msgstr ""
|
2767 |
|
2768 |
#: build/wp-ulike/inc/classes/class-wp-ulike-ajax-listener-base.php:60
|
2769 |
-
#:
|
2770 |
msgid "There was an error processing the request."
|
2771 |
msgstr ""
|
2772 |
|
2773 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:
|
2774 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:
|
2775 |
-
#:
|
2776 |
-
#:
|
2777 |
msgid "permission denied."
|
2778 |
msgstr ""
|
2779 |
|
2780 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:
|
2781 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:
|
2782 |
-
#:
|
2783 |
-
#:
|
2784 |
msgid "Invalid item type."
|
2785 |
msgstr ""
|
2786 |
|
2787 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:52
|
2788 |
-
#:
|
2789 |
msgid "Button Templates"
|
2790 |
msgstr ""
|
2791 |
|
2792 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:56
|
2793 |
-
#:
|
2794 |
msgid "Template Wrapper"
|
2795 |
msgstr ""
|
2796 |
|
2797 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:61
|
2798 |
-
#:
|
2799 |
msgid "In this section, you can customize the template wrapper styles."
|
2800 |
msgstr ""
|
2801 |
|
2802 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:68
|
2803 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:380
|
2804 |
-
#:
|
2805 |
-
#:
|
2806 |
msgid "Typography"
|
2807 |
msgstr ""
|
2808 |
|
@@ -2819,19 +2845,19 @@ msgstr ""
|
|
2819 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:475
|
2820 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:513
|
2821 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:556
|
2822 |
-
#:
|
2823 |
-
#:
|
2824 |
-
#:
|
2825 |
-
#:
|
2826 |
-
#:
|
2827 |
-
#:
|
2828 |
-
#:
|
2829 |
-
#:
|
2830 |
-
#:
|
2831 |
-
#:
|
2832 |
-
#:
|
2833 |
-
#:
|
2834 |
-
#:
|
2835 |
msgid "Background"
|
2836 |
msgstr ""
|
2837 |
|
@@ -2848,42 +2874,42 @@ msgstr ""
|
|
2848 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:482
|
2849 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:520
|
2850 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:563
|
2851 |
-
#:
|
2852 |
-
#:
|
2853 |
-
#:
|
2854 |
-
#:
|
2855 |
-
#:
|
2856 |
-
#:
|
2857 |
-
#:
|
2858 |
-
#:
|
2859 |
-
#:
|
2860 |
-
#:
|
2861 |
-
#:
|
2862 |
-
#:
|
2863 |
-
#:
|
2864 |
msgid "Border"
|
2865 |
msgstr ""
|
2866 |
|
2867 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:137
|
2868 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:280
|
2869 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:358
|
2870 |
-
#:
|
2871 |
-
#:
|
2872 |
-
#:
|
2873 |
msgid "Padding"
|
2874 |
msgstr ""
|
2875 |
|
2876 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:145
|
2877 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:288
|
2878 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:365
|
2879 |
-
#:
|
2880 |
-
#:
|
2881 |
-
#:
|
2882 |
msgid "Margin"
|
2883 |
msgstr ""
|
2884 |
|
2885 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:157
|
2886 |
-
#:
|
2887 |
msgid ""
|
2888 |
"In this section, you can customize the styles related to the buttons. Please "
|
2889 |
"note that some buttons have different structures (such as SVG based) and "
|
@@ -2899,15 +2925,15 @@ msgstr ""
|
|
2899 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:431
|
2900 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:469
|
2901 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:507
|
2902 |
-
#:
|
2903 |
-
#:
|
2904 |
-
#:
|
2905 |
-
#:
|
2906 |
-
#:
|
2907 |
-
#:
|
2908 |
-
#:
|
2909 |
-
#:
|
2910 |
-
#:
|
2911 |
msgid "Text Color"
|
2912 |
msgstr ""
|
2913 |
|
@@ -2916,45 +2942,45 @@ msgstr ""
|
|
2916 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:451
|
2917 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:489
|
2918 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:527
|
2919 |
-
#:
|
2920 |
-
#:
|
2921 |
-
#:
|
2922 |
-
#:
|
2923 |
-
#:
|
2924 |
msgid "Image Dimensions"
|
2925 |
msgstr ""
|
2926 |
|
2927 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:196
|
2928 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:231
|
2929 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:262
|
2930 |
-
#:
|
2931 |
-
#:
|
2932 |
-
#:
|
2933 |
msgid "Like Image"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:273
|
2937 |
-
#:
|
2938 |
msgid "Button Dimensions"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:294
|
2942 |
-
#:
|
2943 |
msgid "Counter"
|
2944 |
msgstr ""
|
2945 |
|
2946 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:299
|
2947 |
-
#:
|
2948 |
msgid "In this section, you can customize the template counter styles."
|
2949 |
msgstr ""
|
2950 |
|
2951 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:373
|
2952 |
-
#:
|
2953 |
msgid "Toast Messages"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:388
|
2957 |
-
#:
|
2958 |
msgid "Info"
|
2959 |
msgstr ""
|
2960 |
|
@@ -2962,217 +2988,251 @@ msgstr ""
|
|
2962 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:458
|
2963 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:496
|
2964 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:534
|
2965 |
-
#:
|
2966 |
-
#:
|
2967 |
-
#:
|
2968 |
-
#:
|
2969 |
msgid "Icon Image"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:426
|
2973 |
-
#:
|
2974 |
msgid "Success"
|
2975 |
msgstr ""
|
2976 |
|
2977 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:464
|
2978 |
-
#:
|
2979 |
msgid "Error"
|
2980 |
msgstr ""
|
2981 |
|
2982 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:502
|
2983 |
-
#:
|
2984 |
msgid "Warning"
|
2985 |
msgstr ""
|
2986 |
|
2987 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:546
|
2988 |
-
#:
|
2989 |
msgid "Likers Box"
|
2990 |
msgstr ""
|
2991 |
|
2992 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:570
|
2993 |
-
#:
|
2994 |
msgid "Arrow Color"
|
2995 |
msgstr ""
|
2996 |
|
2997 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
2998 |
-
#:
|
2999 |
msgid "Points for Liking content"
|
3000 |
msgstr ""
|
3001 |
|
3002 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3003 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3004 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3005 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3006 |
-
#:
|
3007 |
-
#:
|
3008 |
-
#:
|
3009 |
-
#:
|
3010 |
msgid "Points"
|
3011 |
msgstr ""
|
3012 |
|
3013 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3014 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3015 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3016 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3017 |
-
#:
|
3018 |
-
#:
|
3019 |
-
#:
|
3020 |
-
#:
|
3021 |
msgid "Use zero to disable."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3025 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3026 |
-
#: inc/classes/class-wp-ulike-mycred.php:
|
3027 |
-
#: inc/classes/class-wp-ulike-mycred.php:
|
|
|
|
|
|
|
|
|
3028 |
msgid "Limit"
|
3029 |
msgstr ""
|
3030 |
|
3031 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3032 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3033 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3034 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3035 |
-
#:
|
3036 |
-
#:
|
3037 |
-
#:
|
3038 |
-
#:
|
3039 |
msgid "Log template"
|
3040 |
msgstr ""
|
3041 |
|
3042 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3043 |
-
#:
|
3044 |
msgid "Points for Author Who Get Liked"
|
3045 |
msgstr ""
|
3046 |
|
3047 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3048 |
-
#:
|
3049 |
msgid "Points for unliking content"
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3053 |
-
#:
|
3054 |
msgid "Points for Author Who Get Unliked"
|
3055 |
msgstr ""
|
3056 |
|
3057 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3058 |
-
#:
|
3059 |
msgid "Limits"
|
3060 |
msgstr ""
|
3061 |
|
3062 |
-
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:
|
3063 |
-
#:
|
3064 |
msgid ""
|
3065 |
"%plural% is to be awarded even when item authors Like/Unlike their own item."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: build/wp-ulike/inc/functions/counter.php:72
|
|
|
3069 |
msgid "Please enter some value for required variables."
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: build/wp-ulike/inc/functions/counter.php:86
|
|
|
3073 |
msgid "Table info is empty."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: build/wp-ulike/inc/functions/templates.php:38
|
|
|
3077 |
msgid "Twitter Heart"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: build/wp-ulike/inc/functions/templates.php:44
|
|
|
3081 |
msgid "Animated Heart"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: build/wp-ulike/inc/hooks/shortcodes.php:146
|
|
|
3085 |
msgid "Error receiving input parameters"
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: build/wp-ulike/inc/hooks/third-party.php:120
|
|
|
3089 |
msgid "WP ULike Activity"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: build/wp-ulike/inc/hooks/third-party.php:135
|
|
|
3093 |
msgid "Votes"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: build/wp-ulike/inc/hooks/third-party.php:344
|
|
|
3097 |
msgid "posts"
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: build/wp-ulike/inc/hooks/third-party.php:351
|
|
|
3101 |
msgid "comments"
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: build/wp-ulike/inc/hooks/third-party.php:357
|
|
|
3105 |
msgid "activities"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: build/wp-ulike/inc/hooks/third-party.php:365
|
|
|
3109 |
msgid "topics"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: build/wp-ulike/inc/hooks/third-party.php:368
|
|
|
3113 |
msgid "replies"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
-
#: build/wp-ulike/inc/hooks/third-party.php:380
|
|
|
3117 |
msgid "You have %d new %s likes"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: build/wp-ulike/inc/hooks/third-party.php:384
|
|
|
3121 |
msgid "%s liked one of your %s"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: build/wp-ulike/inc/hooks/third-party.php:428
|
|
|
3125 |
msgid "New activity liked"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: build/wp-ulike/inc/hooks/third-party.php:433
|
|
|
3129 |
msgid "New comment liked"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
-
#: build/wp-ulike/inc/hooks/third-party.php:438
|
|
|
3133 |
msgid "New post liked"
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: build/wp-ulike/inc/hooks/third-party.php:443
|
|
|
3137 |
msgid "New topic liked"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
3141 |
msgid ""
|
3142 |
"This hook award / deducts points from users who Like/Unlike any content of "
|
3143 |
"WordPress, bbPress, BuddyPress & ..."
|
3144 |
msgstr ""
|
3145 |
|
3146 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3147 |
msgid "Liking Content"
|
3148 |
msgstr ""
|
3149 |
|
3150 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3151 |
msgid "Liked Content"
|
3152 |
msgstr ""
|
3153 |
|
3154 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3155 |
msgid "Unliking Content"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3159 |
msgid "Unliked Content"
|
3160 |
msgstr ""
|
3161 |
|
3162 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3163 |
msgid "Recent Posts Liked"
|
3164 |
msgstr ""
|
3165 |
|
3166 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
|
|
3167 |
msgid "Recent Comments Liked"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3171 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3172 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3173 |
-
#: build/wp-ulike/inc/hooks/third-party.php:
|
3174 |
-
#:
|
3175 |
-
#:
|
3176 |
msgid "This user has not made any likes."
|
3177 |
msgstr ""
|
3178 |
|
@@ -3180,7 +3240,7 @@ msgstr ""
|
|
3180 |
msgid "WP ULike"
|
3181 |
msgstr ""
|
3182 |
|
3183 |
-
#: build/wp-ulike/wp-ulike.php:
|
3184 |
msgid ""
|
3185 |
"You are using two instances of WP ULike plugin at same time, please deactive "
|
3186 |
"one of them."
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
+
"POT-Creation-Date: 2021-04-04 15:20:05+00:00\n"
|
8 |
"PO-Revision-Date: +0000\n"
|
9 |
"Language: es_CO\n"
|
10 |
"MIME-Version: 1.0\n"
|
33 |
msgstr ""
|
34 |
|
35 |
#: admin/admin-functions.php:240
|
36 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:786
|
37 |
#: build/wp-ulike/admin/admin-functions.php:243
|
38 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:789
|
39 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
40 |
+
#: includes/classes/class-wp-ulike-customizer.php:149
|
41 |
msgid "Button"
|
42 |
msgstr ""
|
43 |
|
95 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
96 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
97 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
98 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:443
|
99 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
100 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:589
|
101 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
102 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
103 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
104 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
105 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
106 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:446
|
107 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
108 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:592
|
109 |
msgid "Get More Information"
|
110 |
msgstr ""
|
111 |
|
145 |
|
146 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
147 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
148 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:640
|
149 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:670
|
150 |
#: admin/classes/class-wp-ulike-widget.php:355
|
151 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
152 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
153 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
154 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:643
|
155 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:673
|
156 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
157 |
msgid "Like"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:126
|
161 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:109
|
162 |
msgid "Are you sure to remove this item?!"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:127
|
166 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:110
|
167 |
msgid "No information was found in this database!"
|
168 |
msgstr ""
|
169 |
|
199 |
#: admin/includes/templates/statistics.php:124
|
200 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
201 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
202 |
+
#: build/wp-ulike/wp-ulike.php:179 includes/plugin.php:103
|
203 |
msgid "Statistics"
|
204 |
msgstr ""
|
205 |
|
206 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
207 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
208 |
+
#: build/wp-ulike/wp-ulike.php:180 includes/plugin.php:104
|
209 |
msgid "About"
|
210 |
msgstr ""
|
211 |
|
232 |
|
233 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
234 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
235 |
+
#: build/wp-ulike/wp-ulike.php:178 includes/plugin.php:102
|
236 |
msgid "Settings"
|
237 |
msgstr ""
|
238 |
|
273 |
|
274 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
275 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
276 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:651
|
277 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:682
|
278 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
279 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
280 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:654
|
281 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:685
|
282 |
msgid "Unlike"
|
283 |
msgstr ""
|
284 |
|
377 |
msgstr ""
|
378 |
|
379 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
380 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:723
|
381 |
#: admin/includes/templates/about.php:46
|
382 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
383 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:726
|
384 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
385 |
msgid "Home"
|
386 |
msgstr ""
|
387 |
|
388 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
389 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:724
|
390 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
391 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:727
|
392 |
msgid "Singular"
|
393 |
msgstr ""
|
394 |
|
395 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
396 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:725
|
397 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
398 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:728
|
399 |
msgid "Archives"
|
400 |
msgstr ""
|
401 |
|
402 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
403 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:726
|
404 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
405 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:729
|
406 |
msgid "Categories"
|
407 |
msgstr ""
|
408 |
|
409 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
410 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:727
|
411 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
412 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:730
|
413 |
msgid "Search Results"
|
414 |
msgstr ""
|
415 |
|
416 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
417 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:728
|
418 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
419 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:731
|
420 |
msgid "Tags"
|
421 |
msgstr ""
|
422 |
|
423 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
424 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:729
|
425 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
426 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:732
|
427 |
msgid "Author Page"
|
428 |
msgstr ""
|
429 |
|
489 |
|
490 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
491 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
492 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:794
|
493 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:850
|
494 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
495 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
496 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:797
|
497 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:853
|
498 |
msgid "Allowed Variables:"
|
499 |
msgstr ""
|
500 |
|
616 |
"with just a few simple clicks."
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:430
|
620 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:433
|
621 |
+
msgid "Share Buttons"
|
622 |
+
msgstr ""
|
623 |
+
|
624 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:437
|
625 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:440
|
626 |
+
msgid "Easy Social Share Buttons for WordPress"
|
627 |
+
msgstr ""
|
628 |
+
|
629 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:438
|
630 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:441
|
631 |
+
msgid ""
|
632 |
+
"WP ULike Share buttons enables your website users to share the content over "
|
633 |
+
"Facebook, Twitter, Google, Linkedin, Whatsapp, Tumblr, Pinterest, Reddit and "
|
634 |
+
"over 23 more social sharing services. This is the Simplest and Smoothest "
|
635 |
+
"Social Sharing service with optimized and great looking vector icons."
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:462
|
639 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:465
|
640 |
msgid "Translations"
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:471
|
644 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:474
|
645 |
msgid "Strings"
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:477
|
649 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:480
|
650 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:30
|
651 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:35
|
652 |
msgid "You have already registered a vote."
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:478
|
656 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:481
|
657 |
msgid "Already Voted Message"
|
658 |
msgstr ""
|
659 |
|
660 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:483
|
661 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:486
|
662 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:21
|
663 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:26
|
664 |
msgid "You Should Login To Submit Your Like"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:484
|
668 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:487
|
669 |
msgid "Login Required Message"
|
670 |
msgstr ""
|
671 |
|
672 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:489
|
673 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:492
|
674 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:39
|
675 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:44
|
676 |
msgid "Thanks! You Liked This."
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:490
|
680 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:493
|
681 |
msgid "Liked Notice Message"
|
682 |
msgstr ""
|
683 |
|
684 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:495
|
685 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:498
|
686 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:48
|
687 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:53
|
688 |
msgid "Sorry! You unliked this."
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:496
|
692 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:499
|
693 |
msgid "Unliked Notice Message"
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:501
|
697 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:504
|
698 |
#: build/wp-ulike/inc/functions/templates.php:73
|
699 |
#: build/wp-ulike/inc/functions/templates.php:125
|
700 |
#: build/wp-ulike/inc/functions/templates.php:177
|
701 |
#: build/wp-ulike/inc/functions/templates.php:227
|
702 |
+
#: includes/functions/templates.php:70 includes/functions/templates.php:122
|
703 |
+
#: includes/functions/templates.php:174 includes/functions/templates.php:224
|
704 |
msgid "Like Button"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:502
|
708 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:505
|
709 |
msgid "Like Button Aria Label"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:512
|
713 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:515
|
714 |
msgid "Developer Tools"
|
715 |
msgstr ""
|
716 |
|
717 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:518
|
718 |
#: admin/settings/fields/typography/typography.php:295
|
719 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:521
|
720 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:295
|
721 |
msgid "Custom Style"
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:532
|
725 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:535
|
726 |
msgid "Custom Spinner"
|
727 |
msgstr ""
|
728 |
|
729 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:539
|
730 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:542
|
731 |
msgid "Enable Inline Custom CSS"
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:540
|
735 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:543
|
736 |
msgid ""
|
737 |
"If you don't want to use \"custom.css\" file for any reason, by activating "
|
738 |
"this option, the styles will be added to the page as inline."
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:547
|
742 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:550
|
743 |
msgid "REST API"
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:554
|
747 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:557
|
748 |
msgid "How to Get Started with WP ULike REST API?"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:555
|
752 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:558
|
753 |
msgid ""
|
754 |
"Have you ever tried to get data from online sources like WP ULike logs and "
|
755 |
"use them in your Application or website? the solution is Rest API!"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:576
|
759 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:579
|
760 |
msgid "Optimization"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:583
|
764 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:586
|
765 |
msgid "How to Optimize or Repair WP ULike Database Tables?"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:584
|
769 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:587
|
770 |
msgid ""
|
771 |
"Have you ever optimized your WP ULike database? Optimizing your database "
|
772 |
"cleans up unwanted data which reduces database size and improves performance."
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:616
|
776 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:619
|
777 |
msgid "Select a Template"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:617
|
781 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:620
|
782 |
msgid "Display online preview"
|
783 |
msgstr ""
|
784 |
|
785 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:617
|
786 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:620
|
787 |
msgid "Here"
|
788 |
msgstr ""
|
789 |
|
790 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:625
|
791 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:628
|
792 |
msgid "Button Type"
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:628
|
796 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:631
|
797 |
msgid "Image"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:629
|
801 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:632
|
802 |
msgid "Text"
|
803 |
msgstr ""
|
804 |
|
805 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:636
|
806 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:639
|
807 |
msgid ""
|
808 |
"Enter your custom button text in the fields above. You can also use HTML "
|
809 |
"tags in these fields."
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:637
|
813 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:645
|
814 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:656
|
815 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:640
|
816 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:648
|
817 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:659
|
818 |
msgid "Button Text"
|
819 |
msgstr ""
|
820 |
|
821 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:667
|
822 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:675
|
823 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:687
|
824 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:670
|
825 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:678
|
826 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:690
|
827 |
msgid "Button Image"
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:700
|
831 |
#: admin/classes/class-wp-ulike-settings.php:65
|
832 |
#: admin/classes/class-wp-ulike-settings.php:72
|
833 |
#: admin/classes/class-wp-ulike-settings.php:78
|
834 |
#: admin/classes/class-wp-ulike-settings.php:84
|
835 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:703
|
836 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:68
|
837 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:75
|
838 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:81
|
840 |
msgid "Automatic display"
|
841 |
msgstr ""
|
842 |
|
843 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:705
|
844 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:708
|
845 |
msgid "Button Position"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:708
|
849 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:711
|
850 |
msgid "Top of Content"
|
851 |
msgstr ""
|
852 |
|
853 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:709
|
854 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:712
|
855 |
msgid "Bottom of Content"
|
856 |
msgstr ""
|
857 |
|
858 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:710
|
859 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:713
|
860 |
msgid "Top and Bottom"
|
861 |
msgstr ""
|
862 |
|
863 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:717
|
864 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:720
|
865 |
msgid "Automatic Display Restriction"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:718
|
869 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:721
|
870 |
msgid "With this option, you can disable automatic display on these pages."
|
871 |
msgstr ""
|
872 |
|
873 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:736
|
874 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:739
|
875 |
msgid "Post Types Filter"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:737
|
879 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:740
|
880 |
msgid "Select a post type"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:738
|
884 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:741
|
885 |
msgid "Make these post types an exception and display the button on them."
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:748
|
889 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:751
|
890 |
msgid "Display Counter Value Condition"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:751
|
894 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:754
|
895 |
msgid "Visible"
|
896 |
msgstr ""
|
897 |
|
898 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:752
|
899 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:755
|
900 |
msgid "Hidden"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:753
|
904 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:756
|
905 |
msgid "Only Logged In Users"
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:759
|
909 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:762
|
910 |
msgid "Hide Zero Counter Box"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:765
|
914 |
#: admin/classes/class-wp-ulike-settings.php:58
|
915 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:768
|
916 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:61
|
917 |
msgid "Logging Method"
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:767
|
921 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:770
|
922 |
msgid "No Limit"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:768
|
926 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:771
|
927 |
msgid "Cookie"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:769
|
931 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:772
|
932 |
msgid "Username/IP"
|
933 |
msgstr ""
|
934 |
|
935 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:770
|
936 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:773
|
937 |
msgid "Username/IP + Cookie"
|
938 |
msgstr ""
|
939 |
|
940 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
941 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
942 |
msgid ""
|
943 |
"\"No Limit\": There will be no restrictions and users can submit their "
|
944 |
"points each time they refresh the page. In this option, it will not be "
|
945 |
"possible to resubmit reverse points (un-like/un-dislike)."
|
946 |
msgstr ""
|
947 |
|
948 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
949 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
950 |
msgid ""
|
951 |
"\"Cookie\": By saving users' cookies, it is possible to submit points only "
|
952 |
"once per user and in case of re-clicking, the appropriate message will be "
|
953 |
"displayed."
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:773
|
957 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:776
|
958 |
msgid ""
|
959 |
"Username/IP: By saving the username/IP of users, It supports the reverse "
|
960 |
"feature (un-like and un-dislike) and users can change their reactions and "
|
961 |
"are only allowed to have a specific point type."
|
962 |
msgstr ""
|
963 |
|
964 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:778
|
965 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:781
|
966 |
msgid "Only logged in users"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:783
|
970 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:786
|
971 |
msgid "Display Type"
|
972 |
msgstr ""
|
973 |
|
974 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:785
|
975 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:788
|
976 |
msgid "Template"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:800
|
980 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:803
|
981 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:138
|
982 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:143
|
983 |
msgid "You need to login in order to like this post: "
|
984 |
msgstr ""
|
985 |
|
986 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:802
|
987 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:805
|
988 |
#: build/wp-ulike/inc/classes/class-wp-ulike-setting-repo.php:140
|
989 |
+
#: includes/classes/class-wp-ulike-setting-repo.php:145
|
990 |
msgid "click here"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:804
|
994 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:849
|
995 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:807
|
996 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:852
|
997 |
msgid "Custom HTML Template"
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:810
|
1001 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:813
|
1002 |
msgid "Display Likers Box"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:815
|
1006 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:818
|
1007 |
msgid "User List Arrange"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:818
|
1011 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:821
|
1012 |
msgid "Ascending"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:819
|
1016 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:822
|
1017 |
msgid "Descending"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:827
|
1021 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:830
|
1022 |
msgid "Hide For Anonymous Users"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:833
|
1026 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:836
|
1027 |
msgid "Likers Box Display"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:836
|
1031 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:839
|
1032 |
+
msgid "Inline"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1033 |
msgstr ""
|
1034 |
|
1035 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:837
|
1036 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:840
|
1037 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:550
|
1038 |
+
#: includes/classes/class-wp-ulike-customizer.php:547
|
1039 |
msgid "Popover"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:863
|
1043 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:866
|
1044 |
msgid "Size of Gravatars"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:871
|
1048 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:874
|
1049 |
msgid "Likers Count"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:872
|
1053 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:875
|
1054 |
msgid "The number of users to show in the users liked box"
|
1055 |
msgstr ""
|
1056 |
|
1140 |
|
1141 |
#: admin/classes/class-wp-ulike-settings.php:59
|
1142 |
#: build/wp-ulike/admin/classes/class-wp-ulike-settings.php:62
|
1143 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:259
|
1144 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:284
|
1145 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:309
|
1146 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:334
|
1147 |
+
#: includes/classes/class-wp-ulike-mycred.php:256
|
1148 |
+
#: includes/classes/class-wp-ulike-mycred.php:281
|
1149 |
+
#: includes/classes/class-wp-ulike-mycred.php:306
|
1150 |
+
#: includes/classes/class-wp-ulike-mycred.php:331
|
1151 |
msgid "required"
|
1152 |
msgstr ""
|
1153 |
|
1469 |
|
1470 |
#: admin/classes/class-wp-ulike-widget.php:543
|
1471 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:546
|
1472 |
+
#: build/wp-ulike/inc/functions/templates.php:32
|
1473 |
+
#: includes/functions/templates.php:29
|
1474 |
msgid "Heart"
|
1475 |
msgstr ""
|
1476 |
|
1779 |
msgid "WP ULike Premium"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
+
#: admin/includes/templates/go-pro.php:140
|
1783 |
+
#: build/wp-ulike/admin/includes/templates/go-pro.php:143
|
1784 |
msgid ""
|
1785 |
"Elementor is the #1 WordPress page builder. In the new version of the WP "
|
1786 |
"ULike PRO plugin we fully support this page builder and have a variety of "
|
1787 |
"widgets & controllers that make life much easier for you."
|
1788 |
msgstr ""
|
1789 |
|
1790 |
+
#: admin/includes/templates/go-pro.php:140
|
1791 |
+
#: build/wp-ulike/admin/includes/templates/go-pro.php:143
|
1792 |
msgid ""
|
1793 |
"Just drag your desired widget and drop it in your Elementor sections, "
|
1794 |
"customize as you go and enjoy your like and dislike buttons on your contents."
|
1859 |
msgid "Topic Title"
|
1860 |
msgstr ""
|
1861 |
|
1862 |
+
#: admin/settings/classes/admin-options.class.php:226
|
1863 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:225
|
1864 |
msgid "Error while saving the changes."
|
1865 |
msgstr ""
|
1866 |
|
1867 |
+
#: admin/settings/classes/admin-options.class.php:286
|
1868 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:285
|
1869 |
msgid "Settings successfully imported."
|
1870 |
msgstr ""
|
1871 |
|
1872 |
+
#: admin/settings/classes/admin-options.class.php:298
|
1873 |
+
#: admin/settings/classes/admin-options.class.php:314
|
1874 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:297
|
1875 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:313
|
1876 |
msgid "Default settings restored."
|
1877 |
msgstr ""
|
1878 |
|
1879 |
+
#: admin/settings/classes/admin-options.class.php:385
|
1880 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:384
|
1881 |
msgid "Settings saved."
|
1882 |
msgstr ""
|
1883 |
|
1884 |
+
#: admin/settings/classes/admin-options.class.php:565
|
1885 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:563
|
1886 |
msgid "You have unsaved changes, save your changes!"
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: admin/settings/classes/admin-options.class.php:567
|
1890 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:565
|
1891 |
msgid "show all settings"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
+
#: admin/settings/classes/admin-options.class.php:569
|
1895 |
#: admin/settings/fields/icon/icon.php:57 admin/settings/fields/map/map.php:23
|
1896 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:567
|
1897 |
#: build/wp-ulike/admin/settings/fields/icon/icon.php:57
|
1899 |
msgid "Search..."
|
1900 |
msgstr ""
|
1901 |
|
1902 |
+
#: admin/settings/classes/admin-options.class.php:572
|
1903 |
+
#: admin/settings/classes/admin-options.class.php:695
|
1904 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1905 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1906 |
msgid "Save"
|
1907 |
msgstr ""
|
1908 |
|
1909 |
+
#: admin/settings/classes/admin-options.class.php:572
|
1910 |
+
#: admin/settings/classes/admin-options.class.php:695
|
1911 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:570
|
1912 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:693
|
1913 |
msgid "Saving..."
|
1914 |
msgstr ""
|
1915 |
|
1916 |
+
#: admin/settings/classes/admin-options.class.php:573
|
1917 |
+
#: admin/settings/classes/admin-options.class.php:696
|
1918 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1919 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1920 |
msgid "Reset Section"
|
1921 |
msgstr ""
|
1922 |
|
1923 |
+
#: admin/settings/classes/admin-options.class.php:573
|
1924 |
+
#: admin/settings/classes/admin-options.class.php:696
|
1925 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:571
|
1926 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:694
|
1927 |
msgid "Are you sure to reset this section options?"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
+
#: admin/settings/classes/admin-options.class.php:574
|
1931 |
+
#: admin/settings/classes/admin-options.class.php:697
|
1932 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1933 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1934 |
msgid "Reset All"
|
1935 |
msgstr ""
|
1936 |
|
1937 |
+
#: admin/settings/classes/admin-options.class.php:574
|
1938 |
+
#: admin/settings/classes/admin-options.class.php:697
|
1939 |
#: admin/settings/classes/comment-options.class.php:215
|
1940 |
#: admin/settings/classes/metabox-options.class.php:293
|
1941 |
#: admin/settings/fields/backup/backup.php:31
|
1947 |
msgid "Reset"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
+
#: admin/settings/classes/admin-options.class.php:574
|
1951 |
+
#: admin/settings/classes/admin-options.class.php:697
|
1952 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:572
|
1953 |
#: build/wp-ulike/admin/settings/classes/admin-options.class.php:695
|
1954 |
msgid "Are you sure you want to reset all settings to default values?"
|
1955 |
msgstr ""
|
1956 |
|
1957 |
+
#: admin/settings/classes/admin-options.class.php:672
|
1958 |
#: admin/settings/classes/comment-options.class.php:198
|
1959 |
#: admin/settings/classes/metabox-options.class.php:276
|
1960 |
#: admin/settings/fields/button_set/button_set.php:56
|
1987 |
msgid "Cancel"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
+
#: admin/settings/classes/setup.class.php:592
|
1991 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:529
|
1992 |
msgid "Are you sure?"
|
1993 |
msgstr ""
|
1994 |
|
1995 |
+
#: admin/settings/classes/setup.class.php:593
|
1996 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:530
|
1997 |
msgid "Please enter %s or more characters"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: admin/settings/classes/setup.class.php:594
|
2001 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:531
|
2002 |
msgid "Searching..."
|
2003 |
msgstr ""
|
2004 |
|
2005 |
+
#: admin/settings/classes/setup.class.php:595
|
2006 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:532
|
2007 |
msgid "No results found."
|
2008 |
msgstr ""
|
2009 |
|
2010 |
+
#: admin/settings/classes/setup.class.php:696
|
2011 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:634
|
2012 |
msgid "Oops! Not allowed."
|
2013 |
msgstr ""
|
2014 |
|
2015 |
+
#: admin/settings/classes/setup.class.php:768
|
2016 |
+
#: admin/settings/classes/setup.class.php:772
|
2017 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:708
|
2018 |
#: build/wp-ulike/admin/settings/classes/setup.class.php:712
|
2019 |
msgid "Field not found!"
|
2247 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:76
|
2248 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:164
|
2249 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:306
|
2250 |
+
#: includes/classes/class-wp-ulike-customizer.php:73
|
2251 |
+
#: includes/classes/class-wp-ulike-customizer.php:161
|
2252 |
+
#: includes/classes/class-wp-ulike-customizer.php:303
|
2253 |
msgid "Normal"
|
2254 |
msgstr ""
|
2255 |
|
2488 |
#: build/wp-ulike/admin/settings/fields/link_color/link_color.php:37
|
2489 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:94
|
2490 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:202
|
2491 |
+
#: includes/classes/class-wp-ulike-customizer.php:91
|
2492 |
+
#: includes/classes/class-wp-ulike-customizer.php:199
|
2493 |
msgid "Hover"
|
2494 |
msgstr ""
|
2495 |
|
2498 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:114
|
2499 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:237
|
2500 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:330
|
2501 |
+
#: includes/classes/class-wp-ulike-customizer.php:111
|
2502 |
+
#: includes/classes/class-wp-ulike-customizer.php:234
|
2503 |
+
#: includes/classes/class-wp-ulike-customizer.php:327
|
2504 |
msgid "Active"
|
2505 |
msgstr ""
|
2506 |
|
2573 |
msgid "Backup Font Family"
|
2574 |
msgstr ""
|
2575 |
|
2576 |
+
#: admin/settings/fields/typography/typography.php:119
|
2577 |
+
#: admin/settings/fields/typography/typography.php:132
|
2578 |
+
#: admin/settings/fields/typography/typography.php:145
|
2579 |
+
#: admin/settings/fields/typography/typography.php:160
|
2580 |
+
#: admin/settings/fields/typography/typography.php:176
|
2581 |
+
#: admin/settings/fields/typography/typography.php:189
|
2582 |
+
#: admin/settings/fields/typography/typography.php:203
|
2583 |
+
#: admin/settings/fields/typography/typography.php:221
|
2584 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:119
|
2585 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:132
|
2586 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:145
|
2587 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:160
|
2588 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:176
|
2589 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:189
|
2590 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:203
|
2591 |
+
#: build/wp-ulike/admin/settings/fields/typography/typography.php:221
|
2592 |
+
#: build/wp-ulike/inc/functions/templates.php:26
|
2593 |
+
#: includes/functions/templates.php:23
|
2594 |
+
msgid "Default"
|
2595 |
+
msgstr ""
|
2596 |
+
|
2597 |
#: admin/settings/fields/typography/typography.php:130
|
2598 |
#: build/wp-ulike/admin/settings/fields/typography/typography.php:130
|
2599 |
msgid "Font Style"
|
2792 |
msgstr ""
|
2793 |
|
2794 |
#: build/wp-ulike/inc/classes/class-wp-ulike-ajax-listener-base.php:60
|
2795 |
+
#: includes/classes/class-wp-ulike-ajax-listener-base.php:69
|
2796 |
msgid "There was an error processing the request."
|
2797 |
msgstr ""
|
2798 |
|
2799 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:46
|
2800 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:36
|
2801 |
+
#: includes/classes/class-wp-ulike-cta-listener.php:55
|
2802 |
+
#: includes/classes/class-wp-ulike-voters-listener.php:41
|
2803 |
msgid "permission denied."
|
2804 |
msgstr ""
|
2805 |
|
2806 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-cta-listener.php:50
|
2807 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-voters-listener.php:40
|
2808 |
+
#: includes/classes/class-wp-ulike-cta-listener.php:59
|
2809 |
+
#: includes/classes/class-wp-ulike-voters-listener.php:45
|
2810 |
msgid "Invalid item type."
|
2811 |
msgstr ""
|
2812 |
|
2813 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:52
|
2814 |
+
#: includes/classes/class-wp-ulike-customizer.php:49
|
2815 |
msgid "Button Templates"
|
2816 |
msgstr ""
|
2817 |
|
2818 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:56
|
2819 |
+
#: includes/classes/class-wp-ulike-customizer.php:53
|
2820 |
msgid "Template Wrapper"
|
2821 |
msgstr ""
|
2822 |
|
2823 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:61
|
2824 |
+
#: includes/classes/class-wp-ulike-customizer.php:58
|
2825 |
msgid "In this section, you can customize the template wrapper styles."
|
2826 |
msgstr ""
|
2827 |
|
2828 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:68
|
2829 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:380
|
2830 |
+
#: includes/classes/class-wp-ulike-customizer.php:65
|
2831 |
+
#: includes/classes/class-wp-ulike-customizer.php:377
|
2832 |
msgid "Typography"
|
2833 |
msgstr ""
|
2834 |
|
2845 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:475
|
2846 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:513
|
2847 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:556
|
2848 |
+
#: includes/classes/class-wp-ulike-customizer.php:78
|
2849 |
+
#: includes/classes/class-wp-ulike-customizer.php:97
|
2850 |
+
#: includes/classes/class-wp-ulike-customizer.php:117
|
2851 |
+
#: includes/classes/class-wp-ulike-customizer.php:173
|
2852 |
+
#: includes/classes/class-wp-ulike-customizer.php:212
|
2853 |
+
#: includes/classes/class-wp-ulike-customizer.php:246
|
2854 |
+
#: includes/classes/class-wp-ulike-customizer.php:314
|
2855 |
+
#: includes/classes/class-wp-ulike-customizer.php:339
|
2856 |
+
#: includes/classes/class-wp-ulike-customizer.php:396
|
2857 |
+
#: includes/classes/class-wp-ulike-customizer.php:434
|
2858 |
+
#: includes/classes/class-wp-ulike-customizer.php:472
|
2859 |
+
#: includes/classes/class-wp-ulike-customizer.php:510
|
2860 |
+
#: includes/classes/class-wp-ulike-customizer.php:553
|
2861 |
msgid "Background"
|
2862 |
msgstr ""
|
2863 |
|
2874 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:482
|
2875 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:520
|
2876 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:563
|
2877 |
+
#: includes/classes/class-wp-ulike-customizer.php:85
|
2878 |
+
#: includes/classes/class-wp-ulike-customizer.php:105
|
2879 |
+
#: includes/classes/class-wp-ulike-customizer.php:123
|
2880 |
+
#: includes/classes/class-wp-ulike-customizer.php:179
|
2881 |
+
#: includes/classes/class-wp-ulike-customizer.php:220
|
2882 |
+
#: includes/classes/class-wp-ulike-customizer.php:252
|
2883 |
+
#: includes/classes/class-wp-ulike-customizer.php:321
|
2884 |
+
#: includes/classes/class-wp-ulike-customizer.php:345
|
2885 |
+
#: includes/classes/class-wp-ulike-customizer.php:403
|
2886 |
+
#: includes/classes/class-wp-ulike-customizer.php:441
|
2887 |
+
#: includes/classes/class-wp-ulike-customizer.php:479
|
2888 |
+
#: includes/classes/class-wp-ulike-customizer.php:517
|
2889 |
+
#: includes/classes/class-wp-ulike-customizer.php:560
|
2890 |
msgid "Border"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:137
|
2894 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:280
|
2895 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:358
|
2896 |
+
#: includes/classes/class-wp-ulike-customizer.php:134
|
2897 |
+
#: includes/classes/class-wp-ulike-customizer.php:277
|
2898 |
+
#: includes/classes/class-wp-ulike-customizer.php:355
|
2899 |
msgid "Padding"
|
2900 |
msgstr ""
|
2901 |
|
2902 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:145
|
2903 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:288
|
2904 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:365
|
2905 |
+
#: includes/classes/class-wp-ulike-customizer.php:142
|
2906 |
+
#: includes/classes/class-wp-ulike-customizer.php:285
|
2907 |
+
#: includes/classes/class-wp-ulike-customizer.php:362
|
2908 |
msgid "Margin"
|
2909 |
msgstr ""
|
2910 |
|
2911 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:157
|
2912 |
+
#: includes/classes/class-wp-ulike-customizer.php:154
|
2913 |
msgid ""
|
2914 |
"In this section, you can customize the styles related to the buttons. Please "
|
2915 |
"note that some buttons have different structures (such as SVG based) and "
|
2925 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:431
|
2926 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:469
|
2927 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:507
|
2928 |
+
#: includes/classes/class-wp-ulike-customizer.php:166
|
2929 |
+
#: includes/classes/class-wp-ulike-customizer.php:205
|
2930 |
+
#: includes/classes/class-wp-ulike-customizer.php:239
|
2931 |
+
#: includes/classes/class-wp-ulike-customizer.php:308
|
2932 |
+
#: includes/classes/class-wp-ulike-customizer.php:332
|
2933 |
+
#: includes/classes/class-wp-ulike-customizer.php:390
|
2934 |
+
#: includes/classes/class-wp-ulike-customizer.php:428
|
2935 |
+
#: includes/classes/class-wp-ulike-customizer.php:466
|
2936 |
+
#: includes/classes/class-wp-ulike-customizer.php:504
|
2937 |
msgid "Text Color"
|
2938 |
msgstr ""
|
2939 |
|
2942 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:451
|
2943 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:489
|
2944 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:527
|
2945 |
+
#: includes/classes/class-wp-ulike-customizer.php:186
|
2946 |
+
#: includes/classes/class-wp-ulike-customizer.php:410
|
2947 |
+
#: includes/classes/class-wp-ulike-customizer.php:448
|
2948 |
+
#: includes/classes/class-wp-ulike-customizer.php:486
|
2949 |
+
#: includes/classes/class-wp-ulike-customizer.php:524
|
2950 |
msgid "Image Dimensions"
|
2951 |
msgstr ""
|
2952 |
|
2953 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:196
|
2954 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:231
|
2955 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:262
|
2956 |
+
#: includes/classes/class-wp-ulike-customizer.php:193
|
2957 |
+
#: includes/classes/class-wp-ulike-customizer.php:228
|
2958 |
+
#: includes/classes/class-wp-ulike-customizer.php:259
|
2959 |
msgid "Like Image"
|
2960 |
msgstr ""
|
2961 |
|
2962 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:273
|
2963 |
+
#: includes/classes/class-wp-ulike-customizer.php:270
|
2964 |
msgid "Button Dimensions"
|
2965 |
msgstr ""
|
2966 |
|
2967 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:294
|
2968 |
+
#: includes/classes/class-wp-ulike-customizer.php:291
|
2969 |
msgid "Counter"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:299
|
2973 |
+
#: includes/classes/class-wp-ulike-customizer.php:296
|
2974 |
msgid "In this section, you can customize the template counter styles."
|
2975 |
msgstr ""
|
2976 |
|
2977 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:373
|
2978 |
+
#: includes/classes/class-wp-ulike-customizer.php:370
|
2979 |
msgid "Toast Messages"
|
2980 |
msgstr ""
|
2981 |
|
2982 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:388
|
2983 |
+
#: includes/classes/class-wp-ulike-customizer.php:385
|
2984 |
msgid "Info"
|
2985 |
msgstr ""
|
2986 |
|
2988 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:458
|
2989 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:496
|
2990 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:534
|
2991 |
+
#: includes/classes/class-wp-ulike-customizer.php:417
|
2992 |
+
#: includes/classes/class-wp-ulike-customizer.php:455
|
2993 |
+
#: includes/classes/class-wp-ulike-customizer.php:493
|
2994 |
+
#: includes/classes/class-wp-ulike-customizer.php:531
|
2995 |
msgid "Icon Image"
|
2996 |
msgstr ""
|
2997 |
|
2998 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:426
|
2999 |
+
#: includes/classes/class-wp-ulike-customizer.php:423
|
3000 |
msgid "Success"
|
3001 |
msgstr ""
|
3002 |
|
3003 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:464
|
3004 |
+
#: includes/classes/class-wp-ulike-customizer.php:461
|
3005 |
msgid "Error"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:502
|
3009 |
+
#: includes/classes/class-wp-ulike-customizer.php:499
|
3010 |
msgid "Warning"
|
3011 |
msgstr ""
|
3012 |
|
3013 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:546
|
3014 |
+
#: includes/classes/class-wp-ulike-customizer.php:543
|
3015 |
msgid "Likers Box"
|
3016 |
msgstr ""
|
3017 |
|
3018 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:570
|
3019 |
+
#: includes/classes/class-wp-ulike-customizer.php:567
|
3020 |
msgid "Arrow Color"
|
3021 |
msgstr ""
|
3022 |
|
3023 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:241
|
3024 |
+
#: includes/classes/class-wp-ulike-mycred.php:238
|
3025 |
msgid "Points for Liking content"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:245
|
3029 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:270
|
3030 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:295
|
3031 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:320
|
3032 |
+
#: includes/classes/class-wp-ulike-mycred.php:242
|
3033 |
+
#: includes/classes/class-wp-ulike-mycred.php:267
|
3034 |
+
#: includes/classes/class-wp-ulike-mycred.php:292
|
3035 |
+
#: includes/classes/class-wp-ulike-mycred.php:317
|
3036 |
msgid "Points"
|
3037 |
msgstr ""
|
3038 |
|
3039 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:247
|
3040 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:272
|
3041 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:297
|
3042 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:322
|
3043 |
+
#: includes/classes/class-wp-ulike-mycred.php:244
|
3044 |
+
#: includes/classes/class-wp-ulike-mycred.php:269
|
3045 |
+
#: includes/classes/class-wp-ulike-mycred.php:294
|
3046 |
+
#: includes/classes/class-wp-ulike-mycred.php:319
|
3047 |
msgid "Use zero to disable."
|
3048 |
msgstr ""
|
3049 |
|
3050 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:252
|
3051 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:277
|
3052 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:302
|
3053 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:327
|
3054 |
+
#: includes/classes/class-wp-ulike-mycred.php:249
|
3055 |
+
#: includes/classes/class-wp-ulike-mycred.php:274
|
3056 |
+
#: includes/classes/class-wp-ulike-mycred.php:299
|
3057 |
+
#: includes/classes/class-wp-ulike-mycred.php:324
|
3058 |
msgid "Limit"
|
3059 |
msgstr ""
|
3060 |
|
3061 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:258
|
3062 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:283
|
3063 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:308
|
3064 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:333
|
3065 |
+
#: includes/classes/class-wp-ulike-mycred.php:255
|
3066 |
+
#: includes/classes/class-wp-ulike-mycred.php:280
|
3067 |
+
#: includes/classes/class-wp-ulike-mycred.php:305
|
3068 |
+
#: includes/classes/class-wp-ulike-mycred.php:330
|
3069 |
msgid "Log template"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:266
|
3073 |
+
#: includes/classes/class-wp-ulike-mycred.php:263
|
3074 |
msgid "Points for Author Who Get Liked"
|
3075 |
msgstr ""
|
3076 |
|
3077 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:291
|
3078 |
+
#: includes/classes/class-wp-ulike-mycred.php:288
|
3079 |
msgid "Points for unliking content"
|
3080 |
msgstr ""
|
3081 |
|
3082 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:316
|
3083 |
+
#: includes/classes/class-wp-ulike-mycred.php:313
|
3084 |
msgid "Points for Author Who Get Unliked"
|
3085 |
msgstr ""
|
3086 |
|
3087 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:341
|
3088 |
+
#: includes/classes/class-wp-ulike-mycred.php:338
|
3089 |
msgid "Limits"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
+
#: build/wp-ulike/inc/classes/class-wp-ulike-mycred.php:346
|
3093 |
+
#: includes/classes/class-wp-ulike-mycred.php:343
|
3094 |
msgid ""
|
3095 |
"%plural% is to be awarded even when item authors Like/Unlike their own item."
|
3096 |
msgstr ""
|
3097 |
|
3098 |
+
#: build/wp-ulike/inc/functions/counter.php:72
|
3099 |
+
#: includes/functions/counter.php:69
|
3100 |
msgid "Please enter some value for required variables."
|
3101 |
msgstr ""
|
3102 |
|
3103 |
+
#: build/wp-ulike/inc/functions/counter.php:86
|
3104 |
+
#: includes/functions/counter.php:83
|
3105 |
msgid "Table info is empty."
|
3106 |
msgstr ""
|
3107 |
|
3108 |
+
#: build/wp-ulike/inc/functions/templates.php:38
|
3109 |
+
#: includes/functions/templates.php:35
|
3110 |
msgid "Twitter Heart"
|
3111 |
msgstr ""
|
3112 |
|
3113 |
+
#: build/wp-ulike/inc/functions/templates.php:44
|
3114 |
+
#: includes/functions/templates.php:41
|
3115 |
msgid "Animated Heart"
|
3116 |
msgstr ""
|
3117 |
|
3118 |
+
#: build/wp-ulike/inc/hooks/shortcodes.php:146
|
3119 |
+
#: includes/hooks/shortcodes.php:143
|
3120 |
msgid "Error receiving input parameters"
|
3121 |
msgstr ""
|
3122 |
|
3123 |
+
#: build/wp-ulike/inc/hooks/third-party.php:120
|
3124 |
+
#: includes/hooks/third-party.php:116
|
3125 |
msgid "WP ULike Activity"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
+
#: build/wp-ulike/inc/hooks/third-party.php:135
|
3129 |
+
#: includes/hooks/third-party.php:131
|
3130 |
msgid "Votes"
|
3131 |
msgstr ""
|
3132 |
|
3133 |
+
#: build/wp-ulike/inc/hooks/third-party.php:344
|
3134 |
+
#: includes/hooks/third-party.php:340
|
3135 |
msgid "posts"
|
3136 |
msgstr ""
|
3137 |
|
3138 |
+
#: build/wp-ulike/inc/hooks/third-party.php:351
|
3139 |
+
#: includes/hooks/third-party.php:347
|
3140 |
msgid "comments"
|
3141 |
msgstr ""
|
3142 |
|
3143 |
+
#: build/wp-ulike/inc/hooks/third-party.php:357
|
3144 |
+
#: includes/hooks/third-party.php:353
|
3145 |
msgid "activities"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
+
#: build/wp-ulike/inc/hooks/third-party.php:365
|
3149 |
+
#: includes/hooks/third-party.php:361
|
3150 |
msgid "topics"
|
3151 |
msgstr ""
|
3152 |
|
3153 |
+
#: build/wp-ulike/inc/hooks/third-party.php:368
|
3154 |
+
#: includes/hooks/third-party.php:364
|
3155 |
msgid "replies"
|
3156 |
msgstr ""
|
3157 |
|
3158 |
+
#: build/wp-ulike/inc/hooks/third-party.php:380
|
3159 |
+
#: includes/hooks/third-party.php:376
|
3160 |
msgid "You have %d new %s likes"
|
3161 |
msgstr ""
|
3162 |
|
3163 |
+
#: build/wp-ulike/inc/hooks/third-party.php:384
|
3164 |
+
#: includes/hooks/third-party.php:380
|
3165 |
msgid "%s liked one of your %s"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
+
#: build/wp-ulike/inc/hooks/third-party.php:428
|
3169 |
+
#: includes/hooks/third-party.php:424
|
3170 |
msgid "New activity liked"
|
3171 |
msgstr ""
|
3172 |
|
3173 |
+
#: build/wp-ulike/inc/hooks/third-party.php:433
|
3174 |
+
#: includes/hooks/third-party.php:429
|
3175 |
msgid "New comment liked"
|
3176 |
msgstr ""
|
3177 |
|
3178 |
+
#: build/wp-ulike/inc/hooks/third-party.php:438
|
3179 |
+
#: includes/hooks/third-party.php:434
|
3180 |
msgid "New post liked"
|
3181 |
msgstr ""
|
3182 |
|
3183 |
+
#: build/wp-ulike/inc/hooks/third-party.php:443
|
3184 |
+
#: includes/hooks/third-party.php:439
|
3185 |
msgid "New topic liked"
|
3186 |
msgstr ""
|
3187 |
|
3188 |
+
#: build/wp-ulike/inc/hooks/third-party.php:797
|
3189 |
+
#: includes/hooks/third-party.php:795
|
3190 |
+
msgid "Points for liking content"
|
3191 |
+
msgstr ""
|
3192 |
+
|
3193 |
+
#: build/wp-ulike/inc/hooks/third-party.php:798
|
3194 |
+
#: includes/hooks/third-party.php:796
|
3195 |
msgid ""
|
3196 |
"This hook award / deducts points from users who Like/Unlike any content of "
|
3197 |
"WordPress, bbPress, BuddyPress & ..."
|
3198 |
msgstr ""
|
3199 |
|
3200 |
+
#: build/wp-ulike/inc/hooks/third-party.php:814
|
3201 |
+
#: includes/hooks/third-party.php:812
|
3202 |
msgid "Liking Content"
|
3203 |
msgstr ""
|
3204 |
|
3205 |
+
#: build/wp-ulike/inc/hooks/third-party.php:815
|
3206 |
+
#: includes/hooks/third-party.php:813
|
3207 |
msgid "Liked Content"
|
3208 |
msgstr ""
|
3209 |
|
3210 |
+
#: build/wp-ulike/inc/hooks/third-party.php:816
|
3211 |
+
#: includes/hooks/third-party.php:814
|
3212 |
msgid "Unliking Content"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: build/wp-ulike/inc/hooks/third-party.php:817
|
3216 |
+
#: includes/hooks/third-party.php:815
|
3217 |
msgid "Unliked Content"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
+
#: build/wp-ulike/inc/hooks/third-party.php:835
|
3221 |
+
#: includes/hooks/third-party.php:833
|
3222 |
msgid "Recent Posts Liked"
|
3223 |
msgstr ""
|
3224 |
|
3225 |
+
#: build/wp-ulike/inc/hooks/third-party.php:840
|
3226 |
+
#: includes/hooks/third-party.php:838
|
3227 |
msgid "Recent Comments Liked"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
+
#: build/wp-ulike/inc/hooks/third-party.php:871
|
3231 |
+
#: build/wp-ulike/inc/hooks/third-party.php:897
|
3232 |
+
#: build/wp-ulike/inc/hooks/third-party.php:927
|
3233 |
+
#: build/wp-ulike/inc/hooks/third-party.php:957
|
3234 |
+
#: includes/hooks/third-party.php:869 includes/hooks/third-party.php:895
|
3235 |
+
#: includes/hooks/third-party.php:925 includes/hooks/third-party.php:955
|
3236 |
msgid "This user has not made any likes."
|
3237 |
msgstr ""
|
3238 |
|
3240 |
msgid "WP ULike"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
+
#: build/wp-ulike/wp-ulike.php:594 wp-ulike.php:76
|
3244 |
msgid ""
|
3245 |
"You are using two instances of WP ULike plugin at same time, please deactive "
|
3246 |
"one of them."
|
languages/wp-ulike-fa_IR.po
CHANGED
@@ -4,7 +4,7 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
-
"POT-Creation-Date: 2021-
|
8 |
"PO-Revision-Date: 2021-01-09 02:03+0330\n"
|
9 |
"Last-Translator: \n"
|
10 |
"Language-Team: \n"
|
@@ -35,11 +35,11 @@ msgid "It's Ok!"
|
|
35 |
msgstr ""
|
36 |
|
37 |
#: admin/admin-functions.php:240
|
38 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
39 |
#: build/wp-ulike/admin/admin-functions.php:243
|
40 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
41 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
42 |
-
#:
|
43 |
msgid "Button"
|
44 |
msgstr ""
|
45 |
|
@@ -97,15 +97,17 @@ msgstr ""
|
|
97 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
98 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
99 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
100 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
101 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
|
|
102 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
103 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
104 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
105 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
106 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
107 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
108 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
|
|
109 |
msgid "Get More Information"
|
110 |
msgstr ""
|
111 |
|
@@ -145,25 +147,25 @@ msgstr ""
|
|
145 |
|
146 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
147 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
148 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
149 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
150 |
#: admin/classes/class-wp-ulike-widget.php:355
|
151 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
152 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
153 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
154 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
155 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
156 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
157 |
msgid "Like"
|
158 |
msgstr "لایک"
|
159 |
|
160 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
161 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
162 |
msgid "Are you sure to remove this item?!"
|
163 |
msgstr "آیا از حذف این آیتم اطمینان دارید؟!"
|
164 |
|
165 |
-
#: admin/classes/class-wp-ulike-admin-assets.php:
|
166 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:
|
167 |
msgid "No information was found in this database!"
|
168 |
msgstr ""
|
169 |
|
@@ -199,13 +201,13 @@ msgstr "وقایع لایک در تاپیک ها"
|
|
199 |
#: admin/includes/templates/statistics.php:124
|
200 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
201 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
202 |
-
#: build/wp-ulike/wp-ulike.php:
|
203 |
msgid "Statistics"
|
204 |
msgstr "آماره"
|
205 |
|
206 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
207 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
208 |
-
#: build/wp-ulike/wp-ulike.php:
|
209 |
msgid "About"
|
210 |
msgstr "درباره"
|
211 |
|
@@ -232,7 +234,7 @@ msgstr "وقایع"
|
|
232 |
|
233 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
234 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
235 |
-
#: build/wp-ulike/wp-ulike.php:
|
236 |
msgid "Settings"
|
237 |
msgstr "تنظیمات"
|
238 |
|
@@ -275,12 +277,12 @@ msgstr ""
|
|
275 |
|
276 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
277 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
278 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
279 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
280 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
281 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
282 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
283 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
284 |
msgid "Unlike"
|
285 |
msgstr "آنلایک"
|
286 |
|
@@ -381,53 +383,53 @@ msgid "With this option, you can disable all plugin assets on these pages."
|
|
381 |
msgstr ""
|
382 |
|
383 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
384 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
385 |
#: admin/includes/templates/about.php:46
|
386 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
387 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
388 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
389 |
msgid "Home"
|
390 |
msgstr "خانه"
|
391 |
|
392 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
393 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
394 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
395 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
396 |
msgid "Singular"
|
397 |
msgstr ""
|
398 |
|
399 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
400 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
401 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
402 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
403 |
msgid "Archives"
|
404 |
msgstr "بایگانی"
|
405 |
|
406 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
407 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
408 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
409 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
410 |
msgid "Categories"
|
411 |
msgstr "دسته بندی ها"
|
412 |
|
413 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
414 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
415 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
416 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
417 |
msgid "Search Results"
|
418 |
msgstr "نتایج جستجوها"
|
419 |
|
420 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
421 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
422 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
423 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
424 |
msgid "Tags"
|
425 |
msgstr "برچسب ها"
|
426 |
|
427 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
428 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
429 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
430 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
431 |
msgid "Author Page"
|
432 |
msgstr "صفحه نویسنده"
|
433 |
|
@@ -495,12 +497,12 @@ msgstr "متن فعالیت مطالب"
|
|
495 |
|
496 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
497 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
498 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
499 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
500 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
501 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
502 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
503 |
-
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:
|
504 |
msgid "Allowed Variables:"
|
505 |
msgstr "متغیرهای قابل استفاده:"
|
506 |
|
@@ -622,204 +624,224 @@ msgid ""
|
|
622 |
"with just a few simple clicks."
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: admin/classes/class-wp-ulike-admin-panel.php:
|
626 |
-
#: build/wp-
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Plugins - WP ULike - Stable (latest release)\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/plugins/wp-ulike/\n"
|
7 |
+
"POT-Creation-Date: 2021-04-04 15:20:05+00:00\n"
|
8 |
"PO-Revision-Date: 2021-01-09 02:03+0330\n"
|
9 |
"Last-Translator: \n"
|
10 |
"Language-Team: \n"
|
35 |
msgstr ""
|
36 |
|
37 |
#: admin/admin-functions.php:240
|
38 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:786
|
39 |
#: build/wp-ulike/admin/admin-functions.php:243
|
40 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:789
|
41 |
#: build/wp-ulike/inc/classes/class-wp-ulike-customizer.php:152
|
42 |
+
#: includes/classes/class-wp-ulike-customizer.php:149
|
43 |
msgid "Button"
|
44 |
msgstr ""
|
45 |
|
97 |
#: admin/admin-hooks.php:170 admin/admin-hooks.php:194
|
98 |
#: admin/admin-hooks.php:217 admin/classes/class-wp-ulike-admin-panel.php:383
|
99 |
#: admin/classes/class-wp-ulike-admin-panel.php:413
|
100 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:443
|
101 |
#: admin/classes/class-wp-ulike-admin-panel.php:560
|
102 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:589
|
103 |
#: build/wp-ulike/admin/admin-hooks.php:173
|
104 |
#: build/wp-ulike/admin/admin-hooks.php:197
|
105 |
#: build/wp-ulike/admin/admin-hooks.php:220
|
106 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:386
|
107 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:416
|
108 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:446
|
109 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:563
|
110 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:592
|
111 |
msgid "Get More Information"
|
112 |
msgstr ""
|
113 |
|
147 |
|
148 |
#: admin/admin-hooks.php:485 admin/classes/class-wp-ulike-admin-panel.php:125
|
149 |
#: admin/classes/class-wp-ulike-admin-panel.php:142
|
150 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:640
|
151 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:670
|
152 |
#: admin/classes/class-wp-ulike-widget.php:355
|
153 |
#: build/wp-ulike/admin/admin-hooks.php:488
|
154 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:128
|
155 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:145
|
156 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:643
|
157 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:673
|
158 |
#: build/wp-ulike/admin/classes/class-wp-ulike-widget.php:358
|
159 |
msgid "Like"
|
160 |
msgstr "لایک"
|
161 |
|
162 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:126
|
163 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:109
|
164 |
msgid "Are you sure to remove this item?!"
|
165 |
msgstr "آیا از حذف این آیتم اطمینان دارید؟!"
|
166 |
|
167 |
+
#: admin/classes/class-wp-ulike-admin-assets.php:127
|
168 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-assets.php:110
|
169 |
msgid "No information was found in this database!"
|
170 |
msgstr ""
|
171 |
|
201 |
#: admin/includes/templates/statistics.php:124
|
202 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:62
|
203 |
#: build/wp-ulike/admin/includes/templates/statistics.php:127
|
204 |
+
#: build/wp-ulike/wp-ulike.php:179 includes/plugin.php:103
|
205 |
msgid "Statistics"
|
206 |
msgstr "آماره"
|
207 |
|
208 |
#: admin/classes/class-wp-ulike-admin-pages.php:67
|
209 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-pages.php:70
|
210 |
+
#: build/wp-ulike/wp-ulike.php:180 includes/plugin.php:104
|
211 |
msgid "About"
|
212 |
msgstr "درباره"
|
213 |
|
234 |
|
235 |
#: admin/classes/class-wp-ulike-admin-panel.php:43
|
236 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:46
|
237 |
+
#: build/wp-ulike/wp-ulike.php:178 includes/plugin.php:102
|
238 |
msgid "Settings"
|
239 |
msgstr "تنظیمات"
|
240 |
|
277 |
|
278 |
#: admin/classes/class-wp-ulike-admin-panel.php:131
|
279 |
#: admin/classes/class-wp-ulike-admin-panel.php:147
|
280 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:651
|
281 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:682
|
282 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:134
|
283 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:150
|
284 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:654
|
285 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:685
|
286 |
msgid "Unlike"
|
287 |
msgstr "آنلایک"
|
288 |
|
383 |
msgstr ""
|
384 |
|
385 |
#: admin/classes/class-wp-ulike-admin-panel.php:201
|
386 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:723
|
387 |
#: admin/includes/templates/about.php:46
|
388 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:204
|
389 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:726
|
390 |
#: build/wp-ulike/admin/includes/templates/about.php:49
|
391 |
msgid "Home"
|
392 |
msgstr "خانه"
|
393 |
|
394 |
#: admin/classes/class-wp-ulike-admin-panel.php:202
|
395 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:724
|
396 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:205
|
397 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:727
|
398 |
msgid "Singular"
|
399 |
msgstr ""
|
400 |
|
401 |
#: admin/classes/class-wp-ulike-admin-panel.php:203
|
402 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:725
|
403 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:206
|
404 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:728
|
405 |
msgid "Archives"
|
406 |
msgstr "بایگانی"
|
407 |
|
408 |
#: admin/classes/class-wp-ulike-admin-panel.php:204
|
409 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:726
|
410 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:207
|
411 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:729
|
412 |
msgid "Categories"
|
413 |
msgstr "دسته بندی ها"
|
414 |
|
415 |
#: admin/classes/class-wp-ulike-admin-panel.php:205
|
416 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:727
|
417 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:208
|
418 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:730
|
419 |
msgid "Search Results"
|
420 |
msgstr "نتایج جستجوها"
|
421 |
|
422 |
#: admin/classes/class-wp-ulike-admin-panel.php:206
|
423 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:728
|
424 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:209
|
425 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:731
|
426 |
msgid "Tags"
|
427 |
msgstr "برچسب ها"
|
428 |
|
429 |
#: admin/classes/class-wp-ulike-admin-panel.php:207
|
430 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:729
|
431 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:210
|
432 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:732
|
433 |
msgid "Author Page"
|
434 |
msgstr "صفحه نویسنده"
|
435 |
|
497 |
|
498 |
#: admin/classes/class-wp-ulike-admin-panel.php:268
|
499 |
#: admin/classes/class-wp-ulike-admin-panel.php:280
|
500 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:794
|
501 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:850
|
502 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:271
|
503 |
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:283
|
504 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:797
|
505 |
+
#: build/wp-ulike/admin/classes/class-wp-ulike-admin-panel.php:853
|
506 |
msgid "Allowed Variables:"
|
507 |
msgstr "متغیرهای قابل استفاده:"
|
508 |
|
624 |
"with just a few simple clicks."
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: admin/classes/class-wp-ulike-admin-panel.php:430
|
628 |
+
#: build/wp-ul
|