
META-INF.resources.butterfaces-dist-js.butterfaces-overlay.js Maven / Gradle / Ivy
///
///
var ButterFaces;
(function (ButterFaces) {
var Overlay = (function () {
function Overlay(delay, isTransparentBlockingOverlayActive, selector) {
if (delay === void 0) { delay = 500; }
if (isTransparentBlockingOverlayActive === void 0) { isTransparentBlockingOverlayActive = true; }
if (selector === void 0) { selector = 'body'; }
this.isHiding = true;
this.delay = delay;
this.isTransparentBlockingOverlayActive = isTransparentBlockingOverlayActive;
this.selector = selector;
console.log('ButterFaces.Overlay.constructor - creating overlay with delay is ' + this.delay + ', isTransparentBlockingOverlayActive is ' + this.isTransparentBlockingOverlayActive + ', selector is ' + this.selector);
}
Overlay.prototype.show = function () {
var _this = this;
var $elementsToDisable = $(this.selector);
ButterFaces.Overlay.fadeOutDetachtedOverlays();
$elementsToDisable.each(function (index, elementToDisable) {
var $elementToDisable = $(elementToDisable);
_this.isHiding = false;
if ($elementToDisable.attr('data-overlay-uuid') !== undefined) {
if (ButterFaces.Overlay.findOverlay($elementToDisable.attr('data-overlay-uuid')).length > 0) {
console.log("ButterFaces.Overlay.show - overlay already existing. Skip showing overlay");
return;
}
else {
$elementToDisable.removeAttr('data-overlay-uuid');
}
}
console.log("ButterFaces.Overlay.show - appending not displayed overlay to body");
var uuid = ButterFaces.Guid.newGuid();
var $overlay = $(' ');
$elementToDisable.attr('data-overlay-uuid', uuid);
if (_this.selector === 'body') {
$overlay.addClass('overlay-body');
}
else {
// TODO if blockpage is true set it to max size
$overlay.offset($elementToDisable.offset())
.width($elementToDisable.outerWidth())
.height($elementToDisable.outerHeight())
.addClass('overlay-body-child')
.css({ 'position': 'absolute' }); // IE overrides css position so set it here
}
$('body').append($overlay);
if (_this.isTransparentBlockingOverlayActive) {
console.log("ButterFaces.Overlay.show - isTransparentBlockingOverlayActive is true, showing transparent overlay direcly");
$overlay.show();
}
window.setTimeout(function () {
if (!_this.isHiding && !_this.isTransparentBlockingOverlayActive) {
console.log("ButterFaces.Overlay.show - deferred: isTransparentBlockingOverlayActive is false, showing transparent overlay after delay");
$overlay.show();
}
if (!_this.isHiding) {
console.log("ButterFaces.Overlay.show - deferred: starting animation to make overlay intransparent");
$overlay
.stop(true)
.animate({
opacity: 1
}, 300, function () {
console.log("ButterFaces.Overlay.show - deferred: animation ended to make overlay intransparent");
});
}
}, _this.delay);
//}
});
};
Overlay.prototype.hide = function () {
console.log("ButterFaces.Overlay.hide - starting animation to make overlay transparent");
var $elementsToDisable = $(this.selector);
this.isHiding = true;
ButterFaces.Overlay.fadeOutDetachtedOverlays();
$elementsToDisable.each(function (index, elementToDisable) {
var $elementToDisable = $(elementToDisable);
var overlayUuid = $elementToDisable.attr('data-overlay-uuid');
if (overlayUuid !== undefined && ButterFaces.Overlay.findOverlay(overlayUuid).length > 0) {
var $overlay = ButterFaces.Overlay.findOverlay($elementToDisable.attr('data-overlay-uuid'));
ButterFaces.Overlay.fadeOutOverlay($overlay);
}
});
};
Overlay.hideAll = function () {
console.log("ButterFaces.Overlay.hideAll - starting animation to make all overlays transparent");
ButterFaces.Overlay.fadeOutDetachtedOverlays();
ButterFaces.Overlay.fadeOutAttachtedOverlays();
};
Overlay.fadeOutDetachtedOverlays = function () {
// remove unbinded elements
$('.butter-component-overlay').each(function (index, elementToCheck) {
var $overlay = $(elementToCheck);
var uuidToCheck = $(elementToCheck).attr('data-overlay-uuid');
if ($('[data-overlay-uuid=' + uuidToCheck + ']').length == 1) {
ButterFaces.Overlay.fadeOutOverlay($overlay);
}
});
};
;
Overlay.fadeOutAttachtedOverlays = function () {
// remove binded elements
$('.butter-component-overlay').each(function (index, elementToCheck) {
var $overlay = $(elementToCheck);
var uuidToCheck = $(elementToCheck).attr('data-overlay-uuid');
var elements = $('[data-overlay-uuid=' + uuidToCheck + ']');
if (elements.length > 1) {
ButterFaces.Overlay.fadeOutOverlay($overlay);
elements.each(function (index, element) {
var $element = $(element);
$element.removeAttr('data-overlay-uuid');
});
}
});
};
;
Overlay.fadeOutOverlay = function ($overlay) {
$overlay
.stop(true)
.animate({
opacity: 0
}, 300, function () {
$overlay.remove();
console.log("ButterFaces.Overlay.hide - animation ended to make overlay transparent, OVERLAY REMOVED");
});
};
;
Overlay.findOverlay = function (uuid) {
return $("body .butter-component-overlay[data-overlay-uuid='" + uuid + "']");
};
return Overlay;
})();
ButterFaces.Overlay = Overlay;
})(ButterFaces || (ButterFaces = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1dHRlcmZhY2VzLW92ZXJsYXkudHMiXSwibmFtZXMiOlsiQnV0dGVyRmFjZXMiLCJCdXR0ZXJGYWNlcy5PdmVybGF5IiwiQnV0dGVyRmFjZXMuT3ZlcmxheS5jb25zdHJ1Y3RvciIsIkJ1dHRlckZhY2VzLk92ZXJsYXkuc2hvdyIsIkJ1dHRlckZhY2VzLk92ZXJsYXkuaGlkZSIsIkJ1dHRlckZhY2VzLk92ZXJsYXkuaGlkZUFsbCIsIkJ1dHRlckZhY2VzLk92ZXJsYXkuZmFkZU91dERldGFjaHRlZE92ZXJsYXlzIiwiQnV0dGVyRmFjZXMuT3ZlcmxheS5mYWRlT3V0QXR0YWNodGVkT3ZlcmxheXMiLCJCdXR0ZXJGYWNlcy5PdmVybGF5LmZhZGVPdXRPdmVybGF5IiwiQnV0dGVyRmFjZXMuT3ZlcmxheS5maW5kT3ZlcmxheSJdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELDBDQUEwQztBQUUxQyxJQUFPLFdBQVcsQ0EySmpCO0FBM0pELFdBQU8sV0FBVyxFQUFDLENBQUM7SUFFaEJBO1FBTUlDLGlCQUFZQSxLQUFXQSxFQUFFQSxrQ0FBeUNBLEVBQUVBLFFBQWlCQTtZQUF6RUMscUJBQVdBLEdBQVhBLFdBQVdBO1lBQUVBLGtEQUF5Q0EsR0FBekNBLHlDQUF5Q0E7WUFBRUEsd0JBQWlCQSxHQUFqQkEsaUJBQWlCQTtZQUNqRkEsSUFBSUEsQ0FBQ0EsUUFBUUEsR0FBR0EsSUFBSUEsQ0FBQ0E7WUFDckJBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLEtBQUtBLENBQUNBO1lBQ25CQSxJQUFJQSxDQUFDQSxrQ0FBa0NBLEdBQUdBLGtDQUFrQ0EsQ0FBQ0E7WUFDN0VBLElBQUlBLENBQUNBLFFBQVFBLEdBQUdBLFFBQVFBLENBQUNBO1lBRXpCQSxPQUFPQSxDQUFDQSxHQUFHQSxDQUFDQSxtRUFBbUVBLEdBQUdBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLDBDQUEwQ0EsR0FBR0EsSUFBSUEsQ0FBQ0Esa0NBQWtDQSxHQUFHQSxnQkFBZ0JBLEdBQUdB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QkFBbUJBLENBQUNBLENBQUNBO29CQUM3Q0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7Z0JBQ1BBLENBQUNBO1lBQ0xBLENBQUNBLENBQUNBLENBQUNBO1FBQ1BBLENBQUNBOztRQUVjTixzQkFBY0EsR0FBN0JBLFVBQThCQSxRQUFZQTtZQUN0Q08sUUFBUUE7aUJBQ0hBLElBQUlBLENBQUNBLElBQUlBLENBQUNBO2lCQUNWQSxPQUFPQSxDQUFDQTtnQkFDTEEsT0FBT0EsRUFBRUEsQ0FBQ0E7YUFDYkEsRUFBRUEsR0FBR0EsRUFBRUE7Z0JBQ0pBLFFBQVFBLENBQUNBLE1BQU1BLEVBQUVBLENBQUNBO2dCQUNsQkEsT0FBT0EsQ0FBQ0EsR0FBR0EsQ0FBQ0EseUZBQXlGQSxDQUFDQSxDQUFDQTtZQUMzR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7UUFDWEEsQ0FBQ0E7O1FBRWNQLG1CQUFXQSxHQUExQkEsVUFBMkJBLElBQVdBO1lBQ2xDUSxNQUFNQSxDQUFDQSxDQUFDQSxDQUFDQSxvREFBb0RBLEdBQUdBLElBQUlBLEdBQUdBLElBQUlBLENBQUNBLENBQUNBO1FBQ2pGQSxDQUFDQTtRQUNMUixjQUFDQTtJQUFEQSxDQXhKQUQsQUF3SkNDLElBQUFEO0lBeEpZQSxtQkFBT0EsVUF3Sm5CQSxDQUFBQTtBQUNMQSxDQUFDQSxFQTNKTSxXQUFXLEtBQVgsV0FBVyxRQTJKakIiLCJmaWxlIjoiYnV0dGVyZmFjZXMtb3ZlcmxheS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLzxyZWZlcmVuY2UgcGF0aD1cImRlZmluaXRpb25zL2V4dGVybmFsL3RzZC5kLnRzXCIvPlxuLy8vPHJlZmVyZW5jZSBwYXRoPVwiYnV0dGVyZmFjZXMtZ3VpZC50c1wiLz5cblxubW9kdWxlIEJ1dHRlckZhY2VzIHtcblxuICAgIGV4cG9ydCBjbGFzcyBPdmVybGF5IHtcbiAgICAgICAgaXNIaWRpbmc6Ym9vbGVhbjtcbiAgICAgICAgZGVsYXk6bnVtYmVyO1xuICAgICAgICBzZWxlY3RvcjpzdHJpbmc7XG4gICAgICAgIGlzVHJhbnNwYXJlbnRCbG9ja2luZ092ZXJsYXlBY3RpdmU6Ym9vbGVhbjtcblxuICAgICAgICBjb25zdHJ1Y3RvcihkZWxheSA9IDUwMCwgaXNUcmFuc3BhcmVudEJsb2NraW5nT3ZlcmxheUFjdGl2ZSA9IHRydWUsIHNlbGVjdG9yID0gJ2JvZHknKSB7XG4gICAgICAgICAgICB0aGlzLmlzSGlkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGVsYXkgPSBkZWxheTtcbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc3BhcmVudEJsb2NraW5nT3ZlcmxheUFjdGl2ZSA9IGlzVHJhbnNwYXJlbnRCbG9ja2luZ092ZXJsYXlBY3RpdmU7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdCdXR0ZXJGYWNlcy5PdmVybGF5LmNvbnN0cnVjdG9yIC0gY3JlYXRpbmcgb3ZlcmxheSB3aXRoIGRlbGF5IGlzICcgKyB0aGlzLmRlbGF5ICsgJywgaXNUcmFuc3BhcmVudEJsb2NraW5nT3ZlcmxheUFjdGl2ZSBpcyAnICsgdGhpcy5pc1RyYW5zcGFyZW50QmxvY2tpbmdPdmVybGF5QWN0aXZlICsgJywgc2VsZWN0b3IgaXMgJyArIHRoaXMuc2VsZWN0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHNob3coKSB7XG4gICAgICAgICAgICBsZXQgJGVsZW1lbnRzVG9EaXNhYmxlID0gJCh0aGlzLnNlbGVjdG9yKTtcblxuICAgICAgICAgICAgQnV0dGVyRmFjZXMuT3ZlcmxheS5mYWRlT3V0RGV0YWNodGVkT3ZlcmxheXMoKTtcblxuICAgICAgICAgICAgJGVsZW1lbnRzVG9EaXNhYmxlLmVhY2goKGluZGV4LCBlbGVtZW50VG9EaXNhYmxlKSA9PiB7XG5cbiAgICAgICAgICAgICAgICBsZXQgJGVsZW1lbnRUb0Rpc2FibGUgPSAkKGVsZW1lbnRUb0Rpc2FibGUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5pc0hpZGluZyA9IGZhbHNlO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoJGVsZW1lbnRUb0Rpc2FibGUuYXR0cignZGF0YS1vdmVybGF5LXV1aWQnKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChCdXR0ZXJGYWNlcy5PdmVybGF5LmZpbmRPdmVybGF5KCRlbGVtZW50VG9EaXNhYmxlLmF0dHIoJ2RhdGEtb3ZlcmxheS11dWlkJykpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQnV0dGVyRmFjZXMuT3ZlcmxheS5zaG93IC0gb3ZlcmxheSBhbHJlYWR5IGV4aXN0aW5nLiBTa2lwIHNob3dpbmcgb3ZlcmxheVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50VG9EaXNhYmxlLnJlbW92ZUF0dHIoJ2RhdGEtb3ZlcmxheS11dWlkJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJ1dHRlckZhY2VzLk92ZXJsYXkuc2hvdyAtIGFwcGVuZGluZyBub3QgZGlzcGxheWVkIG92ZXJsYXkgdG8gYm9keVwiKTtcbiAgICAgICAgICAgICAgICB2YXIgdXVpZCA9IEJ1dHRlckZhY2VzLkd1aWQubmV3R3VpZCgpO1xuXG4gICAgICAgICAgICAgICAgbGV0ICRvdmVybGF5ID0gJCgnPGRpdiBjbGFzcz1cImJ1dHRlci1jb21wb25lbnQtb3ZlcmxheVwiIGRhdGEtb3ZlcmxheS11dWlkPVwiJyArIHV1aWQgKyAnXCI+PGRpdiBjbGFzcz1cImJ1dHRlci1jb21wb25lbnQtc3Bpbm5lclwiPjxkaXY+PC9kaXY+PGRpdj48L2Rpdj48ZGl2PjwvZGl2PjxkaXY+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7XG5cbiAgICAgICAgICAgICAgICAkZWxlbWVudFRvRGlzYWJsZS5hdHRyKCdkYXRhLW92ZXJsYXktdXVpZCcsIHV1aWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0b3IgPT09ICdib2R5Jykge1xuICAgICAgICAgICAgICAgICAgICAkb3ZlcmxheS5hZGRDbGFzcygnb3ZlcmxheS1ib2R5Jyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyBpZiBibG9ja3BhZ2UgaXMgdHJ1ZSBzZXQgaXQgdG8gbWF4IHNpemVcbiAgICAgICAgICAgICAgICAgICAgJG92ZXJsYXkub2Zmc2V0KCRlbGVtZW50VG9EaXNhYmxlLm9mZnNldCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAud2lkdGgoJGVsZW1lbnRUb0Rpc2FibGUub3V0ZXJXaWR0aCgpKVxuICAgICAgICAgICAgICAgICAgICAgICAuaGVpZ2h0KCRlbGVtZW50VG9EaXNhYmxlLm91dGVySGVpZ2h0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgIC5hZGRDbGFzcygnb3ZlcmxheS1ib2R5LWNoaWxkJylcbiAgICAgICAgICAgICAgICAgICAgICAgLmNzcyh7J3Bvc2l0aW9uJzogJ2Fic29sdXRlJ30pOyAvLyBJRSBvdmVycmlkZXMgY3NzIHBvc2l0aW9uIHNvIHNldCBpdCBoZXJlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJCgnYm9keScpLmFwcGVuZCgkb3ZlcmxheSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1RyYW5zcGFyZW50QmxvY2tpbmdPdmVybGF5QWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQnV0dGVyRmFjZXMuT3ZlcmxheS5zaG93IC0gaXNUcmFuc3BhcmVudEJsb2NraW5nT3ZlcmxheUFjdGl2ZSBpcyB0cnVlLCBzaG93aW5nIHRyYW5zcGFyZW50IG92ZXJsYXkgZGlyZWNseVwiKTtcbiAgICAgICAgICAgICAgICAgICAgJG92ZXJsYXkuc2hvdygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzSGlkaW5nICYmICF0aGlzLmlzVHJhbnNwYXJlbnRCbG9ja2luZ092ZXJsYXlBY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQnV0dGVyRmFjZXMuT3ZlcmxheS5zaG93IC0gZGVmZXJyZWQ6IGlzVHJhbnNwYXJlbnRCbG9ja2luZ092ZXJsYXlBY3RpdmUgaXMgZmFsc2UsIHNob3dpbmcgdHJhbnNwYXJlbnQgb3ZlcmxheSBhZnRlciBkZWxheVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRvdmVybGF5LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0hpZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJCdXR0ZXJGYWNlcy5PdmVybGF5LnNob3cgLSBkZWZlcnJlZDogc3RhcnRpbmcgYW5pbWF0aW9uIHRvIG1ha2Ugb3ZlcmxheSBpbnRyYW5zcGFyZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG92ZXJsYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RvcCh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hbmltYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIDMwMCwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJ1dHRlckZhY2VzLk92ZXJsYXkuc2hvdyAtIGRlZmVycmVkOiBhbmltYXRpb24gZW5kZWQgdG8gbWFrZSBvdmVybGF5IGludHJhbnNwYXJlbnRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB0aGlzLmRlbGF5KTtcbiAgICAgICAgICAgICAgICAvL31cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGhpZGUoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJ1dHRlckZhY2VzLk92ZXJsYXkuaGlkZSAtIHN0YXJ0aW5nIGFuaW1hdGlvbiB0byBtYWtlIG92ZXJsYXkgdHJhbnNwYXJlbnRcIik7XG5cbiAgICAgICAgICAgIGxldCAkZWxlbWVudHNUb0Rpc2FibGUgPSAkKHRoaXMuc2VsZWN0b3IpO1xuICAgICAgICAgICAgdGhpcy5pc0hpZGluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIEJ1dHRlckZhY2VzLk92ZXJsYXkuZmFkZU91dERldGFjaHRlZE92ZXJsYXlzKCk7XG5cbiAgICAgICAgICAgICRlbGVtZW50c1RvRGlzYWJsZS5lYWNoKChpbmRleCwgZWxlbWVudFRvRGlzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCAkZWxlbWVudFRvRGlzYWJsZSA9ICQoZWxlbWVudFRvRGlzYWJsZSk7XG4gICAgICAgICAgICAgICAgbGV0IG92ZXJsYXlVdWlkID0gJGVsZW1lbnRUb0Rpc2FibGUuYXR0cignZGF0YS1vdmVybGF5LXV1aWQnKTtcblxuICAgICAgICAgICAgICAgIGlmIChvdmVybGF5VXVpZCAhPT0gdW5kZWZpbmVkICYmIEJ1dHRlckZhY2VzLk92ZXJsYXkuZmluZE92ZXJsYXkob3ZlcmxheVV1aWQpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRvdmVybGF5ID0gQnV0dGVyRmFjZXMuT3ZlcmxheS5maW5kT3ZlcmxheSgkZWxlbWVudFRvRGlzYWJsZS5hdHRyKCdkYXRhLW92ZXJsYXktdXVpZCcpKTtcblxuICAgICAgICAgICAgICAgICAgICBCdXR0ZXJGYWNlcy5PdmVybGF5LmZhZGVPdXRPdmVybGF5KCRvdmVybGF5KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIHN0YXRpYyBoaWRlQWxsKCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJCdXR0ZXJGYWNlcy5PdmVybGF5LmhpZGVBbGwgLSBzdGFydGluZyBhbmltYXRpb24gdG8gbWFrZSBhbGwgb3ZlcmxheXMgdHJhbnNwYXJlbnRcIik7XG5cbiAgICAgICAgICAgIEJ1dHRlckZhY2VzLk92ZXJsYXkuZmFkZU91dERldGFjaHRlZE92ZXJsYXlzKCk7XG4gICAgICAgICAgICBCdXR0ZXJGYWNlcy5PdmVybGF5LmZhZGVPdXRBdHRhY2h0ZWRPdmVybGF5cygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmFkZU91dERldGFjaHRlZE92ZXJsYXlzKCkge1xuICAgICAgICAgICAgLy8gcmVtb3ZlIHVuYmluZGVkIGVsZW1lbnRzXG4gICAgICAgICAgICAkKCcuYnV0dGVyLWNvbXBvbmVudC1vdmVybGF5JykuZWFjaCgoaW5kZXgsIGVsZW1lbnRUb0NoZWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0ICRvdmVybGF5ID0gJChlbGVtZW50VG9DaGVjayk7XG4gICAgICAgICAgICAgICAgbGV0IHV1aWRUb0NoZWNrID0gJChlbGVtZW50VG9DaGVjaykuYXR0cignZGF0YS1vdmVybGF5LXV1aWQnKTtcbiAgICAgICAgICAgICAgICBpZiAoJCgnW2RhdGEtb3ZlcmxheS11dWlkPScgKyB1dWlkVG9DaGVjayArICddJykubGVuZ3RoID09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgQnV0dGVyRmFjZXMuT3ZlcmxheS5mYWRlT3V0T3ZlcmxheSgkb3ZlcmxheSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZmFkZU91dEF0dGFjaHRlZE92ZXJsYXlzKCkge1xuICAgICAgICAgICAgLy8gcmVtb3ZlIGJpbmRlZCBlbGVtZW50c1xuICAgICAgICAgICAgJCgnLmJ1dHRlci1jb21wb25lbnQtb3ZlcmxheScpLmVhY2goKGluZGV4LCBlbGVtZW50VG9DaGVjaykgPT4ge1xuICAgICAgICAgICAgICAgIGxldCAkb3ZlcmxheSA9ICQoZWxlbWVudFRvQ2hlY2spO1xuICAgICAgICAgICAgICAgIGxldCB1dWlkVG9DaGVjayA9ICQoZWxlbWVudFRvQ2hlY2spLmF0dHIoJ2RhdGEtb3ZlcmxheS11dWlkJyk7XG4gICAgICAgICAgICAgICAgbGV0IGVsZW1lbnRzID0gJCgnW2RhdGEtb3ZlcmxheS11dWlkPScgKyB1dWlkVG9DaGVjayArICddJyk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgQnV0dGVyRmFjZXMuT3ZlcmxheS5mYWRlT3V0T3ZlcmxheSgkb3ZlcmxheSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudHMuZWFjaCgoaW5kZXgsIGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCAkZWxlbWVudCA9ICQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVBdHRyKCdkYXRhLW92ZXJsYXktdXVpZCcpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBwcml2YXRlIHN0YXRpYyBmYWRlT3V0T3ZlcmxheSgkb3ZlcmxheTphbnkpIHtcbiAgICAgICAgICAgICRvdmVybGF5XG4gICAgICAgICAgICAgICAgLnN0b3AodHJ1ZSlcbiAgICAgICAgICAgICAgICAuYW5pbWF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDBcbiAgICAgICAgICAgICAgICB9LCAzMDAsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgJG92ZXJsYXkucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQnV0dGVyRmFjZXMuT3ZlcmxheS5oaWRlIC0gYW5pbWF0aW9uIGVuZGVkIHRvIG1ha2Ugb3ZlcmxheSB0cmFuc3BhcmVudCwgT1ZFUkxBWSBSRU1PVkVEXCIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHByaXZhdGUgc3RhdGljIGZpbmRPdmVybGF5KHV1aWQ6U3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gJChcImJvZHkgLmJ1dHRlci1jb21wb25lbnQtb3ZlcmxheVtkYXRhLW92ZXJsYXktdXVpZD0nXCIgKyB1dWlkICsgXCInXVwiKTtcbiAgICAgICAgfVxuICAgIH1cbn0iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
© 2015 - 2025 Weber Informatics LLC | Privacy Policy