{"version":3,"file":"Modal-ImZyE3fC.js","sources":["../../Client/legacy/Components/Modals/Modal.tsx"],"sourcesContent":["import { ProductLine } from '@business/CommonSets';\r\nimport * as Models from '@shared/Models';\r\nimport * as Validations from '@shared/Validations';\r\nimport * as React from 'react';\r\nimport { Col, ControlLabel, FormControl, FormGroup, Modal, Row } from 'react-bootstrap';\r\nimport { LoadingButton } from '../../FormFields';\r\n\r\nexport enum ModalSize {\r\n Tiny = 'modal-tiny-cp',\r\n Small = 'modal-small-cp',\r\n Medium = 'modal-medium-cp',\r\n Large = 'modal-large-cp',\r\n Full = 'modal-full-cp',\r\n}\r\n\r\ntype ModalProps = {\r\n id: string;\r\n size: ModalSize;\r\n visible: boolean;\r\n\r\n className?: string;\r\n title?: string;\r\n titleIcon?: string;\r\n subtitle?: string;\r\n message?: string;\r\n\r\n hideButtons?: boolean;\r\n\r\n cancelText?: string;\r\n cancelFunction?: () => void;\r\n\r\n okText?: string;\r\n okFunction?: (x?: Models.IEmailQuoteInfo) => void;\r\n okLoading?: boolean;\r\n\r\n continueFunction?: Function;\r\n purchaseSuccessDetails?: Models.IPurchaseSuccessModalDetails;\r\n\r\n x?: boolean;\r\n hideOnClick?: boolean;\r\n keyboard?: boolean;\r\n nested?: boolean;\r\n} & React.PropsWithChildren;\r\n\r\ninterface IHubModalState {\r\n name: string;\r\n email: string;\r\n phone: string;\r\n}\r\n\r\n/**\r\n * @deprecated The HubModal class is deprecated. Use @webkit/index's Modal component for new development.\r\n */\r\nexport class HubModal extends React.Component<ModalProps, IHubModalState> {\r\n constructor(props: ModalProps) {\r\n super(props);\r\n\r\n this.state = {\r\n name: '',\r\n email: '',\r\n phone: '',\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n <div className='container' id={this.props.id}>\r\n <Modal\r\n show={this.props.visible}\r\n onHide={() => this.onCancel()}\r\n dialogClassName={`${this.props.className} ${this.props.size}`}\r\n >\r\n {this.props.x ? (\r\n <div\r\n id='hubCloseModalIcon'\r\n className='hub-close-icon-bs close confirm-close-icon-bs'\r\n onClick={() => this.onContinue()}\r\n >\r\n ×\r\n </div>\r\n ) : (\r\n ''\r\n )}\r\n {this.props.purchaseSuccessDetails && (\r\n <div className='modal-success-section-md'>\r\n <Row className='container modal-success-text-container-ly'>\r\n <Col xs={1} className={'glyphicon glyphicon-ok hub-modal-check-bs'}></Col>\r\n <Col xs={10} className='modal-success-purchase-blurb-bs'>\r\n <p>\r\n <span className='modal-success-purchase-span-bs'>\r\n Swyfft Policy Purchased!{' '}\r\n </span>\r\n Your policy is being sent to your email{' '}\r\n {this.props.purchaseSuccessDetails\r\n ? this.props.purchaseSuccessDetails.email\r\n : ''}\r\n . Full coverage starts on{' '}\r\n {this.props.purchaseSuccessDetails\r\n ? this.props.purchaseSuccessDetails.startDate\r\n : ''}\r\n .\r\n </p>\r\n </Col>\r\n </Row>\r\n </div>\r\n )}\r\n <div className='modal-body header container' id='hubEmailModal'>\r\n {this.props.purchaseSuccessDetails && (\r\n <Row>\r\n <Col xs={5} xsOffset={3} mdOffset={4}>\r\n <div className='hub-modal-img-container-md'>\r\n <img\r\n src={'/images/hub-purchase-logo.png'}\r\n className='hub-modal-header-img-md'\r\n alt='Hub'\r\n />\r\n </div>\r\n </Col>\r\n </Row>\r\n )}\r\n <Row>\r\n <Col xs={12}>\r\n <h4 className='modal-title'>{this.props.title}</h4>\r\n </Col>\r\n </Row>\r\n </div>\r\n <div className='modal-body container'>\r\n <Row>\r\n <Col xs={12}>\r\n <h5 className='hub-message-md'>\r\n We recommend you get the most out of your home insurance policy by speaking with a{' '}\r\n <span className='modal-broker-line-bs'>HUB Broker.</span> Once you click the button\r\n below a HUB specialist will automatically get a copy of the quote you just created\r\n and will reach out to you!\r\n </h5>\r\n </Col>\r\n </Row>\r\n </div>\r\n <div className='modal-body container'>\r\n <Row>\r\n <Col xs={12}>\r\n <FormGroup controlId='nameInputHub' validationState={this.validateField('name')}>\r\n <ControlLabel className={'input-field-label-md '}>Your Name</ControlLabel>\r\n <FormControl\r\n ref={c => {\r\n (this as any).formControl = c;\r\n }}\r\n value={this.state.name}\r\n onChange={event => {\r\n let target = event.target as any;\r\n this.setState({\r\n name: target.value,\r\n });\r\n }}\r\n placeholder='your name'\r\n className={'input-field-md input-field-st'}\r\n id={'hubNameTxtBox'}\r\n type='text'\r\n />\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col xs={12} md={6}>\r\n <FormGroup controlId='emailInputHub' validationState={this.validateField('email')}>\r\n <ControlLabel className={'input-field-label-md '}>Email</ControlLabel>\r\n <FormControl\r\n ref={c => {\r\n (this as any).formControl = c;\r\n }}\r\n value={this.state.email}\r\n onChange={event => {\r\n let target = event.target as any;\r\n this.setState({\r\n email: target.value,\r\n });\r\n }}\r\n placeholder='your email'\r\n className={'input-field-md input-field-st'}\r\n id={'hubEmailTxtBox'}\r\n type='text'\r\n />\r\n </FormGroup>\r\n </Col>\r\n <Col xs={12} md={6}>\r\n <FormGroup controlId='phoneInputHub' validationState={this.validateField('phone')}>\r\n <ControlLabel className={'input-field-label-md '}>Phone</ControlLabel>\r\n <FormControl\r\n ref={c => {\r\n (this as any).formControl = c;\r\n }}\r\n value={this.state.phone}\r\n onChange={event => {\r\n let target = event.target as any;\r\n this.setState({\r\n phone: target.value,\r\n });\r\n }}\r\n placeholder='your phone number'\r\n className={'input-field-md input-field-st'}\r\n id={'hubPhoneTxtBox'}\r\n type='text'\r\n />\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col xs={12} md={6} mdOffset={3}>\r\n <button\r\n type='button'\r\n className='hub-ok-btn-md btn btn-default'\r\n id='emailHubBrokerModalButton'\r\n onClick={() => this.onOK()}\r\n >\r\n {this.props.okText}\r\n </button>\r\n </Col>\r\n </Row>\r\n </div>\r\n </Modal>\r\n </div>\r\n );\r\n }\r\n\r\n validateField(inputFieldName: string) {\r\n switch (inputFieldName) {\r\n case 'name':\r\n const nameValue = this.state.name;\r\n //prevents error styling from appearing after component is first mounted.\r\n if (nameValue.length === 0) return undefined;\r\n return Validations.validateField(nameValue) ? 'success' : 'error';\r\n case 'email':\r\n const emailValue = this.state.email;\r\n //prevents error styling from appearing after component is first mounted.\r\n if (emailValue.length === 0) return undefined;\r\n return Validations.validateEmail(emailValue) ? 'success' : 'error';\r\n case 'phone':\r\n const phoneValue = this.state.phone;\r\n return Validations.validateOptionalPhoneNumber(phoneValue) ? 'success' : 'error';\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n onCancel() {\r\n if (this.props.cancelFunction) this.props.cancelFunction();\r\n }\r\n\r\n onOK() {\r\n const emailRequest = this.getEmailRequest();\r\n if (this.props.okFunction) this.props.okFunction(emailRequest);\r\n }\r\n\r\n onContinue() {\r\n if (this.props.continueFunction) this.props.continueFunction();\r\n }\r\n\r\n getEmailRequest() {\r\n let emailRequest: Models.IEmailQuoteInfo = {\r\n Email: this.state.email,\r\n Phone: this.state.phone,\r\n Name: this.state.name,\r\n ProductLineId: ProductLine.Homeowner.key,\r\n };\r\n\r\n return emailRequest;\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated The SwyfftModal class is deprecated. Use @webkit/index's Modal component for new development.\r\n */\r\nexport class SwyfftModal extends React.Component<ModalProps, {}> {\r\n render() {\r\n let backdrop: string | boolean | undefined;\r\n let keyboard: boolean | undefined;\r\n\r\n if (this.props.hideOnClick !== undefined) {\r\n backdrop = this.props.hideOnClick ? true : 'static';\r\n }\r\n\r\n if (this.props.keyboard !== undefined) {\r\n keyboard = this.props.keyboard;\r\n }\r\n\r\n return (\r\n <div id={this.props.id}>\r\n <Modal\r\n show={this.props.visible}\r\n onHide={() => this.onCancel()}\r\n dialogClassName={`${this.props.className} ${this.props.size}`}\r\n backdrop={backdrop}\r\n keyboard={keyboard}\r\n >\r\n {this.props.x ? (\r\n <div className='x' id='alert-close-btn' onClick={() => this.onCancel()}>\r\n ×\r\n </div>\r\n ) : (\r\n ''\r\n )}\r\n <div className='modal-body header container'>\r\n <Row>\r\n <Col sm={12}>\r\n <h4 className='modal-title'>\r\n {this.props.titleIcon === 'exclamation' ? (\r\n <div className='modal-title-icon'>\r\n <span>!</span>\r\n </div>\r\n ) : (\r\n ''\r\n )}\r\n {this.props.title}\r\n </h4>\r\n </Col>\r\n </Row>\r\n </div>\r\n <div className='modal-body container'>\r\n <Row>\r\n <Col sm={12}>\r\n <h5 className='modal-body-message'>{this.props.message}</h5>\r\n </Col>\r\n </Row>\r\n </div>\r\n {this.props.children ? (\r\n <div className='modal-body container no-padding'>{this.props.children}</div>\r\n ) : (\r\n <></>\r\n )}\r\n {this.props.hideButtons || false ? null : (\r\n <div className='modal-body container'>\r\n <Row>\r\n <Col xs={12} sm={6}>\r\n {this.props.cancelText ? (\r\n <button\r\n type='button'\r\n className='cancel-button btn btn-quote'\r\n onClick={() => this.onCancel()}\r\n >\r\n {this.props.cancelText}\r\n </button>\r\n ) : undefined}\r\n </Col>\r\n <Col xs={12} sm={6}>\r\n <LoadingButton\r\n type='button'\r\n className='ok-button btn btn-default'\r\n onClick={() => this.onOK()}\r\n label={this.props.okText || ''}\r\n loading={this.props.okLoading || false}\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )}\r\n </Modal>\r\n </div>\r\n );\r\n }\r\n\r\n onCancel() {\r\n if (this.props.cancelFunction) this.props.cancelFunction();\r\n }\r\n\r\n onOK() {\r\n if (this.props.okFunction) this.props.okFunction();\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated The NewSwyfftModal class is deprecated. Use @webkit/index's Modal component for new development.\r\n */\r\nexport class NewSwyfftModal extends React.Component<ModalProps, {}> {\r\n render() {\r\n return (\r\n <div>\r\n <Modal\r\n id={this.props.id}\r\n show={this.props.visible}\r\n onHide={() => this.onCancel()}\r\n className={this.props.nested ? 'modal-nested' : ''}\r\n backdropClassName={`modal-backdrop ${this.props.nested && 'modal-backdrop-nested'}`}\r\n dialogClassName={`swyfft-modal-md ${this.props.className} ${this.props.size}`}\r\n backdrop={!!this.props.hideOnClick ? true : 'static'}\r\n >\r\n {this.props.x && (\r\n <div className='x' onClick={() => this.onCancel()}>\r\n ×\r\n </div>\r\n )}\r\n {this.props.title && (\r\n <div className='modal-body header container-fluid'>\r\n <Row>\r\n <Col sm={12}>\r\n <h4 className='modal-title'>\r\n {this.props.titleIcon === 'exclamation' && (\r\n <div className='modal-title-icon'>\r\n <span>!</span>\r\n </div>\r\n )}\r\n {this.props.title}\r\n </h4>\r\n {this.props.subtitle && <h6 className='modal-subtitle'>{this.props.subtitle}</h6>}\r\n </Col>\r\n </Row>\r\n </div>\r\n )}\r\n {this.props.message && (\r\n <div className='modal-body container-fluid'>\r\n <Row>\r\n <Col sm={12}>\r\n <h5 className='modal-body-message'>{this.props.message}</h5>\r\n </Col>\r\n </Row>\r\n </div>\r\n )}\r\n {this.props.children ? (\r\n <div className='modal-body container-fluid no-padding modal-children'>\r\n {this.props.children}\r\n </div>\r\n ) : (\r\n <></>\r\n )}\r\n </Modal>\r\n </div>\r\n );\r\n }\r\n\r\n onCancel() {\r\n if (this.props.cancelFunction) this.props.cancelFunction();\r\n }\r\n}\r\n"],"names":["ModalSize","HubModal","React.Component","props","jsxs","Modal","jsx","Row","Col","FormGroup","ControlLabel","FormControl","c","event","target","inputFieldName","nameValue","Validations.validateField","emailValue","Validations.validateEmail","phoneValue","Validations.validateOptionalPhoneNumber","emailRequest","ProductLine","SwyfftModal","backdrop","keyboard","Fragment","LoadingButton","NewSwyfftModal"],"mappings":"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"}