UNPKG

react-native-cross-components

Version:
97 lines 17.8 kB
"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}. * * Customize the modal through {@link IBusyIndicatorProps.modalProps}. * * Also supports cancelling the modal using properties * {@link IBusyIndicatorProps.isCancelButtonVisible}, * {@link IBusyIndicatorProps.cancelText} and * {@link IBusyIndicatorProps.onCancel}. * This does however not hide the modal. * * @example <caption>Modal with cancel</caption> * <CrossBusyIndicator * isBusy={this.state.isBusy} * type='PacmanIndicator' * isCancelButtonVisible={true} * message="Loading.." * onCancel={() => this.setState({ isBusy: false })} * /> * * @example <caption>Non cancellable and custom styles</caption> * <CrossBusyIndicator * spinnerProps={{ * color: 'red', * type: 'WaveIndicator' * }} * messageStyle={{color: 'red'}} * isBusy={this.state.isBusy2} * isCancelButtonVisible={false} * message="Resistance is futile" * /> * * @example <caption>Customize modal props</caption> * <CrossBusyIndicator * modalProps={{ * swipeDirection: 'up', * backdropColor: 'blue' * }} * isBusy={this.state.isBusy2} * isCancelButtonVisible={false} * message="Busy busy busy.." * /> */ 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, Object.assign({}, this.props.modalProps, { 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 || '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,eyJmaWxlIjoiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvbW9kYWxzL0Nyb3NzQnVzeUluZGljYXRvci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsK0NBT3NCO0FBQ3RCLHlDQUFzQztBQUN0Qyw0RUFBdUM7QUFDdkMsNkRBSW9DO0FBQ3BDLDBEQUFrQztBQWtJbEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZDRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsZUFBSyxDQUFDLFNBQThCO0lBQzFFLFlBQVksS0FBMEI7UUFDcEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUNMLDhCQUFDLG1CQUFJLElBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7WUFDcEMsOEJBQUMsNEJBQUssb0JBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQ3pCLEtBQUssRUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7b0JBQ25CLENBQUMsQ0FBQyxDQUFDLGdCQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7b0JBQ2xELENBQUMsQ0FBQyxnQkFBTSxDQUFDLGdCQUFnQixFQUU3QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFFeEIsOEJBQUMsbUJBQUksSUFDSCxLQUFLLEVBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO3dCQUN2QixDQUFDLENBQUM7NEJBQ0UsZ0JBQU0sQ0FBQyxTQUFTOzRCQUNoQixnQkFBTSxDQUFDLGNBQWM7NEJBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYzt5QkFDMUI7d0JBQ0gsQ0FBQyxDQUFDLENBQUMsZ0JBQU0sQ0FBQyxTQUFTLEVBQUUsZ0JBQU0sQ0FBQyxjQUFjLENBQUM7b0JBRy9DLDhCQUFDLG1CQUFJLElBQUMsS0FBSyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxzQkFBc0IsQ0FBQzt3QkFDMUMsOEJBQUMsMkJBQVksa0JBQ1gsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLG1CQUFtQixFQUM1QyxLQUFLLEVBQUUsZ0JBQU0sQ0FBQyxPQUFPLElBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUMzQixDQUNHO29CQUVQLDhCQUFDLG1CQUFJLElBQUMsS0FBSyxFQUFFLENBQUMsZ0JBQU0sQ0FBQyxzQkFBc0IsQ0FBQzt3QkFDMUMsOEJBQUMsbUJBQUksSUFBQyxLQUFLLEVBQUUsQ0FBQyxnQkFBTSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQ3BCO3dCQUNOLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQ2xDLDhCQUFDLCtCQUFnQixJQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUTs0QkFDdEMsOEJBQUMsbUJBQUksSUFDSCxNQUFNLEVBQUMsWUFBWSxFQUNuQixLQUFLLEVBQUU7b0NBQ0wsZ0JBQU0sQ0FBQyxXQUFXO29DQUNsQixFQUFFLEtBQUssRUFBRSxlQUFNLENBQUMsWUFBWSxFQUFFO29DQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWU7aUNBQzNCLElBRUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksUUFBUSxDQUM3QixDQUNVLENBQ3BCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDSCxDQUNGLENBQ0QsQ0FDSCxDQUNSLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4RUQsZ0RBd0VDO0FBRUQsa0JBQWUsa0JBQWtCLENBQUMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiL1VzZXJzL3Rob21hcy9Tb3VyY2UvcmVhY3QtbmF0aXZlLWNvcmUvc291cmNlL2NvbXBvbmVudHMvbW9kYWxzL0Nyb3NzQnVzeUluZGljYXRvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIFZpZXcsXG4gIFRleHQsXG4gIFRvdWNoYWJsZU9wYWNpdHksXG4gIFN0eWxlUHJvcCxcbiAgVmlld1N0eWxlLFxuICBUZXh0U3R5bGUsXG59IGZyb20gJ3JlYWN0LW5hdGl2ZSc7XG5pbXBvcnQgeyBDb2xvcnMgfSBmcm9tICcuLi8uLi9zdHlsZXMnO1xuaW1wb3J0IE1vZGFsIGZyb20gJ3JlYWN0LW5hdGl2ZS1tb2RhbCc7XG5pbXBvcnQge1xuICBDcm9zc1NwaW5uZXJUeXBlLFxuICBDcm9zc1NwaW5uZXIsXG4gIElDcm9zc1NwaW5uZXJQcm9wcyxcbn0gZnJvbSAnLi4vYW5pbWF0aW9ucy9Dcm9zc1NwaW5uZXInO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuLi8uLi9zdHlsZXMnO1xuXG5leHBvcnQgdHlwZSBBbmltYXRpb25Db25maWcgPSBzdHJpbmcgfCB7IGZyb206IE9iamVjdDsgdG86IE9iamVjdCB9O1xuXG5leHBvcnQgdHlwZSBPcmllbnRhdGlvbiA9XG4gIHwgJ3BvcnRyYWl0J1xuICB8ICdwb3J0cmFpdC11cHNpZGUtZG93bidcbiAgfCAnbGFuZHNjYXBlJ1xuICB8ICdsYW5kc2NhcGUtbGVmdCdcbiAgfCAnbGFuZHNjYXBlLXJpZ2h0JztcblxuLyoqXG4gKiBSZXByZXNlbnRhdGlvbiBvZiByZWFjdC1uYXRpdmUtbW9kYWwgcHJvcHMuIEFsbCBwcm9wcyBleGNlcHQgYGlzVmlzaWJsZWAgYW5kIGBjaGlsZHJlbmAgZnJvbTpcbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3QtbmF0aXZlLWNvbW11bml0eS9yZWFjdC1uYXRpdmUtbW9kYWwjYXZhaWxhYmxlLXByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGFsUHJvcHMge1xuICBhbmltYXRpb25Jbj86IEFuaW1hdGlvbkNvbmZpZztcbiAgYW5pbWF0aW9uSW5UaW1pbmc/OiBudW1iZXI7XG4gIGFuaW1hdGlvbk91dD86IEFuaW1hdGlvbkNvbmZpZztcbiAgYW5pbWF0aW9uT3V0VGltaW5nPzogbnVtYmVyO1xuICBhdm9pZEtleWJvYXJkPzogYm9vbGVhbjtcbiAgYmFja2Ryb3BDb2xvcj86IHN0cmluZztcbiAgYmFja2Ryb3BPcGFjaXR5PzogbnVtYmVyO1xuICBiYWNrZHJvcFRyYW5zaXRpb25JblRpbWluZz86IG51bWJlcjtcbiAgYmFja2Ryb3BUcmFuc2l0aW9uT3V0VGltaW5nPzogbnVtYmVyO1xuICB1c2VOYXRpdmVEcml2ZXI/OiBib29sZWFuO1xuICBkZXZpY2VIZWlnaHQ/OiBudW1iZXI7XG4gIGRldmljZVdpZHRoPzogbnVtYmVyO1xuICBoaWRlTW9kYWxDb250ZW50V2hpbGVBbmltYXRpbmc/OiBib29sZWFuO1xuICBvbk1vZGFsU2hvdz86ICgpID0+IHZvaWQ7XG4gIG9uTW9kYWxIaWRlPzogKCkgPT4gdm9pZDtcbiAgb25CYWNrQnV0dG9uUHJlc3M/OiAoKSA9PiB2b2lkO1xuICBvbkJhY2tkcm9wUHJlc3M/OiAoKSA9PiB2b2lkO1xuICBvblN3aXBlPzogKCkgPT4gdm9pZDtcbiAgc3dpcGVUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIHN0eWxlPzogU3R5bGVQcm9wPFZpZXdTdHlsZT47XG4gIHN3aXBlRGlyZWN0aW9uPzogJ3VwJyB8ICdkb3duJyB8ICdsZWZ0JyB8ICdyaWdodCc7XG4gIHNjcm9sbFRvPzogKGU6IGFueSkgPT4gdm9pZDtcbiAgc2Nyb2xsT2Zmc2V0PzogbnVtYmVyO1xuICBzY3JvbGxPZmZzZXRNYXg/OiBudW1iZXI7XG4gIHN1cHBvcnRlZE9yaWVudGF0aW9ucz86IE9yaWVudGF0aW9uW107XG4gIG9uRGlzbWlzcz86ICgpID0+IHZvaWQ7XG4gIG9uU2hvdz86ICgpID0+IHZvaWQ7XG4gIGhhcmR3YXJlQWNjZWxlcmF0ZWQ/OiBib29sZWFuO1xuICBvbk9yaWVudGF0aW9uQ2hhbmdlPzogKG9yaWVudGF0aW9uOiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZScpID0+IHZvaWQ7XG4gIHByZXNlbnRhdGlvblN0eWxlPzpcbiAgICB8ICdmdWxsU2NyZWVuJ1xuICAgIHwgJ3BhZ2VTaGVldCdcbiAgICB8ICdmb3JtU2hlZXQnXG4gICAgfCAnb3ZlckZ1bGxTY3JlZW4nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgcHJvcHMgZm9yIHtAbGluayBDcm9zc0J1c3lJbmRpY2F0b3J9XG4gKlxuICogQGV4cG9ydFxuICogQGludGVyZmFjZSBJQnVzeUluZGljYXRvclByb3BzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJ1c3lJbmRpY2F0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbmRpY2F0b3IgaXMgdmlzaWJsZVxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIElCdXN5SW5kaWNhdG9yUHJvcHNcbiAgICovXG4gIGlzQnVzeTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG1lc3NhZ2UgdG8gc2hvdyB3aGlsZSBidXN5LiBEZWZhdWx0cyB0byBlbXB0eSBzdHJpbmcuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBJQnVzeUluZGljYXRvclByb3BzXG4gICAqL1xuICBtZXNzYWdlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVHlwZSBvZiBzcGlubmVyIHRvIHVzZVxuICAgKlxuICAgKiBAdHlwZSB7Q3Jvc3NTcGlubmVyVHlwZX1cbiAgICogQG1lbWJlcm9mIElCdXN5SW5kaWNhdG9yUHJvcHNcbiAgICovXG4gIHR5cGU/OiBDcm9zc1NwaW5uZXJUeXBlIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT3B0aW9uYWwgdGVzdCBpZCB0byBhc3NpZ24gdGhpcyBjb21wb25lbnQuIERlZmF1bHQgaXMgXCIxXCJcbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQG1lbWJlcm9mIElCdXN5SW5kaWNhdG9yUHJvcHNcbiAgICovXG4gIHRlc3RJRD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIG1vZGFsIGlzIGNhbmNlbGxhYmxlLiBPdGhlcndpc2UgdmlzaWJpbGl0eSBpcyBjb250cm9sbGVkIGJ5IHtAbGluayBpc0J1c3l9XG4gICAqL1xuICBpc0NhbmNlbEJ1dHRvblZpc2libGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjYWxsYmFjayBmb3IgdXNlciBjYW5jZWwgZXZlbnQuXG4gICAqL1xuICBvbkNhbmNlbD86ICgpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBUZXh0IGZvciBjYW5jZWwgYnV0dG9uLiBEZWZhdWx0IGlzIFwiQ2FuY2VsXCJcbiAgICovXG4gIGNhbmNlbFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gc3R5bGUgZm9yIHRoZSB7QGxpbmsgY2FuY2VsVGV4dH1cbiAgICovXG4gIGNhbmNlbFRleHRTdHlsZT86IFN0eWxlUHJvcDxUZXh0U3R5bGU+IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIHN0eWxlIGZvciB0aGUgbW9kYWwgdmlld1xuICAgKi9cbiAgbW9kYWxTdHlsZT86IFN0eWxlUHJvcDxWaWV3U3R5bGU+IHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIHN0eWxlIGZvciB0aGUgaW5uZXIgdmlldywgY29udGFpbmVkIGluIHRoZSBtb2RhbFxuICAgKi9cbiAgaW5uZXJWaWV3U3R5bGU/OiBTdHlsZVByb3A8Vmlld1N0eWxlPiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbSBzdHlsZSBmb3IgdGhlIHtAbGluayBtZXNzYWdlfVxuICAgKi9cbiAgbWVzc2FnZVN0eWxlPzogU3R5bGVQcm9wPFRleHRTdHlsZT4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9wZXJ0aWVzIHRvIGNvbmZpZ3VyZSB0aGUgc3Bpbm5lclxuICAgKlxuICAgKiBTZWUge0BsaW5rIElDcm9zc1NwaW5uZXJQcm9wc31cbiAgICovXG4gIHNwaW5uZXJQcm9wcz86IElDcm9zc1NwaW5uZXJQcm9wcyB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHByb3BlcnRpZXMgdG8gY3VzdG9taXplIHRoZSBtb2RhbC4gQWxsIHByb3BzIGV4Y2VwdCBgaXNWaXNpYmxlYCBhbmQgYGNoaWxkcmVuYCBmcm9tXG4gICAqXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdC1uYXRpdmUtY29tbXVuaXR5L3JlYWN0LW5hdGl2ZS1tb2RhbCNhdmFpbGFibGUtcHJvcHNcbiAgICovXG4gIG1vZGFsUHJvcHM/OiBJTW9kYWxQcm9wcyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIERpc3BsYXlzIGEgbW9kYWwgd2l0aCBidXN5IGluZGljYXRvciAoc3Bpbm5lcikgYW5kIG1lc3NhZ2Ugd2hlbiB7QGxpbmsgSUJ1c3lJbmRpY2F0b3JQcm9wcy5pc0J1c3l9IGlzIGB0cnVlYC5cbiAqXG4gKiBQcm9wZXJ0aWVzIGFyZSB7QGxpbmsgSUJ1c3lJbmRpY2F0b3JQcm9wc30uXG4gKlxuICogQ3VzdG9taXplIHRoZSBtb2RhbCB0aHJvdWdoIHtAbGluayBJQnVzeUluZGljYXRvclByb3BzLm1vZGFsUHJvcHN9LlxuICpcbiAqIEFsc28gc3VwcG9ydHMgY2FuY2VsbGluZyB0aGUgbW9kYWwgdXNpbmcgcHJvcGVydGllc1xuICoge0BsaW5rIElCdXN5SW5kaWNhdG9yUHJvcHMuaXNDYW5jZWxCdXR0b25WaXNpYmxlfSxcbiAqIHtAbGluayBJQnVzeUluZGljYXRvclByb3BzLmNhbmNlbFRleHR9IGFuZFxuICoge0BsaW5rIElCdXN5SW5kaWNhdG9yUHJvcHMub25DYW5jZWx9LlxuICogVGhpcyBkb2VzIGhvd2V2ZXIgbm90IGhpZGUgdGhlIG1vZGFsLlxuICpcbiAqIEBleGFtcGxlIDxjYXB0aW9uPk1vZGFsIHdpdGggY2FuY2VsPC9jYXB0aW9uPlxuICogIDxDcm9zc0J1c3lJbmRpY2F0b3JcbiAqICAgICAgICAgaXNCdXN5PXt0aGlzLnN0YXRlLmlzQnVzeX1cbiAqICAgICAgICAgdHlwZT0nUGFjbWFuSW5kaWNhdG9yJ1xuICogICAgICAgICBpc0NhbmNlbEJ1dHRvblZpc2libGU9e3RydWV9XG4gKiAgICAgICAgIG1lc3NhZ2U9XCJMb2FkaW5nLi5cIlxuICogICAgICAgICBvbkNhbmNlbD17KCkgPT4gdGhpcy5zZXRTdGF0ZSh7IGlzQnVzeTogZmFsc2UgfSl9XG4gKiAgICAgICAvPlxuICpcbiAqIEBleGFtcGxlIDxjYXB0aW9uPk5vbiBjYW5jZWxsYWJsZSBhbmQgY3VzdG9tIHN0eWxlczwvY2FwdGlvbj5cbiAqICAgICAgIDxDcm9zc0J1c3lJbmRpY2F0b3JcbiAqICAgICAgICAgIHNwaW5uZXJQcm9wcz17e1xuICogICAgICAgICAgICBjb2xvcjogJ3JlZCcsXG4gKiAgICAgICAgICAgIHR5cGU6ICdXYXZlSW5kaWNhdG9yJ1xuICogICAgICAgICAgfX1cbiAqICAgICAgICAgIG1lc3NhZ2VTdHlsZT17e2NvbG9yOiAncmVkJ319XG4gKiAgICAgICAgICBpc0J1c3k9e3RoaXMuc3RhdGUuaXNCdXN5Mn1cbiAqICAgICAgICAgIGlzQ2FuY2VsQnV0dG9uVmlzaWJsZT17ZmFsc2V9XG4gKiAgICAgICAgICBtZXNzYWdlPVwiUmVzaXN0YW5jZSBpcyBmdXRpbGVcIlxuICogICAgICAgIC8+XG4gKlxuICogQGV4YW1wbGUgPGNhcHRpb24+Q3VzdG9taXplIG1vZGFsIHByb3BzPC9jYXB0aW9uPlxuICogICAgICAgPENyb3NzQnVzeUluZGljYXRvclxuICogICAgICAgICAgbW9kYWxQcm9wcz17e1xuICogICAgICAgICAgICBzd2lwZURpcmVjdGlvbjogJ3VwJyxcbiAqICAgICAgICAgICAgYmFja2Ryb3BDb2xvcjogJ2JsdWUnXG4gKiAgICAgICAgICB9fVxuICogICAgICAgICAgaXNCdXN5PXt0aGlzLnN0YXRlLmlzQnVzeTJ9XG4gKiAgICAgICAgICBpc0NhbmNlbEJ1dHRvblZpc2libGU9e2ZhbHNlfVxuICogICAgICAgICAgbWVzc2FnZT1cIkJ1c3kgYnVzeSBidXN5Li5cIlxuICogICAgICAgIC8+XG4gKi9cbmV4cG9ydCBjbGFzcyBDcm9zc0J1c3lJbmRpY2F0b3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8SUJ1c3lJbmRpY2F0b3JQcm9wcz4ge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogSUJ1c3lJbmRpY2F0b3JQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLm9uQ2FuY2VsID0gdGhpcy5vbkNhbmNlbC5iaW5kKHRoaXMpO1xuICB9XG5cbiAgb25DYW5jZWwoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLmlzQ2FuY2VsQnV0dG9uVmlzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQ2FuY2VsKCk7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VmlldyB0ZXN0SUQ9e3RoaXMucHJvcHMudGVzdElEIHx8ICcxJ30+XG4gICAgICAgIDxNb2RhbFxuICAgICAgICAgIHsuLi50aGlzLnByb3BzLm1vZGFsUHJvcHN9XG4gICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5tb2RhbFN0eWxlXG4gICAgICAgICAgICAgID8gW3N0eWxlcy5hYnNvbHV0ZUNlbnRlcmVkLCB0aGlzLnByb3BzLm1vZGFsU3R5bGVdXG4gICAgICAgICAgICAgIDogc3R5bGVzLmFic29sdXRlQ2VudGVyZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgaXNWaXNpYmxlPXt0aGlzLnByb3BzLmlzQnVzeX1cbiAgICAgICAgICBvbkRpc21pc3M9e3RoaXMub25DYW5jZWx9XG4gICAgICAgID5cbiAgICAgICAgICA8Vmlld1xuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICB0aGlzLnByb3BzLmlubmVyVmlld1N0eWxlXG4gICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5wYWRkaW5nRGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5pbm5lclZpZXdTdHlsZSxcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMucGFkZGluZ0RlZmF1bHRdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMuY29sdW1uQ29udGVudFRvcENlbnRlcl19PlxuICAgICAgICAgICAgICA8Q3Jvc3NTcGlubmVyXG4gICAgICAgICAgICAgICAgdHlwZT17dGhpcy5wcm9wcy50eXBlIHx8ICdNYXRlcmlhbEluZGljYXRvcid9XG4gICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5zcGlubmVyfVxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLnNwaW5uZXJQcm9wc31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvVmlldz5cblxuICAgICAgICAgICAgPFZpZXcgc3R5bGU9e1tzdHlsZXMuY29sdW1uQ29udGVudFRvcENlbnRlcl19PlxuICAgICAgICAgICAgICA8VGV4dCBzdHlsZT17W3N0eWxlcy50ZXh0U3Bpbm5lciwgdGhpcy5wcm9wcy5tZXNzYWdlU3R5bGVdfT5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5tZXNzYWdlIHx8ICcnfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLmlzQ2FuY2VsQnV0dG9uVmlzaWJsZSA/IChcbiAgICAgICAgICAgICAgICA8VG91Y2hhYmxlT3BhY2l0eSBvblByZXNzPXt0aGlzLm9uQ2FuY2VsfT5cbiAgICAgICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgICAgIHRlc3RJRD0nY2FuY2VsVGV4dCdcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1tcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZXMudGV4dFNwaW5uZXIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjb2xvcjogQ29sb3JzLkNhbmNlbEJ1dHRvbiB9LFxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY2FuY2VsVGV4dFN0eWxlLFxuICAgICAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5jYW5jZWxUZXh0IHx8ICdDYW5jZWwnfVxuICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgIDwvVG91Y2hhYmxlT3BhY2l0eT5cbiAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8L1ZpZXc+XG4gICAgICAgICAgPC9WaWV3PlxuICAgICAgICA8L01vZGFsPlxuICAgICAgPC9WaWV3PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ3Jvc3NCdXN5SW5kaWNhdG9yO1xuIl0sInZlcnNpb24iOjN9