@sapui5/sap.fe.controls 1.138.0 → 1.139.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/controls/.library +1 -1
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +31 -4
- package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +49 -3
- package/src/sap/fe/controls/easyFilter/utils.js +47 -2
- package/src/sap/fe/controls/easyFilter/utils.ts +49 -1
- package/src/sap/fe/controls/library.js +1 -1
- package/src/sap/fe/controls/messagebundle.properties +16 -10
- package/src/sap/fe/controls/messagebundle_ar.properties +5 -5
- package/src/sap/fe/controls/messagebundle_bg.properties +4 -4
- package/src/sap/fe/controls/messagebundle_ca.properties +2 -2
- package/src/sap/fe/controls/messagebundle_cnr.properties +2 -2
- package/src/sap/fe/controls/messagebundle_cs.properties +4 -4
- package/src/sap/fe/controls/messagebundle_cy.properties +5 -5
- package/src/sap/fe/controls/messagebundle_da.properties +4 -4
- package/src/sap/fe/controls/messagebundle_de.properties +5 -5
- package/src/sap/fe/controls/messagebundle_el.properties +4 -4
- package/src/sap/fe/controls/messagebundle_en.properties +5 -5
- package/src/sap/fe/controls/messagebundle_en_GB.properties +5 -5
- package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +6 -6
- package/src/sap/fe/controls/messagebundle_es.properties +4 -4
- package/src/sap/fe/controls/messagebundle_es_MX.properties +4 -4
- package/src/sap/fe/controls/messagebundle_et.properties +2 -2
- package/src/sap/fe/controls/messagebundle_fi.properties +4 -4
- package/src/sap/fe/controls/messagebundle_fr.properties +3 -3
- package/src/sap/fe/controls/messagebundle_fr_CA.properties +2 -2
- package/src/sap/fe/controls/messagebundle_hi.properties +4 -4
- package/src/sap/fe/controls/messagebundle_hr.properties +5 -5
- package/src/sap/fe/controls/messagebundle_hu.properties +4 -4
- package/src/sap/fe/controls/messagebundle_id.properties +4 -4
- package/src/sap/fe/controls/messagebundle_it.properties +6 -6
- package/src/sap/fe/controls/messagebundle_iw.properties +3 -3
- package/src/sap/fe/controls/messagebundle_ja.properties +4 -4
- package/src/sap/fe/controls/messagebundle_kk.properties +3 -3
- package/src/sap/fe/controls/messagebundle_ko.properties +3 -3
- package/src/sap/fe/controls/messagebundle_lt.properties +4 -4
- package/src/sap/fe/controls/messagebundle_lv.properties +5 -5
- package/src/sap/fe/controls/messagebundle_mk.properties +4 -4
- package/src/sap/fe/controls/messagebundle_ms.properties +5 -5
- package/src/sap/fe/controls/messagebundle_nl.properties +4 -4
- package/src/sap/fe/controls/messagebundle_no.properties +3 -3
- package/src/sap/fe/controls/messagebundle_pl.properties +4 -4
- package/src/sap/fe/controls/messagebundle_pt.properties +4 -4
- package/src/sap/fe/controls/messagebundle_pt_PT.properties +4 -4
- package/src/sap/fe/controls/messagebundle_ro.properties +4 -4
- package/src/sap/fe/controls/messagebundle_ru.properties +3 -3
- package/src/sap/fe/controls/messagebundle_sh.properties +2 -2
- package/src/sap/fe/controls/messagebundle_sk.properties +3 -3
- package/src/sap/fe/controls/messagebundle_sl.properties +5 -5
- package/src/sap/fe/controls/messagebundle_sr.properties +2 -2
- package/src/sap/fe/controls/messagebundle_sv.properties +3 -3
- package/src/sap/fe/controls/messagebundle_th.properties +2 -2
- package/src/sap/fe/controls/messagebundle_tr.properties +3 -3
- package/src/sap/fe/controls/messagebundle_uk.properties +3 -3
- package/src/sap/fe/controls/messagebundle_vi.properties +5 -5
- package/src/sap/fe/controls/messagebundle_zh_CN.properties +2 -2
- package/src/sap/fe/controls/messagebundle_zh_TW.properties +3 -3
|
@@ -149,12 +149,41 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/ui/core/Lib", "sap/ui/core/format
|
|
|
149
149
|
function convertBoolToString(value) {
|
|
150
150
|
return value ? resourceBundle.getText("M_EASY_FILTER_SELECTED_VALUES_TRUE") : resourceBundle.getText("M_EASY_FILTER_SELECTED_VALUES_FALSE");
|
|
151
151
|
}
|
|
152
|
-
|
|
152
|
+
|
|
153
|
+
//This function returns true if the filter is not a valid "SingleRange" (e.g., wrong operator or too many values), and false if it is valid.
|
|
154
|
+
function isInvalidSingleRange(filterValue) {
|
|
155
|
+
const allowed = [FilterOperator.EQ, FilterOperator.LE, FilterOperator.LT, FilterOperator.GE, FilterOperator.GT, FilterOperator.BT];
|
|
156
|
+
|
|
157
|
+
// filterValue.operator !== FilterOperator.BT ensures BT is always valid.
|
|
158
|
+
// !allowed.includes() blocks unsupported operators.
|
|
159
|
+
// filterValue.values.length >= 2 blocks multiple values for single-range filters.
|
|
160
|
+
// Together, this returns true when the filter is not a valid single-range.
|
|
161
|
+
return filterValue.operator !== FilterOperator.BT && (!allowed.includes(filterValue.operator) || filterValue.values.length >= 2);
|
|
162
|
+
}
|
|
163
|
+
function formatData(tokens, filterValues, filterBarMetadata, setMessageStripForValidatedFilters) {
|
|
153
164
|
if (filterValues) {
|
|
154
165
|
const visitedMapForMandatoryTokens = {};
|
|
166
|
+
const nonFilterableTokenLabels = [];
|
|
167
|
+
const singleRangeTokenLabels = [];
|
|
168
|
+
const hiddenFilterTokenLabels = [];
|
|
155
169
|
for (const filterValue of filterValues) {
|
|
156
170
|
const filterCriteria = filterBarMetadata.find(field => field.name === filterValue.name);
|
|
157
171
|
if (filterCriteria) {
|
|
172
|
+
// Only block if filterable is false
|
|
173
|
+
if (Object.prototype.hasOwnProperty.call(filterCriteria, "filterable") && !filterCriteria?.filterable) {
|
|
174
|
+
nonFilterableTokenLabels.push(filterCriteria.label || filterCriteria.name);
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
// Only block if hiddenFilter is true
|
|
178
|
+
if (Object.prototype.hasOwnProperty.call(filterCriteria, "hiddenFilter") && filterCriteria?.hiddenFilter) {
|
|
179
|
+
hiddenFilterTokenLabels.push(filterCriteria.label || filterCriteria.name);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
// Only apply SingleRange logic if filterRestriction is set to SingleRange
|
|
183
|
+
if (filterCriteria?.filterRestriction === "SingleRange" && isInvalidSingleRange(filterValue)) {
|
|
184
|
+
singleRangeTokenLabels.push(filterCriteria.label || filterCriteria.name);
|
|
185
|
+
filterValue.values = []; // Reset values to avoid adding invalid token values
|
|
186
|
+
}
|
|
158
187
|
const {
|
|
159
188
|
type
|
|
160
189
|
} = filterCriteria;
|
|
@@ -198,6 +227,22 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/ui/core/Lib", "sap/ui/core/format
|
|
|
198
227
|
}
|
|
199
228
|
}
|
|
200
229
|
}
|
|
230
|
+
if (nonFilterableTokenLabels.length > 0 || singleRangeTokenLabels.length > 0 || hiddenFilterTokenLabels.length > 0) {
|
|
231
|
+
const messages = [];
|
|
232
|
+
if (nonFilterableTokenLabels.length > 0) {
|
|
233
|
+
const nonFilterableTokenLabel = `<strong>${nonFilterableTokenLabels.join(", ")}</strong>`;
|
|
234
|
+
messages.push(resourceBundle.getText("M_EASY_FILTER_NON_FILTERABLE", [nonFilterableTokenLabel]));
|
|
235
|
+
}
|
|
236
|
+
if (hiddenFilterTokenLabels.length > 0) {
|
|
237
|
+
const label = `<strong>${hiddenFilterTokenLabels.join(", ")}</strong>`;
|
|
238
|
+
messages.push(resourceBundle.getText("M_EASY_FILTER_HIDDEN_FILTER", [label]));
|
|
239
|
+
}
|
|
240
|
+
if (singleRangeTokenLabels.length > 0) {
|
|
241
|
+
const label = `<strong>${singleRangeTokenLabels.join(", ")}</strong>`;
|
|
242
|
+
messages.push(resourceBundle.getText("M_EASY_FILTER_SINGLE_RANGE", [label]));
|
|
243
|
+
}
|
|
244
|
+
setMessageStripForValidatedFilters(messages.join("<br>"));
|
|
245
|
+
}
|
|
201
246
|
}
|
|
202
247
|
}
|
|
203
248
|
const EasyFilterUtils = {
|
|
@@ -213,4 +258,4 @@ sap.ui.define(["sap/base/util/deepEqual", "sap/ui/core/Lib", "sap/ui/core/format
|
|
|
213
258
|
};
|
|
214
259
|
return EasyFilterUtils;
|
|
215
260
|
}, false);
|
|
216
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvdXJjZUJ1bmRsZSIsIkxpYiIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiZGF0ZVRpbWVPZmZzZXQiLCJEYXRlVGltZU9mZnNldCIsImFyZUl0ZW1zU2FtZSIsImFycjEiLCJhcnIyIiwibGVuZ3RoIiwiaSIsIm9wZXJhdG9yIiwic2VsZWN0ZWRWYWx1ZXMiLCJldmVyeSIsInZhbHVlIiwiaW5kZXgiLCJkZWVwRXF1YWwiLCJkZXNjcmlwdGlvbiIsImFyZUFycmF5U2FtZSIsImFyZUNvZGVMaXN0c1NhbWUiLCJhcnJOZXcxIiwiZ2V0Q29kZUxpc3RBcnJheSIsImFyck5ldzIiLCJkZXNjcmlwdGlvbk5ldzEiLCJtYXAiLCJkYXRhIiwiZGVzY3JpcHRpb25OZXcyIiwidmFsdWUxIiwidmFsdWUyIiwiYXJyIiwiY29udmVydERhdGVUb1N0cmluZyIsInRva2VuVHlwZSIsImlzRGF0ZVRpbWVPZmZzZXQiLCJmb3JtYXR0ZWREYXRlVGltZSIsImZvcm1hdFZhbHVlIiwiRGF0ZUZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImZvcm1hdCIsImdldFRpbWVJbnN0YW5jZSIsIm1hcE9wZXJhdG9yIiwibmV3VmFsdWUiLCJjb252ZXJ0Qm9vbFRvU3RyaW5nIiwiRGF0ZSIsIkZpbHRlck9wZXJhdG9yIiwiR1QiLCJMVCIsIkdFIiwiTEUiLCJFUSIsIkNvbnRhaW5zIiwiRW5kc1dpdGgiLCJTdGFydHNXaXRoIiwiTkUiLCJOb3RDb250YWlucyIsIk5vdEVuZHNXaXRoIiwiTm90U3RhcnRzV2l0aCIsInRvU3RyaW5nIiwibWFwT3BlcmF0b3JGb3JWYWx1ZUhlbHAiLCJtYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvciIsInZhbHVlcyIsIm5ld1ZhbHVlMSIsIm5ld1ZhbHVlMiIsIkJUIiwiaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMiLCJOQiIsImdldFRleHQiLCJmb3JtYXREYXRhIiwidG9rZW5zIiwiZmlsdGVyVmFsdWVzIiwiZmlsdGVyQmFyTWV0YWRhdGEiLCJ2aXNpdGVkTWFwRm9yTWFuZGF0b3J5VG9rZW5zIiwiZmlsdGVyVmFsdWUiLCJmaWx0ZXJDcml0ZXJpYSIsImZpbmQiLCJmaWVsZCIsIm5hbWUiLCJ0eXBlIiwidG9rZW5JbmRleCIsImZpbmRJbmRleCIsInRva2VuIiwia2V5Iiwia2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyIsIkVhc3lGaWx0ZXJVdGlscyIsIm5ld1Rva2VuIiwibGFiZWwiLCJidXN5IiwicHVzaCIsImN1cnJlbnRUb2tlbiIsImlzUmVxdWlyZWQiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbInV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9FZG1cIjtcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcEVxdWFsXCI7XG5pbXBvcnQgTGliIGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBEYXRlRm9ybWF0IGZyb20gXCJzYXAvdWkvY29yZS9mb3JtYXQvRGF0ZUZvcm1hdFwiO1xuaW1wb3J0IEZpbHRlck9wZXJhdG9yIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyT3BlcmF0b3JcIjtcbmltcG9ydCBEYXRlVGltZU9mZnNldCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvRGF0ZVRpbWVPZmZzZXRcIjtcbmltcG9ydCB0eXBlIHsgRWFzeUZpbHRlclJlc3VsdCwgUHJvcGVydHlNZXRhZGF0YSB9IGZyb20gXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9lYXN5ZmlsdGVyL0Vhc3lGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIHtcblx0QmV0d2VlblNlbGVjdGVkVmFsdWVzLFxuXHRDb2RlTGlzdFR5cGUsXG5cdEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhLFxuXHRUb2tlbkRlZmluaXRpb24sXG5cdFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uLFxuXHRUb2tlblR5cGUsXG5cdFZhbHVlSGVscEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0VmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uXG59IGZyb20gXCIuL0Vhc3lGaWx0ZXJCYXJDb250YWluZXJcIjtcblxudHlwZSBjb2RlTGlzdFR5cGUgPSBQcm9wZXJ0eU1ldGFkYXRhW1wiY29kZUxpc3RcIl07XG50eXBlIGZpbmFsQ29kZUxpc3RUeXBlID0geyB2YWx1ZTogUHJpbWl0aXZlVHlwZTsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfVtdO1xuY29uc3QgcmVzb3VyY2VCdW5kbGUgPSBMaWIuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29udHJvbHNcIikhO1xuY29uc3QgZGF0ZVRpbWVPZmZzZXQgPSBuZXcgRGF0ZVRpbWVPZmZzZXQoKTtcblxuZnVuY3Rpb24gYXJlSXRlbXNTYW1lKFxuXHRhcnIxOiByZWFkb25seSBUb2tlblNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdIHwgVmFsdWVIZWxwU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10sXG5cdGFycjI6IHJlYWRvbmx5IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10gfCBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXVxuKTogYm9vbGVhbiB7XG5cdGlmIChhcnIxLmxlbmd0aCAhPT0gYXJyMi5sZW5ndGgpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Ly8gQ29tcGFyZSBlbGVtZW50cyBvZiBib3RoIGFycmF5c1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IGFycjEubGVuZ3RoOyBpKyspIHtcblx0XHRpZiAoXG5cdFx0XHRhcnIxW2ldLm9wZXJhdG9yICE9PSBhcnIyW2ldLm9wZXJhdG9yIHx8XG5cdFx0XHQhYXJyMVtpXS5zZWxlY3RlZFZhbHVlcy5ldmVyeShcblx0XHRcdFx0KHZhbHVlLCBpbmRleCkgPT5cblx0XHRcdFx0XHR2YWx1ZSA9PT0gYXJyMltpXS5zZWxlY3RlZFZhbHVlc1tpbmRleF0gfHxcblx0XHRcdFx0XHQodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG5cdFx0XHRcdFx0XHRkZWVwRXF1YWwoKHZhbHVlIGFzIENvZGVMaXN0VHlwZSkudmFsdWUsIChhcnIyW2ldLnNlbGVjdGVkVmFsdWVzW2luZGV4XSBhcyBDb2RlTGlzdFR5cGUpLnZhbHVlKSAmJlxuXHRcdFx0XHRcdFx0KHZhbHVlIGFzIENvZGVMaXN0VHlwZSkuZGVzY3JpcHRpb24gPT09IChhcnIyW2ldLnNlbGVjdGVkVmFsdWVzW2luZGV4XSBhcyBDb2RlTGlzdFR5cGUpLmRlc2NyaXB0aW9uKVxuXHRcdFx0KVxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gdHJ1ZTsgLy8gQXJyYXlzIGFyZSB0aGUgc2FtZVxufVxuXG5mdW5jdGlvbiBhcmVBcnJheVNhbWUoYXJyMTogcmVhZG9ubHkgdW5rbm93bltdLCBhcnIyOiByZWFkb25seSB1bmtub3duW10pOiBib29sZWFuIHtcblx0aWYgKGFycjEubGVuZ3RoICE9PSBhcnIyLmxlbmd0aCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHQvLyBDb21wYXJlIGVsZW1lbnRzIG9mIGJvdGggYXJyYXlzXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuXHRcdGlmIChhcnIxW2ldICE9PSBhcnIyW2ldKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB0cnVlOyAvLyBBcnJheXMgYXJlIHRoZSBzYW1lXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGFyZUNvZGVMaXN0c1NhbWUoYXJyMTogY29kZUxpc3RUeXBlLCBhcnIyOiBjb2RlTGlzdFR5cGUpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0Y29uc3QgYXJyTmV3MTogZmluYWxDb2RlTGlzdFR5cGUgfCB1bmRlZmluZWQgPSBhd2FpdCBnZXRDb2RlTGlzdEFycmF5KGFycjEpO1xuXHRjb25zdCBhcnJOZXcyOiBmaW5hbENvZGVMaXN0VHlwZSB8IHVuZGVmaW5lZCA9IGF3YWl0IGdldENvZGVMaXN0QXJyYXkoYXJyMik7XG5cdGNvbnN0IGRlc2NyaXB0aW9uTmV3MSA9IGFyck5ldzE/Lm1hcCgoZGF0YSkgPT4gZGF0YS5kZXNjcmlwdGlvbik7XG5cdGNvbnN0IGRlc2NyaXB0aW9uTmV3MiA9IGFyck5ldzI/Lm1hcCgoZGF0YSkgPT4gZGF0YS5kZXNjcmlwdGlvbik7XG5cblx0Y29uc3QgdmFsdWUxID0gYXJyTmV3MT8ubWFwKChkYXRhKSA9PiBkYXRhLnZhbHVlKTtcblx0Y29uc3QgdmFsdWUyID0gYXJyTmV3Mj8ubWFwKChkYXRhKSA9PiBkYXRhLnZhbHVlKTtcblx0aWYgKCFkZXNjcmlwdGlvbk5ldzEgfHwgIWRlc2NyaXB0aW9uTmV3Mikge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHRyZXR1cm4gYXJlQXJyYXlTYW1lKGRlc2NyaXB0aW9uTmV3MSwgZGVzY3JpcHRpb25OZXcyKSAmJiBhcmVBcnJheVNhbWUodmFsdWUxIGFzIFByaW1pdGl2ZVR5cGUsIHZhbHVlMiBhcyBQcmltaXRpdmVUeXBlKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0Q29kZUxpc3RBcnJheShhcnI6IGNvZGVMaXN0VHlwZSk6IFByb21pc2U8ZmluYWxDb2RlTGlzdFR5cGUgfCB1bmRlZmluZWQ+IHtcblx0aWYgKHR5cGVvZiBhcnIgPT09IFwiZnVuY3Rpb25cIikge1xuXHRcdHJldHVybiBhcnIoKTtcblx0fVxuXHRyZXR1cm4gYXJyO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0RGF0ZVRvU3RyaW5nKHZhbHVlOiBEYXRlLCB0b2tlblR5cGU6IFRva2VuVHlwZSwgaXNEYXRlVGltZU9mZnNldDogYm9vbGVhbik6IHN0cmluZyB7XG5cdGxldCBmb3JtYXR0ZWREYXRlVGltZSA9IFwiXCI7XG5cdGlmIChpc0RhdGVUaW1lT2Zmc2V0KSB7XG5cdFx0cmV0dXJuIGRhdGVUaW1lT2Zmc2V0LmZvcm1hdFZhbHVlKHZhbHVlLCBcInN0cmluZ1wiKSBhcyBzdHJpbmc7XG5cdH1cblx0c3dpdGNoICh0b2tlblR5cGUpIHtcblx0XHRjYXNlIFwiQ2FsZW5kYXJcIjpcblx0XHRcdGZvcm1hdHRlZERhdGVUaW1lID0gRGF0ZUZvcm1hdC5nZXREYXRlSW5zdGFuY2UoKS5mb3JtYXQodmFsdWUpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBcIlRpbWVcIjpcblx0XHRcdGZvcm1hdHRlZERhdGVUaW1lID0gRGF0ZUZvcm1hdC5nZXRUaW1lSW5zdGFuY2UoKS5mb3JtYXQodmFsdWUpO1xuXHRcdFx0YnJlYWs7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdGJyZWFrO1xuXHR9XG5cdHJldHVybiBmb3JtYXR0ZWREYXRlVGltZTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9wZXJhdG9yIGFuZCB2YWx1ZS5cbiAqIEBwYXJhbSBvcGVyYXRvciBUaGUgb3BlcmF0b3IgdG8gcmVwcmVzZW50XG4gKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHJlcHJlc2VudFxuICogQHBhcmFtIHRva2VuVHlwZSBUaGUgdG9rZW4ncyB0eXBlXG4gKiBAcGFyYW0gaXNEYXRlVGltZU9mZnNldCBDaGVja3MgaWYgdGhlIGRhdGEgdHlwZSBpcyBvZiBEYXRlVGltZU9mZnNldFxuICogQHJldHVybnMgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb3BlcmF0b3IgYW5kIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIG1hcE9wZXJhdG9yKFxuXHRvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3IsXG5cdHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSxcblx0dG9rZW5UeXBlOiBUb2tlblR5cGUsXG5cdGlzRGF0ZVRpbWVPZmZzZXQ6IGJvb2xlYW5cbik6IHN0cmluZyB7XG5cdGxldCBuZXdWYWx1ZTogbnVtYmVyIHwgc3RyaW5nID0gXCJcIjtcblx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRuZXdWYWx1ZSA9IGNvbnZlcnRCb29sVG9TdHJpbmcodmFsdWUpO1xuXHR9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuXHRcdG5ld1ZhbHVlID0gY29udmVydERhdGVUb1N0cmluZyh2YWx1ZSwgdG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0KTtcblx0fSBlbHNlIHtcblx0XHRuZXdWYWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0c3dpdGNoIChvcGVyYXRvcikge1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuR1Q6XG5cdFx0XHRyZXR1cm4gYD4gJHtuZXdWYWx1ZX1gO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuTFQ6XG5cdFx0XHRyZXR1cm4gYDwgJHtuZXdWYWx1ZX1gO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuR0U6XG5cdFx0XHRyZXR1cm4gYD49ICR7bmV3VmFsdWV9YDtcblx0XHRjYXNlIEZpbHRlck9wZXJhdG9yLkxFOlxuXHRcdFx0cmV0dXJuIGA8PSAke25ld1ZhbHVlfWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5FUTpcblx0XHRcdHJldHVybiBgJHtuZXdWYWx1ZX1gO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuQ29udGFpbnM6XG5cdFx0XHRyZXR1cm4gYCoke25ld1ZhbHVlfSpgO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuRW5kc1dpdGg6XG5cdFx0XHRyZXR1cm4gYCoke25ld1ZhbHVlfWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5TdGFydHNXaXRoOlxuXHRcdFx0cmV0dXJuIGAke25ld1ZhbHVlfSpgO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuTkU6XG5cdFx0XHRyZXR1cm4gYCE9KCR7bmV3VmFsdWV9KWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5Ob3RDb250YWluczpcblx0XHRcdHJldHVybiBgISgqJHtuZXdWYWx1ZX0qKWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5Ob3RFbmRzV2l0aDpcblx0XHRcdHJldHVybiBgISgqJHtuZXdWYWx1ZX0pYDtcblx0XHRjYXNlIEZpbHRlck9wZXJhdG9yLk5vdFN0YXJ0c1dpdGg6XG5cdFx0XHRyZXR1cm4gYCEoJHtuZXdWYWx1ZX0qKWA7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiBuZXdWYWx1ZT8udG9TdHJpbmcoKTtcblx0fVxufVxuXG5mdW5jdGlvbiBtYXBPcGVyYXRvckZvclZhbHVlSGVscChvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3IsIHZhbHVlOiBDb2RlTGlzdFR5cGUsIHRva2VuVHlwZTogVG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0OiBib29sZWFuKTogc3RyaW5nIHtcblx0cmV0dXJuIG1hcE9wZXJhdG9yKG9wZXJhdG9yLCB2YWx1ZS5kZXNjcmlwdGlvbiwgdG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gbWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IoXG5cdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcixcblx0dmFsdWVzOiBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMgfCBWYWx1ZUhlbHBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdHRva2VuVHlwZTogVG9rZW5UeXBlLFxuXHRpc0RhdGVUaW1lT2Zmc2V0OiBib29sZWFuXG4pOiBzdHJpbmcge1xuXHRsZXQgbmV3VmFsdWUxOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlID0gXCJcIjtcblx0bGV0IG5ld1ZhbHVlMjogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSA9IFwiXCI7XG5cdGlmICh0eXBlb2YgdmFsdWVzWzBdID09PSBcImJvb2xlYW5cIikge1xuXHRcdG5ld1ZhbHVlMSA9IGNvbnZlcnRCb29sVG9TdHJpbmcodmFsdWVzWzBdKTtcblx0fSBlbHNlIGlmICh2YWx1ZXNbMF0gaW5zdGFuY2VvZiBEYXRlKSB7XG5cdFx0bmV3VmFsdWUxID0gY29udmVydERhdGVUb1N0cmluZyh2YWx1ZXNbMF0sIHRva2VuVHlwZSwgaXNEYXRlVGltZU9mZnNldCk7XG5cdH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlc1swXSA9PT0gXCJvYmplY3RcIikge1xuXHRcdG5ld1ZhbHVlMSA9IHZhbHVlc1swXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XG5cdH0gZWxzZSB7XG5cdFx0bmV3VmFsdWUxID0gdmFsdWVzWzBdO1xuXHR9XG5cblx0aWYgKHR5cGVvZiB2YWx1ZXNbMV0gPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0bmV3VmFsdWUyID0gY29udmVydEJvb2xUb1N0cmluZyh2YWx1ZXNbMV0pO1xuXHR9IGVsc2UgaWYgKHZhbHVlc1sxXSBpbnN0YW5jZW9mIERhdGUpIHtcblx0XHRuZXdWYWx1ZTIgPSBjb252ZXJ0RGF0ZVRvU3RyaW5nKHZhbHVlc1sxXSwgdG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0KTtcblx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWVzWzBdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bmV3VmFsdWUyID0gdmFsdWVzWzFdLmRlc2NyaXB0aW9uIGFzIHN0cmluZztcblx0fSBlbHNlIHtcblx0XHRuZXdWYWx1ZTIgPSB2YWx1ZXNbMV07XG5cdH1cblx0aWYgKG9wZXJhdG9yID09PSBGaWx0ZXJPcGVyYXRvci5CVCkge1xuXHRcdHJldHVybiBgJHtuZXdWYWx1ZTF9Li4uJHtuZXdWYWx1ZTJ9YDtcblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gYCEoJHtuZXdWYWx1ZTF9Li4uJHtuZXdWYWx1ZTJ9KWA7XG5cdH1cbn1cblxuZnVuY3Rpb24gaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMob3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yKTogYm9vbGVhbiB7XG5cdHJldHVybiBvcGVyYXRvciA9PT0gRmlsdGVyT3BlcmF0b3IuQlQgfHwgb3BlcmF0b3IgPT09IEZpbHRlck9wZXJhdG9yLk5CO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Qm9vbFRvU3RyaW5nKHZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcblx0cmV0dXJuIHZhbHVlXG5cdFx0PyByZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9TRUxFQ1RFRF9WQUxVRVNfVFJVRVwiKVxuXHRcdDogcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfU0VMRUNURURfVkFMVUVTX0ZBTFNFXCIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREYXRhKFxuXHR0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdLFxuXHRmaWx0ZXJWYWx1ZXM6IEVhc3lGaWx0ZXJSZXN1bHRbXCJmaWx0ZXJcIl0sXG5cdGZpbHRlckJhck1ldGFkYXRhOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YVtdXG4pOiB2b2lkIHtcblx0aWYgKGZpbHRlclZhbHVlcykge1xuXHRcdGNvbnN0IHZpc2l0ZWRNYXBGb3JNYW5kYXRvcnlUb2tlbnM6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XG5cdFx0Zm9yIChjb25zdCBmaWx0ZXJWYWx1ZSBvZiBmaWx0ZXJWYWx1ZXMpIHtcblx0XHRcdGNvbnN0IGZpbHRlckNyaXRlcmlhID0gZmlsdGVyQmFyTWV0YWRhdGEuZmluZCgoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09IGZpbHRlclZhbHVlLm5hbWUpO1xuXHRcdFx0aWYgKGZpbHRlckNyaXRlcmlhKSB7XG5cdFx0XHRcdGNvbnN0IHsgdHlwZSB9ID0gZmlsdGVyQ3JpdGVyaWE7XG5cdFx0XHRcdGNvbnN0IHRva2VuSW5kZXggPSB0b2tlbnMuZmluZEluZGV4KCh0b2tlbikgPT4gdG9rZW4ua2V5ID09PSBmaWx0ZXJWYWx1ZS5uYW1lKTtcblx0XHRcdFx0Y29uc3QgeyBvcGVyYXRvciwgdmFsdWVzIH0gPSBmaWx0ZXJWYWx1ZTtcblx0XHRcdFx0bGV0IGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uO1xuXHRcdFx0XHRpZiAoRWFzeUZpbHRlclV0aWxzLmlzQmV0d2VlblNlbGVjdGVkVmFsdWVzKG9wZXJhdG9yKSkge1xuXHRcdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgPSB7XG5cdFx0XHRcdFx0XHRvcGVyYXRvcixcblx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiB2YWx1ZXMgYXMgQmV0d2VlblNlbGVjdGVkVmFsdWVzXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzID0ge1xuXHRcdFx0XHRcdFx0b3BlcmF0b3I6IG9wZXJhdG9yIGFzIEV4Y2x1ZGU8RmlsdGVyT3BlcmF0b3IsIEZpbHRlck9wZXJhdG9yLkJUIHwgRmlsdGVyT3BlcmF0b3IuTkI+LFxuXHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IHZhbHVlcyBhcyBzdHJpbmdbXSB8IERhdGVbXSB8IG51bWJlcltdIHwgYm9vbGVhbltdXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodG9rZW5JbmRleCA9PT0gLTEpIHtcblx0XHRcdFx0XHQvLyBBZGQgbmV3IHRva2VuIGlmIGl0IGRvZXNuJ3QgZXhpc3Rcblx0XHRcdFx0XHRjb25zdCBuZXdUb2tlbjogVG9rZW5EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRcdFx0a2V5OiBmaWx0ZXJWYWx1ZS5uYW1lLFxuXHRcdFx0XHRcdFx0bGFiZWw6IGZpbHRlckNyaXRlcmlhLmxhYmVsIGFzIHN0cmluZyxcblx0XHRcdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXM6IFtrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzXSxcblx0XHRcdFx0XHRcdHR5cGU6IHR5cGUgYXMgRXhjbHVkZTxUb2tlblR5cGUsIFwiVmFsdWVIZWxwXCI+LFxuXHRcdFx0XHRcdFx0YnVzeTogdHlwZSA9PT0gXCJWYWx1ZUhlbHBcIiA/IHRydWUgOiBmYWxzZVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0dG9rZW5zLnB1c2gobmV3VG9rZW4pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIFVwZGF0ZSBleGlzdGluZyB0b2tlblxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUb2tlbiA9IHRva2Vuc1t0b2tlbkluZGV4XTtcblx0XHRcdFx0XHQvL0lmIGl0cyBkZWZhdWx0IHZhbHVlICwgb3ZlcnJpZGUgaXRcblx0XHRcdFx0XHRpZiAoKGN1cnJlbnRUb2tlbi5pc1JlcXVpcmVkID8/IGZhbHNlKSAmJiAhdmlzaXRlZE1hcEZvck1hbmRhdG9yeVRva2Vuc1tjdXJyZW50VG9rZW4ua2V5XSkge1xuXHRcdFx0XHRcdFx0Y3VycmVudFRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgPSBba2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlc107XG5cdFx0XHRcdFx0XHR2aXNpdGVkTWFwRm9yTWFuZGF0b3J5VG9rZW5zW2N1cnJlbnRUb2tlbi5rZXldID0gdHJ1ZTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0KGN1cnJlbnRUb2tlbi5rZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzIGFzIFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10pLnB1c2goa2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmNvbnN0IEVhc3lGaWx0ZXJVdGlscyA9IHtcblx0YXJlSXRlbXNTYW1lLFxuXHRhcmVDb2RlTGlzdHNTYW1lLFxuXHRnZXRDb2RlTGlzdEFycmF5LFxuXHRhcmVBcnJheVNhbWUsXG5cdG1hcE9wZXJhdG9yLFxuXHRtYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvcixcblx0aXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdGZvcm1hdERhdGEsXG5cdG1hcE9wZXJhdG9yRm9yVmFsdWVIZWxwXG59O1xuXG5leHBvcnQgZGVmYXVsdCBFYXN5RmlsdGVyVXRpbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFvQkEsTUFBTUEsY0FBYyxHQUFHQyxHQUFHLENBQUNDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFFO0VBQ25FLE1BQU1DLGNBQWMsR0FBRyxJQUFJ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QUFJVSx5QkFBd0Q7VUFDNUQsSUFBSUMsZUFBZSxDQUFDbkIsdUJBQXVCLENBQUNwRCxRQUFRLENBQUMsRUFBRTtZQUN0RHNFLHlCQUF5QixHQUFHO2NBQzNCdEUsUUFBUTtjQUNSQyxjQUFjLEVBQUUrQztZQUNqQixDQUFDO1VBQ0YsQ0FBQyxNQUFNO1lBQ05zQix5QkFBeUIsR0FBRztjQUMzQnRFLFFBQVEsRUFBRUEsUUFBMEU7Y0FDcEZDLGNBQWMsRUFBRStDO1lBQ2pCLENBQUM7VUFDRjtVQUNBLElBQUlrQixVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDdEI7WUFDQSxNQUFNTSxRQUF5QixHQUFHO2NBQ2pDSCxHQUFHLEVBQUVULFdBQVcsQ0FBQ0ksSUFBSTtjQUNyQlMsS0FBSyxFQUFFWixjQUFjLENBQUNZLEtBQWU7Y0FDckNILHlCQUF5QixFQUFFLENBQUNBLHlCQUF5QixDQUFDO2NBQ3RETCxJQUFJLEVBQUVBLElBQXVDO2NBQzdDUyxJQUFJLEVBQUVULElBQUksS0FBSyxXQUFXLEdBQUcsSUFBSSxHQUFHO1lBQ3JDLENBQUM7WUFDRFQsTUFBTSxDQUFDbUIsSUFBSSxDQUFDSCxRQUFRLENBQUM7VUFDdEIsQ0FBQyxNQUFNO1lBQ047WUFDQSxNQUFNSSxZQUFZLEdBQUdwQixNQUFNLENBQUNVLFVBQVUsQ0FBQztZQUN2QztZQUNBLElBQUksQ0FBQ1UsWUFBWSxDQUFDQyxVQUFVLElBQUksS0FBSyxLQUFLLENBQUNsQiw0QkFBNEIsQ0FBQ2lCLFlBQVksQ0FBQ1AsR0FBRyxDQUFDLEVBQUU7Y0FDMUZPLFlBQVksQ0FBQ04seUJBQXlCLEdBQUcsQ0FBQ0EseUJBQXlCLENBQUM7Y0FDcEVYLDRCQUE0QixDQUFDaUIsWUFBWSxDQUFDUCxHQUFHLENBQUMsR0FBRyxJQUFJO1lBQ3RELENBQUMsTUFBTTtjQUNMTyxZQUFZLENBQUNOLHlCQUF5QixDQUFxQ0ssSUFBSSxDQUFDTCx5QkFBeUIsQ0FBQztZQUM1RztVQUNEO1FBQ0Q7TUFDRDtJQUNEO0VBQ0Q7RUFFQSxNQUFNQyxlQUFlLEdBQUc7SUFDdkI1RSxZQUFZO0lBQ1phLGdCQUFnQjtJQUNoQkUsZ0JBQWdCO0lBQ2hCSCxZQUFZO0lBQ1pxQixXQUFXO0lBQ1htQiw2QkFBNkI7SUFDN0JLLHVCQUF1QjtJQUN2QkcsVUFBVTtJQUNWVDtFQUNELENBQUM7RUFBQyxPQUVheUIsZUFBZTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
261
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvdXJjZUJ1bmRsZSIsIkxpYiIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiZGF0ZVRpbWVPZmZzZXQiLCJEYXRlVGltZU9mZnNldCIsImFyZUl0ZW1zU2FtZSIsImFycjEiLCJhcnIyIiwibGVuZ3RoIiwiaSIsIm9wZXJhdG9yIiwic2VsZWN0ZWRWYWx1ZXMiLCJldmVyeSIsInZhbHVlIiwiaW5kZXgiLCJkZWVwRXF1YWwiLCJkZXNjcmlwdGlvbiIsImFyZUFycmF5U2FtZSIsImFyZUNvZGVMaXN0c1NhbWUiLCJhcnJOZXcxIiwiZ2V0Q29kZUxpc3RBcnJheSIsImFyck5ldzIiLCJkZXNjcmlwdGlvbk5ldzEiLCJtYXAiLCJkYXRhIiwiZGVzY3JpcHRpb25OZXcyIiwidmFsdWUxIiwidmFsdWUyIiwiYXJyIiwiY29udmVydERhdGVUb1N0cmluZyIsInRva2VuVHlwZSIsImlzRGF0ZVRpbWVPZmZzZXQiLCJmb3JtYXR0ZWREYXRlVGltZSIsImZvcm1hdFZhbHVlIiwiRGF0ZUZvcm1hdCIsImdldERhdGVJbnN0YW5jZSIsImZvcm1hdCIsImdldFRpbWVJbnN0YW5jZSIsIm1hcE9wZXJhdG9yIiwibmV3VmFsdWUiLCJjb252ZXJ0Qm9vbFRvU3RyaW5nIiwiRGF0ZSIsIkZpbHRlck9wZXJhdG9yIiwiR1QiLCJMVCIsIkdFIiwiTEUiLCJFUSIsIkNvbnRhaW5zIiwiRW5kc1dpdGgiLCJTdGFydHNXaXRoIiwiTkUiLCJOb3RDb250YWlucyIsIk5vdEVuZHNXaXRoIiwiTm90U3RhcnRzV2l0aCIsInRvU3RyaW5nIiwibWFwT3BlcmF0b3JGb3JWYWx1ZUhlbHAiLCJtYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvciIsInZhbHVlcyIsIm5ld1ZhbHVlMSIsIm5ld1ZhbHVlMiIsIkJUIiwiaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMiLCJOQiIsImdldFRleHQiLCJpc0ludmFsaWRTaW5nbGVSYW5nZSIsImZpbHRlclZhbHVlIiwiYWxsb3dlZCIsImluY2x1ZGVzIiwiZm9ybWF0RGF0YSIsInRva2VucyIsImZpbHRlclZhbHVlcyIsImZpbHRlckJhck1ldGFkYXRhIiwic2V0TWVzc2FnZVN0cmlwRm9yVmFsaWRhdGVkRmlsdGVycyIsInZpc2l0ZWRNYXBGb3JNYW5kYXRvcnlUb2tlbnMiLCJub25GaWx0ZXJhYmxlVG9rZW5MYWJlbHMiLCJzaW5nbGVSYW5nZVRva2VuTGFiZWxzIiwiaGlkZGVuRmlsdGVyVG9rZW5MYWJlbHMiLCJmaWx0ZXJDcml0ZXJpYSIsImZpbmQiLCJmaWVsZCIsIm5hbWUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJmaWx0ZXJhYmxlIiwicHVzaCIsImxhYmVsIiwiaGlkZGVuRmlsdGVyIiwiZmlsdGVyUmVzdHJpY3Rpb24iLCJ0eXBlIiwidG9rZW5JbmRleCIsImZpbmRJbmRleCIsInRva2VuIiwia2V5Iiwia2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyIsIkVhc3lGaWx0ZXJVdGlscyIsIm5ld1Rva2VuIiwiYnVzeSIsImN1cnJlbnRUb2tlbiIsImlzUmVxdWlyZWQiLCJtZXNzYWdlcyIsIm5vbkZpbHRlcmFibGVUb2tlbkxhYmVsIiwiam9pbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsidXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwRXF1YWxcIjtcbmltcG9ydCBMaWIgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IERhdGVGb3JtYXQgZnJvbSBcInNhcC91aS9jb3JlL2Zvcm1hdC9EYXRlRm9ybWF0XCI7XG5pbXBvcnQgRmlsdGVyT3BlcmF0b3IgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJPcGVyYXRvclwiO1xuaW1wb3J0IERhdGVUaW1lT2Zmc2V0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlVGltZU9mZnNldFwiO1xuaW1wb3J0IHR5cGUgeyBFYXN5RmlsdGVyUmVzdWx0LCBQcm9wZXJ0eU1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiO1xuaW1wb3J0IHR5cGUge1xuXHRCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMsXG5cdENvZGVMaXN0VHlwZSxcblx0RWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGEsXG5cdFRva2VuRGVmaW5pdGlvbixcblx0VG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb24sXG5cdFRva2VuVHlwZSxcblx0VmFsdWVIZWxwQmV0d2VlblNlbGVjdGVkVmFsdWVzLFxuXHRWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25cbn0gZnJvbSBcIi4vRWFzeUZpbHRlckJhckNvbnRhaW5lclwiO1xuXG50eXBlIGNvZGVMaXN0VHlwZSA9IFByb3BlcnR5TWV0YWRhdGFbXCJjb2RlTGlzdFwiXTtcbnR5cGUgZmluYWxDb2RlTGlzdFR5cGUgPSB7IHZhbHVlOiBQcmltaXRpdmVUeXBlOyBkZXNjcmlwdGlvbj86IHN0cmluZyB9W107XG5jb25zdCByZXNvdXJjZUJ1bmRsZSA9IExpYi5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb250cm9sc1wiKSE7XG5jb25zdCBkYXRlVGltZU9mZnNldCA9IG5ldyBEYXRlVGltZU9mZnNldCgpO1xuXG5mdW5jdGlvbiBhcmVJdGVtc1NhbWUoXG5cdGFycjE6IHJlYWRvbmx5IFRva2VuU2VsZWN0ZWRWYWx1ZXNEZWZpbml0aW9uW10gfCBWYWx1ZUhlbHBTZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSxcblx0YXJyMjogcmVhZG9ubHkgVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSB8IFZhbHVlSGVscFNlbGVjdGVkVmFsdWVzRGVmaW5pdGlvbltdXG4pOiBib29sZWFuIHtcblx0aWYgKGFycjEubGVuZ3RoICE9PSBhcnIyLmxlbmd0aCkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXHQvLyBDb21wYXJlIGVsZW1lbnRzIG9mIGJvdGggYXJyYXlzXG5cdGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuXHRcdGlmIChcblx0XHRcdGFycjFbaV0ub3BlcmF0b3IgIT09IGFycjJbaV0ub3BlcmF0b3IgfHxcblx0XHRcdCFhcnIxW2ldLnNlbGVjdGVkVmFsdWVzLmV2ZXJ5KFxuXHRcdFx0XHQodmFsdWUsIGluZGV4KSA9PlxuXHRcdFx0XHRcdHZhbHVlID09PSBhcnIyW2ldLnNlbGVjdGVkVmFsdWVzW2luZGV4XSB8fFxuXHRcdFx0XHRcdCh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcblx0XHRcdFx0XHRcdGRlZXBFcXVhbCgodmFsdWUgYXMgQ29kZUxpc3RUeXBlKS52YWx1ZSwgKGFycjJbaV0uc2VsZWN0ZWRWYWx1ZXNbaW5kZXhdIGFzIENvZGVMaXN0VHlwZSkudmFsdWUpICYmXG5cdFx0XHRcdFx0XHQodmFsdWUgYXMgQ29kZUxpc3RUeXBlKS5kZXNjcmlwdGlvbiA9PT0gKGFycjJbaV0uc2VsZWN0ZWRWYWx1ZXNbaW5kZXhdIGFzIENvZGVMaXN0VHlwZSkuZGVzY3JpcHRpb24pXG5cdFx0XHQpXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cdHJldHVybiB0cnVlOyAvLyBBcnJheXMgYXJlIHRoZSBzYW1lXG59XG5cbmZ1bmN0aW9uIGFyZUFycmF5U2FtZShhcnIxOiByZWFkb25seSB1bmtub3duW10sIGFycjI6IHJlYWRvbmx5IHVua25vd25bXSk6IGJvb2xlYW4ge1xuXHRpZiAoYXJyMS5sZW5ndGggIT09IGFycjIubGVuZ3RoKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdC8vIENvbXBhcmUgZWxlbWVudHMgb2YgYm90aCBhcnJheXNcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhcnIxLmxlbmd0aDsgaSsrKSB7XG5cdFx0aWYgKGFycjFbaV0gIT09IGFycjJbaV0pIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHRydWU7IC8vIEFycmF5cyBhcmUgdGhlIHNhbWVcbn1cblxuYXN5bmMgZnVuY3Rpb24gYXJlQ29kZUxpc3RzU2FtZShhcnIxOiBjb2RlTGlzdFR5cGUsIGFycjI6IGNvZGVMaXN0VHlwZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRjb25zdCBhcnJOZXcxOiBmaW5hbENvZGVMaXN0VHlwZSB8IHVuZGVmaW5lZCA9IGF3YWl0IGdldENvZGVMaXN0QXJyYXkoYXJyMSk7XG5cdGNvbnN0IGFyck5ldzI6IGZpbmFsQ29kZUxpc3RUeXBlIHwgdW5kZWZpbmVkID0gYXdhaXQgZ2V0Q29kZUxpc3RBcnJheShhcnIyKTtcblx0Y29uc3QgZGVzY3JpcHRpb25OZXcxID0gYXJyTmV3MT8ubWFwKChkYXRhKSA9PiBkYXRhLmRlc2NyaXB0aW9uKTtcblx0Y29uc3QgZGVzY3JpcHRpb25OZXcyID0gYXJyTmV3Mj8ubWFwKChkYXRhKSA9PiBkYXRhLmRlc2NyaXB0aW9uKTtcblxuXHRjb25zdCB2YWx1ZTEgPSBhcnJOZXcxPy5tYXAoKGRhdGEpID0+IGRhdGEudmFsdWUpO1xuXHRjb25zdCB2YWx1ZTIgPSBhcnJOZXcyPy5tYXAoKGRhdGEpID0+IGRhdGEudmFsdWUpO1xuXHRpZiAoIWRlc2NyaXB0aW9uTmV3MSB8fCAhZGVzY3JpcHRpb25OZXcyKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cdHJldHVybiBhcmVBcnJheVNhbWUoZGVzY3JpcHRpb25OZXcxLCBkZXNjcmlwdGlvbk5ldzIpICYmIGFyZUFycmF5U2FtZSh2YWx1ZTEgYXMgUHJpbWl0aXZlVHlwZSwgdmFsdWUyIGFzIFByaW1pdGl2ZVR5cGUpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXRDb2RlTGlzdEFycmF5KGFycjogY29kZUxpc3RUeXBlKTogUHJvbWlzZTxmaW5hbENvZGVMaXN0VHlwZSB8IHVuZGVmaW5lZD4ge1xuXHRpZiAodHlwZW9mIGFyciA9PT0gXCJmdW5jdGlvblwiKSB7XG5cdFx0cmV0dXJuIGFycigpO1xuXHR9XG5cdHJldHVybiBhcnI7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnREYXRlVG9TdHJpbmcodmFsdWU6IERhdGUsIHRva2VuVHlwZTogVG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0OiBib29sZWFuKTogc3RyaW5nIHtcblx0bGV0IGZvcm1hdHRlZERhdGVUaW1lID0gXCJcIjtcblx0aWYgKGlzRGF0ZVRpbWVPZmZzZXQpIHtcblx0XHRyZXR1cm4gZGF0ZVRpbWVPZmZzZXQuZm9ybWF0VmFsdWUodmFsdWUsIFwic3RyaW5nXCIpIGFzIHN0cmluZztcblx0fVxuXHRzd2l0Y2ggKHRva2VuVHlwZSkge1xuXHRcdGNhc2UgXCJDYWxlbmRhclwiOlxuXHRcdFx0Zm9ybWF0dGVkRGF0ZVRpbWUgPSBEYXRlRm9ybWF0LmdldERhdGVJbnN0YW5jZSgpLmZvcm1hdCh2YWx1ZSk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFwiVGltZVwiOlxuXHRcdFx0Zm9ybWF0dGVkRGF0ZVRpbWUgPSBEYXRlRm9ybWF0LmdldFRpbWVJbnN0YW5jZSgpLmZvcm1hdCh2YWx1ZSk7XG5cdFx0XHRicmVhaztcblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdH1cblx0cmV0dXJuIGZvcm1hdHRlZERhdGVUaW1lO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb3BlcmF0b3IgYW5kIHZhbHVlLlxuICogQHBhcmFtIG9wZXJhdG9yIFRoZSBvcGVyYXRvciB0byByZXByZXNlbnRcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVwcmVzZW50XG4gKiBAcGFyYW0gdG9rZW5UeXBlIFRoZSB0b2tlbidzIHR5cGVcbiAqIEBwYXJhbSBpc0RhdGVUaW1lT2Zmc2V0IENoZWNrcyBpZiB0aGUgZGF0YSB0eXBlIGlzIG9mIERhdGVUaW1lT2Zmc2V0XG4gKiBAcmV0dXJucyBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvcGVyYXRvciBhbmQgdmFsdWVcbiAqL1xuZnVuY3Rpb24gbWFwT3BlcmF0b3IoXG5cdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcixcblx0dmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBEYXRlLFxuXHR0b2tlblR5cGU6IFRva2VuVHlwZSxcblx0aXNEYXRlVGltZU9mZnNldDogYm9vbGVhblxuKTogc3RyaW5nIHtcblx0bGV0IG5ld1ZhbHVlOiBudW1iZXIgfCBzdHJpbmcgPSBcIlwiO1xuXHRpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuXHRcdG5ld1ZhbHVlID0gY29udmVydEJvb2xUb1N0cmluZyh2YWx1ZSk7XG5cdH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG5cdFx0bmV3VmFsdWUgPSBjb252ZXJ0RGF0ZVRvU3RyaW5nKHZhbHVlLCB0b2tlblR5cGUsIGlzRGF0ZVRpbWVPZmZzZXQpO1xuXHR9IGVsc2Uge1xuXHRcdG5ld1ZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRzd2l0Y2ggKG9wZXJhdG9yKSB7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5HVDpcblx0XHRcdHJldHVybiBgPiAke25ld1ZhbHVlfWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5MVDpcblx0XHRcdHJldHVybiBgPCAke25ld1ZhbHVlfWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5HRTpcblx0XHRcdHJldHVybiBgPj0gJHtuZXdWYWx1ZX1gO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuTEU6XG5cdFx0XHRyZXR1cm4gYDw9ICR7bmV3VmFsdWV9YDtcblx0XHRjYXNlIEZpbHRlck9wZXJhdG9yLkVROlxuXHRcdFx0cmV0dXJuIGAke25ld1ZhbHVlfWA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5Db250YWluczpcblx0XHRcdHJldHVybiBgKiR7bmV3VmFsdWV9KmA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5FbmRzV2l0aDpcblx0XHRcdHJldHVybiBgKiR7bmV3VmFsdWV9YDtcblx0XHRjYXNlIEZpbHRlck9wZXJhdG9yLlN0YXJ0c1dpdGg6XG5cdFx0XHRyZXR1cm4gYCR7bmV3VmFsdWV9KmA7XG5cdFx0Y2FzZSBGaWx0ZXJPcGVyYXRvci5ORTpcblx0XHRcdHJldHVybiBgIT0oJHtuZXdWYWx1ZX0pYDtcblx0XHRjYXNlIEZpbHRlck9wZXJhdG9yLk5vdENvbnRhaW5zOlxuXHRcdFx0cmV0dXJuIGAhKCoke25ld1ZhbHVlfSopYDtcblx0XHRjYXNlIEZpbHRlck9wZXJhdG9yLk5vdEVuZHNXaXRoOlxuXHRcdFx0cmV0dXJuIGAhKCoke25ld1ZhbHVlfSlgO1xuXHRcdGNhc2UgRmlsdGVyT3BlcmF0b3IuTm90U3RhcnRzV2l0aDpcblx0XHRcdHJldHVybiBgISgke25ld1ZhbHVlfSopYDtcblx0XHRkZWZhdWx0OlxuXHRcdFx0cmV0dXJuIG5ld1ZhbHVlPy50b1N0cmluZygpO1xuXHR9XG59XG5cbmZ1bmN0aW9uIG1hcE9wZXJhdG9yRm9yVmFsdWVIZWxwKG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvciwgdmFsdWU6IENvZGVMaXN0VHlwZSwgdG9rZW5UeXBlOiBUb2tlblR5cGUsIGlzRGF0ZVRpbWVPZmZzZXQ6IGJvb2xlYW4pOiBzdHJpbmcge1xuXHRyZXR1cm4gbWFwT3BlcmF0b3Iob3BlcmF0b3IsIHZhbHVlLmRlc2NyaXB0aW9uLCB0b2tlblR5cGUsIGlzRGF0ZVRpbWVPZmZzZXQpO1xufVxuXG5mdW5jdGlvbiBtYXBPcGVyYXRvckZvckJldHdlZW5PcGVyYXRvcihcblx0b3BlcmF0b3I6IEZpbHRlck9wZXJhdG9yLFxuXHR2YWx1ZXM6IEJldHdlZW5TZWxlY3RlZFZhbHVlcyB8IFZhbHVlSGVscEJldHdlZW5TZWxlY3RlZFZhbHVlcyxcblx0dG9rZW5UeXBlOiBUb2tlblR5cGUsXG5cdGlzRGF0ZVRpbWVPZmZzZXQ6IGJvb2xlYW5cbik6IHN0cmluZyB7XG5cdGxldCBuZXdWYWx1ZTE6IHN0cmluZyB8IG51bWJlciB8IERhdGUgPSBcIlwiO1xuXHRsZXQgbmV3VmFsdWUyOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlID0gXCJcIjtcblx0aWYgKHR5cGVvZiB2YWx1ZXNbMF0gPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0bmV3VmFsdWUxID0gY29udmVydEJvb2xUb1N0cmluZyh2YWx1ZXNbMF0pO1xuXHR9IGVsc2UgaWYgKHZhbHVlc1swXSBpbnN0YW5jZW9mIERhdGUpIHtcblx0XHRuZXdWYWx1ZTEgPSBjb252ZXJ0RGF0ZVRvU3RyaW5nKHZhbHVlc1swXSwgdG9rZW5UeXBlLCBpc0RhdGVUaW1lT2Zmc2V0KTtcblx0fSBlbHNlIGlmICh0eXBlb2YgdmFsdWVzWzBdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0bmV3VmFsdWUxID0gdmFsdWVzWzBdLmRlc2NyaXB0aW9uIGFzIHN0cmluZztcblx0fSBlbHNlIHtcblx0XHRuZXdWYWx1ZTEgPSB2YWx1ZXNbMF07XG5cdH1cblxuXHRpZiAodHlwZW9mIHZhbHVlc1sxXSA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRuZXdWYWx1ZTIgPSBjb252ZXJ0Qm9vbFRvU3RyaW5nKHZhbHVlc1sxXSk7XG5cdH0gZWxzZSBpZiAodmFsdWVzWzFdIGluc3RhbmNlb2YgRGF0ZSkge1xuXHRcdG5ld1ZhbHVlMiA9IGNvbnZlcnREYXRlVG9TdHJpbmcodmFsdWVzWzFdLCB0b2tlblR5cGUsIGlzRGF0ZVRpbWVPZmZzZXQpO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZXNbMF0gPT09IFwib2JqZWN0XCIpIHtcblx0XHRuZXdWYWx1ZTIgPSB2YWx1ZXNbMV0uZGVzY3JpcHRpb24gYXMgc3RyaW5nO1xuXHR9IGVsc2Uge1xuXHRcdG5ld1ZhbHVlMiA9IHZhbHVlc1sxXTtcblx0fVxuXHRpZiAob3BlcmF0b3IgPT09IEZpbHRlck9wZXJhdG9yLkJUKSB7XG5cdFx0cmV0dXJuIGAke25ld1ZhbHVlMX0uLi4ke25ld1ZhbHVlMn1gO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBgISgke25ld1ZhbHVlMX0uLi4ke25ld1ZhbHVlMn0pYDtcblx0fVxufVxuXG5mdW5jdGlvbiBpc0JldHdlZW5TZWxlY3RlZFZhbHVlcyhvcGVyYXRvcjogRmlsdGVyT3BlcmF0b3IpOiBib29sZWFuIHtcblx0cmV0dXJuIG9wZXJhdG9yID09PSBGaWx0ZXJPcGVyYXRvci5CVCB8fCBvcGVyYXRvciA9PT0gRmlsdGVyT3BlcmF0b3IuTkI7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRCb29sVG9TdHJpbmcodmFsdWU6IGJvb2xlYW4pOiBzdHJpbmcge1xuXHRyZXR1cm4gdmFsdWVcblx0XHQ/IHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX1NFTEVDVEVEX1ZBTFVFU19UUlVFXCIpXG5cdFx0OiByZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9TRUxFQ1RFRF9WQUxVRVNfRkFMU0VcIik7XG59XG5cbi8vVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgdGhlIGZpbHRlciBpcyBub3QgYSB2YWxpZCBcIlNpbmdsZVJhbmdlXCIgKGUuZy4sIHdyb25nIG9wZXJhdG9yIG9yIHRvbyBtYW55IHZhbHVlcyksIGFuZCBmYWxzZSBpZiBpdCBpcyB2YWxpZC5cbmZ1bmN0aW9uIGlzSW52YWxpZFNpbmdsZVJhbmdlKGZpbHRlclZhbHVlOiB7IG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvcjsgdmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSB8IGJvb2xlYW4pW10gfSk6IGJvb2xlYW4ge1xuXHRjb25zdCBhbGxvd2VkID0gW0ZpbHRlck9wZXJhdG9yLkVRLCBGaWx0ZXJPcGVyYXRvci5MRSwgRmlsdGVyT3BlcmF0b3IuTFQsIEZpbHRlck9wZXJhdG9yLkdFLCBGaWx0ZXJPcGVyYXRvci5HVCwgRmlsdGVyT3BlcmF0b3IuQlRdO1xuXG5cdC8vIFx0ZmlsdGVyVmFsdWUub3BlcmF0b3IgIT09IEZpbHRlck9wZXJhdG9yLkJUIGVuc3VyZXMgQlQgaXMgYWx3YXlzIHZhbGlkLlxuXHQvLyAhYWxsb3dlZC5pbmNsdWRlcygpIGJsb2NrcyB1bnN1cHBvcnRlZCBvcGVyYXRvcnMuXG5cdC8vIGZpbHRlclZhbHVlLnZhbHVlcy5sZW5ndGggPj0gMiBibG9ja3MgbXVsdGlwbGUgdmFsdWVzIGZvciBzaW5nbGUtcmFuZ2UgZmlsdGVycy5cblx0Ly8gVG9nZXRoZXIsIHRoaXMgcmV0dXJucyB0cnVlIHdoZW4gdGhlIGZpbHRlciBpcyBub3QgYSB2YWxpZCBzaW5nbGUtcmFuZ2UuXG5cdHJldHVybiBmaWx0ZXJWYWx1ZS5vcGVyYXRvciAhPT0gRmlsdGVyT3BlcmF0b3IuQlQgJiYgKCFhbGxvd2VkLmluY2x1ZGVzKGZpbHRlclZhbHVlLm9wZXJhdG9yKSB8fCBmaWx0ZXJWYWx1ZS52YWx1ZXMubGVuZ3RoID49IDIpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXREYXRhKFxuXHR0b2tlbnM6IFRva2VuRGVmaW5pdGlvbltdLFxuXHRmaWx0ZXJWYWx1ZXM6IEVhc3lGaWx0ZXJSZXN1bHRbXCJmaWx0ZXJcIl0sXG5cdGZpbHRlckJhck1ldGFkYXRhOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YVtdLFxuXHRzZXRNZXNzYWdlU3RyaXBGb3JWYWxpZGF0ZWRGaWx0ZXJzOiAobXNnOiBzdHJpbmcpID0+IHZvaWRcbik6IHZvaWQge1xuXHRpZiAoZmlsdGVyVmFsdWVzKSB7XG5cdFx0Y29uc3QgdmlzaXRlZE1hcEZvck1hbmRhdG9yeVRva2VuczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcblx0XHRjb25zdCBub25GaWx0ZXJhYmxlVG9rZW5MYWJlbHM6IHN0cmluZ1tdID0gW107XG5cdFx0Y29uc3Qgc2luZ2xlUmFuZ2VUb2tlbkxhYmVsczogc3RyaW5nW10gPSBbXTtcblx0XHRjb25zdCBoaWRkZW5GaWx0ZXJUb2tlbkxhYmVsczogc3RyaW5nW10gPSBbXTtcblxuXHRcdGZvciAoY29uc3QgZmlsdGVyVmFsdWUgb2YgZmlsdGVyVmFsdWVzKSB7XG5cdFx0XHRjb25zdCBmaWx0ZXJDcml0ZXJpYSA9IGZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBmaWx0ZXJWYWx1ZS5uYW1lKTtcblx0XHRcdGlmIChmaWx0ZXJDcml0ZXJpYSkge1xuXHRcdFx0XHQvLyBPbmx5IGJsb2NrIGlmIGZpbHRlcmFibGUgaXMgZmFsc2Vcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmaWx0ZXJDcml0ZXJpYSwgXCJmaWx0ZXJhYmxlXCIpICYmICFmaWx0ZXJDcml0ZXJpYT8uZmlsdGVyYWJsZSkge1xuXHRcdFx0XHRcdG5vbkZpbHRlcmFibGVUb2tlbkxhYmVscy5wdXNoKGZpbHRlckNyaXRlcmlhLmxhYmVsIHx8IGZpbHRlckNyaXRlcmlhLm5hbWUpO1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIE9ubHkgYmxvY2sgaWYgaGlkZGVuRmlsdGVyIGlzIHRydWVcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmaWx0ZXJDcml0ZXJpYSwgXCJoaWRkZW5GaWx0ZXJcIikgJiYgZmlsdGVyQ3JpdGVyaWE/LmhpZGRlbkZpbHRlcikge1xuXHRcdFx0XHRcdGhpZGRlbkZpbHRlclRva2VuTGFiZWxzLnB1c2goZmlsdGVyQ3JpdGVyaWEubGFiZWwgfHwgZmlsdGVyQ3JpdGVyaWEubmFtZSk7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gT25seSBhcHBseSBTaW5nbGVSYW5nZSBsb2dpYyBpZiBmaWx0ZXJSZXN0cmljdGlvbiBpcyBzZXQgdG8gU2luZ2xlUmFuZ2Vcblx0XHRcdFx0aWYgKGZpbHRlckNyaXRlcmlhPy5maWx0ZXJSZXN0cmljdGlvbiA9PT0gXCJTaW5nbGVSYW5nZVwiICYmIGlzSW52YWxpZFNpbmdsZVJhbmdlKGZpbHRlclZhbHVlKSkge1xuXHRcdFx0XHRcdHNpbmdsZVJhbmdlVG9rZW5MYWJlbHMucHVzaChmaWx0ZXJDcml0ZXJpYS5sYWJlbCB8fCBmaWx0ZXJDcml0ZXJpYS5uYW1lKTtcblx0XHRcdFx0XHRmaWx0ZXJWYWx1ZS52YWx1ZXMgPSBbXTsgLy8gUmVzZXQgdmFsdWVzIHRvIGF2b2lkIGFkZGluZyBpbnZhbGlkIHRva2VuIHZhbHVlc1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3QgeyB0eXBlIH0gPSBmaWx0ZXJDcml0ZXJpYTtcblx0XHRcdFx0Y29uc3QgdG9rZW5JbmRleCA9IHRva2Vucy5maW5kSW5kZXgoKHRva2VuKSA9PiB0b2tlbi5rZXkgPT09IGZpbHRlclZhbHVlLm5hbWUpO1xuXHRcdFx0XHRjb25zdCB7IG9wZXJhdG9yLCB2YWx1ZXMgfSA9IGZpbHRlclZhbHVlO1xuXHRcdFx0XHRsZXQga2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlczogVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb247XG5cdFx0XHRcdGlmIChFYXN5RmlsdGVyVXRpbHMuaXNCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXMob3BlcmF0b3IpKSB7XG5cdFx0XHRcdFx0a2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyA9IHtcblx0XHRcdFx0XHRcdG9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0c2VsZWN0ZWRWYWx1ZXM6IHZhbHVlcyBhcyBCZXR3ZWVuU2VsZWN0ZWRWYWx1ZXNcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgPSB7XG5cdFx0XHRcdFx0XHRvcGVyYXRvcjogb3BlcmF0b3IgYXMgRXhjbHVkZTxGaWx0ZXJPcGVyYXRvciwgRmlsdGVyT3BlcmF0b3IuQlQgfCBGaWx0ZXJPcGVyYXRvci5OQj4sXG5cdFx0XHRcdFx0XHRzZWxlY3RlZFZhbHVlczogdmFsdWVzIGFzIHN0cmluZ1tdIHwgRGF0ZVtdIHwgbnVtYmVyW10gfCBib29sZWFuW11cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0b2tlbkluZGV4ID09PSAtMSkge1xuXHRcdFx0XHRcdC8vIEFkZCBuZXcgdG9rZW4gaWYgaXQgZG9lc24ndCBleGlzdFxuXHRcdFx0XHRcdGNvbnN0IG5ld1Rva2VuOiBUb2tlbkRlZmluaXRpb24gPSB7XG5cdFx0XHRcdFx0XHRrZXk6IGZpbHRlclZhbHVlLm5hbWUsXG5cdFx0XHRcdFx0XHRsYWJlbDogZmlsdGVyQ3JpdGVyaWEubGFiZWwgYXMgc3RyaW5nLFxuXHRcdFx0XHRcdFx0a2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlczogW2tleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXNdLFxuXHRcdFx0XHRcdFx0dHlwZTogdHlwZSBhcyBFeGNsdWRlPFRva2VuVHlwZSwgXCJWYWx1ZUhlbHBcIj4sXG5cdFx0XHRcdFx0XHRidXN5OiB0eXBlID09PSBcIlZhbHVlSGVscFwiID8gdHJ1ZSA6IGZhbHNlXG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR0b2tlbnMucHVzaChuZXdUb2tlbik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Ly8gVXBkYXRlIGV4aXN0aW5nIHRva2VuXG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudFRva2VuID0gdG9rZW5zW3Rva2VuSW5kZXhdO1xuXHRcdFx0XHRcdC8vSWYgaXRzIGRlZmF1bHQgdmFsdWUgLCBvdmVycmlkZSBpdFxuXHRcdFx0XHRcdGlmICgoY3VycmVudFRva2VuLmlzUmVxdWlyZWQgPz8gZmFsc2UpICYmICF2aXNpdGVkTWFwRm9yTWFuZGF0b3J5VG9rZW5zW2N1cnJlbnRUb2tlbi5rZXldKSB7XG5cdFx0XHRcdFx0XHRjdXJyZW50VG9rZW4ua2V5U3BlY2lmaWNTZWxlY3RlZFZhbHVlcyA9IFtrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzXTtcblx0XHRcdFx0XHRcdHZpc2l0ZWRNYXBGb3JNYW5kYXRvcnlUb2tlbnNbY3VycmVudFRva2VuLmtleV0gPSB0cnVlO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHQoY3VycmVudFRva2VuLmtleVNwZWNpZmljU2VsZWN0ZWRWYWx1ZXMgYXMgVG9rZW5TZWxlY3RlZFZhbHVlc0RlZmluaXRpb25bXSkucHVzaChrZXlTcGVjaWZpY1NlbGVjdGVkVmFsdWVzKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKG5vbkZpbHRlcmFibGVUb2tlbkxhYmVscy5sZW5ndGggPiAwIHx8IHNpbmdsZVJhbmdlVG9rZW5MYWJlbHMubGVuZ3RoID4gMCB8fCBoaWRkZW5GaWx0ZXJUb2tlbkxhYmVscy5sZW5ndGggPiAwKSB7XG5cdFx0XHRjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcblx0XHRcdGlmIChub25GaWx0ZXJhYmxlVG9rZW5MYWJlbHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRjb25zdCBub25GaWx0ZXJhYmxlVG9rZW5MYWJlbCA9IGA8c3Ryb25nPiR7bm9uRmlsdGVyYWJsZVRva2VuTGFiZWxzLmpvaW4oXCIsIFwiKX08L3N0cm9uZz5gO1xuXHRcdFx0XHRtZXNzYWdlcy5wdXNoKHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX05PTl9GSUxURVJBQkxFXCIsIFtub25GaWx0ZXJhYmxlVG9rZW5MYWJlbF0pKTtcblx0XHRcdH1cblx0XHRcdGlmIChoaWRkZW5GaWx0ZXJUb2tlbkxhYmVscy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdGNvbnN0IGxhYmVsID0gYDxzdHJvbmc+JHtoaWRkZW5GaWx0ZXJUb2tlbkxhYmVscy5qb2luKFwiLCBcIil9PC9zdHJvbmc+YDtcblx0XHRcdFx0bWVzc2FnZXMucHVzaChyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9ISURERU5fRklMVEVSXCIsIFtsYWJlbF0pKTtcblx0XHRcdH1cblx0XHRcdGlmIChzaW5nbGVSYW5nZVRva2VuTGFiZWxzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0Y29uc3QgbGFiZWwgPSBgPHN0cm9uZz4ke3NpbmdsZVJhbmdlVG9rZW5MYWJlbHMuam9pbihcIiwgXCIpfTwvc3Ryb25nPmA7XG5cdFx0XHRcdG1lc3NhZ2VzLnB1c2gocmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfU0lOR0xFX1JBTkdFXCIsIFtsYWJlbF0pKTtcblx0XHRcdH1cblx0XHRcdHNldE1lc3NhZ2VTdHJpcEZvclZhbGlkYXRlZEZpbHRlcnMobWVzc2FnZXMuam9pbihcIjxicj5cIikpO1xuXHRcdH1cblx0fVxufVxuXG5jb25zdCBFYXN5RmlsdGVyVXRpbHMgPSB7XG5cdGFyZUl0ZW1zU2FtZSxcblx0YXJlQ29kZUxpc3RzU2FtZSxcblx0Z2V0Q29kZUxpc3RBcnJheSxcblx0YXJlQXJyYXlTYW1lLFxuXHRtYXBPcGVyYXRvcixcblx0bWFwT3BlcmF0b3JGb3JCZXR3ZWVuT3BlcmF0b3IsXG5cdGlzQmV0d2VlblNlbGVjdGVkVmFsdWVzLFxuXHRmb3JtYXREYXRhLFxuXHRtYXBPcGVyYXRvckZvclZhbHVlSGVscFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRWFzeUZpbHRlclV0aWxzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0VBb0JBLE1BQU1BLGNBQWMsR0FBR0MsR0FBRyxDQUFDQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBRTtFQUNuRSxNQUFNQyxjQUFjLEdBQUcsSUFBSUMsY0FBYyxDQUFDLENBQUM7RUFFM0MsU0FBU0MsWUFBWUEsQ0FDcEJDLElBQW9GLEVBQ3BGQyxJQUFvRixFQUMxRTtJQUNWLElBQUlELElBQUksQ0FBQ0UsTUFBTSxLQUFLRCxJQUFJLENBQUNDLE1BQU0sRUFBRTtNQUNoQyxPQUFPLEtBQUs7SUFDYjtJQUNBO0lBQ0EsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdILElBQUksQ0FBQ0UsTUFBTSxFQUFFQyxDQUFDLEVBQUUsRUFBRTtNQUNyQyxJQUNDSCxJQUFJLENBQUNHLENBQUMsQ0FBQyxDQUFDQyxRQUFRLEtBQUtILElBQUksQ0FBQ0UsQ0FBQyxDQUFDLENBQUNDLFFBQVEsSUFDckMsQ0FBQ0osSUFBSSxDQUFDRyxDQUFDLENBQUMsQ0FBQ0UsY0FBYyxDQUFDQyxLQUFLLENBQzVCLENBQUNDLEtBQUssRUFBRUMsS0FBSyxLQUNaRCxLQUFLLEtBQUtOLElBQUksQ0FBQ0UsQ0FBQyxDQUFDLENBQUNFLGNBQWMsQ0FBQ0csS0FBSyxDQUFDLElBQ3RDLE9BQU9ELEtBQUssS0FBSyxRQUFRLElBQ3pCRSxTQUFTLENBQUVGLEtBQUssQ0FBa0JBLEtBQUssRUFBR04sSUFBSSxDQUFDRSxDQUFDLENBQUMsQ0FBQ0UsY0FBYyxDQUFDRyxLQUFLLENBQUMsQ0FBa0JELEtBQUssQ0FBQyxJQUM5RkEsS0FBSyxDQUFrQkcsV0FBVyxLQUFNVCxJQUFJLENBQUNFLENBQUMsQ0FBQyxDQUFDRSxjQUFjLENBQUNHLEtBQUssQ0FBQyxDQUFrQkUsV0FDM0YsQ0FBQyxFQUNBO1FBQ0QsT0FBTyxLQUFLO01BQ2I7SUFDRDtJQUNBLE9BQU8sSUFBSSxDQUFDLENBQUM7RUFDZDtFQUVBLFNBQVNDLFlBQVlBLENBQUNYLElBQXdCLEVBQUVDLElBQXdCLEVBQVc7SUFDbEYsSUFBSUQsSUFBSSxDQUFDRSxNQUFNLEtBQUtELElBQUksQ0FBQ0MsTUFBTSxFQUFFO01BQ2hDLE9BQU8sS0FBSztJQUNiO0lBQ0E7SUFDQSxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0gsSUFBSSxDQUFDRSxNQUFNLEVBQUVDLENBQUMsRUFBRSxFQUFFO01BQ3JDLElBQUlILElBQUksQ0FBQ0csQ0FBQyxDQUFDLEtBQUtGLElBQUksQ0FBQ0UsQ0FBQyxDQUFDLEVBQUU7UUFDeEIsT0FBTyxLQUFLO01BQ2I7SUFDRDtJQUNBLE9BQU8sSUFBSSxDQUFDLENBQUM7RUFDZDtFQUVBLGVBQWVTLGdCQUFnQkEsQ0FBQ1osSUFBa0IsRUFBRUMsSUFBa0IsRUFBb0I7SUFDekYsTUFBTVksT0FBc0MsR0FBRyxNQUFNQyxnQkFBZ0IsQ0FBQ2QsSUFBSSxDQUFDO0lBQzNFLE1BQU1lLE9BQXNDLEdBQUcsTUFBTUQsZ0JBQWdCLENBQUNiLElBQUksQ0FBQztJQUMzRSxNQUFNZSxlQUFlLEdBQUdILE9BQU8sRUFBRUksR0FBRyxDQUFFQyxJQUFJLElBQUtBLElBQUksQ0FBQ1IsV0FBVyxDQUFDO0lBQ2hFLE1BQU1TLGVBQWUsR0FBR0osT0FBTyxFQUFFRSxHQUFHLENBQUVDLElBQUksSUFBS0EsSUFBSSxDQUFDUixXQUFXLENBQUM7SUFFaEUsTUFBTVUsTUFBTSxHQUFHUCxPQUFPLEVBQUVJLEdBQUcsQ0FBRUMsSUFBSSxJQUFLQSxJQUFJLENBQUNYLEtBQUssQ0FBQztJQUNqRCxNQUFNYyxNQUFNLEdBQUdOLE9BQU8sRUFBRUUsR0FBRyxDQUFFQyxJQUFJLElBQUtBLElBQUksQ0FBQ1gsS0FBSyxDQUFDO0lBQ2pELElBQUksQ0FBQ1MsZUFBZSxJQUFJLENBQUNHLGVBQWUsRUFBRTtNQUN6QyxPQUFPLEtBQUs7SUFDYjtJQUNBLE9BQU9SLFlBQVksQ0FBQ0ssZUFBZSxFQUFFRyxlQUFlLENBQUMsSUFBSVIsWUFBWSxDQUFDUyxNQUFNLEVBQW1CQyxNQUF1QixDQUFDO0VBQ3hIO0VBRUEsZUFBZVAsZ0JBQWdCQSxDQUFDUSxHQUFpQixFQUEwQztJQUMxRixJQUFJLE9BQU9BLEdBQUcsS0FBSyxVQUFVLEVBQUU7TUFDOUIsT0FBT0EsR0FBRyxDQUFDLENBQUM7SUFDYjtJQUNBLE9BQU9BLEdBQUc7RUFDWDtFQUVBLFNBQVNDLG1CQUFtQkEsQ0FBQ2hCLEtBQVcsRUFBRWlCLFNBQW9CLEVBQUVDLGdCQUF5QixFQUFVO0lBQ2xHLElBQUlDLGlCQUFpQixHQUFHLEVBQUU7SUFDMUIsSUFBSUQsZ0JBQWdCLEVBQUU7TUFDckIsT0FBTzVCLGNBQWMsQ0FBQzhCLFdBQVcsQ0FBQ3BCLEtBQUssRUFBRSxRQUFRLENBQUM7SUFDbkQ7SUFDQSxRQUFRaUIsU0FBUztNQUNoQixLQUFLLFVBQVU7UUFDZEUsaUJBQWlCLEdBQUdFLFVBQVUsQ0FBQ0MsZUFBZSxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDdkIsS0FBSyxDQUFDO1FBQzlEO01BQ0QsS0FBSyxNQUFNO1FBQ1ZtQixpQkFBaUIsR0FBR0UsVUFBVSxDQUFDRyxlQUFlLENBQUMsQ0FBQyxDQUFDRCxNQUFNLENBQUN2QixLQUFLLENBQUM7UUFDOUQ7TUFDRDtRQUNDO0lBQ0Y7SUFDQSxPQUFPbUIsaUJBQWlCO0VBQ3pCOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDQSxTQUFTTSxXQUFXQSxDQUNuQjVCLFFBQXdCLEVBQ3hCRyxLQUF1QyxFQUN2Q2lCLFNBQW9CLEVBQ3BCQyxnQkFBeUIsRUFDaEI7SUFDVCxJQUFJUSxRQUF5QixHQUFHLEVBQUU7SUFDbEMsSUFBSSxPQUFPMUIsS0FBSyxLQUFLLFNBQVMsRUFBRTtNQUMvQjBCLFFBQVEsR0FBR0MsbUJBQW1CLENBQUMzQixLQUFLLENBQUM7SUFDdEMsQ0FBQyxNQUFNLElBQUlBLEtBQUssWUFBWTRCLElBQUksRUFBRTtNQUNqQ0YsUUFBUSxHQUFHVixtQkFBbUIsQ0FBQ2hCLEtBQUssRUFBRWlCLFNBQVMsRUFBRUMsZ0JBQWdCLENBQUM7SUFDbkUsQ0FBQyxNQUFNO01BQ05RLFFBQVEsR0FBRzFCLEtBQUs7SUFDakI7SUFFQSxRQUFRSCxRQUFRO01BQ2YsS0FBS2dDLGNBQWMsQ0FBQ0MsRUFBRTtRQUNyQixPQUFPLEtBQUtKLFFBQVEsRUFBRTtNQUN2QixLQUFLRyxjQUFjLENBQUNFLEVBQUU7UUFDckIsT0FBTyxLQUFLTCxRQUFRLEVBQUU7TUFDdkIsS0FBS0csY0FBYyxDQUFDRyxFQUFFO1FBQ3JCLE9BQU8sTUFBTU4sUUFBUSxFQUFFO01BQ3hCLEtBQUtHLGNBQWMsQ0FBQ0ksRUFBRTtRQUNyQixPQUFPLE1BQU1QLFFBQVEsRUFBRTtNQUN4QixLQUFLRyxjQUFjLENBQUNLLEVBQUU7UUFDckIsT0FBTyxHQUFHUixRQUFRLEVBQUU7TUFDckIsS0FBS0csY0FBYyxDQUFDTSxRQUFRO1FBQzNCLE9BQU8sSUFBSVQsUUFBUSxHQUFHO01BQ3ZCLEtBQUtHLGNBQWMsQ0FBQ08sUUFBUTtRQUMzQixPQUFPLElBQUlWLFFBQVEsRUFBRTtNQUN0QixLQUFLRyxjQUFjLENBQUNRLFVBQVU7UUFDN0IsT0FBTyxHQUFHWCxRQUFRLEdBQUc7TUFDdEIsS0FBS0csY0FBYyxDQUFDUyxFQUFFO1FBQ3JCLE9BQU8sTUFBTVosUUFBUSxHQUFHO01BQ3pCLEtBQUtHLGNBQWMsQ0FBQ1UsV0FBVztRQUM5QixPQUFPLE1BQU1iLFFBQVEsSUFBSTtNQUMxQixLQUFLRyxjQUFjLENBQUNXLFdBQVc7UUFDOUIsT0FBTyxNQUFNZCxRQUFRLEdBQUc7TUFDekIsS0FBS0csY0FBYyxDQUFDWSxhQUFhO1FBQ2hDLE9BQU8sS0FBS2YsUUFBUSxJQUFJO01BQ3pCO1FBQ0MsT0FBT0EsUUFBUSxFQUFFZ0IsUUFBUSxDQUFDLENBQUM7SUFDN0I7RUFDRDtFQUVBLFNBQVNDLHVCQUF1QkEsQ0FBQzlDLFFBQXdCLEVBQUVHLEtBQW1CLEVBQUVpQixTQUFvQixFQUFFQyxnQkFBeUIsRUFBVTtJQUN4SSxPQUFPTyxXQUFXLENBQUM1QixRQUFRLEVBQUVHLEtBQUssQ0FBQ0csV0FBVyxFQUFFYyxTQUFTLEVBQUVDLGdCQUFnQixDQUFDO0VBQzdFO0VBRUEsU0FBUzBCLDZCQUE2QkEsQ0FDckMvQyxRQUF3QixFQUN4QmdELE1BQThELEVBQzlENUIsU0FBb0IsRUFDcEJDLGdCQUF5QixFQUNoQjtJQUNULElBQUk0QixTQUFpQyxHQUFHLEVBQUU7SUFDMUMsSUFBSUMsU0FBaUMsR0FBRyxFQUFFO0lBQzFDLElBQUksT0FBT0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtNQUNuQ0MsU0FBUyxHQUFHbkIsbUJBQW1CLENBQUNrQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQyxNQUFNLElBQUlBLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWWpCLElBQUksRUFBRTtNQUNyQ2tCLFNBQVMsR0FBRzlCLG1CQUFtQixDQUFDNkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFNUIsU0FBUyxFQUFFQyxnQkFBZ0IsQ0FBQztJQUN4RSxDQUFDLE1BQU0sSUFBSSxPQUFPMkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtNQUN6Q0MsU0FBUyxHQUFHRCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMxQyxXQUFxQjtJQUM1QyxDQUFDLE1BQU07TUFDTjJDLFNBQVMsR0FBR0QsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUVBLElBQUksT0FBT0EsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtNQUNuQ0UsU0FBUyxHQUFHcEIsbUJBQW1CLENBQUNrQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQyxNQUFNLElBQUlBLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWWpCLElBQUksRUFBRTtNQUNyQ21CLFNBQVMsR0FBRy9CLG1CQUFtQixDQUFDNkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFNUIsU0FBUyxFQUFFQyxnQkFBZ0IsQ0FBQztJQUN4RSxDQUFDLE1BQU0sSUFBSSxPQUFPMkIsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRTtNQUN6Q0UsU0FBUyxHQUFHRixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMxQyxXQUFxQjtJQUM1QyxDQUFDLE1BQU07TUFDTjRDLFNBQVMsR0FBR0YsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN0QjtJQUNBLElBQUloRCxRQUFRLEtBQUtnQyxjQUFjLENBQUNtQixFQUFFLEVBQUU7TUFDbkMsT0FBTyxHQUFHRixTQUFTLE1BQU1DLFNBQVMsRUFBRTtJQUNyQyxDQUFDLE1BQU07TUFDTixPQUFPLEtBQUtELFNBQVMsTUFBTUMsU0FBUyxHQUFHO0lBQ3hDO0VBQ0Q7RUFFQSxTQUFTRSx1QkFBdUJBLENBQUNwRCxRQUF3QixFQUFXO0lBQ25FLE9BQU9BLFFBQVEsS0FBS2dDLGNBQWMsQ0FBQ21CLEVBQUUsSUFBSW5ELFFBQVEsS0FBS2dDLGNBQWMsQ0FBQ3FCLEVBQUU7RUFDeEU7RUFFQSxTQUFTdkIsbUJBQW1CQSxDQUFDM0IsS0FBYyxFQUFVO0lBQ3BELE9BQU9BLEtBQUssR0FDVGIsY0FBYyxDQUFDZ0UsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLEdBQzVEaEUsY0FBYyxDQUFDZ0UsT0FBTyxDQUFDLHFDQUFxQyxDQUFDO0VBQ2pFOztFQUVBO0VBQ0EsU0FBU0Msb0JBQW9CQSxDQUFDQyxXQUF1RixFQUFXO0lBQy9ILE1BQU1DLE9BQU8sR0FBRyxDQUFDekIsY0FBYyxDQUFDSyxFQUFFLEVBQUVMLGNBQWMsQ0FBQ0ksRUFBRSxFQUFFSixjQUFjLENBQUNFLEVBQUUsRUFBRUYsY0FBYyxDQUFDRyxFQUFFLEVBQUVILGNBQWMsQ0FBQ0MsRUFBRSxFQUFFRCxjQUFjLENBQUNtQixFQUFFLENBQUM7O0lBRWxJO0lBQ0E7SUFDQTtJQUNBO0lBQ0EsT0FBT0ssV0FBVyxDQUFDeEQsUUFBUSxLQUFLZ0MsY0FBYyxDQUFDbUIsRUFBRSxLQUFLLENBQUNNLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDRixXQUFXLENBQUN4RCxRQUFRLENBQUMsSUFBSXdELFdBQVcsQ0FBQ1IsTUFBTSxDQUFDbEQsTUFBTSxJQUFJLENBQUMsQ0FBQztFQUNqSTtFQUVBLFNBQVM2RCxVQUFVQSxDQUNsQkMsTUFBeUIsRUFDekJDLFlBQXdDLEVBQ3hDQyxpQkFBK0MsRUFDL0NDLGtDQUF5RCxFQUNsRDtJQUNQLElBQUlGLFlBQVksRUFBRTtNQUNqQixNQUFNRyw0QkFBcUQsR0FBRyxDQUFDLENBQUM7TUFDaEUsTUFBTUMsd0JBQWtDLEdBQUcsRUFBRTtNQUM3QyxNQUFNQyxzQkFBZ0MsR0FBRyxFQUFFO01BQzNDLE1BQU1DLHVCQUFpQyxHQUFHLEVBQUU7TUFFNUMsS0FBSyxNQUFNWCxXQUFXLElBQUlLLFlBQVksRUFBRTtRQUN2QyxNQUFNTyxjQUFjLEdBQUdOLGlCQUFpQixDQUFDTyxJQUFJLENBQUVDLEtBQUssSUFBS0EsS0FBSyxDQUFDQyxJQUFJLEtBQUtmLFdBQVcsQ0FBQ2UsSUFBSSxDQUFDO1FBQ3pGLElBQUlILGNBQWMsRUFBRTtVQUNuQjtVQUNBLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsY0FBYyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUNBLGNBQWMsRUFBRVEsVUFBVSxFQUFFO1lBQ3RHWCx3QkFBd0IsQ0FBQ1ksSUFBSSxDQUFDVCxjQUFjLENBQUNVLEtBQUssSUFBSVYsY0FBYyxDQUFDRyxJQUFJLENBQUM7WUFDMUU7VUFDRDtVQUNBO1VBQ0EsSUFBSUMsTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxjQUFjLEVBQUUsY0FBYyxDQUFDLElBQUlBLGNBQWMsRUFBRVcsWUFBWSxFQUFFO1lBQ3pHWix1QkFBdUIsQ0FBQ1UsSUFBSSxDQUFDVCxjQUFjLENBQUNVLEtBQUssSUFBSVYsY0FBYyxDQUFDRyxJQUFJLENBQUM7WUFDekU7VUFDRDtVQUNBO1VBQ0EsSUFBSUgsY0FBYyxFQUFFWSxpQkFBaUIsS0FBSyxhQUFhLElBQUl6QixvQkFBb0IsQ0FBQ0MsV0FBVyxDQUFDLEVBQUU7WUFDN0ZVLHNCQUFzQixDQUFDVyxJQUFJLENBQUNULGNBQWMsQ0FBQ1UsS0FBSyxJQUFJVixjQUFjLENBQUNHLElBQUksQ0FBQztZQUN4RWYsV0FBVyxDQUFDUixNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7VUFDMUI7VUFFQSxNQUFNO1lBQUVpQztVQUFLLENBQUMsR0FBR2IsY0FBYztVQUMvQixNQUFNYyxVQUFVLEdBQUd0QixNQUFNLENBQUN1QixTQUFTLENBQUVDLEtBQUssSUFBS0EsS0FBSyxDQUFDQyxHQUFHLEtBQUs3QixXQUFXLENBQUNlLElBQUksQ0FBQztVQUM5RSxNQUFNO1lBQUV2RSxRQUFRO1lBQUVnRDtVQUFPLENBQUMsR0FBR1EsV0FBVztVQUN4QyxJQUFJOEIseUJBQXdEO1VBQzVELElBQUlDLGVBQWUsQ0FBQ25DLHVCQUF1QixDQUFDcEQsUUFBUSxDQUFDLEVBQUU7WUFDdERzRix5QkFBeUIsR0FBRztjQUMzQnRGLFFBQVE7Y0FDUkMsY0FBYyxFQUFFK0M7WUFDakIsQ0FBQztVQUNGLENBQUMsTUFBTTtZQUNOc0MseUJBQXlCLEdBQUc7Y0FDM0J0RixRQUFRLEVBQUVBLFFBQTBFO2NBQ3BGQyxjQUFjLEVBQUUrQztZQUNqQixDQUFDO1VBQ0Y7VUFDQSxJQUFJa0MsVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RCO1lBQ0EsTUFBTU0sUUFBeUIsR0FBRztjQUNqQ0gsR0FBRyxFQUFFN0IsV0FBVyxDQUFDZSxJQUFJO2NBQ3JCTyxLQUFLLEVBQUVWLGNBQWMsQ0FBQ1UsS0FBZTtjQUNyQ1EseUJBQXlCLEVBQUUsQ0FBQ0EseUJBQXlCLENBQUM7Y0FDdERMLElBQUksRUFBRUEsSUFBdUM7Y0FDN0NRLElBQUksRUFBRVIsSUFBSSxLQUFLLFdBQVcsR0FBRyxJQUFJLEdBQUc7WUFDckMsQ0FBQztZQUNEckIsTUFBTSxDQUFDaUIsSUFBSSxDQUFDVyxRQUFRLENBQUM7VUFDdEIsQ0FBQyxNQUFNO1lBQ047WUFDQSxNQUFNRSxZQUFZLEdBQUc5QixNQUFNLENBQUNzQixVQUFVLENBQUM7WUFDdkM7WUFDQSxJQUFJLENBQUNRLFlBQVksQ0FBQ0MsVUFBVSxJQUFJLEtBQUssS0FBSyxDQUFDM0IsNEJBQTRCLENBQUMwQixZQUFZLENBQUNMLEdBQUcsQ0FBQyxFQUFFO2NBQzFGSyxZQUFZLENBQUNKLHlCQUF5QixHQUFHLENBQUNBLHlCQUF5QixDQUFDO2NBQ3BFdEIsNEJBQTRCLENBQUMwQixZQUFZLENBQUNMLEdBQUcsQ0FBQyxHQUFHLElBQUk7WUFDdEQsQ0FBQyxNQUFNO2NBQ0xLLFlBQVksQ0FBQ0oseUJBQXlCLENBQXFDVCxJQUFJLENBQUNTLHlCQUF5QixDQUFDO1lBQzVHO1VBQ0Q7UUFDRDtNQUNEO01BQ0EsSUFBSXJCLHdCQUF3QixDQUFDbkUsTUFBTSxHQUFHLENBQUMsSUFBSW9FLHNCQUFzQixDQUFDcEUsTUFBTSxHQUFHLENBQUMsSUFBSXFFLHVCQUF1QixDQUFDckUsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNuSCxNQUFNOEYsUUFBa0IsR0FBRyxFQUFFO1FBQzdCLElBQUkzQix3QkFBd0IsQ0FBQ25FLE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDeEMsTUFBTStGLHVCQUF1QixHQUFHLFdBQVc1Qix3QkFBd0IsQ0FBQzZCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztVQUN6RkYsUUFBUSxDQUFDZixJQUFJLENBQUN2RixjQUFjLENBQUNnRSxPQUFPLENBQUMsOEJBQThCLEVBQUUsQ0FBQ3VDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUNqRztRQUNBLElBQUkxQix1QkFBdUIsQ0FBQ3JFLE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDdkMsTUFBTWdGLEtBQUssR0FBRyxXQUFXWCx1QkFBdUIsQ0FBQzJCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztVQUN0RUYsUUFBUSxDQUFDZixJQUFJLENBQUN2RixjQUFjLENBQUNnRSxPQUFPLENBQUMsNkJBQTZCLEVBQUUsQ0FBQ3dCLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUU7UUFDQSxJQUFJWixzQkFBc0IsQ0FBQ3BFLE1BQU0sR0FBRyxDQUFDLEVBQUU7VUFDdEMsTUFBTWdGLEtBQUssR0FBRyxXQUFXWixzQkFBc0IsQ0FBQzRCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztVQUNyRUYsUUFBUSxDQUFDZixJQUFJLENBQUN2RixjQUFjLENBQUNnRSxPQUFPLENBQUMsNEJBQTRCLEVBQUUsQ0FBQ3dCLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0U7UUFDQWYsa0NBQWtDLENBQUM2QixRQUFRLENBQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztNQUMxRDtJQUNEO0VBQ0Q7RUFFQSxNQUFNUCxlQUFlLEdBQUc7SUFDdkI1RixZQUFZO0lBQ1phLGdCQUFnQjtJQUNoQkUsZ0JBQWdCO0lBQ2hCSCxZQUFZO0lBQ1pxQixXQUFXO0lBQ1htQiw2QkFBNkI7SUFDN0JLLHVCQUF1QjtJQUN2Qk8sVUFBVTtJQUNWYjtFQUNELENBQUM7RUFBQyxPQUVheUMsZUFBZTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -199,16 +199,48 @@ function convertBoolToString(value: boolean): string {
|
|
|
199
199
|
: resourceBundle.getText("M_EASY_FILTER_SELECTED_VALUES_FALSE");
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
+
//This function returns true if the filter is not a valid "SingleRange" (e.g., wrong operator or too many values), and false if it is valid.
|
|
203
|
+
function isInvalidSingleRange(filterValue: { operator: FilterOperator; values: (string | number | Date | boolean)[] }): boolean {
|
|
204
|
+
const allowed = [FilterOperator.EQ, FilterOperator.LE, FilterOperator.LT, FilterOperator.GE, FilterOperator.GT, FilterOperator.BT];
|
|
205
|
+
|
|
206
|
+
// filterValue.operator !== FilterOperator.BT ensures BT is always valid.
|
|
207
|
+
// !allowed.includes() blocks unsupported operators.
|
|
208
|
+
// filterValue.values.length >= 2 blocks multiple values for single-range filters.
|
|
209
|
+
// Together, this returns true when the filter is not a valid single-range.
|
|
210
|
+
return filterValue.operator !== FilterOperator.BT && (!allowed.includes(filterValue.operator) || filterValue.values.length >= 2);
|
|
211
|
+
}
|
|
212
|
+
|
|
202
213
|
function formatData(
|
|
203
214
|
tokens: TokenDefinition[],
|
|
204
215
|
filterValues: EasyFilterResult["filter"],
|
|
205
|
-
filterBarMetadata: EasyFilterPropertyMetadata[]
|
|
216
|
+
filterBarMetadata: EasyFilterPropertyMetadata[],
|
|
217
|
+
setMessageStripForValidatedFilters: (msg: string) => void
|
|
206
218
|
): void {
|
|
207
219
|
if (filterValues) {
|
|
208
220
|
const visitedMapForMandatoryTokens: Record<string, boolean> = {};
|
|
221
|
+
const nonFilterableTokenLabels: string[] = [];
|
|
222
|
+
const singleRangeTokenLabels: string[] = [];
|
|
223
|
+
const hiddenFilterTokenLabels: string[] = [];
|
|
224
|
+
|
|
209
225
|
for (const filterValue of filterValues) {
|
|
210
226
|
const filterCriteria = filterBarMetadata.find((field) => field.name === filterValue.name);
|
|
211
227
|
if (filterCriteria) {
|
|
228
|
+
// Only block if filterable is false
|
|
229
|
+
if (Object.prototype.hasOwnProperty.call(filterCriteria, "filterable") && !filterCriteria?.filterable) {
|
|
230
|
+
nonFilterableTokenLabels.push(filterCriteria.label || filterCriteria.name);
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
// Only block if hiddenFilter is true
|
|
234
|
+
if (Object.prototype.hasOwnProperty.call(filterCriteria, "hiddenFilter") && filterCriteria?.hiddenFilter) {
|
|
235
|
+
hiddenFilterTokenLabels.push(filterCriteria.label || filterCriteria.name);
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
// Only apply SingleRange logic if filterRestriction is set to SingleRange
|
|
239
|
+
if (filterCriteria?.filterRestriction === "SingleRange" && isInvalidSingleRange(filterValue)) {
|
|
240
|
+
singleRangeTokenLabels.push(filterCriteria.label || filterCriteria.name);
|
|
241
|
+
filterValue.values = []; // Reset values to avoid adding invalid token values
|
|
242
|
+
}
|
|
243
|
+
|
|
212
244
|
const { type } = filterCriteria;
|
|
213
245
|
const tokenIndex = tokens.findIndex((token) => token.key === filterValue.name);
|
|
214
246
|
const { operator, values } = filterValue;
|
|
@@ -247,6 +279,22 @@ function formatData(
|
|
|
247
279
|
}
|
|
248
280
|
}
|
|
249
281
|
}
|
|
282
|
+
if (nonFilterableTokenLabels.length > 0 || singleRangeTokenLabels.length > 0 || hiddenFilterTokenLabels.length > 0) {
|
|
283
|
+
const messages: string[] = [];
|
|
284
|
+
if (nonFilterableTokenLabels.length > 0) {
|
|
285
|
+
const nonFilterableTokenLabel = `<strong>${nonFilterableTokenLabels.join(", ")}</strong>`;
|
|
286
|
+
messages.push(resourceBundle.getText("M_EASY_FILTER_NON_FILTERABLE", [nonFilterableTokenLabel]));
|
|
287
|
+
}
|
|
288
|
+
if (hiddenFilterTokenLabels.length > 0) {
|
|
289
|
+
const label = `<strong>${hiddenFilterTokenLabels.join(", ")}</strong>`;
|
|
290
|
+
messages.push(resourceBundle.getText("M_EASY_FILTER_HIDDEN_FILTER", [label]));
|
|
291
|
+
}
|
|
292
|
+
if (singleRangeTokenLabels.length > 0) {
|
|
293
|
+
const label = `<strong>${singleRangeTokenLabels.join(", ")}</strong>`;
|
|
294
|
+
messages.push(resourceBundle.getText("M_EASY_FILTER_SINGLE_RANGE", [label]));
|
|
295
|
+
}
|
|
296
|
+
setMessageStripForValidatedFilters(messages.join("<br>"));
|
|
297
|
+
}
|
|
250
298
|
}
|
|
251
299
|
}
|
|
252
300
|
|
|
@@ -22,7 +22,7 @@ sap.ui.define(["sap/fe/base/library", "sap/fe/controls/shortcuts/ShortcutExplana
|
|
|
22
22
|
controls: [],
|
|
23
23
|
elements: [],
|
|
24
24
|
// eslint-disable-next-line no-template-curly-in-string
|
|
25
|
-
version: "1.
|
|
25
|
+
version: "1.139.0",
|
|
26
26
|
noLibraryCSS: false
|
|
27
27
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
28
|
});
|
|
@@ -12,7 +12,7 @@ M_EASY_FILTER_PLACEHOLDER=Enter your query using natural language to filter the
|
|
|
12
12
|
# XBUT,15: Button validating the easy filter token popover
|
|
13
13
|
M_EASY_FILTER_POPOVER_OK=OK
|
|
14
14
|
# XBUT,30: Button to show all items in the easy filter token popover
|
|
15
|
-
M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=Show
|
|
15
|
+
M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=Show All Items
|
|
16
16
|
# XMSG
|
|
17
17
|
M_EASY_FILTER_MANDATORY_TOKEN_ITEMS={0} values
|
|
18
18
|
# XBUT
|
|
@@ -21,7 +21,7 @@ M_EASY_FILTER_RESET=Reset Filters
|
|
|
21
21
|
M_EASY_FILTER_SELECTED_VALUES_TRUE=Yes
|
|
22
22
|
# XFLD
|
|
23
23
|
M_EASY_FILTER_SELECTED_VALUES_FALSE=No
|
|
24
|
-
# XMSG
|
|
24
|
+
# XMSG: Showed in the easy filter when the backend deems the input unclear and couldn't provide suggestion
|
|
25
25
|
M_EASY_FILTER_UNCLEAR_INPUT=Unclear input: {0}
|
|
26
26
|
# XTIT,20: Title in the shell user settings dialog to configure the easy filter (and other AI related features)
|
|
27
27
|
M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
@@ -29,12 +29,12 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
29
29
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Easy Filter
|
|
30
30
|
# XFLD
|
|
31
31
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=Make the easy filter the default filtering option.
|
|
32
|
-
# XFLD
|
|
32
|
+
# XFLD: It appears in the User Menu under Settings --> User Activities --> SAP Business AI tab
|
|
33
33
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Keep my recent queries in the easy filter under Last used queries.
|
|
34
34
|
# XMSG
|
|
35
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
35
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Select a value for this mandatory filter.
|
|
36
36
|
# XMSG
|
|
37
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Select Value)
|
|
37
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Select a Value)
|
|
38
38
|
# XBUT
|
|
39
39
|
M_EASY_FILTER_FILTER_SET_AI=Filters:
|
|
40
40
|
# XGRP:
|
|
@@ -46,19 +46,19 @@ M_EASY_FILTER_POPOVER_LAST_USED=Last Used Queries
|
|
|
46
46
|
# XTIT
|
|
47
47
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=No favorite queries
|
|
48
48
|
# XSMG
|
|
49
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Add queries to your favorites
|
|
49
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Add queries to your favorites.
|
|
50
50
|
# XSMG
|
|
51
51
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Your last used queries will be displayed here.
|
|
52
52
|
# XTIT
|
|
53
53
|
M_EASY_FILTER_POPOVER_AI_TITLE=Created with AI
|
|
54
54
|
# XMSG
|
|
55
|
-
M_EASY_FILTER_POPOVER_AI_TEXT_1=The content was partially or fully generated by artificial intelligence(AI) technologies.
|
|
55
|
+
M_EASY_FILTER_POPOVER_AI_TEXT_1=The content was partially or fully generated by artificial intelligence (AI) technologies.
|
|
56
56
|
# XMSG
|
|
57
|
-
M_EASY_FILTER_POPOVER_AI_TEXT_2=The AI-generated content may contain inaccuracies due to using multiple information sources.Verify results before use.
|
|
57
|
+
M_EASY_FILTER_POPOVER_AI_TEXT_2=The AI-generated content may contain inaccuracies due to using multiple information sources. Verify results before use.
|
|
58
58
|
# XBUT
|
|
59
59
|
M_EASY_FILTER_POPOVER_CLOSE=Close
|
|
60
60
|
# XMSG
|
|
61
|
-
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=No
|
|
61
|
+
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=No last used queries
|
|
62
62
|
# XMSG
|
|
63
63
|
M_EASY_FILTER_FILLED_STAR=Remove from Favorites
|
|
64
64
|
# XMSG
|
|
@@ -66,7 +66,13 @@ M_EASY_FILTER_EMPTY_START=Add to Favorites
|
|
|
66
66
|
# XMSG: Text read out by the screenreader, telling users how to move to the list under the search field containing favorite queries and last used queries, if available
|
|
67
67
|
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=To move to the list of favorite queries and last used queries, press the ArrowDown key
|
|
68
68
|
# XMSG
|
|
69
|
-
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=
|
|
69
|
+
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Only one single value can be applied to the following: {0}
|
|
70
|
+
# XMSG: We need to block the user from filtering on hidden, non-filterable or system-controlled properties, as doing so would conflict with the intended behavior of the app
|
|
71
|
+
M_EASY_FILTER_NON_FILTERABLE=You can''t filter for the following property in this app: {0}
|
|
72
|
+
# XMSG: We need to block the user from filtering on hidden, non-filterable or system-controlled properties, as doing so would conflict with the intended behavior of the app
|
|
73
|
+
M_EASY_FILTER_SINGLE_RANGE=Note that only one single condition can be applied to the following: {0}
|
|
74
|
+
# XMSG: We need to block the user from filtering on hidden, non-filterable or system-controlled properties, as doing so would conflict with the intended behavior of the app
|
|
75
|
+
M_EASY_FILTER_HIDDEN_FILTER=You can''t filter for the following property in this app: {0}
|
|
70
76
|
# XTIT: Title in the shell user menu to open the shortcut dialog and the dialog title
|
|
71
77
|
C_SHORTCUT_TITLE=Keyboard Shortcuts
|
|
72
78
|
# XMSG,30: Placeholder message for the keyboard interaction input field
|
|
@@ -4,7 +4,7 @@ C_HISTORY_CLOSE=\u0625\u063A\u0644\u0627\u0642
|
|
|
4
4
|
M_EASY_FILTER_GO=\u0627\u0646\u062A\u0642\u0627\u0644
|
|
5
5
|
M_EASY_FILTER_PLACEHOLDER=\u0623\u062F\u062E\u0644 \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0643 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0627\u0644\u0644\u063A\u0629 \u0627\u0644\u0637\u0628\u064A\u0639\u064A\u0629 \u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0642\u0627\u0626\u0645\u0629
|
|
6
6
|
M_EASY_FILTER_POPOVER_OK=\u0645\u0648\u0627\u0641\u0642
|
|
7
|
-
M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=\u0625\u0638\u0647\u0627\u0631 \u0643\u0644 \u0627\u0644\
|
|
7
|
+
M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=\u0625\u0638\u0647\u0627\u0631 \u0643\u0644 \u0627\u0644\u0628\u0646\u0648\u062F
|
|
8
8
|
M_EASY_FILTER_MANDATORY_TOKEN_ITEMS={0} \u0645\u0646 \u0627\u0644\u0642\u064A\u0645
|
|
9
9
|
M_EASY_FILTER_RESET=\u0625\u0639\u0627\u062F\u0629 \u062A\u0639\u064A\u064A\u0646 \u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629
|
|
10
10
|
M_EASY_FILTER_SELECTED_VALUES_TRUE=\u0646\u0639\u0645
|
|
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=\u062A\u0635\u0641\u064A\u0629 \u0633\u0647\u0644\u0629
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=\u062C\u0639\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0633\u0647\u0644\u0629 \u0644\u062E\u064A\u0627\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=\u0627\u0644\u0627\u062D\u062A\u0641\u0627\u0638 \u0628\u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u062D\u062F\u064A\u062B\u0629 \u0641\u064A \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0633\u0647\u0644\u0629 \u0636\u0645\u0646 \u0622\u062E\u0631 \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0645\u0633\u062A\u062E\u062F\u0645\u0629.
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u062D\u062F\u062F \u0642\u064A\u0645\u0629)
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u062D\u062F\u062F \u0642\u064A\u0645\u0629 \u0644\u0639\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0627\u0644\u0625\u0644\u0632\u0627\u0645\u064A \u0647\u0630\u0627.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u062A\u062D\u062F\u064A\u062F \u0642\u064A\u0645\u0629)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=\u0639\u0648\u0627\u0645\u0644 \u0627\u0644\u062A\u0635\u0641\u064A\u0629\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=\u0627\u0642\u062A\u0631\u0627\u062D\u0627\u062A \u0644\u0628\u062F\u0621 \u0627\u0644\u0627\u0633\u062A\u062E\u062F\u0627\u0645
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=\u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0641\u0636\u0644\u0629
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=\u0622\u062E\u0631 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=\u0644\u0627 \u062A\u0648\u062C\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0645\u0641\u0636\u0644\u0629
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u0642\u0645 \u0628\u0625\u0636\u0627\u0641\u0629 \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0625\u0644\u0649 \u0645\u0641\u0636\u0644\u062A\u0643
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u0642\u0645 \u0628\u0625\u0636\u0627\u0641\u0629 \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0625\u0644\u0649 \u0645\u0641\u0636\u0644\u062A\u0643.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=\u0633\u064A\u062A\u0645 \u0639\u0631\u0636 \u0622\u062E\u0631 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645\u0629 \u0647\u0646\u0627.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=\u062A\u0645 \u0627\u0644\u0625\u0646\u0634\u0627\u0621 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=\u062A\u0645 \u0625\u0646\u0634\u0627\u0621 \u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u062C\u0632\u0626\u064A\u064B\u0627 \u0623\u0648 \u0643\u0644\u064A\u064B\u0627 \u0628\u0648\u0627\u0633\u0637\u0629 \u062A\u0642\u0646\u064A\u0627\u062A \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A (AI).
|
|
@@ -30,7 +30,7 @@ M_EASY_FILTER_POPOVER_CLOSE=\u0625\u063A\u0644\u0627\u0642
|
|
|
30
30
|
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u0644\u0627 \u062A\u0648\u062C\u062F \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0645\u0633\u062A\u062E\u062F\u0645\u0629 \u0645\u0624\u062E\u0631\u064B\u0627
|
|
31
31
|
M_EASY_FILTER_FILLED_STAR=\u0625\u0632\u0627\u0644\u0629 \u0645\u0646 \u0627\u0644\u0645\u0641\u0636\u0644\u0629
|
|
32
32
|
M_EASY_FILTER_EMPTY_START=\u0625\u0636\u0627\u0641\u0629 \u0625\u0644\u0649 \u0627\u0644\u0645\u0641\u0636\u0644\u0629
|
|
33
|
-
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0644\u0644\u0627\u0646\u062A\u0642\u0627\u0644 \u0625\u0644\u0649 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0641\u0636\u0644\u0629 \u0648\u0622\u062E\u0631 \u0627\
|
|
33
|
+
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0644\u0644\u0627\u0646\u062A\u0642\u0627\u0644 \u0625\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0627\u0644\u0645\u0641\u0636\u0644\u0629 \u0648\u0622\u062E\u0631 \u0627\u0633\u062A\u0639\u0644\u0627\u0645\u0627\u062A \u0645\u0633\u062A\u062E\u062F\u0645\u0629\u060C \u0627\u0636\u063A\u0637 \u0639\u0644\u0649 \u0627\u0644\u0645\u0641\u062A\u0627\u062D \u0633\u0647\u0645 \u0644\u0623\u0633\u0641\u0644
|
|
34
34
|
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u064A\u0645\u0643\u0646 \u062A\u0637\u0628\u064A\u0642 \u0642\u064A\u0645\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637 \u0639\u0644\u0649 \u0627\u0644\u062A\u0627\u0644\u064A\: {0}
|
|
35
35
|
C_SHORTCUT_TITLE=\u0627\u062E\u062A\u0635\u0627\u0631\u0627\u062A \u0644\u0648\u062D\u0629 \u0627\u0644\u0645\u0641\u0627\u062A\u064A\u062D
|
|
36
36
|
C_SHORTCUT_PLACEHOLDER=\u0627\u0644\u0628\u062D\u062B \u0639\u0646 \u0627\u062E\u062A\u0635\u0627\u0631 \u0644\u0648\u062D\u0629 \u0645\u0641\u0627\u062A\u064A\u062D
|
|
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Easy Filter
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=\u041D\u0430\u043F\u0440\u0430\u0432\u0435\u0442\u0435 easy filter \u043E\u043F\u0446\u0438\u044F\u0442\u0430 \u0437\u0430 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435 \u043F\u043E \u043F\u043E\u0434\u0440\u0430\u0437\u0431\u0438\u0440\u0430\u043D\u0435.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=\u0421\u044A\u0445\u0440\u0430\u043D\u044F\u0432\u0430\u0439\u0442\u0435 \u201E\u041C\u043E\u0438\u0442\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F\u201C \u0432 easy filter \u0432 \u201E\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F\u201C
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u0418\u0437\u0431\
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u0437\u0430 \u0442\u043E\u0437\u0438 \u0437\u0430\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u0435\u043D \u0444\u0438\u043B\u0442\u044A\u0440.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(\u0418\u0437\u0431\u0435\u0440\u0435\u0442\u0435 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=\u0424\u0438\u043B\u0442\u0440\u0438\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=\u041F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u044F, \u0441 \u043A\u043E\u0438\u0442\u043E \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0435\u0442\u0435
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=\u0417\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F \u0432\u044A\u0432 \u0424\u0430\u0432\u043E\u0440\u0438\u0442\u0438
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=\u041D\u044F\u043C\u0430 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F \u0432\u044A\u0432 \u0424\u0430\u0432\u043E\u0440\u0438\u0442\u0438
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u0414\u043E\u0431\u0430\u0432\u0435\u0442\u0435 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F\u0442\u0430 \
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=\u0414\u043E\u0431\u0430\u0432\u0435\u0442\u0435 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F\u0442\u0430 \u043A\u044A\u043C \u0432\u0430\u0448\u0438\u0442\u0435 \u0444\u0430\u0432\u043E\u0440\u0438\u0442\u0438.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0442\u0435 \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u043E\u0442 \u0432\u0430\u0441 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F \u0449\u0435 \u0431\u044A\u0434\u0430\u0442 \u043F\u043E\u043A\u0430\u0437\u0430\u043D\u0438 \u0442\u0443\u043A.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=\u0421\u044A\u0437\u0434\u0430\u0434\u0435\u043D\u043E \u0441 AI
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=\u0422\u043E\u0432\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435 \u0435 \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E \u0438\u043B\u0438 \u0438\u0437\u0446\u044F\u043B\u043E \u0433\u0435\u043D\u0435\u0440\u0438\u0440\u0430\u043D\u043E \u0441 \u043F\u043E\u043C\u043E\u0449\u0442\u0430 \u043D\u0430 \u0438\u0437\u043A\u0443\u0441\u0442\u0432\u0435\u043D \u0438\u043D\u0442\u0435\u043B\u0435\u043A\u0442 (AI).
|
|
@@ -30,7 +30,7 @@ M_EASY_FILTER_POPOVER_CLOSE=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u04
|
|
|
30
30
|
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=\u041D\u044F\u043C\u0430 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F
|
|
31
31
|
M_EASY_FILTER_FILLED_STAR=\u041F\u0440\u0435\u043C\u0430\u0445\u0432\u0430\u043D\u0435 \u043E\u0442 \u0444\u0430\u0432\u043E\u0440\u0438\u0442\u0438\u0442\u0435
|
|
32
32
|
M_EASY_FILTER_EMPTY_START=\u0414\u043E\u0431\u0430\u0432\u044F\u043D\u0435 \u043A\u044A\u043C \u0444\u0430\u0432\u043E\u0440\u0438\u0442\u0438\u0442\u0435
|
|
33
|
-
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0417\u0430 \u043F\u0440\u0435\u043C\u0438\u043D\u0430\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0438 \u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \
|
|
33
|
+
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=\u0417\u0430 \u043F\u0440\u0435\u043C\u0438\u043D\u0430\u0432\u0430\u043D\u0435 \u043A\u044A\u043C \u0441\u043F\u0438\u0441\u044A\u043A\u0430 \u0441 \u043F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u043D\u0438 \u0438 \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u043E \u0438\u0437\u043F\u043E\u043B\u0437\u0432\u0430\u043D\u0438 \u0437\u0430\u043F\u0438\u0442\u0432\u0430\u043D\u0438\u044F \u043D\u0430\u0442\u0438\u0441\u043D\u0435\u0442\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 \u0441\u044A\u0441 \u0441\u0442\u0440\u0435\u043B\u043A\u0430 \u043D\u0430\u0434\u043E\u043B\u0443
|
|
34
34
|
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u0421\u0430\u043C\u043E \u0435\u0434\u043D\u0430 \u0441\u0442\u043E\u0439\u043D\u043E\u0441\u0442 \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0430 \u043A\u044A\u043C \u0441\u043B\u0435\u0434\u043D\u043E\u0442\u043E\: {0}
|
|
35
35
|
C_SHORTCUT_TITLE=\u041A\u043B\u0430\u0432\u0438\u0448\u043D\u0438 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u0438
|
|
36
36
|
C_SHORTCUT_PLACEHOLDER=\u0422\u044A\u0440\u0441\u0435\u043D\u0435 \u043D\u0430 \u043A\u043B\u0430\u0432\u0438\u0448\u043D\u0430 \u043A\u043E\u043C\u0431\u0438\u043D\u0430\u0446\u0438\u044F
|
|
@@ -14,8 +14,8 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Filtre senzill
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=Fa que el filtre senzill sigui l'opci\u00F3 predeterminada de filtratge.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Conserva les meves consultes recents al filtre senzill a "\u00DAltimes consultes utilitzades".
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Seleccionar valor)
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Seleccioneu un valor per a aquest camp obligatori.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Seleccionar un valor)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=Filtres\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=Suggeriments per comen\u00E7ar
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=Consultes preferides
|
|
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Jednostavni filter
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=Postavite jednostavni filter kao podrazumijevanu opciju za filtriranje.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Sa\u010Duvaj moje nedavne upite u jednostavnom filteru u dijelu Posljednje kori\u0161\u0107eni upiti.
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Odaberite vrijednost za ovaj obavezni filter.
|
|
18
18
|
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Odaberi vrijednost)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=Filteri\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=Predlozi za po\u010Detak
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=Omiljeni upiti
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=Posljednje kori\u0161\u0107eni upiti
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=Nema omiljenih upita
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Dodajte upite u omiljene stavke
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Dodajte upite u omiljene stavke.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Posljednji upiti koje ste koristili bi\u0107e prikazani ovdje.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=Kreirano pomo\u0107u vje\u0161ta\u010Dke inteligencije
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=Sadr\u017Eaj je djelimi\u010Dno ili u potpunosti generisan pomo\u0107u tehnologija vje\u0161ta\u010Dke inteligencije.
|
|
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Snadn\u00FD filtr
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=Nastavte snadn\u00FD filtr jako standardn\u00ED mo\u017Enost filtrov\u00E1n\u00ED.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Uchov\u00E1vejte m\u00E9 ned\u00E1vn\u00E9 dotazy ve snadn\u00E9m filtru pod Posledn\u00ED pou\u017Eit\u00E9 dotazy.
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Vyberte hodnotu pro tento povinn\u00FD filtr.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Vyberte hodnotu)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=Filtry\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=N\u00E1vrhy, jak za\u010D\u00EDt
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=Obl\u00EDben\u00E9 dotazy
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=Posledn\u00ED pou\u017Eit\u00E9 dotazy
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=\u017D\u00E1dn\u00E9 obl\u00EDben\u00E9 dotazy
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=P\u0159idejte dotazy k va\u0161im obl\u00EDben\u00FDm
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=P\u0159idejte dotazy k va\u0161im obl\u00EDben\u00FDm.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Va\u0161e posledn\u00ED pou\u017Eit\u00E9 dotazy se zobraz\u00ED zde.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=Vytvo\u0159eno pomoc\u00ED AI
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=Obsah byl \u010D\u00E1ste\u010Dn\u011B nebo zcela vytvo\u0159en pomoc\u00ED um\u011Bl\u00E9 inteligence (AI).
|
|
@@ -30,7 +30,7 @@ M_EASY_FILTER_POPOVER_CLOSE=Zav\u0159\u00EDt
|
|
|
30
30
|
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Ne naposledy pou\u017Eit\u00E9 dotazy
|
|
31
31
|
M_EASY_FILTER_FILLED_STAR=Odebrat z obl\u00EDben\u00FDch
|
|
32
32
|
M_EASY_FILTER_EMPTY_START=P\u0159idat k obl\u00EDben\u00FDm
|
|
33
|
-
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Pro p\u0159echod k seznamu obl\u00EDben\u00FDch dotaz\u016F a
|
|
33
|
+
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Pro p\u0159echod k seznamu obl\u00EDben\u00FDch dotaz\u016F a naposledy pou\u017Eit\u00FDch dotaz\u016F stiskn\u011Bte \u0161ipku dol\u016F
|
|
34
34
|
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Jen jednu jednotlivou hodnotu lze pou\u017E\u00EDt pro toto\: {0}
|
|
35
35
|
C_SHORTCUT_TITLE=Kl\u00E1vesov\u00E9 zkratky
|
|
36
36
|
C_SHORTCUT_PLACEHOLDER=Najd\u011Bte kl\u00E1vesovou zkratku
|
|
@@ -4,7 +4,7 @@ C_HISTORY_CLOSE=Cau
|
|
|
4
4
|
M_EASY_FILTER_GO=Mynd
|
|
5
5
|
M_EASY_FILTER_PLACEHOLDER=Rhowch eich ymholiad gan ddefnyddio iaith naturiol er mwyn hidlo'r rhestr
|
|
6
6
|
M_EASY_FILTER_POPOVER_OK=Iawn
|
|
7
|
-
M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=Dangos
|
|
7
|
+
M_EASY_FILTER_POPOVER_SHOW_ALL_ITEMS=Dangos Pob Eitem
|
|
8
8
|
M_EASY_FILTER_MANDATORY_TOKEN_ITEMS={0} gwerth
|
|
9
9
|
M_EASY_FILTER_RESET=Ailosod Hidlyddion
|
|
10
10
|
M_EASY_FILTER_SELECTED_VALUES_TRUE=Iawn
|
|
@@ -14,20 +14,20 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=AI SAP Business
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Hidlydd syml
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=Gosod yr hidlydd syml fel yr opsiwn hidlo diofyn.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Cadw fy ymholiadau diweddar yn yr hidlydd syml o dan yr Ymholiadau a Ddefnyddiwyd Ddiwethaf
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Dewiswch werth ar gyfer yr hidlydd gorfodol hwn.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Dewis Gwerth)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=Hidlyddion\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=Awgrymiadau i'ch helpu i ddechrau arni
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=Ychwanegu ymholiadau at Ffefrynnau
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=Ymholiadau a ddefnyddiwyd ddiwethaf
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=Dim ymholiad wedi'i ychwanegu at Ffefrynnau
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Ychwanegu ymholiadau at Ffefrynnau
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Ychwanegu ymholiadau at eich Ffefrynnau.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Bydd yr ymholiad a ddefnyddiwyd ddiwethaf gennych yn ymddangos yma.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=Wedi'i greu gydag AI.
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=Cafodd y cynnwys ei greu yn rhannol neu'n llawn gan dechnoleg deallusrwydd artiffisial (AI).
|
|
28
28
|
M_EASY_FILTER_POPOVER_AI_TEXT_2=Gall y cynnwys a gr\u00EBwyd gan AI gynnwys anghywirdeb am ei fod wedi defnyddio mwy nag un ffynhonnell wybodaeth. Ewch ati i ddilysu'r canlyniadau cyn ei ddefnyddio.
|
|
29
29
|
M_EASY_FILTER_POPOVER_CLOSE=Cau
|
|
30
|
-
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Dim
|
|
30
|
+
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Dim ymholiadau a ddefnyddiwyd ddiwethaf
|
|
31
31
|
M_EASY_FILTER_FILLED_STAR=Tynnu o'r Ffefrynnau
|
|
32
32
|
M_EASY_FILTER_EMPTY_START=Ychwanegu at y Ffefrynnau
|
|
33
33
|
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Er mwyn symud i'r rhestr o ymholiadau ffefryn ac ymholiadau a ddefnyddiwyd ddiwethaf, pwyswch yr allwedd SaethLawr
|
|
@@ -14,14 +14,14 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Nem filtrering
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=G\u00F8r den nemme filtrering til standardfiltreringsmuligheden.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Behold mine seneste foresp\u00F8rgsler i den nemme filtrering under Senest brugte foresp\u00F8rgsler.
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(V\u00E6lg v\u00E6rdi)
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=V\u00E6lg en v\u00E6rdi for dette obligatoriske filter.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(V\u00E6lg en v\u00E6rdi)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=Filtre\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=Forslag til at f\u00E5 dig godt i gang
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=Foretrukne foresp\u00F8rgsler
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=Seneste brugte foresp\u00F8rgsler
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=Ingen foretrukne foresp\u00F8rgsler
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=F\u00F8j foresp\u00F8rgsler til dine foretrukne
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=F\u00F8j foresp\u00F8rgsler til dine foretrukne.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Dine senest brugte foresp\u00F8rgsler vises her.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=Oprettet med AI
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=Indholdet blev delvist eller fuldst\u00E6ndigt genereret af teknologier med kunstig intelligens (AI).
|
|
@@ -30,7 +30,7 @@ M_EASY_FILTER_POPOVER_CLOSE=Luk
|
|
|
30
30
|
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=Ingen senest brugte foresp\u00F8rgsler
|
|
31
31
|
M_EASY_FILTER_FILLED_STAR=Fjern fra foretrukne
|
|
32
32
|
M_EASY_FILTER_EMPTY_START=F\u00F8j til foretrukne
|
|
33
|
-
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=
|
|
33
|
+
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Tryk p\u00E5 Pil ned for at flytte til listen over foretrukne foresp\u00F8rgsler og sidst anvendte foresp\u00F8rgsler
|
|
34
34
|
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Kun en enkelt v\u00E6rdi kan anvendes p\u00E5 f\u00F8lgende\: {0}
|
|
35
35
|
C_SHORTCUT_TITLE=Tastaturgenveje
|
|
36
36
|
C_SHORTCUT_PLACEHOLDER=Find en tastaturgenvej
|
|
@@ -14,23 +14,23 @@ M_BUSINESS_AI_SHELL_SETTINGS_TITLE=SAP Business AI
|
|
|
14
14
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER=Einfacher Filter
|
|
15
15
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_MAKE_DEFAULT=Stellen Sie den einfachen Filter als die Standard-Filteroption ein.
|
|
16
16
|
M_BUSINESS_AI_SHELL_SETTINGS_EASY_FILTER_KEEP_QUERIES=Meine zuletzt verwendeten Anfragen im einfachen Filter unter 'Zuletzt verwendete Anfragen' beibehalten.
|
|
17
|
-
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=
|
|
18
|
-
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(
|
|
17
|
+
M_EASY_FILTER_MANDATORY_TOKEN_ERROR=Select a value for this mandatory filter.
|
|
18
|
+
M_EASY_FILTER_MANDATORY_TOKEN_SELECT_VALUE=(Select a Value)
|
|
19
19
|
M_EASY_FILTER_FILTER_SET_AI=Filter\:
|
|
20
20
|
M_EASY_FILTER_POPOVER_SUGGESTIONS_TITLE=Vorschl\u00E4ge f\u00FCr den Einstieg
|
|
21
21
|
M_EASY_FILTER_POPOVER_FAVORITE_TITLE=Favoriten
|
|
22
22
|
M_EASY_FILTER_POPOVER_LAST_USED=Zuletzt verwendete Anfragen
|
|
23
23
|
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_TITLE=Keine Favoriten
|
|
24
|
-
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=
|
|
24
|
+
M_EASY_FILTER_POPOVER_EMPTY_FAVORITE_DESCRIPTION=Add queries to your favorites.
|
|
25
25
|
M_EASY_FILTER_POPOVER_EMPTY_RECENT_DESCRIPTION=Ihre zuletzt verwendeten Anfragen werden hier angezeigt.
|
|
26
26
|
M_EASY_FILTER_POPOVER_AI_TITLE=Mit KI erstellt
|
|
27
27
|
M_EASY_FILTER_POPOVER_AI_TEXT_1=Dieser Inhalt wurde zum Teil oder vollst\u00E4ndig mit k\u00FCnstlicher Intelligenz (KI) generiert.
|
|
28
28
|
M_EASY_FILTER_POPOVER_AI_TEXT_2=Die KI-generierten Inhalte k\u00F6nnen aufgrund der Verwendung mehrerer Informationsquellen Ungenauigkeiten enthalten. \u00DCberpr\u00FCfen Sie die Ergebnisse vor der Verwendung.
|
|
29
29
|
M_EASY_FILTER_POPOVER_CLOSE=Schlie\u00DFen
|
|
30
|
-
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=
|
|
30
|
+
M_EASY_FILTER_POPOVER_EMPTY_LAST_USED_TITLE=No last used queries
|
|
31
31
|
M_EASY_FILTER_FILLED_STAR=Aus Favoriten entfernen
|
|
32
32
|
M_EASY_FILTER_EMPTY_START=Zu Favoriten hinzuf\u00FCgen
|
|
33
|
-
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=
|
|
33
|
+
T_EASY_FILTER_INPUT_TEXT_LINK_POPOVER_ARIA=Um zu der Liste der Favoriten und zuletzt verwendeten Anfragen zu gelangen, dr\u00FCcken Sie die Taste "Pfeil nach unten".
|
|
34
34
|
M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Es kann nur ein Einzelwert auf Folgendes angewandt werden\: {0}
|
|
35
35
|
C_SHORTCUT_TITLE=Tastaturk\u00FCrzel
|
|
36
36
|
C_SHORTCUT_PLACEHOLDER=Tastaturk\u00FCrzel suchen
|