@wemake4u/form-player-se 1.0.35 → 1.0.37

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 (41) hide show
  1. package/README.md +17 -0
  2. package/THIRD_PARTY_LICENSES.txt +73 -0
  3. package/esm2022/lib/directives/date.directive.mjs +3 -3
  4. package/esm2022/lib/directives/datetime.directive.mjs +199 -0
  5. package/esm2022/lib/directives/tabcontrol.directive.mjs +2 -2
  6. package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +26 -12
  7. package/esm2022/lib/dynamic-host/dynamic-host.component.mjs +14 -3
  8. package/esm2022/lib/locale/locale-de.mjs +3 -2
  9. package/esm2022/lib/locale/locale-en.mjs +3 -2
  10. package/esm2022/lib/locale/locale-es.mjs +3 -2
  11. package/esm2022/lib/locale/locale-fr.mjs +3 -2
  12. package/esm2022/lib/locale/locale-it.mjs +3 -2
  13. package/esm2022/lib/locale/locale-pt.mjs +3 -2
  14. package/esm2022/lib/services/autofocus.service.mjs +22 -0
  15. package/esm2022/lib/services/grid.service.mjs +2 -2
  16. package/esm2022/lib/services/validation.service.mjs +30 -3
  17. package/esm2022/lib/utils/date.mjs +59 -0
  18. package/esm2022/lib/utils/focusable.mjs +6 -5
  19. package/fesm2022/wemake4u-form-player-se.mjs +356 -31
  20. package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
  21. package/lib/components/deleteRowRenderer/deleteRowRenderer.component.d.ts +1 -0
  22. package/lib/components/objectURLRenderer/objectURLRenderer.component.d.ts +1 -0
  23. package/lib/components/setFilter/setFilter.component.d.ts +1 -0
  24. package/lib/dialog/dialog.component.d.ts +7 -0
  25. package/lib/directives/date.directive.d.ts +2 -0
  26. package/lib/directives/datetime.directive.d.ts +42 -0
  27. package/lib/dynamic-fields/dynamic-fields.component.d.ts +12 -1
  28. package/lib/dynamic-form/dynamic-form.component.d.ts +7 -0
  29. package/lib/dynamic-host/dynamic-host.component.d.ts +1 -0
  30. package/lib/locale/locale-de.d.ts +1 -0
  31. package/lib/locale/locale-en.d.ts +1 -0
  32. package/lib/locale/locale-es.d.ts +1 -0
  33. package/lib/locale/locale-fr.d.ts +1 -0
  34. package/lib/locale/locale-it.d.ts +1 -0
  35. package/lib/locale/locale-pt.d.ts +1 -0
  36. package/lib/locale/locale.d.ts +7 -0
  37. package/lib/services/autofocus.service.d.ts +8 -0
  38. package/lib/services/validation.service.d.ts +5 -0
  39. package/lib/utils/date.d.ts +6 -0
  40. package/lib/utils/focusable.d.ts +1 -1
  41. package/package.json +2 -1
@@ -39,12 +39,13 @@ export function getFocusables(el, firstOnly = false) {
39
39
  }
40
40
  return result;
41
41
  }
42
- export function setFocus(el) {
42
+ export function setFocus(el, preventScroll = false) {
43
43
  const focusables = getFocusables(el, true);
44
44
  if (focusables.length === 0) {
45
- return false;
45
+ return null;
46
46
  }
47
- focusables[0].focus();
48
- return true;
47
+ const target = focusables[0];
48
+ target.focus({ preventScroll });
49
+ return target;
49
50
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsWUFBWSxDQUFDLE9BQW9CO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ3hDLHNFQUFzRTtRQUN0RSwyRUFBMkU7UUFDM0Usb0RBQW9ELENBQ3JELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxPQUFvQjtJQUNyQyxJQUFJLEVBQUUsR0FBdUIsT0FBTyxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1RSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBb0I7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQzFDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztXQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEtBQUssT0FBTyxDQUFDO0lBQ3pELElBQUksT0FBTyxDQUFDLGVBQWUsS0FBSyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDcEQsT0FBTyxDQUFDLFdBQVcsSUFBSSxpQkFBaUIsQ0FBQztRQUN2QyxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7UUFDN0IsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNO1FBQ3hCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDakMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSztJQUM5RCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFlO0lBQ3RDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRDYW5kaWRhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcclxuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxyXG4gICAgJ2FbaHJlZl0sIGFyZWFbaHJlZl0sIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgJyArXHJcbiAgICAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCBpZnJhbWUsIG9iamVjdCwgZW1iZWQsICcgK1xyXG4gICAgJ1t0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSwgW2NvbnRlbnRlZGl0YWJsZV0nXHJcbiAgKSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmlzaWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCBlbDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDtcclxuICB3aGlsZSAoZWwpIHtcclxuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xyXG4gICAgaWYgKHN0eWxlLmRpc3BsYXkgPT09ICdub25lJyB8fCBzdHlsZS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xyXG4gIH1cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGb2N1c2FibGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG4gIGNvbnN0IGhhc1RhYkluZGV4ID0gZWxlbWVudC50YWJJbmRleCA+PSAwO1xyXG4gIGNvbnN0IGlzQ29udGVudEVkaXRhYmxlID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpXHJcbiAgICAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykgIT09ICdmYWxzZSc7XHJcbiAgaWYgKGVsZW1lbnQuY29udGVudEVkaXRhYmxlID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XHJcbiAgcmV0dXJuIChoYXNUYWJJbmRleCB8fCBpc0NvbnRlbnRFZGl0YWJsZSkgJiZcclxuICAgIHN0eWxlLnZpc2liaWxpdHkgIT09ICdoaWRkZW4nICYmXHJcbiAgICBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiZcclxuICAgICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxyXG4gICAgaXNWaXNpYmxlKGVsZW1lbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlcyhlbDogSFRNTEVsZW1lbnQsIGZpcnN0T25seSA9IGZhbHNlKTogSFRNTEVsZW1lbnRbXSB7XHJcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldENhbmRpZGF0ZShlbCk7XHJcbiAgY29uc3QgcmVzdWx0OiBIVE1MRWxlbWVudFtdID0gW107XHJcbiAgZm9yIChjb25zdCBmb2N1c2FibGVFbCBvZiBjYW5kaWRhdGVzKSB7ICAgIFxyXG4gICAgaWYgKGlzRm9jdXNhYmxlKGZvY3VzYWJsZUVsKSkge1xyXG4gICAgICByZXN1bHQucHVzaChmb2N1c2FibGVFbCk7XHJcbiAgICAgIGlmIChmaXJzdE9ubHkpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Rm9jdXMoZWw6IEhUTUxFbGVtZW50KSB7XHJcbiAgY29uc3QgZm9jdXNhYmxlcyA9IGdldEZvY3VzYWJsZXMoZWwsIHRydWUpOyAgXHJcbiAgaWYgKGZvY3VzYWJsZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGZvY3VzYWJsZXNbMF0uZm9jdXMoKTtcclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsWUFBWSxDQUFDLE9BQW9CO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ3hDLHNFQUFzRTtRQUN0RSwyRUFBMkU7UUFDM0Usb0RBQW9ELENBQ3JELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxPQUFvQjtJQUNyQyxJQUFJLEVBQUUsR0FBdUIsT0FBTyxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1RSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBb0I7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQzFDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztXQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEtBQUssT0FBTyxDQUFDO0lBQ3pELElBQUksT0FBTyxDQUFDLGVBQWUsS0FBSyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDcEQsT0FBTyxDQUFDLFdBQVcsSUFBSSxpQkFBaUIsQ0FBQztRQUN2QyxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7UUFDN0IsS0FBSyxDQUFDLE9BQU8sS0FBSyxNQUFNO1FBQ3hCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFDakMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSztJQUM5RCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEMsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxLQUFLLE1BQU0sV0FBVyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFlLEVBQUUsZ0JBQXlCLEtBQUs7SUFDdEUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRWhDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRDYW5kaWRhdGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcclxuICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KFxyXG4gICAgJ2FbaHJlZl0sIGFyZWFbaHJlZl0sIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgJyArXHJcbiAgICAndGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBidXR0b246bm90KFtkaXNhYmxlZF0pLCBpZnJhbWUsIG9iamVjdCwgZW1iZWQsICcgK1xyXG4gICAgJ1t0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSwgW2NvbnRlbnRlZGl0YWJsZV0nXHJcbiAgKSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmlzaWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGxldCBlbDogSFRNTEVsZW1lbnQgfCBudWxsID0gZWxlbWVudDtcclxuICB3aGlsZSAoZWwpIHtcclxuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xyXG4gICAgaWYgKHN0eWxlLmRpc3BsYXkgPT09ICdub25lJyB8fCBzdHlsZS52aXNpYmlsaXR5ID09PSAnaGlkZGVuJykgcmV0dXJuIGZhbHNlO1xyXG4gICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xyXG4gIH1cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNGb2N1c2FibGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG4gIGNvbnN0IGhhc1RhYkluZGV4ID0gZWxlbWVudC50YWJJbmRleCA+PSAwO1xyXG4gIGNvbnN0IGlzQ29udGVudEVkaXRhYmxlID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpXHJcbiAgICAmJiBlbGVtZW50LmdldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykgIT09ICdmYWxzZSc7XHJcbiAgaWYgKGVsZW1lbnQuY29udGVudEVkaXRhYmxlID09PSBcInRydWVcIikgcmV0dXJuIHRydWU7XHJcbiAgcmV0dXJuIChoYXNUYWJJbmRleCB8fCBpc0NvbnRlbnRFZGl0YWJsZSkgJiZcclxuICAgIHN0eWxlLnZpc2liaWxpdHkgIT09ICdoaWRkZW4nICYmXHJcbiAgICBzdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiZcclxuICAgICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKSAmJlxyXG4gICAgaXNWaXNpYmxlKGVsZW1lbnQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9jdXNhYmxlcyhlbDogSFRNTEVsZW1lbnQsIGZpcnN0T25seSA9IGZhbHNlKTogSFRNTEVsZW1lbnRbXSB7XHJcbiAgY29uc3QgY2FuZGlkYXRlcyA9IGdldENhbmRpZGF0ZShlbCk7XHJcbiAgY29uc3QgcmVzdWx0OiBIVE1MRWxlbWVudFtdID0gW107XHJcbiAgZm9yIChjb25zdCBmb2N1c2FibGVFbCBvZiBjYW5kaWRhdGVzKSB7ICAgIFxyXG4gICAgaWYgKGlzRm9jdXNhYmxlKGZvY3VzYWJsZUVsKSkge1xyXG4gICAgICByZXN1bHQucHVzaChmb2N1c2FibGVFbCk7XHJcbiAgICAgIGlmIChmaXJzdE9ubHkpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Rm9jdXMoZWw6IEhUTUxFbGVtZW50LCBwcmV2ZW50U2Nyb2xsOiBib29sZWFuID0gZmFsc2UpOiBIVE1MRWxlbWVudCB8IG51bGwge1xyXG4gIGNvbnN0IGZvY3VzYWJsZXMgPSBnZXRGb2N1c2FibGVzKGVsLCB0cnVlKTsgIFxyXG4gIGlmIChmb2N1c2FibGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGNvbnN0IHRhcmdldCA9IGZvY3VzYWJsZXNbMF07XHJcblxyXG4gIHRhcmdldC5mb2N1cyh7IHByZXZlbnRTY3JvbGwgfSk7XHJcblxyXG4gIHJldHVybiB0YXJnZXQ7XHJcbn1cclxuIl19