@ng-formworks/core 17.6.8 → 17.6.9

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.
@@ -407,4 +407,47 @@ export function hasNonNullValue(obj) {
407
407
  return !isNil(value);
408
408
  });
409
409
  }
410
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3NoYXJlZC91dGlsaXR5LmZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0STs7Ozs7RUFLRTtBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsVUFBMkMsRUFDM0MsVUFBMkM7SUFFM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUFFLE9BQU8sVUFBVSxDQUFDO0tBQUU7SUFDL0MsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFBRSxVQUFVLEdBQUcsRUFBRSxDQUFDO0tBQUU7SUFDN0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMs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LENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FDN0QsRUFDRDtnQkFDQSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0wsT0FBTyxHQUFHLFNBQVMsQ0FBQzthQUNyQjtZQUNELFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsT0FBTyxPQUFPLENBQUM7U0FDaEI7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFHRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUF3QjtJQUN0RCxtRUFBbUU7SUFDbkUsSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsb0VBQW9FO0lBQ3BFLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQVUsRUFBVyxFQUFFO1FBQ3ZDLHlEQUF5RDtRQUN6RCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtRQUNELGdEQUFnRDtRQUNoRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTmlsLCBzb21lIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgaGFzVmFsdWUsIGluQXJyYXksIGlzQXJyYXksIGlzRGVmaW5lZCwgaXNFbXB0eSwgaXNNYXAsIGlzT2JqZWN0LCBpc1NldCwgaXNTdHJpbmcsIFBsYWluT2JqZWN0IH0gZnJvbSAnLi92YWxpZGF0b3IuZnVuY3Rpb25zJztcclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGxpYnJhcnk6XHJcbiAqXHJcbiAqIGFkZENsYXNzZXMsIGNvcHksIGZvckVhY2gsIGZvckVhY2hDb3B5LCBoYXNPd24sIG1lcmdlRmlsdGVyZWRPYmplY3QsXHJcbiAqIHVuaXF1ZUl0ZW1zLCBjb21tb25JdGVtcywgZml4VGl0bGUsIHRvVGl0bGVDYXNlXHJcbiovXHJcblxyXG4vKipcclxuICogJ2FkZENsYXNzZXMnIGZ1bmN0aW9uXHJcbiAqXHJcbiAqIE1lcmdlcyB0d28gc3BhY2UtZGVsaW1pdGVkIGxpc3RzIG9mIENTUyBjbGFzc2VzIGFuZCByZW1vdmVzIGR1cGxpY2F0ZXMuXHJcbiAqXHJcbiAqIC8vIHtzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+fSBvbGRDbGFzc2VzXHJcbiAqIC8vIHtzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+fSBuZXdDbGFzc2VzXHJcbiAqIC8vIHtzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+fSAtIENvbWJpbmVkIGNsYXNzZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGFzc2VzKFxyXG4gIG9sZENsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4sXHJcbiAgbmV3Q2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPlxyXG4pOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+IHtcclxuICBjb25zdCBiYWRUeXBlID0gaSA9PiAhaXNTZXQoaSkgJiYgIWlzQXJyYXkoaSkgJiYgIWlzU3RyaW5nKGkpO1xyXG4gIGlmIChiYWRUeXBlKG5ld0NsYXNzZXMpKSB7IHJldHVybiBvbGRDbGFzc2VzOyB9XHJcbiAgaWYgKGJhZFR5cGUob2xkQ2xhc3NlcykpIHsgb2xkQ2xhc3NlcyA9ICcnOyB9XHJcbiAgY29uc3QgdG9TZXQgPSBpID0+IGlzU2V0KGkpID8gaSA6IGlzQXJyYXkoaSkgPyBuZXcgU2V0KGkpIDogbmV3IFNldChpLnNwbGl0KCcgJykpO1xyXG4gIGNvbnN0IGNvbWJpbmVkU2V0OiBTZXQ8YW55PiA9IHRvU2V0KG9sZENsYXNzZXMpO1xyXG4gIGNvbnN0IG5ld1NldDogU2V0PGFueT4gPSB0b1NldChuZXdDbGFzc2VzKTtcclxuICBuZXdTZXQuZm9yRWFjaChjID0+IGNvbWJpbmVkU2V0LmFkZChjKSk7XHJcbiAgaWYgKGlzU2V0KG9sZENsYXNzZXMpKSB7IHJldHVybiBjb21iaW5lZFNldDsgfVxyXG4gIGlmIChpc0FycmF5KG9sZENsYXNzZXMpKSB7IHJldHVybiBBcnJheS5mcm9tKGNvbWJpbmVkU2V0KTsgfVxyXG4gIHJldHVybiBBcnJheS5mcm9tKGNvbWJpbmVkU2V0KS5qb2luKCcgJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAnY29weScgZnVuY3Rpb25cclxuICpcclxuICogTWFrZXMgYSBzaGFsbG93IGNvcHkgb2YgYSBKYXZhU2NyaXB0IG9iamVjdCwgYXJyYXksIE1hcCwgb3IgU2V0LlxyXG4gKiBJZiBwYXNzZWQgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZSB2YWx1ZSAoc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4sIG9yIG51bGwpLFxyXG4gKiBpdCByZXR1cm5zIHRoZSB2YWx1ZS5cclxuICpcclxuICogLy8ge09iamVjdHxBcnJheXxzdHJpbmd8bnVtYmVyfGJvb2xlYW58bnVsbH0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBjb3B5XHJcbiAqIC8vIHtib29sZWFuID0gZmFsc2V9IGVycm9ycyAtIFNob3cgZXJyb3JzP1xyXG4gKiAvLyB7T2JqZWN0fEFycmF5fHN0cmluZ3xudW1iZXJ8Ym9vbGVhbnxudWxsfSAtIFRoZSBjb3BpZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY29weShvYmplY3Q6IGFueSwgZXJyb3JzID0gZmFsc2UpOiBhbnkge1xyXG4gIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0JyB8fCBvYmplY3QgPT09IG51bGwpIHsgcmV0dXJuIG9iamVjdDsgfVxyXG4gIGlmIChpc01hcChvYmplY3QpKSAgICB7IHJldHVybiBuZXcgTWFwKG9iamVjdCk7IH1cclxuICBpZiAoaXNTZXQob2JqZWN0KSkgICAgeyByZXR1cm4gbmV3IFNldChvYmplY3QpOyB9XHJcbiAgaWYgKGlzQXJyYXkob2JqZWN0KSkgIHsgcmV0dXJuIFsgLi4ub2JqZWN0IF07ICAgfVxyXG4gIGlmIChpc09iamVjdChvYmplY3QpKSB7IHJldHVybiB7IC4uLm9iamVjdCB9OyAgIH1cclxuICBpZiAoZXJyb3JzKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdjb3B5IGVycm9yOiBPYmplY3QgdG8gY29weSBtdXN0IGJlIGEgSmF2YVNjcmlwdCBvYmplY3Qgb3IgdmFsdWUuJyk7XHJcbiAgfVxyXG4gIHJldHVybiBvYmplY3Q7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAnZm9yRWFjaCcgZnVuY3Rpb25cclxuICpcclxuICogSXRlcmF0ZXMgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGZpcnN0IGxldmVsIG9mIGFuIG9iamVjdCBvciBhcnJheVxyXG4gKiBhbmQgY2FsbHMgYW4gaXRlcmF0b3IgZnVuY2l0b24gb24gZWFjaCBpdGVtLlxyXG4gKlxyXG4gKiBUaGUgaXRlcmF0b3IgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggZm91ciB2YWx1ZXM6XHJcbiAqIDEuIFRoZSBjdXJyZW50IGl0ZW0ncyB2YWx1ZVxyXG4gKiAyLiBUaGUgY3VycmVudCBpdGVtJ3Mga2V5XHJcbiAqIDMuIFRoZSBwYXJlbnQgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgY3VycmVudCBpdGVtXHJcbiAqIDQuIFRoZSByb290IG9iamVjdFxyXG4gKlxyXG4gKiBTZXR0aW5nIHRoZSBvcHRpb25hbCB0aGlyZCBwYXJhbWV0ZXIgdG8gJ3RvcC1kb3duJyBvciAnYm90dG9tLXVwJyB3aWxsIGNhdXNlXHJcbiAqIGl0IHRvIGFsc28gcmVjdXJzaXZlbHkgaXRlcmF0ZSBvdmVyIGl0ZW1zIGluIHN1Yi1vYmplY3RzIG9yIHN1Yi1hcnJheXMgaW4gdGhlXHJcbiAqIHNwZWNpZmllZCBkaXJlY3Rpb24uXHJcbiAqXHJcbiAqIC8vIHtPYmplY3R8QXJyYXl9IG9iamVjdCAtIFRoZSBvYmplY3Qgb3IgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyXHJcbiAqIC8vIHtmdW5jdGlvbn0gZm4gLSB0aGUgaXRlcmF0b3IgZnVuY2l0b24gdG8gY2FsbCBvbiBlYWNoIGl0ZW1cclxuICogLy8ge2Jvb2xlYW4gPSBmYWxzZX0gZXJyb3JzIC0gU2hvdyBlcnJvcnM/XHJcbiAqIC8vIHt2b2lkfVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goXHJcbiAgb2JqZWN0OiBhbnksIGZuOiAodjogYW55LCBrPzogc3RyaW5nIHwgbnVtYmVyLCBjPzogYW55LCByYz86IGFueSkgPT4gYW55LFxyXG4gIHJlY3Vyc2U6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZSwgcm9vdE9iamVjdDogYW55ID0gb2JqZWN0LCBlcnJvcnMgPSBmYWxzZVxyXG4pOiB2b2lkIHtcclxuICBpZiAoaXNFbXB0eShvYmplY3QpKSB7IHJldHVybjsgfVxyXG4gIGlmICgoaXNPYmplY3Qob2JqZWN0KSB8fCBpc0FycmF5KG9iamVjdCkpICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xyXG4gICAgICBpZiAocmVjdXJzZSA9PT0gJ2JvdHRvbS11cCcgJiYgKGlzT2JqZWN0KHZhbHVlKSB8fCBpc0FycmF5KHZhbHVlKSkpIHtcclxuICAgICAgICBmb3JFYWNoKHZhbHVlLCBmbiwgcmVjdXJzZSwgcm9vdE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgICAgZm4odmFsdWUsIGtleSwgb2JqZWN0LCByb290T2JqZWN0KTtcclxuICAgICAgaWYgKHJlY3Vyc2UgPT09ICd0b3AtZG93bicgJiYgKGlzT2JqZWN0KHZhbHVlKSB8fCBpc0FycmF5KHZhbHVlKSkpIHtcclxuICAgICAgICBmb3JFYWNoKHZhbHVlLCBmbiwgcmVjdXJzZSwgcm9vdE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKGVycm9ycykge1xyXG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdmb3JFYWNoIGVycm9yOiBJdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z1bmN0aW9uJywgZm4pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc09iamVjdChvYmplY3QpICYmICFpc0FycmF5KG9iamVjdCkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignZm9yRWFjaCBlcnJvcjogSW5wdXQgb2JqZWN0IG11c3QgYmUgYW4gb2JqZWN0IG9yIGFycmF5LicpO1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdvYmplY3QnLCBvYmplY3QpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqICdmb3JFYWNoQ29weScgZnVuY3Rpb25cclxuICpcclxuICogSXRlcmF0ZXMgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGZpcnN0IGxldmVsIG9mIGFuIG9iamVjdCBvciBhcnJheVxyXG4gKiBhbmQgY2FsbHMgYW4gaXRlcmF0b3IgZnVuY3Rpb24gb24gZWFjaCBpdGVtLiBSZXR1cm5zIGEgbmV3IG9iamVjdCBvciBhcnJheVxyXG4gKiB3aXRoIHRoZSBzYW1lIGtleXMgb3IgaW5kZXhlcyBhcyB0aGUgb3JpZ2luYWwsIGFuZCB2YWx1ZXMgc2V0IHRvIHRoZSByZXN1bHRzXHJcbiAqIG9mIHRoZSBpdGVyYXRvciBmdW5jdGlvbi5cclxuICpcclxuICogRG9lcyBOT1QgcmVjdXJzaXZlbHkgaXRlcmF0ZSBvdmVyIGl0ZW1zIGluIHN1Yi1vYmplY3RzIG9yIHN1Yi1hcnJheXMuXHJcbiAqXHJcbiAqIC8vIHtPYmplY3QgfCBBcnJheX0gb2JqZWN0IC0gVGhlIG9iamVjdCBvciBhcnJheSB0byBpdGVyYXRlIG92ZXJcclxuICogLy8ge2Z1bmN0aW9ufSBmbiAtIFRoZSBpdGVyYXRvciBmdW5jaXRvbiB0byBjYWxsIG9uIGVhY2ggaXRlbVxyXG4gKiAvLyB7Ym9vbGVhbiA9IGZhbHNlfSBlcnJvcnMgLSBTaG93IGVycm9ycz9cclxuICogLy8ge09iamVjdCB8IEFycmF5fSAtIFRoZSByZXN1bHRpbmcgb2JqZWN0IG9yIGFycmF5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaENvcHkoXHJcbiAgb2JqZWN0OiBhbnksIGZuOiAodjogYW55LCBrPzogc3RyaW5nIHwgbnVtYmVyLCBvPzogYW55LCBwPzogc3RyaW5nKSA9PiBhbnksXHJcbiAgZXJyb3JzID0gZmFsc2VcclxuKTogYW55IHtcclxuICBpZiAoIWhhc1ZhbHVlKG9iamVjdCkpIHsgcmV0dXJuOyB9XHJcbiAgaWYgKChpc09iamVjdChvYmplY3QpIHx8IGlzQXJyYXkob2JqZWN0KSkgJiYgdHlwZW9mIG9iamVjdCAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgY29uc3QgbmV3T2JqZWN0OiBhbnkgPSBpc0FycmF5KG9iamVjdCkgPyBbXSA6IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xyXG4gICAgICBuZXdPYmplY3Rba2V5XSA9IGZuKG9iamVjdFtrZXldLCBrZXksIG9iamVjdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3T2JqZWN0O1xyXG4gIH1cclxuICBpZiAoZXJyb3JzKSB7XHJcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2ZvckVhY2hDb3B5IGVycm9yOiBJdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z1bmN0aW9uJywgZm4pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc09iamVjdChvYmplY3QpICYmICFpc0FycmF5KG9iamVjdCkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignZm9yRWFjaENvcHkgZXJyb3I6IElucHV0IG9iamVjdCBtdXN0IGJlIGFuIG9iamVjdCBvciBhcnJheS4nKTtcclxuICAgICAgY29uc29sZS5lcnJvcignb2JqZWN0Jywgb2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAnaGFzT3duJyB1dGlsaXR5IGZ1bmN0aW9uXHJcbiAqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGFuIG9iamVjdCBvciBhcnJheSBoYXMgYSBwYXJ0aWN1bGFyIHByb3BlcnR5LlxyXG4gKlxyXG4gKiAvLyB7YW55fSBvYmplY3QgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXHJcbiAqIC8vIHtzdHJpbmd9IHByb3BlcnR5IC0gdGhlIHByb3BlcnR5IHRvIGxvb2sgZm9yXHJcbiAqIC8vIHtib29sZWFufSAtIHRydWUgaWYgb2JqZWN0IGhhcyBwcm9wZXJ0eSwgZmFsc2UgaWYgbm90XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzT3duKG9iamVjdDogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgaWYgKCFvYmplY3QgfHwgIVsnbnVtYmVyJywgJ3N0cmluZycsICdzeW1ib2wnXS5pbmNsdWRlcyh0eXBlb2YgcHJvcGVydHkpIHx8XHJcbiAgICAoIWlzT2JqZWN0KG9iamVjdCkgJiYgIWlzQXJyYXkob2JqZWN0KSAmJiAhaXNNYXAob2JqZWN0KSAmJiAhaXNTZXQob2JqZWN0KSlcclxuICApIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgaWYgKGlzTWFwKG9iamVjdCkgfHwgaXNTZXQob2JqZWN0KSkgeyByZXR1cm4gb2JqZWN0Lmhhcyhwcm9wZXJ0eSk7IH1cclxuICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnbnVtYmVyJykge1xyXG4gICAgaWYgKGlzQXJyYXkob2JqZWN0KSkgeyByZXR1cm4gb2JqZWN0WzxudW1iZXI+cHJvcGVydHldOyB9XHJcbiAgICBwcm9wZXJ0eSA9IHByb3BlcnR5ICsgJyc7XHJcbiAgfVxyXG4gIHJldHVybiBvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHkpO1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgcG9zc2libGUgZXhwcmVzc2lvbnMgd2hpY2ggdGhlIGFwcCBpcyBhYmxlIHRvIGV2YWx1YXRlLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRXhwcmVzc2lvblR5cGUge1xyXG4gIEVRVUFMUyxcclxuICBOT1RfRVFVQUxTLFxyXG4gIE5PVF9BTl9FWFBSRVNTSU9OXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlY3RzIHRoZSB0eXBlIG9mIGV4cHJlc3Npb24gZnJvbSB0aGUgZ2l2ZW4gY2FuZGlkYXRlLiBgPT1gIGZvciBlcXVhbHMsXHJcbiAqIGAhPWAgZm9yIG5vdCBlcXVhbHMuIElmIG5vbmUgb2YgdGhlc2UgYXJlIGNvbnRhaW5lZCBpbiB0aGUgY2FuZGlkYXRlLCB0aGUgY2FuZGlkYXRlXHJcbiAqIGlzIG5vdCBjb25zaWRlcmVkIHRvIGJlIGFuIGV4cHJlc3Npb24gYXQgYWxsIGFuZCB0aHVzIGBOT1RfQU5fRVhQUkVTU0lPTmAgaXMgcmV0dXJuZWQuXHJcbiAqIC8vIHtleHByZXNzaW9uQ2FuZGlkYXRlfSBleHByZXNzaW9uQ2FuZGlkYXRlIC0gcG90ZW50aWFsIGV4cHJlc3Npb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHByZXNzaW9uVHlwZShleHByZXNzaW9uQ2FuZGlkYXRlOiBzdHJpbmcpOiBFeHByZXNzaW9uVHlwZSB7XHJcbiAgaWYgKGV4cHJlc3Npb25DYW5kaWRhdGUuaW5kZXhPZignPT0nKSAhPT0gLTEpIHtcclxuICAgIHJldHVybiBFeHByZXNzaW9uVHlwZS5FUVVBTFM7XHJcbiAgfVxyXG5cclxuICBpZiAoZXhwcmVzc2lvbkNhbmRpZGF0ZS50b1N0cmluZygpLmluZGV4T2YoJyE9JykgIT09IC0xKSB7XHJcbiAgICByZXR1cm4gRXhwcmVzc2lvblR5cGUuTk9UX0VRVUFMUztcclxuICB9XHJcblxyXG4gIHJldHVybiBFeHByZXNzaW9uVHlwZS5OT1RfQU5fRVhQUkVTU0lPTjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWwoZXhwcmVzc2lvblR5cGUpIHtcclxuICByZXR1cm4gZXhwcmVzc2lvblR5cGUgYXMgRXhwcmVzc2lvblR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkVRVUFMUztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTm90RXF1YWwoZXhwcmVzc2lvblR5cGUpIHtcclxuICByZXR1cm4gZXhwcmVzc2lvblR5cGUgYXMgRXhwcmVzc2lvblR5cGUgPT09IEV4cHJlc3Npb25UeXBlLk5PVF9FUVVBTFM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc05vdEV4cHJlc3Npb24oZXhwcmVzc2lvblR5cGUpIHtcclxuICByZXR1cm4gZXhwcmVzc2lvblR5cGUgYXMgRXhwcmVzc2lvblR5cGUgPT09IEV4cHJlc3Npb25UeXBlLk5PVF9BTl9FWFBSRVNTSU9OO1xyXG59XHJcblxyXG4vKipcclxuICogU3BsaXRzIHRoZSBleHByZXNzaW9uIGtleSBieSB0aGUgZXhwcmVzc2lvblR5cGUgb24gYSBwYWlyIG9mIHZhbHVlc1xyXG4gKiBiZWZvcmUgYW5kIGFmdGVyIHRoZSBlcXVhbHMgb3Igbm9yIGVxdWFscyBzaWduLlxyXG4gKiAvLyB7ZXhwcmVzc2lvblR5cGV9IGVudW0gb2YgYW4gZXhwcmVzc2lvbiB0eXBlXHJcbiAqIC8vIHtrZXl9IHRoZSBnaXZlbiBrZXkgZnJvbSBhIGZvciBsb29wIGl2ZXIgYWxsIGNvbmRpdGlvbnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlBbmRWYWx1ZUJ5RXhwcmVzc2lvblR5cGUoZXhwcmVzc2lvblR5cGU6IEV4cHJlc3Npb25UeXBlLCBrZXk6IHN0cmluZykge1xyXG4gIGlmIChpc0VxdWFsKGV4cHJlc3Npb25UeXBlKSkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdCgnPT0nLCAyKTtcclxuICB9XHJcblxyXG4gIGlmIChpc05vdEVxdWFsKGV4cHJlc3Npb25UeXBlKSkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdCgnIT0nLCAyKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5WYWx1ZU9mUXVvdGVzKGtleUFuZFZhbHVlKTogU3RyaW5nIHtcclxuICBpZiAoa2V5QW5kVmFsdWUuY2hhckF0KDApID09PSAnXFwnJyAmJiBrZXlBbmRWYWx1ZS5jaGFyQXQoa2V5QW5kVmFsdWUubGVuZ3RoIC0gMSkgPT09ICdcXCcnKSB7XHJcbiAgICByZXR1cm4ga2V5QW5kVmFsdWUucmVwbGFjZSgnXFwnJywgJycpLnJlcGxhY2UoJ1xcJycsICcnKTtcclxuICB9XHJcbiAgcmV0dXJuIGtleUFuZFZhbHVlO1xyXG59XHJcblxyXG4vKipcclxuICogJ21lcmdlRmlsdGVyZWRPYmplY3QnIHV0aWxpdHkgZnVuY3Rpb25cclxuICpcclxuICogU2hhbGxvd2x5IG1lcmdlcyB0d28gb2JqZWN0cywgc2V0dGluZyBrZXkgYW5kIHZhbHVlcyBmcm9tIHNvdXJjZSBvYmplY3RcclxuICogaW4gdGFyZ2V0IG9iamVjdCwgZXhjbHVkaW5nIHNwZWNpZmllZCBrZXlzLlxyXG4gKlxyXG4gKiBPcHRpb25hbGx5LCBpdCBjYW4gYWxzbyB1c2UgZnVuY3Rpb25zIHRvIHRyYW5zZm9ybSB0aGUga2V5IG5hbWVzIGFuZC9vclxyXG4gKiB0aGUgdmFsdWVzIG9mIHRoZSBtZXJnaW5nIG9iamVjdC5cclxuICpcclxuICogLy8ge1BsYWluT2JqZWN0fSB0YXJnZXRPYmplY3QgLSBUYXJnZXQgb2JqZWN0IHRvIGFkZCBrZXlzIGFuZCB2YWx1ZXMgdG9cclxuICogLy8ge1BsYWluT2JqZWN0fSBzb3VyY2VPYmplY3QgLSBTb3VyY2Ugb2JqZWN0IHRvIGNvcHkga2V5cyBhbmQgdmFsdWVzIGZyb21cclxuICogLy8ge3N0cmluZ1tdfSBleGNsdWRlS2V5cyAtIEFycmF5IG9mIGtleXMgdG8gZXhjbHVkZVxyXG4gKiAvLyB7KHN0cmluZzogc3RyaW5nKSA9PiBzdHJpbmcgPSAoaykgPT4ga30ga2V5Rm4gLSBGdW5jdGlvbiB0byBhcHBseSB0byBrZXlzXHJcbiAqIC8vIHsoYW55OiBhbnkpID0+IGFueSA9ICh2KSA9PiB2fSB2YWx1ZUZuIC0gRnVuY3Rpb24gdG8gYXBwbHkgdG8gdmFsdWVzXHJcbiAqIC8vIHtQbGFpbk9iamVjdH0gLSBSZXR1cm5zIHRhcmdldE9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRmlsdGVyZWRPYmplY3QoXHJcbiAgdGFyZ2V0T2JqZWN0OiBQbGFpbk9iamVjdCxcclxuICBzb3VyY2VPYmplY3Q6IFBsYWluT2JqZWN0LFxyXG4gIGV4Y2x1ZGVLZXlzID0gPHN0cmluZ1tdPltdLFxyXG4gIGtleUZuID0gKGtleTogc3RyaW5nKTogc3RyaW5nID0+IGtleSxcclxuICB2YWxGbiA9ICh2YWw6IGFueSk6IGFueSA9PiB2YWxcclxuKTogUGxhaW5PYmplY3Qge1xyXG4gIGlmICghaXNPYmplY3Qoc291cmNlT2JqZWN0KSkgeyByZXR1cm4gdGFyZ2V0T2JqZWN0OyB9XHJcbiAgaWYgKCFpc09iamVjdCh0YXJnZXRPYmplY3QpKSB7IHRhcmdldE9iamVjdCA9IHt9OyB9XHJcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlT2JqZWN0KSkge1xyXG4gICAgaWYgKCFpbkFycmF5KGtleSwgZXhjbHVkZUtleXMpICYmIGlzRGVmaW5lZChzb3VyY2VPYmplY3Rba2V5XSkpIHtcclxuICAgICAgdGFyZ2V0T2JqZWN0W2tleUZuKGtleSldID0gdmFsRm4oc291cmNlT2JqZWN0W2tleV0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdGFyZ2V0T2JqZWN0O1xyXG59XHJcblxyXG4vKipcclxuICogJ3VuaXF1ZUl0ZW1zJyBmdW5jdGlvblxyXG4gKlxyXG4gKiBBY2NlcHRzIGFueSBudW1iZXIgb2Ygc3RyaW5nIHZhbHVlIGlucHV0cyxcclxuICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGlucHV0IHZhdWVzLCBleGNsdWRpbmcgZHVwbGljYXRlcy5cclxuICpcclxuICogLy8gey4uLnN0cmluZ30gLi4uaXRlbXMgLVxyXG4gKiAvLyB7c3RyaW5nW119IC1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWVJdGVtcyguLi5pdGVtcyk6IHN0cmluZ1tdIHtcclxuICBjb25zdCByZXR1cm5JdGVtcyA9IFtdO1xyXG4gIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xyXG4gICAgaWYgKCFyZXR1cm5JdGVtcy5pbmNsdWRlcyhpdGVtKSkgeyByZXR1cm5JdGVtcy5wdXNoKGl0ZW0pOyB9XHJcbiAgfVxyXG4gIHJldHVybiByZXR1cm5JdGVtcztcclxufVxyXG5cclxuLyoqXHJcbiAqICdjb21tb25JdGVtcycgZnVuY3Rpb25cclxuICpcclxuICogQWNjZXB0cyBhbnkgbnVtYmVyIG9mIHN0cmluZ3Mgb3IgYXJyYXlzIG9mIHN0cmluZyB2YWx1ZXMsXHJcbiAqIGFuZCByZXR1cm5zIGEgc2luZ2xlIGFycmF5IGNvbnRhaW5pbmcgb25seSB2YWx1ZXMgcHJlc2VudCBpbiBhbGwgaW5wdXRzLlxyXG4gKlxyXG4gKiAvLyB7Li4uc3RyaW5nfHN0cmluZ1tdfSAuLi5hcnJheXMgLVxyXG4gKiAvLyB7c3RyaW5nW119IC1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21tb25JdGVtcyguLi5hcnJheXMpOiBzdHJpbmdbXSB7XHJcbiAgbGV0IHJldHVybkl0ZW1zID0gbnVsbDtcclxuICBmb3IgKGxldCBhcnJheSBvZiBhcnJheXMpIHtcclxuICAgIGlmIChpc1N0cmluZyhhcnJheSkpIHsgYXJyYXkgPSBbYXJyYXldOyB9XHJcbiAgICByZXR1cm5JdGVtcyA9IHJldHVybkl0ZW1zID09PSBudWxsID8gWyAuLi5hcnJheSBdIDpcclxuICAgICAgcmV0dXJuSXRlbXMuZmlsdGVyKGl0ZW0gPT4gYXJyYXkuaW5jbHVkZXMoaXRlbSkpO1xyXG4gICAgaWYgKCFyZXR1cm5JdGVtcy5sZW5ndGgpIHsgcmV0dXJuIFtdOyB9XHJcbiAgfVxyXG4gIHJldHVybiByZXR1cm5JdGVtcztcclxufVxyXG5cclxuLyoqXHJcbiAqICdmaXhUaXRsZScgZnVuY3Rpb25cclxuICpcclxuICpcclxuICogLy8ge3N0cmluZ30gaW5wdXQgLVxyXG4gKiAvLyB7c3RyaW5nfSAtXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZml4VGl0bGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gbmFtZSAmJiB0b1RpdGxlQ2FzZShuYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpLnJlcGxhY2UoL18vZywgJyAnKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAndG9UaXRsZUNhc2UnIGZ1bmN0aW9uXHJcbiAqXHJcbiAqIEludGVsbGlnZW50bHkgY29udmVydHMgYW4gaW5wdXQgc3RyaW5nIHRvIFRpdGxlIENhc2UuXHJcbiAqXHJcbiAqIEFjY2VwdHMgYW4gb3B0aW9uYWwgc2Vjb25kIHBhcmFtZXRlciB3aXRoIGEgbGlzdCBvZiBhZGRpdGlvbmFsXHJcbiAqIHdvcmRzIGFuZCBhYmJyZXZpYXRpb25zIHRvIGZvcmNlIGludG8gYSBwYXJ0aWN1bGFyIGNhc2UuXHJcbiAqXHJcbiAqIFRoaXMgZnVuY3Rpb24gaXMgYnVpbHQgb24gcHJpb3Igd29yayBieSBKb2huIEdydWJlciBhbmQgRGF2aWQgR291Y2g6XHJcbiAqIGh0dHA6Ly9kYXJpbmdmaXJlYmFsbC5uZXQvMjAwOC8wOC90aXRsZV9jYXNlX3VwZGF0ZVxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZ291Y2gvdG8tdGl0bGUtY2FzZVxyXG4gKlxyXG4gKiAvLyB7c3RyaW5nfSBpbnB1dCAtXHJcbiAqIC8vIHtzdHJpbmd8c3RyaW5nW119IGZvcmNlV29yZHM/IC1cclxuICogLy8ge3N0cmluZ30gLVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvVGl0bGVDYXNlKGlucHV0OiBzdHJpbmcsIGZvcmNlV29yZHM/OiBzdHJpbmd8c3RyaW5nW10pOiBzdHJpbmcge1xyXG4gIGlmICghaXNTdHJpbmcoaW5wdXQpKSB7IHJldHVybiBpbnB1dDsgfVxyXG4gIGxldCBmb3JjZUFycmF5OiBzdHJpbmdbXSA9IFsnYScsICdhbicsICdhbmQnLCAnYXMnLCAnYXQnLCAnYnV0JywgJ2J5JywgJ2VuJyxcclxuICAgJ2ZvcicsICdpZicsICdpbicsICdub3InLCAnb2YnLCAnb24nLCAnb3InLCAncGVyJywgJ3RoZScsICd0bycsICd2JywgJ3YuJyxcclxuICAgJ3ZzJywgJ3ZzLicsICd2aWEnXTtcclxuICBpZiAoaXNTdHJpbmcoZm9yY2VXb3JkcykpIHsgZm9yY2VXb3JkcyA9ICg8c3RyaW5nPmZvcmNlV29yZHMpLnNwbGl0KCd8Jyk7IH1cclxuICBpZiAoaXNBcnJheShmb3JjZVdvcmRzKSkgeyBmb3JjZUFycmF5ID0gZm9yY2VBcnJheS5jb25jYXQoZm9yY2VXb3Jkcyk7IH1cclxuICBjb25zdCBmb3JjZUFycmF5TG93ZXI6IHN0cmluZ1tdID0gZm9yY2VBcnJheS5tYXAodyA9PiB3LnRvTG93ZXJDYXNlKCkpO1xyXG4gIGNvbnN0IG5vSW5pdGlhbENhc2U6IGJvb2xlYW4gPVxyXG4gICAgaW5wdXQgPT09IGlucHV0LnRvVXBwZXJDYXNlKCkgfHwgaW5wdXQgPT09IGlucHV0LnRvTG93ZXJDYXNlKCk7XHJcbiAgbGV0IHByZXZMYXN0Q2hhciA9ICcnO1xyXG4gIGlucHV0ID0gaW5wdXQudHJpbSgpO1xyXG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKC9bQS1aYS16MC05XFx1MDBDMC1cXHUwMEZGXStbXlxccy1dKi9nLCAod29yZCwgaWR4KSA9PiB7XHJcbiAgICBpZiAoIW5vSW5pdGlhbENhc2UgJiYgd29yZC5zbGljZSgxKS5zZWFyY2goL1tBLVpdfFxcLi4vKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHdvcmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgbmV3V29yZDogc3RyaW5nO1xyXG4gICAgICBjb25zdCBmb3JjZVdvcmQ6IHN0cmluZyA9XHJcbiAgICAgICAgZm9yY2VBcnJheVtmb3JjZUFycmF5TG93ZXIuaW5kZXhPZih3b3JkLnRvTG93ZXJDYXNlKCkpXTtcclxuICAgICAgaWYgKCFmb3JjZVdvcmQpIHtcclxuICAgICAgICBpZiAobm9Jbml0aWFsQ2FzZSkge1xyXG4gICAgICAgICAgaWYgKHdvcmQuc2xpY2UoMSkuc2VhcmNoKC9cXC4uLykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld1dvcmQgPSB3b3JkLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBuZXdXb3JkID0gd29yZFswXS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdXb3JkID0gd29yZFswXS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgZm9yY2VXb3JkID09PSBmb3JjZVdvcmQudG9Mb3dlckNhc2UoKSAmJiAoXHJcbiAgICAgICAgICBpZHggPT09IDAgfHwgaWR4ICsgd29yZC5sZW5ndGggPT09IGlucHV0Lmxlbmd0aCB8fFxyXG4gICAgICAgICAgcHJldkxhc3RDaGFyID09PSAnOicgfHwgaW5wdXRbaWR4IC0gMV0uc2VhcmNoKC9bXlxccy1dLykgIT09IC0xIHx8XHJcbiAgICAgICAgICAoaW5wdXRbaWR4IC0gMV0gIT09ICctJyAmJiBpbnB1dFtpZHggKyB3b3JkLmxlbmd0aF0gPT09ICctJylcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld1dvcmQgPSBmb3JjZVdvcmRbMF0udG9VcHBlckNhc2UoKSArIGZvcmNlV29yZC5zbGljZSgxKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdXb3JkID0gZm9yY2VXb3JkO1xyXG4gICAgICB9XHJcbiAgICAgIHByZXZMYXN0Q2hhciA9IHdvcmQuc2xpY2UoLTEpO1xyXG4gICAgICByZXR1cm4gbmV3V29yZDtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBSZWN1cnNpdmVseSBjaGVja3MgaWYgYXQgbGVhc3Qgb25lIHByb3BlcnR5IG9mIHRoZSBnaXZlbiBvYmplY3QgKGluY2x1ZGluZyBuZXN0ZWQgb2JqZWN0cylcclxuICogaGFzIGEgbm9uLW51bGwgYW5kIG5vbi11bmRlZmluZWQgdmFsdWUuXHJcbiAqXHJcbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxyXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGhhcyBhIG5vbi1udWxsIGFuZCBub24tdW5kZWZpbmVkIHZhbHVlLCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogY29uc3QgdGVzdE9iaiA9IHsgYTogbnVsbCwgYjogeyBiMTogbnVsbCwgYjI6IHVuZGVmaW5lZCB9IH07XHJcbiAqIGNvbnNvbGUubG9nKGhhc05vbk51bGxWYWx1ZSh0ZXN0T2JqKSk7ICAvLyBPdXRwdXQ6IGZhbHNlXHJcbiAqIFxyXG4gKiBjb25zdCB0ZXN0T2JqMiA9IHsgYTogMSwgYjogeyBiMTogbnVsbCwgYjI6IHVuZGVmaW5lZCB9IH07XHJcbiAqIGNvbnNvbGUubG9nKGhhc05vbk51bGxWYWx1ZSh0ZXN0T2JqMikpOyAgLy8gT3V0cHV0OiB0cnVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzTm9uTnVsbFZhbHVlKG9iajogUmVjb3JkPHN0cmluZywgYW55Pik6IGJvb2xlYW4ge1xyXG4gIC8vIElmIHRoZSBvYmplY3QgaXMgbnVsbCBvciBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UgaW1tZWRpYXRlbHlcclxuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBfLnNvbWUgY2hlY2tzIGlmIGF0IGxlYXN0IG9uZSBlbGVtZW50IHBhc3NlcyB0aGUgZ2l2ZW4gY29uZGl0aW9uLlxyXG4gIHJldHVybiBzb21lKG9iaiwgKHZhbHVlOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCwgcmVjdXJzZSBkZWVwZXIgaW50byB0aGUgb2JqZWN0LlxyXG4gICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gaGFzTm9uTnVsbFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIHZhbHVlIGlzIG5laXRoZXIgbnVsbCBub3IgdW5kZWZpbmVkLlxyXG4gICAgcmV0dXJuICFpc05pbCh2YWx1ZSk7XHJcbiAgfSk7XHJcbn1cclxuIl19
410
+ /**
411
+ * Recursively compares array sizes of nested arrays
412
+ *
413
+ * @param obj1 - The object to check.
414
+ * @param obj2 - The object to check.
415
+ * @returns `false` if at least one nested array size mismatches`.
416
+ *
417
+ * @example
418
+ * const obj1 = { a: ['a','aa'], b:{c:[1,11,11]} };
419
+ * const obj2 = { a: ['ee','dd'], b:{c:[2]} };
420
+ *
421
+ * console.log(compareObjectArraySizes(obj1,obj1)); // Output: false
422
+ * mismatch will be on path b/c
423
+ */
424
+ export function compareObjectArraySizes(obj1, obj2, comparePath = "") {
425
+ if (isArray(obj1) && isArray(obj2)) {
426
+ if (obj1.length != obj2.length) {
427
+ console.log(`size mismatch at ${comparePath}`);
428
+ return false; // immediately return false on mismatch
429
+ }
430
+ else {
431
+ for (let ind = 0; ind < obj1.length; ind++) {
432
+ const item1 = obj1[ind];
433
+ const item2 = obj2[ind];
434
+ const result = compareObjectArraySizes(item1, item2, `${comparePath}/${ind}`);
435
+ if (result === false) {
436
+ return false; // propagate false if mismatch is found
437
+ }
438
+ }
439
+ }
440
+ }
441
+ if (isObject(obj1) && !isArray(obj1)) {
442
+ for (let key in obj1) {
443
+ if (obj2.hasOwnProperty(key)) {
444
+ const result = compareObjectArraySizes(obj1[key], obj2[key], `${comparePath}/${key}`);
445
+ if (result === false) {
446
+ return false; // propagate false if mismatch is found
447
+ }
448
+ }
449
+ }
450
+ }
451
+ return true; // all checks passed
452
+ }
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS5mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3NoYXJlZC91dGlsaXR5LmZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0STs7Ozs7RUFLRTtBQUVGOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsVUFBMkMsRUFDM0MsVUFBMkM7SUFFM0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUFFLE9BQU8sVUFBVSxDQUFDO0tBQUU7SUFDL0MsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFBRSxVQUFVLEdBQUcsRUFBRSxDQUFDO0tBQUU7SUFDN0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMs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LCBzb21lIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgaGFzVmFsdWUsIGluQXJyYXksIGlzQXJyYXksIGlzRGVmaW5lZCwgaXNFbXB0eSwgaXNNYXAsIGlzT2JqZWN0LCBpc1NldCwgaXNTdHJpbmcsIFBsYWluT2JqZWN0IH0gZnJvbSAnLi92YWxpZGF0b3IuZnVuY3Rpb25zJztcclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGxpYnJhcnk6XHJcbiAqXHJcbiAqIGFkZENsYXNzZXMsIGNvcHksIGZvckVhY2gsIGZvckVhY2hDb3B5LCBoYXNPd24sIG1lcmdlRmlsdGVyZWRPYmplY3QsXHJcbiAqIHVuaXF1ZUl0ZW1zLCBjb21tb25JdGVtcywgZml4VGl0bGUsIHRvVGl0bGVDYXNlXHJcbiovXHJcblxyXG4vKipcclxuICogJ2FkZENsYXNzZXMnIGZ1bmN0aW9uXHJcbiAqXHJcbiAqIE1lcmdlcyB0d28gc3BhY2UtZGVsaW1pdGVkIGxpc3RzIG9mIENTUyBjbGFzc2VzIGFuZCByZW1vdmVzIGR1cGxpY2F0ZXMuXHJcbiAqXHJcbiAqIC8vIHtzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+fSBvbGRDbGFzc2VzXHJcbiAqIC8vIHtzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+fSBuZXdDbGFzc2VzXHJcbiAqIC8vIHtzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+fSAtIENvbWJpbmVkIGNsYXNzZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGFzc2VzKFxyXG4gIG9sZENsYXNzZXM6IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz4sXHJcbiAgbmV3Q2xhc3Nlczogc3RyaW5nIHwgc3RyaW5nW10gfCBTZXQ8c3RyaW5nPlxyXG4pOiBzdHJpbmcgfCBzdHJpbmdbXSB8IFNldDxzdHJpbmc+IHtcclxuICBjb25zdCBiYWRUeXBlID0gaSA9PiAhaXNTZXQoaSkgJiYgIWlzQXJyYXkoaSkgJiYgIWlzU3RyaW5nKGkpO1xyXG4gIGlmIChiYWRUeXBlKG5ld0NsYXNzZXMpKSB7IHJldHVybiBvbGRDbGFzc2VzOyB9XHJcbiAgaWYgKGJhZFR5cGUob2xkQ2xhc3NlcykpIHsgb2xkQ2xhc3NlcyA9ICcnOyB9XHJcbiAgY29uc3QgdG9TZXQgPSBpID0+IGlzU2V0KGkpID8gaSA6IGlzQXJyYXkoaSkgPyBuZXcgU2V0KGkpIDogbmV3IFNldChpLnNwbGl0KCcgJykpO1xyXG4gIGNvbnN0IGNvbWJpbmVkU2V0OiBTZXQ8YW55PiA9IHRvU2V0KG9sZENsYXNzZXMpO1xyXG4gIGNvbnN0IG5ld1NldDogU2V0PGFueT4gPSB0b1NldChuZXdDbGFzc2VzKTtcclxuICBuZXdTZXQuZm9yRWFjaChjID0+IGNvbWJpbmVkU2V0LmFkZChjKSk7XHJcbiAgaWYgKGlzU2V0KG9sZENsYXNzZXMpKSB7IHJldHVybiBjb21iaW5lZFNldDsgfVxyXG4gIGlmIChpc0FycmF5KG9sZENsYXNzZXMpKSB7IHJldHVybiBBcnJheS5mcm9tKGNvbWJpbmVkU2V0KTsgfVxyXG4gIHJldHVybiBBcnJheS5mcm9tKGNvbWJpbmVkU2V0KS5qb2luKCcgJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAnY29weScgZnVuY3Rpb25cclxuICpcclxuICogTWFrZXMgYSBzaGFsbG93IGNvcHkgb2YgYSBKYXZhU2NyaXB0IG9iamVjdCwgYXJyYXksIE1hcCwgb3IgU2V0LlxyXG4gKiBJZiBwYXNzZWQgYSBKYXZhU2NyaXB0IHByaW1pdGl2ZSB2YWx1ZSAoc3RyaW5nLCBudW1iZXIsIGJvb2xlYW4sIG9yIG51bGwpLFxyXG4gKiBpdCByZXR1cm5zIHRoZSB2YWx1ZS5cclxuICpcclxuICogLy8ge09iamVjdHxBcnJheXxzdHJpbmd8bnVtYmVyfGJvb2xlYW58bnVsbH0gb2JqZWN0IC0gVGhlIG9iamVjdCB0byBjb3B5XHJcbiAqIC8vIHtib29sZWFuID0gZmFsc2V9IGVycm9ycyAtIFNob3cgZXJyb3JzP1xyXG4gKiAvLyB7T2JqZWN0fEFycmF5fHN0cmluZ3xudW1iZXJ8Ym9vbGVhbnxudWxsfSAtIFRoZSBjb3BpZWQgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY29weShvYmplY3Q6IGFueSwgZXJyb3JzID0gZmFsc2UpOiBhbnkge1xyXG4gIGlmICh0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0JyB8fCBvYmplY3QgPT09IG51bGwpIHsgcmV0dXJuIG9iamVjdDsgfVxyXG4gIGlmIChpc01hcChvYmplY3QpKSAgICB7IHJldHVybiBuZXcgTWFwKG9iamVjdCk7IH1cclxuICBpZiAoaXNTZXQob2JqZWN0KSkgICAgeyByZXR1cm4gbmV3IFNldChvYmplY3QpOyB9XHJcbiAgaWYgKGlzQXJyYXkob2JqZWN0KSkgIHsgcmV0dXJuIFsgLi4ub2JqZWN0IF07ICAgfVxyXG4gIGlmIChpc09iamVjdChvYmplY3QpKSB7IHJldHVybiB7IC4uLm9iamVjdCB9OyAgIH1cclxuICBpZiAoZXJyb3JzKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdjb3B5IGVycm9yOiBPYmplY3QgdG8gY29weSBtdXN0IGJlIGEgSmF2YVNjcmlwdCBvYmplY3Qgb3IgdmFsdWUuJyk7XHJcbiAgfVxyXG4gIHJldHVybiBvYmplY3Q7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAnZm9yRWFjaCcgZnVuY3Rpb25cclxuICpcclxuICogSXRlcmF0ZXMgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGZpcnN0IGxldmVsIG9mIGFuIG9iamVjdCBvciBhcnJheVxyXG4gKiBhbmQgY2FsbHMgYW4gaXRlcmF0b3IgZnVuY2l0b24gb24gZWFjaCBpdGVtLlxyXG4gKlxyXG4gKiBUaGUgaXRlcmF0b3IgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGggZm91ciB2YWx1ZXM6XHJcbiAqIDEuIFRoZSBjdXJyZW50IGl0ZW0ncyB2YWx1ZVxyXG4gKiAyLiBUaGUgY3VycmVudCBpdGVtJ3Mga2V5XHJcbiAqIDMuIFRoZSBwYXJlbnQgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgY3VycmVudCBpdGVtXHJcbiAqIDQuIFRoZSByb290IG9iamVjdFxyXG4gKlxyXG4gKiBTZXR0aW5nIHRoZSBvcHRpb25hbCB0aGlyZCBwYXJhbWV0ZXIgdG8gJ3RvcC1kb3duJyBvciAnYm90dG9tLXVwJyB3aWxsIGNhdXNlXHJcbiAqIGl0IHRvIGFsc28gcmVjdXJzaXZlbHkgaXRlcmF0ZSBvdmVyIGl0ZW1zIGluIHN1Yi1vYmplY3RzIG9yIHN1Yi1hcnJheXMgaW4gdGhlXHJcbiAqIHNwZWNpZmllZCBkaXJlY3Rpb24uXHJcbiAqXHJcbiAqIC8vIHtPYmplY3R8QXJyYXl9IG9iamVjdCAtIFRoZSBvYmplY3Qgb3IgYXJyYXkgdG8gaXRlcmF0ZSBvdmVyXHJcbiAqIC8vIHtmdW5jdGlvbn0gZm4gLSB0aGUgaXRlcmF0b3IgZnVuY2l0b24gdG8gY2FsbCBvbiBlYWNoIGl0ZW1cclxuICogLy8ge2Jvb2xlYW4gPSBmYWxzZX0gZXJyb3JzIC0gU2hvdyBlcnJvcnM/XHJcbiAqIC8vIHt2b2lkfVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goXHJcbiAgb2JqZWN0OiBhbnksIGZuOiAodjogYW55LCBrPzogc3RyaW5nIHwgbnVtYmVyLCBjPzogYW55LCByYz86IGFueSkgPT4gYW55LFxyXG4gIHJlY3Vyc2U6IGJvb2xlYW4gfCBzdHJpbmcgPSBmYWxzZSwgcm9vdE9iamVjdDogYW55ID0gb2JqZWN0LCBlcnJvcnMgPSBmYWxzZVxyXG4pOiB2b2lkIHtcclxuICBpZiAoaXNFbXB0eShvYmplY3QpKSB7IHJldHVybjsgfVxyXG4gIGlmICgoaXNPYmplY3Qob2JqZWN0KSB8fCBpc0FycmF5KG9iamVjdCkpICYmIHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtrZXldO1xyXG4gICAgICBpZiAocmVjdXJzZSA9PT0gJ2JvdHRvbS11cCcgJiYgKGlzT2JqZWN0KHZhbHVlKSB8fCBpc0FycmF5KHZhbHVlKSkpIHtcclxuICAgICAgICBmb3JFYWNoKHZhbHVlLCBmbiwgcmVjdXJzZSwgcm9vdE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgICAgZm4odmFsdWUsIGtleSwgb2JqZWN0LCByb290T2JqZWN0KTtcclxuICAgICAgaWYgKHJlY3Vyc2UgPT09ICd0b3AtZG93bicgJiYgKGlzT2JqZWN0KHZhbHVlKSB8fCBpc0FycmF5KHZhbHVlKSkpIHtcclxuICAgICAgICBmb3JFYWNoKHZhbHVlLCBmbiwgcmVjdXJzZSwgcm9vdE9iamVjdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgaWYgKGVycm9ycykge1xyXG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdmb3JFYWNoIGVycm9yOiBJdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z1bmN0aW9uJywgZm4pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc09iamVjdChvYmplY3QpICYmICFpc0FycmF5KG9iamVjdCkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignZm9yRWFjaCBlcnJvcjogSW5wdXQgb2JqZWN0IG11c3QgYmUgYW4gb2JqZWN0IG9yIGFycmF5LicpO1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdvYmplY3QnLCBvYmplY3QpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqICdmb3JFYWNoQ29weScgZnVuY3Rpb25cclxuICpcclxuICogSXRlcmF0ZXMgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGZpcnN0IGxldmVsIG9mIGFuIG9iamVjdCBvciBhcnJheVxyXG4gKiBhbmQgY2FsbHMgYW4gaXRlcmF0b3IgZnVuY3Rpb24gb24gZWFjaCBpdGVtLiBSZXR1cm5zIGEgbmV3IG9iamVjdCBvciBhcnJheVxyXG4gKiB3aXRoIHRoZSBzYW1lIGtleXMgb3IgaW5kZXhlcyBhcyB0aGUgb3JpZ2luYWwsIGFuZCB2YWx1ZXMgc2V0IHRvIHRoZSByZXN1bHRzXHJcbiAqIG9mIHRoZSBpdGVyYXRvciBmdW5jdGlvbi5cclxuICpcclxuICogRG9lcyBOT1QgcmVjdXJzaXZlbHkgaXRlcmF0ZSBvdmVyIGl0ZW1zIGluIHN1Yi1vYmplY3RzIG9yIHN1Yi1hcnJheXMuXHJcbiAqXHJcbiAqIC8vIHtPYmplY3QgfCBBcnJheX0gb2JqZWN0IC0gVGhlIG9iamVjdCBvciBhcnJheSB0byBpdGVyYXRlIG92ZXJcclxuICogLy8ge2Z1bmN0aW9ufSBmbiAtIFRoZSBpdGVyYXRvciBmdW5jaXRvbiB0byBjYWxsIG9uIGVhY2ggaXRlbVxyXG4gKiAvLyB7Ym9vbGVhbiA9IGZhbHNlfSBlcnJvcnMgLSBTaG93IGVycm9ycz9cclxuICogLy8ge09iamVjdCB8IEFycmF5fSAtIFRoZSByZXN1bHRpbmcgb2JqZWN0IG9yIGFycmF5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaENvcHkoXHJcbiAgb2JqZWN0OiBhbnksIGZuOiAodjogYW55LCBrPzogc3RyaW5nIHwgbnVtYmVyLCBvPzogYW55LCBwPzogc3RyaW5nKSA9PiBhbnksXHJcbiAgZXJyb3JzID0gZmFsc2VcclxuKTogYW55IHtcclxuICBpZiAoIWhhc1ZhbHVlKG9iamVjdCkpIHsgcmV0dXJuOyB9XHJcbiAgaWYgKChpc09iamVjdChvYmplY3QpIHx8IGlzQXJyYXkob2JqZWN0KSkgJiYgdHlwZW9mIG9iamVjdCAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgY29uc3QgbmV3T2JqZWN0OiBhbnkgPSBpc0FycmF5KG9iamVjdCkgPyBbXSA6IHt9O1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMob2JqZWN0KSkge1xyXG4gICAgICBuZXdPYmplY3Rba2V5XSA9IGZuKG9iamVjdFtrZXldLCBrZXksIG9iamVjdCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3T2JqZWN0O1xyXG4gIH1cclxuICBpZiAoZXJyb3JzKSB7XHJcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2ZvckVhY2hDb3B5IGVycm9yOiBJdGVyYXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2Z1bmN0aW9uJywgZm4pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc09iamVjdChvYmplY3QpICYmICFpc0FycmF5KG9iamVjdCkpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignZm9yRWFjaENvcHkgZXJyb3I6IElucHV0IG9iamVjdCBtdXN0IGJlIGFuIG9iamVjdCBvciBhcnJheS4nKTtcclxuICAgICAgY29uc29sZS5lcnJvcignb2JqZWN0Jywgb2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAnaGFzT3duJyB1dGlsaXR5IGZ1bmN0aW9uXHJcbiAqXHJcbiAqIENoZWNrcyB3aGV0aGVyIGFuIG9iamVjdCBvciBhcnJheSBoYXMgYSBwYXJ0aWN1bGFyIHByb3BlcnR5LlxyXG4gKlxyXG4gKiAvLyB7YW55fSBvYmplY3QgLSB0aGUgb2JqZWN0IHRvIGNoZWNrXHJcbiAqIC8vIHtzdHJpbmd9IHByb3BlcnR5IC0gdGhlIHByb3BlcnR5IHRvIGxvb2sgZm9yXHJcbiAqIC8vIHtib29sZWFufSAtIHRydWUgaWYgb2JqZWN0IGhhcyBwcm9wZXJ0eSwgZmFsc2UgaWYgbm90XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzT3duKG9iamVjdDogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgaWYgKCFvYmplY3QgfHwgIVsnbnVtYmVyJywgJ3N0cmluZycsICdzeW1ib2wnXS5pbmNsdWRlcyh0eXBlb2YgcHJvcGVydHkpIHx8XHJcbiAgICAoIWlzT2JqZWN0KG9iamVjdCkgJiYgIWlzQXJyYXkob2JqZWN0KSAmJiAhaXNNYXAob2JqZWN0KSAmJiAhaXNTZXQob2JqZWN0KSlcclxuICApIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgaWYgKGlzTWFwKG9iamVjdCkgfHwgaXNTZXQob2JqZWN0KSkgeyByZXR1cm4gb2JqZWN0Lmhhcyhwcm9wZXJ0eSk7IH1cclxuICBpZiAodHlwZW9mIHByb3BlcnR5ID09PSAnbnVtYmVyJykge1xyXG4gICAgaWYgKGlzQXJyYXkob2JqZWN0KSkgeyByZXR1cm4gb2JqZWN0WzxudW1iZXI+cHJvcGVydHldOyB9XHJcbiAgICBwcm9wZXJ0eSA9IHByb3BlcnR5ICsgJyc7XHJcbiAgfVxyXG4gIHJldHVybiBvYmplY3QuaGFzT3duUHJvcGVydHkocHJvcGVydHkpO1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgcG9zc2libGUgZXhwcmVzc2lvbnMgd2hpY2ggdGhlIGFwcCBpcyBhYmxlIHRvIGV2YWx1YXRlLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRXhwcmVzc2lvblR5cGUge1xyXG4gIEVRVUFMUyxcclxuICBOT1RfRVFVQUxTLFxyXG4gIE5PVF9BTl9FWFBSRVNTSU9OXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZXRlY3RzIHRoZSB0eXBlIG9mIGV4cHJlc3Npb24gZnJvbSB0aGUgZ2l2ZW4gY2FuZGlkYXRlLiBgPT1gIGZvciBlcXVhbHMsXHJcbiAqIGAhPWAgZm9yIG5vdCBlcXVhbHMuIElmIG5vbmUgb2YgdGhlc2UgYXJlIGNvbnRhaW5lZCBpbiB0aGUgY2FuZGlkYXRlLCB0aGUgY2FuZGlkYXRlXHJcbiAqIGlzIG5vdCBjb25zaWRlcmVkIHRvIGJlIGFuIGV4cHJlc3Npb24gYXQgYWxsIGFuZCB0aHVzIGBOT1RfQU5fRVhQUkVTU0lPTmAgaXMgcmV0dXJuZWQuXHJcbiAqIC8vIHtleHByZXNzaW9uQ2FuZGlkYXRlfSBleHByZXNzaW9uQ2FuZGlkYXRlIC0gcG90ZW50aWFsIGV4cHJlc3Npb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFeHByZXNzaW9uVHlwZShleHByZXNzaW9uQ2FuZGlkYXRlOiBzdHJpbmcpOiBFeHByZXNzaW9uVHlwZSB7XHJcbiAgaWYgKGV4cHJlc3Npb25DYW5kaWRhdGUuaW5kZXhPZignPT0nKSAhPT0gLTEpIHtcclxuICAgIHJldHVybiBFeHByZXNzaW9uVHlwZS5FUVVBTFM7XHJcbiAgfVxyXG5cclxuICBpZiAoZXhwcmVzc2lvbkNhbmRpZGF0ZS50b1N0cmluZygpLmluZGV4T2YoJyE9JykgIT09IC0xKSB7XHJcbiAgICByZXR1cm4gRXhwcmVzc2lvblR5cGUuTk9UX0VRVUFMUztcclxuICB9XHJcblxyXG4gIHJldHVybiBFeHByZXNzaW9uVHlwZS5OT1RfQU5fRVhQUkVTU0lPTjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXF1YWwoZXhwcmVzc2lvblR5cGUpIHtcclxuICByZXR1cm4gZXhwcmVzc2lvblR5cGUgYXMgRXhwcmVzc2lvblR5cGUgPT09IEV4cHJlc3Npb25UeXBlLkVRVUFMUztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTm90RXF1YWwoZXhwcmVzc2lvblR5cGUpIHtcclxuICByZXR1cm4gZXhwcmVzc2lvblR5cGUgYXMgRXhwcmVzc2lvblR5cGUgPT09IEV4cHJlc3Npb25UeXBlLk5PVF9FUVVBTFM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc05vdEV4cHJlc3Npb24oZXhwcmVzc2lvblR5cGUpIHtcclxuICByZXR1cm4gZXhwcmVzc2lvblR5cGUgYXMgRXhwcmVzc2lvblR5cGUgPT09IEV4cHJlc3Npb25UeXBlLk5PVF9BTl9FWFBSRVNTSU9OO1xyXG59XHJcblxyXG4vKipcclxuICogU3BsaXRzIHRoZSBleHByZXNzaW9uIGtleSBieSB0aGUgZXhwcmVzc2lvblR5cGUgb24gYSBwYWlyIG9mIHZhbHVlc1xyXG4gKiBiZWZvcmUgYW5kIGFmdGVyIHRoZSBlcXVhbHMgb3Igbm9yIGVxdWFscyBzaWduLlxyXG4gKiAvLyB7ZXhwcmVzc2lvblR5cGV9IGVudW0gb2YgYW4gZXhwcmVzc2lvbiB0eXBlXHJcbiAqIC8vIHtrZXl9IHRoZSBnaXZlbiBrZXkgZnJvbSBhIGZvciBsb29wIGl2ZXIgYWxsIGNvbmRpdGlvbnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlBbmRWYWx1ZUJ5RXhwcmVzc2lvblR5cGUoZXhwcmVzc2lvblR5cGU6IEV4cHJlc3Npb25UeXBlLCBrZXk6IHN0cmluZykge1xyXG4gIGlmIChpc0VxdWFsKGV4cHJlc3Npb25UeXBlKSkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdCgnPT0nLCAyKTtcclxuICB9XHJcblxyXG4gIGlmIChpc05vdEVxdWFsKGV4cHJlc3Npb25UeXBlKSkge1xyXG4gICAgcmV0dXJuIGtleS5zcGxpdCgnIT0nLCAyKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5WYWx1ZU9mUXVvdGVzKGtleUFuZFZhbHVlKTogU3RyaW5nIHtcclxuICBpZiAoa2V5QW5kVmFsdWUuY2hhckF0KDApID09PSAnXFwnJyAmJiBrZXlBbmRWYWx1ZS5jaGFyQXQoa2V5QW5kVmFsdWUubGVuZ3RoIC0gMSkgPT09ICdcXCcnKSB7XHJcbiAgICByZXR1cm4ga2V5QW5kVmFsdWUucmVwbGFjZSgnXFwnJywgJycpLnJlcGxhY2UoJ1xcJycsICcnKTtcclxuICB9XHJcbiAgcmV0dXJuIGtleUFuZFZhbHVlO1xyXG59XHJcblxyXG4vKipcclxuICogJ21lcmdlRmlsdGVyZWRPYmplY3QnIHV0aWxpdHkgZnVuY3Rpb25cclxuICpcclxuICogU2hhbGxvd2x5IG1lcmdlcyB0d28gb2JqZWN0cywgc2V0dGluZyBrZXkgYW5kIHZhbHVlcyBmcm9tIHNvdXJjZSBvYmplY3RcclxuICogaW4gdGFyZ2V0IG9iamVjdCwgZXhjbHVkaW5nIHNwZWNpZmllZCBrZXlzLlxyXG4gKlxyXG4gKiBPcHRpb25hbGx5LCBpdCBjYW4gYWxzbyB1c2UgZnVuY3Rpb25zIHRvIHRyYW5zZm9ybSB0aGUga2V5IG5hbWVzIGFuZC9vclxyXG4gKiB0aGUgdmFsdWVzIG9mIHRoZSBtZXJnaW5nIG9iamVjdC5cclxuICpcclxuICogLy8ge1BsYWluT2JqZWN0fSB0YXJnZXRPYmplY3QgLSBUYXJnZXQgb2JqZWN0IHRvIGFkZCBrZXlzIGFuZCB2YWx1ZXMgdG9cclxuICogLy8ge1BsYWluT2JqZWN0fSBzb3VyY2VPYmplY3QgLSBTb3VyY2Ugb2JqZWN0IHRvIGNvcHkga2V5cyBhbmQgdmFsdWVzIGZyb21cclxuICogLy8ge3N0cmluZ1tdfSBleGNsdWRlS2V5cyAtIEFycmF5IG9mIGtleXMgdG8gZXhjbHVkZVxyXG4gKiAvLyB7KHN0cmluZzogc3RyaW5nKSA9PiBzdHJpbmcgPSAoaykgPT4ga30ga2V5Rm4gLSBGdW5jdGlvbiB0byBhcHBseSB0byBrZXlzXHJcbiAqIC8vIHsoYW55OiBhbnkpID0+IGFueSA9ICh2KSA9PiB2fSB2YWx1ZUZuIC0gRnVuY3Rpb24gdG8gYXBwbHkgdG8gdmFsdWVzXHJcbiAqIC8vIHtQbGFpbk9iamVjdH0gLSBSZXR1cm5zIHRhcmdldE9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRmlsdGVyZWRPYmplY3QoXHJcbiAgdGFyZ2V0T2JqZWN0OiBQbGFpbk9iamVjdCxcclxuICBzb3VyY2VPYmplY3Q6IFBsYWluT2JqZWN0LFxyXG4gIGV4Y2x1ZGVLZXlzID0gPHN0cmluZ1tdPltdLFxyXG4gIGtleUZuID0gKGtleTogc3RyaW5nKTogc3RyaW5nID0+IGtleSxcclxuICB2YWxGbiA9ICh2YWw6IGFueSk6IGFueSA9PiB2YWxcclxuKTogUGxhaW5PYmplY3Qge1xyXG4gIGlmICghaXNPYmplY3Qoc291cmNlT2JqZWN0KSkgeyByZXR1cm4gdGFyZ2V0T2JqZWN0OyB9XHJcbiAgaWYgKCFpc09iamVjdCh0YXJnZXRPYmplY3QpKSB7IHRhcmdldE9iamVjdCA9IHt9OyB9XHJcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoc291cmNlT2JqZWN0KSkge1xyXG4gICAgaWYgKCFpbkFycmF5KGtleSwgZXhjbHVkZUtleXMpICYmIGlzRGVmaW5lZChzb3VyY2VPYmplY3Rba2V5XSkpIHtcclxuICAgICAgdGFyZ2V0T2JqZWN0W2tleUZuKGtleSldID0gdmFsRm4oc291cmNlT2JqZWN0W2tleV0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdGFyZ2V0T2JqZWN0O1xyXG59XHJcblxyXG4vKipcclxuICogJ3VuaXF1ZUl0ZW1zJyBmdW5jdGlvblxyXG4gKlxyXG4gKiBBY2NlcHRzIGFueSBudW1iZXIgb2Ygc3RyaW5nIHZhbHVlIGlucHV0cyxcclxuICogYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGlucHV0IHZhdWVzLCBleGNsdWRpbmcgZHVwbGljYXRlcy5cclxuICpcclxuICogLy8gey4uLnN0cmluZ30gLi4uaXRlbXMgLVxyXG4gKiAvLyB7c3RyaW5nW119IC1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmlxdWVJdGVtcyguLi5pdGVtcyk6IHN0cmluZ1tdIHtcclxuICBjb25zdCByZXR1cm5JdGVtcyA9IFtdO1xyXG4gIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xyXG4gICAgaWYgKCFyZXR1cm5JdGVtcy5pbmNsdWRlcyhpdGVtKSkgeyByZXR1cm5JdGVtcy5wdXNoKGl0ZW0pOyB9XHJcbiAgfVxyXG4gIHJldHVybiByZXR1cm5JdGVtcztcclxufVxyXG5cclxuLyoqXHJcbiAqICdjb21tb25JdGVtcycgZnVuY3Rpb25cclxuICpcclxuICogQWNjZXB0cyBhbnkgbnVtYmVyIG9mIHN0cmluZ3Mgb3IgYXJyYXlzIG9mIHN0cmluZyB2YWx1ZXMsXHJcbiAqIGFuZCByZXR1cm5zIGEgc2luZ2xlIGFycmF5IGNvbnRhaW5pbmcgb25seSB2YWx1ZXMgcHJlc2VudCBpbiBhbGwgaW5wdXRzLlxyXG4gKlxyXG4gKiAvLyB7Li4uc3RyaW5nfHN0cmluZ1tdfSAuLi5hcnJheXMgLVxyXG4gKiAvLyB7c3RyaW5nW119IC1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21tb25JdGVtcyguLi5hcnJheXMpOiBzdHJpbmdbXSB7XHJcbiAgbGV0IHJldHVybkl0ZW1zID0gbnVsbDtcclxuICBmb3IgKGxldCBhcnJheSBvZiBhcnJheXMpIHtcclxuICAgIGlmIChpc1N0cmluZyhhcnJheSkpIHsgYXJyYXkgPSBbYXJyYXldOyB9XHJcbiAgICByZXR1cm5JdGVtcyA9IHJldHVybkl0ZW1zID09PSBudWxsID8gWyAuLi5hcnJheSBdIDpcclxuICAgICAgcmV0dXJuSXRlbXMuZmlsdGVyKGl0ZW0gPT4gYXJyYXkuaW5jbHVkZXMoaXRlbSkpO1xyXG4gICAgaWYgKCFyZXR1cm5JdGVtcy5sZW5ndGgpIHsgcmV0dXJuIFtdOyB9XHJcbiAgfVxyXG4gIHJldHVybiByZXR1cm5JdGVtcztcclxufVxyXG5cclxuLyoqXHJcbiAqICdmaXhUaXRsZScgZnVuY3Rpb25cclxuICpcclxuICpcclxuICogLy8ge3N0cmluZ30gaW5wdXQgLVxyXG4gKiAvLyB7c3RyaW5nfSAtXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZml4VGl0bGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gbmFtZSAmJiB0b1RpdGxlQ2FzZShuYW1lLnJlcGxhY2UoLyhbYS16XSkoW0EtWl0pL2csICckMSAkMicpLnJlcGxhY2UoL18vZywgJyAnKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAndG9UaXRsZUNhc2UnIGZ1bmN0aW9uXHJcbiAqXHJcbiAqIEludGVsbGlnZW50bHkgY29udmVydHMgYW4gaW5wdXQgc3RyaW5nIHRvIFRpdGxlIENhc2UuXHJcbiAqXHJcbiAqIEFjY2VwdHMgYW4gb3B0aW9uYWwgc2Vjb25kIHBhcmFtZXRlciB3aXRoIGEgbGlzdCBvZiBhZGRpdGlvbmFsXHJcbiAqIHdvcmRzIGFuZCBhYmJyZXZpYXRpb25zIHRvIGZvcmNlIGludG8gYSBwYXJ0aWN1bGFyIGNhc2UuXHJcbiAqXHJcbiAqIFRoaXMgZnVuY3Rpb24gaXMgYnVpbHQgb24gcHJpb3Igd29yayBieSBKb2huIEdydWJlciBhbmQgRGF2aWQgR291Y2g6XHJcbiAqIGh0dHA6Ly9kYXJpbmdmaXJlYmFsbC5uZXQvMjAwOC8wOC90aXRsZV9jYXNlX3VwZGF0ZVxyXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZ291Y2gvdG8tdGl0bGUtY2FzZVxyXG4gKlxyXG4gKiAvLyB7c3RyaW5nfSBpbnB1dCAtXHJcbiAqIC8vIHtzdHJpbmd8c3RyaW5nW119IGZvcmNlV29yZHM/IC1cclxuICogLy8ge3N0cmluZ30gLVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvVGl0bGVDYXNlKGlucHV0OiBzdHJpbmcsIGZvcmNlV29yZHM/OiBzdHJpbmd8c3RyaW5nW10pOiBzdHJpbmcge1xyXG4gIGlmICghaXNTdHJpbmcoaW5wdXQpKSB7IHJldHVybiBpbnB1dDsgfVxyXG4gIGxldCBmb3JjZUFycmF5OiBzdHJpbmdbXSA9IFsnYScsICdhbicsICdhbmQnLCAnYXMnLCAnYXQnLCAnYnV0JywgJ2J5JywgJ2VuJyxcclxuICAgJ2ZvcicsICdpZicsICdpbicsICdub3InLCAnb2YnLCAnb24nLCAnb3InLCAncGVyJywgJ3RoZScsICd0bycsICd2JywgJ3YuJyxcclxuICAgJ3ZzJywgJ3ZzLicsICd2aWEnXTtcclxuICBpZiAoaXNTdHJpbmcoZm9yY2VXb3JkcykpIHsgZm9yY2VXb3JkcyA9ICg8c3RyaW5nPmZvcmNlV29yZHMpLnNwbGl0KCd8Jyk7IH1cclxuICBpZiAoaXNBcnJheShmb3JjZVdvcmRzKSkgeyBmb3JjZUFycmF5ID0gZm9yY2VBcnJheS5jb25jYXQoZm9yY2VXb3Jkcyk7IH1cclxuICBjb25zdCBmb3JjZUFycmF5TG93ZXI6IHN0cmluZ1tdID0gZm9yY2VBcnJheS5tYXAodyA9PiB3LnRvTG93ZXJDYXNlKCkpO1xyXG4gIGNvbnN0IG5vSW5pdGlhbENhc2U6IGJvb2xlYW4gPVxyXG4gICAgaW5wdXQgPT09IGlucHV0LnRvVXBwZXJDYXNlKCkgfHwgaW5wdXQgPT09IGlucHV0LnRvTG93ZXJDYXNlKCk7XHJcbiAgbGV0IHByZXZMYXN0Q2hhciA9ICcnO1xyXG4gIGlucHV0ID0gaW5wdXQudHJpbSgpO1xyXG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKC9bQS1aYS16MC05XFx1MDBDMC1cXHUwMEZGXStbXlxccy1dKi9nLCAod29yZCwgaWR4KSA9PiB7XHJcbiAgICBpZiAoIW5vSW5pdGlhbENhc2UgJiYgd29yZC5zbGljZSgxKS5zZWFyY2goL1tBLVpdfFxcLi4vKSAhPT0gLTEpIHtcclxuICAgICAgcmV0dXJuIHdvcmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgbmV3V29yZDogc3RyaW5nO1xyXG4gICAgICBjb25zdCBmb3JjZVdvcmQ6IHN0cmluZyA9XHJcbiAgICAgICAgZm9yY2VBcnJheVtmb3JjZUFycmF5TG93ZXIuaW5kZXhPZih3b3JkLnRvTG93ZXJDYXNlKCkpXTtcclxuICAgICAgaWYgKCFmb3JjZVdvcmQpIHtcclxuICAgICAgICBpZiAobm9Jbml0aWFsQ2FzZSkge1xyXG4gICAgICAgICAgaWYgKHdvcmQuc2xpY2UoMSkuc2VhcmNoKC9cXC4uLykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld1dvcmQgPSB3b3JkLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBuZXdXb3JkID0gd29yZFswXS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdXb3JkID0gd29yZFswXS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgZm9yY2VXb3JkID09PSBmb3JjZVdvcmQudG9Mb3dlckNhc2UoKSAmJiAoXHJcbiAgICAgICAgICBpZHggPT09IDAgfHwgaWR4ICsgd29yZC5sZW5ndGggPT09IGlucHV0Lmxlbmd0aCB8fFxyXG4gICAgICAgICAgcHJldkxhc3RDaGFyID09PSAnOicgfHwgaW5wdXRbaWR4IC0gMV0uc2VhcmNoKC9bXlxccy1dLykgIT09IC0xIHx8XHJcbiAgICAgICAgICAoaW5wdXRbaWR4IC0gMV0gIT09ICctJyAmJiBpbnB1dFtpZHggKyB3b3JkLmxlbmd0aF0gPT09ICctJylcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld1dvcmQgPSBmb3JjZVdvcmRbMF0udG9VcHBlckNhc2UoKSArIGZvcmNlV29yZC5zbGljZSgxKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdXb3JkID0gZm9yY2VXb3JkO1xyXG4gICAgICB9XHJcbiAgICAgIHByZXZMYXN0Q2hhciA9IHdvcmQuc2xpY2UoLTEpO1xyXG4gICAgICByZXR1cm4gbmV3V29yZDtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBSZWN1cnNpdmVseSBjaGVja3MgaWYgYXQgbGVhc3Qgb25lIHByb3BlcnR5IG9mIHRoZSBnaXZlbiBvYmplY3QgKGluY2x1ZGluZyBuZXN0ZWQgb2JqZWN0cylcclxuICogaGFzIGEgbm9uLW51bGwgYW5kIG5vbi11bmRlZmluZWQgdmFsdWUuXHJcbiAqXHJcbiAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxyXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGhhcyBhIG5vbi1udWxsIGFuZCBub24tdW5kZWZpbmVkIHZhbHVlLCBvdGhlcndpc2UgYGZhbHNlYC5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogY29uc3QgdGVzdE9iaiA9IHsgYTogbnVsbCwgYjogeyBiMTogbnVsbCwgYjI6IHVuZGVmaW5lZCB9IH07XHJcbiAqIGNvbnNvbGUubG9nKGhhc05vbk51bGxWYWx1ZSh0ZXN0T2JqKSk7ICAvLyBPdXRwdXQ6IGZhbHNlXHJcbiAqIFxyXG4gKiBjb25zdCB0ZXN0T2JqMiA9IHsgYTogMSwgYjogeyBiMTogbnVsbCwgYjI6IHVuZGVmaW5lZCB9IH07XHJcbiAqIGNvbnNvbGUubG9nKGhhc05vbk51bGxWYWx1ZSh0ZXN0T2JqMikpOyAgLy8gT3V0cHV0OiB0cnVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGFzTm9uTnVsbFZhbHVlKG9iajogUmVjb3JkPHN0cmluZywgYW55Pik6IGJvb2xlYW4ge1xyXG4gIC8vIElmIHRoZSBvYmplY3QgaXMgbnVsbCBvciBub3QgYW4gb2JqZWN0LCByZXR1cm4gZmFsc2UgaW1tZWRpYXRlbHlcclxuICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBfLnNvbWUgY2hlY2tzIGlmIGF0IGxlYXN0IG9uZSBlbGVtZW50IHBhc3NlcyB0aGUgZ2l2ZW4gY29uZGl0aW9uLlxyXG4gIHJldHVybiBzb21lKG9iaiwgKHZhbHVlOiBhbnkpOiBib29sZWFuID0+IHtcclxuICAgIC8vIElmIHZhbHVlIGlzIGFuIG9iamVjdCwgcmVjdXJzZSBkZWVwZXIgaW50byB0aGUgb2JqZWN0LlxyXG4gICAgaWYgKGlzT2JqZWN0KHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gaGFzTm9uTnVsbFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIC8vIENoZWNrIGlmIHZhbHVlIGlzIG5laXRoZXIgbnVsbCBub3IgdW5kZWZpbmVkLlxyXG4gICAgcmV0dXJuICFpc05pbCh2YWx1ZSk7XHJcbiAgfSk7XHJcbn1cclxuLyoqXHJcbiAqIFJlY3Vyc2l2ZWx5IGNvbXBhcmVzIGFycmF5IHNpemVzIG9mIG5lc3RlZCBhcnJheXNcclxuICpcclxuICogQHBhcmFtIG9iajEgLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxyXG4gKiBAcGFyYW0gb2JqMiAtIFRoZSBvYmplY3QgdG8gY2hlY2suXHJcbiAqIEByZXR1cm5zIGBmYWxzZWAgaWYgYXQgbGVhc3Qgb25lIG5lc3RlZCBhcnJheSBzaXplIG1pc21hdGNoZXNgLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBjb25zdCBvYmoxID0geyBhOiBbJ2EnLCdhYSddLCBiOntjOlsxLDExLDExXX0gfTtcclxuICogY29uc3Qgb2JqMiA9IHsgYTogWydlZScsJ2RkJ10sIGI6e2M6WzJdfSB9O1xyXG4gKiBcclxuICogY29uc29sZS5sb2coY29tcGFyZU9iamVjdEFycmF5U2l6ZXMob2JqMSxvYmoxKSk7ICAvLyBPdXRwdXQ6IGZhbHNlXHJcbiAqIG1pc21hdGNoIHdpbGwgYmUgb24gcGF0aCBiL2NcclxuICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGNvbXBhcmVPYmplY3RBcnJheVNpemVzKG9iajE6IGFueSwgb2JqMjogYW55LCBjb21wYXJlUGF0aCA9IFwiXCIpIHtcclxuICAgIGlmIChpc0FycmF5KG9iajEpICYmIGlzQXJyYXkob2JqMikpIHtcclxuICAgICAgaWYgKG9iajEubGVuZ3RoICE9IG9iajIubGVuZ3RoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coYHNpemUgbWlzbWF0Y2ggYXQgJHtjb21wYXJlUGF0aH1gICk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBpbW1lZGlhdGVseSByZXR1cm4gZmFsc2Ugb24gbWlzbWF0Y2hcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCBvYmoxLmxlbmd0aDsgaW5kKyspIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW0xID0gb2JqMVtpbmRdO1xyXG4gICAgICAgICAgY29uc3QgaXRlbTIgPSBvYmoyW2luZF07XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBjb21wYXJlT2JqZWN0QXJyYXlTaXplcyhpdGVtMSwgaXRlbTIsIGAke2NvbXBhcmVQYXRofS8ke2luZH1gKTtcclxuICAgICAgICAgIGlmIChyZXN1bHQgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gcHJvcGFnYXRlIGZhbHNlIGlmIG1pc21hdGNoIGlzIGZvdW5kXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgXHJcbiAgICBpZiAoaXNPYmplY3Qob2JqMSkgJiYgIWlzQXJyYXkob2JqMSkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIG9iajEpIHtcclxuICAgICAgICBpZiAob2JqMi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBjb21wYXJlT2JqZWN0QXJyYXlTaXplcyhvYmoxW2tleV0sIG9iajJba2V5XSwgYCR7Y29tcGFyZVBhdGh9LyR7a2V5fWApO1xyXG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBwcm9wYWdhdGUgZmFsc2UgaWYgbWlzbWF0Y2ggaXMgZm91bmRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICBcclxuICAgIHJldHVybiB0cnVlOyAvLyBhbGwgY2hlY2tzIHBhc3NlZFxyXG4gIH1cclxuICBcclxuXHJcblxyXG5cclxuIl19
@@ -27,8 +27,8 @@ export class AddReferenceComponent {
27
27
  layoutIndex: this.layoutIndex().slice(0, -1),
28
28
  layoutNode: this.jsf.getParentNode(this)
29
29
  };
30
- return parent.layoutNode.add ||
31
- this.jsf.setArrayItemTitle(parent, this.layoutNode(), this.itemCount);
30
+ return parent.layoutNode && (parent.layoutNode.add ||
31
+ this.jsf.setArrayItemTitle(parent, this.layoutNode(), this.itemCount));
32
32
  }
33
33
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AddReferenceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
34
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: AddReferenceComponent, selector: "add-reference-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
66
66
  changeDetection: ChangeDetectionStrategy.Default,
67
67
  }]
68
68
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlZmVyZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L2FkZC1yZWZlcmVuY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQXFCcEUsTUFBTSxPQUFPLHFCQUFxQjtJQWxCbEM7UUFtQlUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBTW5DLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQTBCakQ7SUF2QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUztZQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUM5RSxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUs7UUFDWCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE1BQU0sTUFBTSxHQUFRO1lBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUN6QyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUc7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRSxDQUFDOytHQWxDVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw2ZEFmcEI7Ozs7Ozs7Ozs7OztlQVlDOzs0RkFHRixxQkFBcUI7a0JBbEJqQyxTQUFTO21CQUFDO29CQUNQLDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7ZUFZQztvQkFDWCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiAnYWRkLXJlZmVyZW5jZS13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxzZWN0aW9uIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIiBhbGlnbj1cImVuZFwiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0FkZEJ1dHRvblwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9ucz8ucmVhZG9ubHlcIlxyXG4gICAgICAgIChjbGljayk9XCJhZGRJdGVtKCRldmVudClcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy5pY29uXCIgW2NsYXNzXT1cIm9wdGlvbnM/Lmljb25cIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy50aXRsZVwiIFtpbm5lckhUTUxdPVwiYnV0dG9uVGV4dFwiPjwvc3Bhbj5cclxuICAgICAgICBcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L3NlY3Rpb24+YCxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGl0ZW1Db3VudDogbnVtYmVyO1xyXG4gIHByZXZpb3VzTGF5b3V0SW5kZXg6IG51bWJlcltdO1xyXG4gIHByZXZpb3VzRGF0YUluZGV4OiBudW1iZXJbXTtcclxuICByZWFkb25seSBsYXlvdXROb2RlID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0FkZEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5sYXlvdXROb2RlKCkuYXJyYXlJdGVtIHx8XHJcbiAgICAgIHRoaXMubGF5b3V0SW5kZXgoKVt0aGlzLmxheW91dEluZGV4KCkubGVuZ3RoIC0gMV0gPCB0aGlzLm9wdGlvbnMubWF4SXRlbXM7XHJcbiAgfVxyXG5cclxuICBhZGRJdGVtKGV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5qc2YuYWRkSXRlbSh0aGlzKTtcclxuICB9XHJcblxyXG4gIGdldCBidXR0b25UZXh0KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwYXJlbnQ6IGFueSA9IHtcclxuICAgICAgZGF0YUluZGV4OiB0aGlzLmRhdGFJbmRleCgpLnNsaWNlKDAsIC0xKSxcclxuICAgICAgbGF5b3V0SW5kZXg6IHRoaXMubGF5b3V0SW5kZXgoKS5zbGljZSgwLCAtMSksXHJcbiAgICAgIGxheW91dE5vZGU6IHRoaXMuanNmLmdldFBhcmVudE5vZGUodGhpcylcclxuICAgIH07XHJcbiAgICByZXR1cm4gcGFyZW50LmxheW91dE5vZGUuYWRkIHx8XHJcbiAgICAgIHRoaXMuanNmLnNldEFycmF5SXRlbVRpdGxlKHBhcmVudCwgdGhpcy5sYXlvdXROb2RlKCksIHRoaXMuaXRlbUNvdW50KTtcclxuICB9XHJcbn1cclxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlZmVyZW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L2FkZC1yZWZlcmVuY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQXFCcEUsTUFBTSxPQUFPLHFCQUFxQjtJQWxCbEM7UUFtQlUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBTW5DLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQTBCakQ7SUF2QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUztZQUNqQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUM5RSxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUs7UUFDWCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE1BQU0sTUFBTSxHQUFRO1lBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUMsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUN6QyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHO1lBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDOytHQWxDVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw2ZEFmcEI7Ozs7Ozs7Ozs7OztlQVlDOzs0RkFHRixxQkFBcUI7a0JBbEJqQyxTQUFTO21CQUFDO29CQUNQLDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7ZUFZQztvQkFDWCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsT0FBTztpQkFDbkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiAnYWRkLXJlZmVyZW5jZS13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxzZWN0aW9uIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIiBhbGlnbj1cImVuZFwiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0FkZEJ1dHRvblwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9ucz8ucmVhZG9ubHlcIlxyXG4gICAgICAgIChjbGljayk9XCJhZGRJdGVtKCRldmVudClcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy5pY29uXCIgW2NsYXNzXT1cIm9wdGlvbnM/Lmljb25cIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb25zPy50aXRsZVwiIFtpbm5lckhUTUxdPVwiYnV0dG9uVGV4dFwiPjwvc3Bhbj5cclxuICAgICAgICBcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L3NlY3Rpb24+YCxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZFJlZmVyZW5jZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGl0ZW1Db3VudDogbnVtYmVyO1xyXG4gIHByZXZpb3VzTGF5b3V0SW5kZXg6IG51bWJlcltdO1xyXG4gIHByZXZpb3VzRGF0YUluZGV4OiBudW1iZXJbXTtcclxuICByZWFkb25seSBsYXlvdXROb2RlID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0FkZEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5sYXlvdXROb2RlKCkuYXJyYXlJdGVtIHx8XHJcbiAgICAgIHRoaXMubGF5b3V0SW5kZXgoKVt0aGlzLmxheW91dEluZGV4KCkubGVuZ3RoIC0gMV0gPCB0aGlzLm9wdGlvbnMubWF4SXRlbXM7XHJcbiAgfVxyXG5cclxuICBhZGRJdGVtKGV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5qc2YuYWRkSXRlbSh0aGlzKTtcclxuICB9XHJcblxyXG4gIGdldCBidXR0b25UZXh0KCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBwYXJlbnQ6IGFueSA9IHtcclxuICAgICAgZGF0YUluZGV4OiB0aGlzLmRhdGFJbmRleCgpLnNsaWNlKDAsIC0xKSxcclxuICAgICAgbGF5b3V0SW5kZXg6IHRoaXMubGF5b3V0SW5kZXgoKS5zbGljZSgwLCAtMSksXHJcbiAgICAgIGxheW91dE5vZGU6IHRoaXMuanNmLmdldFBhcmVudE5vZGUodGhpcylcclxuICAgIH07XHJcbiAgICByZXR1cm4gcGFyZW50LmxheW91dE5vZGUgJiYgKHBhcmVudC5sYXlvdXROb2RlLmFkZCB8fFxyXG4gICAgICB0aGlzLmpzZi5zZXRBcnJheUl0ZW1UaXRsZShwYXJlbnQsIHRoaXMubGF5b3V0Tm9kZSgpLCB0aGlzLml0ZW1Db3VudCkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,6 +5,7 @@ import { CheckboxesComponent } from './checkboxes.component';
5
5
  import { FileComponent } from './file.component';
6
6
  import { HiddenComponent } from './hidden.component';
7
7
  import { InputComponent } from './input.component';
8
+ import { ItemTitleComponent } from './item-title.component';
8
9
  import { MessageComponent } from './message.component';
9
10
  import { NoneComponent } from './none.component';
10
11
  import { NumberComponent } from './number.component';
@@ -27,7 +28,7 @@ export const BASIC_WIDGETS = [
27
28
  MessageComponent, NoneComponent, NumberComponent, RadiosComponent,
28
29
  RootComponent, SectionComponent, SelectComponent, SelectFrameworkComponent,
29
30
  SelectWidgetComponent, SubmitComponent, TabComponent, TabsComponent,
30
- TemplateComponent, TextareaComponent, SelectCheckboxComponent
31
+ TemplateComponent, TextareaComponent, SelectCheckboxComponent, ItemTitleComponent
31
32
  ];
32
33
  export { AddReferenceComponent } from './add-reference.component';
33
34
  export { ButtonComponent } from './button.component';
@@ -37,6 +38,7 @@ export { ElementAttributeDirective } from './element-attribute.directive';
37
38
  export { FileComponent } from './file.component';
38
39
  export { HiddenComponent } from './hidden.component';
39
40
  export { InputComponent } from './input.component';
41
+ export { ItemTitleComponent } from './item-title.component';
40
42
  export { MessageComponent } from './message.component';
41
43
  export { NoneComponent } from './none.component';
42
44
  export { NumberComponent } from './number.component';
@@ -56,4 +58,4 @@ export { TabsComponent } from './tabs.component';
56
58
  export { TemplateComponent } from './template.component';
57
59
  export { TextareaComponent } from './textarea.component';
58
60
  export { WidgetLibraryService } from './widget-library.service';
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0Is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b25lbnQgfSBmcm9tICcuL2FkZC1yZWZlcmVuY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94ZXNDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94ZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vZmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaWRkZW5Db21wb25lbnQgfSBmcm9tICcuL2hpZGRlbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOb25lQ29tcG9uZW50IH0gZnJvbSAnLi9ub25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9uZU9mQ29tcG9uZW50IH0gZnJvbSAnLi9vbmUtb2YuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmFkaW9zQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpb3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm9vdENvbXBvbmVudCB9IGZyb20gJy4vcm9vdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdEZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWZyYW1ld29yay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC13aWRnZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1Ym1pdENvbXBvbmVudCB9IGZyb20gJy4vc3VibWl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vdGFiLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL3RlbXBsYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRhcmVhQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJBU0lDX1dJREdFVFMgPSBbXHJcbiAgQWRkUmVmZXJlbmNlQ29tcG9uZW50LCBPbmVPZkNvbXBvbmVudCwgQnV0dG9uQ29tcG9uZW50LCBDaGVja2JveENvbXBvbmVudCxcclxuICBDaGVja2JveGVzQ29tcG9uZW50LCBGaWxlQ29tcG9uZW50LCBIaWRkZW5Db21wb25lbnQsIElucHV0Q29tcG9uZW50LFxyXG4gIE1lc3NhZ2VDb21wb25lbnQsIE5vbmVDb21wb25lbnQsIE51bWJlckNvbXBvbmVudCwgUmFkaW9zQ29tcG9uZW50LFxyXG4gIFJvb3RDb21wb25lbnQsIFNlY3Rpb25Db21wb25lbnQsIFNlbGVjdENvbXBvbmVudCwgU2VsZWN0RnJhbWV3b3JrQ29tcG9uZW50LFxyXG4gIFNlbGVjdFdpZGdldENvbXBvbmVudCwgU3VibWl0Q29tcG9uZW50LCBUYWJDb21wb25lbnQsIFRhYnNDb21wb25lbnQsXHJcbiAgVGVtcGxhdGVDb21wb25lbnQsIFRleHRhcmVhQ29tcG9uZW50LFNlbGVjdENoZWNrYm94Q29tcG9uZW50XHJcbl07XHJcblxyXG5leHBvcnQgeyBBZGRSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuL2FkZC1yZWZlcmVuY2UuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IENoZWNrYm94ZXNDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94ZXMuY29tcG9uZW50JztcclxuZXhwb3J0IHsgRWxlbWVudEF0dHJpYnV0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZWxlbWVudC1hdHRyaWJ1dGUuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vZmlsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBIaWRkZW5Db21wb25lbnQgfSBmcm9tICcuL2hpZGRlbi5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBOb25lQ29tcG9uZW50IH0gZnJvbSAnLi9ub25lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE9uZU9mQ29tcG9uZW50IH0gZnJvbSAnLi9vbmUtb2YuY29tcG9uZW50JztcclxuZXhwb3J0IHsgT3JkZXJhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9vcmRlcmFibGUuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgUmFkaW9zQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpb3MuY29tcG9uZW50JztcclxuZXhwb3J0IHsgUm9vdENvbXBvbmVudCB9IGZyb20gJy4vcm9vdC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFNlbGVjdEZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWZyYW1ld29yay5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBTZWxlY3RXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC13aWRnZXQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgU2VsZWN0Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBTdWJtaXRDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pdC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEuY29tcG9uZW50JztcclxuZXhwb3J0IHsgV2lkZ2V0TGlicmFyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1saWJyYXJ5LnNlcnZpY2UnO1xyXG5cclxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEy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c0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZGRSZWZlcmVuY2VDb21wb25lbnQgfSBmcm9tICcuL2FkZC1yZWZlcmVuY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoZWNrYm94ZXNDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94ZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vZmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBIaWRkZW5Db21wb25lbnQgfSBmcm9tICcuL2hpZGRlbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSXRlbVRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9pdGVtLXRpdGxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm9uZUNvbXBvbmVudCB9IGZyb20gJy4vbm9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL251bWJlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPbmVPZkNvbXBvbmVudCB9IGZyb20gJy4vb25lLW9mLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvc0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW9zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvb3RDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RGcmFtZXdvcmtDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1mcmFtZXdvcmsuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VsZWN0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3Qtd2lkZ2V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3RjaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJtaXRDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBjb25zdCBCQVNJQ19XSURHRVRTID0gW1xyXG4gIEFkZFJlZmVyZW5jZUNvbXBvbmVudCwgT25lT2ZDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudCwgQ2hlY2tib3hDb21wb25lbnQsXHJcbiAgQ2hlY2tib3hlc0NvbXBvbmVudCwgRmlsZUNvbXBvbmVudCwgSGlkZGVuQ29tcG9uZW50LCBJbnB1dENvbXBvbmVudCxcclxuICBNZXNzYWdlQ29tcG9uZW50LCBOb25lQ29tcG9uZW50LCBOdW1iZXJDb21wb25lbnQsIFJhZGlvc0NvbXBvbmVudCxcclxuICBSb290Q29tcG9uZW50LCBTZWN0aW9uQ29tcG9uZW50LCBTZWxlY3RDb21wb25lbnQsIFNlbGVjdEZyYW1ld29ya0NvbXBvbmVudCxcclxuICBTZWxlY3RXaWRnZXRDb21wb25lbnQsIFN1Ym1pdENvbXBvbmVudCwgVGFiQ29tcG9uZW50LCBUYWJzQ29tcG9uZW50LFxyXG4gIFRlbXBsYXRlQ29tcG9uZW50LCBUZXh0YXJlYUNvbXBvbmVudCxTZWxlY3RDaGVja2JveENvbXBvbmVudCxJdGVtVGl0bGVDb21wb25lbnRcclxuXTtcclxuXHJcbmV4cG9ydCB7IEFkZFJlZmVyZW5jZUNvbXBvbmVudCB9IGZyb20gJy4vYWRkLXJlZmVyZW5jZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ2hlY2tib3hlc0NvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tib3hlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBFbGVtZW50QXR0cmlidXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9lbGVtZW50LWF0dHJpYnV0ZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9maWxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEhpZGRlbkNvbXBvbmVudCB9IGZyb20gJy4vaGlkZGVuLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBJdGVtVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2l0ZW0tdGl0bGUuY29tcG9uZW50JztcclxuZXhwb3J0IHsgTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBOb25lQ29tcG9uZW50IH0gZnJvbSAnLi9ub25lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE9uZU9mQ29tcG9uZW50IH0gZnJvbSAnLi9vbmUtb2YuY29tcG9uZW50JztcclxuZXhwb3J0IHsgT3JkZXJhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9vcmRlcmFibGUuZGlyZWN0aXZlJztcclxuZXhwb3J0IHsgUmFkaW9zQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpb3MuY29tcG9uZW50JztcclxuZXhwb3J0IHsgUm9vdENvbXBvbmVudCB9IGZyb20gJy4vcm9vdC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFNlbGVjdEZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWZyYW1ld29yay5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBTZWxlY3RXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC13aWRnZXQuY29tcG9uZW50JztcclxuZXhwb3J0IHsgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0IHsgU2VsZWN0Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdGNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgeyBTdWJtaXRDb21wb25lbnQgfSBmcm9tICcuL3N1Ym1pdC5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBUYWJzQ29tcG9uZW50IH0gZnJvbSAnLi90YWJzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4vdGV4dGFyZWEuY29tcG9uZW50JztcclxuZXhwb3J0IHsgV2lkZ2V0TGlicmFyeVNlcnZpY2UgfSBmcm9tICcuL3dpZGdldC1saWJyYXJ5LnNlcnZpY2UnO1xyXG5cclxuIl19
@@ -27,7 +27,12 @@ export class InputComponent {
27
27
  this.jsf.updateValue(this, event.target.value);
28
28
  }
29
29
  ngOnDestroy() {
30
- this.jsf.updateValue(this, null);
30
+ //needed to be done in timeout for when dynamic/condition based
31
+ //titles depend on the formControls value but the formControl
32
+ //is also destroyed
33
+ setTimeout(() => {
34
+ this.jsf.updateValue(this, null);
35
+ });
31
36
  }
32
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
33
38
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: InputComponent, selector: "input-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
@@ -134,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
134
139
  </div>`,
135
140
  }]
136
141
  }] });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZm9ybXdvcmtzLWNvcmUvc3JjL2xpYi93aWRnZXQtbGlicmFyeS9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBdURwRSxNQUFNLE9BQU8sY0FBYztJQXBEM0I7UUFxRFUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBSzVDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7S0FvQmpEO0lBbEJDLCtGQUErRjtJQUMvRixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQTlCVSxjQUFjO21HQUFkLGNBQWMscWRBakRiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQStDSDs7NEZBRUUsY0FBYztrQkFwRDFCLFNBQVM7bUJBQUM7b0JBQ1AsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQStDSDtpQkFDViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdpbnB1dC13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiID5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwib3B0aW9ucz8udGl0bGVcIlxyXG4gICAgICAgIFthdHRyLmZvcl09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJvcHRpb25zPy5ub3RpdGxlID8gJ25vbmUnIDogJydcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgKm5nSWY9XCJib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5saXN0XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJvcHRpb25zPy5tYXhMZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJvcHRpb25zPy5taW5MZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwib3B0aW9ucz8ucGF0dGVyblwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlKCk/LnR5cGVcIlxyXG4gICAgICAgIFthdHRyaWJ1dGVzXT1cImlucHV0QXR0cmlidXRlc1wiXHJcbiAgICAgICAgW2FwcFN0b3BQcm9wYWdhdGlvbl09XCJbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J11cIlxyXG4gICAgICAgID5cclxuICAgICAgPGlucHV0ICpuZ0lmPVwiIWJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5saXN0XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJvcHRpb25zPy5tYXhMZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJvcHRpb25zPy5taW5MZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwib3B0aW9ucz8ucGF0dGVyblwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlKCk/LnR5cGVcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJjb250cm9sVmFsdWVcIlxyXG4gICAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICBbYXR0cmlidXRlc109XCJpbnB1dEF0dHJpYnV0ZXNcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRhdGFsaXN0ICpuZ0lmPVwib3B0aW9ucz8udHlwZWFoZWFkPy5zb3VyY2VcIlxyXG4gICAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIj5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHdvcmQgb2Ygb3B0aW9ucz8udHlwZWFoZWFkPy5zb3VyY2VcIiBbdmFsdWVdPVwid29yZFwiPlxyXG4gICAgICAgIDwvZGF0YWxpc3Q+XHJcbiAgICA8L2Rpdj5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xWYWx1ZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xyXG4gIG9wdGlvbnM6IGFueTtcclxuICBhdXRvQ29tcGxldGVMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJlYWRvbmx5IGxheW91dE5vZGUgPSBpbnB1dDxhbnk+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkYXRhSW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuXHJcbiAgLy9uZWVkZWQgYXMgdGVtcGxhdGVzIGRvbid0IGFjY2VwdCBzb21ldGhpbmcgbGlrZSBbYXR0cmlidXRlc109XCJvcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ11cIlxyXG4gIGdldCBpbnB1dEF0dHJpYnV0ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ107XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50KSB7XHJcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3kgKCkge1xyXG4gICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgbnVsbCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZm9ybXdvcmtzLWNvcmUvc3JjL2xpYi93aWRnZXQtbGlicmFyeS9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBdURwRSxNQUFNLE9BQU8sY0FBYztJQXBEM0I7UUFxRFUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBSzVDLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7S0F5QmpEO0lBdkJDLCtGQUErRjtJQUMvRixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULCtEQUErRDtRQUMvRCw2REFBNkQ7UUFDN0QsbUJBQW1CO1FBQ25CLFVBQVUsQ0FBQyxHQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOytHQW5DVSxjQUFjO21HQUFkLGNBQWMscWRBakRiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQStDSDs7NEZBRUUsY0FBYztrQkFwRDFCLFNBQVM7bUJBQUM7b0JBQ1AsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQStDSDtpQkFDViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdpbnB1dC13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiID5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwib3B0aW9ucz8udGl0bGVcIlxyXG4gICAgICAgIFthdHRyLmZvcl09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJvcHRpb25zPy5ub3RpdGxlID8gJ25vbmUnIDogJydcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgKm5nSWY9XCJib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5saXN0XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJvcHRpb25zPy5tYXhMZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJvcHRpb25zPy5taW5MZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwib3B0aW9ucz8ucGF0dGVyblwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlKCk/LnR5cGVcIlxyXG4gICAgICAgIFthdHRyaWJ1dGVzXT1cImlucHV0QXR0cmlidXRlc1wiXHJcbiAgICAgICAgW2FwcFN0b3BQcm9wYWdhdGlvbl09XCJbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J11cIlxyXG4gICAgICAgID5cclxuICAgICAgPGlucHV0ICpuZ0lmPVwiIWJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5saXN0XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIlxyXG4gICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJvcHRpb25zPy5tYXhMZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJvcHRpb25zPy5taW5MZW5ndGhcIlxyXG4gICAgICAgIFthdHRyLnBhdHRlcm5dPVwib3B0aW9ucz8ucGF0dGVyblwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlKCk/LnR5cGVcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJjb250cm9sVmFsdWVcIlxyXG4gICAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICBbYXR0cmlidXRlc109XCJpbnB1dEF0dHJpYnV0ZXNcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPGRhdGFsaXN0ICpuZ0lmPVwib3B0aW9ucz8udHlwZWFoZWFkPy5zb3VyY2VcIlxyXG4gICAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ0F1dG9jb21wbGV0ZSdcIj5cclxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHdvcmQgb2Ygb3B0aW9ucz8udHlwZWFoZWFkPy5zb3VyY2VcIiBbdmFsdWVdPVwid29yZFwiPlxyXG4gICAgICAgIDwvZGF0YWxpc3Q+XHJcbiAgICA8L2Rpdj5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xWYWx1ZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xyXG4gIG9wdGlvbnM6IGFueTtcclxuICBhdXRvQ29tcGxldGVMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIHJlYWRvbmx5IGxheW91dE5vZGUgPSBpbnB1dDxhbnk+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkYXRhSW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuXHJcbiAgLy9uZWVkZWQgYXMgdGVtcGxhdGVzIGRvbid0IGFjY2VwdCBzb21ldGhpbmcgbGlrZSBbYXR0cmlidXRlc109XCJvcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ11cIlxyXG4gIGdldCBpbnB1dEF0dHJpYnV0ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ107XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50KSB7XHJcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3kgKCkge1xyXG4gICAgLy9uZWVkZWQgdG8gYmUgZG9uZSBpbiB0aW1lb3V0IGZvciB3aGVuIGR5bmFtaWMvY29uZGl0aW9uIGJhc2VkXHJcbiAgICAvL3RpdGxlcyBkZXBlbmQgb24gdGhlIGZvcm1Db250cm9scyB2YWx1ZSBidXQgdGhlIGZvcm1Db250cm9sXHJcbiAgICAvL2lzIGFsc28gZGVzdHJveWVkXHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIG51bGwpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,43 @@
1
+ // item-title.component.ts
2
+ import { Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../json-schema-form.service";
5
+ export class ItemTitleComponent {
6
+ constructor(jsf) {
7
+ this.jsf = jsf;
8
+ }
9
+ ngOnChanges(changes) {
10
+ this.updateTitle();
11
+ }
12
+ ngOnInit() {
13
+ // Calculate the title once on init, or subscribe to changes here
14
+ this.updateTitle();
15
+ this.dataChangesSubs = this.jsf.dataChanges.subscribe((val) => {
16
+ this.updateTitle();
17
+ });
18
+ }
19
+ updateTitle() {
20
+ this.title = this.jsf.setArrayItemTitle(this.ctx, this.item, this.index);
21
+ }
22
+ ngOnDestroy() {
23
+ this.dataChangesSubs?.unsubscribe();
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ItemTitleComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ItemTitleComponent, selector: "item-title", inputs: { item: "item", index: "index", ctx: "ctx" }, usesOnChanges: true, ngImport: i0, template: `<div>{{ title }}</div>`, isInline: true }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ItemTitleComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'item-title',
32
+ template: `<div>{{ title }}</div>`,
33
+ standalone: false
34
+ // Consider using ChangeDetectionStrategy.OnPush here for maximum efficiency
35
+ }]
36
+ }], ctorParameters: () => [{ type: i1.JsonSchemaFormService }], propDecorators: { item: [{
37
+ type: Input
38
+ }], index: [{
39
+ type: Input
40
+ }], ctx: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS10aXRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L2l0ZW0tdGl0bGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7OztBQVc5RixNQUFNLE9BQU8sa0JBQWtCO0lBTzNCLFlBQW9CLEdBQTBCO1FBQTFCLFFBQUcsR0FBSCxHQUFHLENBQXVCO0lBRTlDLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxRQUFRO1FBQ0osaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxHQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV2QixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7K0dBM0JNLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZIQUxqQix3QkFBd0I7OzRGQUt6QixrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBQyxLQUFLO29CQUNoQiw0RUFBNEU7aUJBRS9FOzBGQUVZLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaXRlbS10aXRsZS5jb21wb25lbnQudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpdGVtLXRpdGxlJyxcclxuICAgIHRlbXBsYXRlOiBgPGRpdj57eyB0aXRsZSB9fTwvZGl2PmAsXHJcbiAgICBzdGFuZGFsb25lOmZhbHNlXHJcbiAgICAvLyBDb25zaWRlciB1c2luZyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2ggaGVyZSBmb3IgbWF4aW11bSBlZmZpY2llbmN5XHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgSXRlbVRpdGxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIGl0ZW06IGFueTtcclxuICAgIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSBjdHg6IGFueTtcclxuXHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gZGF0YUNoYW5nZXNTdWJzOlN1YnNjcmlwdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUganNmOiBKc29uU2NoZW1hRm9ybVNlcnZpY2UpIHtcclxuXHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSB0aXRsZSBvbmNlIG9uIGluaXQsIG9yIHN1YnNjcmliZSB0byBjaGFuZ2VzIGhlcmVcclxuICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7XHJcbiAgICAgICAgdGhpcy5kYXRhQ2hhbmdlc1N1YnM9dGhpcy5qc2YuZGF0YUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpPT57XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTtcclxuICAgICAgICAgICBcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVRpdGxlKCkge1xyXG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmpzZi5zZXRBcnJheUl0ZW1UaXRsZSh0aGlzLmN0eCwgdGhpcy5pdGVtLCB0aGlzLmluZGV4KTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGF0YUNoYW5nZXNTdWJzPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbn1cclxuIl19
@@ -34,7 +34,10 @@ export class NumberComponent {
34
34
  this.jsf.updateValue(this, event.target.value);
35
35
  }
36
36
  ngOnDestroy() {
37
- this.jsf.updateValue(this, null);
37
+ //see cpmments in input component
38
+ setTimeout(() => {
39
+ this.jsf.updateValue(this, null);
40
+ });
38
41
  }
39
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
43
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: NumberComponent, selector: "number-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true }, { propertyName: "div", first: true, predicate: ["divElt"], descendants: true }], ngImport: i0, template: `
@@ -145,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
145
148
  type: ViewChild,
146
149
  args: ['divElt', {}]
147
150
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1jb3JlL3NyYy9saWIvd2lkZ2V0LWxpYnJhcnkvbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBcURwRSxxQ0FBcUM7QUFDckMsTUFBTSxPQUFPLGVBQWU7SUFwRDVCO1FBcURVLFFBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUs1QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNaLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQTBCakQ7SUF4QkcsK0ZBQStGO0lBQy9GLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFPSCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUFFO0lBQzlFLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBdkNVLGVBQWU7bUdBQWYsZUFBZSxvcEJBakRkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBOENIOzs0RkFHRSxlQUFlO2tCQXBEM0IsU0FBUzttQkFBQztvQkFDUCw4Q0FBOEM7b0JBQzlDLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0E4Q0g7aUJBQ1Y7OEJBd0JDLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRTtnQkFJN0IsR0FBRztzQkFERixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSB9IGZyb20gJy4uL2pzb24tc2NoZW1hLWZvcm0uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICAgIHNlbGVjdG9yOiAnbnVtYmVyLXdpZGdldCcsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjZGl2RWx0IFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIiAgPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJvcHRpb25zPy50aXRsZVwiXHJcbiAgICAgICAgW2F0dHIuZm9yXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8ubGFiZWxIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIm9wdGlvbnM/Lm5vdGl0bGUgPyAnbm9uZScgOiAnJ1wiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy50aXRsZVwiPjwvbGFiZWw+XHJcbiAgICAgIDxpbnB1dCAjaW5wdXRDb250cm9sICpuZ0lmPVwiYm91bmRDb250cm9sXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWQgKyAnU3RhdHVzJ1wiXHJcbiAgICAgICAgW2F0dHIubWF4XT1cIm9wdGlvbnM/Lm1heGltdW1cIlxyXG4gICAgICAgIFthdHRyLm1pbl09XCJvcHRpb25zPy5taW5pbXVtXCJcclxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJvcHRpb25zPy5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxyXG4gICAgICAgIFthdHRyLnJlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFthdHRyLnN0ZXBdPVwib3B0aW9ucz8ubXVsdGlwbGVPZiB8fCBvcHRpb25zPy5zdGVwIHx8ICdhbnknXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbdGl0bGVdPVwibGFzdFZhbGlkTnVtYmVyXCJcclxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlKCk/LnR5cGUgPT09ICdyYW5nZScgPyAncmFuZ2UnIDogJ251bWJlcidcIlxyXG4gICAgICAgIFthdHRyaWJ1dGVzXT1cImlucHV0QXR0cmlidXRlc1wiXHJcbiAgICAgICAgW2FwcFN0b3BQcm9wYWdhdGlvbl09XCJbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J11cIlxyXG4gICAgICAgID5cclxuICAgICAgPGlucHV0ICNpbnB1dENvbnRyb2wgKm5nSWY9XCIhYm91bmRDb250cm9sXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLm1heF09XCJvcHRpb25zPy5tYXhpbXVtXCJcclxuICAgICAgICBbYXR0ci5taW5dPVwib3B0aW9ucz8ubWluaW11bVwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbYXR0ci5zdGVwXT1cIm9wdGlvbnM/Lm11bHRpcGxlT2YgfHwgb3B0aW9ucz8uc3RlcCB8fCAnYW55J1wiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY29udHJvbERpc2FibGVkXCJcclxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWRcIlxyXG4gICAgICAgIFtuYW1lXT1cImNvbnRyb2xOYW1lXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImxhc3RWYWxpZE51bWJlclwiXHJcbiAgICAgICAgW3R5cGVdPVwibGF5b3V0Tm9kZSgpPy50eXBlID09PSAncmFuZ2UnID8gJ3JhbmdlJyA6ICdudW1iZXInXCJcclxuICAgICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcclxuICAgICAgICAoaW5wdXQpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgW2F0dHJpYnV0ZXNdPVwiaW5wdXRBdHRyaWJ1dGVzXCJcclxuICAgICAgICBbYXBwU3RvcFByb3BhZ2F0aW9uXT1cIlsnbW91c2Vkb3duJywgJ3RvdWNoc3RhcnQnXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImxheW91dE5vZGUoKT8udHlwZSA9PT0gJ3JhbmdlJ1wiIFtpbm5lckhUTUxdPVwiY29udHJvbFZhbHVlXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+YCxcclxufSlcclxuLy9UT0RPIGxvb2sgYXQgcmV1c2luZyBJbnB1dENvbXBvbmVudFxyXG5leHBvcnQgY2xhc3MgTnVtYmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGNvbnRyb2xWYWx1ZTogYW55O1xyXG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlO1xyXG4gIG9wdGlvbnM6IGFueTtcclxuICBhbGxvd05lZ2F0aXZlID0gdHJ1ZTtcclxuICBhbGxvd0RlY2ltYWwgPSB0cnVlO1xyXG4gIGFsbG93RXhwb25lbnRzID0gZmFsc2U7XHJcbiAgbGFzdFZhbGlkTnVtYmVyID0gJyc7XHJcbiAgcmVhZG9ubHkgbGF5b3V0Tm9kZSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXRJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG5cclxuICAgIC8vbmVlZGVkIGFzIHRlbXBsYXRlcyBkb24ndCBhY2NlcHQgc29tZXRoaW5nIGxpa2UgW2F0dHJpYnV0ZXNdPVwib3B0aW9ucz8uWyd4LWlucHV0QXR0cmlidXRlcyddXCJcclxuICAgIGdldCBpbnB1dEF0dHJpYnV0ZXMoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnM/LlsneC1pbnB1dEF0dHJpYnV0ZXMnXTtcclxuICAgIH1cclxuICBAVmlld0NoaWxkKCdpbnB1dENvbnRyb2wnLCB7fSlcclxuICBpbnB1dENvbnRyb2w6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2RpdkVsdCcsIHt9KVxyXG4gIGRpdjogRWxlbWVudFJlZjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUoKS5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XHJcbiAgICBpZiAodGhpcy5sYXlvdXROb2RlKCkuZGF0YVR5cGUgPT09ICdpbnRlZ2VyJykgeyB0aGlzLmFsbG93RGVjaW1hbCA9IGZhbHNlOyB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWx1ZShldmVudCkge1xyXG4gICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95ICgpIHtcclxuICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIG51bGwpO1xyXG4gIH1cclxuICBcclxufVxyXG4iXX0=
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1jb3JlL3NyYy9saWIvd2lkZ2V0LWxpYnJhcnkvbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBcURwRSxxQ0FBcUM7QUFDckMsTUFBTSxPQUFPLGVBQWU7SUFwRDVCO1FBcURVLFFBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUs1QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNaLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQTZCakQ7SUEzQkcsK0ZBQStGO0lBQy9GLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFPSCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUFFO0lBQzlFLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxXQUFXO1FBQ1QsaUNBQWlDO1FBQ2pDLFVBQVUsQ0FBQyxHQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOytHQTFDVSxlQUFlO21HQUFmLGVBQWUsb3BCQWpEZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQThDSDs7NEZBR0UsZUFBZTtrQkFwRDNCLFNBQVM7bUJBQUM7b0JBQ1AsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBOENIO2lCQUNWOzhCQXdCQyxZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBSTdCLEdBQUc7c0JBREYsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ251bWJlci13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI2RpdkVsdCBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCIgID5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwib3B0aW9ucz8udGl0bGVcIlxyXG4gICAgICAgIFthdHRyLmZvcl09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJvcHRpb25zPy5ub3RpdGxlID8gJ25vbmUnIDogJydcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgI2lucHV0Q29udHJvbCAqbmdJZj1cImJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLm1heF09XCJvcHRpb25zPy5tYXhpbXVtXCJcclxuICAgICAgICBbYXR0ci5taW5dPVwib3B0aW9ucz8ubWluaW11bVwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbYXR0ci5zdGVwXT1cIm9wdGlvbnM/Lm11bHRpcGxlT2YgfHwgb3B0aW9ucz8uc3RlcCB8fCAnYW55J1wiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWRcIlxyXG4gICAgICAgIFtuYW1lXT1cImNvbnRyb2xOYW1lXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImxhc3RWYWxpZE51bWJlclwiXHJcbiAgICAgICAgW3R5cGVdPVwibGF5b3V0Tm9kZSgpPy50eXBlID09PSAncmFuZ2UnID8gJ3JhbmdlJyA6ICdudW1iZXInXCJcclxuICAgICAgICBbYXR0cmlidXRlc109XCJpbnB1dEF0dHJpYnV0ZXNcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgIDxpbnB1dCAjaW5wdXRDb250cm9sICpuZ0lmPVwiIWJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5tYXhdPVwib3B0aW9ucz8ubWF4aW11bVwiXHJcbiAgICAgICAgW2F0dHIubWluXT1cIm9wdGlvbnM/Lm1pbmltdW1cIlxyXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIm9wdGlvbnM/LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJvcHRpb25zPy5yZXF1aXJlZFwiXHJcbiAgICAgICAgW2F0dHIucmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW2F0dHIuc3RlcF09XCJvcHRpb25zPy5tdWx0aXBsZU9mIHx8IG9wdGlvbnM/LnN0ZXAgfHwgJ2FueSdcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5maWVsZEh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2xEaXNhYmxlZFwiXHJcbiAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFt0aXRsZV09XCJsYXN0VmFsaWROdW1iZXJcIlxyXG4gICAgICAgIFt0eXBlXT1cImxheW91dE5vZGUoKT8udHlwZSA9PT0gJ3JhbmdlJyA/ICdyYW5nZScgOiAnbnVtYmVyJ1wiXHJcbiAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2xWYWx1ZVwiXHJcbiAgICAgICAgKGlucHV0KT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgIFthdHRyaWJ1dGVzXT1cImlucHV0QXR0cmlidXRlc1wiXHJcbiAgICAgICAgW2FwcFN0b3BQcm9wYWdhdGlvbl09XCJbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J11cIlxyXG4gICAgICAgID5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJsYXlvdXROb2RlKCk/LnR5cGUgPT09ICdyYW5nZSdcIiBbaW5uZXJIVE1MXT1cImNvbnRyb2xWYWx1ZVwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PmAsXHJcbn0pXHJcbi8vVE9ETyBsb29rIGF0IHJldXNpbmcgSW5wdXRDb21wb25lbnRcclxuZXhwb3J0IGNsYXNzIE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUganNmID0gaW5qZWN0KEpzb25TY2hlbWFGb3JtU2VydmljZSk7XHJcblxyXG4gIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICBjb250cm9sVmFsdWU6IGFueTtcclxuICBjb250cm9sRGlzYWJsZWQgPSBmYWxzZTtcclxuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgYWxsb3dOZWdhdGl2ZSA9IHRydWU7XHJcbiAgYWxsb3dEZWNpbWFsID0gdHJ1ZTtcclxuICBhbGxvd0V4cG9uZW50cyA9IGZhbHNlO1xyXG4gIGxhc3RWYWxpZE51bWJlciA9ICcnO1xyXG4gIHJlYWRvbmx5IGxheW91dE5vZGUgPSBpbnB1dDxhbnk+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkYXRhSW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuXHJcbiAgICAvL25lZWRlZCBhcyB0ZW1wbGF0ZXMgZG9uJ3QgYWNjZXB0IHNvbWV0aGluZyBsaWtlIFthdHRyaWJ1dGVzXT1cIm9wdGlvbnM/LlsneC1pbnB1dEF0dHJpYnV0ZXMnXVwiXHJcbiAgICBnZXQgaW5wdXRBdHRyaWJ1dGVzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ107XHJcbiAgICB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb250cm9sJywge30pXHJcbiAgaW5wdXRDb250cm9sOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdkaXZFbHQnLCB7fSlcclxuICBkaXY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlKCkub3B0aW9ucyB8fCB7fTtcclxuICAgIHRoaXMuanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpO1xyXG4gICAgaWYgKHRoaXMubGF5b3V0Tm9kZSgpLmRhdGFUeXBlID09PSAnaW50ZWdlcicpIHsgdGhpcy5hbGxvd0RlY2ltYWwgPSBmYWxzZTsgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoZXZlbnQpIHtcclxuICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSAoKSB7XHJcbiAgICAvL3NlZSBjcG1tZW50cyBpbiBpbnB1dCBjb21wb25lbnRcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgdGhpcy5qc2YudXBkYXRlVmFsdWUodGhpcywgbnVsbCk7XHJcbiAgICB9KVxyXG4gIH1cclxuICBcclxufVxyXG4iXX0=
@@ -116,6 +116,8 @@ export class RootComponent {
116
116
  return this._getSelectFrameworkInputsRaw(layoutItem, i);
117
117
  }
118
118
  }
119
+ //TODO investigate-causing layout issue with layout,for now
120
+ //removed from template
119
121
  trackByFn(index, item) {
120
122
  return item._id ?? index;
121
123
  }
@@ -167,7 +169,7 @@ export class RootComponent {
167
169
  You must explicitly disable dragging on the main element
168
170
  and re-enable it only when using the handle.
169
171
  -->
170
- <div *ngFor="let layoutItem of layout(); let i = index;trackBy: trackByFn"
172
+ <div *ngFor="let layoutItem of layout(); let i = index;"
171
173
  cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
172
174
  [cdkDragDisabled]="!isDraggable(layoutItem)"
173
175
  [class.form-flex-item]="isFlexItem()"
@@ -222,7 +224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
222
224
  You must explicitly disable dragging on the main element
223
225
  and re-enable it only when using the handle.
224
226
  -->
225
- <div *ngFor="let layoutItem of layout(); let i = index;trackBy: trackByFn"
227
+ <div *ngFor="let layoutItem of layout(); let i = index;"
226
228
  cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
227
229
  [cdkDragDisabled]="!isDraggable(layoutItem)"
228
230
  [class.form-flex-item]="isFlexItem()"
@@ -264,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
264
266
  </div>
265
267
  `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"] }]
266
268
  }] });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3Jvb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUF3RnBFLE1BQU0sT0FBTyxhQUFhO0lBdkYxQjtRQXlGVSxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDdkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLEtBQUssQ0FBUSxTQUFTLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFFLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQWlDbEQ7Ozs7OztXQU1HO1FBQ0Qsb0VBQW9FO1FBQ3BFLGdDQUFnQztRQUNoQywwREFBMEQ7UUFDMUQsa0JBQWEsR0FBQyxDQUFDLEtBQWEsRUFBRSxJQUFxQixFQUFDLEVBQUU7WUFDcEQsSUFBSSxVQUFVLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksTUFBTSxH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ICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdyb290LXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIiBcclxuICAgICAgW2NsYXNzLmZsZXgtaW5oZXJpdF09XCJ0cnVlXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0U29ydFByZWRpY2F0ZV09XCJzb3J0UHJlZGljYXRlXCJcclxuICAgID5cclxuICAgICAgPCEtLSAtZm9yIG5vdyBsZWZ0IG91dFxyXG4gICAgICBjZGtEcmFnSGFuZGxlIGRpcmVjdGl2ZSwgYnkgaXRzZWxmLCBkb2VzIG5vdCBkaXNhYmxlIHRoZSBcclxuICAgICAgZGVmYXVsdCBkcmFnIGJlaGF2aW9yIG9mIGl0cyBwYXJlbnQgY2RrRHJhZyBlbGVtZW50LiBcclxuICAgICAgWW91IG11c3QgZXhwbGljaXRseSBkaXNhYmxlIGRyYWdnaW5nIG9uIHRoZSBtYWluIGVsZW1lbnQgXHJcbiAgICAgIGFuZCByZS1lbmFibGUgaXQgb25seSB3aGVuIHVzaW5nIHRoZSBoYW5kbGUuXHJcbiAgICAgIC0tPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsYXlvdXRJdGVtIG9mIGxheW91dCgpOyBsZXQgaSA9IGluZGV4O3RyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgIGNka0RyYWcgIFtjZGtEcmFnU3RhcnREZWxheV09XCJ7dG91Y2g6MTAwMCxtb3VzZTowfVwiXHJcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhaXNEcmFnZ2FibGUobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtaXRlbV09XCJpc0ZsZXhJdGVtKClcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1zZWxmXT1cIihsYXlvdXRJdGVtLm9wdGlvbnMgfHwge30pWydhbGlnbi1zZWxmJ11cIlxyXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtYmFzaXMnKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJnZXRGbGV4QXR0cmlidXRlKGxheW91dEl0ZW0sICdmbGV4LWdyb3cnKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtc2hyaW5rXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtc2hyaW5rJylcIlxyXG4gICAgICAgIFtzdHlsZS5vcmRlcl09XCIobGF5b3V0SXRlbS5vcHRpb25zIHx8IHt9KS5vcmRlclwiXHJcbiAgICAgICAgPlxyXG5cclxuICAgICAgICA8IS0tIHdvcmthcm91bmQgdG8gZGlzYmFsZSBkcmFnZ2luZyBvZiBpbnB1dCBmaWVsZHMgLS0+XHJcbiAgICAgICAgPCEtLVxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsYXlvdXRJdGVtPy5kYXRhVHlwZSAhPSdvYmplY3QnXCIgIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgIDxwPkRyYWcgSGFuZGxlIHt7bGF5b3V0SXRlbT8uZGF0YVR5cGV9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAtLT5cclxuICAgICAgICA8IS0tTkIgb3JkZXJhYmxlIGRpcmVjdGl2ZSBpcyBub3QgdXNlZCBidXQgaGFzIGJlZW4gbGVmdCBpbiBmb3Igbm93IGFuZCBzZXQgdG8gZmFsc2VcclxuICAgICAgICAgIG90aGVyd2lzZSB0aGUgY29tcGlsZXIgd29uJ3QgcmVjb2duaXplIGRhdGFJbmRleCBhbmQgb3RoZXIgZGVwZW5kZW50IGF0dHJpYnV0ZXNcclxuICAgICAgICAtLT5cclxuICAgICAgICA8IS0tXHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAgIFtkYXRhSW5kZXhdPVwibGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKGRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQoaSkgOiAoZGF0YUluZGV4KCkgfHwgW10pXCJcclxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIlxyXG4gICAgICAgICAgW29yZGVyYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzaG93V2lkZ2V0KGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgICAgW2RhdGFJbmRleF09XCJsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IChkYXRhSW5kZXgoKSB8fCBbXSlcIlxyXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiKGxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdChpKVwiXHJcbiAgICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIj48L3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIC0tPlxyXG4gICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzaG93V2lkZ2V0KGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgICAgW2RhdGFJbmRleF09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5kYXRhSW5kZXhcIlxyXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW0saSkubGF5b3V0SW5kZXhcIlxyXG4gICAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5sYXlvdXROb2RlXCI+XHJcblx0XHQgIDwvc2VsZWN0LWZyYW1ld29yay13aWRnZXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV0ge1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XHJcbiAgICB9XHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdOmhvdmVyIHtcclxuICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTA7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMXB4O1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC10b3Age1xyXG4gICAgICBib3gtc2hhZG93OiAwIC0ycHggMCAjMDAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC1ib3R0b20ge1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCAwICMwMDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjA7XHJcbiAgICB9XHJcbiAgICAuZmxleC1pbmhlcml0e1xyXG4gICAgICBkaXNwbGF5OmluaGVyaXQ7XHJcbiAgICAgIGZsZXgtZmxvdzppbmhlcml0O1xyXG4gICAgICBmbGV4LXdyYXA6aW5oZXJpdDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246aW5oZXJpdDtcclxuICAgICAgd2lkdGg6MTAwJVxyXG4gICAgfVxyXG4gIGBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjpDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvb3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSxPbkNoYW5nZXMge1xyXG5cclxuICBwcml2YXRlIGpzZiA9IGluamVjdChKc29uU2NoZW1hRm9ybVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXQgPSBpbnB1dDxhbnlbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBpc09yZGVyYWJsZSA9IGlucHV0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgaXNGbGV4SXRlbSA9IGlucHV0KGZhbHNlKTtcclxuICByZWFkb25seSBtZW1vaXphdGlvbkVuYWJsZWQ9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICBkYXRhQ2hhbmdlc1N1YnM6U3Vic2NyaXB0aW9uO1xyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIC8vIG1vc3QgbGlrZWx5IHdoeSB0aGlzIGV2ZW50IGlzIHVzZWQgaXMgdG8gZ2V0IHRoZSBkcmFnZ2luZyBlbGVtZW50J3MgY3VycmVudCBpbmRleFxyXG4gICAgbGV0IHNyY0luZD1ldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgbGV0IHRyZ0luZD1ldmVudC5jdXJyZW50SW5kZXg7XHJcbiAgICBsZXQgbGF5b3V0SXRlbT10aGlzLmxheW91dCgpW3RyZ0luZF07XHJcbiAgICBsZXQgZGF0YUluZD1sYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KHRyZ0luZCkgOiAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSk7XHJcbiAgICBsZXQgbGF5b3V0SW5kPSh0aGlzLmxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdCh0cmdJbmQpXHJcbiAgICBsZXQgaXRlbUN0eDphbnk9e1xyXG4gICAgICBkYXRhSW5kZXg6KCk9PntyZXR1cm4gZGF0YUluZH0sXHJcbiAgICAgIGxheW91dEluZGV4OigpPT57cmV0dXJuIGxheW91dEluZH0sXHJcbiAgICAgIGxheW91dE5vZGU6KCk9PntyZXR1cm4gbGF5b3V0SXRlbX0sXHJcbiAgICB9XHJcbiAgICB0aGlzLmpzZi5tb3ZlQXJyYXlJdGVtKGl0ZW1DdHgsIHNyY0luZCwgdHJnSW5kLHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaXNEcmFnZ2FibGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0PW5vZGUuYXJyYXlJdGVtICYmIG5vZGUudHlwZSAhPT0gJyRyZWYnICYmXHJcbiAgICBub2RlLmFycmF5SXRlbVR5cGUgPT09ICdsaXN0JyAmJiB0aGlzLmlzT3JkZXJhYmxlKCkgIT09IGZhbHNlXHJcbiAgICAmJiBub2RlLnR5cGUgIT09J3N1Ym1pdCdcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gYWxzbyBuZWVkIHRvIHRoaW5rIG9mIG90aGVyIHR5cGVzIHN1Y2ggYXMgYnV0dG9uIHdoaWNoIGNhbiBiZVxyXG4gIC8vY3JlYXRlZCBieSBhbiBhcmJpdHJhcnkgbGF5b3V0XHJcbiAgaXNGaXhlZChub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ9bm9kZS50eXBlID09ICckcmVmJztcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcmVkaWNhdGUgZnVuY3Rpb24gdGhhdCBkaXNhbGxvd3MgJyRyZWYnIGl0ZW0gc29ydHNcclxuICAgKiBOQiBkZWNsYXJlZCBhcyBhIHZhciBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gXHJcbiAgICogbGlrZSBzb3J0UHJlZGljYXRlKGluZGV4OiBudW1iZXIsIGl0ZW06IENka0RyYWc8bnVtYmVyPil7Li59XHJcbiAgICogc2luY2UgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBkcmFnbGlzdCBhbmQgZG9lc24ndCByZWZlcmVuY2UgdGhlXHJcbiAgICogRmxleExheW91dFJvb3RDb21wb25lbnQgaW5zdGFuY2VcclxuICAgKi9cclxuICAgIC8vVE9ETyBhbHNvIG5lZWQgdG8gdGhpbmsgb2Ygb3RoZXIgdHlwZXMgc3VjaCBhcyBidXR0b24gd2hpY2ggY2FuIGJlXHJcbiAgICAvL2NyZWF0ZWQgYnkgYW4gYXJiaXRyYXJ5IGxheW91dFxyXG4gICAgLy9taWdodCBub3QgYmUgbmVlZGVkIGFkZGVkIGNvbmRpdGlvbiB0byBbY2RrRHJhZ0Rpc2FibGVkXVxyXG4gICAgc29ydFByZWRpY2F0ZT0oaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzxudW1iZXI+KT0+IHtcclxuICAgICAgbGV0IGxheW91dEl0ZW09dGhpcy5sYXlvdXQoKVtpbmRleF07XHJcbiAgICAgIGxldCByZXN1bHQ9dGhpcy5pc0RyYWdnYWJsZShsYXlvdXRJdGVtKTtcclxuICAgICAgLy9sYXlvdXRJdGVtLnR5cGUgIT0gJyRyZWYnO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAvLyBTZXQgYXR0cmlidXRlcyBmb3IgZmxleGJveCBjaGlsZFxyXG4gIC8vIChjb250YWluZXIgYXR0cmlidXRlcyBhcmUgc2V0IGluIHNlY3Rpb24uY29tcG9uZW50KVxyXG4gIGdldEZsZXhBdHRyaWJ1dGUobm9kZTogYW55LCBhdHRyaWJ1dGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSBbJ2ZsZXgtZ3JvdycsICdmbGV4LXNocmluaycsICdmbGV4LWJhc2lzJ10uaW5kZXhPZihhdHRyaWJ1dGUpO1xyXG4gICAgcmV0dXJuICgobm9kZS5vcHRpb25zIHx8IHt9KS5mbGV4IHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxyXG4gICAgICAobm9kZS5vcHRpb25zIHx8IHt9KVthdHRyaWJ1dGVdIHx8IFsnMScsICcxJywgJ2F1dG8nXVtpbmRleF07XHJcbiAgfVxyXG5cclxuICAvL3ByaXZhdGUgc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IGRhdGFJbmRleDogYW55W10sIGxheW91dEluZGV4OiBhbnlbXSwgbGF5b3V0Tm9kZTogYW55IH0+KCk7XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgY2FjaGluZy1pZiBmb3JtIGZpZWxkIHZhbHVlcyBjaGFuZ2UsIHRoZSBjaGFuZ2VzIGFyZSBub3QgcHJvcGFnYXRlZFxyXG5cclxuICAvKlxyXG4gIGdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgLy8gQ3JlYXRlIGEgdW5pcXVlIGtleSBiYXNlZCBvbiB0aGUgbGF5b3V0SXRlbSBhbmQgaW5kZXhcclxuICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7bGF5b3V0SXRlbS5faWR9LSR7aX1gO1xyXG4gIFxyXG4gICAgLy8gSWYgdGhlIHJlc3VsdCBpcyBhbHJlYWR5IGluIHRoZSBjYWNoZSwgcmV0dXJuIGl0XHJcbiAgICBpZih0aGlzLmVuYWJsZUNhY2hpbmcpe1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLmhhcyhjYWNoZUtleSkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLmdldChjYWNoZUtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gSWYgbm90IGNhY2hlZCwgY2FsY3VsYXRlIHRoZSB2YWx1ZXMgKGFzc3VtaW5nIGRhdGFJbmRleCgpIGFuZCBsYXlvdXRJbmRleCgpIGFyZSBmdW5jdGlvbnMpXHJcbiAgICBjb25zdCBkYXRhSW5kZXggPSBsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpIDogKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pO1xyXG4gICAgY29uc3QgbGF5b3V0SW5kZXggPSAodGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQoaSk7XHJcblxyXG4gICAgLy8gU2F2ZSB0aGUgcmVzdWx0IGluIHRoZSBjYWNoZVxyXG4gICAgY29uc3QgcmVzdWx0ID0geyBkYXRhSW5kZXgsIGxheW91dEluZGV4LCBsYXlvdXROb2RlOiBsYXlvdXRJdGVtIH07XHJcbiAgICBpZih0aGlzLmVuYWJsZUNhY2hpbmcpe1xyXG4gICAgICB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGUuc2V0KGNhY2hlS2V5LCByZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gICAgKi9cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3ID0gKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBkYXRhSW5kZXhWYWx1ZSA9IHRoaXMuZGF0YUluZGV4KCkgfHwgW107XHJcbiAgICBjb25zdCBsYXlvdXRJbmRleFZhbHVlID0gdGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxheW91dE5vZGU6IGxheW91dEl0ZW0sXHJcbiAgICAgIGxheW91dEluZGV4OiBbLi4ubGF5b3V0SW5kZXhWYWx1ZSwgaV0sXHJcbiAgICAgIGRhdGFJbmRleDogbGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gWy4uLmRhdGFJbmRleFZhbHVlLCBpXSA6IGRhdGFJbmRleFZhbHVlLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAvLyBEZWZpbmUgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0byBob2xkIHRoZSBtZW1vaXplZCB2ZXJzaW9uXHJcbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQgPSBtZW1vaXplKFxyXG4gICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3LFxyXG4gICAgKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxheW91dEl0ZW1LZXkgPSBsYXlvdXRJdGVtPy5pZCA/PyBKU09OLnN0cmluZ2lmeShsYXlvdXRJdGVtKTtcclxuICAgICAgcmV0dXJuIGAke2xheW91dEl0ZW1LZXl9LSR7aX1gO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIC8vIFRoaXMgaXMgdGhlIHB1YmxpYyBmdW5jdGlvbiB0aGF0IHRoZSB0ZW1wbGF0ZSBjYWxsc1xyXG4gIGdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMubWVtb2l6YXRpb25FbmFibGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZChsYXlvdXRJdGVtLCBpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNSYXcobGF5b3V0SXRlbSwgaSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGl0ZW0uX2lkID8/IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgXHJcblxyXG4gIC8qXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gSWYgYW55IG9mIHRoZSBpbnB1dCBwcm9wZXJ0aWVzIGNoYW5nZSwgY2xlYXIgdGhlIGNhY2hlXHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhSW5kZXggfHwgY2hhbmdlcy5sYXlvdXRJbmRleCB8fCBjaGFuZ2VzLmxheW91dCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKCk7IC8vIENsZWFyIHRoZSBlbnRpcmUgY2FjaGVcclxuICAgIH1cclxuICB9XHJcbiAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snbGF5b3V0J10gfHwgY2hhbmdlc1snZGF0YUluZGV4J10gfHwgY2hhbmdlc1snbGF5b3V0SW5kZXgnXSkge1xyXG4gICAgICAvLyBDbGVhciB0aGUgZW50aXJlIGNhY2hlIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvblxyXG4gICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzaG93V2lkZ2V0KGxheW91dE5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuanNmLmV2YWx1YXRlQ29uZGl0aW9uKGxheW91dE5vZGUsIHRoaXMuZGF0YUluZGV4KCkpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgaWYodGhpcy5tZW1vaXphdGlvbkVuYWJsZWQpe1xyXG4gICAgICAgIHRoaXMuanNmLmRhdGFDaGFuZ2VzLnN1YnNjcmliZSgodmFsKT0+e1xyXG4gICAgICAgICAgLy90aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKCk7XHJcbiAgICAgICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgICAgIC8vVE9ETy1maXggZm9yIG5vdyBjaGFuZ2VkIHRvIGRldGVjdENoYW5nZXMtXHJcbiAgICAgICAgLy91c2VkIHRvIHVwZGF0ZWQgdGhlIGR5bmFtaWMgdGl0bGVzIGluIHRhYiBjb21wbmVudHMgXHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAvLyB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7LWJyZWFrcyBvbmVPZi8gbWF0ZGF0ZXBpY2tlclxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAvL3RoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZT8uY2xlYXIoKVxyXG4gICAgICAvL3RoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZT1udWxsO1xyXG4gICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2VzU3Vicz8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3Jvb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUF3RnBFLE1BQU0sT0FBTyxhQUFhO0lBdkYxQjtRQXlGVSxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDdkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLEtBQUssQ0FBUSxTQUFTLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFFLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQWlDbEQ7Ozs7OztXQU1HO1FBQ0Qsb0VBQW9FO1FBQ3BFLGdDQUFnQztRQUNoQywwREFBMEQ7UUFDMUQsa0JBQWEsR0FBQyxDQUFDLEtBQWEsRUFBRSxJQUFxQixFQUFDLEVBQUU7WUFDcEQsSUFBSSxVQUFVLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksTUFBTSxH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ZGtEcmFnLCBDZGtEcmFnRHJvcCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtZW1vaXplIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEpzb25TY2hlbWFGb3JtU2VydmljZSB9IGZyb20gJy4uL2pzb24tc2NoZW1hLWZvcm0uc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ3Jvb3Qtd2lkZ2V0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiIFxyXG4gICAgICBbY2xhc3MuZmxleC1pbmhlcml0XT1cInRydWVcIlxyXG4gICAgICBbY2RrRHJvcExpc3RTb3J0UHJlZGljYXRlXT1cInNvcnRQcmVkaWNhdGVcIlxyXG4gICAgPlxyXG4gICAgICA8IS0tIC1mb3Igbm93IGxlZnQgb3V0XHJcbiAgICAgIGNka0RyYWdIYW5kbGUgZGlyZWN0aXZlLCBieSBpdHNlbGYsIGRvZXMgbm90IGRpc2FibGUgdGhlIFxyXG4gICAgICBkZWZhdWx0IGRyYWcgYmVoYXZpb3Igb2YgaXRzIHBhcmVudCBjZGtEcmFnIGVsZW1lbnQuIFxyXG4gICAgICBZb3UgbXVzdCBleHBsaWNpdGx5IGRpc2FibGUgZHJhZ2dpbmcgb24gdGhlIG1haW4gZWxlbWVudCBcclxuICAgICAgYW5kIHJlLWVuYWJsZSBpdCBvbmx5IHdoZW4gdXNpbmcgdGhlIGhhbmRsZS5cclxuICAgICAgLS0+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGxheW91dEl0ZW0gb2YgbGF5b3V0KCk7IGxldCBpID0gaW5kZXg7XCJcclxuICAgICAgICAgY2RrRHJhZyAgW2Nka0RyYWdTdGFydERlbGF5XT1cInt0b3VjaDoxMDAwLG1vdXNlOjB9XCJcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cIiFpc0RyYWdnYWJsZShsYXlvdXRJdGVtKVwiXHJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1pdGVtXT1cImlzRmxleEl0ZW0oKVwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLXNlbGZdPVwiKGxheW91dEl0ZW0ub3B0aW9ucyB8fCB7fSlbJ2FsaWduLXNlbGYnXVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiZ2V0RmxleEF0dHJpYnV0ZShsYXlvdXRJdGVtLCAnZmxleC1iYXNpcycpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtZ3JvdycpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1zaHJpbmtdPVwiZ2V0RmxleEF0dHJpYnV0ZShsYXlvdXRJdGVtLCAnZmxleC1zaHJpbmsnKVwiXHJcbiAgICAgICAgW3N0eWxlLm9yZGVyXT1cIihsYXlvdXRJdGVtLm9wdGlvbnMgfHwge30pLm9yZGVyXCJcclxuICAgICAgICA+XHJcblxyXG4gICAgICAgIDwhLS0gd29ya2Fyb3VuZCB0byBkaXNiYWxlIGRyYWdnaW5nIG9mIGlucHV0IGZpZWxkcyAtLT5cclxuICAgICAgICA8IS0tXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxheW91dEl0ZW0/LmRhdGFUeXBlICE9J29iamVjdCdcIiAgY2RrRHJhZ0hhbmRsZT5cclxuICAgICAgICAgPHA+RHJhZyBIYW5kbGUge3tsYXlvdXRJdGVtPy5kYXRhVHlwZX19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIC0tPlxyXG4gICAgICAgIDwhLS1OQiBvcmRlcmFibGUgZGlyZWN0aXZlIGlzIG5vdCB1c2VkIGJ1dCBoYXMgYmVlbiBsZWZ0IGluIGZvciBub3cgYW5kIHNldCB0byBmYWxzZVxyXG4gICAgICAgICAgb3RoZXJ3aXNlIHRoZSBjb21waWxlciB3b24ndCByZWNvZ25pemUgZGF0YUluZGV4IGFuZCBvdGhlciBkZXBlbmRlbnQgYXR0cmlidXRlc1xyXG4gICAgICAgIC0tPlxyXG4gICAgICAgIDwhLS1cclxuICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgW2RhdGFJbmRleF09XCJsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IChkYXRhSW5kZXgoKSB8fCBbXSlcIlxyXG4gICAgICAgICAgW2xheW91dEluZGV4XT1cIihsYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQoaSlcIlxyXG4gICAgICAgICAgW2xheW91dE5vZGVdPVwibGF5b3V0SXRlbVwiXHJcbiAgICAgICAgICBbb3JkZXJhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxzZWxlY3QtZnJhbWV3b3JrLXdpZGdldCAqbmdJZj1cInNob3dXaWRnZXQobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgICAgICBbZGF0YUluZGV4XT1cImxheW91dEl0ZW0/LmFycmF5SXRlbSA/IChkYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpIDogKGRhdGFJbmRleCgpIHx8IFtdKVwiXHJcbiAgICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgICAgW2xheW91dE5vZGVdPVwibGF5b3V0SXRlbVwiPjwvc2VsZWN0LWZyYW1ld29yay13aWRnZXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgLS0+XHJcbiAgICAgIDxzZWxlY3QtZnJhbWV3b3JrLXdpZGdldCAqbmdJZj1cInNob3dXaWRnZXQobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgICAgICBbZGF0YUluZGV4XT1cImdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtLGkpLmRhdGFJbmRleFwiXHJcbiAgICAgICAgICAgIFtsYXlvdXRJbmRleF09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5sYXlvdXRJbmRleFwiXHJcbiAgICAgICAgICAgIFtsYXlvdXROb2RlXT1cImdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtLGkpLmxheW91dE5vZGVcIj5cclxuXHRcdCAgPC9zZWxlY3QtZnJhbWV3b3JrLXdpZGdldD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgW2RyYWdnYWJsZT10cnVlXSB7XHJcbiAgICAgIHRyYW5zaXRpb246IGFsbCAxNTBtcyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKTtcclxuICAgIH1cclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV06aG92ZXIge1xyXG4gICAgICBjdXJzb3I6IG1vdmU7XHJcbiAgICAgIGJveC1zaGFkb3c6IDJweCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAxMDtcclxuICAgICAgbWFyZ2luLXRvcDogLTFweDtcclxuICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XHJcbiAgICAgIG1hcmdpbi1yaWdodDogMXB4O1xyXG4gICAgICBtYXJnaW4tYm90dG9tOiAxcHg7XHJcbiAgICB9XHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdLmRyYWctdGFyZ2V0LXRvcCB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgLTJweCAwICMwMDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjA7XHJcbiAgICB9XHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdLmRyYWctdGFyZ2V0LWJvdHRvbSB7XHJcbiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDAgIzAwMDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyMDtcclxuICAgIH1cclxuICAgIC5mbGV4LWluaGVyaXR7XHJcbiAgICAgIGRpc3BsYXk6aW5oZXJpdDtcclxuICAgICAgZmxleC1mbG93OmluaGVyaXQ7XHJcbiAgICAgIGZsZXgtd3JhcDppbmhlcml0O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjppbmhlcml0O1xyXG4gICAgICB3aWR0aDoxMDAlXHJcbiAgICB9XHJcbiAgYF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOkNoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm9vdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LE9uQ2hhbmdlcyB7XHJcblxyXG4gIHByaXZhdGUganNmID0gaW5qZWN0KEpzb25TY2hlbWFGb3JtU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIG9wdGlvbnM6IGFueTtcclxuICByZWFkb25seSBkYXRhSW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXRJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dCA9IGlucHV0PGFueVtdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGlzT3JkZXJhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBpc0ZsZXhJdGVtID0gaW5wdXQoZmFsc2UpO1xyXG4gIHJlYWRvbmx5IG1lbW9pemF0aW9uRW5hYmxlZD0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIGRhdGFDaGFuZ2VzU3ViczpTdWJzY3JpcHRpb247XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgLy8gbW9zdCBsaWtlbHkgd2h5IHRoaXMgZXZlbnQgaXMgdXNlZCBpcyB0byBnZXQgdGhlIGRyYWdnaW5nIGVsZW1lbnQncyBjdXJyZW50IGluZGV4XHJcbiAgICBsZXQgc3JjSW5kPWV2ZW50LnByZXZpb3VzSW5kZXg7XHJcbiAgICBsZXQgdHJnSW5kPWV2ZW50LmN1cnJlbnRJbmRleDtcclxuICAgIGxldCBsYXlvdXRJdGVtPXRoaXMubGF5b3V0KClbdHJnSW5kXTtcclxuICAgIGxldCBkYXRhSW5kPWxheW91dEl0ZW0/LmFycmF5SXRlbSA/ICh0aGlzLmRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQodHJnSW5kKSA6ICh0aGlzLmRhdGFJbmRleCgpIHx8IFtdKTtcclxuICAgIGxldCBsYXlvdXRJbmQ9KHRoaXMubGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KHRyZ0luZClcclxuICAgIGxldCBpdGVtQ3R4OmFueT17XHJcbiAgICAgIGRhdGFJbmRleDooKT0+e3JldHVybiBkYXRhSW5kfSxcclxuICAgICAgbGF5b3V0SW5kZXg6KCk9PntyZXR1cm4gbGF5b3V0SW5kfSxcclxuICAgICAgbGF5b3V0Tm9kZTooKT0+e3JldHVybiBsYXlvdXRJdGVtfSxcclxuICAgIH1cclxuICAgIHRoaXMuanNmLm1vdmVBcnJheUl0ZW0oaXRlbUN0eCwgc3JjSW5kLCB0cmdJbmQsdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBpc0RyYWdnYWJsZShub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ9bm9kZS5hcnJheUl0ZW0gJiYgbm9kZS50eXBlICE9PSAnJHJlZicgJiZcclxuICAgIG5vZGUuYXJyYXlJdGVtVHlwZSA9PT0gJ2xpc3QnICYmIHRoaXMuaXNPcmRlcmFibGUoKSAhPT0gZmFsc2VcclxuICAgICYmIG5vZGUudHlwZSAhPT0nc3VibWl0J1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vVE9ETyBhbHNvIG5lZWQgdG8gdGhpbmsgb2Ygb3RoZXIgdHlwZXMgc3VjaCBhcyBidXR0b24gd2hpY2ggY2FuIGJlXHJcbiAgLy9jcmVhdGVkIGJ5IGFuIGFyYml0cmFyeSBsYXlvdXRcclxuICBpc0ZpeGVkKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdD1ub2RlLnR5cGUgPT0gJyRyZWYnO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByZWRpY2F0ZSBmdW5jdGlvbiB0aGF0IGRpc2FsbG93cyAnJHJlZicgaXRlbSBzb3J0c1xyXG4gICAqIE5CIGRlY2xhcmVkIGFzIGEgdmFyIGluc3RlYWQgb2YgYSBmdW5jdGlvbiBcclxuICAgKiBsaWtlIHNvcnRQcmVkaWNhdGUoaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzxudW1iZXI+KXsuLn1cclxuICAgKiBzaW5jZSAndGhpcycgaXMgYm91bmQgdG8gdGhlIGRyYWdsaXN0IGFuZCBkb2Vzbid0IHJlZmVyZW5jZSB0aGVcclxuICAgKiBGbGV4TGF5b3V0Um9vdENvbXBvbmVudCBpbnN0YW5jZVxyXG4gICAqL1xyXG4gICAgLy9UT0RPIGFsc28gbmVlZCB0byB0aGluayBvZiBvdGhlciB0eXBlcyBzdWNoIGFzIGJ1dHRvbiB3aGljaCBjYW4gYmVcclxuICAgIC8vY3JlYXRlZCBieSBhbiBhcmJpdHJhcnkgbGF5b3V0XHJcbiAgICAvL21pZ2h0IG5vdCBiZSBuZWVkZWQgYWRkZWQgY29uZGl0aW9uIHRvIFtjZGtEcmFnRGlzYWJsZWRdXHJcbiAgICBzb3J0UHJlZGljYXRlPShpbmRleDogbnVtYmVyLCBpdGVtOiBDZGtEcmFnPG51bWJlcj4pPT4ge1xyXG4gICAgICBsZXQgbGF5b3V0SXRlbT10aGlzLmxheW91dCgpW2luZGV4XTtcclxuICAgICAgbGV0IHJlc3VsdD10aGlzLmlzRHJhZ2dhYmxlKGxheW91dEl0ZW0pO1xyXG4gICAgICAvL2xheW91dEl0ZW0udHlwZSAhPSAnJHJlZic7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gIC8vIFNldCBhdHRyaWJ1dGVzIGZvciBmbGV4Ym94IGNoaWxkXHJcbiAgLy8gKGNvbnRhaW5lciBhdHRyaWJ1dGVzIGFyZSBzZXQgaW4gc2VjdGlvbi5jb21wb25lbnQpXHJcbiAgZ2V0RmxleEF0dHJpYnV0ZShub2RlOiBhbnksIGF0dHJpYnV0ZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IFsnZmxleC1ncm93JywgJ2ZsZXgtc2hyaW5rJywgJ2ZsZXgtYmFzaXMnXS5pbmRleE9mKGF0dHJpYnV0ZSk7XHJcbiAgICByZXR1cm4gKChub2RlLm9wdGlvbnMgfHwge30pLmZsZXggfHwgJycpLnNwbGl0KC9cXHMrLylbaW5kZXhdIHx8XHJcbiAgICAgIChub2RlLm9wdGlvbnMgfHwge30pW2F0dHJpYnV0ZV0gfHwgWycxJywgJzEnLCAnYXV0byddW2luZGV4XTtcclxuICB9XHJcblxyXG4gIC8vcHJpdmF0ZSBzZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIHsgZGF0YUluZGV4OiBhbnlbXSwgbGF5b3V0SW5kZXg6IGFueVtdLCBsYXlvdXROb2RlOiBhbnkgfT4oKTtcclxuXHJcbiAgLy9UT0RPIHJldmlldyBjYWNoaW5nLWlmIGZvcm0gZmllbGQgdmFsdWVzIGNoYW5nZSwgdGhlIGNoYW5nZXMgYXJlIG5vdCBwcm9wYWdhdGVkXHJcblxyXG4gIC8qXHJcbiAgZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSB7XHJcbiAgICAvLyBDcmVhdGUgYSB1bmlxdWUga2V5IGJhc2VkIG9uIHRoZSBsYXlvdXRJdGVtIGFuZCBpbmRleFxyXG4gICAgY29uc3QgY2FjaGVLZXkgPSBgJHtsYXlvdXRJdGVtLl9pZH0tJHtpfWA7XHJcbiAgXHJcbiAgICAvLyBJZiB0aGUgcmVzdWx0IGlzIGFscmVhZHkgaW4gdGhlIGNhY2hlLCByZXR1cm4gaXRcclxuICAgIGlmKHRoaXMuZW5hYmxlQ2FjaGluZyl7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGUuaGFzKGNhY2hlS2V5KSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGUuZ2V0KGNhY2hlS2V5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBJZiBub3QgY2FjaGVkLCBjYWxjdWxhdGUgdGhlIHZhbHVlcyAoYXNzdW1pbmcgZGF0YUluZGV4KCkgYW5kIGxheW91dEluZGV4KCkgYXJlIGZ1bmN0aW9ucylcclxuICAgIGNvbnN0IGRhdGFJbmRleCA9IGxheW91dEl0ZW0/LmFycmF5SXRlbSA/ICh0aGlzLmRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQoaSkgOiAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSk7XHJcbiAgICBjb25zdCBsYXlvdXRJbmRleCA9ICh0aGlzLmxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdChpKTtcclxuXHJcbiAgICAvLyBTYXZlIHRoZSByZXN1bHQgaW4gdGhlIGNhY2hlXHJcbiAgICBjb25zdCByZXN1bHQgPSB7IGRhdGFJbmRleCwgbGF5b3V0SW5kZXgsIGxheW91dE5vZGU6IGxheW91dEl0ZW0gfTtcclxuICAgIGlmKHRoaXMuZW5hYmxlQ2FjaGluZyl7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZS5zZXQoY2FjaGVLZXksIHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbiAgICAqL1xyXG5cclxuICBwcml2YXRlIF9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNSYXcgPSAobGF5b3V0SXRlbTogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgIGNvbnN0IGRhdGFJbmRleFZhbHVlID0gdGhpcy5kYXRhSW5kZXgoKSB8fCBbXTtcclxuICAgIGNvbnN0IGxheW91dEluZGV4VmFsdWUgPSB0aGlzLmxheW91dEluZGV4KCkgfHwgW107XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGF5b3V0Tm9kZTogbGF5b3V0SXRlbSxcclxuICAgICAgbGF5b3V0SW5kZXg6IFsuLi5sYXlvdXRJbmRleFZhbHVlLCBpXSxcclxuICAgICAgZGF0YUluZGV4OiBsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyBbLi4uZGF0YUluZGV4VmFsdWUsIGldIDogZGF0YUluZGV4VmFsdWUsXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIC8vIERlZmluZSBhIHNlcGFyYXRlIGZ1bmN0aW9uIHRvIGhvbGQgdGhlIG1lbW9pemVkIHZlcnNpb25cclxuICBwcml2YXRlIF9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZCA9IG1lbW9pemUoXHJcbiAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNSYXcsXHJcbiAgICAobGF5b3V0SXRlbTogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgbGF5b3V0SXRlbUtleSA9IGxheW91dEl0ZW0/LmlkID8/IEpTT04uc3RyaW5naWZ5KGxheW91dEl0ZW0pO1xyXG4gICAgICByZXR1cm4gYCR7bGF5b3V0SXRlbUtleX0tJHtpfWA7XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgLy8gVGhpcyBpcyB0aGUgcHVibGljIGZ1bmN0aW9uIHRoYXQgdGhlIHRlbXBsYXRlIGNhbGxzXHJcbiAgZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5tZW1vaXphdGlvbkVuYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c01lbW9pemVkKGxheW91dEl0ZW0sIGkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c1JhdyhsYXlvdXRJdGVtLCBpKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9UT0RPIGludmVzdGlnYXRlLWNhdXNpbmcgbGF5b3V0IGlzc3VlIHdpdGggbGF5b3V0LGZvciBub3dcclxuICAvL3JlbW92ZWQgZnJvbSB0ZW1wbGF0ZVxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGl0ZW0uX2lkID8/IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgXHJcblxyXG4gIC8qXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gSWYgYW55IG9mIHRoZSBpbnB1dCBwcm9wZXJ0aWVzIGNoYW5nZSwgY2xlYXIgdGhlIGNhY2hlXHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhSW5kZXggfHwgY2hhbmdlcy5sYXlvdXRJbmRleCB8fCBjaGFuZ2VzLmxheW91dCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKCk7IC8vIENsZWFyIHRoZSBlbnRpcmUgY2FjaGVcclxuICAgIH1cclxuICB9XHJcbiAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snbGF5b3V0J10gfHwgY2hhbmdlc1snZGF0YUluZGV4J10gfHwgY2hhbmdlc1snbGF5b3V0SW5kZXgnXSkge1xyXG4gICAgICAvLyBDbGVhciB0aGUgZW50aXJlIGNhY2hlIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvblxyXG4gICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBzaG93V2lkZ2V0KGxheW91dE5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuanNmLmV2YWx1YXRlQ29uZGl0aW9uKGxheW91dE5vZGUsIHRoaXMuZGF0YUluZGV4KCkpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgaWYodGhpcy5tZW1vaXphdGlvbkVuYWJsZWQpe1xyXG4gICAgICAgIHRoaXMuanNmLmRhdGFDaGFuZ2VzLnN1YnNjcmliZSgodmFsKT0+e1xyXG4gICAgICAgICAgLy90aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKCk7XHJcbiAgICAgICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgICAgIC8vVE9ETy1maXggZm9yIG5vdyBjaGFuZ2VkIHRvIGRldGVjdENoYW5nZXMtXHJcbiAgICAgICAgLy91c2VkIHRvIHVwZGF0ZWQgdGhlIGR5bmFtaWMgdGl0bGVzIGluIHRhYiBjb21wbmVudHMgXHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAvLyB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7LWJyZWFrcyBvbmVPZi8gbWF0ZGF0ZXBpY2tlclxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAvL3RoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZT8uY2xlYXIoKVxyXG4gICAgICAvL3RoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZT1udWxsO1xyXG4gICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLmRhdGFDaGFuZ2VzU3Vicz8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgXHJcblxyXG59XHJcbiJdfQ==