{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nvar _jsxFileName = \"/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-modal-datetime-picker/src/CustomDatePickerIOS.js\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { DatePickerIOS } from \"react-native-web/dist/index\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport Text from \"react-native-web/dist/exports/Text\";\nimport TouchableHighlight from \"react-native-web/dist/exports/TouchableHighlight\";\nimport View from \"react-native-web/dist/exports/View\";\nimport ReactNativeModal from \"react-native-modal\";\nimport { isIphoneX } from \"./utils\";\n\nvar CustomDatePickerIOS = function (_React$PureComponent) {\n  _inherits(CustomDatePickerIOS, _React$PureComponent);\n\n  var _super = _createSuper(CustomDatePickerIOS);\n\n  function CustomDatePickerIOS() {\n    var _this;\n\n    _classCallCheck(this, CustomDatePickerIOS);\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    _this = _super.call.apply(_super, [this].concat(args));\n    _this.state = {\n      date: _this.props.date,\n      userIsInteractingWithPicker: false,\n      minuteInterval: _this.props.minuteInterval || 1\n    };\n\n    _this.handleCancel = function () {\n      _this.confirmed = false;\n\n      _this.props.onCancel();\n\n      _this.resetDate();\n    };\n\n    _this.handleConfirm = function () {\n      _this.confirmed = true;\n\n      _this.props.onConfirm(_this.state.date);\n\n      _this.resetDate();\n    };\n\n    _this.resetDate = function () {\n      _this.setState({\n        date: _this.props.date\n      });\n    };\n\n    _this.handleModalShow = function () {\n      _this.setState({\n        minuteInterval: _this.props.minuteInterval\n      });\n    };\n\n    _this.handleModalHide = function () {\n      if (_this.confirmed) {\n        _this.props.onHideAfterConfirm(_this.state.date);\n      }\n    };\n\n    _this.handleDateChange = function (date) {\n      _this.setState({\n        date: date,\n        userIsInteractingWithPicker: false\n      });\n\n      _this.props.onDateChange(date);\n    };\n\n    _this.handleUserTouchInit = function () {\n      if (!_this.props.customDatePickerIOS) {\n        _this.setState({\n          userIsInteractingWithPicker: true\n        });\n      }\n\n      return false;\n    };\n\n    return _this;\n  }\n\n  _createClass(CustomDatePickerIOS, [{\n    key: \"componentWillReceiveProps\",\n    value: function componentWillReceiveProps(nextProps) {\n      if (this.props.date.valueOf() !== nextProps.date.valueOf()) {\n        this.setState({\n          date: nextProps.date\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n          cancelTextIOS = _this$props.cancelTextIOS,\n          cancelTextStyle = _this$props.cancelTextStyle,\n          confirmTextIOS = _this$props.confirmTextIOS,\n          confirmTextStyle = _this$props.confirmTextStyle,\n          contentContainerStyleIOS = _this$props.contentContainerStyleIOS,\n          cancelButtonContainerStyleIOS = _this$props.cancelButtonContainerStyleIOS,\n          customCancelButtonIOS = _this$props.customCancelButtonIOS,\n          customConfirmButtonIOS = _this$props.customConfirmButtonIOS,\n          customConfirmButtonWhileInteractingIOS = _this$props.customConfirmButtonWhileInteractingIOS,\n          customDatePickerIOS = _this$props.customDatePickerIOS,\n          customTitleContainerIOS = _this$props.customTitleContainerIOS,\n          datePickerContainerStyleIOS = _this$props.datePickerContainerStyleIOS,\n          dismissOnBackdropPressIOS = _this$props.dismissOnBackdropPressIOS,\n          hideTitleContainerIOS = _this$props.hideTitleContainerIOS,\n          isDarkModeEnabled = _this$props.isDarkModeEnabled,\n          isVisible = _this$props.isVisible,\n          minuteInterval = _this$props.minuteInterval,\n          mode = _this$props.mode,\n          neverDisableConfirmIOS = _this$props.neverDisableConfirmIOS,\n          pickerRefCb = _this$props.pickerRefCb,\n          reactNativeModalPropsIOS = _this$props.reactNativeModalPropsIOS,\n          titleIOS = _this$props.titleIOS,\n          titleStyle = _this$props.titleStyle,\n          otherProps = _objectWithoutProperties(_this$props, [\"cancelTextIOS\", \"cancelTextStyle\", \"confirmTextIOS\", \"confirmTextStyle\", \"contentContainerStyleIOS\", \"cancelButtonContainerStyleIOS\", \"customCancelButtonIOS\", \"customConfirmButtonIOS\", \"customConfirmButtonWhileInteractingIOS\", \"customDatePickerIOS\", \"customTitleContainerIOS\", \"datePickerContainerStyleIOS\", \"dismissOnBackdropPressIOS\", \"hideTitleContainerIOS\", \"isDarkModeEnabled\", \"isVisible\", \"minuteInterval\", \"mode\", \"neverDisableConfirmIOS\", \"pickerRefCb\", \"reactNativeModalPropsIOS\", \"titleIOS\", \"titleStyle\"]);\n\n      var titleContainer = React.createElement(View, {\n        style: styles.titleContainer\n      }, React.createElement(Text, {\n        style: [styles.title, titleStyle]\n      }, titleIOS));\n      var confirmButton;\n\n      if (customConfirmButtonIOS) {\n        if (customConfirmButtonWhileInteractingIOS && this.state.userIsInteractingWithPicker) {\n          confirmButton = customConfirmButtonWhileInteractingIOS;\n        } else {\n          confirmButton = customConfirmButtonIOS;\n        }\n      } else {\n        confirmButton = React.createElement(Text, {\n          style: [styles.confirmText, confirmTextStyle]\n        }, confirmTextIOS);\n      }\n\n      var cancelButton = React.createElement(Text, {\n        style: [styles.cancelText, cancelTextStyle]\n      }, cancelTextIOS);\n      var DatePickerComponent = customDatePickerIOS || DatePickerIOS;\n\n      var reactNativeModalProps = _objectSpread({\n        onBackdropPress: dismissOnBackdropPressIOS ? this.handleCancel : function () {\n          return null;\n        }\n      }, reactNativeModalPropsIOS);\n\n      var backgroundColor = isDarkModeEnabled ? BACKGROUND_COLOR_DARK : BACKGROUND_COLOR_LIGHT;\n      return React.createElement(ReactNativeModal, _extends({\n        isVisible: isVisible,\n        style: [styles.contentContainer, contentContainerStyleIOS],\n        onModalHide: this.handleModalHide,\n        onModalShow: this.handleModalShow,\n        backdropOpacity: 0.4\n      }, reactNativeModalProps), React.createElement(View, {\n        style: [styles.datepickerContainer, {\n          backgroundColor: backgroundColor\n        }, datePickerContainerStyleIOS]\n      }, !hideTitleContainerIOS && (customTitleContainerIOS || titleContainer), React.createElement(View, {\n        onStartShouldSetResponderCapture: neverDisableConfirmIOS !== true ? this.handleUserTouchInit : null\n      }, React.createElement(DatePickerComponent, _extends({\n        ref: pickerRefCb,\n        mode: mode,\n        minuteInterval: this.state.minuteInterval\n      }, otherProps, {\n        date: this.state.date,\n        onDateChange: this.handleDateChange\n      }))), React.createElement(TouchableHighlight, {\n        style: styles.confirmButton,\n        underlayColor: HIGHLIGHT_COLOR,\n        onPress: this.handleConfirm,\n        disabled: !neverDisableConfirmIOS && this.state.userIsInteractingWithPicker\n      }, confirmButton)), React.createElement(TouchableHighlight, {\n        style: [styles.cancelButton, {\n          backgroundColor: backgroundColor\n        }, cancelButtonContainerStyleIOS],\n        underlayColor: HIGHLIGHT_COLOR,\n        onPress: this.handleCancel\n      }, customCancelButtonIOS || cancelButton));\n    }\n  }]);\n\n  return CustomDatePickerIOS;\n}(React.PureComponent);\n\nCustomDatePickerIOS.propTypes = {\n  cancelTextIOS: PropTypes.string,\n  cancelTextStyle: PropTypes.any,\n  confirmTextIOS: PropTypes.string,\n  confirmTextStyle: PropTypes.any,\n  contentContainerStyleIOS: PropTypes.any,\n  cancelButtonContainerStyleIOS: PropTypes.any,\n  customCancelButtonIOS: PropTypes.node,\n  customConfirmButtonIOS: PropTypes.node,\n  customConfirmButtonWhileInteractingIOS: PropTypes.node,\n  customDatePickerIOS: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n  customTitleContainerIOS: PropTypes.node,\n  dismissOnBackdropPressIOS: PropTypes.bool,\n  hideTitleContainerIOS: PropTypes.bool,\n  isDarkModeEnabled: PropTypes.bool,\n  isVisible: PropTypes.bool,\n  date: PropTypes.instanceOf(Date),\n  datePickerContainerStyleIOS: PropTypes.any,\n  mode: PropTypes.oneOf([\"date\", \"time\", \"datetime\"]),\n  neverDisableConfirmIOS: PropTypes.bool,\n  onCancel: PropTypes.func.isRequired,\n  onConfirm: PropTypes.func.isRequired,\n  onDateChange: PropTypes.func,\n  onHideAfterConfirm: PropTypes.func,\n  pickerRefCb: PropTypes.func,\n  reactNativeModalPropsIOS: PropTypes.any,\n  titleIOS: PropTypes.string,\n  titleStyle: PropTypes.any\n};\nCustomDatePickerIOS.defaultProps = {\n  cancelTextIOS: \"Cancel\",\n  confirmTextIOS: \"Confirm\",\n  date: new Date(),\n  dismissOnBackdropPressIOS: true,\n  hideTitleContainerIOS: false,\n  isDarkModeEnabled: false,\n  isVisible: false,\n  mode: \"date\",\n  neverDisableConfirmIOS: false,\n  onHideAfterConfirm: function onHideAfterConfirm() {},\n  onDateChange: function onDateChange() {},\n  reactNativeModalPropsIOS: {},\n  titleIOS: \"Pick a date\"\n};\nexport { CustomDatePickerIOS as default };\nvar BORDER_RADIUS = 13;\nvar BACKGROUND_COLOR_LIGHT = \"white\";\nvar BACKGROUND_COLOR_DARK = \"#0E0E0E\";\nvar BORDER_COLOR = \"#d5d5d5\";\nvar TITLE_FONT_SIZE = 13;\nvar TITLE_COLOR = \"#8f8f8f\";\nvar BUTTON_FONT_WEIGHT = \"normal\";\nvar BUTTON_FONT_COLOR = \"#007ff9\";\nvar BUTTON_FONT_SIZE = 20;\nvar HIGHLIGHT_COLOR = \"#ebebeb\";\nvar styles = StyleSheet.create({\n  contentContainer: {\n    justifyContent: \"flex-end\",\n    margin: 10\n  },\n  datepickerContainer: {\n    borderRadius: BORDER_RADIUS,\n    marginBottom: 8,\n    overflow: \"hidden\"\n  },\n  titleContainer: {\n    borderBottomColor: BORDER_COLOR,\n    borderBottomWidth: StyleSheet.hairlineWidth,\n    padding: 14,\n    backgroundColor: \"transparent\"\n  },\n  title: {\n    textAlign: \"center\",\n    color: TITLE_COLOR,\n    fontSize: TITLE_FONT_SIZE\n  },\n  confirmButton: {\n    borderColor: BORDER_COLOR,\n    borderTopWidth: StyleSheet.hairlineWidth,\n    backgroundColor: \"transparent\",\n    height: 57,\n    justifyContent: \"center\"\n  },\n  confirmText: {\n    textAlign: \"center\",\n    color: BUTTON_FONT_COLOR,\n    fontSize: BUTTON_FONT_SIZE,\n    fontWeight: BUTTON_FONT_WEIGHT,\n    backgroundColor: \"transparent\"\n  },\n  cancelButton: {\n    borderRadius: BORDER_RADIUS,\n    height: 57,\n    marginBottom: isIphoneX() ? 20 : 0,\n    justifyContent: \"center\"\n  },\n  cancelText: {\n    padding: 10,\n    textAlign: \"center\",\n    color: BUTTON_FONT_COLOR,\n    fontSize: BUTTON_FONT_SIZE,\n    fontWeight: \"600\",\n    backgroundColor: \"transparent\"\n  }\n});","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-modal-datetime-picker/src/CustomDatePickerIOS.js"],"names":["React","PropTypes","DatePickerIOS","ReactNativeModal","isIphoneX","CustomDatePickerIOS","state","date","props","userIsInteractingWithPicker","minuteInterval","handleCancel","confirmed","onCancel","resetDate","handleConfirm","onConfirm","setState","handleModalShow","handleModalHide","onHideAfterConfirm","handleDateChange","onDateChange","handleUserTouchInit","customDatePickerIOS","nextProps","valueOf","cancelTextIOS","cancelTextStyle","confirmTextIOS","confirmTextStyle","contentContainerStyleIOS","cancelButtonContainerStyleIOS","customCancelButtonIOS","customConfirmButtonIOS","customConfirmButtonWhileInteractingIOS","customTitleContainerIOS","datePickerContainerStyleIOS","dismissOnBackdropPressIOS","hideTitleContainerIOS","isDarkModeEnabled","isVisible","mode","neverDisableConfirmIOS","pickerRefCb","reactNativeModalPropsIOS","titleIOS","titleStyle","otherProps","titleContainer","styles","title","confirmButton","confirmText","cancelButton","cancelText","DatePickerComponent","reactNativeModalProps","onBackdropPress","backgroundColor","BACKGROUND_COLOR_DARK","BACKGROUND_COLOR_LIGHT","contentContainer","datepickerContainer","HIGHLIGHT_COLOR","PureComponent","propTypes","string","any","node","oneOfType","func","bool","instanceOf","Date","oneOf","isRequired","defaultProps","BORDER_RADIUS","BORDER_COLOR","TITLE_FONT_SIZE","TITLE_COLOR","BUTTON_FONT_WEIGHT","BUTTON_FONT_COLOR","BUTTON_FONT_SIZE","StyleSheet","create","justifyContent","margin","borderRadius","marginBottom","overflow","borderBottomColor","borderBottomWidth","hairlineWidth","padding","textAlign","color","fontSize","borderColor","borderTopWidth","height","fontWeight"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n  DatePickerIOS,\n  StyleSheet,\n  Text,\n  TouchableHighlight,\n  View\n} from \"react-native\";\nimport ReactNativeModal from \"react-native-modal\";\nimport { isIphoneX } from \"./utils\";\n\nexport default class CustomDatePickerIOS extends React.PureComponent {\n  static propTypes = {\n    cancelTextIOS: PropTypes.string,\n    cancelTextStyle: PropTypes.any,\n    confirmTextIOS: PropTypes.string,\n    confirmTextStyle: PropTypes.any,\n    contentContainerStyleIOS: PropTypes.any,\n    cancelButtonContainerStyleIOS: PropTypes.any,\n    customCancelButtonIOS: PropTypes.node,\n    customConfirmButtonIOS: PropTypes.node,\n    customConfirmButtonWhileInteractingIOS: PropTypes.node,\n    customDatePickerIOS: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n    customTitleContainerIOS: PropTypes.node,\n    dismissOnBackdropPressIOS: PropTypes.bool,\n    hideTitleContainerIOS: PropTypes.bool,\n    isDarkModeEnabled: PropTypes.bool,\n    isVisible: PropTypes.bool,\n    date: PropTypes.instanceOf(Date),\n    datePickerContainerStyleIOS: PropTypes.any,\n    mode: PropTypes.oneOf([\"date\", \"time\", \"datetime\"]),\n    neverDisableConfirmIOS: PropTypes.bool,\n    onCancel: PropTypes.func.isRequired,\n    onConfirm: PropTypes.func.isRequired,\n    onDateChange: PropTypes.func,\n    onHideAfterConfirm: PropTypes.func,\n    pickerRefCb: PropTypes.func,\n    reactNativeModalPropsIOS: PropTypes.any,\n    titleIOS: PropTypes.string,\n    titleStyle: PropTypes.any\n  };\n\n  static defaultProps = {\n    cancelTextIOS: \"Cancel\",\n    confirmTextIOS: \"Confirm\",\n    date: new Date(),\n    dismissOnBackdropPressIOS: true,\n    hideTitleContainerIOS: false,\n    isDarkModeEnabled: false,\n    isVisible: false,\n    mode: \"date\",\n    neverDisableConfirmIOS: false,\n    onHideAfterConfirm: () => {},\n    onDateChange: () => {},\n    reactNativeModalPropsIOS: {},\n    titleIOS: \"Pick a date\"\n  };\n\n  state = {\n    date: this.props.date,\n    userIsInteractingWithPicker: false,\n    minuteInterval: this.props.minuteInterval || 1\n  };\n\n  componentWillReceiveProps(nextProps) {\n    if (this.props.date.valueOf() !== nextProps.date.valueOf()) {\n      this.setState({\n        date: nextProps.date\n      });\n    }\n  }\n\n  handleCancel = () => {\n    this.confirmed = false;\n    this.props.onCancel();\n    this.resetDate();\n  };\n\n  handleConfirm = () => {\n    this.confirmed = true;\n    this.props.onConfirm(this.state.date);\n    this.resetDate();\n  };\n\n  resetDate = () => {\n    this.setState({\n      date: this.props.date\n    });\n  };\n\n  handleModalShow = () => {\n    this.setState({ minuteInterval: this.props.minuteInterval });\n  };\n\n  handleModalHide = () => {\n    if (this.confirmed) {\n      this.props.onHideAfterConfirm(this.state.date);\n    }\n  };\n\n  handleDateChange = date => {\n    this.setState({\n      date,\n      userIsInteractingWithPicker: false\n    });\n    this.props.onDateChange(date);\n  };\n\n  handleUserTouchInit = () => {\n    // custom date picker shouldn't change this param\n    if (!this.props.customDatePickerIOS) {\n      this.setState({\n        userIsInteractingWithPicker: true\n      });\n    }\n    return false;\n  };\n\n  render() {\n    const {\n      cancelTextIOS,\n      cancelTextStyle,\n      confirmTextIOS,\n      confirmTextStyle,\n      contentContainerStyleIOS,\n      cancelButtonContainerStyleIOS,\n      customCancelButtonIOS,\n      customConfirmButtonIOS,\n      customConfirmButtonWhileInteractingIOS,\n      customDatePickerIOS,\n      customTitleContainerIOS,\n      datePickerContainerStyleIOS,\n      dismissOnBackdropPressIOS,\n      hideTitleContainerIOS,\n      isDarkModeEnabled,\n      isVisible,\n      minuteInterval,\n      mode,\n      neverDisableConfirmIOS,\n      pickerRefCb,\n      reactNativeModalPropsIOS,\n      titleIOS,\n      titleStyle,\n      ...otherProps\n    } = this.props;\n\n    const titleContainer = (\n      <View style={styles.titleContainer}>\n        <Text style={[styles.title, titleStyle]}>{titleIOS}</Text>\n      </View>\n    );\n    let confirmButton;\n\n    // Interested PR: https://github.com/mmazzarolo/react-native-modal-datetime-picker/pull/40\n    // Issue on React-Native: https://github.com/facebook/react-native/issues/8169\n    // Up until now when the user interacted with the picker, if he tapped on the confirm button,\n    // the state was not yet changed and thus the picked value would be old and miss-leading.\n    // DatePickerIOS does not update on the fly, and before it even manages to dispatch an update,\n    // our component is unmounted and thus the state is lost.\n    // We no longer allow our user to tap the confirm button unless the picker is still.\n    // They can always tap the cancel button anyway.\n    if (customConfirmButtonIOS) {\n      if (\n        customConfirmButtonWhileInteractingIOS &&\n        this.state.userIsInteractingWithPicker\n      ) {\n        confirmButton = customConfirmButtonWhileInteractingIOS;\n      } else {\n        confirmButton = customConfirmButtonIOS;\n      }\n    } else {\n      confirmButton = (\n        <Text style={[styles.confirmText, confirmTextStyle]}>\n          {confirmTextIOS}\n        </Text>\n      );\n    }\n    const cancelButton = (\n      <Text style={[styles.cancelText, cancelTextStyle]}>{cancelTextIOS}</Text>\n    );\n    const DatePickerComponent = customDatePickerIOS || DatePickerIOS;\n\n    const reactNativeModalProps = {\n      onBackdropPress: dismissOnBackdropPressIOS\n        ? this.handleCancel\n        : () => null,\n      ...reactNativeModalPropsIOS\n    };\n\n    const backgroundColor = isDarkModeEnabled ? BACKGROUND_COLOR_DARK : BACKGROUND_COLOR_LIGHT;\n\n    return (\n      <ReactNativeModal\n        isVisible={isVisible}\n        style={[styles.contentContainer, contentContainerStyleIOS]}\n        onModalHide={this.handleModalHide}\n        onModalShow={this.handleModalShow}\n        backdropOpacity={0.4}\n        {...reactNativeModalProps}\n      >\n        <View style={[styles.datepickerContainer, { backgroundColor }, datePickerContainerStyleIOS]}>\n          {!hideTitleContainerIOS &&\n            (customTitleContainerIOS || titleContainer)}\n          <View\n            onStartShouldSetResponderCapture={\n              neverDisableConfirmIOS !== true ? this.handleUserTouchInit : null\n            }\n          >\n            <DatePickerComponent\n              ref={pickerRefCb}\n              mode={mode}\n              minuteInterval={this.state.minuteInterval}\n              {...otherProps}\n              date={this.state.date}\n              onDateChange={this.handleDateChange}\n            />\n          </View>\n          <TouchableHighlight\n            style={styles.confirmButton}\n            underlayColor={HIGHLIGHT_COLOR}\n            onPress={this.handleConfirm}\n            disabled={\n              !neverDisableConfirmIOS && this.state.userIsInteractingWithPicker\n            }\n          >\n            {confirmButton}\n          </TouchableHighlight>\n        </View>\n\n        <TouchableHighlight\n          style={[styles.cancelButton, { backgroundColor }, cancelButtonContainerStyleIOS]}\n          underlayColor={HIGHLIGHT_COLOR}\n          onPress={this.handleCancel}\n        >\n          {customCancelButtonIOS || cancelButton}\n        </TouchableHighlight>\n      </ReactNativeModal>\n    );\n  }\n}\n\nconst BORDER_RADIUS = 13;\nconst BACKGROUND_COLOR_LIGHT = \"white\";\nconst BACKGROUND_COLOR_DARK = \"#0E0E0E\";\nconst BORDER_COLOR = \"#d5d5d5\";\nconst TITLE_FONT_SIZE = 13;\nconst TITLE_COLOR = \"#8f8f8f\";\nconst BUTTON_FONT_WEIGHT = \"normal\";\nconst BUTTON_FONT_COLOR = \"#007ff9\";\nconst BUTTON_FONT_SIZE = 20;\nconst HIGHLIGHT_COLOR = \"#ebebeb\";\n\nconst styles = StyleSheet.create({\n  contentContainer: {\n    justifyContent: \"flex-end\",\n    margin: 10\n  },\n  datepickerContainer: {\n    borderRadius: BORDER_RADIUS,\n    marginBottom: 8,\n    overflow: \"hidden\"\n  },\n  titleContainer: {\n    borderBottomColor: BORDER_COLOR,\n    borderBottomWidth: StyleSheet.hairlineWidth,\n    padding: 14,\n    backgroundColor: \"transparent\"\n  },\n  title: {\n    textAlign: \"center\",\n    color: TITLE_COLOR,\n    fontSize: TITLE_FONT_SIZE\n  },\n  confirmButton: {\n    borderColor: BORDER_COLOR,\n    borderTopWidth: StyleSheet.hairlineWidth,\n    backgroundColor: \"transparent\",\n    height: 57,\n    justifyContent: \"center\"\n  },\n  confirmText: {\n    textAlign: \"center\",\n    color: BUTTON_FONT_COLOR,\n    fontSize: BUTTON_FONT_SIZE,\n    fontWeight: BUTTON_FONT_WEIGHT,\n    backgroundColor: \"transparent\"\n  },\n  cancelButton: {\n    borderRadius: BORDER_RADIUS,\n    height: 57,\n    marginBottom: isIphoneX() ? 20 : 0,\n    justifyContent: \"center\"\n  },\n  cancelText: {\n    padding: 10,\n    textAlign: \"center\",\n    color: BUTTON_FONT_COLOR,\n    fontSize: BUTTON_FONT_SIZE,\n    fontWeight: \"600\",\n    backgroundColor: \"transparent\"\n  }\n});\n"]},"metadata":{},"sourceType":"module"}