ctt-puro 0.69.0 → 0.69.2
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/puro-script/puro-script.directive.mjs +6 -8
- package/esm2022/lib/directives/puro-slider/puro-slider.directive.mjs +15 -4
- package/fesm2022/ctt-puro.mjs +19 -10
- package/fesm2022/ctt-puro.mjs.map +1 -1
- package/lib/directives/puro-slider/puro-slider.directive.d.ts +1 -0
- package/package.json +1 -1
|
@@ -25,13 +25,11 @@ export class PuroScriptDirective {
|
|
|
25
25
|
return;
|
|
26
26
|
if (typeof $ === 'undefined')
|
|
27
27
|
return;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.runBrowserScripts();
|
|
34
|
-
}, 100);
|
|
28
|
+
requestAnimationFrame(() => {
|
|
29
|
+
requestAnimationFrame(() => {
|
|
30
|
+
this.runBrowserScripts();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
35
33
|
}
|
|
36
34
|
runBrowserScripts() {
|
|
37
35
|
if (!isPlatformBrowser(this.platformId))
|
|
@@ -302,4 +300,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
302
300
|
type: Inject,
|
|
303
301
|
args: [PLATFORM_ID]
|
|
304
302
|
}] }] });
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zY3JpcHQvcHVyby1zY3JpcHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGM0QsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUduQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUFFLE9BQU87WUFDaEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMxQyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQzVDLElBQUksT0FBTyxDQUFDLEtBQUssV0FBVztZQUFFLE9B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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEluamVjdCwgaW5wdXQsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlcGlja2VyTG9jYWxlVXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGVwaWNrZXItbG9jYWxlLnV0aWwnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5kZWNsYXJlIHZhciBqUXVlcnk6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbc2NyaXB0TG9hZGVyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUHVyb1NjcmlwdERpcmVjdGl2ZSB7XG4gICAgZGF0YUxvYWRlZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhTG9hZGVkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRTY3JpcHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkU2NyaXB0KCkge1xuICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgJCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybjtcblxuICAgICAgICAvLyBFdml0YXIgZG9ibGUgaW5pY2lhbGl6YWNpw7NuXG4gICAgICAgIGlmICgod2luZG93IGFzIGFueSkuX19QVVJPX1NDUklQVF9MT0FERURfXykgcmV0dXJuO1xuICAgICAgICAod2luZG93IGFzIGFueSkuX19QVVJPX1NDUklQVF9MT0FERURfXyA9IHRydWU7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJ1bkJyb3dzZXJTY3JpcHRzKCk7XG4gICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBydW5Ccm93c2VyU2NyaXB0cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIC8qIPCfjJAgRGV0ZWN0YXIgaWRpb21hIGFjdGl2byAqL1xuICAgICAgICBsZXQgY3VycmVudExhbmcgPSAnZXMnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgbGFuZ0F0dHIgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZztcbiAgICAgICAgICAgIGlmIChsYW5nQXR0cikgY3VycmVudExhbmcgPSBsYW5nQXR0cjtcbiAgICAgICAgICAgIGVsc2UgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFuZ09iaiA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykhKTtcbiAgICAgICAgICAgICAgICBpZiAobGFuZ09iai5sb2NhdGUpIGN1cnJlbnRMYW5nID0gbGFuZ09iai5sb2NhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge31cblxuICAgICAgICAvLyDwn5SkIE5vcm1hbGl6YXIgY8OzZGlnbyBkZSBpZGlvbWEgKHNvcG9ydGUgZXMtRVMsIGVuLUdCLCBkZS1ERSlcbiAgICAgICAgY3VycmVudExhbmcgPSAoY3VycmVudExhbmcuc3BsaXQoJy0nKVswXSB8fCAnZXMnKSBhcyAnZXMnIHwgJ2VuJyB8ICdkZSc7XG5cbiAgICAgICAgLy8g8J+Xk++4jyBSZWdpc3RyYXIgbG9jYWxlcyB5IGFwbGljYXIgaWRpb21hXG4gICAgICAgIERhdGVwaWNrZXJMb2NhbGVVdGlsLnNldExvY2FsZShEYXRlcGlja2VyTG9jYWxlVXRpbC5kZXRlY3RMYW5ndWFnZSgpKTtcblxuICAgICAgICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgICAgICAgKiAgICAgTMOTR0lDQSBQUklOQ0lQQUwgREUgU0NSSVBUU1xuICAgICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIC8qIC0tLSBBcnJvd3MgUG9zaXRpb24gRml4IC0tLSAqL1xuICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRzbGlkZXJDID0gJCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHNsaWRlckMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISRzbGlkZXJDLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgICAgICAgICAkKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3MnKT8uZWFjaChmdW5jdGlvbiAoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZXIgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFycm93cyA9IHNsaWRlci5zaWJsaW5ncygnLmpzLXNsaWRlci1hcnJvd3MnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGNfcG9zaXRpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodF9zZWxlY3RvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5maW5kKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lmhhc0NsYXNzKCdtb2JpbGUnKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMjc5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3RvciA9IHNsaWRlci5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lLm1vYmlsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5oYXNDbGFzcygnZGVza3RvcCcpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5pbm5lcldpZHRoID49IDEyODBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yID0gc2xpZGVyPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lLmRlc2t0b3AnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yID0gc2xpZGVyPy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yPy5vZmZzZXQoKT8udG9wIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0X3NlbGVjdG9yLnBhcmVudHMoJy5yZWxhdGl2ZScpLm9mZnNldCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LnRvcCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3Rvci5vdXRlckhlaWdodCgpIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJvd3MuY3NzKCd0b3AnLCBoZWlnaHQgKyAncHgnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGNfcG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoY2FsY19wb3NpdGlvbiwgNTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQod2luZG93KS5zY3JvbGwoY2FsY19wb3NpdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1zbGlkZXJfZml4LWFycm93cycpLCBqUXVlcnkpO1xuXG4gICAgICAgICAgICAvKiAtLS0gQWNjb3JkaW9uIC0tLSAqL1xuICAgICAgICAgICAgKGZ1bmN0aW9uIChhOiBOb2RlTGlzdE9mPEVsZW1lbnQ+LCAkOiBhbnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWEubGVuZ3RoKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAkKCcuanMtYWNjb3JkaW9uJylcbiAgICAgICAgICAgICAgICAgICAgLm9mZignY2xpY2snKVxuICAgICAgICAgICAgICAgICAgICAub24oJ2NsaWNrJywgZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWIgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRhYi5jbG9zZXN0KCcuZmFxX19pdGVtJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGFiLm5leHQoJy5mYXFfX2NvbnRlbnQnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJCgnLmZhcV9faXRlbS5hY3RpdmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5ub3QoaXRlbSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5mYXFfX2NvbnRlbnQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGlkZVVwKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udG9nZ2xlQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5zbGlkZVRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5qcy1hY2NvcmRpb24nKSwgalF1ZXJ5KTtcblxuICAgICAgICAgICAgLyogLS0tIEJvdG9uZXMgXCJWZXIgbcOhcyAvIG1lbm9zXCIgLS0tICovXG4gICAgICAgICAgICAoZnVuY3Rpb24gKGEsICQpIHtcbiAgICAgICAgICAgICAgICBpZiAoYS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCgnLmJ0bl9fbW9yZUxlc3MnKT8ub24oXG4gICAgICAgICAgICAgICAgICAgICAgICAnY2xpY2snLFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50LCBlOiBFdmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnV0dG9uID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uY2xvc2VzdCgnc2VjdGlvbicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLm1vcmUtY29udGVudCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBidXR0b24/LmNsb3Nlc3QoJ3NlY3Rpb24nKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuc2xpZGVUb2dnbGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGNvbnRlbnQuaXMoJzpoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi50b2dnbGVDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtb3JlTGVzcy0tYWN0aXZlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc0hpZGRlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5idG5fX21vcmVMZXNzJyksIGpRdWVyeSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBPY3VsdGFyIHRvYXN0IGFsIGhhY2VyIHNjcm9sbCAtLS0gKi9cbiAgICAgICAgICAgIChmdW5jdGlvbiAoJCkge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRiYW5uZXIgPSAkKCcuYmFubmVyJyk7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hlY2tCYW5uZXJWaXNpYmlsaXR5KCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYW5uZXJUb3AgPSAkYmFubmVyLm9mZnNldCgpPy50b3AgPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFubmVyQm90dG9tID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lclRvcCArICgkYmFubmVyLm91dGVySGVpZ2h0KCkgYXMgbnVtYmVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCkgPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRCb3R0b20gPSB2aWV3cG9ydFRvcCArICQod2luZG93KS5oZWlnaHQoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJCb3R0b20gPD0gdmlld3BvcnRUb3AgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lclRvcCA+PSB2aWV3cG9ydEJvdHRvbVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQoJ2JvZHknKS5yZW1vdmVDbGFzcygndC1vZmZlcnMgdG9hc3RzLS1vcGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJCh3aW5kb3cpLm9uKCdzY3JvbGwgcmVzaXplJywgY2hlY2tCYW5uZXJWaXNpYmlsaXR5KTtcbiAgICAgICAgICAgICAgICBjaGVja0Jhbm5lclZpc2liaWxpdHkoKTtcbiAgICAgICAgICAgIH0pKGpRdWVyeSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBTdWJjYW1wb3MgaHXDqXNwZWRlcyAtLS0gKi9cbiAgICAgICAgICAgICQoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxuICAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykubmV4dCgnLmpzLWZpZWxkU3ViJykuc2xpZGVUb2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgJCgnLmpzLWFwcGx5LWd1ZXN0cycpXG4gICAgICAgICAgICAgICAgLm9mZignY2xpY2snKVxuICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcykucGFyZW50cygnLmJhbm5lcl9fZmllbGRTdWInKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBwYXJzZUludCgkKCcjYWR1bHQnKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBwYXJzZUludCgkKCcjY2hpbGQnKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSByICsgYTtcbiAgICAgICAgICAgICAgICAgICAgZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGUuc2libGluZ3MoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5iYW5uZXJfX2ZpZWxkQ29udHJvbCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChuIDw9IDkgPyAnMCcgKyBuIDogbik7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJy5qcy1hcHBseS1ndWVzdHMxJylcbiAgICAgICAgICAgICAgICAub2ZmKCdjbGljaycpXG4gICAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKS5wYXJlbnRzKCcuYm9va2luZ19fZmllbGRTdWInKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHIgPSBwYXJzZUludCgkKCcjYWR1bHQxJykudmFsKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gcGFyc2VJbnQoJCgnI2NoaWxkMScpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbiA9IHIgKyBhO1xuICAgICAgICAgICAgICAgICAgICBlLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5zaWJsaW5ncygnLmpzLXBlcnNvbmFzLXN1YmZpZWxkcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLmJvb2tpbmdfX2ZpZWxkQ29udHJvbCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChuIDw9IDkgPyAnMCcgKyBuIDogbik7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBBY3R1YWxpemFjacOzbiBkaW7DoW1pY2EgZGUgbGFiZWxzIC0tLSAqL1xuICAgICAgICAgICAgJCgnLmJvb2tpbmdfX2ZpZWxkQ29udHJvbFt0eXBlPVwidGV4dFwiXScpLmVhY2goZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgIHRoaXM6IEhUTUxFbGVtZW50XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdHZhbHVlOiBhbnk7XG4gICAgICAgICAgICAgICAgY29uc3QgJGZpZWxkSW5uZXIgPSAkKHRoaXMpLnBhcmVudHMoJy5ib29raW5nX19maWVsZElubmVyJyk7XG4gICAgICAgICAgICAgICAgaWYgKCFkZWZhdWx0dmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHZhbHVlID0gJGZpZWxkSW5uZXIuYXR0cignc3R5bGUnKSB8fCAnJztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAkKHRoaXMpLm9uKCdrZXl1cCcsIGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gJCh0aGlzKS52YWwoKS5sZW5ndGggKiAxLjM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0TGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZElubmVyLmF0dHIoJ3N0eWxlJywgZGVmYXVsdHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmaWVsZElubmVyLmNzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1sYWJlbExlZnRQb3NpdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dExlbmd0aCArICdyZW0nXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgICAgICAqICAgICAgICAgIERBVEVQSUNLRVJcbiAgICAgICAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4gICAgICAgICAgICBjb25zdCBpbml0RGF0ZXBpY2tlciA9IChzZWxlY3Rvcjogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgJChzZWxlY3RvcikuZWFjaChmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQXBsaWNhciBpZGlvbWEgYW50ZXMgZGUgaW5pY2lhbGl6YXLDp1xuICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5kZXRlY3RMYW5ndWFnZSgpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gRGVzdHJ1aXIgYW50ZXJpb3Igc2kgeWEgZXhpc3TDrWFcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoJ2hhc0RhdGVwaWNrZXInKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRlcGlja2VyKCdkZXN0cm95Jyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBJbmljaWFsaXphclxuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmRhdGVwaWNrZXIoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FuaW06ICdmYWRlSW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlTW9udGg6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VZZWFyOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd090aGVyTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0T3RoZXJNb250aHM6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVTaG93OiBmdW5jdGlvbiAoaW5wdXQ6IEhUTUxFbGVtZW50LCBpbnN0OiBhbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGlucHV0ID0gJChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0T2Zmc2V0ID0gJGlucHV0Lm9mZnNldCgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRIZWlnaHQgPSAkaW5wdXQub3V0ZXJIZWlnaHQoKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRkcERpdiA9IGluc3QuZHBEaXY7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZHBIZWlnaHQgPSAkZHBEaXYub3V0ZXJIZWlnaHQoKSB8fCAyNjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSAkKHdpbmRvdykuaGVpZ2h0KCkhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFjZUFib3ZlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0T2Zmc2V0LnRvcCAtIHZpZXdwb3J0VG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGFjZUJlbG93ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0IC0gKHNwYWNlQWJvdmUgKyBpbnB1dEhlaWdodCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvd0Fib3ZlID0gc3BhY2VBYm92ZSA+IHNwYWNlQmVsb3c7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRwRGl2LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHNob3dBYm92ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaW5wdXRPZmZzZXQudG9wIC0gZHBIZWlnaHQgLSA4ICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaW5wdXRPZmZzZXQudG9wICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0SGVpZ2h0ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDggK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGlucHV0T2Zmc2V0LmxlZnQgKyAncHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiA5OTk5OSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBJbmljaWFsaXphciBkYXRlcGlja2Vyc1xuICAgICAgICAgICAgaW5pdERhdGVwaWNrZXIoJ1tkYXRhLXRvZ2dsZT1cImRhdGVwaWNrZXJcIl0nKTtcbiAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyMVwiXScpO1xuXG4gICAgICAgICAgICAvLyDwn5SBIFJlYXBsaWNhciBpZGlvbWEgY3VhbmRvIGNhbWJpZSBlbiBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ2xhbmd1YWdlJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsYW5nID0gJ2VzJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2JqLmxvY2F0ZSkgbGFuZyA9IG9iai5sb2NhdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9XG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5nID0gKGxhbmcuc3BsaXQoJy0nKVswXSB8fCAnZXMnKSBhc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJ2VzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJ2VuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgJ2RlJztcbiAgICAgICAgICAgICAgICAgICAgICAgIERhdGVwaWNrZXJMb2NhbGVVdGlsLnNldExvY2FsZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5kZXRlY3RMYW5ndWFnZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdERhdGVwaWNrZXIoJ1tkYXRhLXRvZ2dsZT1cImRhdGVwaWNrZXJcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyMVwiXScpO1xuICAgICAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICAvKiAtLS0gU3BvdGlmeSBQbGF5ZXIgLS0tICovXG4gICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLnNwb3RpZnlQbGF5ZXJfX2FsYnVtJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChjb250YWluZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdWRpbyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAnLnNwb3RpZnlQbGF5ZXJfX21wMydcbiAgICAgICAgICAgICAgICApIGFzIGFueTtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGF5UGF1c2VCdXR0b24gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19hbGJ1bVBsYXlQYXVzZSdcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uPy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGF1ZGlvPy5wYXVzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zcG90aWZ5UGxheWVyX19tcDMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChvdGhlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlciAhPT0gYXVkaW8pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdGhlckJ1dHRvbiA9IG90aGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNsb3Nlc3QoJy5zcG90aWZ5UGxheWVyX19hbGJ1bScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuc3BvdGlmeVBsYXllcl9fYWxidW1QbGF5UGF1c2UnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW8ucGxheSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uLmNsYXNzTGlzdC5hZGQoJ3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBhdXNlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwbGF5UGF1c2VCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgncGxheScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zY3JpcHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zY3JpcHQvcHVyby1zY3JpcHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQVMxRSxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFGM0QsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUduQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFFaEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUFFLE9BQU87WUFDaEQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNyQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXO1lBQUUsT0FBTztRQUMxQyxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQzVDLElBQUksT0FBTyxDQUFDLEtBQUssV0FBVztZQUFFLE9BQU87UUFFckMscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBQ2hELCtCQUErQjtRQUMvQixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSTtZQUNBLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQy9DLElBQUksUUFBUTtnQkFBRSxXQUFXLEdBQUcsUUFBUSxDQUFDO2lCQUNoQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUUsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLE9BQU8sQ0FBQyxNQUFNO29CQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO2FBQ3BEO1NBQ0o7UUFBQyxNQUFNLEdBQUU7UUFFViwrREFBK0Q7UUFDL0QsV0FBVyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQXVCLENBQUM7UUFFeEUseUNBQXlDO1FBQ3pDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXRFOzs4Q0FFc0M7UUFFdEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNkLGlDQUFpQztZQUNqQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUNWLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUU1QyxJQUNJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDbkIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDO3dCQUV2QyxPQUFPO29CQUVYLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLElBQUksQ0FBQzt3QkFHN0IsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNyQixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7d0JBQ2xELFNBQVMsYUFBYTs0QkFDbEIsSUFBSSxlQUFlLENBQUM7NEJBQ3BCLElBQ0ksTUFBTTtnQ0FDRixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDcEMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDO2dDQUN4QixNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksRUFDM0I7Z0NBQ0UsZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3pCLG1DQUFtQyxDQUN0QyxDQUFDOzZCQUNMO2lDQUFNLElBQ0gsTUFBTTtnQ0FDRixFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDcEMsRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDO2dDQUN6QixNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksRUFDM0I7Z0NBQ0UsZUFBZSxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQzFCLG9DQUFvQyxDQUN2QyxDQUFDOzZCQUNMO2lDQUFNO2dDQUNILGVBQWUsR0FBRyxNQUFNLEVBQUUsSUFBSSxDQUMxQiw0QkFBNEIsQ0FDL0IsQ0FBQzs2QkFDTDs0QkFDRCxJQUFJLE1BQU0sR0FDTixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRztnQ0FDOUIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEVBQUU7b0NBQ3pDLEVBQUUsR0FBRztnQ0FDVCxlQUFlLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDOzRCQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7d0JBQ3JDLENBQUM7d0JBQ0QsYUFBYSxFQUFFLENBQUM7d0JBQ2hCLFVBQVUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQy9CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFL0QsdUJBQXVCO1lBQ3ZCLENBQUMsVUFBVSxDQUFzQixFQUFFLENBQU07Z0JBQ3JDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTTtvQkFBRSxPQUFPO2dCQUV0QixDQUFDLENBQUMsZUFBZSxDQUFDO3FCQUNiLEdBQUcsQ0FBQyxPQUFPLENBQUM7cUJBQ1osRUFBRSxDQUFDLE9BQU8sRUFBRTtvQkFDVCxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBRTFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQzt5QkFDakIsR0FBRyxDQUFDLElBQUksQ0FBQzt5QkFDVCxXQUFXLENBQUMsUUFBUSxDQUFDO3lCQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDO3lCQUNyQixPQUFPLEVBQUUsQ0FBQztvQkFFZixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMzQixPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXZELHVDQUF1QztZQUN2QyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUNWLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FDbkIsT0FBTyxFQUNQLFVBQTZCLENBQVE7d0JBQ2pDLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO3dCQUM3QixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ3ZCLE1BQU0sT0FBTyxHQUFHLE1BQU07NEJBQ2xCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQzs0QkFDcEIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQzVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBRTNDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFOzRCQUNyQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDOzRCQUN2QyxPQUFPLENBQUMsV0FBVyxDQUNmLGtCQUFrQixFQUNsQixDQUFDLFFBQVEsQ0FDWixDQUFDO3dCQUNOLENBQUMsQ0FBQyxDQUFDO29CQUNQLENBQUMsQ0FDSixDQUFDO2lCQUNMO1lBQ0wsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFeEQsMkNBQTJDO1lBQzNDLENBQUMsVUFBVSxDQUFDO2dCQUNSLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDN0IsU0FBUyxxQkFBcUI7b0JBQzFCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUM3QyxNQUFNLFlBQVksR0FDZCxTQUFTLEdBQUksT0FBTyxDQUFDLFdBQVcsRUFBYSxDQUFDO29CQUNsRCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMvQyxNQUFNLGNBQWMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUV4RCxJQUNJLFlBQVksSUFBSSxXQUFXO3dCQUMzQixTQUFTLElBQUksY0FBYyxFQUM3Qjt3QkFDRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7cUJBQ2xEO2dCQUNMLENBQUM7Z0JBQ0QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLENBQUMsQ0FBQztnQkFDckQscUJBQXFCLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVYLGlDQUFpQztZQUNqQyxDQUFDLENBQUMsd0JBQXdCLENBQUM7aUJBQ3RCLEdBQUcsQ0FBQyxPQUFPLENBQUM7aUJBQ1osS0FBSyxDQUFDO2dCQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7WUFFUCxDQUFDLENBQUMsa0JBQWtCLENBQUM7aUJBQ2hCLEdBQUcsQ0FBQyxPQUFPLENBQUM7aUJBQ1osS0FBSyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFDMUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDL0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDO3FCQUM3QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFFUCxDQUFDLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pCLEdBQUcsQ0FBQyxPQUFPLENBQUM7aUJBQ1osS0FBSyxDQUFDO2dCQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFDM0MsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDckMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQztxQkFDL0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDO3FCQUM5QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDLENBQUM7WUFFUCw4Q0FBOEM7WUFDOUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUcxQyxJQUFJLFlBQWlCLENBQUM7Z0JBQ3RCLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDZixZQUFZLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2xEO2dCQUVELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFO29CQUNoQixNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztvQkFDOUMsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFO3dCQUNqQixXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztxQkFDM0M7eUJBQU07d0JBQ0gsV0FBVyxDQUFDLEdBQUcsQ0FDWCxxQkFBcUIsRUFDckIsVUFBVSxHQUFHLEtBQUssQ0FDckIsQ0FBQztxQkFDTDtnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBRUg7O2tEQUVzQztZQUN0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtnQkFDeEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDYix1Q0FBdUM7b0JBQ3ZDLG9CQUFvQixDQUFDLFNBQVMsQ0FDMUIsb0JBQW9CLENBQUMsY0FBYyxFQUFFLENBQ3hDLENBQUM7b0JBRUYsa0NBQWtDO29CQUNsQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUU7d0JBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ2pDO29CQUVELGNBQWM7b0JBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQzt3QkFDZixRQUFRLEVBQUUsUUFBUTt3QkFDbEIsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLFVBQVUsRUFBRSxJQUFJO3dCQUNoQixlQUFlLEVBQUUsSUFBSTt3QkFDckIsaUJBQWlCLEVBQUUsSUFBSTt3QkFDdkIsVUFBVSxFQUFFLFVBQVUsS0FBa0IsRUFBRSxJQUFTOzRCQUMvQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dDQUNaLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQ0FDeEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRyxDQUFDO2dDQUNyQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFHLENBQUM7Z0NBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0NBRTFCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxHQUFHLENBQUM7Z0NBQzdDLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUcsQ0FBQztnQ0FDM0MsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRyxDQUFDO2dDQUMzQyxNQUFNLFVBQVUsR0FDWixXQUFXLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztnQ0FDbEMsTUFBTSxVQUFVLEdBQ1osY0FBYyxHQUFHLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxDQUFDO2dDQUVoRCxNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQUcsVUFBVSxDQUFDO2dDQUUxQyxNQUFNLENBQUMsR0FBRyxDQUFDO29DQUNQLEdBQUcsRUFBRSxTQUFTO3dDQUNWLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSTt3Q0FDdkMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHOzRDQUNmLFdBQVc7NENBQ1gsQ0FBQzs0Q0FDRCxJQUFJO29DQUNWLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUk7b0NBQzdCLE1BQU0sRUFBRSxLQUFLO2lDQUNoQixDQUFDLENBQUM7NEJBQ1AsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUNYLENBQUM7cUJBQ0osQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDO1lBRUYsMEJBQTBCO1lBQzFCLGNBQWMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQzdDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRTlDLG9EQUFvRDtZQUNwRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUU7b0JBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ1osSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO3dCQUNoQixJQUFJOzRCQUNBLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ2xCLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFFLENBQ3BDLENBQUM7NEJBQ0YsSUFBSSxHQUFHLENBQUMsTUFBTTtnQ0FBRSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQzt5QkFDckM7d0JBQUMsTUFBTSxHQUFFO3dCQUNWLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUd4QixDQUFDO3dCQUNYLG9CQUFvQixDQUFDLFNBQVMsQ0FDMUIsb0JBQW9CLENBQUMsY0FBYyxFQUFFLENBQ3hDLENBQUM7d0JBQ0YsY0FBYyxDQUFDLDRCQUE0QixDQUFDLENBQUM7d0JBQzdDLGNBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO29CQUNsRCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ1g7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLFFBQVE7YUFDSCxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQzthQUN6QyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsYUFBYSxDQUNqQyxxQkFBcUIsQ0FDakIsQ0FBQztZQUNULE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQzNDLGdDQUFnQyxDQUNuQyxDQUFDO1lBRUYsZUFBZSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQzVDLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRTtvQkFDZixRQUFRO3lCQUNILGdCQUFnQixDQUFDLHFCQUFxQixDQUFDO3lCQUN2QyxPQUFPLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTt3QkFDcEIsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFOzRCQUNqQixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQ2QsTUFBTSxXQUFXLEdBQUcsS0FBSztpQ0FDcEIsT0FBTyxDQUFDLHVCQUF1QixDQUFDO2lDQUNoQyxhQUFhLENBQ1YsZ0NBQWdDLENBQ25DLENBQUM7NEJBQ04sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQ3hDO29CQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNQLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDYixlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDekM7cUJBQU07b0JBQ0gsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNkLGVBQWUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM1QztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOytHQTVWUSxtQkFBbUIsa0JBR1IsV0FBVzttR0FIdEIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs7MEJBSWdCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBJbmplY3QsIGlucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckxvY2FsZVV0aWwgfSBmcm9tICcuLi8uLi91dGlscy9kYXRlcGlja2VyLWxvY2FsZS51dGlsJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuZGVjbGFyZSB2YXIgalF1ZXJ5OiBhbnk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3NjcmlwdExvYWRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9TY3JpcHREaXJlY3RpdmUge1xuICAgIGRhdGFMb2FkZWQgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUxvYWRlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkU2NyaXB0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFNjcmlwdCgpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mICQgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ydW5Ccm93c2VyU2NyaXB0cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcnVuQnJvd3NlclNjcmlwdHMoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgICAgICAvKiDwn4yQIERldGVjdGFyIGlkaW9tYSBhY3Rpdm8gKi9cbiAgICAgICAgbGV0IGN1cnJlbnRMYW5nID0gJ2VzJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmdBdHRyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmxhbmc7XG4gICAgICAgICAgICBpZiAobGFuZ0F0dHIpIGN1cnJlbnRMYW5nID0gbGFuZ0F0dHI7XG4gICAgICAgICAgICBlbHNlIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhbmdPYmogPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpISk7XG4gICAgICAgICAgICAgICAgaWYgKGxhbmdPYmoubG9jYXRlKSBjdXJyZW50TGFuZyA9IGxhbmdPYmoubG9jYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHt9XG5cbiAgICAgICAgLy8g8J+UpCBOb3JtYWxpemFyIGPDs2RpZ28gZGUgaWRpb21hIChzb3BvcnRlIGVzLUVTLCBlbi1HQiwgZGUtREUpXG4gICAgICAgIGN1cnJlbnRMYW5nID0gKGN1cnJlbnRMYW5nLnNwbGl0KCctJylbMF0gfHwgJ2VzJykgYXMgJ2VzJyB8ICdlbicgfCAnZGUnO1xuXG4gICAgICAgIC8vIPCfl5PvuI8gUmVnaXN0cmFyIGxvY2FsZXMgeSBhcGxpY2FyIGlkaW9tYVxuICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKSk7XG5cbiAgICAgICAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAgICogICAgIEzDk0dJQ0EgUFJJTkNJUEFMIERFIFNDUklQVFNcbiAgICAgICAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvKiAtLS0gQXJyb3dzIFBvc2l0aW9uIEZpeCAtLS0gKi9cbiAgICAgICAgICAgIChmdW5jdGlvbiAoYSwgJCkge1xuICAgICAgICAgICAgICAgIGlmIChhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkc2xpZGVyQyA9ICQoJy5qcy1zbGlkZXJfZml4LWFycm93cycpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICRzbGlkZXJDLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICEkc2xpZGVyQy5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAgICAgJCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzJyk/LmVhY2goZnVuY3Rpb24gKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpczogSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc2xpZGVyID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhcnJvd3MgPSBzbGlkZXIuc2libGluZ3MoJy5qcy1zbGlkZXItYXJyb3dzJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjYWxjX3Bvc2l0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHRfc2VsZWN0b3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uZmluZCgnLmpzLXNsaWRlcl9maXgtYXJyb3dzLXpvbmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5oYXNDbGFzcygnbW9iaWxlJykgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LmlubmVyV2lkdGggPD0gMTI3OVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3IgPSBzbGlkZXIuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5tb2JpbGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJy5qcy1zbGlkZXJfZml4LWFycm93cy16b25lJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8uaGFzQ2xhc3MoJ2Rlc2t0b3AnKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aCA+PSAxMjgwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3RvciA9IHNsaWRlcj8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZS5kZXNrdG9wJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3RvciA9IHNsaWRlcj8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcuanMtc2xpZGVyX2ZpeC1hcnJvd3Mtem9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3Rvcj8ub2Zmc2V0KCk/LnRvcCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodF9zZWxlY3Rvci5wYXJlbnRzKCcucmVsYXRpdmUnKS5vZmZzZXQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy50b3AgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRfc2VsZWN0b3Iub3V0ZXJIZWlnaHQoKSAvIDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dzLmNzcygndG9wJywgaGVpZ2h0ICsgJ3B4Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxjX3Bvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNhbGNfcG9zaXRpb24sIDUwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKHdpbmRvdykuc2Nyb2xsKGNhbGNfcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtc2xpZGVyX2ZpeC1hcnJvd3MnKSwgalF1ZXJ5KTtcblxuICAgICAgICAgICAgLyogLS0tIEFjY29yZGlvbiAtLS0gKi9cbiAgICAgICAgICAgIChmdW5jdGlvbiAoYTogTm9kZUxpc3RPZjxFbGVtZW50PiwgJDogYW55KSB7XG4gICAgICAgICAgICAgICAgaWYgKCFhLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgJCgnLmpzLWFjY29yZGlvbicpXG4gICAgICAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAgICAgLm9uKCdjbGljaycsIGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFiID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0YWIuY2xvc2VzdCgnLmZhcV9faXRlbScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRhYi5uZXh0KCcuZmFxX19jb250ZW50Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICQoJy5mYXFfX2l0ZW0uYWN0aXZlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubm90KGl0ZW0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbW92ZUNsYXNzKCdhY3RpdmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuZmFxX19jb250ZW50JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2xpZGVVcCgpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnRvZ2dsZUNsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuc2xpZGVUb2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuanMtYWNjb3JkaW9uJyksIGpRdWVyeSk7XG5cbiAgICAgICAgICAgIC8qIC0tLSBCb3RvbmVzIFwiVmVyIG3DoXMgLyBtZW5vc1wiIC0tLSAqL1xuICAgICAgICAgICAgKGZ1bmN0aW9uIChhLCAkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGEubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICQoJy5idG5fX21vcmVMZXNzJyk/Lm9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWNrJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCwgZTogRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJ1dHRvbiA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmNsb3Nlc3QoJ3NlY3Rpb24nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/LmZpbmQoJy5tb3JlLWNvbnRlbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gYnV0dG9uPy5jbG9zZXN0KCdzZWN0aW9uJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LnNsaWRlVG9nZ2xlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBjb250ZW50LmlzKCc6aGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24udG9nZ2xlQ2xhc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9yZUxlc3MtLWFjdGl2ZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNIaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYnRuX19tb3JlTGVzcycpLCBqUXVlcnkpO1xuXG4gICAgICAgICAgICAvKiAtLS0gT2N1bHRhciB0b2FzdCBhbCBoYWNlciBzY3JvbGwgLS0tICovXG4gICAgICAgICAgICAoZnVuY3Rpb24gKCQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCAkYmFubmVyID0gJCgnLmJhbm5lcicpO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrQmFubmVyVmlzaWJpbGl0eSgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFubmVyVG9wID0gJGJhbm5lci5vZmZzZXQoKT8udG9wID8/IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhbm5lckJvdHRvbSA9XG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJUb3AgKyAoJGJhbm5lci5vdXRlckhlaWdodCgpIGFzIG51bWJlcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0VG9wID0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpID8/IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0Qm90dG9tID0gdmlld3BvcnRUb3AgKyAkKHdpbmRvdykuaGVpZ2h0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgYmFubmVyQm90dG9tIDw9IHZpZXdwb3J0VG9wIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBiYW5uZXJUb3AgPj0gdmlld3BvcnRCb3R0b21cbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ3Qtb2ZmZXJzIHRvYXN0cy0tb3BlbicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQod2luZG93KS5vbignc2Nyb2xsIHJlc2l6ZScsIGNoZWNrQmFubmVyVmlzaWJpbGl0eSk7XG4gICAgICAgICAgICAgICAgY2hlY2tCYW5uZXJWaXNpYmlsaXR5KCk7XG4gICAgICAgICAgICB9KShqUXVlcnkpO1xuXG4gICAgICAgICAgICAvKiAtLS0gU3ViY2FtcG9zIGh1w6lzcGVkZXMgLS0tICovXG4gICAgICAgICAgICAkKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcbiAgICAgICAgICAgICAgICAub2ZmKCdjbGljaycpXG4gICAgICAgICAgICAgICAgLmNsaWNrKGZ1bmN0aW9uICh0aGlzOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLm5leHQoJy5qcy1maWVsZFN1YicpLnNsaWRlVG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICQoJy5qcy1hcHBseS1ndWVzdHMnKVxuICAgICAgICAgICAgICAgIC5vZmYoJ2NsaWNrJylcbiAgICAgICAgICAgICAgICAuY2xpY2soZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpLnBhcmVudHMoJy5iYW5uZXJfX2ZpZWxkU3ViJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gcGFyc2VJbnQoJCgnI2FkdWx0JykudmFsKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gcGFyc2VJbnQoJCgnI2NoaWxkJykudmFsKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuID0gciArIGE7XG4gICAgICAgICAgICAgICAgICAgIGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICBlLnNpYmxpbmdzKCcuanMtcGVyc29uYXMtc3ViZmllbGRzJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKCcuYmFubmVyX19maWVsZENvbnRyb2wnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobiA8PSA5ID8gJzAnICsgbiA6IG4pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAkKCcuanMtYXBwbHktZ3Vlc3RzMScpXG4gICAgICAgICAgICAgICAgLm9mZignY2xpY2snKVxuICAgICAgICAgICAgICAgIC5jbGljayhmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9ICQodGhpcykucGFyZW50cygnLmJvb2tpbmdfX2ZpZWxkU3ViJyksXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gcGFyc2VJbnQoJCgnI2FkdWx0MScpLnZhbCgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHBhcnNlSW50KCQoJyNjaGlsZDEnKS52YWwoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG4gPSByICsgYTtcbiAgICAgICAgICAgICAgICAgICAgZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIGUuc2libGluZ3MoJy5qcy1wZXJzb25hcy1zdWJmaWVsZHMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoJy5ib29raW5nX19maWVsZENvbnRyb2wnKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobiA8PSA5ID8gJzAnICsgbiA6IG4pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvKiAtLS0gQWN0dWFsaXphY2nDs24gZGluw6FtaWNhIGRlIGxhYmVscyAtLS0gKi9cbiAgICAgICAgICAgICQoJy5ib29raW5nX19maWVsZENvbnRyb2xbdHlwZT1cInRleHRcIl0nKS5lYWNoKGZ1bmN0aW9uIChcbiAgICAgICAgICAgICAgICB0aGlzOiBIVE1MRWxlbWVudFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbGV0IGRlZmF1bHR2YWx1ZTogYW55O1xuICAgICAgICAgICAgICAgIGNvbnN0ICRmaWVsZElubmVyID0gJCh0aGlzKS5wYXJlbnRzKCcuYm9va2luZ19fZmllbGRJbm5lcicpO1xuICAgICAgICAgICAgICAgIGlmICghZGVmYXVsdHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHR2YWx1ZSA9ICRmaWVsZElubmVyLmF0dHIoJ3N0eWxlJykgfHwgJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJCh0aGlzKS5vbigna2V5dXAnLCBmdW5jdGlvbiAodGhpczogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dExlbmd0aCA9ICQodGhpcykudmFsKCkubGVuZ3RoICogMS4zO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGV4dExlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmllbGRJbm5lci5hdHRyKCdzdHlsZScsIGRlZmF1bHR2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmllbGRJbm5lci5jc3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbGFiZWxMZWZ0UG9zaXRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRMZW5ndGggKyAncmVtJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgICAgICAgKiAgICAgICAgICBEQVRFUElDS0VSXG4gICAgICAgICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuICAgICAgICAgICAgY29uc3QgaW5pdERhdGVwaWNrZXIgPSAoc2VsZWN0b3I6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICQoc2VsZWN0b3IpLmVhY2goZnVuY3Rpb24gKHRoaXM6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFwbGljYXIgaWRpb21hIGFudGVzIGRlIGluaWNpYWxpemFyw6dcbiAgICAgICAgICAgICAgICAgICAgRGF0ZXBpY2tlckxvY2FsZVV0aWwuc2V0TG9jYWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIERlc3RydWlyIGFudGVyaW9yIHNpIHlhIGV4aXN0w61hXG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmhhc0NsYXNzKCdoYXNEYXRlcGlja2VyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuZGF0ZXBpY2tlcignZGVzdHJveScpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gSW5pY2lhbGl6YXJcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5kYXRlcGlja2VyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBbmltOiAnZmFkZUluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZU1vbnRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlWWVhcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dPdGhlck1vbnRoczogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdE90aGVyTW9udGhzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlU2hvdzogZnVuY3Rpb24gKGlucHV0OiBIVE1MRWxlbWVudCwgaW5zdDogYW55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRpbnB1dCA9ICQoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dE9mZnNldCA9ICRpbnB1dC5vZmZzZXQoKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0SGVpZ2h0ID0gJGlucHV0Lm91dGVySGVpZ2h0KCkhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZHBEaXYgPSBpbnN0LmRwRGl2O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRwSGVpZ2h0ID0gJGRwRGl2Lm91dGVySGVpZ2h0KCkgfHwgMjYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3cG9ydFRvcCA9ICQod2luZG93KS5zY3JvbGxUb3AoKSE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhY2VBYm92ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dE9mZnNldC50b3AgLSB2aWV3cG9ydFRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhY2VCZWxvdyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydEhlaWdodCAtIChzcGFjZUFib3ZlICsgaW5wdXRIZWlnaHQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3dBYm92ZSA9IHNwYWNlQWJvdmUgPiBzcGFjZUJlbG93O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkcERpdi5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBzaG93QWJvdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGlucHV0T2Zmc2V0LnRvcCAtIGRwSGVpZ2h0IC0gOCArICdweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlucHV0T2Zmc2V0LnRvcCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dEhlaWdodCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBpbnB1dE9mZnNldC5sZWZ0ICsgJ3B4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogOTk5OTksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gSW5pY2lhbGl6YXIgZGF0ZXBpY2tlcnNcbiAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyXCJdJyk7XG4gICAgICAgICAgICBpbml0RGF0ZXBpY2tlcignW2RhdGEtdG9nZ2xlPVwiZGF0ZXBpY2tlcjFcIl0nKTtcblxuICAgICAgICAgICAgLy8g8J+UgSBSZWFwbGljYXIgaWRpb21hIGN1YW5kbyBjYW1iaWUgZW4gbG9jYWxTdG9yYWdlXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdsYW5ndWFnZScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGFuZyA9ICdlcyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpIVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9iai5sb2NhdGUpIGxhbmcgPSBvYmoubG9jYXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZyA9IChsYW5nLnNwbGl0KCctJylbMF0gfHwgJ2VzJykgYXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICdlcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICdlbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICdkZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBEYXRlcGlja2VyTG9jYWxlVXRpbC5zZXRMb2NhbGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZXBpY2tlckxvY2FsZVV0aWwuZGV0ZWN0TGFuZ3VhZ2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXREYXRlcGlja2VyKCdbZGF0YS10b2dnbGU9XCJkYXRlcGlja2VyXCJdJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0RGF0ZXBpY2tlcignW2RhdGEtdG9nZ2xlPVwiZGF0ZXBpY2tlcjFcIl0nKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgMzAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLyogLS0tIFNwb3RpZnkgUGxheWVyIC0tLSAqL1xuICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zcG90aWZ5UGxheWVyX19hbGJ1bScpXG4gICAgICAgICAgICAuZm9yRWFjaCgoY29udGFpbmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXVkaW8gPSBjb250YWluZXIucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgJy5zcG90aWZ5UGxheWVyX19tcDMnXG4gICAgICAgICAgICAgICAgKSBhcyBhbnk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGxheVBhdXNlQnV0dG9uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICcuc3BvdGlmeVBsYXllcl9fYWxidW1QbGF5UGF1c2UnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHBsYXlQYXVzZUJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhdWRpbz8ucGF1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuc3BvdGlmeVBsYXllcl9fbXAzJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgob3RoZXI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXIgIT09IGF1ZGlvKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJCdXR0b24gPSBvdGhlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jbG9zZXN0KCcuc3BvdGlmeVBsYXllcl9fYWxidW0nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLnNwb3RpZnlQbGF5ZXJfX2FsYnVtUGxheVBhdXNlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCdwbGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvLnBsYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlQYXVzZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdwbGF5Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdWRpby5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGxheVBhdXNlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ3BsYXknKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -37,18 +37,29 @@ export class PuroSliderDirective {
|
|
|
37
37
|
const $container = sliderName ? parent.find(`.${sliderName}`) : parent;
|
|
38
38
|
// ⚠️ NO uses :hidden aquí, porque slider--pending (visibility:hidden)
|
|
39
39
|
// hace que jQuery lo considere hidden y te bloquea el init.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
$container.width() === 0) {
|
|
40
|
+
const isHiddenByBreakpoint = $container.width() === 0;
|
|
41
|
+
if (!$container.length || $container.children().length === 0) {
|
|
43
42
|
this.checkTimer = setTimeout(() => this.waitForDomAndInit(), 50);
|
|
44
43
|
return;
|
|
45
44
|
}
|
|
45
|
+
// 👇 si está oculto por breakpoint, NO bloquees el ready
|
|
46
|
+
if (isHiddenByBreakpoint) {
|
|
47
|
+
this.markAsReadyWithoutInit(parent);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
46
50
|
requestAnimationFrame(() => {
|
|
47
51
|
requestAnimationFrame(() => {
|
|
48
52
|
this.initSlider(parent, $container);
|
|
49
53
|
});
|
|
50
54
|
});
|
|
51
55
|
}
|
|
56
|
+
markAsReadyWithoutInit(parent) {
|
|
57
|
+
// No inicializamos slick porque no es visible
|
|
58
|
+
parent.removeClass('slider--pending');
|
|
59
|
+
parent.addClass('slider--ready');
|
|
60
|
+
this.initialized = true;
|
|
61
|
+
this.initializing = false;
|
|
62
|
+
}
|
|
52
63
|
initSlider(parent, sliderSelector) {
|
|
53
64
|
if (this.initializing || this.initialized)
|
|
54
65
|
return;
|
|
@@ -245,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
245
256
|
standalone: true,
|
|
246
257
|
}]
|
|
247
258
|
}], ctorParameters: () => [] });
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zbGlkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zbGlkZXIvcHVyby1zbGlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7O0FBUXZCLE1BQU0sT0FBTyxtQkFBbUI7SUFXNUI7UUFWaUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHakMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFHN0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUUvQixJQUNJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbkMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUNqQixJQUFJLENBQUMsWUFBWTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsRUFDbEI7Z0JBQ0UsT0FBTzthQUNWO1lBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFD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QUNuRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0F4UlEsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIFBMQVRGT1JNX0lELFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZGVjbGFyZSBjb25zdCAkOiBhbnk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3B1cm9TbGlkZXJdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBQdXJvU2xpZGVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIHByaXZhdGUgY2hlY2tUaW1lcjogYW55O1xuICAgIHByaXZhdGUgaW5pdGlhbGl6aW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgcHVyb1NsaWRlciA9IGlucHV0LnJlcXVpcmVkPGFueVtdIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5wdXJvU2xpZGVyKCk7XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fFxuICAgICAgICAgICAgICAgICFBcnJheS5pc0FycmF5KGRhdGEpIHx8XG4gICAgICAgICAgICAgICAgZGF0YS5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemluZyB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWRcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICBwYXJlbnQuYWRkQ2xhc3MoJ3NsaWRlci0tcGVuZGluZycpO1xuICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNsYXNzKCdzbGlkZXItLXJlYWR5Jyk7XG5cbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLndhaXRGb3JEb21BbmRJbml0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB3YWl0Rm9yRG9tQW5kSW5pdCgpIHtcbiAgICAgICAgY29uc3QgdyA9IHdpbmRvdyBhcyBhbnk7XG5cbiAgICAgICAgaWYgKCF3LiQgfHwgIXcuJC5mbi5zbGljaykge1xuICAgICAgICAgICAgdGhpcy5jaGVja1RpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLndhaXRGb3JEb21BbmRJbml0KCksIDUwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9ICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3Qgc2xpZGVyTmFtZSA9IHBhcmVudC5kYXRhKCdzbGlkZXJfbmFtZScpO1xuICAgICAgICBjb25zdCAkY29udGFpbmVyID0gc2xpZGVyTmFtZSA/IHBhcmVudC5maW5kKGAuJHtzbGlkZXJOYW1lfWApIDogcGFyZW50O1xuXG4gICAgICAgIC8vIOKaoO+4jyBOTyB1c2VzIDpoaWRkZW4gYXF1w60sIHBvcnF1ZSBzbGlkZXItLXBlbmRpbmcgKHZpc2liaWxpdHk6aGlkZGVuKVxuICAgICAgICAvLyBoYWNlIHF1ZSBqUXVlcnkgbG8gY29uc2lkZXJlIGhpZGRlbiB5IHRlIGJsb3F1ZWEgZWwgaW5pdC5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgISRjb250YWluZXIubGVuZ3RoIHx8XG4gICAgICAgICAgICAkY29udGFpbmVyLmNoaWxkcmVuKCkubGVuZ3RoID09PSAwIHx8XG4gICAgICAgICAgICAkY29udGFpbmVyLndpZHRoKCkgPT09IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMud2FpdEZvckRvbUFuZEluaXQoKSwgNTApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0U2xpZGVyKHBhcmVudCwgJGNvbnRhaW5lcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0U2xpZGVyKHBhcmVudDogYW55LCBzbGlkZXJTZWxlY3RvcjogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxpemluZyB8fCB0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG4gICAgICAgIGlmIChzbGlkZXJTZWxlY3Rvci5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBpbmZvID0gcGFyZW50LmZpbmQoJy5qcy1jb250ZW50LXNsaWRlcicpO1xuICAgICAgICBjb25zdCBzbGlkZXJBcnJvd3MgPSBwYXJlbnQuZmluZCgnLmpzLXNsaWRlci1hcnJvd3MnKTtcbiAgICAgICAgY29uc3Qgc2xpZGVyRG90cyA9IHBhcmVudC5maW5kKCcuanMtc2xpZGVyLWRvdHMnKTtcbiAgICAgICAgY29uc3Qgc2xpZGVyQnRucyA9IHBhcmVudC5kYXRhKCdzbGlkZXJfYnRucycpO1xuXG4gICAgICAgIGNvbnN0IGJhc2VPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgICAgICBkb3RzOiBwYXJlbnQuZGF0YSgnc2xpZGVyX3Nob3dkb3RzJykgPz8gZmFsc2UsXG4gICAgICAgICAgICBhcnJvd3M6IHBhcmVudC5kYXRhKCdzbGlkZXJfc2hvd2J0bnMnKSA/PyB0cnVlLFxuICAgICAgICAgICAgaW5maW5pdGU6IHBhcmVudC5kYXRhKCdzbGlkZXNfaW5maW5pdGUnKSA/PyB0cnVlLFxuICAgICAgICAgICAgYWRhcHRpdmVIZWlnaHQ6IHBhcmVudC5kYXRhKCdzbGlkZXJfYWRhcHRpdmVoZWlnaHQnKSA/PyB0cnVlLFxuICAgICAgICAgICAgZmFkZTogcGFyZW50LmRhdGEoJ3NsaWRlcl9mYWRlJykgPz8gZmFsc2UsXG4gICAgICAgICAgICBjZW50ZXJNb2RlOiBwYXJlbnQuZGF0YSgnc2xpZGVyX2NlbnRlcm1vZGUnKSA/PyBmYWxzZSxcbiAgICAgICAgICAgIGNlbnRlclBhZGRpbmc6ICcwJyxcbiAgICAgICAgICAgIGNzc0Vhc2U6ICdjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KScsXG4gICAgICAgICAgICBzcGVlZDogcGFyZW50LmRhdGEoJ3NsaWRlcl9zcGVlZCcpID8/IDc1MCxcbiAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogcGFyZW50LmRhdGEoJ3NsaWRlc19wYycpID8/IDEsXG4gICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgIHJvd3M6IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX3BjJykgPz8gMSxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBwYXJlbnQuZGF0YSgnc2xpZGVyX2F1dG9wbGF5JykgPz8gZmFsc2UsXG4gICAgICAgICAgICBhdXRvcGxheVNwZWVkOiA1MDAwLFxuICAgICAgICAgICAgdXNlVHJhbnNmb3JtOiB0cnVlLFxuICAgICAgICAgICAgYXBwZW5kQXJyb3dzOiBzbGlkZXJBcnJvd3MsXG4gICAgICAgICAgICBhcHBlbmREb3RzOiBzbGlkZXJEb3RzLFxuICAgICAgICAgICAgd2FpdEZvckFuaW1hdGU6IGZhbHNlLFxuXG4gICAgICAgICAgICBwcmV2QXJyb3c6IGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdwcmV2ICR7c2xpZGVyQnRuc30gc2xpY2stYnRuIHNsaWNrLXByZXYnIHJvbGU9J2J1dHRvbicgdGFiaW5kZXg9JzAnIGFyaWEtbGFiZWw9J1ByZXYnPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0naWNvbi02Jz48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+YCxcbiAgICAgICAgICAgIG5leHRBcnJvdzogYFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J25leHQgJHtzbGlkZXJCdG5zfSBzbGljay1idG4gc2xpY2stbmV4dCcgcm9sZT0nYnV0dG9uJyB0YWJpbmRleD0nMCcgYXJpYS1sYWJlbD0nTmV4dCc+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSdpY29uLTYnPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gLFxuXG4gICAgICAgICAgICBjdXN0b21QYWdpbmc6IGZ1bmN0aW9uIChzbGljazogYW55LCBpOiBudW1iZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAoIXNsaWNrLiRzbGlkZXMgfHwgIXNsaWNrLiRzbGlkZXNbaV0pIHJldHVybiAnJztcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkaW5nID0gJChzbGljay4kc2xpZGVzW2ldKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgnW2RhdGEtc2xpZGVfaGVhZGluZ10nKVxuICAgICAgICAgICAgICAgICAgICAuYXR0cignZGF0YS1zbGlkZV9oZWFkaW5nJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQoXG4gICAgICAgICAgICAgICAgICAgICc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInNsaWNrLXNsaWRlRG90LWxhYmVsXCIgLz4nXG4gICAgICAgICAgICAgICAgKS50ZXh0KGhlYWRpbmcgPz8gJycpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVzcG9uc2l2ZTogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTY4MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogcGFyZW50LmRhdGEoJ3NsaWRlc19sYXB0b3AnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czogcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfbGFwdG9wJykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTI4MCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogcGFyZW50LmRhdGEoJ3NsaWRlc190YWJsZXQnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czogcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfdGFibGV0JykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogMTAyNCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogcGFyZW50LmRhdGEoJ3NsaWRlc19tb2JpbGUnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czogcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfbW9iaWxlJykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNzY4LFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiBwYXJlbnQuZGF0YSgnc2xpZGVzX21vYmlsZV9zbWFsbCcpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19tb2JpbGVfc21hbGwnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50OiA1NDAsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LmRhdGEoJ3NsaWRlc19tb2JpbGVfeHNtYWxsJykgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQuZGF0YSgnc2xpZGVzX21vYmlsZV9zbWFsbCcpID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfbW9iaWxlX3hzbWFsbCcpID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfbW9iaWxlX3NtYWxsJykgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIOKchSBoZWxwZXIgcGFyYSBtYXJjYXIgcmVhZHkgKGNvbiBkb2JsZSByQUYgcGFyYSBsYXlvdXQgZXN0YWJsZSlcbiAgICAgICAgbGV0IHJlYWR5RmlyZWQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBtYXJrUmVhZHkgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVhZHlGaXJlZCkgcmV0dXJuO1xuICAgICAgICAgICAgcmVhZHlGaXJlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmcgPSBmYWxzZTtcblxuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXNsaWRlclNlbGVjdG9yLmhhc0NsYXNzKCdzbGljay1pbml0aWFsaXplZCcpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLnNsaWNrKCdzZXRQb3NpdGlvbicpO1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHt9XG5cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNsYXNzKCdzbGlkZXItLXBlbmRpbmcnKTtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50LmFkZENsYXNzKCdzbGlkZXItLXJlYWR5Jyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyDwn46nIFNwb3RpZnkgZml4IGludGFjdG9cbiAgICAgICAgaWYgKHBhcmVudC5kYXRhKCdzbGlkZXJfbmFtZScpID09PSAnanMtc3BvdGlmeVBsYXllci1zbGlkZXInKSB7XG4gICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5vbihcbiAgICAgICAgICAgICAgICAnYmVmb3JlQ2hhbmdlJyxcbiAgICAgICAgICAgICAgICAoXzogRXZlbnQsIF9fOiBhbnksIGN1cnJlbnQ6IG51bWJlciwgbmV4dDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ICE9PSBuZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKCcuc2xpY2stY2VudGVyICsgLnNsaWNrLWNsb25lZCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5hZGQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NsaWNrLWN1cnJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzbGljay1jZW50ZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIPCflKUgSU1QT1JUQU5URTogZW5nYW5jaGFyIGluaXQgQU5URVMgZGUgbGxhbWFyIGEgc2xpY2soKVxuICAgICAgICAgICAgc2xpZGVyU2VsZWN0b3Iub25lKCdpbml0JywgbWFya1JlYWR5KTtcblxuICAgICAgICAgICAgaWYgKGluZm8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLnNsaWNrKHsgLi4uYmFzZU9wdGlvbnMsIGFzTmF2Rm9yOiBpbmZvIH0pO1xuICAgICAgICAgICAgICAgIGluZm8uc2xpY2soe1xuICAgICAgICAgICAgICAgICAgICBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgaW5maW5pdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZhZGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHVzZVRyYW5zZm9ybTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgY3NzRWFzZTogJ2N1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpJyxcbiAgICAgICAgICAgICAgICAgICAgc3BlZWQ6IDc1MCxcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OiAxLFxuICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Njcm9sbDogMSxcbiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXk6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBzd2lwZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHRvdWNoTW92ZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLnNsaWNrKGJhc2VPcHRpb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g4pyFIEZhbGxiYWNrIGR1cm86IHNpIHBvciBsbyBxdWUgc2VhIGluaXQgbm8gc2FsdMOzLCBwZXJvIHlhIGVzdMOhIGluaWNpYWxpemFkb1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSAmJlxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQuaGFzQ2xhc3MoJ3NsaWRlci0tcGVuZGluZycpXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmtSZWFkeSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDIwMCk7XG5cbiAgICAgICAgICAgIC8vIPCflIEgUmVjYWxjdWxvIGZpbmFsIHRyYXMgY2FyZ2EgY29tcGxldGFcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgICdsb2FkJyxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzbGlkZXJTZWxlY3Rvci5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFya1JlYWR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHsgb25jZTogdHJ1ZSB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tQdXJvU2xpZGVyXSBFcnJvciBpbmljaWFuZG8gU2xpY2s6JywgZSk7XG4gICAgICAgICAgICAvLyBzaSBoYXkgZXJyb3IsIG5vIGxvIGRlamVzIGludmlzaWJsZSBwYXJhIHNpZW1wcmVcbiAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDbGFzcygnc2xpZGVyLS1wZW5kaW5nJyk7XG4gICAgICAgICAgICBwYXJlbnQuYWRkQ2xhc3MoJ3NsaWRlci0tcmVhZHknKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVNsaWRlcigpIHtcbiAgICAgICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9ICQodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHNsaWRlck5hbWUgPSBwYXJlbnQuZGF0YSgnc2xpZGVyX25hbWUnKTtcbiAgICAgICAgICAgIGNvbnN0ICRjb250YWluZXIgPSBzbGlkZXJOYW1lXG4gICAgICAgICAgICAgICAgPyBwYXJlbnQuZmluZChgLiR7c2xpZGVyTmFtZX1gKVxuICAgICAgICAgICAgICAgIDogcGFyZW50O1xuXG4gICAgICAgICAgICBpZiAoJGNvbnRhaW5lci5sZW5ndGggJiYgJGNvbnRhaW5lci5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSkge1xuICAgICAgICAgICAgICAgICRjb250YWluZXIuc2xpY2soJ3Vuc2xpY2snKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNsYXNzKCdzbGlkZXItLXBlbmRpbmcgc2xpZGVyLS1yZWFkeScpO1xuICAgICAgICB9IGNhdGNoIHt9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrVGltZXIpIGNsZWFyVGltZW91dCh0aGlzLmNoZWNrVGltZXIpO1xuICAgICAgICB0aGlzLmRlc3Ryb3lTbGlkZXIoKTtcbiAgICB9XG59XG4iXX0=
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVyby1zbGlkZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHVyby9zcmMvbGliL2RpcmVjdGl2ZXMvcHVyby1zbGlkZXIvcHVyby1zbGlkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7O0FBUXZCLE1BQU0sT0FBTyxtQkFBbUI7SUFXNUI7UUFWaUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFHakMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXFCLENBQUM7UUFHN0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUUvQixJQUNJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDbkMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDcEIsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUNqQixJQUFJLENBQUMsWUFBWTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsRUFDbEI7Z0JBQ0UsT0FBTzthQUNWO1lBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFD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LENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUViLElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQy9ELFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0I7WUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLCtCQUErQixDQUFDLENBQUM7U0FDdkQ7UUFBQyxNQUFNLEdBQUU7SUFDZCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQXJTUSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgUExBVEZPUk1fSUQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcHVyb1NsaWRlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFB1cm9TbGlkZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgcHJpdmF0ZSBjaGVja1RpbWVyOiBhbnk7XG4gICAgcHJpdmF0ZSBpbml0aWFsaXppbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBwdXJvU2xpZGVyID0gaW5wdXQucmVxdWlyZWQ8YW55W10gfCB1bmRlZmluZWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnB1cm9TbGlkZXIoKTtcblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8XG4gICAgICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkoZGF0YSkgfHxcbiAgICAgICAgICAgICAgICBkYXRhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSAkKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgICAgIHBhcmVudC5hZGRDbGFzcygnc2xpZGVyLS1wZW5kaW5nJyk7XG4gICAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2xhc3MoJ3NsaWRlci0tcmVhZHknKTtcblxuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMud2FpdEZvckRvbUFuZEluaXQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdhaXRGb3JEb21BbmRJbml0KCkge1xuICAgICAgICBjb25zdCB3ID0gd2luZG93IGFzIGFueTtcblxuICAgICAgICBpZiAoIXcuJCB8fCAhdy4kLmZuLnNsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMud2FpdEZvckRvbUFuZEluaXQoKSwgNTApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFyZW50ID0gJCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCBzbGlkZXJOYW1lID0gcGFyZW50LmRhdGEoJ3NsaWRlcl9uYW1lJyk7XG4gICAgICAgIGNvbnN0ICRjb250YWluZXIgPSBzbGlkZXJOYW1lID8gcGFyZW50LmZpbmQoYC4ke3NsaWRlck5hbWV9YCkgOiBwYXJlbnQ7XG5cbiAgICAgICAgLy8g4pqg77iPIE5PIHVzZXMgOmhpZGRlbiBhcXXDrSwgcG9ycXVlIHNsaWRlci0tcGVuZGluZyAodmlzaWJpbGl0eTpoaWRkZW4pXG4gICAgICAgIC8vIGhhY2UgcXVlIGpRdWVyeSBsbyBjb25zaWRlcmUgaGlkZGVuIHkgdGUgYmxvcXVlYSBlbCBpbml0LlxuICAgICAgICBjb25zdCBpc0hpZGRlbkJ5QnJlYWtwb2ludCA9ICRjb250YWluZXIud2lkdGgoKSA9PT0gMDtcblxuICAgICAgICBpZiAoISRjb250YWluZXIubGVuZ3RoIHx8ICRjb250YWluZXIuY2hpbGRyZW4oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy53YWl0Rm9yRG9tQW5kSW5pdCgpLCA1MCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyDwn5GHIHNpIGVzdMOhIG9jdWx0byBwb3IgYnJlYWtwb2ludCwgTk8gYmxvcXVlZXMgZWwgcmVhZHlcbiAgICAgICAgaWYgKGlzSGlkZGVuQnlCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLm1hcmtBc1JlYWR5V2l0aG91dEluaXQocGFyZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFNsaWRlcihwYXJlbnQsICRjb250YWluZXIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFya0FzUmVhZHlXaXRob3V0SW5pdChwYXJlbnQ6IGFueSkge1xuICAgICAgICAvLyBObyBpbmljaWFsaXphbW9zIHNsaWNrIHBvcnF1ZSBubyBlcyB2aXNpYmxlXG4gICAgICAgIHBhcmVudC5yZW1vdmVDbGFzcygnc2xpZGVyLS1wZW5kaW5nJyk7XG4gICAgICAgIHBhcmVudC5hZGRDbGFzcygnc2xpZGVyLS1yZWFkeScpO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFNsaWRlcihwYXJlbnQ6IGFueSwgc2xpZGVyU2VsZWN0b3I6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXppbmcgfHwgdGhpcy5pbml0aWFsaXplZCkgcmV0dXJuO1xuICAgICAgICBpZiAoc2xpZGVyU2VsZWN0b3IuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykpIHJldHVybjtcblxuICAgICAgICB0aGlzLmluaXRpYWxpemluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc3QgaW5mbyA9IHBhcmVudC5maW5kKCcuanMtY29udGVudC1zbGlkZXInKTtcbiAgICAgICAgY29uc3Qgc2xpZGVyQXJyb3dzID0gcGFyZW50LmZpbmQoJy5qcy1zbGlkZXItYXJyb3dzJyk7XG4gICAgICAgIGNvbnN0IHNsaWRlckRvdHMgPSBwYXJlbnQuZmluZCgnLmpzLXNsaWRlci1kb3RzJyk7XG4gICAgICAgIGNvbnN0IHNsaWRlckJ0bnMgPSBwYXJlbnQuZGF0YSgnc2xpZGVyX2J0bnMnKTtcblxuICAgICAgICBjb25zdCBiYXNlT3B0aW9uczogYW55ID0ge1xuICAgICAgICAgICAgZG90czogcGFyZW50LmRhdGEoJ3NsaWRlcl9zaG93ZG90cycpID8/IGZhbHNlLFxuICAgICAgICAgICAgYXJyb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVyX3Nob3didG5zJykgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGluZmluaXRlOiBwYXJlbnQuZGF0YSgnc2xpZGVzX2luZmluaXRlJykgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGFkYXB0aXZlSGVpZ2h0OiBwYXJlbnQuZGF0YSgnc2xpZGVyX2FkYXB0aXZlaGVpZ2h0JykgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGZhZGU6IHBhcmVudC5kYXRhKCdzbGlkZXJfZmFkZScpID8/IGZhbHNlLFxuICAgICAgICAgICAgY2VudGVyTW9kZTogcGFyZW50LmRhdGEoJ3NsaWRlcl9jZW50ZXJtb2RlJykgPz8gZmFsc2UsXG4gICAgICAgICAgICBjZW50ZXJQYWRkaW5nOiAnMCcsXG4gICAgICAgICAgICBjc3NFYXNlOiAnY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiknLFxuICAgICAgICAgICAgc3BlZWQ6IHBhcmVudC5kYXRhKCdzbGlkZXJfc3BlZWQnKSA/PyA3NTAsXG4gICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHBhcmVudC5kYXRhKCdzbGlkZXNfcGMnKSA/PyAxLFxuICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICByb3dzOiBwYXJlbnQuZGF0YSgnc2xpZGVzcm93c19wYycpID8/IDEsXG4gICAgICAgICAgICBhdXRvcGxheTogcGFyZW50LmRhdGEoJ3NsaWRlcl9hdXRvcGxheScpID8/IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXlTcGVlZDogNTAwMCxcbiAgICAgICAgICAgIHVzZVRyYW5zZm9ybTogdHJ1ZSxcbiAgICAgICAgICAgIGFwcGVuZEFycm93czogc2xpZGVyQXJyb3dzLFxuICAgICAgICAgICAgYXBwZW5kRG90czogc2xpZGVyRG90cyxcbiAgICAgICAgICAgIHdhaXRGb3JBbmltYXRlOiBmYWxzZSxcblxuICAgICAgICAgICAgcHJldkFycm93OiBgXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ncHJldiAke3NsaWRlckJ0bnN9IHNsaWNrLWJ0biBzbGljay1wcmV2JyByb2xlPSdidXR0b24nIHRhYmluZGV4PScwJyBhcmlhLWxhYmVsPSdQcmV2Jz5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ljb24tNic+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PmAsXG4gICAgICAgICAgICBuZXh0QXJyb3c6IGBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSduZXh0ICR7c2xpZGVyQnRuc30gc2xpY2stYnRuIHNsaWNrLW5leHQnIHJvbGU9J2J1dHRvbicgdGFiaW5kZXg9JzAnIGFyaWEtbGFiZWw9J05leHQnPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0naWNvbi02Jz48L2k+XG4gICAgICAgICAgICAgICAgPC9kaXY+YCxcblxuICAgICAgICAgICAgY3VzdG9tUGFnaW5nOiBmdW5jdGlvbiAoc2xpY2s6IGFueSwgaTogbnVtYmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFzbGljay4kc2xpZGVzIHx8ICFzbGljay4kc2xpZGVzW2ldKSByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGluZyA9ICQoc2xpY2suJHNsaWRlc1tpXSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbmQoJ1tkYXRhLXNsaWRlX2hlYWRpbmddJylcbiAgICAgICAgICAgICAgICAgICAgLmF0dHIoJ2RhdGEtc2xpZGVfaGVhZGluZycpO1xuICAgICAgICAgICAgICAgIHJldHVybiAkKFxuICAgICAgICAgICAgICAgICAgICAnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzbGljay1zbGlkZURvdC1sYWJlbFwiIC8+J1xuICAgICAgICAgICAgICAgICkudGV4dChoZWFkaW5nID8/ICcnKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHJlc3BvbnNpdmU6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDE2ODAsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHBhcmVudC5kYXRhKCdzbGlkZXNfbGFwdG9wJykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX2xhcHRvcCcpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDEyODAsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHBhcmVudC5kYXRhKCdzbGlkZXNfdGFibGV0JykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX3RhYmxldCcpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDEwMjQsXG4gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXNUb1Nob3c6IHBhcmVudC5kYXRhKCdzbGlkZXNfbW9iaWxlJykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M6IHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX21vYmlsZScpID8/IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrcG9pbnQ6IDc2OCxcbiAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogcGFyZW50LmRhdGEoJ3NsaWRlc19tb2JpbGVfc21hbGwnKSA/PyAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm93czogcGFyZW50LmRhdGEoJ3NsaWRlc3Jvd3NfbW9iaWxlX3NtYWxsJykgPz8gMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNTQwLFxuICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TaG93OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5kYXRhKCdzbGlkZXNfbW9iaWxlX3hzbWFsbCcpID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50LmRhdGEoJ3NsaWRlc19tb2JpbGVfc21hbGwnKSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3dzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX21vYmlsZV94c21hbGwnKSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5kYXRhKCdzbGlkZXNyb3dzX21vYmlsZV9zbWFsbCcpID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICAvLyDinIUgaGVscGVyIHBhcmEgbWFyY2FyIHJlYWR5IChjb24gZG9ibGUgckFGIHBhcmEgbGF5b3V0IGVzdGFibGUpXG4gICAgICAgIGxldCByZWFkeUZpcmVkID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgbWFya1JlYWR5ID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlYWR5RmlyZWQpIHJldHVybjtcbiAgICAgICAgICAgIHJlYWR5RmlyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6aW5nID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzbGlkZXJTZWxlY3Rvci5oYXNDbGFzcygnc2xpY2staW5pdGlhbGl6ZWQnKSkgcmV0dXJuO1xuXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5zbGljaygnc2V0UG9zaXRpb24nKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7fVxuXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDbGFzcygnc2xpZGVyLS1wZW5kaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5hZGRDbGFzcygnc2xpZGVyLS1yZWFkeScpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8g8J+OpyBTcG90aWZ5IGZpeCBpbnRhY3RvXG4gICAgICAgIGlmIChwYXJlbnQuZGF0YSgnc2xpZGVyX25hbWUnKSA9PT0gJ2pzLXNwb3RpZnlQbGF5ZXItc2xpZGVyJykge1xuICAgICAgICAgICAgc2xpZGVyU2VsZWN0b3Iub24oXG4gICAgICAgICAgICAgICAgJ2JlZm9yZUNoYW5nZScsXG4gICAgICAgICAgICAgICAgKF86IEV2ZW50LCBfXzogYW55LCBjdXJyZW50OiBudW1iZXIsIG5leHQ6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gbmV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLnNsaWNrLWNlbnRlciArIC5zbGljay1jbG9uZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzbGljay1jdXJyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2xpY2stY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyDwn5SlIElNUE9SVEFOVEU6IGVuZ2FuY2hhciBpbml0IEFOVEVTIGRlIGxsYW1hciBhIHNsaWNrKClcbiAgICAgICAgICAgIHNsaWRlclNlbGVjdG9yLm9uZSgnaW5pdCcsIG1hcmtSZWFkeSk7XG5cbiAgICAgICAgICAgIGlmIChpbmZvLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5zbGljayh7IC4uLmJhc2VPcHRpb25zLCBhc05hdkZvcjogaW5mbyB9KTtcbiAgICAgICAgICAgICAgICBpbmZvLnNsaWNrKHtcbiAgICAgICAgICAgICAgICAgICAgZG90czogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGFycm93czogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGluZmluaXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBmYWRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc2Zvcm06IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGNzc0Vhc2U6ICdjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KScsXG4gICAgICAgICAgICAgICAgICAgIHNwZWVkOiA3NTAsXG4gICAgICAgICAgICAgICAgICAgIHNsaWRlc1RvU2hvdzogMSxcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVzVG9TY3JvbGw6IDEsXG4gICAgICAgICAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgc3dpcGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICB0b3VjaE1vdmU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzbGlkZXJTZWxlY3Rvci5zbGljayhiYXNlT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIOKchSBGYWxsYmFjayBkdXJvOiBzaSBwb3IgbG8gcXVlIHNlYSBpbml0IG5vIHNhbHTDsywgcGVybyB5YSBlc3TDoSBpbmljaWFsaXphZG9cbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgc2xpZGVyU2VsZWN0b3IuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykgJiZcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Lmhhc0NsYXNzKCdzbGlkZXItLXBlbmRpbmcnKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBtYXJrUmVhZHkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAyMDApO1xuXG4gICAgICAgICAgICAvLyDwn5SBIFJlY2FsY3VsbyBmaW5hbCB0cmFzIGNhcmdhIGNvbXBsZXRhXG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICAnbG9hZCcsXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2xpZGVyU2VsZWN0b3IuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtSZWFkeSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IG9uY2U6IHRydWUgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbUHVyb1NsaWRlcl0gRXJyb3IgaW5pY2lhbmRvIFNsaWNrOicsIGUpO1xuICAgICAgICAgICAgLy8gc2kgaGF5IGVycm9yLCBubyBsbyBkZWplcyBpbnZpc2libGUgcGFyYSBzaWVtcHJlXG4gICAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2xhc3MoJ3NsaWRlci0tcGVuZGluZycpO1xuICAgICAgICAgICAgcGFyZW50LmFkZENsYXNzKCdzbGlkZXItLXJlYWR5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTbGlkZXIoKSB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSAkKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBzbGlkZXJOYW1lID0gcGFyZW50LmRhdGEoJ3NsaWRlcl9uYW1lJyk7XG4gICAgICAgICAgICBjb25zdCAkY29udGFpbmVyID0gc2xpZGVyTmFtZVxuICAgICAgICAgICAgICAgID8gcGFyZW50LmZpbmQoYC4ke3NsaWRlck5hbWV9YClcbiAgICAgICAgICAgICAgICA6IHBhcmVudDtcblxuICAgICAgICAgICAgaWYgKCRjb250YWluZXIubGVuZ3RoICYmICRjb250YWluZXIuaGFzQ2xhc3MoJ3NsaWNrLWluaXRpYWxpemVkJykpIHtcbiAgICAgICAgICAgICAgICAkY29udGFpbmVyLnNsaWNrKCd1bnNsaWNrJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDbGFzcygnc2xpZGVyLS1wZW5kaW5nIHNsaWRlci0tcmVhZHknKTtcbiAgICAgICAgfSBjYXRjaCB7fVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5jaGVja1RpbWVyKSBjbGVhclRpbWVvdXQodGhpcy5jaGVja1RpbWVyKTtcbiAgICAgICAgdGhpcy5kZXN0cm95U2xpZGVyKCk7XG4gICAgfVxufVxuIl19
|
package/fesm2022/ctt-puro.mjs
CHANGED
|
@@ -925,13 +925,11 @@ class PuroScriptDirective {
|
|
|
925
925
|
return;
|
|
926
926
|
if (typeof $ === 'undefined')
|
|
927
927
|
return;
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
this.runBrowserScripts();
|
|
934
|
-
}, 100);
|
|
928
|
+
requestAnimationFrame(() => {
|
|
929
|
+
requestAnimationFrame(() => {
|
|
930
|
+
this.runBrowserScripts();
|
|
931
|
+
});
|
|
932
|
+
});
|
|
935
933
|
}
|
|
936
934
|
runBrowserScripts() {
|
|
937
935
|
if (!isPlatformBrowser(this.platformId))
|
|
@@ -1239,18 +1237,29 @@ class PuroSliderDirective {
|
|
|
1239
1237
|
const $container = sliderName ? parent.find(`.${sliderName}`) : parent;
|
|
1240
1238
|
// ⚠️ NO uses :hidden aquí, porque slider--pending (visibility:hidden)
|
|
1241
1239
|
// hace que jQuery lo considere hidden y te bloquea el init.
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
$container.width() === 0) {
|
|
1240
|
+
const isHiddenByBreakpoint = $container.width() === 0;
|
|
1241
|
+
if (!$container.length || $container.children().length === 0) {
|
|
1245
1242
|
this.checkTimer = setTimeout(() => this.waitForDomAndInit(), 50);
|
|
1246
1243
|
return;
|
|
1247
1244
|
}
|
|
1245
|
+
// 👇 si está oculto por breakpoint, NO bloquees el ready
|
|
1246
|
+
if (isHiddenByBreakpoint) {
|
|
1247
|
+
this.markAsReadyWithoutInit(parent);
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1248
1250
|
requestAnimationFrame(() => {
|
|
1249
1251
|
requestAnimationFrame(() => {
|
|
1250
1252
|
this.initSlider(parent, $container);
|
|
1251
1253
|
});
|
|
1252
1254
|
});
|
|
1253
1255
|
}
|
|
1256
|
+
markAsReadyWithoutInit(parent) {
|
|
1257
|
+
// No inicializamos slick porque no es visible
|
|
1258
|
+
parent.removeClass('slider--pending');
|
|
1259
|
+
parent.addClass('slider--ready');
|
|
1260
|
+
this.initialized = true;
|
|
1261
|
+
this.initializing = false;
|
|
1262
|
+
}
|
|
1254
1263
|
initSlider(parent, sliderSelector) {
|
|
1255
1264
|
if (this.initializing || this.initialized)
|
|
1256
1265
|
return;
|