@wemake4u/form-player-se 1.0.15 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directives/accordionpanel.directive.mjs +4 -3
- package/esm2022/lib/directives/repeat.directive.mjs +10 -8
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +3 -3
- package/esm2022/lib/dynamic-form/dynamic-form.component.mjs +24 -3
- package/esm2022/lib/utils/focusable.mjs +26 -22
- package/esm2022/lib/utils/patchForm.mjs +2 -1
- package/fesm2022/wemake4u-form-player-se.mjs +62 -34
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/directives/repeat.directive.d.ts +2 -1
- package/lib/dynamic-form/dynamic-form.component.d.ts +3 -1
- package/lib/utils/focusable.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,24 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// el.querySelectorAll(
|
|
4
|
-
// 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',
|
|
5
|
-
// )
|
|
6
|
-
// ).filter((focusableEl) => {
|
|
7
|
-
// return focusableEl.tabIndex !== -1 && !focusableEl.hasAttribute('disabled');
|
|
8
|
-
// });
|
|
9
|
-
//}
|
|
10
|
-
export function getFocusables(el) {
|
|
11
|
-
const candidates = el.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), ' +
|
|
1
|
+
function getCandidate(element) {
|
|
2
|
+
return Array.from(element.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), ' +
|
|
12
3
|
'textarea:not([disabled]), button:not([disabled]), iframe, object, embed, ' +
|
|
13
|
-
'[tabindex]:not([tabindex="-1"]), [contenteditable]');
|
|
14
|
-
return Array.from(candidates).filter((focusableEl) => {
|
|
15
|
-
const style = window.getComputedStyle(focusableEl);
|
|
16
|
-
return (focusableEl.tabIndex >= 0 &&
|
|
17
|
-
style.visibility !== 'hidden' &&
|
|
18
|
-
style.display !== 'none' &&
|
|
19
|
-
!focusableEl.hasAttribute('disabled') &&
|
|
20
|
-
isVisible(focusableEl));
|
|
21
|
-
});
|
|
4
|
+
'[tabindex]:not([tabindex="-1"]), [contenteditable]'));
|
|
22
5
|
}
|
|
23
6
|
function isVisible(element) {
|
|
24
7
|
let el = element;
|
|
@@ -30,12 +13,33 @@ function isVisible(element) {
|
|
|
30
13
|
}
|
|
31
14
|
return true;
|
|
32
15
|
}
|
|
16
|
+
function isFocusable(element) {
|
|
17
|
+
const style = window.getComputedStyle(element);
|
|
18
|
+
return element.tabIndex >= 0 &&
|
|
19
|
+
style.visibility !== 'hidden' &&
|
|
20
|
+
style.display !== 'none' &&
|
|
21
|
+
!element.hasAttribute('disabled') &&
|
|
22
|
+
isVisible(element);
|
|
23
|
+
}
|
|
24
|
+
export function getFocusables(el, firstOnly = false) {
|
|
25
|
+
const candidates = getCandidate(el);
|
|
26
|
+
const result = [];
|
|
27
|
+
for (const focusableEl of candidates) {
|
|
28
|
+
if (isFocusable(focusableEl)) {
|
|
29
|
+
result.push(focusableEl);
|
|
30
|
+
if (firstOnly) {
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
33
37
|
export function setFocus(el) {
|
|
34
|
-
const focusables = getFocusables(el);
|
|
38
|
+
const focusables = getFocusables(el, true);
|
|
35
39
|
if (focusables.length === 0) {
|
|
36
40
|
return false;
|
|
37
41
|
}
|
|
38
42
|
focusables[0].focus();
|
|
39
43
|
return true;
|
|
40
44
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvZm9jdXNhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsWUFBWSxDQUFDLE9BQW9CO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQ3hDLHNFQUFzRTtRQUN0RSwyRUFBMkU7UUFDM0Usb0RBQW9ELENBQ3JELENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxPQUFvQjtJQUNyQyxJQUFJLEVBQUUsR0FBdUIsT0FBTyxDQUFDO0lBQ3JDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM1RSxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsT0FBb0I7SUFDdkMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE9BQU8sT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUTtRQUM3QixLQUFLLENBQUMsT0FBTyxLQUFLLE1BQU07UUFDeEIsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQzlELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO0lBQ2pDLEtBQUssTUFBTSxXQUFXLElBQUksVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEVBQWU7SUFDdEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGdldENhbmRpZGF0ZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xyXG4gIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oXHJcbiAgICAnYVtocmVmXSwgYXJlYVtocmVmXSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCAnICtcclxuICAgICd0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIGlmcmFtZSwgb2JqZWN0LCBlbWJlZCwgJyArXHJcbiAgICAnW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pLCBbY29udGVudGVkaXRhYmxlXSdcclxuICApKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNWaXNpYmxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgbGV0IGVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbGVtZW50O1xyXG4gIHdoaWxlIChlbCkge1xyXG4gICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbCk7XHJcbiAgICBpZiAoc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnIHx8IHN0eWxlLnZpc2liaWxpdHkgPT09ICdoaWRkZW4nKSByZXR1cm4gZmFsc2U7XHJcbiAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XHJcbiAgfVxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0ZvY3VzYWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgcmV0dXJuIGVsZW1lbnQudGFiSW5kZXggPj0gMCAmJlxyXG4gICAgc3R5bGUudmlzaWJpbGl0eSAhPT0gJ2hpZGRlbicgJiZcclxuICAgIHN0eWxlLmRpc3BsYXkgIT09ICdub25lJyAmJlxyXG4gICAgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpICYmXHJcbiAgICBpc1Zpc2libGUoZWxlbWVudCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb2N1c2FibGVzKGVsOiBIVE1MRWxlbWVudCwgZmlyc3RPbmx5ID0gZmFsc2UpOiBIVE1MRWxlbWVudFtdIHtcclxuICBjb25zdCBjYW5kaWRhdGVzID0gZ2V0Q2FuZGlkYXRlKGVsKTtcclxuICBjb25zdCByZXN1bHQ6IEhUTUxFbGVtZW50W10gPSBbXTtcclxuICBmb3IgKGNvbnN0IGZvY3VzYWJsZUVsIG9mIGNhbmRpZGF0ZXMpIHsgICAgXHJcbiAgICBpZiAoaXNGb2N1c2FibGUoZm9jdXNhYmxlRWwpKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKGZvY3VzYWJsZUVsKTtcclxuICAgICAgaWYgKGZpcnN0T25seSkge1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRGb2N1cyhlbDogSFRNTEVsZW1lbnQpIHtcclxuICBjb25zdCBmb2N1c2FibGVzID0gZ2V0Rm9jdXNhYmxlcyhlbCwgdHJ1ZSk7ICBcclxuICBpZiAoZm9jdXNhYmxlcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgZm9jdXNhYmxlc1swXS5mb2N1cygpO1xyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcbiJdfQ==
|
|
@@ -37,6 +37,7 @@ export function patchForm(control, value, options) {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
else if (control instanceof FormArray) {
|
|
40
|
+
// qui ci vuole un intervento
|
|
40
41
|
(value || []).forEach((item, index) => {
|
|
41
42
|
if (control.at(index)) {
|
|
42
43
|
patchForm(control.at(index), item, options);
|
|
@@ -52,4 +53,4 @@ export function patchForm(control, value, options) {
|
|
|
52
53
|
error('Unsupported AbstractControl type.');
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2hGb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvdXRpbHMvcGF0Y2hGb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixNQUFNLFVBQVUsU0FBUyxDQUN2QixPQUF3QixFQUN4QixLQUFVLEVBQ1YsT0FBdUg7SUFHdkgsTUFBTSxjQUFjLEdBQUc7UUFDckIsU0FBUyxFQUFFLElBQUk7UUFDZixZQUFZLEVBQUUsS0FBSztRQUNuQixhQUFhLEVBQUUsSUFBSTtLQUNwQixDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUMvQixJQUFJLE9BQU8sRUFBRSxRQUFRO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQzFDLENBQUMsQ0FBQztJQUVGLE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7UUFDaEMsSUFBSSxPQUFPLEVBQUUsU0FBUztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUVGLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxHQUM1QyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFFdEMsSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFLENBQUM7UUFDbkMsSUFBSSxZQUFZLElBQUksT0FBTyxLQUFLLEtBQUssT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLGlDQUFpQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLGtCQUFrQixPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFNUYsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDakQsT0FBTztZQUNULENBQUM7WUFDRCxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztZQUM1RCxPQUFPO1FBQ1QsQ0FBQztRQUNELE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO1NBQ0ksSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFLENBQUM7UUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdkMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN4RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRywrQkFBK0IsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7U0FDSSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUUsQ0FBQztRQUN0Qyw2QkFBNkI7UUFFN0IsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ2pELElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN0QixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxTQUFTLEtBQUssb0RBQW9ELENBQUMsQ0FBQztnQkFDekUsTUFBTSxVQUFVLEdBQUksT0FBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM5QyxTQUFTLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO1NBQ0ksQ0FBQztRQUNKLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2hGb3JtKFxyXG4gIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcclxuICB2YWx1ZTogYW55LFxyXG4gIG9wdGlvbnM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW47IGVtaXRFcnJvcj86IGJvb2xlYW47IGVtaXRXYXJuPzogYm9vbGVhbjsgdmFsaWRhdGVUeXBlPzogYm9vbGVhbjsgZmFsbGJhY2tWYWx1ZT86IGFueSB9XHJcbik6IHZvaWQge1xyXG5cclxuICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHtcclxuICAgIGVtaXRFdmVudDogdHJ1ZSxcclxuICAgIHZhbGlkYXRlVHlwZTogZmFsc2UsXHJcbiAgICBmYWxsYmFja1ZhbHVlOiBudWxsXHJcbiAgfTtcclxuXHJcbiAgY29uc3Qgd2FybiA9IChtZXNzYWdlOiBzdHJpbmcpID0+IHtcclxuICAgIGlmIChvcHRpb25zPy5lbWl0V2FybilcclxuICAgICAgY29uc29sZS53YXJuKGBbcGF0Y2hGb3JtXSAke21lc3NhZ2V9YClcclxuICB9O1xyXG5cclxuICBjb25zdCBlcnJvciA9IChtZXNzYWdlOiBzdHJpbmcpID0+IHtcclxuICAgIGlmIChvcHRpb25zPy5lbWl0RXJyb3IpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICB9O1xyXG5cclxuICBjb25zdCB7IGVtaXRFdmVudCwgdmFsaWRhdGVUeXBlLCBmYWxsYmFja1ZhbHVlIH1cclxuICAgID0geyAuLi5kZWZhdWx0T3B0aW9ucywgLi4ub3B0aW9ucyB9O1xyXG5cclxuICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XHJcbiAgICBpZiAodmFsaWRhdGVUeXBlICYmIHR5cGVvZiB2YWx1ZSAhPT0gdHlwZW9mIGNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgd2FybihgVmFsdWUgdHlwZSBtaXNtYXRjaDogZXhwZWN0ZWQgJHt0eXBlb2YgY29udHJvbC52YWx1ZX0sIGJ1dCByZWNlaXZlZCAke3R5cGVvZiB2YWx1ZX1gKTtcclxuXHJcbiAgICAgIGlmIChmYWxsYmFja1ZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29udHJvbC5wYXRjaFZhbHVlKGZhbGxiYWNrVmFsdWUsIHsgZW1pdEV2ZW50IH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBlcnJvcignSW52YWxpZCB2YWx1ZSB0eXBlIGFuZCBubyBmYWxsYmFjayB2YWx1ZSBwcm92aWRlZC4nKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29udHJvbC5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudCB9KTtcclxuICB9XHJcbiAgZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgT2JqZWN0LmtleXModmFsdWUgfHwge30pLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBpZiAoY29udHJvbC5jb250cm9sc1trZXldKSB7XHJcbiAgICAgICAgcGF0Y2hGb3JtKGNvbnRyb2wuY29udHJvbHNba2V5XSwgdmFsdWVba2V5XSwgb3B0aW9ucyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2FybihgS2V5IFwiJHtrZXl9XCIgbm90IGZvdW5kIGluIHRoZSBGb3JtR3JvdXAuYCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAvLyBxdWkgY2kgdnVvbGUgdW4gaW50ZXJ2ZW50b1xyXG5cclxuICAgICh2YWx1ZSB8fCBbXSkuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChjb250cm9sLmF0KGluZGV4KSkge1xyXG4gICAgICAgIHBhdGNoRm9ybShjb250cm9sLmF0KGluZGV4KSwgaXRlbSwgb3B0aW9ucyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2FybihgSW5kZXggJHtpbmRleH0gbm90IGZvdW5kIGluIHRoZSBGb3JtQXJyYXkuIEFkZGluZyBkeW5hbWljYWxseS4uLmApO1xyXG4gICAgICAgIGNvbnN0IG5ld0NvbnRyb2wgPSAoY29udHJvbCBhcyBhbnkpLmFkZEl0ZW0oKTtcclxuICAgICAgICBwYXRjaEZvcm0obmV3Q29udHJvbCwgaXRlbSwgb3B0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBlbHNlIHtcclxuICAgIGVycm9yKCdVbnN1cHBvcnRlZCBBYnN0cmFjdENvbnRyb2wgdHlwZS4nKTtcclxuICB9XHJcbn1cclxuIl19
|