@sumaris-net/ngx-components 18.0.2-alpha5 → 18.0.2-alpha6

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.
@@ -232,8 +232,6 @@ export class AppPropertyUtils {
232
232
  const filter = { ...def.autocomplete?.filter }; // Cope filter
233
233
  if (serializeAttribute === 'id' || serializeAttribute === 'label') {
234
234
  filter[serializeAttribute] = serializeAttribute === 'id' ? +value : value;
235
- filter.offset = 0;
236
- filter.size = 1;
237
235
  searchValue = '*';
238
236
  // DEBUG
239
237
  //console.debug(`[properties-utils] Resolving entity where id=${value}...`);
@@ -247,18 +245,26 @@ export class AppPropertyUtils {
247
245
  // Fetch entity, using the suggest function
248
246
  const res = await suggestFn(searchValue, filter, serializeAttribute, 'asc', {
249
247
  withTotal: false,
248
+ offset: 0,
249
+ size: 1,
250
250
  ...opts?.defaultSuggestOptions,
251
251
  });
252
252
  // Get result array
253
253
  const data = Array.isArray(res) ? res : res.data;
254
- // DEBUG
255
- //console.debug(`[properties-utils] ${data.length} entities found: `, data);
256
- // Ok, we find it => stop here
257
- if (data?.length)
254
+ if (data?.length > 0) {
255
+ if (data?.length > 1) {
256
+ console.warn(`[properties-utils] More than one entity found, for option ${def.key}=${value}! Please check option's definition and the 'autocomplete.suggestFn' function`, data);
257
+ }
258
+ // DEBUG
259
+ //console.debug(`[properties-utils] ${data.length} entities found: `, data);
260
+ // Ok, we find it => stop here
258
261
  return data[0];
262
+ }
263
+ // Warn, but continue
264
+ console.warn(`[properties-utils] Unable to resolve entity for option: ${def.key}=${value}. Please check option's definition and the 'autocomplete.suggestFn' function`);
259
265
  }
260
266
  catch (err) {
261
- console.warn(`Cannot resolve entity for option: ${def.key}=${value}. Please set 'definition.deserialize' or check filter usage in the 'autocomplete.suggestFn' function`, err);
267
+ console.error(`[properties-utils] Cannot resolve entity for option: ${def.key}=${value}`, err);
262
268
  // Continue
263
269
  }
264
270
  // Create the missing result
@@ -275,4 +281,4 @@ export class AppPropertyUtils {
275
281
  return value?.toString();
276
282
  }
277
283
  }
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFFBQVEsRUFDUixlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEdBQ1QsTUFBTSwyQkFBMkIsQ0FBQztBQUluQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBVSxPQUF1QixFQUFFLFdBQW1DLEVBQUUsSUFBa0M7UUFDNUgsT0FBTyxDQUNMLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNiLHNCQUFzQjthQUNyQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUMzQixNQUFNLEdBQUcsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUM7WUFDRixxQkFBcUI7YUFDcEIsTUFBTSxDQUNMLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFBRSxPQUFPLEdB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RUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlNYXAgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHtcbiAgZ2V0UHJvcGVydHlCeVBhdGgsXG4gIGlzTmlsLFxuICBpc05pbE9yQmxhbmssXG4gIGlzTm90RW1wdHlBcnJheSxcbiAgaXNOb3ROaWwsXG4gIGlzTm90TmlsT3JCbGFuayxcbiAgaXNQcm9taXNlLFxuICB0b0Jvb2xlYW4sXG4gIHRvTnVtYmVyLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucywgU3VnZ2VzdEZuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIEFwcFByb3BlcnRpZXNVdGlscyB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBgUHJvcGVydHlgIG9iamVjdHMgaW50byBhIGBQcm9wZXJ0aWVzTWFwYCBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvcGVydHlbXX0gW3NvdXJjZXNdIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgcHJvcGVydGllcyB0byBiZSBjb252ZXJ0ZWQuXG4gICAqIEBwYXJhbSB7Rm9ybUZpZWxkRGVmaW5pdGlvbltdfSBbZGVmaW5pdGlvbnNdIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgZm9ybSBmaWVsZCBkZWZpbml0aW9ucyB0byBoZWxwIHdpdGggdGhlIGNvbnZlcnNpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9ucy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5vbWl0TmlsT3JCbGFua10gLSBJZiB0cnVlLCBwcm9wZXJ0aWVzIHdpdGggbmlsIG9yIGJsYW5rIHZhbHVlcyB3aWxsIGJlIG9taXR0ZWQuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqIEByZXR1cm4ge1Byb3BlcnR5TWFwfSAtIFRoZSByZXN1bHRpbmcgYFByb3BlcnRpZXNNYXBgIG9iamVjdC5cbiAgICovXG4gIHN0YXRpYyBhcnJheUFzT2JqZWN0PFQgPSBhbnk+KHNvdXJjZXM/OiBQcm9wZXJ0eTxUPltdLCBkZWZpbml0aW9ucz86IEZvcm1GaWVsZERlZmluaXRpb25bXSwgb3B0cz86IHsgb21pdE5pbE9yQmxhbms6IGJvb2xlYW4gfSk6IFByb3BlcnR5TWFwIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHNvdXJjZXMgfHwgW10pXG4gICAgICAgIC8vIFNlcmlhbGl6ZSBlYWNoIGl0ZW1cbiAgICAgICAgLm1hcCgoc291cmNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgY29uc3Qga2V5ID0gQXBwUHJvcGVydHlVdGlscy5nZXRQcm9wZXJ0eUtleShzb3VyY2UpO1xuICAgICAgICAgIGlmICgha2V5KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnN0IGRlZiA9IGRlZmluaXRpb25zPy5maW5kKChkKSA9PiBkLmtleSA9PT0ga2V5KTtcbiAgICAgICAgICByZXR1cm4gQXBwUHJvcGVydHlVdGlscy5hc09iamVjdChzb3VyY2UsIGRlZik7XG4gICAgICAgIH0pXG4gICAgICAgIC8vIEZpbGwgYSBKU09OIG9iamVjdFxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc05pbE9yQmxhbmsoaXRlbT8ua2V5KSkgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIC8vIFNraXAgaWYgbmlsIG9yIGJsYW5rIHZhbHVlXG4gICAgICAgICAgICBpZiAob3B0cz8ub21pdE5pbE9yQmxhbmsgIT09IGZhbHNlICYmIGlzTmlsT3JCbGFuayhpdGVtLnZhbHVlKSkgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIHJlc1tpdGVtLmtleV0gPSBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9LFxuICAgICAgICAgIDxQcm9wZXJ0eU1hcD57fVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYW4gYXJyYXkgb2YgcHJvcGVydGllcyBmcm9tIHRoZSBnaXZlbiBvYmplY3QsIG9wdGlvbmFsbHkgYXBwbHlpbmcgZGVmaW5pdGlvbnMgdG8gdGhlIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvcGVydHlNYXB9IFtzb3VyY2VzXSAtIFRoZSBzb3VyY2Ugb2JqZWN0IGZyb20gd2hpY2ggcHJvcGVydGllcyBhcmUgdG8gYmUgZXh0cmFjdGVkLlxuICAgKiBAcGFyYW0ge0Zvcm1GaWVsZERlZmluaXRpb25bXX0gW2RlZmluaXRpb25zXSAtIEFuIG9wdGlvbmFsIGFycmF5IG9mIGRlZmluaXRpb25zIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGV4dHJhY3RlZCBwcm9wZXJ0aWVzLlxuICAgKiBAcmV0dXJuIHtQcm9wZXJ0eVtdIHwgUHJvbWlzZTxQcm9wZXJ0eVtdPn0gQW4gYXJyYXkgb2YgcHJvcGVydGllcyBnZW5lcmF0ZWQgZnJvbSB0aGUgc291cmNlIG9iamVjdCwgb3IgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGF0IGFycmF5LlxuICAgKi9cbiAgc3RhdGljIGFycmF5RnJvbU9iamVjdDxUPihzb3VyY2VzPzogUHJvcGVydHlNYXAgfCBQcm9wZXJ0eTxUPltdLCBkZWZpbml0aW9ucz86IEZvcm1GaWVsZERlZmluaXRpb25bXSk6IFByb3BlcnR5PFQ+W10gfCBQcm9taXNlPFByb3BlcnR5PFQ+W10+IHtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZyhgW3Byb3BlcnRpZXMtdXRpbHNdIENvbnZlcnQgcHJvcGVydHkgbWFwIGludG8gYXJyYXkgb2YgUHJvcGVydHkuLi5gKTtcblxuICAgIGNvbnN0IHRhcmdldHMgPSBBcnJheS5pc0FycmF5KHNvdXJjZXMpXG4gICAgICA/IHNvdXJjZXMuc2xpY2UoKVxuICAgICAgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VzIHx8IHt9KS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgdmFsdWU6IHNvdXJjZXNba2V5XSxcbiAgICAgICAgfSkpO1xuICAgIGNvbnN0IGpvYnMgPSBbXTtcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGRlZmluaXRpb25zKSkge1xuICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgICAgLy8gRmluZCBkZWZpbml0aW9uXG4gICAgICAgIGNvbnN0IGRlZiA9IGRlZmluaXRpb25zLmZpbmQoKGRlZikgPT4gZGVmLmtleSA9PT0gdGFyZ2V0LmtleSk7XG5cbiAgICAgICAgLy8gRGVzZXJpYWxpemUgZnJvbSBzdHJpbmdcbiAgICAgICAgbGV0IHByb3BlcnR5T3JQcm9taXNlID0gQXBwUHJvcGVydHlVdGlscy5mcm9tT2JqZWN0KHRhcmdldCwgZGVmKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShwcm9wZXJ0eU9yUHJvbWlzZSkpIHtcbiAgICAgICAgICBqb2JzLnB1c2gocHJvcGVydHlPclByb21pc2UudGhlbigocHJvcGVydHkpID0+ICh0YXJnZXQudmFsdWUgPSBwcm9wZXJ0eS52YWx1ZSkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBVcGRhdGUgdGhlIHRhcmdldCB2YWx1ZVxuICAgICAgICAgIHRhcmdldC52YWx1ZSA9IHByb3BlcnR5T3JQcm9taXNlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGFzIHByb21pc2UsIHdoZW4gbmVlZFxuICAgIGlmIChqb2JzLmxlbmd0aCkgcmV0dXJuIFByb21pc2UuYWxsKGpvYnMpLnRoZW4oKCkgPT4gdGFyZ2V0cyBhcyBQcm9wZXJ0eTxUPltdKTtcblxuICAgIHJldHVybiB0YXJnZXRzIGFzIFByb3BlcnR5PFQ+W107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcFByb3BlcnR5VXRpbHMge1xuICBzdGF0aWMga2V5KGtleTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4ga2V5Py5rZXkgPz8ga2V5O1xuICB9XG5cbiAgc3RhdGljIGdldFByb3BlcnR5S2V5KHNvdXJjZTogUHJvcGVydHkgfCBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiAoc291cmNlLmtleSBhcyBhbnkpPy5rZXkgPz8gc291cmNlLmtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gc291cmNlIHRvIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGEga2V5LXZhbHVlIHBhaXIuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvcGVydHk8YW55PiB8IGFueX0gc291cmNlIC0gVGhlIHNvdXJjZSBwcm9wZXJ0eSBvciBhbnkgdmFsdWUgdG8gYmUgY29udmVydGVkLlxuICAgKiBAcGFyYW0ge0Zvcm1GaWVsZERlZmluaXRpb259IFtkZWZdIC0gVGhlIGZvcm0gZmllbGQgZGVmaW5pdGlvbiB1c2VkIGZvciBzZXJpYWxpemF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBzZXJpYWxpemF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZGVmYXVsdFNlcmlhbGl6ZUF0dHJpYnV0ZT0naWQnXSAtIFRoZSBhdHRyaWJ1dGUgdG8gYmUgdXNlZCBmb3IgZGVmYXVsdCBzZXJpYWxpemF0aW9uLlxuICAgKiBAcmV0dXJuIHt7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH0gfCB1bmRlZmluZWR9IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBzZXJpYWxpemVkIGtleS12YWx1ZSBwYWlyLCBvciB1bmRlZmluZWQgaWYgdGhlIHNvdXJjZSBpcyBub3QgcHJvdmlkZWQuXG4gICAqL1xuICBzdGF0aWMgYXNPYmplY3QoXG4gICAgc291cmNlOiBQcm9wZXJ0eTxhbnk+IHwgYW55LFxuICAgIGRlZj86IEZvcm1GaWVsZERlZmluaXRpb24sXG4gICAgb3B0cz86IHtcbiAgICAgIGRlZmF1bHRTZXJpYWxpemVBdHRyaWJ1dGU/OiBzdHJpbmc7XG4gICAgfVxuICApOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIC8vIFNlcmlhbGl6ZSBrZXkgKFdBUk5JTkc6IGNhbiBiZSBhbiBvYmplY3QsIHdoZW4gdXNpbmcgYXV0b2NvbXBsZXRlIGZpZWxkIHRvIGVkaXQgYSBrZXkgLSBzZWUgQXBwUHJvcGVydGllc0Zvcm0pXG4gICAgY29uc3Qga2V5ID0gQXBwUHJvcGVydHlVdGlscy5nZXRQcm9wZXJ0eUtleShzb3VyY2UpO1xuXG4gICAgLy8gUHJlcGFyZSBhIGRlc2VyaWFsaXplIGZ1bmN0aW9uXG4gICAgbGV0IHNlcmlhbGl6ZUZuID0gZGVmPy5zZXJpYWxpemU7XG4gICAgaWYgKCFzZXJpYWxpemVGbikge1xuICAgICAgc3dpdGNoIChkZWY/LnR5cGUgfHwgJ290aGVyJykge1xuICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgY2FzZSAnZW51bXMnOlxuICAgICAgICAgIHNlcmlhbGl6ZUZuID0gQXBwUHJvcGVydHlVdGlscy5rZXk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2VudGl0eSc6XG4gICAgICAgIGNhc2UgJ2VudGl0aWVzJzpcbiAgICAgICAgICBjb25zdCBzZXJpYWxpemVBdHRyaWJ1dGUgPSBkZWY/LnNlcmlhbGl6ZUF0dHJpYnV0ZSA/PyBvcHRzPy5kZWZhdWx0U2VyaWFsaXplQXR0cmlidXRlID8/ICdpZCc7XG4gICAgICAgICAgc2VyaWFsaXplRm4gPVxuICAgICAgICAgICAgZGVmPy5zZXJpYWxpemUgfHxcbiAgICAgICAgICAgICgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplVmFsdWUgPSBnZXRQcm9wZXJ0eUJ5UGF0aCh2YWx1ZSwgc2VyaWFsaXplQXR0cmlidXRlLCB2YWx1ZSAvKmRlZmF1bHQgdmFsdWUqLyk7XG4gICAgICAgICAgICAgIGlmIChpc05pbChzZXJpYWxpemVWYWx1ZSkpIHJldHVybiBzZXJpYWxpemVWYWx1ZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzZXJpYWxpemVGbiA9IEFwcFByb3BlcnR5VXRpbHMudG9TdHJpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmc7XG5cbiAgICAvLyBWYWx1ZSBpcyBhbiBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZS52YWx1ZSkpIHtcbiAgICAgIHZhbHVlU3RyID0gc291cmNlLnZhbHVlLm1hcChzZXJpYWxpemVGbikuZmlsdGVyKGlzTm90TmlsT3JCbGFuaykuam9pbignLCcpO1xuICAgIH1cbiAgICAvLyBBbnkgb3RoZXIgY2FzZVxuICAgIGVsc2Uge1xuICAgICAgdmFsdWVTdHIgPSBzZXJpYWxpemVGbihzb3VyY2UudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4geyBrZXksIHZhbHVlOiB2YWx1ZVN0ciB9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3Q8VCA9IHN0cmluZz4oXG4gICAgc291cmNlOiBQcm9wZXJ0eSB8IFByb3BlcnR5PFQ+LFxuICAgIGRlZjogRm9ybUZpZWxkRGVmaW5pdGlvbixcbiAgICBvcHRzPzoge1xuICAgICAgZGVmYXVsdFN1Z2dlc3RGbjogU3VnZ2VzdEZuPGFueSwgYW55PjtcbiAgICAgIGRlZmF1bHRTdWdnZXN0T3B0aW9ucz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zO1xuICAgICAgZGVmYXVsdFNlcmlhbGl6ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgICB9XG4gICk6IFByb3BlcnR5PFQ+IHwgUHJvbWlzZTxQcm9wZXJ0eTxUPj4ge1xuICAgIGlmICghc291cmNlPy5rZXkgfHwgaXNOaWwoc291cmNlLnZhbHVlKSB8fCAhZGVmKSByZXR1cm4gc291cmNlIGFzIFByb3BlcnR5PFQ+OyAvLyBTa2lwIGlmIG5vIGtleVxuXG4gICAgLy8gQ2xvbmUgdGhlIHNvdXJjZVxuICAgIGNvbnN0IHRhcmdldDogUHJvcGVydHk8YW55PiA9IHsga2V5OiBzb3VyY2Uua2V5LCB2YWx1ZTogc291cmNlLnZhbHVlIH07XG5cbiAgICBjb25zdCBqb2JzOiBQcm9taXNlPGFueT5bXSA9IFtdO1xuICAgIC8vIFJlc29sdmUgdmFsdWVcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gdG9Cb29sZWFuKHNvdXJjZS52YWx1ZSBhcyBhbnksIHRvQm9vbGVhbihkZWYuZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdkb3VibGUnOlxuICAgICAgICB0YXJnZXQudmFsdWUgPSB0b051bWJlcihzb3VyY2UudmFsdWUgYXMgYW55LCB0b051bWJlcihkZWYuZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gQXBwUHJvcGVydHlVdGlscy5rZXkodGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgaWYgKGlzTm90TmlsT3JCbGFuayh2YWx1ZUtleSkpIHtcbiAgICAgICAgICBjb25zdCBlbnVtVmFsdWUgPSAoZGVmLnZhbHVlcyBhcyAoc3RyaW5nIHwgUHJvcGVydHkpW10pPy5maW5kKChkZWZWYWx1ZSkgPT4gZGVmVmFsdWUgJiYgdmFsdWVLZXkgPT09IChkZWZWYWx1ZVsna2V5J10gfHwgZGVmVmFsdWUpKSA/PyBudWxsO1xuICAgICAgICAgIHRhcmdldC52YWx1ZSA9IGVudW1WYWx1ZT8uWydrZXknXSA/PyBlbnVtVmFsdWUgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXQudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW51bXMnOlxuICAgICAgICBjb25zdCB2YWx1ZUtleXMgPSBBcnJheS5pc0FycmF5KHNvdXJjZS52YWx1ZSlcbiAgICAgICAgICA/IHNvdXJjZS52YWx1ZS5tYXAoQXBwUHJvcGVydHlVdGlscy5rZXkpIC8vIENvcHlcbiAgICAgICAgICA6IHR5cGVvZiBzb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHNvdXJjZS52YWx1ZS50cmltKCkuc3BsaXQoLywrLylcbiAgICAgICAgICAgIDogW0FwcFByb3BlcnR5VXRpbHMua2V5KHNvdXJjZS52YWx1ZSldO1xuICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZUtleXNcbiAgICAgICAgICAuZmlsdGVyKGlzTm90TmlsKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAoa2V5OiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIChkZWYudmFsdWVzIGFzIChzdHJpbmcgfCBQcm9wZXJ0eSlbXSk/LmZpbmQoKGRlZlZhbHVlKSA9PiBkZWZWYWx1ZSAmJiBrZXkgPT09IChkZWZWYWx1ZVsna2V5J10gfHwgZGVmVmFsdWUpKSB8fCB7IGtleSwgdmFsdWU6ICc/JyB9XG4gICAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlbnRpdHknOlxuICAgICAgICAvLyBEZXNlcmlhbGl6ZSBlbnRpdHkgKGUuZy4gbG9hZCBlbnRpdHkgZnJvbSB0aGUgaWQpXG4gICAgICAgIGNvbnN0IHZhbHVlT3JQcm9taXNlID0gQXBwUHJvcGVydHlVdGlscy5yZXNvbHZlRW50aXR5KHRhcmdldC52YWx1ZSwgZGVmLCBvcHRzKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZSh2YWx1ZU9yUHJvbWlzZSkpIHtcbiAgICAgICAgICBqb2JzLnB1c2goXG4gICAgICAgICAgICB2YWx1ZU9yUHJvbWlzZS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZU9yUHJvbWlzZSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlbnRpdGllcyc6XG4gICAgICAgIC8vIENvbnZlcnQgdmFsdWUgdG8gYXJyYXlcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gQXJyYXkuaXNBcnJheShzb3VyY2UudmFsdWUpXG4gICAgICAgICAgPyBzb3VyY2UudmFsdWUuc2xpY2UoKSAvLyBDb3B5XG4gICAgICAgICAgOiB0eXBlb2Ygc291cmNlLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBzb3VyY2UudmFsdWVcbiAgICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgIC5tYXAoKHYpID0+IHYudHJpbSgpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKVxuICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAvLyBEZXNlcmlhbGl6ZSBlYWNoIHN1Yi12YWx1ZVxuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBmb3IgKGxldCBzdWJWYWx1ZSBvZiB0YXJnZXQudmFsdWUpIHtcbiAgICAgICAgICAvLyBEZXNlcmlhbGl6ZSBzdWItdmFsdWVcbiAgICAgICAgICBjb25zdCBzdWJWYWx1ZU9yUHJvbWlzZSA9IEFwcFByb3BlcnR5VXRpbHMucmVzb2x2ZUVudGl0eShzdWJWYWx1ZSwgZGVmLCBvcHRzKTtcblxuICAgICAgICAgIC8vIEFkZCBwcm9taXNlIHRvIGpvYnNcbiAgICAgICAgICBpZiAoaXNQcm9taXNlKHN1YlZhbHVlT3JQcm9taXNlKSkge1xuICAgICAgICAgICAgY29uc3QgZmluYWxJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgam9icy5wdXNoKFxuICAgICAgICAgICAgICBzdWJWYWx1ZU9yUHJvbWlzZS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBzdWIgdmFsdWVcbiAgICAgICAgICAgICAgICB0YXJnZXQudmFsdWVbZmluYWxJbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzdWIgdmFsdWVcbiAgICAgICAgICAgIHRhcmdldC52YWx1ZVtpbmRleF0gPSBzdWJWYWx1ZU9yUHJvbWlzZSBhcyBhbnk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAvIVxcIFJldHVybiBhcyBwcm9taXNlIG9ubHkgaWYgbmVlZCAobGV0IGZ1bmN0aW9uIHN5bmMgd2hlbiBwb3NzaWJsZSlcbiAgICBpZiAoam9icy5sZW5ndGgpIHJldHVybiBQcm9taXNlLmFsbChqb2JzKS50aGVuKCgpID0+IHRhcmdldCk7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVzb2x2ZUVudGl0eShcbiAgICB2YWx1ZTogYW55LFxuICAgIGRlZjogRm9ybUZpZWxkRGVmaW5pdGlvbixcbiAgICBvcHRzPzoge1xuICAgICAgZGVmYXVsdFN1Z2dlc3RGbjogU3VnZ2VzdEZuPGFueSwgYW55PjtcbiAgICAgIGRlZmF1bHRTdWdnZXN0T3B0aW9ucz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zO1xuICAgICAgZGVmYXVsdFNlcmlhbGl6ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgICB9XG4gICk6IGFueSB8IFByb21pc2U8YW55PiB7XG4gICAgLy8gVXNlIGRlc2VyaWFsaXplIGZ1bmN0aW9uLCBpZiBhbnlcbiAgICBpZiAoZGVmLmRlc2VyaWFsaXplKSB7XG4gICAgICByZXR1cm4gZGVmLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBPciB0cnkgdXNpbmcgc3VnZ2VzdCBmdW5jdGlvblxuICAgIHJldHVybiB0aGlzLnJlc29sdmVFbnRpdHlCeVN1Z2dlc3QodmFsdWUsIGRlZiwgb3B0cyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyByZXNvbHZlRW50aXR5QnlTdWdnZXN0KFxuICAgIHZhbHVlOiBhbnksXG4gICAgZGVmOiBGb3JtRmllbGREZWZpbml0aW9uLFxuICAgIG9wdHM/OiB7XG4gICAgICBkZWZhdWx0U3VnZ2VzdEZuOiBTdWdnZXN0Rm48YW55LCBhbnk+O1xuICAgICAgZGVmYXVsdFN1Z2dlc3RPcHRpb25zPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnM7XG4gICAgICBkZWZhdWx0U2VyaWFsaXplQXR0cmlidXRlPzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzZXJpYWxpemVBdHRyaWJ1dGUgPSBkZWYuc2VyaWFsaXplQXR0cmlidXRlID8/IG9wdHM/LmRlZmF1bHRTZXJpYWxpemVBdHRyaWJ1dGUgPz8gJ2lkJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBpc05vdE5pbCh2YWx1ZVtzZXJpYWxpemVBdHRyaWJ1dGVdKSkge1xuICAgICAgcmV0dXJuIHZhbHVlOyAvLyBBbHJlYWR5IHJlc29sdmVcbiAgICB9XG5cbiAgICBjb25zdCBzdWdnZXN0Rm46IFN1Z2dlc3RGbjxhbnksIGFueT4gPSBkZWYuYXV0b2NvbXBsZXRlPy5zdWdnZXN0Rm4gfHwgb3B0cz8uZGVmYXVsdFN1Z2dlc3RGbjtcbiAgICBpZiAoIXN1Z2dlc3RGbikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTWlzc2luZyAnZGVzZXJpYWxpemUnIG9yICdhdXRvY29tcGxldGUuc3VnZ2VzdEZuJyBpbiB0aGUgZmllbGQgZGVmaW5pdGlvbiAnJHtkZWYua2V5fScuIENhbm5vdCBkZXNlcmlhbGl6ZSB2YWx1ZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB2YWx1ZTsgLy8gU2tpcFxuICAgIH1cbiAgICBsZXQgc2VhcmNoVmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBmaWx0ZXIgPSB7IC4uLmRlZi5hdXRvY29tcGxldGU/LmZpbHRlciB9OyAvLyBDb3BlIGZpbHRlclxuICAgIGlmIChzZXJpYWxpemVBdHRyaWJ1dGUgPT09ICdpZCcgfHwgc2VyaWFsaXplQXR0cmlidXRlID09PSAnbGFiZWwnKSB7XG4gICAgICBmaWx0ZXJbc2VyaWFsaXplQXR0cmlidXRlXSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZSA9PT0gJ2lkJyA/ICt2YWx1ZSA6IHZhbHVlO1xuICAgICAgZmlsdGVyLm9mZnNldCA9IDA7XG4gICAgICBmaWx0ZXIuc2l6ZSA9IDE7XG4gICAgICBzZWFyY2hWYWx1ZSA9ICcqJztcbiAgICAgIC8vIERFQlVHXG4gICAgICAvL2NvbnNvbGUuZGVidWcoYFtwcm9wZXJ0aWVzLXV0aWxzXSBSZXNvbHZpbmcgZW50aXR5IHdoZXJlIGlkPSR7dmFsdWV9Li4uYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlci5zZWFyY2hBdHRyaWJ1dGUgPSBzZXJpYWxpemVBdHRyaWJ1dGU7XG4gICAgICAvLyBERUJVR1xuICAgICAgLy9jb25zb2xlLmRlYnVnKGBbcHJvcGVydGllcy11dGlsc10gUmVzb2x2aW5nIGVudGl0eSB3aGVyZSAke3NlcmlhbGl6ZUF0dHJpYnV0ZX09JHtzZWFyY2hWYWx1ZX0uLi5gKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgLy8gRmV0Y2ggZW50aXR5LCB1c2luZyB0aGUgc3VnZ2VzdCBmdW5jdGlvblxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgc3VnZ2VzdEZuKHNlYXJjaFZhbHVlLCBmaWx0ZXIsIHNlcmlhbGl6ZUF0dHJpYnV0ZSwgJ2FzYycsIHtcbiAgICAgICAgd2l0aFRvdGFsOiBmYWxzZSxcbiAgICAgICAgLi4ub3B0cz8uZGVmYXVsdFN1Z2dlc3RPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdldCByZXN1bHQgYXJyYXlcbiAgICAgIGNvbnN0IGRhdGEgPSBBcnJheS5pc0FycmF5KHJlcykgPyByZXMgOiByZXMuZGF0YTtcblxuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhgW3Byb3BlcnRpZXMtdXRpbHNdICR7ZGF0YS5sZW5ndGh9IGVudGl0aWVzIGZvdW5kOiBgLCBkYXRhKTtcblxuICAgICAgLy8gT2ssIHdlIGZpbmQgaXQgPT4gc3RvcCBoZXJlXG4gICAgICBpZiAoZGF0YT8ubGVuZ3RoKSByZXR1cm4gZGF0YVswXTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYENhbm5vdCByZXNvbHZlIGVudGl0eSBmb3Igb3B0aW9uOiAke2RlZi5rZXl9PSR7dmFsdWV9LiBQbGVhc2Ugc2V0ICdkZWZpbml0aW9uLmRlc2VyaWFsaXplJyBvciBjaGVjayBmaWx0ZXIgdXNhZ2UgaW4gdGhlICdhdXRvY29tcGxldGUuc3VnZ2VzdEZuJyBmdW5jdGlvbmAsXG4gICAgICAgIGVyclxuICAgICAgKTtcbiAgICAgIC8vIENvbnRpbnVlXG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBtaXNzaW5nIHJlc3VsdFxuICAgIGNvbnN0IHVucmVzb2x2ZWRFbnRpdHkgPSA8YW55PntcbiAgICAgIFtzZXJpYWxpemVBdHRyaWJ1dGVdOiB2YWx1ZSxcbiAgICB9O1xuXG4gICAgLy8gRmlsbCBhdHRyaWJ1dGVzIHdpdGggJz8/J1xuICAgIGRlZi5hdXRvY29tcGxldGU/LmF0dHJpYnV0ZXM/LmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgdW5yZXNvbHZlZEVudGl0eVtrZXldID0gdW5yZXNvbHZlZEVudGl0eVtrZXldID8/ICcnO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHVucmVzb2x2ZWRFbnRpdHk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0b1N0cmluZyh2YWx1ZT86IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlPy50b1N0cmluZygpO1xuICB9XG59XG4iXX0=
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydGllcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL3Byb3BlcnRpZXMvcHJvcGVydGllcy51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUNmLFFBQVEsRUFDUixlQUFlLEVBQ2YsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEdBQ1QsTUFBTSwyQkFBMkIsQ0FBQztBQUluQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBVSxPQUF1QixFQUFFLFdBQW1DLEVBQUUsSUFBa0M7UUFDNUgsT0FBTyxDQUNMLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNiLHNCQUFzQjthQUNyQixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sU0FBUyxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUMzQixNQUFNLEdBQUcsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUM7WUFDRixxQkFBcUI7YUFDcEIsTUFBTSxDQUNMLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFBRSxPQUFPLEdB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QzVCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzVDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBVztRQUNqQyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eSwgUHJvcGVydHlNYXAgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHtcbiAgZ2V0UHJvcGVydHlCeVBhdGgsXG4gIGlzTmlsLFxuICBpc05pbE9yQmxhbmssXG4gIGlzTm90RW1wdHlBcnJheSxcbiAgaXNOb3ROaWwsXG4gIGlzTm90TmlsT3JCbGFuayxcbiAgaXNQcm9taXNlLFxuICB0b0Jvb2xlYW4sXG4gIHRvTnVtYmVyLFxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucywgU3VnZ2VzdEZuIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIEFwcFByb3BlcnRpZXNVdGlscyB7XG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhbiBhcnJheSBvZiBgUHJvcGVydHlgIG9iamVjdHMgaW50byBhIGBQcm9wZXJ0aWVzTWFwYCBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvcGVydHlbXX0gW3NvdXJjZXNdIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgcHJvcGVydGllcyB0byBiZSBjb252ZXJ0ZWQuXG4gICAqIEBwYXJhbSB7Rm9ybUZpZWxkRGVmaW5pdGlvbltdfSBbZGVmaW5pdGlvbnNdIC0gQW4gb3B0aW9uYWwgYXJyYXkgb2YgZm9ybSBmaWVsZCBkZWZpbml0aW9ucyB0byBoZWxwIHdpdGggdGhlIGNvbnZlcnNpb24uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0c10gLSBPcHRpb25hbCBjb25maWd1cmF0aW9ucy5cbiAgICogQHBhcmFtIHtib29sZWFufSBbb3B0cy5vbWl0TmlsT3JCbGFua10gLSBJZiB0cnVlLCBwcm9wZXJ0aWVzIHdpdGggbmlsIG9yIGJsYW5rIHZhbHVlcyB3aWxsIGJlIG9taXR0ZWQuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqIEByZXR1cm4ge1Byb3BlcnR5TWFwfSAtIFRoZSByZXN1bHRpbmcgYFByb3BlcnRpZXNNYXBgIG9iamVjdC5cbiAgICovXG4gIHN0YXRpYyBhcnJheUFzT2JqZWN0PFQgPSBhbnk+KHNvdXJjZXM/OiBQcm9wZXJ0eTxUPltdLCBkZWZpbml0aW9ucz86IEZvcm1GaWVsZERlZmluaXRpb25bXSwgb3B0cz86IHsgb21pdE5pbE9yQmxhbms6IGJvb2xlYW4gfSk6IFByb3BlcnR5TWFwIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHNvdXJjZXMgfHwgW10pXG4gICAgICAgIC8vIFNlcmlhbGl6ZSBlYWNoIGl0ZW1cbiAgICAgICAgLm1hcCgoc291cmNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgY29uc3Qga2V5ID0gQXBwUHJvcGVydHlVdGlscy5nZXRQcm9wZXJ0eUtleShzb3VyY2UpO1xuICAgICAgICAgIGlmICgha2V5KSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGNvbnN0IGRlZiA9IGRlZmluaXRpb25zPy5maW5kKChkKSA9PiBkLmtleSA9PT0ga2V5KTtcbiAgICAgICAgICByZXR1cm4gQXBwUHJvcGVydHlVdGlscy5hc09iamVjdChzb3VyY2UsIGRlZik7XG4gICAgICAgIH0pXG4gICAgICAgIC8vIEZpbGwgYSBKU09OIG9iamVjdFxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgIChyZXMsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc05pbE9yQmxhbmsoaXRlbT8ua2V5KSkgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIC8vIFNraXAgaWYgbmlsIG9yIGJsYW5rIHZhbHVlXG4gICAgICAgICAgICBpZiAob3B0cz8ub21pdE5pbE9yQmxhbmsgIT09IGZhbHNlICYmIGlzTmlsT3JCbGFuayhpdGVtLnZhbHVlKSkgcmV0dXJuIHJlcztcbiAgICAgICAgICAgIHJlc1tpdGVtLmtleV0gPSBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICB9LFxuICAgICAgICAgIDxQcm9wZXJ0eU1hcD57fVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYW4gYXJyYXkgb2YgcHJvcGVydGllcyBmcm9tIHRoZSBnaXZlbiBvYmplY3QsIG9wdGlvbmFsbHkgYXBwbHlpbmcgZGVmaW5pdGlvbnMgdG8gdGhlIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvcGVydHlNYXB9IFtzb3VyY2VzXSAtIFRoZSBzb3VyY2Ugb2JqZWN0IGZyb20gd2hpY2ggcHJvcGVydGllcyBhcmUgdG8gYmUgZXh0cmFjdGVkLlxuICAgKiBAcGFyYW0ge0Zvcm1GaWVsZERlZmluaXRpb25bXX0gW2RlZmluaXRpb25zXSAtIEFuIG9wdGlvbmFsIGFycmF5IG9mIGRlZmluaXRpb25zIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGV4dHJhY3RlZCBwcm9wZXJ0aWVzLlxuICAgKiBAcmV0dXJuIHtQcm9wZXJ0eVtdIHwgUHJvbWlzZTxQcm9wZXJ0eVtdPn0gQW4gYXJyYXkgb2YgcHJvcGVydGllcyBnZW5lcmF0ZWQgZnJvbSB0aGUgc291cmNlIG9iamVjdCwgb3IgYSBwcm9taXNlIHJlc29sdmluZyB0byB0aGF0IGFycmF5LlxuICAgKi9cbiAgc3RhdGljIGFycmF5RnJvbU9iamVjdDxUPihzb3VyY2VzPzogUHJvcGVydHlNYXAgfCBQcm9wZXJ0eTxUPltdLCBkZWZpbml0aW9ucz86IEZvcm1GaWVsZERlZmluaXRpb25bXSk6IFByb3BlcnR5PFQ+W10gfCBQcm9taXNlPFByb3BlcnR5PFQ+W10+IHtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZyhgW3Byb3BlcnRpZXMtdXRpbHNdIENvbnZlcnQgcHJvcGVydHkgbWFwIGludG8gYXJyYXkgb2YgUHJvcGVydHkuLi5gKTtcblxuICAgIGNvbnN0IHRhcmdldHMgPSBBcnJheS5pc0FycmF5KHNvdXJjZXMpXG4gICAgICA/IHNvdXJjZXMuc2xpY2UoKVxuICAgICAgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzb3VyY2VzIHx8IHt9KS5tYXAoKGtleSkgPT4gKHtcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgdmFsdWU6IHNvdXJjZXNba2V5XSxcbiAgICAgICAgfSkpO1xuICAgIGNvbnN0IGpvYnMgPSBbXTtcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGRlZmluaXRpb25zKSkge1xuICAgICAgZm9yIChsZXQgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgICAgLy8gRmluZCBkZWZpbml0aW9uXG4gICAgICAgIGNvbnN0IGRlZiA9IGRlZmluaXRpb25zLmZpbmQoKGRlZikgPT4gZGVmLmtleSA9PT0gdGFyZ2V0LmtleSk7XG5cbiAgICAgICAgLy8gRGVzZXJpYWxpemUgZnJvbSBzdHJpbmdcbiAgICAgICAgbGV0IHByb3BlcnR5T3JQcm9taXNlID0gQXBwUHJvcGVydHlVdGlscy5mcm9tT2JqZWN0KHRhcmdldCwgZGVmKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZShwcm9wZXJ0eU9yUHJvbWlzZSkpIHtcbiAgICAgICAgICBqb2JzLnB1c2gocHJvcGVydHlPclByb21pc2UudGhlbigocHJvcGVydHkpID0+ICh0YXJnZXQudmFsdWUgPSBwcm9wZXJ0eS52YWx1ZSkpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBVcGRhdGUgdGhlIHRhcmdldCB2YWx1ZVxuICAgICAgICAgIHRhcmdldC52YWx1ZSA9IHByb3BlcnR5T3JQcm9taXNlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIGFzIHByb21pc2UsIHdoZW4gbmVlZFxuICAgIGlmIChqb2JzLmxlbmd0aCkgcmV0dXJuIFByb21pc2UuYWxsKGpvYnMpLnRoZW4oKCkgPT4gdGFyZ2V0cyBhcyBQcm9wZXJ0eTxUPltdKTtcblxuICAgIHJldHVybiB0YXJnZXRzIGFzIFByb3BlcnR5PFQ+W107XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcFByb3BlcnR5VXRpbHMge1xuICBzdGF0aWMga2V5KGtleTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4ga2V5Py5rZXkgPz8ga2V5O1xuICB9XG5cbiAgc3RhdGljIGdldFByb3BlcnR5S2V5KHNvdXJjZTogUHJvcGVydHkgfCBhbnkpOiBzdHJpbmcge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiAoc291cmNlLmtleSBhcyBhbnkpPy5rZXkgPz8gc291cmNlLmtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgZ2l2ZW4gc291cmNlIHRvIGFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGEga2V5LXZhbHVlIHBhaXIuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvcGVydHk8YW55PiB8IGFueX0gc291cmNlIC0gVGhlIHNvdXJjZSBwcm9wZXJ0eSBvciBhbnkgdmFsdWUgdG8gYmUgY29udmVydGVkLlxuICAgKiBAcGFyYW0ge0Zvcm1GaWVsZERlZmluaXRpb259IFtkZWZdIC0gVGhlIGZvcm0gZmllbGQgZGVmaW5pdGlvbiB1c2VkIGZvciBzZXJpYWxpemF0aW9uLlxuICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdIC0gQWRkaXRpb25hbCBvcHRpb25zIGZvciBzZXJpYWxpemF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdHMuZGVmYXVsdFNlcmlhbGl6ZUF0dHJpYnV0ZT0naWQnXSAtIFRoZSBhdHRyaWJ1dGUgdG8gYmUgdXNlZCBmb3IgZGVmYXVsdCBzZXJpYWxpemF0aW9uLlxuICAgKiBAcmV0dXJuIHt7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH0gfCB1bmRlZmluZWR9IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBzZXJpYWxpemVkIGtleS12YWx1ZSBwYWlyLCBvciB1bmRlZmluZWQgaWYgdGhlIHNvdXJjZSBpcyBub3QgcHJvdmlkZWQuXG4gICAqL1xuICBzdGF0aWMgYXNPYmplY3QoXG4gICAgc291cmNlOiBQcm9wZXJ0eTxhbnk+IHwgYW55LFxuICAgIGRlZj86IEZvcm1GaWVsZERlZmluaXRpb24sXG4gICAgb3B0cz86IHtcbiAgICAgIGRlZmF1bHRTZXJpYWxpemVBdHRyaWJ1dGU/OiBzdHJpbmc7XG4gICAgfVxuICApOiB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIC8vIFNlcmlhbGl6ZSBrZXkgKFdBUk5JTkc6IGNhbiBiZSBhbiBvYmplY3QsIHdoZW4gdXNpbmcgYXV0b2NvbXBsZXRlIGZpZWxkIHRvIGVkaXQgYSBrZXkgLSBzZWUgQXBwUHJvcGVydGllc0Zvcm0pXG4gICAgY29uc3Qga2V5ID0gQXBwUHJvcGVydHlVdGlscy5nZXRQcm9wZXJ0eUtleShzb3VyY2UpO1xuXG4gICAgLy8gUHJlcGFyZSBhIGRlc2VyaWFsaXplIGZ1bmN0aW9uXG4gICAgbGV0IHNlcmlhbGl6ZUZuID0gZGVmPy5zZXJpYWxpemU7XG4gICAgaWYgKCFzZXJpYWxpemVGbikge1xuICAgICAgc3dpdGNoIChkZWY/LnR5cGUgfHwgJ290aGVyJykge1xuICAgICAgICBjYXNlICdlbnVtJzpcbiAgICAgICAgY2FzZSAnZW51bXMnOlxuICAgICAgICAgIHNlcmlhbGl6ZUZuID0gQXBwUHJvcGVydHlVdGlscy5rZXk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2VudGl0eSc6XG4gICAgICAgIGNhc2UgJ2VudGl0aWVzJzpcbiAgICAgICAgICBjb25zdCBzZXJpYWxpemVBdHRyaWJ1dGUgPSBkZWY/LnNlcmlhbGl6ZUF0dHJpYnV0ZSA/PyBvcHRzPy5kZWZhdWx0U2VyaWFsaXplQXR0cmlidXRlID8/ICdpZCc7XG4gICAgICAgICAgc2VyaWFsaXplRm4gPVxuICAgICAgICAgICAgZGVmPy5zZXJpYWxpemUgfHxcbiAgICAgICAgICAgICgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplVmFsdWUgPSBnZXRQcm9wZXJ0eUJ5UGF0aCh2YWx1ZSwgc2VyaWFsaXplQXR0cmlidXRlLCB2YWx1ZSAvKmRlZmF1bHQgdmFsdWUqLyk7XG4gICAgICAgICAgICAgIGlmIChpc05pbChzZXJpYWxpemVWYWx1ZSkpIHJldHVybiBzZXJpYWxpemVWYWx1ZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZVZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBzZXJpYWxpemVGbiA9IEFwcFByb3BlcnR5VXRpbHMudG9TdHJpbmc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlU3RyOiBzdHJpbmc7XG5cbiAgICAvLyBWYWx1ZSBpcyBhbiBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZS52YWx1ZSkpIHtcbiAgICAgIHZhbHVlU3RyID0gc291cmNlLnZhbHVlLm1hcChzZXJpYWxpemVGbikuZmlsdGVyKGlzTm90TmlsT3JCbGFuaykuam9pbignLCcpO1xuICAgIH1cbiAgICAvLyBBbnkgb3RoZXIgY2FzZVxuICAgIGVsc2Uge1xuICAgICAgdmFsdWVTdHIgPSBzZXJpYWxpemVGbihzb3VyY2UudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4geyBrZXksIHZhbHVlOiB2YWx1ZVN0ciB9O1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3Q8VCA9IHN0cmluZz4oXG4gICAgc291cmNlOiBQcm9wZXJ0eSB8IFByb3BlcnR5PFQ+LFxuICAgIGRlZjogRm9ybUZpZWxkRGVmaW5pdGlvbixcbiAgICBvcHRzPzoge1xuICAgICAgZGVmYXVsdFN1Z2dlc3RGbjogU3VnZ2VzdEZuPGFueSwgYW55PjtcbiAgICAgIGRlZmF1bHRTdWdnZXN0T3B0aW9ucz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zO1xuICAgICAgZGVmYXVsdFNlcmlhbGl6ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgICB9XG4gICk6IFByb3BlcnR5PFQ+IHwgUHJvbWlzZTxQcm9wZXJ0eTxUPj4ge1xuICAgIGlmICghc291cmNlPy5rZXkgfHwgaXNOaWwoc291cmNlLnZhbHVlKSB8fCAhZGVmKSByZXR1cm4gc291cmNlIGFzIFByb3BlcnR5PFQ+OyAvLyBTa2lwIGlmIG5vIGtleVxuXG4gICAgLy8gQ2xvbmUgdGhlIHNvdXJjZVxuICAgIGNvbnN0IHRhcmdldDogUHJvcGVydHk8YW55PiA9IHsga2V5OiBzb3VyY2Uua2V5LCB2YWx1ZTogc291cmNlLnZhbHVlIH07XG5cbiAgICBjb25zdCBqb2JzOiBQcm9taXNlPGFueT5bXSA9IFtdO1xuICAgIC8vIFJlc29sdmUgdmFsdWVcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gdG9Cb29sZWFuKHNvdXJjZS52YWx1ZSBhcyBhbnksIHRvQm9vbGVhbihkZWYuZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICBjYXNlICdkb3VibGUnOlxuICAgICAgICB0YXJnZXQudmFsdWUgPSB0b051bWJlcihzb3VyY2UudmFsdWUgYXMgYW55LCB0b051bWJlcihkZWYuZGVmYXVsdFZhbHVlKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW51bSc6XG4gICAgICAgIGNvbnN0IHZhbHVlS2V5ID0gQXBwUHJvcGVydHlVdGlscy5rZXkodGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgaWYgKGlzTm90TmlsT3JCbGFuayh2YWx1ZUtleSkpIHtcbiAgICAgICAgICBjb25zdCBlbnVtVmFsdWUgPSAoZGVmLnZhbHVlcyBhcyAoc3RyaW5nIHwgUHJvcGVydHkpW10pPy5maW5kKChkZWZWYWx1ZSkgPT4gZGVmVmFsdWUgJiYgdmFsdWVLZXkgPT09IChkZWZWYWx1ZVsna2V5J10gfHwgZGVmVmFsdWUpKSA/PyBudWxsO1xuICAgICAgICAgIHRhcmdldC52YWx1ZSA9IGVudW1WYWx1ZT8uWydrZXknXSA/PyBlbnVtVmFsdWUgPz8gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXQudmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZW51bXMnOlxuICAgICAgICBjb25zdCB2YWx1ZUtleXMgPSBBcnJheS5pc0FycmF5KHNvdXJjZS52YWx1ZSlcbiAgICAgICAgICA/IHNvdXJjZS52YWx1ZS5tYXAoQXBwUHJvcGVydHlVdGlscy5rZXkpIC8vIENvcHlcbiAgICAgICAgICA6IHR5cGVvZiBzb3VyY2UudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICA/IHNvdXJjZS52YWx1ZS50cmltKCkuc3BsaXQoLywrLylcbiAgICAgICAgICAgIDogW0FwcFByb3BlcnR5VXRpbHMua2V5KHNvdXJjZS52YWx1ZSldO1xuICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZUtleXNcbiAgICAgICAgICAuZmlsdGVyKGlzTm90TmlsKVxuICAgICAgICAgIC5tYXAoXG4gICAgICAgICAgICAoa2V5OiBzdHJpbmcpID0+XG4gICAgICAgICAgICAgIChkZWYudmFsdWVzIGFzIChzdHJpbmcgfCBQcm9wZXJ0eSlbXSk/LmZpbmQoKGRlZlZhbHVlKSA9PiBkZWZWYWx1ZSAmJiBrZXkgPT09IChkZWZWYWx1ZVsna2V5J10gfHwgZGVmVmFsdWUpKSB8fCB7IGtleSwgdmFsdWU6ICc/JyB9XG4gICAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlbnRpdHknOlxuICAgICAgICAvLyBEZXNlcmlhbGl6ZSBlbnRpdHkgKGUuZy4gbG9hZCBlbnRpdHkgZnJvbSB0aGUgaWQpXG4gICAgICAgIGNvbnN0IHZhbHVlT3JQcm9taXNlID0gQXBwUHJvcGVydHlVdGlscy5yZXNvbHZlRW50aXR5KHRhcmdldC52YWx1ZSwgZGVmLCBvcHRzKTtcbiAgICAgICAgaWYgKGlzUHJvbWlzZSh2YWx1ZU9yUHJvbWlzZSkpIHtcbiAgICAgICAgICBqb2JzLnB1c2goXG4gICAgICAgICAgICB2YWx1ZU9yUHJvbWlzZS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YXJnZXQudmFsdWUgPSB2YWx1ZU9yUHJvbWlzZSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdlbnRpdGllcyc6XG4gICAgICAgIC8vIENvbnZlcnQgdmFsdWUgdG8gYXJyYXlcbiAgICAgICAgdGFyZ2V0LnZhbHVlID0gQXJyYXkuaXNBcnJheShzb3VyY2UudmFsdWUpXG4gICAgICAgICAgPyBzb3VyY2UudmFsdWUuc2xpY2UoKSAvLyBDb3B5XG4gICAgICAgICAgOiB0eXBlb2Ygc291cmNlLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgICAgICAgPyBzb3VyY2UudmFsdWVcbiAgICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgIC5tYXAoKHYpID0+IHYudHJpbSgpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKVxuICAgICAgICAgICAgOiBbXTtcblxuICAgICAgICAvLyBEZXNlcmlhbGl6ZSBlYWNoIHN1Yi12YWx1ZVxuICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICBmb3IgKGxldCBzdWJWYWx1ZSBvZiB0YXJnZXQudmFsdWUpIHtcbiAgICAgICAgICAvLyBEZXNlcmlhbGl6ZSBzdWItdmFsdWVcbiAgICAgICAgICBjb25zdCBzdWJWYWx1ZU9yUHJvbWlzZSA9IEFwcFByb3BlcnR5VXRpbHMucmVzb2x2ZUVudGl0eShzdWJWYWx1ZSwgZGVmLCBvcHRzKTtcblxuICAgICAgICAgIC8vIEFkZCBwcm9taXNlIHRvIGpvYnNcbiAgICAgICAgICBpZiAoaXNQcm9taXNlKHN1YlZhbHVlT3JQcm9taXNlKSkge1xuICAgICAgICAgICAgY29uc3QgZmluYWxJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgam9icy5wdXNoKFxuICAgICAgICAgICAgICBzdWJWYWx1ZU9yUHJvbWlzZS50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBzdWIgdmFsdWVcbiAgICAgICAgICAgICAgICB0YXJnZXQudmFsdWVbZmluYWxJbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzdWIgdmFsdWVcbiAgICAgICAgICAgIHRhcmdldC52YWx1ZVtpbmRleF0gPSBzdWJWYWx1ZU9yUHJvbWlzZSBhcyBhbnk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyAvIVxcIFJldHVybiBhcyBwcm9taXNlIG9ubHkgaWYgbmVlZCAobGV0IGZ1bmN0aW9uIHN5bmMgd2hlbiBwb3NzaWJsZSlcbiAgICBpZiAoam9icy5sZW5ndGgpIHJldHVybiBQcm9taXNlLmFsbChqb2JzKS50aGVuKCgpID0+IHRhcmdldCk7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVzb2x2ZUVudGl0eShcbiAgICB2YWx1ZTogYW55LFxuICAgIGRlZjogRm9ybUZpZWxkRGVmaW5pdGlvbixcbiAgICBvcHRzPzoge1xuICAgICAgZGVmYXVsdFN1Z2dlc3RGbjogU3VnZ2VzdEZuPGFueSwgYW55PjtcbiAgICAgIGRlZmF1bHRTdWdnZXN0T3B0aW9ucz86IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zO1xuICAgICAgZGVmYXVsdFNlcmlhbGl6ZUF0dHJpYnV0ZT86IHN0cmluZztcbiAgICB9XG4gICk6IGFueSB8IFByb21pc2U8YW55PiB7XG4gICAgLy8gVXNlIGRlc2VyaWFsaXplIGZ1bmN0aW9uLCBpZiBhbnlcbiAgICBpZiAoZGVmLmRlc2VyaWFsaXplKSB7XG4gICAgICByZXR1cm4gZGVmLmRlc2VyaWFsaXplKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBPciB0cnkgdXNpbmcgc3VnZ2VzdCBmdW5jdGlvblxuICAgIHJldHVybiB0aGlzLnJlc29sdmVFbnRpdHlCeVN1Z2dlc3QodmFsdWUsIGRlZiwgb3B0cyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhc3luYyByZXNvbHZlRW50aXR5QnlTdWdnZXN0KFxuICAgIHZhbHVlOiBhbnksXG4gICAgZGVmOiBGb3JtRmllbGREZWZpbml0aW9uLFxuICAgIG9wdHM/OiB7XG4gICAgICBkZWZhdWx0U3VnZ2VzdEZuOiBTdWdnZXN0Rm48YW55LCBhbnk+O1xuICAgICAgZGVmYXVsdFN1Z2dlc3RPcHRpb25zPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnM7XG4gICAgICBkZWZhdWx0U2VyaWFsaXplQXR0cmlidXRlPzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBzZXJpYWxpemVBdHRyaWJ1dGUgPSBkZWYuc2VyaWFsaXplQXR0cmlidXRlID8/IG9wdHM/LmRlZmF1bHRTZXJpYWxpemVBdHRyaWJ1dGUgPz8gJ2lkJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBpc05vdE5pbCh2YWx1ZVtzZXJpYWxpemVBdHRyaWJ1dGVdKSkge1xuICAgICAgcmV0dXJuIHZhbHVlOyAvLyBBbHJlYWR5IHJlc29sdmVcbiAgICB9XG5cbiAgICBjb25zdCBzdWdnZXN0Rm46IFN1Z2dlc3RGbjxhbnksIGFueT4gPSBkZWYuYXV0b2NvbXBsZXRlPy5zdWdnZXN0Rm4gfHwgb3B0cz8uZGVmYXVsdFN1Z2dlc3RGbjtcbiAgICBpZiAoIXN1Z2dlc3RGbikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgTWlzc2luZyAnZGVzZXJpYWxpemUnIG9yICdhdXRvY29tcGxldGUuc3VnZ2VzdEZuJyBpbiB0aGUgZmllbGQgZGVmaW5pdGlvbiAnJHtkZWYua2V5fScuIENhbm5vdCBkZXNlcmlhbGl6ZSB2YWx1ZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiB2YWx1ZTsgLy8gU2tpcFxuICAgIH1cbiAgICBsZXQgc2VhcmNoVmFsdWUgPSB2YWx1ZTtcbiAgICBjb25zdCBmaWx0ZXIgPSB7IC4uLmRlZi5hdXRvY29tcGxldGU/LmZpbHRlciB9OyAvLyBDb3BlIGZpbHRlclxuICAgIGlmIChzZXJpYWxpemVBdHRyaWJ1dGUgPT09ICdpZCcgfHwgc2VyaWFsaXplQXR0cmlidXRlID09PSAnbGFiZWwnKSB7XG4gICAgICBmaWx0ZXJbc2VyaWFsaXplQXR0cmlidXRlXSA9IHNlcmlhbGl6ZUF0dHJpYnV0ZSA9PT0gJ2lkJyA/ICt2YWx1ZSA6IHZhbHVlO1xuICAgICAgc2VhcmNoVmFsdWUgPSAnKic7XG4gICAgICAvLyBERUJVR1xuICAgICAgLy9jb25zb2xlLmRlYnVnKGBbcHJvcGVydGllcy11dGlsc10gUmVzb2x2aW5nIGVudGl0eSB3aGVyZSBpZD0ke3ZhbHVlfS4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXIuc2VhcmNoQXR0cmlidXRlID0gc2VyaWFsaXplQXR0cmlidXRlO1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vY29uc29sZS5kZWJ1ZyhgW3Byb3BlcnRpZXMtdXRpbHNdIFJlc29sdmluZyBlbnRpdHkgd2hlcmUgJHtzZXJpYWxpemVBdHRyaWJ1dGV9PSR7c2VhcmNoVmFsdWV9Li4uYCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIC8vIEZldGNoIGVudGl0eSwgdXNpbmcgdGhlIHN1Z2dlc3QgZnVuY3Rpb25cbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHN1Z2dlc3RGbihzZWFyY2hWYWx1ZSwgZmlsdGVyLCBzZXJpYWxpemVBdHRyaWJ1dGUsICdhc2MnLCB7XG4gICAgICAgIHdpdGhUb3RhbDogZmFsc2UsXG4gICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgLi4ub3B0cz8uZGVmYXVsdFN1Z2dlc3RPcHRpb25zLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdldCByZXN1bHQgYXJyYXlcbiAgICAgIGNvbnN0IGRhdGEgPSBBcnJheS5pc0FycmF5KHJlcykgPyByZXMgOiByZXMuZGF0YTtcblxuICAgICAgaWYgKGRhdGE/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKGRhdGE/Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgW3Byb3BlcnRpZXMtdXRpbHNdIE1vcmUgdGhhbiBvbmUgZW50aXR5IGZvdW5kLCBmb3Igb3B0aW9uICR7ZGVmLmtleX09JHt2YWx1ZX0hIFBsZWFzZSBjaGVjayBvcHRpb24ncyBkZWZpbml0aW9uIGFuZCB0aGUgJ2F1dG9jb21wbGV0ZS5zdWdnZXN0Rm4nIGZ1bmN0aW9uYCxcbiAgICAgICAgICAgIGRhdGFcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gREVCVUdcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKGBbcHJvcGVydGllcy11dGlsc10gJHtkYXRhLmxlbmd0aH0gZW50aXRpZXMgZm91bmQ6IGAsIGRhdGEpO1xuXG4gICAgICAgIC8vIE9rLCB3ZSBmaW5kIGl0ID0+IHN0b3AgaGVyZVxuICAgICAgICByZXR1cm4gZGF0YVswXTtcbiAgICAgIH1cblxuICAgICAgLy8gV2FybiwgYnV0IGNvbnRpbnVlXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbcHJvcGVydGllcy11dGlsc10gVW5hYmxlIHRvIHJlc29sdmUgZW50aXR5IGZvciBvcHRpb246ICR7ZGVmLmtleX09JHt2YWx1ZX0uIFBsZWFzZSBjaGVjayBvcHRpb24ncyBkZWZpbml0aW9uIGFuZCB0aGUgJ2F1dG9jb21wbGV0ZS5zdWdnZXN0Rm4nIGZ1bmN0aW9uYFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtwcm9wZXJ0aWVzLXV0aWxzXSBDYW5ub3QgcmVzb2x2ZSBlbnRpdHkgZm9yIG9wdGlvbjogJHtkZWYua2V5fT0ke3ZhbHVlfWAsIGVycik7XG4gICAgICAvLyBDb250aW51ZVxuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgbWlzc2luZyByZXN1bHRcbiAgICBjb25zdCB1bnJlc29sdmVkRW50aXR5ID0gPGFueT57XG4gICAgICBbc2VyaWFsaXplQXR0cmlidXRlXTogdmFsdWUsXG4gICAgfTtcblxuICAgIC8vIEZpbGwgYXR0cmlidXRlcyB3aXRoICc/PydcbiAgICBkZWYuYXV0b2NvbXBsZXRlPy5hdHRyaWJ1dGVzPy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHVucmVzb2x2ZWRFbnRpdHlba2V5XSA9IHVucmVzb2x2ZWRFbnRpdHlba2V5XSA/PyAnJztcbiAgICB9KTtcblxuICAgIHJldHVybiB1bnJlc29sdmVkRW50aXR5O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgdG9TdHJpbmcodmFsdWU/OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZT8udG9TdHJpbmcoKTtcbiAgfVxufVxuIl19
@@ -4,4 +4,4 @@ export function mergeLoadResult(res1, res2) {
4
4
  total: (res1.total || res1.data?.length || 0) + (res2.total || res2.data?.length || 0),
5
5
  };
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5R0EsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0tBQ3ZGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmV0Y2hQb2xpY3ksIFdhdGNoUXVlcnlGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRW1wdHlPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC51dGlscyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQYWdlIHtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIHNpemU6IG51bWJlcjtcbiAgc29ydEJ5Pzogc3RyaW5nO1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGZXRjaE1vcmVGbjxSLCBWID0gRW1wdHlPYmplY3Q+ID0gKHZhcmlhYmxlcz86IFYpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBMb2FkUmVzdWx0PFQ+IHtcbiAgZGF0YTogVFtdO1xuICB0b3RhbD86IG51bWJlcjtcbiAgZXJyb3JzPzogYW55W107XG4gIGZldGNoTW9yZT86IEZldGNoTW9yZUZuPExvYWRSZXN1bHQ8VD4+O1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFN1Z2dlc3RGbjxULCBGPiA9IChcbiAgdmFsdWU6IGFueSxcbiAgZmlsdGVyPzogRixcbiAgc29ydEJ5Pzogc3RyaW5nIHwga2V5b2YgVCxcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gIG9wdHM/OiB7XG4gICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH1cbikgPT4gUHJvbWlzZTxUW10gfCBMb2FkUmVzdWx0PFQ+PjtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN1Z2dlc3RTZXJ2aWNlPFQsIEY+IHtcbiAgc3VnZ2VzdDogU3VnZ2VzdEZuPFQsIEY+O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXR5U2VydmljZUxvYWRPcHRpb25zIHtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdHJhc2g/OiBib29sZWFuO1xuICB0b0VudGl0eT86IGJvb2xlYW47XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICBmZXRjaFBvbGljeT86IFdhdGNoUXVlcnlGZXRjaFBvbGljeTtcbiAgdHJhc2g/OiBib29sZWFuO1xuICB0b0VudGl0eT86IGJvb2xlYW47XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTGlzdGVuQ2hhbmdlc09wdGlvbnMge1xuICBpbnRlcnZhbD86IG51bWJlcjtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdG9FbnRpdHk/OiBib29sZWFuO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRW50aXR5U2VydmljZTxULCBJRCA9IGFueSwgTE8gPSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM+IHtcbiAgbG9hZChpZDogSUQsIG9wdHM/OiBMTyk6IFByb21pc2U8VD47XG5cbiAgY2FuVXNlcldyaXRlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBib29sZWFuO1xuXG4gIHNhdmUoZGF0YTogVCwgb3B0cz86IGFueSk6IFByb21pc2U8VD47XG5cbiAgZGVsZXRlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogSUQsIG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMge1xuICB3aXRoVG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zIGV4dGVuZHMgRW50aXR5U2VydmljZVdhdGNoT3B0aW9ucyB7XG4gIHdpdGhUb3RhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+IHtcbiAgd2F0Y2hBbGwob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbiwgZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0aW9ucz86IE8pOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+O1xuXG4gIC8vIFRPRE9cbiAgLyp3YXRjaFBhZ2UoXG4gICAgcGFnZTogUGFnZTxUPixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdGlvbnM/OiBPXG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj47Ki9cblxuICBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8VFtdPjtcblxuICBkZWxldGVBbGwoZGF0YTogVFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGFzRmlsdGVyKGZpbHRlcjogUGFydGlhbDxGPik6IEY7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgTG9hZFJlc3VsdEJ5UGFnZUZuPFQ+ID0gKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIpID0+IFByb21pc2U8TG9hZFJlc3VsdDxUPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudGl0eUZ1bGxTZXJ2aWNlPFQsIElELCBGLCBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zICYgRW50aXR5U2VydmljZUxvYWRPcHRpb25zPlxuICBleHRlbmRzIElFbnRpdHlTZXJ2aWNlPFQsIElELCBPPixcbiAgICBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxvYWRSZXN1bHQ8VD4ocmVzMTogTG9hZFJlc3VsdDxUPiwgcmVzMjogTG9hZFJlc3VsdDxUPik6IExvYWRSZXN1bHQ8VD4ge1xuICByZXR1cm4ge1xuICAgIGRhdGE6IChyZXMxLmRhdGEgfHwgW10pLmNvbmNhdCguLi5yZXMyLmRhdGEpLFxuICAgIHRvdGFsOiAocmVzMS50b3RhbCB8fCByZXMxLmRhdGE/Lmxlbmd0aCB8fCAwKSArIChyZXMyLnRvdGFsIHx8IHJlczIuZGF0YT8ubGVuZ3RoIHx8IDApLFxuICB9O1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyR0EsTUFBTSxVQUFVLGVBQWUsQ0FBSSxJQUFtQixFQUFFLElBQW1CO0lBQ3pFLE9BQU87UUFDTCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0tBQ3ZGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmV0Y2hQb2xpY3ksIFdhdGNoUXVlcnlGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRW1wdHlPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC51dGlscyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQYWdlIHtcbiAgb2Zmc2V0OiBudW1iZXI7XG4gIHNpemU6IG51bWJlcjtcbiAgc29ydEJ5Pzogc3RyaW5nO1xuICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBGZXRjaE1vcmVGbjxSLCBWID0gRW1wdHlPYmplY3Q+ID0gKHZhcmlhYmxlcz86IFYpID0+IFByb21pc2U8Uj47XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBMb2FkUmVzdWx0PFQ+IHtcbiAgZGF0YTogVFtdO1xuICB0b3RhbD86IG51bWJlcjtcbiAgZXJyb3JzPzogYW55W107XG4gIGZldGNoTW9yZT86IEZldGNoTW9yZUZuPExvYWRSZXN1bHQ8VD4+O1xufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFN1Z2dlc3RGbjxULCBGPiA9IChcbiAgdmFsdWU6IGFueSxcbiAgZmlsdGVyPzogRixcbiAgc29ydEJ5Pzogc3RyaW5nIHwga2V5b2YgVCxcbiAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gIG9wdHM/OiB7XG4gICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgc2l6ZT86IG51bWJlcjtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH1cbikgPT4gUHJvbWlzZTxUW10gfCBMb2FkUmVzdWx0PFQ+PjtcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN1Z2dlc3RTZXJ2aWNlPFQsIEY+IHtcbiAgc3VnZ2VzdDogU3VnZ2VzdEZuPFQsIEY+O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXR5U2VydmljZUxvYWRPcHRpb25zIHtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdHJhc2g/OiBib29sZWFuO1xuICB0b0VudGl0eT86IGJvb2xlYW47XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEVudGl0eVNlcnZpY2VXYXRjaE9wdGlvbnMge1xuICBmZXRjaFBvbGljeT86IFdhdGNoUXVlcnlGZXRjaFBvbGljeTtcbiAgdHJhc2g/OiBib29sZWFuO1xuICB0b0VudGl0eT86IGJvb2xlYW47XG4gIHF1ZXJ5PzogYW55O1xuICB2YXJpYWJsZXM/OiBhbnk7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBFbnRpdHlTZXJ2aWNlTGlzdGVuQ2hhbmdlc09wdGlvbnMge1xuICBpbnRlcnZhbD86IG51bWJlcjtcbiAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgdG9FbnRpdHk/OiBib29sZWFuO1xuICBxdWVyeT86IGFueTtcbiAgdmFyaWFibGVzPzogYW55O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRW50aXR5U2VydmljZTxULCBJRCA9IGFueSwgTE8gPSBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnM+IHtcbiAgbG9hZChpZDogSUQsIG9wdHM/OiBMTyk6IFByb21pc2U8VD47XG5cbiAgY2FuVXNlcldyaXRlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBib29sZWFuO1xuXG4gIHNhdmUoZGF0YTogVCwgb3B0cz86IGFueSk6IFByb21pc2U8VD47XG5cbiAgZGVsZXRlKGRhdGE6IFQsIG9wdHM/OiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogSUQsIG9wdHM/OiBhbnkpOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgZXh0ZW5kcyBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMge1xuICB3aXRoVG90YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zIGV4dGVuZHMgRW50aXR5U2VydmljZVdhdGNoT3B0aW9ucyB7XG4gIHdpdGhUb3RhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+IHtcbiAgd2F0Y2hBbGwob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbiwgZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0aW9ucz86IE8pOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+O1xuXG4gIC8vIFRPRE9cbiAgLyp3YXRjaFBhZ2UoXG4gICAgcGFnZTogUGFnZTxUPixcbiAgICBmaWx0ZXI/OiBGLFxuICAgIG9wdGlvbnM/OiBPXG4gICk6IE9ic2VydmFibGU8TG9hZFJlc3VsdDxUPj47Ki9cblxuICBzYXZlQWxsKGRhdGE6IFRbXSwgb3B0cz86IGFueSk6IFByb21pc2U8VFtdPjtcblxuICBkZWxldGVBbGwoZGF0YTogVFtdLCBvcHRzPzogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGFzRmlsdGVyKGZpbHRlcjogUGFydGlhbDxGPik6IEY7XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgTG9hZFJlc3VsdEJ5UGFnZUZuPFQ+ID0gKG9mZnNldDogbnVtYmVyLCBzaXplOiBudW1iZXIpID0+IFByb21pc2U8TG9hZFJlc3VsdDxUPj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudGl0eUZ1bGxTZXJ2aWNlPFQsIElELCBGLCBPIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zICYgRW50aXR5U2VydmljZUxvYWRPcHRpb25zPlxuICBleHRlbmRzIElFbnRpdHlTZXJ2aWNlPFQsIElELCBPPixcbiAgICBJRW50aXRpZXNTZXJ2aWNlPFQsIEYsIE8+IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxvYWRSZXN1bHQ8VD4ocmVzMTogTG9hZFJlc3VsdDxUPiwgcmVzMjogTG9hZFJlc3VsdDxUPik6IExvYWRSZXN1bHQ8VD4ge1xuICByZXR1cm4ge1xuICAgIGRhdGE6IChyZXMxLmRhdGEgfHwgW10pLmNvbmNhdCguLi5yZXMyLmRhdGEpLFxuICAgIHRvdGFsOiAocmVzMS50b3RhbCB8fCByZXMxLmRhdGE/Lmxlbmd0aCB8fCAwKSArIChyZXMyLnRvdGFsIHx8IHJlczIuZGF0YT8ubGVuZ3RoIHx8IDApLFxuICB9O1xufVxuIl19
@@ -7021,8 +7021,6 @@ class AppPropertyUtils {
7021
7021
  const filter = { ...def.autocomplete?.filter }; // Cope filter
7022
7022
  if (serializeAttribute === 'id' || serializeAttribute === 'label') {
7023
7023
  filter[serializeAttribute] = serializeAttribute === 'id' ? +value : value;
7024
- filter.offset = 0;
7025
- filter.size = 1;
7026
7024
  searchValue = '*';
7027
7025
  // DEBUG
7028
7026
  //console.debug(`[properties-utils] Resolving entity where id=${value}...`);
@@ -7036,18 +7034,26 @@ class AppPropertyUtils {
7036
7034
  // Fetch entity, using the suggest function
7037
7035
  const res = await suggestFn(searchValue, filter, serializeAttribute, 'asc', {
7038
7036
  withTotal: false,
7037
+ offset: 0,
7038
+ size: 1,
7039
7039
  ...opts?.defaultSuggestOptions,
7040
7040
  });
7041
7041
  // Get result array
7042
7042
  const data = Array.isArray(res) ? res : res.data;
7043
- // DEBUG
7044
- //console.debug(`[properties-utils] ${data.length} entities found: `, data);
7045
- // Ok, we find it => stop here
7046
- if (data?.length)
7043
+ if (data?.length > 0) {
7044
+ if (data?.length > 1) {
7045
+ console.warn(`[properties-utils] More than one entity found, for option ${def.key}=${value}! Please check option's definition and the 'autocomplete.suggestFn' function`, data);
7046
+ }
7047
+ // DEBUG
7048
+ //console.debug(`[properties-utils] ${data.length} entities found: `, data);
7049
+ // Ok, we find it => stop here
7047
7050
  return data[0];
7051
+ }
7052
+ // Warn, but continue
7053
+ console.warn(`[properties-utils] Unable to resolve entity for option: ${def.key}=${value}. Please check option's definition and the 'autocomplete.suggestFn' function`);
7048
7054
  }
7049
7055
  catch (err) {
7050
- console.warn(`Cannot resolve entity for option: ${def.key}=${value}. Please set 'definition.deserialize' or check filter usage in the 'autocomplete.suggestFn' function`, err);
7056
+ console.error(`[properties-utils] Cannot resolve entity for option: ${def.key}=${value}`, err);
7051
7057
  // Continue
7052
7058
  }
7053
7059
  // Create the missing result