@wemake4u/form-player-se 1.0.34 → 1.0.36

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.
Files changed (44) hide show
  1. package/esm2022/lib/controls/tab.mjs +47 -1
  2. package/esm2022/lib/directives/grid.directive.mjs +3 -1
  3. package/esm2022/lib/directives/recursion.directive.mjs +18 -2
  4. package/esm2022/lib/directives/tabcontrol.directive.mjs +11 -1
  5. package/esm2022/lib/directives/text.directive.mjs +20 -2
  6. package/esm2022/lib/directives/valuesync.directive.mjs +63 -0
  7. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +27 -22
  8. package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +2 -2
  9. package/esm2022/lib/locale/locale-de.mjs +4 -2
  10. package/esm2022/lib/locale/locale-en.mjs +4 -2
  11. package/esm2022/lib/locale/locale-es.mjs +4 -2
  12. package/esm2022/lib/locale/locale-fr.mjs +4 -2
  13. package/esm2022/lib/locale/locale-it.mjs +4 -2
  14. package/esm2022/lib/locale/locale-pt.mjs +4 -2
  15. package/esm2022/lib/services/autofocus.service.mjs +22 -0
  16. package/esm2022/lib/services/form.service.mjs +1 -27
  17. package/esm2022/lib/services/grid.service.mjs +38 -4
  18. package/esm2022/lib/services/validation.service.mjs +30 -3
  19. package/esm2022/lib/utils/focusable.mjs +12 -6
  20. package/fesm2022/wemake4u-form-player-se.mjs +293 -69
  21. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  22. package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +2 -0
  23. package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +2 -0
  24. package/lib/components/setFilter/setFilter.component.d.ts +2 -0
  25. package/lib/controls/tab.d.ts +7 -0
  26. package/lib/dialog/dialog.component.d.ts +14 -0
  27. package/lib/directives/recursion.directive.d.ts +1 -0
  28. package/lib/directives/tabcontrol.directive.d.ts +1 -0
  29. package/lib/directives/text.directive.d.ts +3 -0
  30. package/lib/directives/valuesync.directive.d.ts +15 -0
  31. package/lib/dynamic-fields/dynamic-fields.component.d.ts +19 -2
  32. package/lib/dynamic-form/dynamic-form.component.d.ts +14 -0
  33. package/lib/locale/locale-de.d.ts +2 -0
  34. package/lib/locale/locale-en.d.ts +2 -0
  35. package/lib/locale/locale-es.d.ts +2 -0
  36. package/lib/locale/locale-fr.d.ts +2 -0
  37. package/lib/locale/locale-it.d.ts +2 -0
  38. package/lib/locale/locale-pt.d.ts +2 -0
  39. package/lib/locale/locale.d.ts +14 -0
  40. package/lib/services/autofocus.service.d.ts +8 -0
  41. package/lib/services/grid.service.d.ts +6 -0
  42. package/lib/services/validation.service.d.ts +5 -0
  43. package/lib/utils/focusable.d.ts +1 -1
  44. package/package.json +1 -1
@@ -15,7 +15,12 @@ function isVisible(element) {
15
15
  }
16
16
  function isFocusable(element) {
17
17
  const style = window.getComputedStyle(element);
18
- return element.tabIndex >= 0 &&
18
+ const hasTabIndex = element.tabIndex >= 0;
19
+ const isContentEditable = element.hasAttribute('contenteditable')
20
+ && element.getAttribute('contenteditable') !== 'false';
21
+ if (element.contentEditable === "true")
22
+ return true;
23
+ return (hasTabIndex || isContentEditable) &&
19
24
  style.visibility !== 'hidden' &&
20
25
  style.display !== 'none' &&
21
26
  !element.hasAttribute('disabled') &&
@@ -34,12 +39,13 @@ export function getFocusables(el, firstOnly = false) {
34
39
  }
35
40
  return result;
36
41
  }
37
- export function setFocus(el) {
42
+ export function setFocus(el, preventScroll = false) {
38
43
  const focusables = getFocusables(el, true);
39
44
  if (focusables.length === 0) {
40
- return false;
45
+ return null;
41
46
  }
42
- focusables[0].focus();
43
- return true;
47
+ const target = focusables[0];
48
+ target.focus({ preventScroll });
49
+ return target;
44
50
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsWUFBWSxDQUFDLE9BQW9CO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ3hDLHNFQUFzRTtRQUN0RSwyRUFBMkU7UUFDM0Usb0RBQW9ELENBQ3JELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxPQUFvQjtJQUNyQyxJQUFJLEVBQUUsR0FBdUIsT0FBTyxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1RSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBb0I7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE9BQU8sT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUTtRQUM3QixLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU07UUFDeEIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQzlELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLEtBQUssTUFBTSxXQUFXLElBQUksVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEVBQWU7SUFDdEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGdldENhbmRpZGF0ZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xyXG4gIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXHJcbiAgICAnYVtocmVmXSwgYXJlYVtocmVmXSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCAnICtcclxuICAgICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCwgJyArXHJcbiAgICAnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pLCBbY29udGVudGVkaXRhYmxlXSdcclxuICApKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNWaXNpYmxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgbGV0IGVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50O1xyXG4gIHdoaWxlIChlbCkge1xyXG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XHJcbiAgICBpZiAoc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnIHx8IHN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSByZXR1cm4gZmFsc2U7XHJcbiAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XHJcbiAgfVxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0ZvY3VzYWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgcmV0dXJuIGVsZW1lbnQudGFiSW5kZXggPj0gMCAmJlxyXG4gICAgc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbicgJiZcclxuICAgIHN0eWxlLmRpc3BsYXkgIT09ICdub25lJyAmJlxyXG4gICAgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpICYmXHJcbiAgICBpc1Zpc2libGUoZWxlbWVudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2N1c2FibGVzKGVsOiBIVE1MRWxlbWVudCwgZmlyc3RPbmx5ID0gZmFsc2UpOiBIVE1MRWxlbWVudFtdIHtcclxuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlKGVsKTtcclxuICBjb25zdCByZXN1bHQ6IEhUTUxFbGVtZW50W10gPSBbXTtcclxuICBmb3IgKGNvbnN0IGZvY3VzYWJsZUVsIG9mIGNhbmRpZGF0ZXMpIHsgICAgXHJcbiAgICBpZiAoaXNGb2N1c2FibGUoZm9jdXNhYmxlRWwpKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKGZvY3VzYWJsZUVsKTtcclxuICAgICAgaWYgKGZpcnN0T25seSkge1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRGb2N1cyhlbDogSFRNTEVsZW1lbnQpIHtcclxuICBjb25zdCBmb2N1c2FibGVzID0gZ2V0Rm9jdXNhYmxlcyhlbCwgdHJ1ZSk7ICBcclxuICBpZiAoZm9jdXNhYmxlcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgZm9jdXNhYmxlc1swXS5mb2N1cygpO1xyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsWUFBWSxDQUFDLE9BQW9CO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ3hDLHNFQUFzRTtRQUN0RSwyRUFBMkU7UUFDM0Usb0RBQW9ELENBQ3JELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxPQUFvQjtJQUNyQyxJQUFJLEVBQUUsR0FBdUIsT0FBTyxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1RSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBb0I7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQzFDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztXQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEtBQUssT0FBTyxDQUFDO0lBQ3pELElBQUksT0FBTyxDQUFDLGVBQWUsS0FBSyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDcEQsT0FBTyxDQUFDLFdBQVcsSUFBSSxpQkFBaUIsQ0FBQztRQUN2QyxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7UUFDN0IsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNO1FBQ3hCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDakMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSztJQUM5RCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFlLEVBQUUsZ0JBQXlCLEtBQUs7SUFDdEUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRWhDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRDYW5kaWRhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcclxuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxyXG4gICAgJ2FbaHJlZl0sIGFyZWFbaHJlZl0sIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgJyArXHJcbiAgICAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCBpZnJhbWUsIG9iamVjdCwgZW1iZWQsICcgK1xyXG4gICAgJ1t0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSwgW2NvbnRlbnRlZGl0YWJsZV0nXHJcbiAgKSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmlzaWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCBlbDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDtcclxuICB3aGlsZSAoZWwpIHtcclxuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xyXG4gICAgaWYgKHN0eWxlLmRpc3BsYXkgPT09ICdub25lJyB8fCBzdHlsZS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xyXG4gIH1cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGb2N1c2FibGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG4gIGNvbnN0IGhhc1RhYkluZGV4ID0gZWxlbWVudC50YWJJbmRleCA+PSAwO1xyXG4gIGNvbnN0IGlzQ29udGVudEVkaXRhYmxlID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpXHJcbiAgICAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykgIT09ICdmYWxzZSc7XHJcbiAgaWYgKGVsZW1lbnQuY29udGVudEVkaXRhYmxlID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XHJcbiAgcmV0dXJuIChoYXNUYWJJbmRleCB8fCBpc0NvbnRlbnRFZGl0YWJsZSkgJiZcclxuICAgIHN0eWxlLnZpc2liaWxpdHkgIT09ICdoaWRkZW4nICYmXHJcbiAgICBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiZcclxuICAgICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxyXG4gICAgaXNWaXNpYmxlKGVsZW1lbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlcyhlbDogSFRNTEVsZW1lbnQsIGZpcnN0T25seSA9IGZhbHNlKTogSFRNTEVsZW1lbnRbXSB7XHJcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldENhbmRpZGF0ZShlbCk7XHJcbiAgY29uc3QgcmVzdWx0OiBIVE1MRWxlbWVudFtdID0gW107XHJcbiAgZm9yIChjb25zdCBmb2N1c2FibGVFbCBvZiBjYW5kaWRhdGVzKSB7ICAgIFxyXG4gICAgaWYgKGlzRm9jdXNhYmxlKGZvY3VzYWJsZUVsKSkge1xyXG4gICAgICByZXN1bHQucHVzaChmb2N1c2FibGVFbCk7XHJcbiAgICAgIGlmIChmaXJzdE9ubHkpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Rm9jdXMoZWw6IEhUTUxFbGVtZW50LCBwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpOiBIVE1MRWxlbWVudCB8IG51bGwge1xyXG4gIGNvbnN0IGZvY3VzYWJsZXMgPSBnZXRGb2N1c2FibGVzKGVsLCB0cnVlKTsgIFxyXG4gIGlmIChmb2N1c2FibGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGNvbnN0IHRhcmdldCA9IGZvY3VzYWJsZXNbMF07XHJcblxyXG4gIHRhcmdldC5mb2N1cyh7IHByZXZlbnRTY3JvbGwgfSk7XHJcblxyXG4gIHJldHVybiB0YXJnZXQ7XHJcbn1cclxuIl19