react-native-cross-components
Version:
Beautiful React-Native components using RN Paper by Callstack
94 lines • 14.7 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const react_native_1 = require("react-native");
const styles_1 = require("../../styles");
const react_native_modal_1 = __importDefault(require("react-native-modal"));
const CrossSpinner_1 = require("../animations/CrossSpinner");
const styles_2 = __importDefault(require("../../styles"));
/**
* @description
* Displays a modal with busy indicator (spinner) and message when {@link IBusyIndicatorProps.isBusy} is `true`
*
* Properties are {@link IBusyIndicatorProps}
*
* Also supports cancelling the modal using properties
* {@link IBusyIndicatorProps.isCancelButtonVisible},
* {@link IBusyIndicatorProps.cancelText} and
* {@link IBusyIndicatorProps.onCancel}.
* This does however not hide the modal.
*
* Modal with cancel
* @example
*
```
<CrossBusyIndicator
key="busy1"
testID="busy1"
isBusy={this.state.isBusy}
type={CrossSpinnerType.PacmanIndicator}
isCancelButtonVisible={true}
message="Loading.."
onCancel={() => this.setState({ isBusy: false })}
/>
```
* Non cancellable and custom styles
* @example
```
<CrossBusyIndicator
key="busy2"
testID="busy2"
spinnerProps={{
color: 'red',
type: CrossSpinnerType.WaveIndicator
}}
messageStyle={{color: 'red'}}
isBusy={this.state.isBusy2}
isCancelButtonVisible={false}
message="Resistance is futile"
/>
```
*/
class CrossBusyIndicator extends react_1.default.Component {
constructor(props) {
super(props);
this.onCancel = this.onCancel.bind(this);
}
onCancel() {
if (!this.props.isCancelButtonVisible) {
return;
}
if (this.props.onCancel) {
this.props.onCancel();
}
}
render() {
return (react_1.default.createElement(react_native_1.View, { testID: this.props.testID || '1' },
react_1.default.createElement(react_native_modal_1.default, { style: this.props.modalStyle
? [styles_2.default.absoluteCentered, this.props.modalStyle]
: styles_2.default.absoluteCentered, isVisible: this.props.isBusy, onDismiss: this.onCancel },
react_1.default.createElement(react_native_1.View, { style: this.props.innerViewStyle
? [
styles_2.default.container,
styles_2.default.paddingDefault,
this.props.innerViewStyle,
]
: [styles_2.default.container, styles_2.default.paddingDefault] },
react_1.default.createElement(react_native_1.View, { style: [styles_2.default.columnContentTopCenter] },
react_1.default.createElement(CrossSpinner_1.CrossSpinner, Object.assign({ type: this.props.type || CrossSpinner_1.CrossSpinnerType.MaterialIndicator, style: styles_2.default.spinner }, this.props.spinnerProps))),
react_1.default.createElement(react_native_1.View, { style: [styles_2.default.columnContentTopCenter] },
react_1.default.createElement(react_native_1.Text, { style: [styles_2.default.textSpinner, this.props.messageStyle] }, this.props.message || ''),
this.props.isCancelButtonVisible ? (react_1.default.createElement(react_native_1.TouchableOpacity, { onPress: this.onCancel },
react_1.default.createElement(react_native_1.Text, { testID: 'cancelText', style: [
styles_2.default.textSpinner,
{ color: styles_1.Colors.CancelButton },
this.props.cancelTextStyle,
] }, this.props.cancelText || 'Cancel'))) : null)))));
}
}
exports.CrossBusyIndicator = CrossBusyIndicator;
exports.default = CrossBusyIndicator;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvbW9kYWxzL0Nyb3NzQnVzeUluZGljYXRvci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsK0NBT3NCO0FBQ3RCLHlDQUFzQztBQUN0Qyw0RUFBdUM7QUFDdkMsNkRBSW9DO0FBQ3BDLDBEQUFrQztBQXlFbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBDRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsZUFBSyxDQUFDLFNBQThCO0lBQzFFLFlBQVksS0FBMEI7UUFDcEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUNMLDhCQUFDLG1CQUFJLElBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7WUFDcEMsOEJBQUMsNEJBQUssSUFDSixLQUFLLEVBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO29CQUNuQixDQUFDLENBQUMsQ0FBQyxnQkFBTSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO29CQUNsRCxDQUFDLENBQUMsZ0JBQU0sQ0FBQyxnQkFBZ0IsRUFFN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBRXhCLDhCQUFDLG1CQUFJLElBQ0gsS0FBSyxFQUNILElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYzt3QkFDdkIsQ0FBQyxDQUFDOzRCQUNFLGdCQUFNLENBQUMsU0FBUzs0QkFDaEIsZ0JBQU0sQ0FBQyxjQUFjOzRCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7eUJBQzFCO3dCQUNILENBQUMsQ0FBQyxDQUFDLGdCQUFNLENBQUMsU0FBUyxFQUFFLGdCQUFNLENBQUMsY0FBYyxDQUFDO29CQUcvQyw4QkFBQyxtQkFBSSxJQUFDLEtBQUssRUFBRSxDQUFDLGdCQUFNLENBQUMsc0JBQXNCLENBQUM7d0JBQzFDLDhCQUFDLDJCQUFZLGtCQUNYLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSwrQkFBZ0IsQ0FBQyxpQkFBaUIsRUFDM0QsS0FBSyxFQUFFLGdCQUFNLENBQUMsT0FBTyxJQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDM0IsQ0FDRztvQkFFUCw4QkFBQyxtQkFBSSxJQUFDLEtBQUssRUFBRSxDQUFDLGdCQUFNLENBQUMsc0JBQXNCLENBQUM7d0JBQzFDLDhCQUFDLG1CQUFJLElBQ0gsS0FBSyxFQUNELENBQUMsZ0JBQU0sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFHaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUNwQjt3QkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUNsQyw4QkFBQywrQkFBZ0IsSUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7NEJBQ3RDLDhCQUFDLG1CQUFJLElBQ0gsTUFBTSxFQUFDLFlBQVksRUFDbkIsS0FBSyxFQUFFO29DQUNMLGdCQUFNLENBQUMsV0FBVztvQ0FDbEIsRUFBRSxLQUFLLEVBQUUsZUFBTSxDQUFDLFlBQVksRUFBRTtvQ0FDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO2lDQUMzQixJQUVBLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FDN0IsQ0FDVSxDQUNwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ0gsQ0FDRixDQUNELENBQ0gsQ0FDUixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBM0VELGdEQTJFQztBQUVELGtCQUFlLGtCQUFrQixDQUFDIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi9Vc2Vycy90aG9tYXMvU291cmNlL3JlYWN0LW5hdGl2ZS1jb3JlL3NvdXJjZS9jb21wb25lbnRzL21vZGFscy9Dcm9zc0J1c3lJbmRpY2F0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBWaWV3LFxuICBUZXh0LFxuICBUb3VjaGFibGVPcGFjaXR5LFxuICBTdHlsZVByb3AsXG4gIFZpZXdTdHlsZSxcbiAgVGV4dFN0eWxlXG59IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5pbXBvcnQgeyBDb2xvcnMgfSBmcm9tICcuLi8uLi9zdHlsZXMnO1xuaW1wb3J0IE1vZGFsIGZyb20gJ3JlYWN0LW5hdGl2ZS1tb2RhbCc7XG5pbXBvcnQge1xuICBDcm9zc1NwaW5uZXJUeXBlLFxuICBDcm9zc1NwaW5uZXIsXG4gIElDcm9zc1NwaW5uZXJQcm9wcyxcbn0gZnJvbSAnLi4vYW5pbWF0aW9ucy9Dcm9zc1NwaW5uZXInO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi9zdHlsZXMnO1xuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgcHJvcHMgZm9yIHtAbGluayBDcm9zc0J1c3lJbmRpY2F0b3J9XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBJQnVzeUluZGljYXRvclByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1c3lJbmRpY2F0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbmRpY2F0b3IgaXMgdmlzaWJsZVxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIElCdXN5SW5kaWNhdG9yUHJvcHNcbiAgICovXG4gIGlzQnVzeTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1lc3NhZ2UgdG8gc2hvdyB3aGlsZSBidXN5LiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBJQnVzeUluZGljYXRvclByb3BzXG4gICAqL1xuICBtZXNzYWdlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVHlwZSBvZiBzcGlubmVyIHRvIHVzZVxuICAgKlxuICAgKiBAdHlwZSB7Q3Jvc3NTcGlubmVyVHlwZX1cbiAgICogQG1lbWJlcm9mIElCdXN5SW5kaWNhdG9yUHJvcHNcbiAgICovXG4gIHR5cGU/OiBDcm9zc1NwaW5uZXJUeXBlIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT3B0aW9uYWwgdGVzdCBpZCB0byBhc3NpZ24gdGhpcyBjb21wb25lbnQuIERlZmF1bHQgaXMgXCIxXCJcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIElCdXN5SW5kaWNhdG9yUHJvcHNcbiAgICovXG4gIHRlc3RJRD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIG1vZGFsIGlzIGNhbmNlbGxhYmxlLiBPdGhlcndpc2UgdmlzaWJpbGl0eSBpcyBjb250cm9sbGVkIGJ5IHtAbGluayBpc0J1c3l9XG4gICAqL1xuICBpc0NhbmNlbEJ1dHRvblZpc2libGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgdXNlciBjYW5jZWwgZXZlbnQuXG4gICAqL1xuICBvbkNhbmNlbD86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUZXh0IGZvciBjYW5jZWwgYnV0dG9uLiBEZWZhdWx0IGlzIFwiQ2FuY2VsXCJcbiAgICovXG4gIGNhbmNlbFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gc3R5bGUgZm9yIHRoZSB7QGxpbmsgY2FuY2VsVGV4dH1cbiAgICovXG4gIGNhbmNlbFRleHRTdHlsZT86IFN0eWxlUHJvcDxUZXh0U3R5bGU+IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIHN0eWxlIGZvciB0aGUgbW9kYWwgdmlld1xuICAgKi9cbiAgbW9kYWxTdHlsZT86IFN0eWxlUHJvcDxWaWV3U3R5bGU+IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIHN0eWxlIGZvciB0aGUgaW5uZXIgdmlldywgY29udGFpbmVkIGluIHRoZSBtb2RhbFxuICAgKi9cbiAgaW5uZXJWaWV3U3R5bGU/OiBTdHlsZVByb3A8Vmlld1N0eWxlPiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBzdHlsZSBmb3IgdGhlIHtAbGluayBtZXNzYWdlfVxuICAgKi9cbiAgbWVzc2FnZVN0eWxlPzogU3R5bGVQcm9wPFRleHRTdHlsZT4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyZSB0aGUgc3Bpbm5lclxuICAgKlxuICAgKiBTZWUge0BsaW5rIElDcm9zc1NwaW5uZXJQcm9wc31cbiAgICovXG4gIHNwaW5uZXJQcm9wcz86IElDcm9zc1NwaW5uZXJQcm9wcyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIERpc3BsYXlzIGEgbW9kYWwgd2l0aCBidXN5IGluZGljYXRvciAoc3Bpbm5lcikgYW5kIG1lc3NhZ2Ugd2hlbiB7QGxpbmsgSUJ1c3lJbmRpY2F0b3JQcm9wcy5pc0J1c3l9IGlzIGB0cnVlYFxuICpcbiAqIFByb3BlcnRpZXMgYXJlIHtAbGluayBJQnVzeUluZGljYXRvclByb3BzfVxuICpcbiAqIEFsc28gc3VwcG9ydHMgY2FuY2VsbGluZyB0aGUgbW9kYWwgdXNpbmcgcHJvcGVydGllc1xuICoge0BsaW5rIElCdXN5SW5kaWNhdG9yUHJvcHMuaXNDYW5jZWxCdXR0b25WaXNpYmxlfSxcbiAqIHtAbGluayBJQnVzeUluZGljYXRvclByb3BzLmNhbmNlbFRleHR9IGFuZFxuICoge0BsaW5rIElCdXN5SW5kaWNhdG9yUHJvcHMub25DYW5jZWx9LlxuICogVGhpcyBkb2VzIGhvd2V2ZXIgbm90IGhpZGUgdGhlIG1vZGFsLlxuICpcbiAqIE1vZGFsIHdpdGggY2FuY2VsXG4gKiBAZXhhbXBsZVxuICpcbiBgYGBcbiAgPENyb3NzQnVzeUluZGljYXRvclxuICAgICAgICAgIGtleT1cImJ1c3kxXCJcbiAgICAgICAgICB0ZXN0SUQ9XCJidXN5MVwiXG4gICAgICAgICAgaXNCdXN5PXt0aGlzLnN0YXRlLmlzQnVzeX1cbiAgICAgICAgICB0eXBlPXtDcm9zc1NwaW5uZXJUeXBlLlBhY21hbkluZGljYXRvcn1cbiAgICAgICAgICBpc0NhbmNlbEJ1dHRvblZpc2libGU9e3RydWV9XG4gICAgICAgICAgbWVzc2FnZT1cIkxvYWRpbmcuLlwiXG4gICAgICAgICAgb25DYW5jZWw9eygpID0+IHRoaXMuc2V0U3RhdGUoeyBpc0J1c3k6IGZhbHNlIH0pfVxuICAgICAgICAvPlxuYGBgXG4qIE5vbiBjYW5jZWxsYWJsZSBhbmQgY3VzdG9tIHN0eWxlc1xuKiBAZXhhbXBsZVxuYGBgXG4gICAgICAgIDxDcm9zc0J1c3lJbmRpY2F0b3JcbiAgICAgICAgICBrZXk9XCJidXN5MlwiXG4gICAgICAgICAgdGVzdElEPVwiYnVzeTJcIlxuICAgICAgICAgIHNwaW5uZXJQcm9wcz17e1xuICAgICAgICAgICAgY29sb3I6ICdyZWQnLFxuICAgICAgICAgICAgdHlwZTogQ3Jvc3NTcGlubmVyVHlwZS5XYXZlSW5kaWNhdG9yXG4gICAgICAgICAgfX1cbiAgICAgICAgICBtZXNzYWdlU3R5bGU9e3tjb2xvcjogJ3JlZCd9fVxuICAgICAgICAgIGlzQnVzeT17dGhpcy5zdGF0ZS5pc0J1c3kyfVxuICAgICAgICAgIGlzQ2FuY2VsQnV0dG9uVmlzaWJsZT17ZmFsc2V9XG4gICAgICAgICAgbWVzc2FnZT1cIlJlc2lzdGFuY2UgaXMgZnV0aWxlXCJcbiAgICAgICAgLz5cbmBgYFxuICovXG5leHBvcnQgY2xhc3MgQ3Jvc3NCdXN5SW5kaWNhdG9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElCdXN5SW5kaWNhdG9yUHJvcHM+IHtcbiAgY29uc3RydWN0b3IocHJvcHM6IElCdXN5SW5kaWNhdG9yUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5vbkNhbmNlbCA9IHRoaXMub25DYW5jZWwuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIGlmICghdGhpcy5wcm9wcy5pc0NhbmNlbEJ1dHRvblZpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcm9wcy5vbkNhbmNlbCkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFZpZXcgdGVzdElEPXt0aGlzLnByb3BzLnRlc3RJRCB8fCAnMSd9PlxuICAgICAgICA8TW9kYWxcbiAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICB0aGlzLnByb3BzLm1vZGFsU3R5bGVcbiAgICAgICAgICAgICAgPyBbc3R5bGVzLmFic29sdXRlQ2VudGVyZWQsIHRoaXMucHJvcHMubW9kYWxTdHlsZV1cbiAgICAgICAgICAgICAgOiBzdHlsZXMuYWJzb2x1dGVDZW50ZXJlZFxuICAgICAgICAgIH1cbiAgICAgICAgICBpc1Zpc2libGU9e3RoaXMucHJvcHMuaXNCdXN5fVxuICAgICAgICAgIG9uRGlzbWlzcz17dGhpcy5vbkNhbmNlbH1cbiAgICAgICAgPlxuICAgICAgICAgIDxWaWV3XG4gICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgIHRoaXMucHJvcHMuaW5uZXJWaWV3U3R5bGVcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVzLnBhZGRpbmdEZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmlubmVyVmlld1N0eWxlLFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5wYWRkaW5nRGVmYXVsdF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy5jb2x1bW5Db250ZW50VG9wQ2VudGVyXX0+XG4gICAgICAgICAgICAgIDxDcm9zc1NwaW5uZXJcbiAgICAgICAgICAgICAgICB0eXBlPXt0aGlzLnByb3BzLnR5cGUgfHwgQ3Jvc3NTcGlubmVyVHlwZS5NYXRlcmlhbEluZGljYXRvcn1cbiAgICAgICAgICAgICAgICBzdHlsZT17c3R5bGVzLnNwaW5uZXJ9XG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuc3Bpbm5lclByb3BzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9WaWV3PlxuXG4gICAgICAgICAgICA8VmlldyBzdHlsZT17W3N0eWxlcy5jb2x1bW5Db250ZW50VG9wQ2VudGVyXX0+XG4gICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICBbc3R5bGVzLnRleHRTcGlubmVyLCB0aGlzLnByb3BzLm1lc3NhZ2VTdHlsZV1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5tZXNzYWdlIHx8ICcnfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLmlzQ2FuY2VsQnV0dG9uVmlzaWJsZSA/IChcbiAgICAgICAgICAgICAgICA8VG91Y2hhYmxlT3BhY2l0eSBvblByZXNzPXt0aGlzLm9uQ2FuY2VsfT5cbiAgICAgICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgICAgIHRlc3RJRD0nY2FuY2VsVGV4dCdcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1tcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZXMudGV4dFNwaW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjb2xvcjogQ29sb3JzLkNhbmNlbEJ1dHRvbiB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY2FuY2VsVGV4dFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5jZWxUZXh0IHx8ICdDYW5jZWwnfVxuICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgIDwvVG91Y2hhYmxlT3BhY2l0eT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICA8L01vZGFsPlxuICAgICAgPC9WaWV3PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ3Jvc3NCdXN5SW5kaWNhdG9yO1xuIl0sInZlcnNpb24iOjN9