Socket
Socket
Sign inDemoInstall

@blueprintjs/datetime

Package Overview
Dependencies
Maintainers
1
Versions
253
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@blueprintjs/datetime - npm Package Compare versions

Comparing version 1.3.0 to 1.4.0

13

dist/dateInput.js

@@ -111,3 +111,5 @@ /*

var value = moment(valueString, _this.props.format);
if (valueString !== _this.getDateString(_this.state.value) && (!value.isValid() || !_this.dateIsInRange(value))) {
if (valueString.length > 0
&& valueString !== _this.getDateString(_this.state.value)
&& (!value.isValid() || !_this.dateIsInRange(value))) {
if (_this.props.value === undefined) {

@@ -130,3 +132,8 @@ _this.setState({ isInputFocused: false, value: value, valueString: null });

else {
_this.setState({ isInputFocused: false });
if (valueString.length === 0) {
_this.setState({ isInputFocused: false, value: moment(null), valueString: null });
}
else {
_this.setState({ isInputFocused: false });
}
}

@@ -219,2 +226,2 @@ };

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7Ozs7Ozs7Ozs7QUFFSCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLE1BQU0sV0FBTSxRQUFRLENBQUMsQ0FBQTtBQUNqQyxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQUUvQixxQkFVTyxtQkFBbUIsQ0FBQyxDQUFBO0FBRTNCLDJCQUEyQixjQUFjLENBQUMsQ0FBQTtBQUMxQywrQkFJTyxrQkFBa0IsQ0FBQyxDQUFBO0FBc0YxQjtJQUErQiw2QkFBbUQ7SUFpQjlFLG1CQUFtQixLQUF1QixFQUFFLE9BQWE7UUFqQjdELGlCQXlQQztRQXZPTyxrQkFBTSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFMbkIsZ0JBQVcsR0FBRyxxQkFBcUIsQ0FBQztRQUVuQyxhQUFRLEdBQWdCLElBQUksQ0FBQztRQStFN0Isa0JBQWEsR0FBRyxVQUFDLEtBQW9CO1lBQ3pDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2QsQ0FBQztZQUNELEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLE1BQU0sQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2dCQUN4QyxDQUFDO1lBQ0wsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFJLENB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QU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFTyxpQ0FBYSxHQUFyQixVQUFzQixLQUFvQjtRQUN0QyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQXJIYSxzQkFBWSxHQUFvQjtRQUMxQyxnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsTUFBTSxFQUFFLFlBQVk7UUFDcEIsa0JBQWtCLEVBQUUsY0FBYztRQUNsQyxPQUFPLEVBQUUsa0NBQWlCLEVBQUU7UUFDNUIsT0FBTyxFQUFFLGtDQUFpQixFQUFFO1FBQzVCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGlCQUFpQixFQUFFLGNBQWM7UUFDakMsZUFBZSxFQUFFLGVBQVEsQ0FBQyxNQUFNO0tBQ25DLENBQUM7SUE4T04sZ0JBQUM7QUFBRCxDQXpQQSxBQXlQQyxDQXpQOEIsd0JBQWlCLEdBeVAvQztBQXpQWSxpQkFBUyxZQXlQckIsQ0FBQSIsImZpbGUiOiJkYXRlSW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTYgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCAqIGFzIGNsYXNzTmFtZXMgZnJvbSBcImNsYXNzbmFtZXNcIjtcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbXBvbmVudCxcbiAgICBCdXR0b24sXG4gICAgQ2xhc3NlcyxcbiAgICBJbnB1dEdyb3VwLFxuICAgIEludGVudCxcbiAgICBJUHJvcHMsXG4gICAgUG9wb3ZlcixcbiAgICBQb3NpdGlvbixcbiAgICBVdGlscyxcbn0gZnJvbSBcIkBibHVlcHJpbnRqcy9jb3JlXCI7XG5cbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tIFwiLi9kYXRlUGlja2VyXCI7XG5pbXBvcnQge1xuICAgIGdldERlZmF1bHRNYXhEYXRlLFxuICAgIGdldERlZmF1bHRNaW5EYXRlLFxuICAgIElEYXRlUGlja2VyQmFzZVByb3BzLFxufSBmcm9tIFwiLi9kYXRlUGlja2VyQ29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlSW5wdXRQcm9wcyBleHRlbmRzIElEYXRlUGlja2VyQmFzZVByb3BzLCBJUHJvcHMge1xuICAgIC8qKlxuICAgICAqIEFsbG93cyB0aGUgdXNlciB0byBjbGVhciB0aGUgc2VsZWN0aW9uIGJ5IGNsaWNraW5nIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgZGF5LlxuICAgICAqIFBhc3NlZCB0byBgRGF0ZVBpY2tlcmAgY29tcG9uZW50XG4gICAgICovXG4gICAgY2FuQ2xlYXJTZWxlY3Rpb24/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY2FsZW5kYXIgcG9wb3ZlciBzaG91bGQgY2xvc2Ugd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWQuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGNsb3NlT25TZWxlY3Rpb24/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IHNob3VsZCBiZSBlbmFibGVkIG9yIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmF1bHQgZGF0ZSB0byBiZSB1c2VkIGluIHRoZSBjb21wb25lbnQgd2hlbiB1bmNvbnRyb2xsZWQuXG4gICAgICovXG4gICAgZGVmYXVsdFZhbHVlPzogRGF0ZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBmb3JtYXQgb2YgdGhlIGRhdGUuIFNlZSBvcHRpb25zXG4gICAgICogaGVyZTogaHR0cDovL21vbWVudGpzLmNvbS9kb2NzLyMvZGlzcGxheWluZy9mb3JtYXQvXG4gICAgICogQGRlZmF1bHQgXCJZWVlZLU1NLUREXCJcbiAgICAgKi9cbiAgICBmb3JtYXQ/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdGhlIGRhdGUgc2VsZWN0ZWQgaW52YWxpZC5cbiAgICAgKiBAZGVmYXVsdCBcIkludmFsaWQgZGF0ZVwiXG4gICAgICovXG4gICAgaW52YWxpZERhdGVNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIG5ldyB2YWxpZCBkYXRlIHRocm91Z2ggdGhlIGBEYXRlUGlja2VyYCBvciBieSB0eXBpbmdcbiAgICAgKiBpbiB0aGUgaW5wdXQuXG4gICAgICovXG4gICAgb25DaGFuZ2U/OiAoc2VsZWN0ZWREYXRlOiBEYXRlKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgZmluaXNoZXMgdHlwaW5nIGluIGEgbmV3IGRhdGUgYW5kIHRoZSBkYXRlIGNhdXNlcyBhbiBlcnJvciBzdGF0ZS5cbiAgICAgKiBJZiB0aGUgZGF0ZSBpcyBpbnZhbGlkLCBgbmV3IERhdGUodW5kZWZpbmVkKWAgd2lsbCBiZSByZXR1cm5lZC4gSWYgdGhlIGRhdGUgaXMgb3V0IG9mIHJhbmdlLFxuICAgICAqIHRoZSBvdXQgb2YgcmFuZ2UgZGF0ZSB3aWxsIGJlIHJldHVybmVkIChgb25DaGFuZ2VgIGlzIG5vdCBjYWxsZWQgaW4gdGhpcyBjYXNlKS5cbiAgICAgKi9cbiAgICBvbkVycm9yPzogKGVycm9yRGF0ZTogRGF0ZSkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBQb3BvdmVyIHdpbGwgb3BlbiB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgaW5wdXQuIElmIGZhbHNlLCB0aGUgUG9wb3ZlciB3aWxsIG9ubHlcbiAgICAgKiBvcGVuIHdoZW4gdGhlIGNhbGVuZGFyIGljb24gaXMgY2xpY2tlZC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgb3Blbk9uRm9jdXM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRoZSBkYXRlIHNlbGVjdGVkIGlzIG91dCBvZiByYW5nZS5cbiAgICAgKiBAZGVmYXVsdCBcIk91dCBvZiByYW5nZVwiXG4gICAgICovXG4gICAgb3V0T2ZSYW5nZU1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcG9zaXRpb24gdGhlIGRhdGUgcG9wb3ZlciBzaG91bGQgYXBwZWFyIGluIHJlbGF0aXZlIHRvIHRoZSBpbnB1dCBib3guXG4gICAgICogQGRlZmF1bHQgUG9zaXRpb24uQk9UVE9NXG4gICAgICovXG4gICAgcG9wb3ZlclBvc2l0aW9uPzogUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRheS4gSWYgdGhpcyBwcm9wIGlzIHByZXNlbnQsIHRoZSBjb21wb25lbnQgYWN0cyBpbiBhIGNvbnRyb2xsZWQgbWFubmVyLlxuICAgICAqIFRvIGRpc3BsYXkgbm8gZGF0ZSBpbiB0aGUgaW5wdXQgZmllbGQsIHBhc3MgYG51bGxgIHRvIHRoZSB2YWx1ZSBwcm9wLiBUbyBkaXNwbGF5IGFuIGludmFsaWQgZGF0ZSBlcnJvclxuICAgICAqIGluIHRoZSBpbnB1dCBmaWVsZCwgcGFzcyBgbmV3IERhdGUodW5kZWZpbmVkKWAgdG8gdGhlIHZhbHVlIHByb3AuXG4gICAgICovXG4gICAgdmFsdWU/OiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlSW5wdXRTdGF0ZSB7XG4gICAgdmFsdWU/OiBtb21lbnQuTW9tZW50O1xuICAgIHZhbHVlU3RyaW5nPzogc3RyaW5nO1xuICAgIGlzSW5wdXRGb2N1c2VkPzogYm9vbGVhbjtcbiAgICBpc09wZW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0ZUlucHV0IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQ8SURhdGVJbnB1dFByb3BzLCBJRGF0ZUlucHV0U3RhdGU+IHtcbiAgICBwdWJsaWMgc3RhdGljIGRlZmF1bHRQcm9wczogSURhdGVJbnB1dFByb3BzID0ge1xuICAgICAgICBjbG9zZU9uU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGZvcm1hdDogXCJZWVlZLU1NLUREXCIsXG4gICAgICAgIGludmFsaWREYXRlTWVzc2FnZTogXCJJbnZhbGlkIGRhdGVcIixcbiAgICAgICAgbWF4RGF0ZTogZ2V0RGVmYXVsdE1heERhdGUoKSxcbiAgICAgICAgbWluRGF0ZTogZ2V0RGVmYXVsdE1pbkRhdGUoKSxcbiAgICAgICAgb3Blbk9uRm9jdXM6IHRydWUsXG4gICAgICAgIG91dE9mUmFuZ2VNZXNzYWdlOiBcIk91dCBvZiByYW5nZVwiLFxuICAgICAgICBwb3BvdmVyUG9zaXRpb246IFBvc2l0aW9uLkJPVFRPTSxcbiAgICB9O1xuXG4gICAgcHVibGljIGRpc3BsYXlOYW1lID0gXCJCbHVlcHJpbnQuRGF0ZUlucHV0XCI7XG5cbiAgICBwcml2YXRlIGlucHV0UmVmOiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJvcHM/OiBJRGF0ZUlucHV0UHJvcHMsIGNvbnRleHQ/OiBhbnkpIHtcbiAgICAgICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlID8gdGhpcy5mcm9tRGF0ZVRvTW9tZW50KHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSA6IG1vbWVudChudWxsKTtcblxuICAgICAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgICAgICAgaXNJbnB1dEZvY3VzZWQ6IGZhbHNlLFxuICAgICAgICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgPyB0aGlzLmZyb21EYXRlVG9Nb21lbnQodGhpcy5wcm9wcy52YWx1ZSkgOiBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICB2YWx1ZVN0cmluZzogbnVsbCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBkYXRlU3RyaW5nID0gdGhpcy5zdGF0ZS5pc0lucHV0Rm9jdXNlZCA/IHRoaXMuc3RhdGUudmFsdWVTdHJpbmcgOiB0aGlzLmdldERhdGVTdHJpbmcodGhpcy5zdGF0ZS52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLnN0YXRlLmlzSW5wdXRGb2N1c2VkID8gbW9tZW50KHRoaXMuc3RhdGUudmFsdWVTdHJpbmcsIHRoaXMucHJvcHMuZm9ybWF0KSA6IHRoaXMuc3RhdGUudmFsdWU7XG5cbiAgICAgICAgY29uc3QgcG9wb3ZlckNvbnRlbnQgPSAoXG4gICAgICAgICAgICA8RGF0ZVBpY2tlclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgICAgICAgIGNhbkNsZWFyU2VsZWN0aW9uPXt0aGlzLnByb3BzLmNhbkNsZWFyU2VsZWN0aW9ufVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17bnVsbH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVEYXRlQ2hhbmdlfVxuICAgICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnZhbGlkQW5kSW5SYW5nZSh0aGlzLnN0YXRlLnZhbHVlKSA/IHRoaXMuZnJvbU1vbWVudFRvRGF0ZSh0aGlzLnN0YXRlLnZhbHVlKSA6IG51bGx9XG4gICAgICAgICAgICAvPlxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGlucHV0Q2xhc3NlcyA9IGNsYXNzTmFtZXMoe1xuICAgICAgICAgICAgXCJwdC1pbnRlbnQtZGFuZ2VyXCI6ICEodGhpcy52YWxpZEFuZEluUmFuZ2UoZGF0ZSkgfHwgdGhpcy5pc051bGwoZGF0ZSkgfHwgZGF0ZVN0cmluZyA9PT0gXCJcIiksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNhbGVuZGFySWNvbiA9IChcbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e0NsYXNzZXMuTUlOSU1BTH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICBpY29uTmFtZT1cImNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICBpbnRlbnQ9e0ludGVudC5QUklNQVJZfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlSWNvbkNsaWNrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGNvbnRlbnQ9e3BvcG92ZXJDb250ZW50fVxuICAgICAgICAgICAgICAgIGVuZm9yY2VGb2N1cz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgaW5saW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgIGlzT3Blbj17dGhpcy5zdGF0ZS5pc09wZW59XG4gICAgICAgICAgICAgICAgb25DbG9zZT17dGhpcy5oYW5kbGVDbG9zZVBvcG92ZXJ9XG4gICAgICAgICAgICAgICAgcG9wb3ZlckNsYXNzTmFtZT1cInB0LWRhdGVpbnB1dC1wb3BvdmVyXCJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17dGhpcy5wcm9wcy5wb3BvdmVyUG9zaXRpb259XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPElucHV0R3JvdXBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtpbnB1dENsYXNzZXN9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXt0aGlzLnByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZj17dGhpcy5zZXRJbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e3RoaXMuaGFuZGxlSW5wdXRCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVJbnB1dENoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVJbnB1dENsaWNrfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXt0aGlzLmhhbmRsZUlucHV0Rm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLmZvcm1hdH1cbiAgICAgICAgICAgICAgICAgICAgcmlnaHRFbGVtZW50PXtjYWxlbmRhckljb259XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtkYXRlU3RyaW5nfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1BvcG92ZXI+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzOiBJRGF0ZUlucHV0UHJvcHMpIHtcbiAgICAgICAgaWYgKG5leHRQcm9wcy52YWx1ZSAhPT0gdGhpcy5wcm9wcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiB0aGlzLmZyb21EYXRlVG9Nb21lbnQobmV4dFByb3BzLnZhbHVlKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV4dFByb3BzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVTdHJpbmcgPSAodmFsdWU6IG1vbWVudC5Nb21lbnQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZUlzSW5SYW5nZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuZm9ybWF0KHRoaXMucHJvcHMuZm9ybWF0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMub3V0T2ZSYW5nZU1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMuaW52YWxpZERhdGVNZXNzYWdlO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRBbmRJblJhbmdlKHZhbHVlOiBtb21lbnQuTW9tZW50KSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5pc1ZhbGlkKCkgJiYgdGhpcy5kYXRlSXNJblJhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzTnVsbCh2YWx1ZTogbW9tZW50Lk1vbWVudCkge1xuICAgICAgICByZXR1cm4gdmFsdWUucGFyc2luZ0ZsYWdzKCkubnVsbElucHV0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0ZUlzSW5SYW5nZSh2YWx1ZTogbW9tZW50Lk1vbWVudCkge1xuICAgICAgICByZXR1cm4gdmFsdWUuaXNCZXR3ZWVuKHRoaXMucHJvcHMubWluRGF0ZSwgdGhpcy5wcm9wcy5tYXhEYXRlLCBcImRheVwiLCBcIltdXCIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlQ2xvc2VQb3BvdmVyID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNPcGVuOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZURhdGVDaGFuZ2UgPSAoZGF0ZTogRGF0ZSwgaGFzVXNlck1hbnVhbGx5U2VsZWN0ZWREYXRlOiBib29sZWFuKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vbWVudERhdGUgPSB0aGlzLmZyb21EYXRlVG9Nb21lbnQoZGF0ZSk7XG4gICAgICAgIGNvbnN0IGhhc01vbnRoQ2hhbmdlZCA9IGRhdGUgIT09IG51bGwgJiYgIXRoaXMuaXNOdWxsKHRoaXMuc3RhdGUudmFsdWUpICYmIHRoaXMuc3RhdGUudmFsdWUuaXNWYWxpZCgpICYmXG4gICAgICAgICAgICBtb21lbnREYXRlLm1vbnRoKCkgIT09IHRoaXMuc3RhdGUudmFsdWUubW9udGgoKTtcbiAgICAgICAgY29uc3QgaXNPcGVuID0gISh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3Rpb24gJiYgaGFzVXNlck1hbnVhbGx5U2VsZWN0ZWREYXRlICYmICFoYXNNb250aENoYW5nZWQpO1xuICAgICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IGZhbHNlLCBpc09wZW4sIHZhbHVlOiBtb21lbnREYXRlIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzSW5wdXRGb2N1c2VkOiBmYWxzZSwgaXNPcGVuIH0pO1xuICAgICAgICB9XG4gICAgICAgIFV0aWxzLnNhZmVJbnZva2UodGhpcy5wcm9wcy5vbkNoYW5nZSwgdGhpcy5mcm9tTW9tZW50VG9EYXRlKG1vbWVudERhdGUpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUljb25DbGljayA9IChlOiBSZWFjdC5TeW50aGV0aWNFdmVudDxIVE1MRWxlbWVudD4pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNPcGVuKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFJlZiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5ibHVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNPcGVuOiB0cnVlIH0pO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0UmVmICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0UmVmLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUlucHV0Rm9jdXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdGhpcy5pc051bGwodGhpcy5zdGF0ZS52YWx1ZSkgPyBcIlwiIDogdGhpcy5zdGF0ZS52YWx1ZS5mb3JtYXQodGhpcy5wcm9wcy5mb3JtYXQpO1xuXG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5PbkZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IHRydWUsIGlzT3BlbjogdHJ1ZSwgdmFsdWVTdHJpbmcgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IHRydWUsIHZhbHVlU3RyaW5nIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVJbnB1dENsaWNrID0gKGU6IFJlYWN0LlN5bnRoZXRpY0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLm9wZW5PbkZvY3VzKSB7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZSA9IChlOiBSZWFjdC5TeW50aGV0aWNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBtb21lbnQodmFsdWVTdHJpbmcsIHRoaXMucHJvcHMuZm9ybWF0KTtcblxuICAgICAgICBpZiAodmFsdWUuaXNWYWxpZCgpICYmIHRoaXMuZGF0ZUlzSW5SYW5nZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWUsIHZhbHVlU3RyaW5nIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgdmFsdWVTdHJpbmcgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBVdGlscy5zYWZlSW52b2tlKHRoaXMucHJvcHMub25DaGFuZ2UsIHRoaXMuZnJvbU1vbWVudFRvRGF0ZSh2YWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlU3RyaW5nIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVJbnB1dEJsdXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdGhpcy5zdGF0ZS52YWx1ZVN0cmluZztcbiAgICAgICAgbGV0IHZhbHVlID0gbW9tZW50KHZhbHVlU3RyaW5nLCB0aGlzLnByb3BzLmZvcm1hdCk7XG4gICAgICAgIGlmICh2YWx1ZVN0cmluZyAhPT0gdGhpcy5nZXREYXRlU3RyaW5nKHRoaXMuc3RhdGUudmFsdWUpICYmICghdmFsdWUuaXNWYWxpZCgpIHx8ICF0aGlzLmRhdGVJc0luUmFuZ2UodmFsdWUpKSkge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzSW5wdXRGb2N1c2VkOiBmYWxzZSwgdmFsdWUsIHZhbHVlU3RyaW5nOiBudWxsIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIFV0aWxzLnNhZmVJbnZva2UodGhpcy5wcm9wcy5vbkVycm9yLCBuZXcgRGF0ZSh1bmRlZmluZWQpKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuZGF0ZUlzSW5SYW5nZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBVdGlscy5zYWZlSW52b2tlKHRoaXMucHJvcHMub25FcnJvciwgdGhpcy5mcm9tTW9tZW50VG9EYXRlKHZhbHVlKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFV0aWxzLnNhZmVJbnZva2UodGhpcy5wcm9wcy5vbkNoYW5nZSwgdGhpcy5mcm9tTW9tZW50VG9EYXRlKHZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbnB1dFJlZiA9IChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgdGhpcy5pbnB1dFJlZiA9IGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSBhIG1vbWVudCBpbnRvIGEgRGF0ZSBvYmplY3QsIGFkanVzdGluZyB0aGUgbW9tZW50IHRpbWV6b25lIGludG8gdGhlIGxvY2FsIG9uZS5cbiAgICAgKiBUaGlzIGlzIGEgbm8tb3AgdW5sZXNzIG1vbWVudC10aW1lem9uZSdzIHNldERlZmF1bHQgaGFzIGJlZW4gY2FsbGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgZnJvbU1vbWVudFRvRGF0ZSA9IChtb21lbnREYXRlOiBtb21lbnQuTW9tZW50KSA9PiB7XG4gICAgICAgIGlmIChtb21lbnREYXRlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoXG4gICAgICAgICAgICAgICAgbW9tZW50RGF0ZS55ZWFyKCksXG4gICAgICAgICAgICAgICAgbW9tZW50RGF0ZS5tb250aCgpLFxuICAgICAgICAgICAgICAgIG1vbWVudERhdGUuZGF0ZSgpLFxuICAgICAgICAgICAgICAgIG1vbWVudERhdGUuaG91cnMoKSxcbiAgICAgICAgICAgICAgICBtb21lbnREYXRlLm1pbnV0ZXMoKSxcbiAgICAgICAgICAgICAgICBtb21lbnREYXRlLnNlY29uZHMoKSxcbiAgICAgICAgICAgICAgICBtb21lbnREYXRlLm1pbGxpc2Vjb25kcygpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYW5zbGF0ZSBhIERhdGUgb2JqZWN0IGludG8gYSBtb21lbnQsIGFkanVzdGluZyB0aGUgbG9jYWwgdGltZXpvbmUgaW50byB0aGUgbW9tZW50IG9uZS5cbiAgICAgKiBUaGlzIGlzIGEgbm8tb3AgdW5sZXNzIG1vbWVudC10aW1lem9uZSdzIHNldERlZmF1bHQgaGFzIGJlZW4gY2FsbGVkLlxuICAgICAqL1xuICAgIHByaXZhdGUgZnJvbURhdGVUb01vbWVudCA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICAgIGlmIChkYXRlID09IG51bGwgfHwgdHlwZW9mIGRhdGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KFtcbiAgICAgICAgICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxuICAgICAgICAgICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgICAgICAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICAgICAgICBkYXRlLmdldFNlY29uZHMoKSxcbiAgICAgICAgICAgICAgICBkYXRlLmdldE1pbGxpc2Vjb25kcygpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHOzs7Ozs7Ozs7Ozs7Ozs7QUFFSCxJQUFZLFVBQVUsV0FBTSxZQUFZLENBQUMsQ0FBQTtBQUN6QyxJQUFZLE1BQU0sV0FBTSxRQUFRLENBQUMsQ0FBQTtBQUNqQyxJQUFZLEtBQUssV0FBTSxPQUFPLENBQUMsQ0FBQTtBQUUvQixxQkFVTyxtQkFBbUIsQ0FBQyxDQUFBO0FBRTNCLDJCQUEyQixjQUFjLENBQUMsQ0FBQTtBQUMxQywrQkFJTyxrQkFBa0IsQ0FBQyxDQUFBO0FBc0YxQjtJQUErQiw2QkFBbUQ7SUFpQjlFLG1CQUFtQixLQUF1QixFQUFFLE9BQWE7UUFqQjdELGlCQStQQztRQTdPTyxrQkFBTSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFMbkIsZ0JBQVcsR0FBRyxxQkFBcUIsQ0FBQztRQUVuQyxhQUFRLEdBQWdCLElBQUksQ0FBQztRQStFN0Isa0JBQWEsR0FBRyxVQUFDLEtBQW9CO1lBQ3pDLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2QsQ0FBQztZQUNELEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLEVBQUUsQ0FBQyxDQUFDLEtBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLE1BQU0sQ0FBQyxLQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO2dCQUN4QyxDQUFDO1lBQ0wsQ0FBQztZQUNELE1BQU0sQ0FBQyxLQUFJLENB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QUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELGdCQUFLLENBQUMseUJBQXlCLFlBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQWdCTyxtQ0FBZSxHQUF2QixVQUF3QixLQUFvQjtRQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLDBCQUFNLEdBQWQsVUFBZSxLQUFvQjtRQUMvQixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0lBRU8saUNBQWEsR0FBckIsVUFBc0IsS0FBb0I7UUFDdEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFySGEsc0JBQVksR0FBb0I7UUFDMUMsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QixRQUFRLEVBQUUsS0FBSztRQUNmLE1BQU0sRUFBRSxZQUFZO1FBQ3BCLGtCQUFrQixFQUFFLGNBQWM7UUFDbEMsT0FBTyxFQUFFLGtDQUFpQixFQUFFO1FBQzVCLE9BQU8sRUFBRSxrQ0FBaUIsRUFBRTtRQUM1QixXQUFXLEVBQUUsSUFBSTtRQUNqQixpQkFBaUIsRUFBRSxjQUFjO1FBQ2pDLGVBQWUsRUFBRSxlQUFRLENBQUMsTUFBTTtLQUNuQyxDQUFDO0lBb1BOLGdCQUFDO0FBQUQsQ0EvUEEsQUErUEMsQ0EvUDhCLHdCQUFpQixHQStQL0M7QUEvUFksaUJBQVMsWUErUHJCLENBQUEiLCJmaWxlIjoiZGF0ZUlucHV0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE2IFBhbGFudGlyIFRlY2hub2xvZ2llcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEJTRC0zIExpY2Vuc2UgYXMgbW9kaWZpZWQgKHRoZSDigJxMaWNlbnNl4oCdKTsgeW91IG1heSBvYnRhaW4gYSBjb3B5XG4gKiBvZiB0aGUgbGljZW5zZSBhdCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqIGFuZCBodHRwczovL2dpdGh1Yi5jb20vcGFsYW50aXIvYmx1ZXByaW50L2Jsb2IvbWFzdGVyL1BBVEVOVFNcbiAqL1xuXG5pbXBvcnQgKiBhcyBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb21wb25lbnQsXG4gICAgQnV0dG9uLFxuICAgIENsYXNzZXMsXG4gICAgSW5wdXRHcm91cCxcbiAgICBJbnRlbnQsXG4gICAgSVByb3BzLFxuICAgIFBvcG92ZXIsXG4gICAgUG9zaXRpb24sXG4gICAgVXRpbHMsXG59IGZyb20gXCJAYmx1ZXByaW50anMvY29yZVwiO1xuXG5pbXBvcnQgeyBEYXRlUGlja2VyIH0gZnJvbSBcIi4vZGF0ZVBpY2tlclwiO1xuaW1wb3J0IHtcbiAgICBnZXREZWZhdWx0TWF4RGF0ZSxcbiAgICBnZXREZWZhdWx0TWluRGF0ZSxcbiAgICBJRGF0ZVBpY2tlckJhc2VQcm9wcyxcbn0gZnJvbSBcIi4vZGF0ZVBpY2tlckNvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUlucHV0UHJvcHMgZXh0ZW5kcyBJRGF0ZVBpY2tlckJhc2VQcm9wcywgSVByb3BzIHtcbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gY2xlYXIgdGhlIHNlbGVjdGlvbiBieSBjbGlja2luZyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGRheS5cbiAgICAgKiBQYXNzZWQgdG8gYERhdGVQaWNrZXJgIGNvbXBvbmVudFxuICAgICAqL1xuICAgIGNhbkNsZWFyU2VsZWN0aW9uPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNhbGVuZGFyIHBvcG92ZXIgc2hvdWxkIGNsb3NlIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBjbG9zZU9uU2VsZWN0aW9uPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBzaG91bGQgYmUgZW5hYmxlZCBvciBkaXNhYmxlZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZhdWx0IGRhdGUgdG8gYmUgdXNlZCBpbiB0aGUgY29tcG9uZW50IHdoZW4gdW5jb250cm9sbGVkLlxuICAgICAqL1xuICAgIGRlZmF1bHRWYWx1ZT86IERhdGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZm9ybWF0IG9mIHRoZSBkYXRlLiBTZWUgb3B0aW9uc1xuICAgICAqIGhlcmU6IGh0dHA6Ly9tb21lbnRqcy5jb20vZG9jcy8jL2Rpc3BsYXlpbmcvZm9ybWF0L1xuICAgICAqIEBkZWZhdWx0IFwiWVlZWS1NTS1ERFwiXG4gICAgICovXG4gICAgZm9ybWF0Pzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRoZSBkYXRlIHNlbGVjdGVkIGludmFsaWQuXG4gICAgICogQGRlZmF1bHQgXCJJbnZhbGlkIGRhdGVcIlxuICAgICAqL1xuICAgIGludmFsaWREYXRlTWVzc2FnZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBuZXcgdmFsaWQgZGF0ZSB0aHJvdWdoIHRoZSBgRGF0ZVBpY2tlcmAgb3IgYnkgdHlwaW5nXG4gICAgICogaW4gdGhlIGlucHV0LlxuICAgICAqL1xuICAgIG9uQ2hhbmdlPzogKHNlbGVjdGVkRGF0ZTogRGF0ZSkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIHRoZSB1c2VyIGZpbmlzaGVzIHR5cGluZyBpbiBhIG5ldyBkYXRlIGFuZCB0aGUgZGF0ZSBjYXVzZXMgYW4gZXJyb3Igc3RhdGUuXG4gICAgICogSWYgdGhlIGRhdGUgaXMgaW52YWxpZCwgYG5ldyBEYXRlKHVuZGVmaW5lZClgIHdpbGwgYmUgcmV0dXJuZWQuIElmIHRoZSBkYXRlIGlzIG91dCBvZiByYW5nZSxcbiAgICAgKiB0aGUgb3V0IG9mIHJhbmdlIGRhdGUgd2lsbCBiZSByZXR1cm5lZCAoYG9uQ2hhbmdlYCBpcyBub3QgY2FsbGVkIGluIHRoaXMgY2FzZSkuXG4gICAgICovXG4gICAgb25FcnJvcj86IChlcnJvckRhdGU6IERhdGUpID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGUgUG9wb3ZlciB3aWxsIG9wZW4gd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIGlucHV0LiBJZiBmYWxzZSwgdGhlIFBvcG92ZXIgd2lsbCBvbmx5XG4gICAgICogb3BlbiB3aGVuIHRoZSBjYWxlbmRhciBpY29uIGlzIGNsaWNrZWQuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIG9wZW5PbkZvY3VzPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB0aGUgZGF0ZSBzZWxlY3RlZCBpcyBvdXQgb2YgcmFuZ2UuXG4gICAgICogQGRlZmF1bHQgXCJPdXQgb2YgcmFuZ2VcIlxuICAgICAqL1xuICAgIG91dE9mUmFuZ2VNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHBvc2l0aW9uIHRoZSBkYXRlIHBvcG92ZXIgc2hvdWxkIGFwcGVhciBpbiByZWxhdGl2ZSB0byB0aGUgaW5wdXQgYm94LlxuICAgICAqIEBkZWZhdWx0IFBvc2l0aW9uLkJPVFRPTVxuICAgICAqL1xuICAgIHBvcG92ZXJQb3NpdGlvbj86IFBvc2l0aW9uO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXkuIElmIHRoaXMgcHJvcCBpcyBwcmVzZW50LCB0aGUgY29tcG9uZW50IGFjdHMgaW4gYSBjb250cm9sbGVkIG1hbm5lci5cbiAgICAgKiBUbyBkaXNwbGF5IG5vIGRhdGUgaW4gdGhlIGlucHV0IGZpZWxkLCBwYXNzIGBudWxsYCB0byB0aGUgdmFsdWUgcHJvcC4gVG8gZGlzcGxheSBhbiBpbnZhbGlkIGRhdGUgZXJyb3JcbiAgICAgKiBpbiB0aGUgaW5wdXQgZmllbGQsIHBhc3MgYG5ldyBEYXRlKHVuZGVmaW5lZClgIHRvIHRoZSB2YWx1ZSBwcm9wLlxuICAgICAqL1xuICAgIHZhbHVlPzogRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUlucHV0U3RhdGUge1xuICAgIHZhbHVlPzogbW9tZW50Lk1vbWVudDtcbiAgICB2YWx1ZVN0cmluZz86IHN0cmluZztcbiAgICBpc0lucHV0Rm9jdXNlZD86IGJvb2xlYW47XG4gICAgaXNPcGVuPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIERhdGVJbnB1dCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50PElEYXRlSW5wdXRQcm9wcywgSURhdGVJbnB1dFN0YXRlPiB7XG4gICAgcHVibGljIHN0YXRpYyBkZWZhdWx0UHJvcHM6IElEYXRlSW5wdXRQcm9wcyA9IHtcbiAgICAgICAgY2xvc2VPblNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBmb3JtYXQ6IFwiWVlZWS1NTS1ERFwiLFxuICAgICAgICBpbnZhbGlkRGF0ZU1lc3NhZ2U6IFwiSW52YWxpZCBkYXRlXCIsXG4gICAgICAgIG1heERhdGU6IGdldERlZmF1bHRNYXhEYXRlKCksXG4gICAgICAgIG1pbkRhdGU6IGdldERlZmF1bHRNaW5EYXRlKCksXG4gICAgICAgIG9wZW5PbkZvY3VzOiB0cnVlLFxuICAgICAgICBvdXRPZlJhbmdlTWVzc2FnZTogXCJPdXQgb2YgcmFuZ2VcIixcbiAgICAgICAgcG9wb3ZlclBvc2l0aW9uOiBQb3NpdGlvbi5CT1RUT00sXG4gICAgfTtcblxuICAgIHB1YmxpYyBkaXNwbGF5TmFtZSA9IFwiQmx1ZXByaW50LkRhdGVJbnB1dFwiO1xuXG4gICAgcHJpdmF0ZSBpbnB1dFJlZjogSFRNTEVsZW1lbnQgPSBudWxsO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzPzogSURhdGVJbnB1dFByb3BzLCBjb250ZXh0PzogYW55KSB7XG4gICAgICAgIHN1cGVyKHByb3BzLCBjb250ZXh0KTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSA/IHRoaXMuZnJvbURhdGVUb01vbWVudCh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSkgOiBtb21lbnQobnVsbCk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIGlzSW5wdXRGb2N1c2VkOiBmYWxzZSxcbiAgICAgICAgICAgIGlzT3BlbjogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5wcm9wcy52YWx1ZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5mcm9tRGF0ZVRvTW9tZW50KHRoaXMucHJvcHMudmFsdWUpIDogZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgdmFsdWVTdHJpbmc6IG51bGwsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHJlbmRlcigpIHtcbiAgICAgICAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuc3RhdGUuaXNJbnB1dEZvY3VzZWQgPyB0aGlzLnN0YXRlLnZhbHVlU3RyaW5nIDogdGhpcy5nZXREYXRlU3RyaW5nKHRoaXMuc3RhdGUudmFsdWUpO1xuICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5zdGF0ZS5pc0lucHV0Rm9jdXNlZCA/IG1vbWVudCh0aGlzLnN0YXRlLnZhbHVlU3RyaW5nLCB0aGlzLnByb3BzLmZvcm1hdCkgOiB0aGlzLnN0YXRlLnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHBvcG92ZXJDb250ZW50ID0gKFxuICAgICAgICAgICAgPERhdGVQaWNrZXJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wc31cbiAgICAgICAgICAgICAgICBjYW5DbGVhclNlbGVjdGlvbj17dGhpcy5wcm9wcy5jYW5DbGVhclNlbGVjdGlvbn1cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e251bGx9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlRGF0ZUNoYW5nZX1cbiAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy52YWxpZEFuZEluUmFuZ2UodGhpcy5zdGF0ZS52YWx1ZSkgPyB0aGlzLmZyb21Nb21lbnRUb0RhdGUodGhpcy5zdGF0ZS52YWx1ZSkgOiBudWxsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBpbnB1dENsYXNzZXMgPSBjbGFzc05hbWVzKHtcbiAgICAgICAgICAgIFwicHQtaW50ZW50LWRhbmdlclwiOiAhKHRoaXMudmFsaWRBbmRJblJhbmdlKGRhdGUpIHx8IHRoaXMuaXNOdWxsKGRhdGUpIHx8IGRhdGVTdHJpbmcgPT09IFwiXCIpLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjYWxlbmRhckljb24gPSAoXG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtDbGFzc2VzLk1JTklNQUx9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMucHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJjYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgaW50ZW50PXtJbnRlbnQuUFJJTUFSWX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZUljb25DbGlja31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxQb3BvdmVyXG4gICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBjb250ZW50PXtwb3BvdmVyQ29udGVudH1cbiAgICAgICAgICAgICAgICBlbmZvcmNlRm9jdXM9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIGlubGluZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc09wZW49e3RoaXMuc3RhdGUuaXNPcGVufVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlQ2xvc2VQb3BvdmVyfVxuICAgICAgICAgICAgICAgIHBvcG92ZXJDbGFzc05hbWU9XCJwdC1kYXRlaW5wdXQtcG9wb3ZlclwiXG4gICAgICAgICAgICAgICAgcG9zaXRpb249e3RoaXMucHJvcHMucG9wb3ZlclBvc2l0aW9ufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxJbnB1dEdyb3VwXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17aW5wdXRDbGFzc2VzfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRSZWY9e3RoaXMuc2V0SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLmhhbmRsZUlucHV0Qmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlSW5wdXRDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlSW5wdXRDbGlja31cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17dGhpcy5oYW5kbGVJbnB1dEZvY3VzfVxuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5mb3JtYXR9XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0RWxlbWVudD17Y2FsZW5kYXJJY29ufVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZGF0ZVN0cmluZ31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wczogSURhdGVJbnB1dFByb3BzKSB7XG4gICAgICAgIGlmIChuZXh0UHJvcHMudmFsdWUgIT09IHRoaXMucHJvcHMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogdGhpcy5mcm9tRGF0ZVRvTW9tZW50KG5leHRQcm9wcy52YWx1ZSkgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdXBlci5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG5leHRQcm9wcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlU3RyaW5nID0gKHZhbHVlOiBtb21lbnQuTW9tZW50KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGVJc0luUmFuZ2UodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmZvcm1hdCh0aGlzLnByb3BzLmZvcm1hdCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLm91dE9mUmFuZ2VNZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmludmFsaWREYXRlTWVzc2FnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkQW5kSW5SYW5nZSh2YWx1ZTogbW9tZW50Lk1vbWVudCkge1xuICAgICAgICByZXR1cm4gdmFsdWUuaXNWYWxpZCgpICYmIHRoaXMuZGF0ZUlzSW5SYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc051bGwodmFsdWU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnBhcnNpbmdGbGFncygpLm51bGxJbnB1dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRhdGVJc0luUmFuZ2UodmFsdWU6IG1vbWVudC5Nb21lbnQpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLmlzQmV0d2Vlbih0aGlzLnByb3BzLm1pbkRhdGUsIHRoaXMucHJvcHMubWF4RGF0ZSwgXCJkYXlcIiwgXCJbXVwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUNsb3NlUG9wb3ZlciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzT3BlbjogZmFsc2UgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVEYXRlQ2hhbmdlID0gKGRhdGU6IERhdGUsIGhhc1VzZXJNYW51YWxseVNlbGVjdGVkRGF0ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICBjb25zdCBtb21lbnREYXRlID0gdGhpcy5mcm9tRGF0ZVRvTW9tZW50KGRhdGUpO1xuICAgICAgICBjb25zdCBoYXNNb250aENoYW5nZWQgPSBkYXRlICE9PSBudWxsICYmICF0aGlzLmlzTnVsbCh0aGlzLnN0YXRlLnZhbHVlKSAmJiB0aGlzLnN0YXRlLnZhbHVlLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgbW9tZW50RGF0ZS5tb250aCgpICE9PSB0aGlzLnN0YXRlLnZhbHVlLm1vbnRoKCk7XG4gICAgICAgIGNvbnN0IGlzT3BlbiA9ICEodGhpcy5wcm9wcy5jbG9zZU9uU2VsZWN0aW9uICYmIGhhc1VzZXJNYW51YWxseVNlbGVjdGVkRGF0ZSAmJiAhaGFzTW9udGhDaGFuZ2VkKTtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzSW5wdXRGb2N1c2VkOiBmYWxzZSwgaXNPcGVuLCB2YWx1ZTogbW9tZW50RGF0ZSB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc0lucHV0Rm9jdXNlZDogZmFsc2UsIGlzT3BlbiB9KTtcbiAgICAgICAgfVxuICAgICAgICBVdGlscy5zYWZlSW52b2tlKHRoaXMucHJvcHMub25DaGFuZ2UsIHRoaXMuZnJvbU1vbWVudFRvRGF0ZShtb21lbnREYXRlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVJY29uQ2xpY2sgPSAoZTogUmVhY3QuU3ludGhldGljRXZlbnQ8SFRNTEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRSZWYgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRSZWYuYmx1cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzT3BlbjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dFJlZiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFJlZi5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVJbnB1dEZvY3VzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHRoaXMuaXNOdWxsKHRoaXMuc3RhdGUudmFsdWUpID8gXCJcIiA6IHRoaXMuc3RhdGUudmFsdWUuZm9ybWF0KHRoaXMucHJvcHMuZm9ybWF0KTtcblxuICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuT25Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzSW5wdXRGb2N1c2VkOiB0cnVlLCBpc09wZW46IHRydWUsIHZhbHVlU3RyaW5nIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzSW5wdXRGb2N1c2VkOiB0cnVlLCB2YWx1ZVN0cmluZyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlSW5wdXRDbGljayA9IChlOiBSZWFjdC5TeW50aGV0aWNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAodGhpcy5wcm9wcy5vcGVuT25Gb2N1cykge1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UgPSAoZTogUmVhY3QuU3ludGhldGljRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSAoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gbW9tZW50KHZhbHVlU3RyaW5nLCB0aGlzLnByb3BzLmZvcm1hdCk7XG5cbiAgICAgICAgaWYgKHZhbHVlLmlzVmFsaWQoKSAmJiB0aGlzLmRhdGVJc0luUmFuZ2UodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlLCB2YWx1ZVN0cmluZyB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlU3RyaW5nIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgVXRpbHMuc2FmZUludm9rZSh0aGlzLnByb3BzLm9uQ2hhbmdlLCB0aGlzLmZyb21Nb21lbnRUb0RhdGUodmFsdWUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZVN0cmluZyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFuZGxlSW5wdXRCbHVyID0gKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHRoaXMuc3RhdGUudmFsdWVTdHJpbmc7XG4gICAgICAgIGxldCB2YWx1ZSA9IG1vbWVudCh2YWx1ZVN0cmluZywgdGhpcy5wcm9wcy5mb3JtYXQpO1xuICAgICAgICBpZiAodmFsdWVTdHJpbmcubGVuZ3RoID4gMFxuICAgICAgICAgICAgJiYgdmFsdWVTdHJpbmcgIT09IHRoaXMuZ2V0RGF0ZVN0cmluZyh0aGlzLnN0YXRlLnZhbHVlKVxuICAgICAgICAgICAgJiYgKCF2YWx1ZS5pc1ZhbGlkKCkgfHwgIXRoaXMuZGF0ZUlzSW5SYW5nZSh2YWx1ZSkpKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IGZhbHNlLCB2YWx1ZSwgdmFsdWVTdHJpbmc6IG51bGwgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBpc0lucHV0Rm9jdXNlZDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdmFsdWUuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgVXRpbHMuc2FmZUludm9rZSh0aGlzLnByb3BzLm9uRXJyb3IsIG5ldyBEYXRlKHVuZGVmaW5lZCkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5kYXRlSXNJblJhbmdlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIFV0aWxzLnNhZmVJbnZva2UodGhpcy5wcm9wcy5vbkVycm9yLCB0aGlzLmZyb21Nb21lbnRUb0RhdGUodmFsdWUpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgVXRpbHMuc2FmZUludm9rZSh0aGlzLnByb3BzLm9uQ2hhbmdlLCB0aGlzLmZyb21Nb21lbnRUb0RhdGUodmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVN0cmluZy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgaXNJbnB1dEZvY3VzZWQ6IGZhbHNlLCB2YWx1ZTogbW9tZW50KG51bGwpLCB2YWx1ZVN0cmluZzogbnVsbCB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGlzSW5wdXRGb2N1c2VkOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SW5wdXRSZWYgPSAoZWw6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYgPSBlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2xhdGUgYSBtb21lbnQgaW50byBhIERhdGUgb2JqZWN0LCBhZGp1c3RpbmcgdGhlIG1vbWVudCB0aW1lem9uZSBpbnRvIHRoZSBsb2NhbCBvbmUuXG4gICAgICogVGhpcyBpcyBhIG5vLW9wIHVubGVzcyBtb21lbnQtdGltZXpvbmUncyBzZXREZWZhdWx0IGhhcyBiZWVuIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZyb21Nb21lbnRUb0RhdGUgPSAobW9tZW50RGF0ZTogbW9tZW50Lk1vbWVudCkgPT4ge1xuICAgICAgICBpZiAobW9tZW50RGF0ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgIG1vbWVudERhdGUueWVhcigpLFxuICAgICAgICAgICAgICAgIG1vbWVudERhdGUubW9udGgoKSxcbiAgICAgICAgICAgICAgICBtb21lbnREYXRlLmRhdGUoKSxcbiAgICAgICAgICAgICAgICBtb21lbnREYXRlLmhvdXJzKCksXG4gICAgICAgICAgICAgICAgbW9tZW50RGF0ZS5taW51dGVzKCksXG4gICAgICAgICAgICAgICAgbW9tZW50RGF0ZS5zZWNvbmRzKCksXG4gICAgICAgICAgICAgICAgbW9tZW50RGF0ZS5taWxsaXNlY29uZHMoKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2xhdGUgYSBEYXRlIG9iamVjdCBpbnRvIGEgbW9tZW50LCBhZGp1c3RpbmcgdGhlIGxvY2FsIHRpbWV6b25lIGludG8gdGhlIG1vbWVudCBvbmUuXG4gICAgICogVGhpcyBpcyBhIG5vLW9wIHVubGVzcyBtb21lbnQtdGltZXpvbmUncyBzZXREZWZhdWx0IGhhcyBiZWVuIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGZyb21EYXRlVG9Nb21lbnQgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgICBpZiAoZGF0ZSA9PSBudWxsIHx8IHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gbW9tZW50KGRhdGUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG1vbWVudChbXG4gICAgICAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgICAgICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgICAgICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgICAgICAgICAgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICAgICAgZGF0ZS5nZXRTZWNvbmRzKCksXG4gICAgICAgICAgICAgICAgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
{
"name": "@blueprintjs/datetime",
"version": "1.3.0",
"version": "1.4.0",
"description": "Components for interacting with dates and times",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc