ay-accordion
Advanced tools
Comparing version
@@ -71,3 +71,3 @@ /*! Copyright (c) 2016 Ayogo Health Inc. | ||
/* Close existing panels if needed */ | ||
if (!this.multiple && this.curPanel && fn !== this.curPanel.close) { | ||
if (!this.multiple && this.curPanel && fn !== this.curPanel.fn && fn !== this.curPanel.close) { | ||
this.curPanel.close(); | ||
@@ -204,27 +204,27 @@ } | ||
}; | ||
self.toggle = function (cb) { | ||
if (self.rootCtrl.blockClicks) { | ||
return; | ||
self.fn = function () { | ||
if (self.isOpen) { | ||
self.close(); | ||
} | ||
var fn = function () { | ||
else { | ||
self.open(); | ||
} | ||
Array.prototype.forEach.call($element.children(), function (el) { | ||
if (el.hasAttribute('ay-accordion-header')) { | ||
return; | ||
} | ||
if (self.isOpen) { | ||
self.close(); | ||
el.removeAttribute('hidden'); | ||
} | ||
else { | ||
self.open(); | ||
el.setAttribute('hidden', 'hidden'); | ||
} | ||
Array.prototype.forEach.call($element.children(), function (el) { | ||
if (el.hasAttribute('ay-accordion-header')) { | ||
return; | ||
} | ||
if (self.isOpen) { | ||
el.removeAttribute('hidden'); | ||
} | ||
else { | ||
el.setAttribute('hidden', 'hidden'); | ||
} | ||
}); | ||
}; | ||
self.rootCtrl.run(fn, cb); | ||
}); | ||
}; | ||
self.toggle = function (cb) { | ||
if (self.rootCtrl.blockClicks) { | ||
return; | ||
} | ||
self.rootCtrl.run(self.fn, cb); | ||
}; | ||
}, | ||
@@ -297,2 +297,2 @@ link: function ($scope, $element, $attrs, $ctrls) { | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQWlCSCxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7S0FDaEMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO0lBQzVCLE1BQU0sQ0FBQztRQUNMLFFBQVEsRUFBRSxHQUFHO1FBQ2IsVUFBVSxFQUFFLFVBQVMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNO1lBQzNDLFVBQVUsQ0FBQztZQUVYLHdFQUF3RTtZQUN4RSxJQUFJLE1BQU0sR0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxJQUFJLEdBQUcsR0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUVsQyxJQUFJLEtBQUssR0FBSyxVQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBTTtnQkFDckMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV2QyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO3dCQUM3QyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixHQUFHLENBQUMsQ0FB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TUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckUsQ0FBQztZQUVELGtCQUFrQixNQUFNO2dCQUN0QixLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUUxQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFNLE9BQUEsS0FBSyxDQUFDLE1BQU0sRUFBWixDQUFZLEVBQUUsY0FBTSxPQUFBLFdBQVcsRUFBRSxFQUFiLENBQWEsQ0FBQyxDQUFDO1lBRXZELFFBQVEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVMsTUFBTTtnQkFDbEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVMsTUFBTTtnQkFDcEMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNuRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyohIENvcHlyaWdodCAoYykgMjAxNiBBeW9nbyBIZWFsdGggSW5jLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvXG4gKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4gKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HXG4gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTXG4gKiBJTiBUSEUgU09GVFdBUkUuXG4gKi9cblxuLyogQGludGVybmFsICovXG5pbnRlcmZhY2UgSVBhbmVsQ29udHJvbGxlciB7XG4gIHJvb3RDdHJsIDogYW55O1xuICBpc09wZW4gOiBib29sZWFuO1xuICBvcGVuIDogKCkgPT4gdm9pZDtcbiAgY2xvc2UgOiAoKSA9PiB2b2lkO1xuICB0b2dnbGUgOiAoY2IgOiBhbnkpID0+IHZvaWQ7XG59XG5cbi8qIEBpbnRlcm5hbCAqL1xuaW50ZXJmYWNlIElUaXRsZVNjb3BlIGV4dGVuZHMgbmcuSVNjb3BlIHtcbiAgaXNPcGVuIDogYm9vbGVhbjtcbn1cblxuXG5hbmd1bGFyLm1vZHVsZSgnYXlBY2NvcmRpb24nLCBbXSlcbi5kaXJlY3RpdmUoJ2F5QWNjb3JkaW9uUm9vdCcsIGZ1bmN0aW9uKCkge1xuICByZXR1cm4ge1xuICAgIHJlc3RyaWN0OiAnQScsXG4gICAgY29udHJvbGxlcjogZnVuY3Rpb24oJHNjb3BlLCAkZWxlbWVudCwgJGF0dHJzKSB7XG4gICAgICBcIm5nSW5qZWN0XCI7XG5cbiAgICAgIC8vIEhlbHBlciBNZXRob2RzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgdmFyIGZpbHRlciAgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyO1xuICAgICAgdmFyIGZvckVhY2ggPSBBcnJheS5wcm90b3R5cGUuZm9yRWFjaDtcbiAgICAgIHZhciBtYXAgICAgID0gQXJyYXkucHJvdG90eXBlLm1hcDtcblxuICAgICAgdmFyIHN0eWxlICAgPSBmdW5jdGlvbihlbCwgcHJvcCwgdmFsdWU/KSB7XG4gICAgICAgIHZhciB2ZW5kb3JzID0gWycnLCAnLXdlYmtpdC0nLCAnLW1zLSddO1xuXG4gICAgICAgIGlmIChhbmd1bGFyLmlzRGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gdmVuZG9ycy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xuICAgICAgICAgICAgZWwuc3R5bGVbdmVuZG9yc1tpXSArIHByb3BdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvciAodmFyIGkgPSB2ZW5kb3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICBpZiAoZWwuc3R5bGVbdmVuZG9yc1tpXSArIHByb3BdICE9PSAnJykge1xuICAgICAgICAgICAgICByZXR1cm4gZWwuc3R5bGVbdmVuZG9yc1tpXSArIHByb3BdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfTtcblxuXG4gICAgICAvLyBDb250cm9sbGVyLWxldmVsIFZhcmlhYmxlcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgIHRoaXMucm9vdCA9ICRlbGVtZW50WzBdO1xuICAgICAgdGhpcy5tdWx0aXBsZSA9IGFuZ3VsYXIuaXNEZWZpbmVkKCRhdHRyc1snbXVsdGlwbGUnXSk7XG4gICAgICB0aGlzLmN1clBhbmVsID0gbnVsbDtcbiAgICAgIHRoaXMuYmxvY2tDbGlja3MgPSBmYWxzZTtcblxuXG4gICAgICAvLyBDb250cm9sbGVyIG1ldGhvZHMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgIHRoaXMucnVuID0gZnVuY3Rpb24oZm4sIGNiKSB7XG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgICAgICBzZWxmLmJsb2NrQ2xpY2tzID0gdHJ1ZTtcblxuICAgICAgICB2YXIgZWxlbWVudHNUb1dhdGNoID0gZmlsdGVyLmNhbGwoc2VsZi5yb290LmNoaWxkTm9kZXMsIGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgICAgLyogRGlzcmVnYXJkIHRleHQgbm9kZXMgYW5kIGNvbW1lbnRzICovXG4gICAgICAgICAgcmV0dXJuIGVsLm5vZGVUeXBlID09PSAxO1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgcHJlUm9vdCA9IHNlbGYucm9vdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAvKiBUYWtlIGluaXRpYWwgbWVhc3VyZW1lbnRzICovXG4gICAgICAgIHZhciBtZWFzdXJlbWVudHMgPSBtYXAuY2FsbChlbGVtZW50c1RvV2F0Y2gsIGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVsOiBlbCxcbiAgICAgICAgICAgIGluaXRpYWxEaW1lbnNpb25zOiAgZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksXG4gICAgICAgICAgICBpbml0aWFsVHJhbnNmb3JtOiAgIHN0eWxlKGVsLCAndHJhbnNmb3JtJykgfHwgJydcbiAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBzZWxmLnJvb3Quc3R5bGUubWluSGVpZ2h0ID0gcHJlUm9vdC5oZWlnaHQgKyAncHgnO1xuXG4gICAgICAgIC8qIENsb3NlIGV4aXN0aW5nIHBhbmVscyBpZiBuZWVkZWQgKi9cbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuY3VyUGFuZWwgJiYgZm4gIT09IHRoaXMuY3VyUGFuZWwuY2xvc2UpIHtcbiAgICAgICAgICB0aGlzLmN1clBhbmVsLmNsb3NlKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBSdW4gdGhlIGZ1bmN0aW9uIHRvIGNoYW5nZSB0aGUgc3RhdGUgKi9cbiAgICAgICAgZm4oKTtcblxuICAgICAgICAvKiBTZXQgdGhlIGVsZW1lbnQgc3RhdGVzIHRvIGFwcGVhciBhcyBpbml0aWFsIGFmdGVyIHRoZSBjaGFuZ2UgKi9cbiAgICAgICAgZm9yRWFjaC5jYWxsKG1lYXN1cmVtZW50cywgZnVuY3Rpb24obSkge1xuICAgICAgICAgIG0ubmV3RGltZW5zaW9ucyA9IG0uZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICBtLm5ld1NjYWxlID0ge1xuICAgICAgICAgICAgeDogbS5pbml0aWFsRGltZW5zaW9ucy53aWR0aCAvIG0ubmV3RGltZW5zaW9ucy53aWR0aCxcbiAgICAgICAgICAgIHk6IG0uaW5pdGlhbERpbWVuc2lvbnMuaGVpZ2h0IC8gbS5uZXdEaW1lbnNpb25zLmhlaWdodFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBtLm5ld09mZnNldCA9IHtcbiAgICAgICAgICAgIHg6IG0uaW5pdGlhbERpbWVuc2lvbnMubGVmdCAtIG0ubmV3RGltZW5zaW9ucy5sZWZ0LFxuICAgICAgICAgICAgeTogbS5pbml0aWFsRGltZW5zaW9ucy50b3AgLSBtLm5ld0RpbWVuc2lvbnMudG9wXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBzdHlsZShtLmVsLCAndHJhbnNmb3JtLW9yaWdpbicsICcwIDAnKTtcbiAgICAgICAgICB9KTtcblxuXG4gICAgICAgICAgbS5jaGlsZHJlbiA9IFtdO1xuXG4gICAgICAgICAgLyogU2V0IHRoZSBncmFuZGNoaWxkcmVuIHRvIHRoZSBpbnZlcnNlIHRyYW5zZm9ybSAqL1xuICAgICAgICAgIGlmIChtLmluaXRpYWxEaW1lbnNpb25zLmhlaWdodCAhPT0gbS5uZXdEaW1lbnNpb25zLmhlaWdodCB8fFxuICAgICAgICAgICAgICBtLmluaXRpYWxEaW1lbnNpb25zLndpZHRoICAhPT0gbS5uZXdEaW1lbnNpb25zLndpZHRoKSB7XG5cbiAgICAgICAgICAgIG0uY2hpbGRyZW4gPSBmaWx0ZXIuY2FsbChtLmVsLmNoaWxkTm9kZXMsIGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgICAgICAgIHJldHVybiBlbC5ub2RlVHlwZSA9PT0gMTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmb3JFYWNoLmNhbGwobS5jaGlsZHJlbiwgZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICAgICAgdmFyIGVsRGltZW5zaW9ucyA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICB2YXIgb2Zmc2V0RnJvbVBhcmVudCA9IHtcbiAgICAgICAgICAgICAgICB4OiBtLm5ld0RpbWVuc2lvbnMubGVmdCAtIGVsRGltZW5zaW9ucy5sZWZ0LFxuICAgICAgICAgICAgICAgIHk6IG0ubmV3RGltZW5zaW9ucy50b3AgIC0gZWxEaW1lbnNpb25zLnRvcFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIHZhciBvcmlnaW4gPSBvZmZzZXRGcm9tUGFyZW50LnggKyAncHggJztcbiAgICAgICAgICAgICAgb3JpZ2luICs9IG9mZnNldEZyb21QYXJlbnQueSArICdweCc7XG5cbiAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBzdHlsZShlbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCBvcmlnaW4pO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdmFyIGR1cmF0aW9uID0gMTAwOyAvLyBJbiBtaWxsaXNlY29uZHNcbiAgICAgICAgdmFyIHQgPSAxO1xuXG4gICAgICAgIGZ1bmN0aW9uIHR3ZWVuKCkge1xuICAgICAgICAgIGZvckVhY2guY2FsbChtZWFzdXJlbWVudHMsIGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgIGlmIChtLmluaXRpYWxEaW1lbnNpb25zLmhlaWdodCA9PT0gbS5uZXdEaW1lbnNpb25zLmhlaWdodCAmJlxuICAgICAgICAgICAgICAgIG0uaW5pdGlhbERpbWVuc2lvbnMud2lkdGggID09PSBtLm5ld0RpbWVuc2lvbnMud2lkdGggICYmXG4gICAgICAgICAgICAgICAgbS5pbml0aWFsRGltZW5zaW9ucy5sZWZ0ICAgPT09IG0ubmV3RGltZW5zaW9ucy5sZWZ0ICAgJiZcbiAgICAgICAgICAgICAgICBtLmluaXRpYWxEaW1lbnNpb25zLnRvcCAgICA9PT0gbS5uZXdEaW1lbnNpb25zLnRvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHRTY2FsZVggICA9IDEgKyAobS5uZXdTY2FsZS54IC0gMSkgKiB0O1xuICAgICAgICAgICAgdmFyIHRTY2FsZVkgICA9IDEgKyAobS5uZXdTY2FsZS55IC0gMSkgKiB0O1xuICAgICAgICAgICAgdmFyIHRPZmZzZXRYICA9IG0ubmV3T2Zmc2V0LnggKiB0O1xuICAgICAgICAgICAgdmFyIHRPZmZzZXRZICA9IG0ubmV3T2Zmc2V0LnkgKiB0O1xuXG4gICAgICAgICAgICB2YXIgdHJhbnNmb3JtID0gJ3RyYW5zbGF0ZSgnO1xuICAgICAgICAgICAgdHJhbnNmb3JtICs9IHRPZmZzZXRYICsgJ3B4LCAnO1xuICAgICAgICAgICAgdHJhbnNmb3JtICs9IHRPZmZzZXRZICsgJ3B4KSAnO1xuICAgICAgICAgICAgdHJhbnNmb3JtICs9ICdzY2FsZSgnICsgdFNjYWxlWCArICcsJyArIHRTY2FsZVkgKyAnKSAnO1xuICAgICAgICAgICAgdHJhbnNmb3JtICs9IG0uaW5pdGlhbFRyYW5zZm9ybTtcblxuICAgICAgICAgICAgc3R5bGUobS5lbCwgJ3RyYW5zZm9ybScsIHRyYW5zZm9ybSk7XG5cbiAgICAgICAgICAgIGZvckVhY2guY2FsbChtLmNoaWxkcmVuLCBmdW5jdGlvbihlbCkge1xuICAgICAgICAgICAgICB2YXIgc2NhbGUgPSAnc2NhbGUoJyArICgxL3RTY2FsZVgpICsgJywnICsgKDEvdFNjYWxlWSkgKyAnKSc7XG5cbiAgICAgICAgICAgICAgc3R5bGUoZWwsICd0cmFuc2Zvcm0nLCBzY2FsZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHQgLT0gKDE2IC8gZHVyYXRpb24pO1xuXG4gICAgICAgICAgaWYgKHQgPiAwKSB7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodHdlZW4pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB0d2VlbigpO1xuICAgICAgICB9KTtcblxuICAgICAgICBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgICAgIGZvckVhY2guY2FsbChtZWFzdXJlbWVudHMsIGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgIHN0eWxlKG0uZWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgJycpO1xuICAgICAgICAgICAgc3R5bGUobS5lbCwgJ3RyYW5zZm9ybScsIG0uaW5pdGlhbFRyYW5zZm9ybSk7XG5cbiAgICAgICAgICAgIGZvckVhY2guY2FsbChtLmNoaWxkcmVuLCBmdW5jdGlvbihlbCkge1xuICAgICAgICAgICAgICBzdHlsZShlbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCAnJyk7XG4gICAgICAgICAgICAgIHN0eWxlKGVsLCAndHJhbnNmb3JtJywgJycpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBzZWxmLmJsb2NrQ2xpY2tzID0gZmFsc2U7XG4gICAgICAgICAgc2VsZi5yb290LnN0eWxlLm1pbkhlaWdodCA9IG51bGw7XG5cbiAgICAgICAgICAvKiBJbnZva2Ugb3VyIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZG9uZSAqL1xuICAgICAgICAgICRzY29wZS4kYXBwbHlBc3luYygoKSA9PiB7XG4gICAgICAgICAgICBjYigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgfTtcbn0pXG5cbi5kaXJlY3RpdmUoJ2F5QWNjb3JkaW9uJywgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgcmVzdHJpY3Q6ICdBJyxcbiAgICByZXF1aXJlOiBbJ2F5QWNjb3JkaW9uJywgJ15heUFjY29yZGlvblJvb3QnXSxcbiAgICBjb250cm9sbGVyQXM6ICdhY2NvcmRpb24nLFxuICAgIGJpbmRUb0NvbnRyb2xsZXI6IHtcbiAgICAgIG9uVG9nZ2xlOiAnJidcbiAgICB9LFxuICAgIGNvbnRyb2xsZXI6IGZ1bmN0aW9uKCRzY29wZSwgJGVsZW1lbnQsICRhdHRycykge1xuICAgICAgXCJuZ0luamVjdFwiO1xuXG4gICAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICAgIHNlbGYucm9vdEN0cmwgPSBudWxsO1xuICAgICAgc2VsZi5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgc2VsZi5vcGVuID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKCdvcGVuJyk7XG4gICAgICAgICRlbGVtZW50WzBdLnNldEF0dHJpYnV0ZSgnb3BlbicsICdvcGVuJyk7XG5cbiAgICAgICAgaWYgKCRlbGVtZW50WzBdID09PSAkZWxlbWVudFswXS5wYXJlbnROb2RlLmxhc3RFbGVtZW50Q2hpbGQpIHtcbiAgICAgICAgICAkZWxlbWVudFswXS5zY3JvbGxJbnRvVmlldygpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2VsZi5pc09wZW4gPSB0cnVlO1xuICAgICAgICAkc2NvcGUuJGFwcGx5QXN5bmMoKTtcbiAgICAgICAgc2VsZlsnb25Ub2dnbGUnXSh7c3RhdGU6IHRydWV9KTtcblxuICAgICAgICBpZiAoIXNlbGYucm9vdEN0cmwubXVsdGlwbGUpIHtcbiAgICAgICAgICBzZWxmLnJvb3RDdHJsLmN1clBhbmVsID0gc2VsZjtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgc2VsZi5jbG9zZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcygnb3BlbicpO1xuICAgICAgICAkZWxlbWVudFswXS5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTtcblxuICAgICAgICBzZWxmLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAkc2NvcGUuJGFwcGx5QXN5bmMoKTtcbiAgICAgICAgc2VsZlsnb25Ub2dnbGUnXSh7c3RhdGU6IGZhbHNlfSk7XG5cblxuICAgICAgICBpZiAoc2VsZi5yb290Q3RybC5jdXJQYW5lbCA9PT0gc2VsZikge1xuICAgICAgICAgIHNlbGYucm9vdEN0cmwuY3VyUGFuZWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuXG5cbiAgICAgIHNlbGYudG9nZ2xlID0gZnVuY3Rpb24oY2IpIHtcbiAgICAgICAgaWYgKHNlbGYucm9vdEN0cmwuYmxvY2tDbGlja3MpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgZm4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICBpZiAoc2VsZi5pc09wZW4pIHtcbiAgICAgICAgICAgIHNlbGYuY2xvc2UoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VsZi5vcGVuKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCgkZWxlbWVudC5jaGlsZHJlbigpLCBmdW5jdGlvbihlbCkge1xuICAgICAgICAgICAgaWYgKGVsLmhhc0F0dHJpYnV0ZSgnYXktYWNjb3JkaW9uLWhlYWRlcicpKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHNlbGYuaXNPcGVuKSB7XG4gICAgICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnaGlkZGVuJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBzZWxmLnJvb3RDdHJsLnJ1bihmbiwgY2IpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIGxpbms6IGZ1bmN0aW9uKCRzY29wZSwgJGVsZW1lbnQsICRhdHRycywgJGN0cmxzKSB7XG4gICAgICB2YXIgc2VsZkN0cmwgPSAkY3RybHNbMF07XG4gICAgICB2YXIgcm9vdEN0cmwgPSAkY3RybHNbMV07XG5cbiAgICAgIHNlbGZDdHJsLnJvb3RDdHJsID0gcm9vdEN0cmw7XG5cbiAgICAgIHZhciBjaGlsZENhbGxiYWNrID0gZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgaWYgKGVsLmhhc0F0dHJpYnV0ZSgnYXktYWNjb3JkaW9uLWhlYWRlcicpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCRlbGVtZW50WzBdLmhhc0F0dHJpYnV0ZSgnb3BlbicpKSB7XG4gICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdoaWRkZW4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCgkZWxlbWVudC5jaGlsZHJlbigpLCBjaGlsZENhbGxiYWNrKTtcblxuICAgICAgaWYgKCdNdXRhdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpIHtcbiAgICAgICAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCgkZWxlbWVudC5jaGlsZHJlbigpLCBjaGlsZENhbGxiYWNrKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSgkZWxlbWVudFswXSwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG5cbiAgICAgICAgJGVsZW1lbnQub24oJyRkZXN0cm95JywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgJGF0dHJzLiRvYnNlcnZlKCdvcGVuJywgZnVuY3Rpb24obmV3dmFsKSB7XG4gICAgICAgIGlmIChuZXd2YWwgfHwgbmV3dmFsID09PSBcIlwiKSB7XG4gICAgICAgICAgaWYgKCEkZWxlbWVudC5oYXNDbGFzcygnb3BlbicpKSB7XG4gICAgICAgICAgICBzZWxmQ3RybC5vcGVuKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCRlbGVtZW50Lmhhc0NsYXNzKCdvcGVuJykpIHtcbiAgICAgICAgICBzZWxmQ3RybC5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59KVxuXG4uZGlyZWN0aXZlKCdheUFjY29yZGlvbkhlYWRlcicsIGZ1bmN0aW9uKCkge1xuICByZXR1cm4ge1xuICAgIHJlc3RyaWN0OiAnQScsXG4gICAgcmVxdWlyZTogJ15heUFjY29yZGlvbicsXG4gICAgc2NvcGU6IHRydWUsIC8vIENoaWxkIHNjb3BlXG5cbiAgICBsaW5rOiBmdW5jdGlvbigkc2NvcGUsICRlbGVtZW50LCAkYXR0cnMsICRjdHJsIDogSVBhbmVsQ29udHJvbGxlcikge1xuICAgICAgJGVsZW1lbnRbMF0uc2V0QXR0cmlidXRlKCdyb2xlJywgJ2J1dHRvbicpO1xuICAgICAgJGVsZW1lbnRbMF0uc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICcwJyk7XG5cbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVN0YXRlKCkge1xuICAgICAgICAkZWxlbWVudFswXS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCAkY3RybC5pc09wZW4udG9TdHJpbmcoKSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGFjdGl2YXRlKCRldmVudCkge1xuICAgICAgICAkY3RybC50b2dnbGUodXBkYXRlU3RhdGUpO1xuXG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgICRzY29wZS4kd2F0Y2goKCkgPT4gJGN0cmwuaXNPcGVuLCAoKSA9PiB1cGRhdGVTdGF0ZSgpKTtcblxuICAgICAgJGVsZW1lbnQub24oJ2NsaWNrJywgZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBhY3RpdmF0ZSgkZXZlbnQpO1xuICAgICAgfSk7XG5cbiAgICAgICRlbGVtZW50Lm9uKCdrZXlkb3duJywgZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gMzIgfHwgJGV2ZW50LmtleUNvZGUgPT09IDEzKSB7XG4gICAgICAgICAgcmV0dXJuIGFjdGl2YXRlKCRldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn0pO1xuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjY29yZGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQWlCSCxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7S0FDaEMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO0lBQzVCLE1BQU0sQ0FBQztRQUNMLFFBQVEsRUFBRSxHQUFHO1FBQ2IsVUFBVSxFQUFFLFVBQVMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNO1lBQzNDLFVBQVUsQ0FBQztZQUVYLHdFQUF3RTtZQUN4RSxJQUFJLE1BQU0sR0FBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNyQyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxJQUFJLEdBQUcsR0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUVsQyxJQUFJLEtBQUssR0FBSyxVQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBTTtnQkFDckMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUV2QyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO3dCQUM3QyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7b0JBQ3RDLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxJQUFJLENBQUMsQ0FBQztvQkFDTixHQUFHLENBQUMsQ0FB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QVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBRUQsa0JBQWtCLE1BQU07Z0JBQ3RCLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBRTFCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQU0sT0FBQSxLQUFLLENBQUMsTUFBTSxFQUFaLENBQVksRUFBRSxjQUFNLE9BQUEsV0FBVyxFQUFFLEVBQWIsQ0FBYSxDQUFDLENBQUM7WUFFdkQsUUFBUSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBUyxNQUFNO2dCQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBUyxNQUFNO2dCQUNwQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25ELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgQ29weXJpZ2h0IChjKSAyMDE2IEF5b2dvIEhlYWx0aCBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbiAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4gKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3JcbiAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkdcbiAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1NcbiAqIElOIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG4vKiBAaW50ZXJuYWwgKi9cbmludGVyZmFjZSBJUGFuZWxDb250cm9sbGVyIHtcbiAgcm9vdEN0cmwgOiBhbnk7XG4gIGlzT3BlbiA6IGJvb2xlYW47XG4gIG9wZW4gOiAoKSA9PiB2b2lkO1xuICBjbG9zZSA6ICgpID0+IHZvaWQ7XG4gIHRvZ2dsZSA6IChjYiA6IGFueSkgPT4gdm9pZDtcbn1cblxuLyogQGludGVybmFsICovXG5pbnRlcmZhY2UgSVRpdGxlU2NvcGUgZXh0ZW5kcyBuZy5JU2NvcGUge1xuICBpc09wZW4gOiBib29sZWFuO1xufVxuXG5cbmFuZ3VsYXIubW9kdWxlKCdheUFjY29yZGlvbicsIFtdKVxuLmRpcmVjdGl2ZSgnYXlBY2NvcmRpb25Sb290JywgZnVuY3Rpb24oKSB7XG4gIHJldHVybiB7XG4gICAgcmVzdHJpY3Q6ICdBJyxcbiAgICBjb250cm9sbGVyOiBmdW5jdGlvbigkc2NvcGUsICRlbGVtZW50LCAkYXR0cnMpIHtcbiAgICAgIFwibmdJbmplY3RcIjtcblxuICAgICAgLy8gSGVscGVyIE1ldGhvZHMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICB2YXIgZmlsdGVyICA9IEFycmF5LnByb3RvdHlwZS5maWx0ZXI7XG4gICAgICB2YXIgZm9yRWFjaCA9IEFycmF5LnByb3RvdHlwZS5mb3JFYWNoO1xuICAgICAgdmFyIG1hcCAgICAgPSBBcnJheS5wcm90b3R5cGUubWFwO1xuXG4gICAgICB2YXIgc3R5bGUgICA9IGZ1bmN0aW9uKGVsLCBwcm9wLCB2YWx1ZT8pIHtcbiAgICAgICAgdmFyIHZlbmRvcnMgPSBbJycsICctd2Via2l0LScsICctbXMtJ107XG5cbiAgICAgICAgaWYgKGFuZ3VsYXIuaXNEZWZpbmVkKHZhbHVlKSkge1xuICAgICAgICAgIGZvciAodmFyIGkgPSB2ZW5kb3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7XG4gICAgICAgICAgICBlbC5zdHlsZVt2ZW5kb3JzW2ldICsgcHJvcF0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IHZlbmRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICAgIGlmIChlbC5zdHlsZVt2ZW5kb3JzW2ldICsgcHJvcF0gIT09ICcnKSB7XG4gICAgICAgICAgICAgIHJldHVybiBlbC5zdHlsZVt2ZW5kb3JzW2ldICsgcHJvcF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuXG5cbiAgICAgIC8vIENvbnRyb2xsZXItbGV2ZWwgVmFyaWFibGVzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgdGhpcy5yb290ID0gJGVsZW1lbnRbMF07XG4gICAgICB0aGlzLm11bHRpcGxlID0gYW5ndWxhci5pc0RlZmluZWQoJGF0dHJzWydtdWx0aXBsZSddKTtcbiAgICAgIHRoaXMuY3VyUGFuZWwgPSBudWxsO1xuICAgICAgdGhpcy5ibG9ja0NsaWNrcyA9IGZhbHNlO1xuXG5cbiAgICAgIC8vIENvbnRyb2xsZXIgbWV0aG9kcyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgdGhpcy5ydW4gPSBmdW5jdGlvbihmbiwgY2IpIHtcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xuXG4gICAgICAgIHNlbGYuYmxvY2tDbGlja3MgPSB0cnVlO1xuXG4gICAgICAgIHZhciBlbGVtZW50c1RvV2F0Y2ggPSBmaWx0ZXIuY2FsbChzZWxmLnJvb3QuY2hpbGROb2RlcywgZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICAvKiBEaXNyZWdhcmQgdGV4dCBub2RlcyBhbmQgY29tbWVudHMgKi9cbiAgICAgICAgICByZXR1cm4gZWwubm9kZVR5cGUgPT09IDE7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBwcmVSb290ID0gc2VsZi5yb290LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIC8qIFRha2UgaW5pdGlhbCBtZWFzdXJlbWVudHMgKi9cbiAgICAgICAgdmFyIG1lYXN1cmVtZW50cyA9IG1hcC5jYWxsKGVsZW1lbnRzVG9XYXRjaCwgZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZWw6IGVsLFxuICAgICAgICAgICAgaW5pdGlhbERpbWVuc2lvbnM6ICBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxcbiAgICAgICAgICAgIGluaXRpYWxUcmFuc2Zvcm06ICAgc3R5bGUoZWwsICd0cmFuc2Zvcm0nKSB8fCAnJ1xuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHNlbGYucm9vdC5zdHlsZS5taW5IZWlnaHQgPSBwcmVSb290LmhlaWdodCArICdweCc7XG5cbiAgICAgICAgLyogQ2xvc2UgZXhpc3RpbmcgcGFuZWxzIGlmIG5lZWRlZCAqL1xuICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5jdXJQYW5lbCAmJiBmbiAhPT0gdGhpcy5jdXJQYW5lbC5mbiAmJiBmbiAhPT0gdGhpcy5jdXJQYW5lbC5jbG9zZSkge1xuICAgICAgICAgIHRoaXMuY3VyUGFuZWwuY2xvc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFJ1biB0aGUgZnVuY3Rpb24gdG8gY2hhbmdlIHRoZSBzdGF0ZSAqL1xuICAgICAgICBmbigpO1xuXG4gICAgICAgIC8qIFNldCB0aGUgZWxlbWVudCBzdGF0ZXMgdG8gYXBwZWFyIGFzIGluaXRpYWwgYWZ0ZXIgdGhlIGNoYW5nZSAqL1xuICAgICAgICBmb3JFYWNoLmNhbGwobWVhc3VyZW1lbnRzLCBmdW5jdGlvbihtKSB7XG4gICAgICAgICAgbS5uZXdEaW1lbnNpb25zID0gbS5lbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgIG0ubmV3U2NhbGUgPSB7XG4gICAgICAgICAgICB4OiBtLmluaXRpYWxEaW1lbnNpb25zLndpZHRoIC8gbS5uZXdEaW1lbnNpb25zLndpZHRoLFxuICAgICAgICAgICAgeTogbS5pbml0aWFsRGltZW5zaW9ucy5oZWlnaHQgLyBtLm5ld0RpbWVuc2lvbnMuaGVpZ2h0XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIG0ubmV3T2Zmc2V0ID0ge1xuICAgICAgICAgICAgeDogbS5pbml0aWFsRGltZW5zaW9ucy5sZWZ0IC0gbS5uZXdEaW1lbnNpb25zLmxlZnQsXG4gICAgICAgICAgICB5OiBtLmluaXRpYWxEaW1lbnNpb25zLnRvcCAtIG0ubmV3RGltZW5zaW9ucy50b3BcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIHN0eWxlKG0uZWwsICd0cmFuc2Zvcm0tb3JpZ2luJywgJzAgMCcpO1xuICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgICBtLmNoaWxkcmVuID0gW107XG5cbiAgICAgICAgICAvKiBTZXQgdGhlIGdyYW5kY2hpbGRyZW4gdG8gdGhlIGludmVyc2UgdHJhbnNmb3JtICovXG4gICAgICAgICAgaWYgKG0uaW5pdGlhbERpbWVuc2lvbnMuaGVpZ2h0ICE9PSBtLm5ld0RpbWVuc2lvbnMuaGVpZ2h0IHx8XG4gICAgICAgICAgICAgIG0uaW5pdGlhbERpbWVuc2lvbnMud2lkdGggICE9PSBtLm5ld0RpbWVuc2lvbnMud2lkdGgpIHtcblxuICAgICAgICAgICAgbS5jaGlsZHJlbiA9IGZpbHRlci5jYWxsKG0uZWwuY2hpbGROb2RlcywgZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVsLm5vZGVUeXBlID09PSAxO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZvckVhY2guY2FsbChtLmNoaWxkcmVuLCBmdW5jdGlvbihlbCkge1xuICAgICAgICAgICAgICB2YXIgZWxEaW1lbnNpb25zID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgIHZhciBvZmZzZXRGcm9tUGFyZW50ID0ge1xuICAgICAgICAgICAgICAgIHg6IG0ubmV3RGltZW5zaW9ucy5sZWZ0IC0gZWxEaW1lbnNpb25zLmxlZnQsXG4gICAgICAgICAgICAgICAgeTogbS5uZXdEaW1lbnNpb25zLnRvcCAgLSBlbERpbWVuc2lvbnMudG9wXG4gICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgdmFyIG9yaWdpbiA9IG9mZnNldEZyb21QYXJlbnQueCArICdweCAnO1xuICAgICAgICAgICAgICBvcmlnaW4gKz0gb2Zmc2V0RnJvbVBhcmVudC55ICsgJ3B4JztcblxuICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0eWxlKGVsLCAndHJhbnNmb3JtLW9yaWdpbicsIG9yaWdpbik7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgZHVyYXRpb24gPSAxMDA7IC8vIEluIG1pbGxpc2Vjb25kc1xuICAgICAgICB2YXIgdCA9IDE7XG5cbiAgICAgICAgZnVuY3Rpb24gdHdlZW4oKSB7XG4gICAgICAgICAgZm9yRWFjaC5jYWxsKG1lYXN1cmVtZW50cywgZnVuY3Rpb24obSkge1xuICAgICAgICAgICAgaWYgKG0uaW5pdGlhbERpbWVuc2lvbnMuaGVpZ2h0ID09PSBtLm5ld0RpbWVuc2lvbnMuaGVpZ2h0ICYmXG4gICAgICAgICAgICAgICAgbS5pbml0aWFsRGltZW5zaW9ucy53aWR0aCAgPT09IG0ubmV3RGltZW5zaW9ucy53aWR0aCAgJiZcbiAgICAgICAgICAgICAgICBtLmluaXRpYWxEaW1lbnNpb25zLmxlZnQgICA9PT0gbS5uZXdEaW1lbnNpb25zLmxlZnQgICAmJlxuICAgICAgICAgICAgICAgIG0uaW5pdGlhbERpbWVuc2lvbnMudG9wICAgID09PSBtLm5ld0RpbWVuc2lvbnMudG9wKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgdFNjYWxlWCAgID0gMSArIChtLm5ld1NjYWxlLnggLSAxKSAqIHQ7XG4gICAgICAgICAgICB2YXIgdFNjYWxlWSAgID0gMSArIChtLm5ld1NjYWxlLnkgLSAxKSAqIHQ7XG4gICAgICAgICAgICB2YXIgdE9mZnNldFggID0gbS5uZXdPZmZzZXQueCAqIHQ7XG4gICAgICAgICAgICB2YXIgdE9mZnNldFkgID0gbS5uZXdPZmZzZXQueSAqIHQ7XG5cbiAgICAgICAgICAgIHZhciB0cmFuc2Zvcm0gPSAndHJhbnNsYXRlKCc7XG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gdE9mZnNldFggKyAncHgsICc7XG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gdE9mZnNldFkgKyAncHgpICc7XG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gJ3NjYWxlKCcgKyB0U2NhbGVYICsgJywnICsgdFNjYWxlWSArICcpICc7XG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gbS5pbml0aWFsVHJhbnNmb3JtO1xuXG4gICAgICAgICAgICBzdHlsZShtLmVsLCAndHJhbnNmb3JtJywgdHJhbnNmb3JtKTtcblxuICAgICAgICAgICAgZm9yRWFjaC5jYWxsKG0uY2hpbGRyZW4sIGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgICAgICAgIHZhciBzY2FsZSA9ICdzY2FsZSgnICsgKDEvdFNjYWxlWCkgKyAnLCcgKyAoMS90U2NhbGVZKSArICcpJztcblxuICAgICAgICAgICAgICBzdHlsZShlbCwgJ3RyYW5zZm9ybScsIHNjYWxlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdCAtPSAoMTYgLyBkdXJhdGlvbik7XG5cbiAgICAgICAgICBpZiAodCA+IDApIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSh0d2Vlbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHR3ZWVuKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAgICAgZm9yRWFjaC5jYWxsKG1lYXN1cmVtZW50cywgZnVuY3Rpb24obSkge1xuICAgICAgICAgICAgc3R5bGUobS5lbCwgJ3RyYW5zZm9ybS1vcmlnaW4nLCAnJyk7XG4gICAgICAgICAgICBzdHlsZShtLmVsLCAndHJhbnNmb3JtJywgbS5pbml0aWFsVHJhbnNmb3JtKTtcblxuICAgICAgICAgICAgZm9yRWFjaC5jYWxsKG0uY2hpbGRyZW4sIGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgICAgICAgIHN0eWxlKGVsLCAndHJhbnNmb3JtLW9yaWdpbicsICcnKTtcbiAgICAgICAgICAgICAgc3R5bGUoZWwsICd0cmFuc2Zvcm0nLCAnJyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHNlbGYuYmxvY2tDbGlja3MgPSBmYWxzZTtcbiAgICAgICAgICBzZWxmLnJvb3Quc3R5bGUubWluSGVpZ2h0ID0gbnVsbDtcblxuICAgICAgICAgIC8qIEludm9rZSBvdXIgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiBkb25lICovXG4gICAgICAgICAgJHNjb3BlLiRhcHBseUFzeW5jKCgpID0+IHtcbiAgICAgICAgICAgIGNiKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9O1xufSlcblxuLmRpcmVjdGl2ZSgnYXlBY2NvcmRpb24nLCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICByZXN0cmljdDogJ0EnLFxuICAgIHJlcXVpcmU6IFsnYXlBY2NvcmRpb24nLCAnXmF5QWNjb3JkaW9uUm9vdCddLFxuICAgIGNvbnRyb2xsZXJBczogJ2FjY29yZGlvbicsXG4gICAgYmluZFRvQ29udHJvbGxlcjoge1xuICAgICAgb25Ub2dnbGU6ICcmJ1xuICAgIH0sXG4gICAgY29udHJvbGxlcjogZnVuY3Rpb24oJHNjb3BlLCAkZWxlbWVudCwgJGF0dHJzKSB7XG4gICAgICBcIm5nSW5qZWN0XCI7XG5cbiAgICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgICAgc2VsZi5yb290Q3RybCA9IG51bGw7XG4gICAgICBzZWxmLmlzT3BlbiA9IGZhbHNlO1xuXG4gICAgICBzZWxmLm9wZW4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoJ29wZW4nKTtcbiAgICAgICAgJGVsZW1lbnRbMF0uc2V0QXR0cmlidXRlKCdvcGVuJywgJ29wZW4nKTtcblxuICAgICAgICBpZiAoJGVsZW1lbnRbMF0gPT09ICRlbGVtZW50WzBdLnBhcmVudE5vZGUubGFzdEVsZW1lbnRDaGlsZCkge1xuICAgICAgICAgICRlbGVtZW50WzBdLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxmLmlzT3BlbiA9IHRydWU7XG4gICAgICAgICRzY29wZS4kYXBwbHlBc3luYygpO1xuICAgICAgICBzZWxmWydvblRvZ2dsZSddKHtzdGF0ZTogdHJ1ZX0pO1xuXG4gICAgICAgIGlmICghc2VsZi5yb290Q3RybC5tdWx0aXBsZSkge1xuICAgICAgICAgIHNlbGYucm9vdEN0cmwuY3VyUGFuZWwgPSBzZWxmO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBzZWxmLmNsb3NlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgICRlbGVtZW50WzBdLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpO1xuXG4gICAgICAgIHNlbGYuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICRzY29wZS4kYXBwbHlBc3luYygpO1xuICAgICAgICBzZWxmWydvblRvZ2dsZSddKHtzdGF0ZTogZmFsc2V9KTtcblxuXG4gICAgICAgIGlmIChzZWxmLnJvb3RDdHJsLmN1clBhbmVsID09PSBzZWxmKSB7XG4gICAgICAgICAgc2VsZi5yb290Q3RybC5jdXJQYW5lbCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHNlbGYuZm4gPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHNlbGYuaXNPcGVuKSB7XG4gICAgICAgICAgc2VsZi5jbG9zZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlbGYub3BlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCgkZWxlbWVudC5jaGlsZHJlbigpLCBmdW5jdGlvbihlbCkge1xuICAgICAgICAgIGlmIChlbC5oYXNBdHRyaWJ1dGUoJ2F5LWFjY29yZGlvbi1oZWFkZXInKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzZWxmLmlzT3Blbikge1xuICAgICAgICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdoaWRkZW4nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAnaGlkZGVuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH07XG5cblxuICAgICAgc2VsZi50b2dnbGUgPSBmdW5jdGlvbihjYikge1xuICAgICAgICBpZiAoc2VsZi5yb290Q3RybC5ibG9ja0NsaWNrcykge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGYucm9vdEN0cmwucnVuKHNlbGYuZm4sIGNiKTtcbiAgICAgIH07XG4gICAgfSxcbiAgICBsaW5rOiBmdW5jdGlvbigkc2NvcGUsICRlbGVtZW50LCAkYXR0cnMsICRjdHJscykge1xuICAgICAgdmFyIHNlbGZDdHJsID0gJGN0cmxzWzBdO1xuICAgICAgdmFyIHJvb3RDdHJsID0gJGN0cmxzWzFdO1xuXG4gICAgICBzZWxmQ3RybC5yb290Q3RybCA9IHJvb3RDdHJsO1xuXG4gICAgICB2YXIgY2hpbGRDYWxsYmFjayA9IGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgIGlmIChlbC5oYXNBdHRyaWJ1dGUoJ2F5LWFjY29yZGlvbi1oZWFkZXInKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgkZWxlbWVudFswXS5oYXNBdHRyaWJ1dGUoJ29wZW4nKSkge1xuICAgICAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnaGlkZGVuJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoJGVsZW1lbnQuY2hpbGRyZW4oKSwgY2hpbGRDYWxsYmFjayk7XG5cbiAgICAgIGlmICgnTXV0YXRpb25PYnNlcnZlcicgaW4gd2luZG93KSB7XG4gICAgICAgIHZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCkge1xuICAgICAgICAgIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoJGVsZW1lbnQuY2hpbGRyZW4oKSwgY2hpbGRDYWxsYmFjayk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoJGVsZW1lbnRbMF0sIHsgY2hpbGRMaXN0OiB0cnVlIH0pO1xuXG4gICAgICAgICRlbGVtZW50Lm9uKCckZGVzdHJveScsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgICRhdHRycy4kb2JzZXJ2ZSgnb3BlbicsIGZ1bmN0aW9uKG5ld3ZhbCkge1xuICAgICAgICBpZiAobmV3dmFsIHx8IG5ld3ZhbCA9PT0gXCJcIikge1xuICAgICAgICAgIGlmICghJGVsZW1lbnQuaGFzQ2xhc3MoJ29wZW4nKSkge1xuICAgICAgICAgICAgc2VsZkN0cmwub3BlbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICgkZWxlbWVudC5oYXNDbGFzcygnb3BlbicpKSB7XG4gICAgICAgICAgc2VsZkN0cmwuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xufSlcblxuLmRpcmVjdGl2ZSgnYXlBY2NvcmRpb25IZWFkZXInLCBmdW5jdGlvbigpIHtcbiAgcmV0dXJuIHtcbiAgICByZXN0cmljdDogJ0EnLFxuICAgIHJlcXVpcmU6ICdeYXlBY2NvcmRpb24nLFxuICAgIHNjb3BlOiB0cnVlLCAvLyBDaGlsZCBzY29wZVxuXG4gICAgbGluazogZnVuY3Rpb24oJHNjb3BlLCAkZWxlbWVudCwgJGF0dHJzLCAkY3RybCA6IElQYW5lbENvbnRyb2xsZXIpIHtcbiAgICAgICRlbGVtZW50WzBdLnNldEF0dHJpYnV0ZSgncm9sZScsICdidXR0b24nKTtcbiAgICAgICRlbGVtZW50WzBdLnNldEF0dHJpYnV0ZSgndGFiSW5kZXgnLCAnMCcpO1xuXG4gICAgICBmdW5jdGlvbiB1cGRhdGVTdGF0ZSgpIHtcbiAgICAgICAgJGVsZW1lbnRbMF0uc2V0QXR0cmlidXRlKCdhcmlhLWV4cGFuZGVkJywgJGN0cmwuaXNPcGVuLnRvU3RyaW5nKCkpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBhY3RpdmF0ZSgkZXZlbnQpIHtcbiAgICAgICAgJGN0cmwudG9nZ2xlKHVwZGF0ZVN0YXRlKTtcblxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAkc2NvcGUuJHdhdGNoKCgpID0+ICRjdHJsLmlzT3BlbiwgKCkgPT4gdXBkYXRlU3RhdGUoKSk7XG5cbiAgICAgICRlbGVtZW50Lm9uKCdjbGljaycsIGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICByZXR1cm4gYWN0aXZhdGUoJGV2ZW50KTtcbiAgICAgIH0pO1xuXG4gICAgICAkZWxlbWVudC5vbigna2V5ZG93bicsIGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IDMyIHx8ICRldmVudC5rZXlDb2RlID09PSAxMykge1xuICAgICAgICAgIHJldHVybiBhY3RpdmF0ZSgkZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59KTtcbiJdfQ== |
{ | ||
"name": "ay-accordion", | ||
"version": "1.0.6", | ||
"version": "1.1.0", | ||
"copyright": "Copyright 2016 Ayogo Health Inc.", | ||
@@ -11,2 +11,3 @@ "license": "MIT", | ||
"Darryl Pogue <darryl@dpogue.ca>", | ||
"Onataze Messiri <onataze@gmail.com>", | ||
"Steven Stark <steven@stevenstark.com>" | ||
@@ -26,2 +27,3 @@ ], | ||
"dependencies": { | ||
"@types/angular": "^1.5.17", | ||
"angular": "^1.4.0" | ||
@@ -33,4 +35,3 @@ }, | ||
"devDependencies": { | ||
"typescript": "^1.8.9", | ||
"typings": "^1.3.2" | ||
"typescript": "^2.0.6" | ||
}, | ||
@@ -48,5 +49,3 @@ "browserify": { | ||
"scripts": { | ||
"typings": "typings", | ||
"dist": "tsc -p . && cp src/index.ts dist/index.es6.js", | ||
"preversion": "typings install", | ||
"version": "npm run dist && git add -A dist", | ||
@@ -53,0 +52,0 @@ "postversion": "git push && git push --tags" |
@@ -19,15 +19,6 @@ { | ||
"compileOnSave": false, | ||
"filesGlob": [ | ||
"./typings/browser.d.ts", | ||
"include": [ | ||
"./src/*.ts" | ||
], | ||
"files": [ | ||
"./typings/browser.d.ts", | ||
"./src/index.ts", | ||
"./src/accordion.ts" | ||
], | ||
"exclude": [], | ||
"atom": { | ||
"rewriteTsconfig": true | ||
} | ||
"exclude": [] | ||
} |
1
-50%537196
-0.08%3
50%18
-5.26%9896
-0.19%+ Added
+ Added