0}\r\n selectedDealId={selectedDealId}\r\n handleSelectedDealRef={handleSelectedDealRef}\r\n onThumbnailImageLoad={this.onSelectedDealImageLoaded}\r\n isRtl={isRtl}\r\n isMobileView={isMobileView}\r\n titles={titles}\r\n onDealClick={this.onDealSelect}\r\n results={filteredDeals}\r\n normalizeResult={this.normalizeDealsToProduct}\r\n isDeals={true}\r\n renderMarkup={this.renderDealsMarkUp}\r\n lang={lang}\r\n routing={routing}\r\n performDealSearch={this.performDealSearch}\r\n rooms={rooms}\r\n dealSearchPerformed={dealSearchPerformed}\r\n isDealMode={isDealMode}\r\n renderImageMarkup={this.renderImageMarkup}\r\n isFetchingDealSearchResults={isfetchingRooms}\r\n renderLoader={renderLoader}\r\n clubUserLoggedIn={clubUserLoggedIn}\r\n isClubActive={discountClubConfig && discountClubConfig.Active}\r\n showClubPrices={showClubPrices}\r\n lastMinuteDaysDeal={lastMinuteDaysDeal}\r\n showHotDeal={showHotDeal}\r\n isIos={isIos}\r\n isIE={isIE}\r\n onLoad={onLoad}\r\n />\r\n );\r\n };\r\n\r\n renderDealDetails = () => {\r\n const {\r\n isRtl,\r\n onLoad,\r\n titles,\r\n isMobileView,\r\n deal,\r\n lang,\r\n actions,\r\n routing,\r\n selectedDealId,\r\n dealSearchResults,\r\n selectedPaxId,\r\n clubUserLoggedIn,\r\n discountClubConfig,\r\n redirectFormRef,\r\n ShowCancellationPolicy,\r\n isFetchingDealsSearchResults,\r\n showClubPrices,\r\n renderLoader,\r\n showAvailability,\r\n onShowRoomGalleryPopUp,\r\n isDealAnimationActive,\r\n isDealMode,\r\n handleDealRatesGroupRef,\r\n onShowDealExtraDetailsClick,\r\n onDealRatesClick,\r\n domainUrl,\r\n placeHolders,\r\n isIos,\r\n isIE,\r\n minPriceRangeFilter,\r\n maxPriceRangeFilter,\r\n planFilter\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n renderNoResultsPage = () => {\r\n const { titles, hotelData, isRtl } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n isFetchingDealsResults,\r\n renderLoader,\r\n hasDealResults,\r\n handleDealsResultsRef,\r\n routing\r\n } = this.props;\r\n return (\r\n \r\n [\r\n \r\n {/* while fetching data - render only loader */}\r\n {isFetchingDealsResults && renderLoader(true)}\r\n\r\n {/* if result is empty - render no results view*/}\r\n {!isFetchingDealsResults &&\r\n !hasDealResults &&\r\n this.renderNoResultsPage()}\r\n\r\n {/* if result is exist - render relavent route*/}\r\n {!isFetchingDealsResults &&\r\n hasDealResults && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ]\r\n \r\n );\r\n }\r\n}\r\n\r\nDealsResults.defaultProps = {\r\n onLoad: () => {}\r\n};\r\n\r\nDealsResults.propTypes = {\r\n lang: PropTypes.string,\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n isRtl: PropTypes.bool,\r\n isIE: PropTypes.bool,\r\n isIos: PropTypes.bool,\r\n actions: PropTypes.object,\r\n routing: PropTypes.object,\r\n renderLoader: PropTypes.func,\r\n deals: PropTypes.array,\r\n deal: PropTypes.object,\r\n isFetchingDealsResults: PropTypes.bool,\r\n dealSearchPerformed: PropTypes.bool,\r\n rooms: PropTypes.object,\r\n isDealMode: PropTypes.bool,\r\n isfetchingRooms: PropTypes.bool,\r\n selectedDealId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n handleSelectedDealRef: PropTypes.func,\r\n onLoad: PropTypes.func,\r\n discountClubConfig: PropTypes.object,\r\n dealSearchResults: PropTypes.array,\r\n selectedPaxId: PropTypes.number,\r\n onRateSelection: PropTypes.func,\r\n clubUserLoggedIn: PropTypes.bool,\r\n showSimpleClubLoginModal: PropTypes.func,\r\n onRateReadMore: PropTypes.func,\r\n ShowCancellationPolicy: PropTypes.bool,\r\n redirectFormRef: PropTypes.func,\r\n showClubPrices: PropTypes.bool,\r\n isFetchingDealsSearchResults: PropTypes.bool,\r\n showAvailability: PropTypes.bool,\r\n isDealAnimationActive: PropTypes.bool,\r\n onShowRoomGalleryPopUp: PropTypes.func,\r\n handleDealRatesGroupRef: PropTypes.func,\r\n handleDealsResultsRef: PropTypes.func,\r\n onDealRatesClick: PropTypes.func,\r\n hasDealResults: PropTypes.bool,\r\n hotelData: PropTypes.object,\r\n showMessage: PropTypes.func,\r\n onShowDealExtraDetailsClick: PropTypes.func,\r\n showHotDeal: PropTypes.bool,\r\n lastMinuteDaysDeal: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n domainUrl: PropTypes.string,\r\n placeHolders: PropTypes.array,\r\n planFilter: PropTypes.array,\r\n hotelFilter: PropTypes.array,\r\n maxPriceRangeFilter: PropTypes.number,\r\n minPriceRangeFilter: PropTypes.number,\r\n enableAddonsPopUp: PropTypes.bool,\r\n enableAddonsRegistration: PropTypes.bool\r\n};\r\n\r\nDealsResults.defaultProps = {\r\n isIE: false\r\n};\r\n\r\nfunction mapStateToProps(store) {\r\n const state = {\r\n lang: store.lang,\r\n titles: store.titles,\r\n isMobileView: store.isMobileView,\r\n isRtl: isRTL(store),\r\n isIE: store.isIE,\r\n isIos: store.isIos,\r\n isFetchingDealsResults: store.isFetchingDealsResults,\r\n routing: store.routing,\r\n deals: store.deals,\r\n deal: store.deal,\r\n rooms: store.rooms,\r\n dealSearchPerformed: store.dealSearchPerformed,\r\n isDealMode: store.isDealMode,\r\n isfetchingRooms: store.isfetchingRooms,\r\n selectedDealId: store.selectedDealId,\r\n selectedHotelId: store.selectedHotelId,\r\n discountClubConfig: store.discountClubConfig,\r\n dealSearchResults: store.dealSearchResults,\r\n selectedPaxId: store.selectedPaxId,\r\n clubUserLoggedIn: store.clubUserLoggedIn,\r\n ShowCancellationPolicy: store.ShowCancellationPolicy,\r\n isFetchingDealsSearchResults: store.isFetchingDealsSearchResults,\r\n showAvailability: store.showAvailability,\r\n isDealAnimationActive: store.isDealAnimationActive,\r\n selectedAddonsGroup: store.selectedAddonsGroup,\r\n hasDealResults: store.hasDealResults,\r\n hotelData: store.hotelData,\r\n showHotDeal: store.showHotDeal,\r\n lastMinuteDaysDeal: store.lastMinuteDaysDeal,\r\n domainUrl: store.domainUrl,\r\n placeHolders: store.placeHolders,\r\n planFilter: store.planFilter,\r\n hotelFilter: store.hotelFilter,\r\n maxPriceRangeFilter: store.maxPriceRangeFilter,\r\n minPriceRangeFilter: store.minPriceRangeFilter,\r\n enableAddonsPopUp: store.enableAddonsPopUp,\r\n enableAddonsRegistration: store.enableAddonsRegistration\r\n };\r\n return state;\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n const combinedActions = {\r\n ...dealsActions,\r\n ...roomResultsActions,\r\n ...paxActions,\r\n ...addonsActions,\r\n clearAnalyticsPlaceHolders,\r\n getAnalyticsPlaceHolders,\r\n push\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(DealsResults);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/DealsResults/DealsResults.js","import BaseApi from \"./BaseApi\";\r\n//import { serverURL } from '../constants/constants';\r\n//import { requestData3Pax } from './mockRequestData';\r\nimport qs from \"qs\";\r\n\r\nexport const getDeals = async reqObj => {\r\n const reqStr = qs.stringify(reqObj, { allowDots: true, encode: false });\r\n const result = await BaseApi.get(`/deals/GetDeals?${reqStr}`);\r\n return result;\r\n};\r\n\r\nexport const getDealDetail = async reqObj => {\r\n const reqStr = qs.stringify(reqObj, { allowDots: true, encode: false });\r\n const result = await BaseApi.get(`/deals/GetDeal?${reqStr}`);\r\n return result;\r\n};\r\n\r\nexport const doDealSearch = async reqObj => {\r\n const reqStr = qs.stringify(reqObj, { allowDots: true, encode: false });\r\n const result = await BaseApi.get(`/deals/GetPackageSearch?${reqStr}`);\r\n return result;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/deals.js","export { default } from \"./DealsGroup\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealsGroup/index.js","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport styles from \"./styles.less\";\r\nimport ResultBox from \"../ResultsGroup/ResultBox\";\r\nimport { DealWrraper } from \"../DealWrraper\";\r\nimport { Header } from \"../../components/common\";\r\n\r\nconst noop = () => {};\r\nexport class DealsGroup extends Component {\r\n componentDidMount() {\r\n this.props.onLoad();\r\n }\r\n\r\n renderBox = (result, onShowDealDetailsClick) => {\r\n const {\r\n isRtl,\r\n titles,\r\n isMobileView,\r\n normalizeResult,\r\n isDeals,\r\n isRegionResult,\r\n renderMarkup,\r\n renderImageMarkup,\r\n selectedDealId,\r\n onThumbnailImageLoad,\r\n handleSelectedDealRef\r\n } = this.props;\r\n const normalizedResult = normalizeResult ? normalizeResult(result) : result;\r\n const isSelectedResult = selectedDealId === result.id.toString();\r\n return (\r\n \r\n );\r\n };\r\n\r\n getDealComponents = (results, numElemsInRow) => {\r\n let desktopResutlsIndex = -1;\r\n let desktopResults = [];\r\n results.map((result, index) => {\r\n if (index % numElemsInRow == 0) {\r\n desktopResutlsIndex++;\r\n desktopResults[desktopResutlsIndex] = [];\r\n }\r\n desktopResults[desktopResutlsIndex].push(result);\r\n });\r\n return desktopResults;\r\n };\r\n\r\n getHotDeal = () => {\r\n const { results, showHotDeal } = this.props;\r\n // let sortedDealsByPrice = results.sort(function(a, b) {\r\n // return a.totalPrice - b.totalPrice;\r\n // });\r\n const dealWithMinPrice =\r\n showHotDeal &&\r\n results.length > 0 &&\r\n results.reduce(function(p, v) {\r\n return p.totalPrice < v.totalPrice ? p : v;\r\n });\r\n return dealWithMinPrice;\r\n };\r\n\r\n // getFastDesicionDeal = () => {\r\n // const { results } = this.props;\r\n // const fastDesicionDeals =\r\n // results.length > 0 &&\r\n // results.map(\r\n // deals =>\r\n // deals.startDate.diff(deals.endDate, \"days\") < moment().add(30, \"days\")\r\n // );\r\n // return fastDesicionDeals;\r\n // };\r\n\r\n render() {\r\n const {\r\n results,\r\n isRtl,\r\n isMobileView,\r\n lang,\r\n onDealClick,\r\n routing,\r\n titles,\r\n performDealSearch,\r\n rooms,\r\n dealSearchPerformed,\r\n isDealMode,\r\n isFetchingDealSearchResults,\r\n lastMinuteDaysDeal,\r\n renderLoader,\r\n isIos,\r\n isIE\r\n } = this.props;\r\n let data = isMobileView\r\n ? this.getDealComponents(results, 1)\r\n : this.getDealComponents(results, 2);\r\n const dealWithMinPrice = this.getHotDeal();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.map((item, key) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nDealsGroup.defaultProps = {\r\n isRtl: false,\r\n isIE: false,\r\n isMobileView: false,\r\n isRegionResult: false,\r\n titles: {},\r\n results: []\r\n};\r\n\r\nDealsGroup.propTypes = {\r\n isRtl: PropTypes.bool,\r\n isIE: PropTypes.bool,\r\n isIos: PropTypes.bool,\r\n isMobileView: PropTypes.bool,\r\n isRegionResult: PropTypes.bool,\r\n titles: PropTypes.object,\r\n results: PropTypes.array,\r\n normalizeResult: PropTypes.func,\r\n isDeals: PropTypes.bool,\r\n renderMarkup: PropTypes.func,\r\n renderImageMarkup: PropTypes.func,\r\n lang: PropTypes.string,\r\n onDealClick: PropTypes.func,\r\n routing: PropTypes.object,\r\n performDealSearch: PropTypes.func,\r\n dealSearchPerformed: PropTypes.bool,\r\n rooms: PropTypes.object,\r\n isDealMode: PropTypes.bool,\r\n isFetchingDealSearchResults: PropTypes.bool,\r\n selectedDealId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n renderLoader: PropTypes.func,\r\n onThumbnailImageLoad: PropTypes.func,\r\n handleSelectedDealRef: PropTypes.func,\r\n showHotDeal: PropTypes.bool,\r\n lastMinuteDaysDeal: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n onLoad: PropTypes.func\r\n};\r\n\r\nexport default DealsGroup;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealsGroup/DealsGroup.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"main-deals-group-wrapper\":\"DealsGroup_main-deals-group-wrapper---sb\",\"mainDealsGroupWrapper\":\"DealsGroup_main-deals-group-wrapper---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DealsGroup/styles.less\n// module id = 1677\n// module chunks = 0","export { default as DealWrraper } from \"./DealWrraper\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealWrraper/index.js","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport qs from \"qs\";\r\nimport cx from \"classnames\";\r\nimport styles from \"./styles.less\";\r\nimport moment from \"moment\";\r\nimport { Ribbon } from \"../common\";\r\n\r\nclass DealWrraper extends Component {\r\n getDealRoute = () => {\r\n const { routing } = this.props;\r\n const currentQuery = qs.parse(\r\n routing && routing.location && routing.location.search,\r\n {\r\n ignoreQueryPrefix: true\r\n }\r\n );\r\n return currentQuery ? currentQuery.selectedDealId : null;\r\n };\r\n\r\n getDetailsExpanded = dealId => {\r\n const { deals } = this.props;\r\n let dealDetailsExpanded = false;\r\n deals.forEach(deal => {\r\n if (deal.id == dealId) {\r\n dealDetailsExpanded = true;\r\n }\r\n });\r\n return dealDetailsExpanded;\r\n };\r\n\r\n getSelectedDeal = dealId => {\r\n const { deals } = this.props;\r\n let selectedDeal = null;\r\n deals.forEach(deal => {\r\n if (deal.id == dealId) {\r\n selectedDeal = deal;\r\n }\r\n });\r\n return selectedDeal;\r\n };\r\n\r\n checkIfFastDecosionDeal = deal => {\r\n const { lastMinuteDaysDeal } = this.props;\r\n const today = moment();\r\n const isFastDecision = moment(deal.endDate).diff(\r\n today.add(lastMinuteDaysDeal, \"days\")\r\n );\r\n return isFastDecision < 0;\r\n };\r\n\r\n checkIfShowRibbon = deal => {\r\n const { dealWithMinPrice } = this.props;\r\n if (deal.id == dealWithMinPrice.id || this.checkIfFastDecosionDeal(deal)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n getRibbonType = deal => {\r\n const { dealWithMinPrice } = this.props;\r\n if (deal.id == dealWithMinPrice.id) {\r\n return 1;\r\n } else if (this.checkIfFastDecosionDeal(deal)) {\r\n return 2;\r\n }\r\n };\r\n\r\n getRibbonTitle = deal => {\r\n const { titles } = this.props;\r\n switch (this.getRibbonType(deal)) {\r\n case 1:\r\n return titles.HotDeal;\r\n case 2:\r\n return titles.LastMinuteDeal;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n renderRibbon = deal => {\r\n const { isRtl, isMobileView, isIos } = this.props;\r\n return (\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n deals,\r\n renderBox,\r\n onDealClick,\r\n isMobileView,\r\n isRtl,\r\n isIos,\r\n isIE\r\n } = this.props;\r\n return (\r\n //\r\n deals.map((deal, index) => (\r\n \r\n {this.checkIfShowRibbon(deal) && this.renderRibbon(deal)}\r\n {renderBox(deal, onDealClick)}\r\n \r\n ))\r\n //\r\n );\r\n }\r\n}\r\n\r\nDealWrraper.propTypes = {\r\n deals: PropTypes.array,\r\n renderBox: PropTypes.func,\r\n routing: PropTypes.object,\r\n onDealClick: PropTypes.func,\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n isRtl: PropTypes.bool,\r\n dealWithMinPrice: PropTypes.object,\r\n isIos: PropTypes.bool,\r\n isIE: PropTypes.bool,\r\n lastMinuteDaysDeal: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n};\r\n\r\nexport default DealWrraper;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealWrraper/DealWrraper.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"title-deal\":\"DealWrraper_title-deal---sb\",\"titleDeal\":\"DealWrraper_title-deal---sb\",\"title-dealTop\":\"DealWrraper_title-dealTop---sb\",\"titleDealTop\":\"DealWrraper_title-dealTop---sb\",\"title-dealWrapper\":\"DealWrraper_title-dealWrapper---sb\",\"titleDealWrapper\":\"DealWrraper_title-dealWrapper---sb\",\"title-dealSlash\":\"DealWrraper_title-dealSlash---sb\",\"titleDealSlash\":\"DealWrraper_title-dealSlash---sb\",\"slash\":\"DealWrraper_slash---sb\",\"price-deal\":\"DealWrraper_price-deal---sb\",\"priceDeal\":\"DealWrraper_price-deal---sb\",\"deal-box-row\":\"DealWrraper_deal-box-row---sb\",\"dealBoxRow\":\"DealWrraper_deal-box-row---sb\",\"deal-box-column\":\"DealWrraper_deal-box-column---sb\",\"dealBoxColumn\":\"DealWrraper_deal-box-column---sb\",\"mobile-view\":\"DealWrraper_mobile-view---sb\",\"mobileView\":\"DealWrraper_mobile-view---sb\",\"ie-is-shit\":\"DealWrraper_ie-is-shit---sb\",\"ieIsShit\":\"DealWrraper_ie-is-shit---sb\",\"deal-details-container\":\"DealWrraper_deal-details-container---sb\",\"dealDetailsContainer\":\"DealWrraper_deal-details-container---sb\",\"deal-details-arrow-up\":\"DealWrraper_deal-details-arrow-up---sb\",\"dealDetailsArrowUp\":\"DealWrraper_deal-details-arrow-up---sb\",\"deal-details-arrow-up-visible\":\"DealWrraper_deal-details-arrow-up-visible---sb\",\"dealDetailsArrowUpVisible\":\"DealWrraper_deal-details-arrow-up-visible---sb\",\"deal-ribbon\":\"DealWrraper_deal-ribbon---sb\",\"dealRibbon\":\"DealWrraper_deal-ribbon---sb\",\"deal-ribbon-ios-is-shit\":\"DealWrraper_deal-ribbon-ios-is-shit---sb\",\"dealRibbonIosIsShit\":\"DealWrraper_deal-ribbon-ios-is-shit---sb\",\"deal-ribbon-wrapper\":\"DealWrraper_deal-ribbon-wrapper---sb\",\"dealRibbonWrapper\":\"DealWrraper_deal-ribbon-wrapper---sb\",\"deal-ribbon-wrapper-rtl\":\"DealWrraper_deal-ribbon-wrapper-rtl---sb\",\"dealRibbonWrapperRtl\":\"DealWrraper_deal-ribbon-wrapper-rtl---sb\",\"deal-ribbon-wrapper-rtl-mobile-view\":\"DealWrraper_deal-ribbon-wrapper-rtl-mobile-view---sb\",\"dealRibbonWrapperRtlMobileView\":\"DealWrraper_deal-ribbon-wrapper-rtl-mobile-view---sb\",\"deal-ribbon-wrapper-mobile-view\":\"DealWrraper_deal-ribbon-wrapper-mobile-view---sb\",\"dealRibbonWrapperMobileView\":\"DealWrraper_deal-ribbon-wrapper-mobile-view---sb\",\"deal-ribbon-wrapper-text\":\"DealWrraper_deal-ribbon-wrapper-text---sb\",\"dealRibbonWrapperText\":\"DealWrraper_deal-ribbon-wrapper-text---sb\",\"deal-ribbon-wrapper-text-hot-deal\":\"DealWrraper_deal-ribbon-wrapper-text-hot-deal---sb\",\"dealRibbonWrapperTextHotDeal\":\"DealWrraper_deal-ribbon-wrapper-text-hot-deal---sb\",\"deal-ribbon-wrapper-text-fast-decision\":\"DealWrraper_deal-ribbon-wrapper-text-fast-decision---sb\",\"dealRibbonWrapperTextFastDecision\":\"DealWrraper_deal-ribbon-wrapper-text-fast-decision---sb\",\"visible\":\"DealWrraper_visible---sb\",\"ios-is-shit\":\"DealWrraper_ios-is-shit---sb\",\"iosIsShit\":\"DealWrraper_ios-is-shit---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DealWrraper/styles.less\n// module id = 1680\n// module chunks = 0","export { default } from \"./DealDetails\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealDetails/index.js","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport moment from \"moment\";\nimport { Grid, Form } from \"semantic-ui-react\";\nimport SearchboxWrapper from \"../SearchboxWrapper\";\nimport DealsRatesGroup from \"../DealsRatesGroup\";\nimport PriceDisplay from \"../../containers/PriceDisplay\";\nimport { Header, RawHTML, PlaceHolder } from \"../../components/common\";\nimport styles from \"./styles.less\";\n\nconst imageSrcWithCrop = src => `${src}?w=450&h=300&mode=crop`;\n\nclass DealDetails extends React.Component {\n state = {\n searchBoxRendered: false,\n showNoResultsMesage: false,\n searchBoxVisible: true,\n showReadMore: false,\n searchBoxUrl: null,\n checkinDate: null,\n checkoutDate: null\n };\n\n componentDidMount() {\n const { onLoad, domainUrl, lang, deal } = this.props;\n this.isReadMoreOverlapping(); // after first mount ( refs already got attached ) , update showReadMore flag.\n window.addEventListener(\"resize\", this.isReadMoreOverlapping); // add showReadMore flag updating callback to window resize event.\n onLoad();\n const hotel = deal && deal.hotelId ? deal.hotelId.toString() : null;\n const searchBoxUrl = `${domainUrl}?enabledRegionSelection=false&lang=${lang}&selectedOption.optionType=Hotel&selectedOption.value=${hotel}&date=${moment()}`;\n this.setState({ searchBoxUrl });\n }\n\n // componentDidUpdate(prevProps, prevState) {\n // if(this.props.selectedPaxId !== prevProps.selectedPaxId){\n // this.setState({triggerFading: true})\n // }\n // }\n\n componentWillUnmount() {\n window.removeEventListener(\"resize\", this.isReadMoreOverlapping);\n }\n\n innerDealDescriptionRef = null;\n outerDealDescriptionRef = null;\n\n getAnalyticsPlaceHolders = () => {\n const { deal, getAnalyticsPlaceHolders } = this.props;\n getAnalyticsPlaceHolders && getAnalyticsPlaceHolders(deal);\n };\n\n /** check if the wrapper element of the room description TEXT is higher\n * than the wrapper element of the room description area ( inc read more text and fader ).\n * if so, the fader (inc read more text) should be applied on the dom and be visible to the user.\n */\n isReadMoreOverlapping = () => {\n let newState = {\n showReadMore: false\n };\n\n if (this.innerDealDescriptionRef && this.outerDealDescriptionRef) {\n if (\n this.innerDealDescriptionRef.offsetHeight >\n this.outerDealDescriptionRef.offsetHeight\n ) {\n newState.showReadMore = true;\n }\n }\n\n this.setState(newState);\n };\n\n setOuterDealDescriptionRef = ref => (this.outerDealDescriptionRef = ref);\n\n setInnerDealDescriptionRef = ref => (this.innerDealDescriptionRef = ref);\n\n openSearchBox = () => {\n this.setState({ searchBoxVisible: true });\n };\n\n performSearch = data => {\n const { performDealSearch, deal, lang } = this.props;\n const SelectedOption = {\n value: data.selectedOption.value,\n optionType: data.selectedOption.optionType\n };\n const paxList =\n data &&\n data.pax &&\n data.pax.map((p, index) => {\n return {\n ...p,\n id: index\n };\n });\n const searchData = {\n CheckIn: data.checkinDate,\n CheckOut: data.checkoutDate,\n Pax: paxList,\n PromoCode: data.promoCode,\n SelectedHotelID: data.selectedOption.value,\n SelectedOption: SelectedOption,\n Lang: lang\n };\n const dealData = {\n dealID: deal.id,\n dealParentID: deal.parentID,\n searchData: searchData,\n lang: lang\n };\n performDealSearch(dealData);\n this.setState({ searchBoxVisible: false, showNoResultsMesage: true });\n };\n\n renderDealLoader = isFetchingDealsSearchResults => {\n const { renderLoader } = this.props;\n return (\n \n {renderLoader(isFetchingDealsSearchResults)}\n
\n );\n };\n\n showSimpleClubLoginModal = () => {\n const { showSimpleClubLoginModal } = this.props;\n showSimpleClubLoginModal();\n };\n\n onShowDealDetailsClick = () => {\n const { deal, onShowDealExtraDetailsClick } = this.props;\n onShowDealExtraDetailsClick && onShowDealExtraDetailsClick(deal);\n };\n\n onRateSelection = ({ ...rateSelectedParams }) => {\n this.setState({ showNoResultsMesage: false });\n const { onRateSelection, onDealRatesClick } = this.props;\n onRateSelection({ ...rateSelectedParams });\n onDealRatesClick();\n };\n\n handleDealRatesGroupRef = node => {\n const { handleDealRatesGroupRef } = this.props;\n if (handleDealRatesGroupRef) {\n handleDealRatesGroupRef(node);\n } else {\n this.dealRatesGroup = node;\n }\n };\n\n getDealComponents = (results, numElemsInRow) => {\n let desktopResutlsIndex = -1;\n let desktopResults = [];\n results.map((result, index) => {\n if (index % numElemsInRow == 0) {\n desktopResutlsIndex++;\n desktopResults[desktopResutlsIndex] = [];\n }\n desktopResults[desktopResutlsIndex].push(result);\n });\n return desktopResults;\n };\n\n renderDealSearchResults = (deals, showClubPrices, showRoomNumberTitle) => {\n const {\n titles,\n selectedPaxId,\n ShowCancellationPolicy,\n showAvailability,\n onRateReadMore,\n clubUserLoggedIn,\n onShowRoomGalleryPopUp,\n clubPercentageDiscount,\n isClubActive,\n isRtl,\n isMobileView,\n onDealRatesClick,\n clearAnalyticsPlaceHolders\n } = this.props;\n //const groupedDeals = this.getDealComponents(deals, 3);\n\n return (\n // [\n \n // ]\n );\n };\n\n renderNoResults = () => {\n const { titles } = this.props;\n return (\n \n {titles.NoSearchResultsMessage}\n
\n );\n };\n\n render() {\n const {\n deal,\n titles,\n isMobileView,\n isRtl,\n onImageLoad,\n dealSearchResults,\n selectedPaxId,\n isFetchingDealsSearchResults,\n isClubActive,\n placeHolders,\n clubUserLoggedIn\n } = this.props;\n const { showReadMore } = this.state;\n const dealRatesByReqDesc =\n dealSearchResults && dealSearchResults[selectedPaxId];\n const hasResults = dealRatesByReqDesc\n ? dealRatesByReqDesc.filter(deal => deal.availability > 0).length > 0\n : false;\n const showClubPrices = isClubActive && !clubUserLoggedIn;\n dealSearchResults && dealSearchResults[selectedPaxId];\n const showRoomNumberTitle = dealSearchResults.length > 1;\n const altImage = `${deal.name} ${titles.room}`;\n\n let formattedStartDate;\n if (deal) {\n formattedStartDate = moment(deal.startDate).format(\"DD.MM.YYYY\");\n }\n\n const {\n showNoResultsMesage,\n searchBoxVisible,\n searchBoxUrl,\n checkinDate,\n checkoutDate\n } = this.state;\n return (\n \n \n \n \n \n \n \n \n \n \n
\n
\n
}\n)
\n
\n
\n
\n
\n \n {moment(deal.startDate).format(\"DD/MM/YY\") +\n \" - \" +\n moment(deal.endDate).format(\"DD/MM/YY\")}\n \n
\n {isMobileView && (\n
\n {deal.description && (\n \n )}\n
\n )}\n {!isMobileView && (\n
\n
\n
\n
\n {titles.ReadMore}\n
\n
\n
\n {deal.description && (\n \n )}\n
\n
\n
\n )}\n
\n
\n {titles.StartingFrom}\n {deal.oldPrice > 0 && (\n
\n \n {price => price}\n \n \n )}\n
\n \n {price => price}\n \n \n {titles.ForNight}\n
\n {showClubPrices && (\n
\n {titles.SpecialPriceForClubMemeber} \n
\n {price => price}\n \n
\n )}\n
\n
\n
\n
\n
\n \n \n {searchBoxUrl && (\n \n \n \n
\n {titles.SearchForAvailableDates}:\n
\n
\n {\n this.setState({ checkinDate });\n }}\n onChangeCheckoutDate={checkoutDate => {\n this.setState({ checkoutDate });\n }}\n />\n
\n
\n \n \n )}\n \n \n \n \n \n \n );\n }\n}\n\nDealDetails.propTypes = {\n deal: PropTypes.object,\n lang: PropTypes.string,\n titles: PropTypes.object,\n isMobileView: PropTypes.bool,\n onLoad: PropTypes.func,\n performDealSearch: PropTypes.func,\n isRtl: PropTypes.bool,\n isFetchingDealsSearchResults: PropTypes.bool,\n renderLoader: PropTypes.func,\n //createPrice: PropTypes.func,\n onImageLoad: PropTypes.func,\n dealSearchResults: PropTypes.array,\n selectedPaxId: PropTypes.number,\n onRateSelection: PropTypes.func,\n isClubActive: PropTypes.bool,\n clubUserLoggedIn: PropTypes.bool,\n showSimpleClubLoginModal: PropTypes.func,\n showAvailability: PropTypes.bool,\n onRateReadMore: PropTypes.func,\n ShowCancellationPolicy: PropTypes.bool,\n onShowRoomGalleryPopUp: PropTypes.func,\n //isDealMode: PropTypes.bool,\n handleDealRatesGroupRef: PropTypes.func,\n onDealRatesClick: PropTypes.func,\n onShowDealExtraDetailsClick: PropTypes.func,\n clubPercentageDiscount: PropTypes.number,\n domainUrl: PropTypes.string,\n placeHolders: PropTypes.array,\n getAnalyticsPlaceHolders: PropTypes.func,\n clearAnalyticsPlaceHolders: PropTypes.func\n};\n\nexport default DealDetails;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealDetails/DealDetails.js","export { default } from \"./DealsRatesGroup\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealsRatesGroup/index.js","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport { Grid, Image } from \"semantic-ui-react\";\nimport { Header } from \"../common\";\nimport DealRate from \"../../components/DealRate\";\nimport RatesTable from \"../RatesTable/RatesTable\";\nimport styles from \"./styles.less\";\n\nclass DealsRatesGroup extends Component {\n state = {\n appearRates: true,\n rateSelected: false\n };\n\n componentDidMount() {\n const { onDealRatesShow, getAnalyticsPlaceHolders } = this.props;\n setTimeout(onDealRatesShow, 0);\n getAnalyticsPlaceHolders && getAnalyticsPlaceHolders();\n }\n\n componentWillUnmount() {\n const { clearAnalyticsPlaceHolders } = this.props;\n clearAnalyticsPlaceHolders && clearAnalyticsPlaceHolders();\n }\n\n onRateSelection = ({ ...rateSelectedParams }) => {\n // dispatch global event of roomselected\n const event = new CustomEvent(\"__be_roomSelected\", {\n detail: {\n roomId: rateSelectedParams.roomId\n }\n });\n window.dispatchEvent(event);\n\n this.setState({ rateSelected: true });\n const { onRateSelection } = this.props;\n onRateSelection({ ...rateSelectedParams });\n };\n\n renderRate = (rate, image, roomId, oldPrice, roomName, deal) => {\n const {\n titles,\n isRtl,\n isMobileView,\n showClubPrices,\n showAvailability,\n onRateReadMore,\n ShowCancellationPolicy,\n showSimpleClubLoginModal,\n clubUserLoggedIn,\n onShowRoomGalleryPopUp,\n isIE\n } = this.props;\n\n return (\n \n \n \n );\n };\n\n renderRateImage = imageSrc => {\n return (\n \n \n \n );\n };\n\n renderRoomsAsTables = data => {\n const {\n showClubPrices,\n isRtl,\n titles,\n selectedPaxId,\n ShowCancellationPolicy,\n isClubActive,\n clubUserLoggedIn,\n clubPercentageDiscount,\n onRateReadMore,\n onShowRoomGalleryPopUp,\n isIE\n } = this.props;\n\n return (\n \n );\n };\n\n renderRatesAsGroups = data => {\n if (data && data.length >= 1) {\n return data.map((deal /*, rowIndex*/) => {\n return (\n //\n this.renderRate(\n deal.rate,\n deal.imageUrl,\n deal.roomId,\n deal.oldPrice,\n deal.name,\n deal\n )\n //\n );\n });\n } else {\n return (\n //\n this.renderRate(\n data.rate,\n data.imageUrl,\n data.roomId,\n data.oldPrice,\n data.name,\n data\n )\n //\n );\n }\n };\n\n render() {\n const {\n titles,\n selectedPaxId,\n showRoomNumberTitle,\n isMobileView,\n isRtl,\n deals\n } = this.props;\n const headerText = showRoomNumberTitle\n ? `${titles.PleaseSelectRoomNumber} ${selectedPaxId + 1} :`\n : `${titles.PleaseSelectRoom}`;\n //const fadeIn = deals.length > 0;\n return (\n \n \n \n \n {isMobileView\n ? deals.map((data, key) => (\n \n {this.renderRatesAsGroups(data, key)}\n \n ))\n : this.renderRoomsAsTables(deals)}\n \n );\n }\n}\n\nDealsRatesGroup.propTypes = {\n isRtl: PropTypes.bool,\n isMobileView: PropTypes.bool,\n titles: PropTypes.object,\n showAvailability: PropTypes.bool,\n onRateReadMore: PropTypes.func,\n showClubPrices: PropTypes.bool,\n ShowCancellationPolicy: PropTypes.bool,\n isIE: PropTypes.bool,\n deals: PropTypes.array,\n onRateSelection: PropTypes.func,\n clubUserLoggedIn: PropTypes.bool,\n showSimpleClubLoginModal: PropTypes.func,\n selectedPaxId: PropTypes.number,\n showRoomNumberTitle: PropTypes.bool,\n onShowRoomGalleryPopUp: PropTypes.func,\n onDealRatesShow: PropTypes.func,\n isClubActive: PropTypes.bool,\n clubPercentageDiscount: PropTypes.number,\n getAnalyticsPlaceHolders: PropTypes.func,\n clearAnalyticsPlaceHolders: PropTypes.func\n};\n\nexport default DealsRatesGroup;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealsRatesGroup/DealsRatesGroup.js","export { default } from \"./DealRate\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealRate/index.js","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport { RawHTML } from \"../common\";\nimport Dotdotdot from \"react-dotdotdot\";\nimport styles from \"./styles.less\";\nimport GalleryPopUp from \"../GalleryPopUp\";\nimport PriceDisplay from \"../../containers/PriceDisplay\";\n\nconst imageSrcWithCrop = src => `${src}?w=450&h=300&mode=crop`;\n\nclass DealRate extends Component {\n // componentDidUpdate() {\n // if (this.rateRef && this.imageRef) {\n // const rate = this.rateRef;\n // const image = this.imageRef;\n // const width = rate.scrollWidth;\n // const height = (width * 3) / 4;\n // requestAnimationFrame(() => {\n // image.style.height = height + \"px\";\n // });\n // }\n // }\n\n createDealRef = ref => (this.rateRef = ref);\n createImageRef = ref => (this.imageRef = ref);\n\n onClick = () => {\n const {\n onClick,\n rateId,\n priceCode,\n planCode,\n allocationCode,\n roomId\n } = this.props;\n onClick({ rateId, priceCode, planCode, allocationCode, roomId });\n };\n\n onReadeMoreClick = e => {\n e.preventDefault();\n e.stopPropagation(); // so we won't select the rate (parent element)\n const { onRateReadMore, rateId, roomId } = this.props;\n onRateReadMore({ rateId, roomId });\n };\n\n showSimpleClubLoginModal = () => {\n const { showSimpleClubLoginModal } = this.props;\n showSimpleClubLoginModal();\n };\n\n onShowRoomGalleryPopUp = () => {\n const { onShowRoomGalleryPopUp, room } = this.props;\n onShowRoomGalleryPopUp(room);\n };\n\n renderRate = () => {\n const {\n active,\n planName,\n titleName,\n price,\n isRtl,\n titles,\n isPackage,\n availability,\n lowAvailabilityCount,\n showAvailability,\n showClubPrices,\n ratePriceAfterDiscount,\n oldPrice,\n isIE,\n isMobileView,\n room,\n image\n } = this.props;\n const showMobileGallery = image && isMobileView;\n const showDesktopGallery = image && !isMobileView;\n return (\n \n \n
\n
\n {isPackage ? titles.Sale + \"!!!\" : \"\"}\n
\n
\n {titles.RoomDetails}\n
\n
\n\n
\n {showDesktopGallery && (\n
\n
}\n)
\n
\n
\n )}\n {showMobileGallery && (\n
\n )}\n
\n
\n
\n
\n \n
\n {showAvailability && (\n
\n
{titles.Availability}
\n
{availability}
\n
\n )}\n
\n
\n
\n {oldPrice > 0 && (\n
\n \n {price => price}\n \n \n )}\n
\n \n {price => price}\n \n \n
\n
\n {titles.Checkout}\n
\n
\n
\n {showClubPrices && (\n
\n
\n
\n {titles.PriceForClubMemeber} \n
\n \n {price => price}\n \n \n
\n
\n
\n )}\n
\n
\n
\n
\n \n );\n };\n\n render() {\n return {this.renderRate()};\n }\n}\n\nDealRate.propTypes = {\n isRtl: PropTypes.bool,\n titles: PropTypes.object,\n rateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n priceCode: PropTypes.string,\n planCode: PropTypes.string,\n planName: PropTypes.string,\n titleName: PropTypes.string,\n price: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n availability: PropTypes.number,\n allocationCode: PropTypes.string,\n lowAvailabilityCount: PropTypes.number,\n showAvailability: PropTypes.bool,\n active: PropTypes.bool,\n isPackage: PropTypes.bool,\n onClick: PropTypes.func,\n onRateReadMore: PropTypes.func,\n showClubPrices: PropTypes.bool,\n ratePriceAfterDiscount: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n ]),\n isIE: PropTypes.bool,\n image: PropTypes.string,\n roomId: PropTypes.string,\n oldPrice: PropTypes.number,\n showSimpleClubLoginModal: PropTypes.func,\n onShowRoomGalleryPopUp: PropTypes.func,\n isMobileView: PropTypes.bool,\n room: PropTypes.object\n};\n\nDealRate.defaultProps = {\n showAvailability: true,\n lowAvailabilityCount: 4,\n titles: {\n ReadMore: \"Read More...\"\n }\n};\n\nexport default DealRate;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealRate/DealRate.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"DealRate_with-ellipsis---sb\",\"withEllipsis\":\"DealRate_with-ellipsis---sb\",\"rate\":\"DealRate_rate---sb\",\"ie-is-shit\":\"DealRate_ie-is-shit---sb\",\"ieIsShit\":\"DealRate_ie-is-shit---sb\",\"rate-image\":\"DealRate_rate-image---sb\",\"rateImage\":\"DealRate_rate-image---sb\",\"rate-image-wrapper\":\"DealRate_rate-image-wrapper---sb\",\"rateImageWrapper\":\"DealRate_rate-image-wrapper---sb\",\"rate-body\":\"DealRate_rate-body---sb\",\"rateBody\":\"DealRate_rate-body---sb\",\"rate-body-mobile-view\":\"DealRate_rate-body-mobile-view---sb\",\"rateBodyMobileView\":\"DealRate_rate-body-mobile-view---sb\",\"active\":\"DealRate_active---sb\",\"rate-select-btn\":\"DealRate_rate-select-btn---sb\",\"rateSelectBtn\":\"DealRate_rate-select-btn---sb\",\"ribbon-wrapper\":\"DealRate_ribbon-wrapper---sb\",\"ribbonWrapper\":\"DealRate_ribbon-wrapper---sb\",\"ribbon\":\"DealRate_ribbon---sb\",\"rtl\":\"DealRate_rtl---sb\",\"rate-main-content\":\"DealRate_rate-main-content---sb\",\"rateMainContent\":\"DealRate_rate-main-content---sb\",\"radio-btn-section\":\"DealRate_radio-btn-section---sb\",\"radioBtnSection\":\"DealRate_radio-btn-section---sb\",\"data-section\":\"DealRate_data-section---sb\",\"dataSection\":\"DealRate_data-section---sb\",\"price-name-wrapper\":\"DealRate_price-name-wrapper---sb\",\"priceNameWrapper\":\"DealRate_price-name-wrapper---sb\",\"price-name\":\"DealRate_price-name---sb\",\"priceName\":\"DealRate_price-name---sb\",\"icon\":\"DealRate_icon---sb\",\"availability\":\"DealRate_availability---sb\",\"low-count\":\"DealRate_low-count---sb\",\"lowCount\":\"DealRate_low-count---sb\",\"count\":\"DealRate_count---sb\",\"prices-wrapper\":\"DealRate_prices-wrapper---sb\",\"pricesWrapper\":\"DealRate_prices-wrapper---sb\",\"inner-prices-wrapper\":\"DealRate_inner-prices-wrapper---sb\",\"innerPricesWrapper\":\"DealRate_inner-prices-wrapper---sb\",\"prices-section-orig\":\"DealRate_prices-section-orig---sb\",\"pricesSectionOrig\":\"DealRate_prices-section-orig---sb\",\"prices-section\":\"DealRate_prices-section---sb\",\"pricesSection\":\"DealRate_prices-section---sb\",\"price\":\"DealRate_price---sb\",\"club-price\":\"DealRate_club-price---sb\",\"clubPrice\":\"DealRate_club-price---sb\",\"orig-price\":\"DealRate_orig-price---sb\",\"origPrice\":\"DealRate_orig-price---sb\",\"strike-price-rtl\":\"DealRate_strike-price-rtl---sb\",\"strikePriceRtl\":\"DealRate_strike-price-rtl---sb\",\"sale\":\"DealRate_sale---sb\",\"read-more\":\"DealRate_read-more---sb\",\"readMore\":\"DealRate_read-more---sb\",\"read-more-sale-wrapper\":\"DealRate_read-more-sale-wrapper---sb\",\"readMoreSaleWrapper\":\"DealRate_read-more-sale-wrapper---sb\",\"rate-order-button\":\"DealRate_rate-order-button---sb\",\"rateOrderButton\":\"DealRate_rate-order-button---sb\",\"rate-sale\":\"DealRate_rate-sale---sb\",\"rateSale\":\"DealRate_rate-sale---sb\",\"plan-name\":\"DealRate_plan-name---sb\",\"planName\":\"DealRate_plan-name---sb\",\"data-section-rtl\":\"DealRate_data-section-rtl---sb\",\"dataSectionRtl\":\"DealRate_data-section-rtl---sb\",\"club-badge-Wrapper\":\"DealRate_club-badge-Wrapper---sb\",\"clubBadgeWrapper\":\"DealRate_club-badge-Wrapper---sb\",\"club-badge-content\":\"DealRate_club-badge-content---sb\",\"clubBadgeContent\":\"DealRate_club-badge-content---sb\",\"club-badge-content-price\":\"DealRate_club-badge-content-price---sb\",\"clubBadgeContentPrice\":\"DealRate_club-badge-content-price---sb\",\"club-badge-content-price-title\":\"DealRate_club-badge-content-price-title---sb\",\"clubBadgeContentPriceTitle\":\"DealRate_club-badge-content-price-title---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DealRate/styles.less\n// module id = 1687\n// module chunks = 0","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport ImageGallery from \"react-image-gallery\";\nimport { Grid } from \"semantic-ui-react\";\n\nimport \"react-image-gallery/styles/css/image-gallery.css\";\nimport styles from \"./styles.less\";\n\nclass GalleryPopUp extends Component {\n constructor(props) {\n super(props);\n const { descriptionPosition } = this.props;\n this.descriptionClass = `${styles.descPosition} ${styles.top}`;\n if (descriptionPosition) {\n this.descriptionClass = styles.descPosition + \" \";\n if (Array.isArray(descriptionPosition)) {\n this.descriptionClass += descriptionPosition\n .map(position => styles[position])\n .join(\" \");\n } else {\n this.descriptionClass += styles[descriptionPosition];\n }\n }\n }\n _handleImageError = () => {\n // event\n /* we no longer recieve default image\n if (this.props.defaultImage &&\n event.target.src.indexOf(this.props.defaultImage) === -1) {\n event.target.src = this.props.defaultImage;\n }\n */\n };\n\n handleShowItemDetails = event => {\n const { handleShowItemDetails } = this.props;\n handleShowItemDetails(event);\n };\n\n _myImageGalleryRenderer = item => {\n const onImageError = this._handleImageError;\n return (\n \n

\n
\n );\n };\n\n imageSrcWithCrop = src => {\n const { isMobileView } = this.props;\n if (isMobileView) {\n return `${src}?w=375&h=250&mode=crop`;\n } else {\n return src;\n }\n };\n\n imageSrcWithCropThumb = src => {\n const { isMobileView } = this.props;\n if (isMobileView) {\n return `${src}?w=375&h=250&mode=crop`;\n } else {\n return `${src}?w=150&h=100&mode=crop`;\n }\n };\n\n mapRoomImages = room => {\n let images = [];\n if (room) {\n if (room.images && room.images.length > 0) {\n images = room.images.map(image => ({\n original: image && this.imageSrcWithCrop(image),\n originalTitle: room.name,\n thumbnail: image && this.imageSrcWithCropThumb(image),\n description: room.roomDescription,\n price: room.TotalPrice,\n currency: room.currency\n }));\n } else {\n images = [\n {\n original: room.imageUrl && this.imageSrcWithCrop(room.imageUrl),\n originalTitle: room.name,\n thumbnail:\n room.imageUrl && this.imageSrcWithCropThumb(room.imageUrl),\n description: room.roomDescription,\n price: room.TotalPrice,\n currency: room.currency\n }\n ];\n }\n }\n return images;\n };\n\n render() {\n const { room, isRtl, showThumbnails, images } = this.props;\n const galleryImages = images != null ? images : this.mapRoomImages(room);\n return (\n \n \n \n );\n }\n}\n\nGalleryPopUp.defaultProps = {\n showThumbnails: true\n};\n\nGalleryPopUp.propTypes = {\n isRtl: PropTypes.bool,\n descriptionPosition: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),\n room: PropTypes.object,\n onImageLoad: PropTypes.func,\n handleShowItemDetails: PropTypes.func,\n showThumbnails: PropTypes.bool,\n images: PropTypes.array,\n isMobileView: PropTypes.bool\n};\n\nexport default GalleryPopUp;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/GalleryPopUp/GalleryPopUp.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"GalleryPopUp_with-ellipsis---sb\",\"withEllipsis\":\"GalleryPopUp_with-ellipsis---sb\",\"gallery\":\"GalleryPopUp_gallery---sb\",\"rtl\":\"GalleryPopUp_rtl---sb\",\"header-wrapper\":\"GalleryPopUp_header-wrapper---sb\",\"headerWrapper\":\"GalleryPopUp_header-wrapper---sb\",\"hide\":\"GalleryPopUp_hide---sb\",\"image-gallery\":\"GalleryPopUp_image-gallery---sb\",\"imageGallery\":\"GalleryPopUp_image-gallery---sb\",\"image-gallery-description\":\"GalleryPopUp_image-gallery-description---sb\",\"imageGalleryDescription\":\"GalleryPopUp_image-gallery-description---sb\",\"desc-position\":\"GalleryPopUp_desc-position---sb\",\"descPosition\":\"GalleryPopUp_desc-position---sb\",\"top\":\"GalleryPopUp_top---sb\",\"right\":\"GalleryPopUp_right---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/GalleryPopUp/styles.less\n// module id = 1689\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"rates-group-row\":\"DealsRatesGroup_rates-group-row---sb\",\"ratesGroupRow\":\"DealsRatesGroup_rates-group-row---sb\",\"hide\":\"DealsRatesGroup_hide---sb\",\"rate-wrapper\":\"DealsRatesGroup_rate-wrapper---sb\",\"rateWrapper\":\"DealsRatesGroup_rate-wrapper---sb\",\"header-text\":\"DealsRatesGroup_header-text---sb\",\"headerText\":\"DealsRatesGroup_header-text---sb\",\"header-text-mobile-view\":\"DealsRatesGroup_header-text-mobile-view---sb\",\"headerTextMobileView\":\"DealsRatesGroup_header-text-mobile-view---sb\",\"results-wrapper\":\"DealsRatesGroup_results-wrapper---sb\",\"resultsWrapper\":\"DealsRatesGroup_results-wrapper---sb\",\"flex-column\":\"DealsRatesGroup_flex-column---sb\",\"flexColumn\":\"DealsRatesGroup_flex-column---sb\",\"rates-group-title\":\"DealsRatesGroup_rates-group-title---sb\",\"ratesGroupTitle\":\"DealsRatesGroup_rates-group-title---sb\",\"flex-column-mobile-view\":\"DealsRatesGroup_flex-column-mobile-view---sb\",\"flexColumnMobileView\":\"DealsRatesGroup_flex-column-mobile-view---sb\",\"no-padding\":\"DealsRatesGroup_no-padding---sb\",\"noPadding\":\"DealsRatesGroup_no-padding---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DealsRatesGroup/styles.less\n// module id = 1690\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"DealDetails_with-ellipsis---sb\",\"withEllipsis\":\"DealDetails_with-ellipsis---sb\",\"noResult\":\"DealDetails_noResult---sb\",\"isFetching\":\"DealDetails_isFetching---sb\",\"mobile-view\":\"DealDetails_mobile-view---sb\",\"mobileView\":\"DealDetails_mobile-view---sb\",\"mobile-view-noResult\":\"DealDetails_mobile-view-noResult---sb\",\"mobileViewNoResult\":\"DealDetails_mobile-view-noResult---sb\",\"mobile-view-isFetching\":\"DealDetails_mobile-view-isFetching---sb\",\"mobileViewIsFetching\":\"DealDetails_mobile-view-isFetching---sb\",\"rendered\":\"DealDetails_rendered---sb\",\"dealsSearchBox\":\"DealDetails_dealsSearchBox---sb\",\"deal-details\":\"DealDetails_deal-details---sb\",\"dealDetails\":\"DealDetails_deal-details---sb\",\"deal-box-column\":\"DealDetails_deal-box-column---sb\",\"dealBoxColumn\":\"DealDetails_deal-box-column---sb\",\"data-container\":\"DealDetails_data-container---sb\",\"dataContainer\":\"DealDetails_data-container---sb\",\"data-container-mobile-view\":\"DealDetails_data-container-mobile-view---sb\",\"dataContainerMobileView\":\"DealDetails_data-container-mobile-view---sb\",\"hotel\":\"DealDetails_hotel---sb\",\"hotel-mobile-view\":\"DealDetails_hotel-mobile-view---sb\",\"hotelMobileView\":\"DealDetails_hotel-mobile-view---sb\",\"rtl\":\"DealDetails_rtl---sb\",\"deal-box\":\"DealDetails_deal-box---sb\",\"dealBox\":\"DealDetails_deal-box---sb\",\"deal-box-image-wrapper\":\"DealDetails_deal-box-image-wrapper---sb\",\"dealBoxImageWrapper\":\"DealDetails_deal-box-image-wrapper---sb\",\"deal-box-mobile-view\":\"DealDetails_deal-box-mobile-view---sb\",\"dealBoxMobileView\":\"DealDetails_deal-box-mobile-view---sb\",\"deal-prices-wrapper\":\"DealDetails_deal-prices-wrapper---sb\",\"dealPricesWrapper\":\"DealDetails_deal-prices-wrapper---sb\",\"deal-club-memeber\":\"DealDetails_deal-club-memeber---sb\",\"dealClubMemeber\":\"DealDetails_deal-club-memeber---sb\",\"deal-data\":\"DealDetails_deal-data---sb\",\"dealData\":\"DealDetails_deal-data---sb\",\"deal-data-rtl\":\"DealDetails_deal-data-rtl---sb\",\"dealDataRtl\":\"DealDetails_deal-data-rtl---sb\",\"deal-data-upper\":\"DealDetails_deal-data-upper---sb\",\"dealDataUpper\":\"DealDetails_deal-data-upper---sb\",\"deal-name\":\"DealDetails_deal-name---sb\",\"dealName\":\"DealDetails_deal-name---sb\",\"deal-dates-details\":\"DealDetails_deal-dates-details---sb\",\"dealDatesDetails\":\"DealDetails_deal-dates-details---sb\",\"deal-dates-data\":\"DealDetails_deal-dates-data---sb\",\"dealDatesData\":\"DealDetails_deal-dates-data---sb\",\"deal-dates-title\":\"DealDetails_deal-dates-title---sb\",\"dealDatesTitle\":\"DealDetails_deal-dates-title---sb\",\"description-wrapper\":\"DealDetails_description-wrapper---sb\",\"descriptionWrapper\":\"DealDetails_description-wrapper---sb\",\"description-fade\":\"DealDetails_description-fade---sb\",\"descriptionFade\":\"DealDetails_description-fade---sb\",\"description\":\"DealDetails_description---sb\",\"description-wrapper-border\":\"DealDetails_description-wrapper-border---sb\",\"descriptionWrapperBorder\":\"DealDetails_description-wrapper-border---sb\",\"description-read-more\":\"DealDetails_description-read-more---sb\",\"descriptionReadMore\":\"DealDetails_description-read-more---sb\",\"show\":\"DealDetails_show---sb\",\"deal-price\":\"DealDetails_deal-price---sb\",\"dealPrice\":\"DealDetails_deal-price---sb\",\"deal-price-old\":\"DealDetails_deal-price-old---sb\",\"dealPriceOld\":\"DealDetails_deal-price-old---sb\",\"deal-price-new\":\"DealDetails_deal-price-new---sb\",\"dealPriceNew\":\"DealDetails_deal-price-new---sb\",\"search-box-wrapper\":\"DealDetails_search-box-wrapper---sb\",\"searchBoxWrapper\":\"DealDetails_search-box-wrapper---sb\",\"search-box\":\"DealDetails_search-box---sb\",\"searchBox\":\"DealDetails_search-box---sb\",\"search-box-wrapper-mobile-view\":\"DealDetails_search-box-wrapper-mobile-view---sb\",\"searchBoxWrapperMobileView\":\"DealDetails_search-box-wrapper-mobile-view---sb\",\"deal-search-comment\":\"DealDetails_deal-search-comment---sb\",\"dealSearchComment\":\"DealDetails_deal-search-comment---sb\",\"header-text\":\"DealDetails_header-text---sb\",\"headerText\":\"DealDetails_header-text---sb\",\"deal-details-loader\":\"DealDetails_deal-details-loader---sb\",\"dealDetailsLoader\":\"DealDetails_deal-details-loader---sb\",\"deals-rates-group\":\"DealDetails_deals-rates-group---sb\",\"dealsRatesGroup\":\"DealDetails_deals-rates-group---sb\",\"fadeOut\":\"DealDetails_fadeOut---sb\",\"club-login\":\"DealDetails_club-login---sb\",\"clubLogin\":\"DealDetails_club-login---sb\",\"no-results-message\":\"DealDetails_no-results-message---sb\",\"noResultsMessage\":\"DealDetails_no-results-message---sb\",\"hidden\":\"DealDetails_hidden---sb\",\"visisble\":\"DealDetails_visisble---sb\",\"search-again-button\":\"DealDetails_search-again-button---sb\",\"searchAgainButton\":\"DealDetails_search-again-button---sb\",\"deal-data-mobile-view\":\"DealDetails_deal-data-mobile-view---sb\",\"dealDataMobileView\":\"DealDetails_deal-data-mobile-view---sb\",\"mobile-description\":\"DealDetails_mobile-description---sb\",\"mobileDescription\":\"DealDetails_mobile-description---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DealDetails/styles.less\n// module id = 1691\n// module chunks = 0","export { default } from \"./RoomDetailsAndAmenities\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/RoomDetailsAndAmenities/index.js","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport moment from \"moment\";\r\nimport { Grid, Header, Table } from \"semantic-ui-react\";\r\nimport { daysOfWeek } from \"../../constants/general\";\r\nimport { spliteByWeeks } from \"../../helpers/dateHelpers\";\r\nimport { RawHTML, LineBreaks } from \"../common\";\r\nimport Amenities from \"../../components/common/Amenities\";\r\nimport PriceDisplay from \"../../containers/PriceDisplay\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass RoomDetailsAndAmenities extends Component {\r\n renderCancellationPolicy = () => {\r\n const { room, titles, ShowCancellationPolicy } = this.props;\r\n const cancellationPolicy = `* ${titles.CancellationPolicy}: ${\r\n room.rate.cancellationPolicyDescription\r\n }`;\r\n if (ShowCancellationPolicy) {\r\n return {cancellationPolicy}
;\r\n } else return ;\r\n };\r\n\r\n render() {\r\n const { room, isRtl, titles } = this.props;\r\n const textAlign = isRtl ? \"right\" : \"left\";\r\n const weeksData = spliteByWeeks(\r\n room && room.rate && room.rate.pricePerDayList\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {daysOfWeek.map((day, idx) => (\r\n \r\n {titles[day.longKey] || day.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n {weeksData &&\r\n Object.entries(weeksData).map(([week, priceList], idx) => {\r\n const currentWeekNum = Number(week);\r\n let contentIndex = `${titles.Week} ${idx + 1}`;\r\n return (\r\n \r\n \r\n {daysOfWeek.map((day, i) => {\r\n const foundPrice = priceList.find(\r\n ppd =>\r\n moment(ppd.dayDate).day() === i &&\r\n moment(ppd.dayDate).week() === currentWeekNum\r\n );\r\n const content = foundPrice && (\r\n \r\n {convertedPrice => convertedPrice}\r\n \r\n );\r\n const toRender = foundPrice && (\r\n \r\n {content}
\r\n \r\n {moment(foundPrice.dayDate).format(\r\n \"DD/MM/YY\"\r\n )}\r\n \r\n \r\n );\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {convertedPrice =>\r\n `${titles.Total} - ${convertedPrice}`\r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {titles.TaxIncludedTitle}\r\n
\r\n \r\n \r\n \r\n \r\n {this.renderCancellationPolicy()}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nRoomDetailsAndAmenities.propTypes = {\r\n room: PropTypes.object,\r\n isRtl: PropTypes.bool,\r\n ShowCancellationPolicy: PropTypes.bool,\r\n titles: PropTypes.object\r\n};\r\n\r\nexport default RoomDetailsAndAmenities;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/RoomDetailsAndAmenities/RoomDetailsAndAmenities.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"room-details\":\"RoomDetailsAndAmenities_room-details---sb\",\"roomDetails\":\"RoomDetailsAndAmenities_room-details---sb\",\"rtl\":\"RoomDetailsAndAmenities_rtl---sb\",\"room-name\":\"RoomDetailsAndAmenities_room-name---sb\",\"roomName\":\"RoomDetailsAndAmenities_room-name---sb\",\"room-description\":\"RoomDetailsAndAmenities_room-description---sb\",\"roomDescription\":\"RoomDetailsAndAmenities_room-description---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/RoomDetailsAndAmenities/styles.less\n// module id = 1694\n// module chunks = 0","export { default } from \"./DealThumbNailCustom\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealThumbNailCustom/index.js","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport styles from \"./styles.less\";\nimport PriceDisplay from \"../../containers/PriceDisplay\";\nimport { Button } from \"../common\";\n\nclass DealThumbNailCustom extends React.Component {\n render = () => {\n const {\n titles,\n isIE,\n discountClubConfig,\n clubUserLoggedIn,\n isMobileView,\n product\n } = this.props;\n const showClubPrices =\n discountClubConfig && discountClubConfig.Active && !clubUserLoggedIn;\n return (\n \n
\n {product.name}\n
\n
\n \n {titles.DealValidInDates} \n \n {product.startDate + \" - \" + product.endDate}\n
\n
\n
\n {titles.StartingFrom}\n {product.oldPrice > 0 && (\n
\n \n {price => price}\n \n \n )}\n
\n \n {price => price}\n \n \n {titles.ForNight}\n
\n {showClubPrices && (\n
\n
\n {price => price + \" \" + titles.SpecialPriceForClubMemeber}\n \n
\n )}\n
\n
\n );\n };\n}\n\nDealThumbNailCustom.propTypes = {\n titles: PropTypes.object,\n product: PropTypes.object,\n isIE: PropTypes.bool,\n discountClubConfig: PropTypes.object,\n clubUserLoggedIn: PropTypes.bool,\n isMobileView: PropTypes.bool\n};\n\nexport default DealThumbNailCustom;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/DealThumbNailCustom/DealThumbNailCustom.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"DealThumbNailCustom_with-ellipsis---sb\",\"withEllipsis\":\"DealThumbNailCustom_with-ellipsis---sb\",\"deal\":\"DealThumbNailCustom_deal---sb\",\"deal-title\":\"DealThumbNailCustom_deal-title---sb\",\"dealTitle\":\"DealThumbNailCustom_deal-title---sb\",\"ie-is-shit\":\"DealThumbNailCustom_ie-is-shit---sb\",\"ieIsShit\":\"DealThumbNailCustom_ie-is-shit---sb\",\"deal-description\":\"DealThumbNailCustom_deal-description---sb\",\"dealDescription\":\"DealThumbNailCustom_deal-description---sb\",\"deal-dates\":\"DealThumbNailCustom_deal-dates---sb\",\"dealDates\":\"DealThumbNailCustom_deal-dates---sb\",\"deal-dates-title\":\"DealThumbNailCustom_deal-dates-title---sb\",\"dealDatesTitle\":\"DealThumbNailCustom_deal-dates-title---sb\",\"dealWrapper\":\"DealThumbNailCustom_dealWrapper---sb\",\"deal-price\":\"DealThumbNailCustom_deal-price---sb\",\"dealPrice\":\"DealThumbNailCustom_deal-price---sb\",\"deal-price-old\":\"DealThumbNailCustom_deal-price-old---sb\",\"dealPriceOld\":\"DealThumbNailCustom_deal-price-old---sb\",\"deal-price-new\":\"DealThumbNailCustom_deal-price-new---sb\",\"dealPriceNew\":\"DealThumbNailCustom_deal-price-new---sb\",\"deal-price-separator\":\"DealThumbNailCustom_deal-price-separator---sb\",\"dealPriceSeparator\":\"DealThumbNailCustom_deal-price-separator---sb\",\"deal-button\":\"DealThumbNailCustom_deal-button---sb\",\"dealButton\":\"DealThumbNailCustom_deal-button---sb\",\"deal-hotel\":\"DealThumbNailCustom_deal-hotel---sb\",\"dealHotel\":\"DealThumbNailCustom_deal-hotel---sb\",\"deal-club-memeber\":\"DealThumbNailCustom_deal-club-memeber---sb\",\"dealClubMemeber\":\"DealThumbNailCustom_deal-club-memeber---sb\",\"mobile-view\":\"DealThumbNailCustom_mobile-view---sb\",\"mobileView\":\"DealThumbNailCustom_mobile-view---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DealThumbNailCustom/styles.less\n// module id = 1697\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"DealsResults_with-ellipsis---sb\",\"withEllipsis\":\"DealsResults_with-ellipsis---sb\",\"deal\":\"DealsResults_deal---sb\",\"deal-title\":\"DealsResults_deal-title---sb\",\"dealTitle\":\"DealsResults_deal-title---sb\",\"ie-is-shit\":\"DealsResults_ie-is-shit---sb\",\"ieIsShit\":\"DealsResults_ie-is-shit---sb\",\"deal-description\":\"DealsResults_deal-description---sb\",\"dealDescription\":\"DealsResults_deal-description---sb\",\"deal-dates\":\"DealsResults_deal-dates---sb\",\"dealDates\":\"DealsResults_deal-dates---sb\",\"deal-dates-title\":\"DealsResults_deal-dates-title---sb\",\"dealDatesTitle\":\"DealsResults_deal-dates-title---sb\",\"dealWrapper\":\"DealsResults_dealWrapper---sb\",\"deal-price\":\"DealsResults_deal-price---sb\",\"dealPrice\":\"DealsResults_deal-price---sb\",\"deal-price-old\":\"DealsResults_deal-price-old---sb\",\"dealPriceOld\":\"DealsResults_deal-price-old---sb\",\"deal-price-new\":\"DealsResults_deal-price-new---sb\",\"dealPriceNew\":\"DealsResults_deal-price-new---sb\",\"deal-price-separator\":\"DealsResults_deal-price-separator---sb\",\"dealPriceSeparator\":\"DealsResults_deal-price-separator---sb\",\"deal-button\":\"DealsResults_deal-button---sb\",\"dealButton\":\"DealsResults_deal-button---sb\",\"deal-hotel\":\"DealsResults_deal-hotel---sb\",\"dealHotel\":\"DealsResults_deal-hotel---sb\",\"deal-club-memeber\":\"DealsResults_deal-club-memeber---sb\",\"dealClubMemeber\":\"DealsResults_deal-club-memeber---sb\",\"deal-result-wrapper\":\"DealsResults_deal-result-wrapper---sb\",\"dealResultWrapper\":\"DealsResults_deal-result-wrapper---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/containers/DealsResults/styles.less\n// module id = 1698\n// module chunks = 0","export { default } from \"./AddonsContainers\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/AddonsContainer/index.js","import React, { Component } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport stringSimilarity from \"string-similarity\";\r\nimport { Addons } from \"../../components\";\r\nimport { isRTL, getGlobalCurrency } from \"../../reducers\";\r\nimport * as addonsActions from \"../../actions/addonsActions\";\r\nimport { addonsContainerTypes, addonsContainerDefaultProps } from \"../../types\";\r\n\r\nexport class AddonsContainer extends Component {\r\n onAddonIncrementClick = (groupId, addonCode, msg) => {\r\n const { actions } = this.props;\r\n actions.onAddonAdd(groupId, addonCode, msg);\r\n };\r\n\r\n onAddonDecrementClick = (groupId, addonCode) => {\r\n const { actions } = this.props;\r\n actions.onAddonRemove(groupId, addonCode);\r\n };\r\n onCancel = groupId => {\r\n const { actions, onCancel } = this.props;\r\n actions.onCancelAddons(groupId);\r\n onCancel();\r\n };\r\n\r\n onConfirm = () => {\r\n const { onConfirm } = this.props;\r\n onConfirm();\r\n };\r\n\r\n render() {\r\n const {\r\n selectedAddonsGroup,\r\n addonsByPaxIndex,\r\n selectedPaxId,\r\n globalCurrency,\r\n isRtl,\r\n titles\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nAddonsContainer.defaultProps = addonsContainerDefaultProps;\r\n\r\nAddonsContainer.propTypes = addonsContainerTypes;\r\n\r\nfunction mapStateToProps(store) {\r\n const { addonImagesLookupTable } = store;\r\n const globalCurrency = getGlobalCurrency(store);\r\n const state = {\r\n isRtl: isRTL(store),\r\n globalCurrency,\r\n titles: store.titles,\r\n addons: store.addons,\r\n selectedAddonsGroup: store.selectedAddonsGroup,\r\n selectedPaxId: store.selectedPaxId,\r\n addonsByPaxIndex:\r\n store.addons[store.selectedPaxId] &&\r\n store.addons[store.selectedPaxId].map(addon => {\r\n //TODO: this is bad practice to do in mapState, we need a memoized selector\r\n const bestMatch = stringSimilarity.findBestMatch(\r\n addon.id,\r\n Object.keys(addonImagesLookupTable)\r\n ).bestMatch;\r\n const useBestMatch = bestMatch.rating > 0.8;\r\n return {\r\n ...addon,\r\n imageURL: useBestMatch\r\n ? addonImagesLookupTable[bestMatch.target]\r\n : addonImagesLookupTable.default\r\n };\r\n })\r\n };\r\n return state;\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n const combinedActions = {\r\n ...addonsActions\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(AddonsContainer);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/AddonsContainer/AddonsContainers.js","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseForOwn.js\n// module id = 1701\n// module chunks = 0","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseFor.js\n// module id = 1702\n// module chunks = 0","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createBaseFor.js\n// module id = 1703\n// module chunks = 0","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseTimes.js\n// module id = 1704\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsArguments.js\n// module id = 1705\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getRawTag.js\n// module id = 1706\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_objectToString.js\n// module id = 1707\n// module chunks = 0","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/stubFalse.js\n// module id = 1708\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsTypedArray.js\n// module id = 1709\n// module chunks = 0","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseUnary.js\n// module id = 1710\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_nodeUtil.js\n// module id = 1711\n// module chunks = 0","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseKeys.js\n// module id = 1712\n// module chunks = 0","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_nativeKeys.js\n// module id = 1713\n// module chunks = 0","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createBaseEach.js\n// module id = 1714\n// module chunks = 0","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_castFunction.js\n// module id = 1715\n// module chunks = 0","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/map.js\n// module id = 1716\n// module chunks = 0","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseMatches.js\n// module id = 1717\n// module chunks = 0","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsMatch.js\n// module id = 1718\n// module chunks = 0","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_listCacheClear.js\n// module id = 1719\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_listCacheDelete.js\n// module id = 1720\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_listCacheGet.js\n// module id = 1721\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_listCacheHas.js\n// module id = 1722\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_listCacheSet.js\n// module id = 1723\n// module chunks = 0","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_stackClear.js\n// module id = 1724\n// module chunks = 0","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_stackDelete.js\n// module id = 1725\n// module chunks = 0","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_stackGet.js\n// module id = 1726\n// module chunks = 0","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_stackHas.js\n// module id = 1727\n// module chunks = 0","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_stackSet.js\n// module id = 1728\n// module chunks = 0","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsNative.js\n// module id = 1729\n// module chunks = 0","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isMasked.js\n// module id = 1730\n// module chunks = 0","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_coreJsData.js\n// module id = 1731\n// module chunks = 0","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getValue.js\n// module id = 1732\n// module chunks = 0","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_mapCacheClear.js\n// module id = 1733\n// module chunks = 0","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_Hash.js\n// module id = 1734\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_hashClear.js\n// module id = 1735\n// module chunks = 0","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_hashDelete.js\n// module id = 1736\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_hashGet.js\n// module id = 1737\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_hashHas.js\n// module id = 1738\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_hashSet.js\n// module id = 1739\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_mapCacheDelete.js\n// module id = 1740\n// module chunks = 0","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isKeyable.js\n// module id = 1741\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_mapCacheGet.js\n// module id = 1742\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_mapCacheHas.js\n// module id = 1743\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_mapCacheSet.js\n// module id = 1744\n// module chunks = 0","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsEqualDeep.js\n// module id = 1745\n// module chunks = 0","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_SetCache.js\n// module id = 1746\n// module chunks = 0","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_setCacheAdd.js\n// module id = 1747\n// module chunks = 0","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_setCacheHas.js\n// module id = 1748\n// module chunks = 0","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_arraySome.js\n// module id = 1749\n// module chunks = 0","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cacheHas.js\n// module id = 1750\n// module chunks = 0","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_equalByTag.js\n// module id = 1751\n// module chunks = 0","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_equalObjects.js\n// module id = 1752\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_DataView.js\n// module id = 1753\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_Promise.js\n// module id = 1754\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_Set.js\n// module id = 1755\n// module chunks = 0","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getMatchData.js\n// module id = 1756\n// module chunks = 0","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseMatchesProperty.js\n// module id = 1757\n// module chunks = 0","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/get.js\n// module id = 1758\n// module chunks = 0","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_stringToPath.js\n// module id = 1759\n// module chunks = 0","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_memoizeCapped.js\n// module id = 1760\n// module chunks = 0","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/memoize.js\n// module id = 1761\n// module chunks = 0","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseToString.js\n// module id = 1762\n// module chunks = 0","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/hasIn.js\n// module id = 1763\n// module chunks = 0","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseHasIn.js\n// module id = 1764\n// module chunks = 0","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_hasPath.js\n// module id = 1765\n// module chunks = 0","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/property.js\n// module id = 1766\n// module chunks = 0","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseProperty.js\n// module id = 1767\n// module chunks = 0","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_basePropertyDeep.js\n// module id = 1768\n// module chunks = 0","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseMap.js\n// module id = 1769\n// module chunks = 0","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/every.js\n// module id = 1770\n// module chunks = 0","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_arrayEvery.js\n// module id = 1771\n// module chunks = 0","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseEvery.js\n// module id = 1772\n// module chunks = 0","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isIterateeCall.js\n// module id = 1773\n// module chunks = 0","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/maxBy.js\n// module id = 1774\n// module chunks = 0","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseExtremum.js\n// module id = 1775\n// module chunks = 0","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseGt.js\n// module id = 1776\n// module chunks = 0","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/flattenDeep.js\n// module id = 1777\n// module chunks = 0","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_isFlattenable.js\n// module id = 1778\n// module chunks = 0","export { default as ContactUs } from \"./ContactUs\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/ContactUs/index.js","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { resetStore } from \"../../actions/resetStoreActions\";\r\nimport {\r\n Header,\r\n ContactUs as ContactUsComponent\r\n} from \"../../components/common\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass ContactUs extends React.Component {\r\n renderHeader = title => {\r\n const { isRtl, isMobileView } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n renderContacUsForm = () => {\r\n const {\r\n submitContactUsForm,\r\n selectedOption,\r\n titles,\r\n checkinDate,\r\n checkoutDate,\r\n currentPaxCombination,\r\n contactUsSubmitingStatus,\r\n isMobileView,\r\n lang,\r\n hotelData\r\n } = this.props;\r\n const needToShowForm = contactUsSubmitingStatus\r\n ? !contactUsSubmitingStatus.succeed == true\r\n : true;\r\n\r\n return (\r\n \r\n {({ onSubmit }) =>\r\n needToShowForm ? (\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {titles.SendYourRequestAndWeWillReturn}\r\n
\r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { titles, isMobileView } = this.props;\r\n return (\r\n \r\n \r\n \r\n {this.renderHeader(titles.ContactUs)}\r\n \r\n {this.renderContacUsForm()}\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nContactUs.propTypes = {\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n currentPaxCombination: PropTypes.object,\r\n isRtl: PropTypes.bool,\r\n contactUsSubmitingStatus: PropTypes.object,\r\n submitContactUsForm: PropTypes.func,\r\n checkinDate: PropTypes.string,\r\n checkoutDate: PropTypes.string,\r\n selectedOption: PropTypes.object,\r\n lang: PropTypes.string,\r\n hotelData: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = store => {\r\n const state = {\r\n titles: store.titles,\r\n isMobileView: store.isMobileView,\r\n currentPaxCombination: store.currentPaxCombination,\r\n isRtl: store.isRtl,\r\n contactUsSubmitingStatus: store.contactUsSubmitingStatus,\r\n checkinDate: store.checkinDate,\r\n checkoutDate: store.checkoutDate,\r\n selectedOption: store.selectedOption,\r\n lang: store.lang,\r\n hotelData: store.hotelData\r\n };\r\n return state;\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n const combinedActions = {\r\n resetStore\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ContactUs);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/ContactUs/ContactUs.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"contact-us-wrapper\":\"ContactUs_contact-us-wrapper---sb\",\"contactUsWrapper\":\"ContactUs_contact-us-wrapper---sb\",\"contact-us-header\":\"ContactUs_contact-us-header---sb\",\"contactUsHeader\":\"ContactUs_contact-us-header---sb\",\"in-order-to\":\"ContactUs_in-order-to---sb\",\"inOrderTo\":\"ContactUs_in-order-to---sb\",\"options-to-contant\":\"ContactUs_options-to-contant---sb\",\"optionsToContant\":\"ContactUs_options-to-contant---sb\",\"header-text\":\"ContactUs_header-text---sb\",\"headerText\":\"ContactUs_header-text---sb\",\"send-your-request\":\"ContactUs_send-your-request---sb\",\"sendYourRequest\":\"ContactUs_send-your-request---sb\",\"relaxed\":\"ContactUs_relaxed---sb\",\"view-port\":\"ContactUs_view-port---sb\",\"viewPort\":\"ContactUs_view-port---sb\",\"devider\":\"ContactUs_devider---sb\",\"mobile-view\":\"ContactUs_mobile-view---sb\",\"mobileView\":\"ContactUs_mobile-view---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/containers/ContactUs/styles.less\n// module id = 1781\n// module chunks = 0","export { default } from \"./CartContainer\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/CartContainer/index.js","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport * as addonsActions from \"../../actions/addonsActions\";\r\nimport * as generalActions from \"../../actions/generalActions\";\r\nimport { Cart } from \"../../components/Cart\";\r\n// import {\r\n// Cart as MobileCart,\r\n// CartExpander as MobileCartExpander\r\n// } from \"../../components/MobileCart\";\r\n\r\nimport {\r\n isRTL,\r\n getGlobalCurrency,\r\n getGlobalCurrencyCode,\r\n getCartTotalPrices,\r\n getSelectedHotelName,\r\n getSelectedDataForPax\r\n // getSumOfSelectedRates\r\n} from \"../../reducers\";\r\nimport PriceDisplay from \"../PriceDisplay\";\r\n\r\nclass CartContainer extends Component {\r\n convertedRate = (price, currencyCode, currency) => {\r\n return (\r\n \r\n {convertedPrice => convertedPrice}\r\n \r\n );\r\n };\r\n\r\n onAddonDecrementClick = (paxId, addonCode) => {\r\n const { actions } = this.props;\r\n actions.onAddonRemove(paxId, addonCode);\r\n };\r\n\r\n render() {\r\n const {\r\n actions,\r\n paxList,\r\n // sumOfSelectedRates,\r\n selectedDataForPax,\r\n // addons,\r\n // selectedPaxId,\r\n titles,\r\n isRtl,\r\n promoCode,\r\n isPromoCodeValid,\r\n isMobileView,\r\n // cartTotalPrice,\r\n // simpleClubCartTotalPrice,\r\n //new cart\r\n cartTotalPrices,\r\n cartClubTotalPrices,\r\n clubUserLoggedIn,\r\n discountClubConfig,\r\n globalCurrency,\r\n globalCurrencyCode,\r\n selectedCurrency,\r\n checkinDate,\r\n checkoutDate,\r\n propertyName,\r\n propertyType,\r\n // onItemClick,\r\n // onSubmit,\r\n // onEditAddons,\r\n // getInitialHeight,\r\n // redirectFormRef,\r\n isShowCancellationPolicy,\r\n onShowCancellationPolicy,\r\n bookingRatesEnabled,\r\n bookingRates,\r\n placeHolders\r\n // showCartSubmitBtn,\r\n // isDealMode\r\n } = this.props;\r\n\r\n // const canSubmit = sumOfSelectedRates == paxList.length;\r\n\r\n // const canEditAddons =\r\n // addons[selectedPaxId] && addons[selectedPaxId].length > 0;\r\n\r\n //const canEditAddons = false;\r\n\r\n const items = paxList.map(p => {\r\n const selectedRoom =\r\n selectedDataForPax &&\r\n selectedDataForPax[p.id] &&\r\n selectedDataForPax[p.id].room;\r\n\r\n const selectedRate =\r\n selectedDataForPax &&\r\n selectedDataForPax[p.id] &&\r\n selectedDataForPax[p.id].rate;\r\n\r\n const roomName = selectedRoom && selectedRoom.name;\r\n const planName = selectedRate && selectedRate.planName;\r\n\r\n const selectedAddons =\r\n (selectedDataForPax && selectedDataForPax[p.id].selectedAddons) || [];\r\n\r\n const formattedAddons = selectedAddons.map(addon => {\r\n return {\r\n ...addon,\r\n ...(selectedRoom && {\r\n priceToShow: this.convertedRate(\r\n addon.price,\r\n selectedRoom.currencyCode,\r\n selectedRoom.currency\r\n )\r\n })\r\n };\r\n });\r\n\r\n return {\r\n id: p.id,\r\n pax: p,\r\n name: p.id + 1,\r\n roomId: selectedRoom && selectedRoom.id,\r\n rateId: selectedRate && selectedRate.id,\r\n roomName,\r\n planName,\r\n price: selectedRate && selectedRate.totalPrice,\r\n clubPrice: selectedRate && selectedRate.simpleClubTotalPrice,\r\n currency: selectedRoom && selectedRoom.currency,\r\n currencyCode: selectedRate && selectedRate.currencyCode,\r\n selectedAddons: formattedAddons,\r\n isPackage: !!(selectedRate && selectedRate.isPackage)\r\n };\r\n });\r\n\r\n const toRender = (\r\n \r\n );\r\n return toRender;\r\n }\r\n}\r\n\r\nCartContainer.propTypes = {\r\n isMobileView: PropTypes.bool,\r\n //showCartSubmitBtn: PropTypes.bool,\r\n //selectedPaxId: PropTypes.number,\r\n isRtl: PropTypes.bool,\r\n titles: PropTypes.object,\r\n paxList: PropTypes.array,\r\n // addons: PropTypes.object,\r\n promoCode: PropTypes.string,\r\n isPromoCodeValid: PropTypes.bool,\r\n //cartTotalPrice: PropTypes.number,\r\n selectedDataForPax: PropTypes.object,\r\n //simpleClubCartTotalPrice: PropTypes.number,\r\n bookingRates: PropTypes.object,\r\n\r\n // new cart\r\n cartTotalPrices: PropTypes.object,\r\n cartClubTotalPrices: PropTypes.object,\r\n\r\n clubUserLoggedIn: PropTypes.bool,\r\n discountClubConfig: PropTypes.object,\r\n globalCurrency: PropTypes.string,\r\n globalCurrencyCode: PropTypes.string,\r\n selectedCurrency: PropTypes.string,\r\n checkinDate: PropTypes.string,\r\n checkoutDate: PropTypes.string,\r\n propertyName: PropTypes.string,\r\n propertyType: PropTypes.string,\r\n // sumOfSelectedRates: PropTypes.number,\r\n //onItemClick: PropTypes.func,\r\n // onSubmit: PropTypes.func,\r\n //onEditAddons: PropTypes.func,\r\n //getInitialHeight: PropTypes.func,\r\n //redirectFormRef: PropTypes.func,\r\n bookingRatesEnabled: PropTypes.bool,\r\n isShowCancellationPolicy: PropTypes.bool,\r\n onShowCancellationPolicy: PropTypes.func,\r\n //isDealMode: PropTypes.bool,\r\n actions: PropTypes.object,\r\n placeHolders: PropTypes.array\r\n};\r\n\r\nconst mapStateToProps = store => {\r\n const {\r\n titles,\r\n addons,\r\n paxList,\r\n isMobileView,\r\n selectedPaxId,\r\n clubUserLoggedIn,\r\n discountClubConfig,\r\n selectedCurrency,\r\n promoCode,\r\n isPromoCodeValid,\r\n checkinDate,\r\n checkoutDate,\r\n ShowCancellationPolicy,\r\n showCartSubmitBtn,\r\n isDealMode,\r\n bookingRates,\r\n bookingRatesEnabled,\r\n propertyType,\r\n placeHolders\r\n } = store;\r\n const isRtl = isRTL(store);\r\n\r\n //new cart\r\n const cartTotalPrices = getCartTotalPrices(store);\r\n const cartClubTotalPrices = getCartTotalPrices(store, true);\r\n\r\n const globalCurrency = getGlobalCurrency(store);\r\n const globalCurrencyCode = getGlobalCurrencyCode(store);\r\n const selectedDataForPax = getSelectedDataForPax(store);\r\n const propertyName = getSelectedHotelName(store);\r\n // const sumOfSelectedRates = getSumOfSelectedRates(store);\r\n return {\r\n isRtl,\r\n addons,\r\n titles,\r\n paxList,\r\n propertyName,\r\n propertyType,\r\n promoCode,\r\n isPromoCodeValid,\r\n isMobileView: isMobileView,\r\n selectedDataForPax,\r\n globalCurrency,\r\n globalCurrencyCode,\r\n selectedCurrency,\r\n selectedPaxId,\r\n cartTotalPrice: cartTotalPrices.totalPrice,\r\n simpleClubCartTotalPrice: cartTotalPrices.clubTotalPrice,\r\n\r\n cartTotalPrices,\r\n cartClubTotalPrices,\r\n\r\n clubUserLoggedIn,\r\n discountClubConfig,\r\n // sumOfSelectedRates,\r\n checkinDate,\r\n checkoutDate,\r\n isShowCancellationPolicy: ShowCancellationPolicy,\r\n showCartSubmitBtn,\r\n isDealMode,\r\n bookingRatesEnabled: bookingRatesEnabled,\r\n bookingRates: bookingRates[0] && bookingRates[0].scores,\r\n placeHolders\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n const combinedActions = {\r\n ...addonsActions,\r\n ...generalActions\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(CartContainer);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/CartContainer/CartContainer.js","import {\r\n SHOW_CART,\r\n HIDE_CART,\r\n TOGGLE_CART_VISIBILITY\r\n} from \"../constants/actionTypes\";\r\n\r\nexport const toggleCartVisibility = () => ({\r\n type: TOGGLE_CART_VISIBILITY\r\n});\r\n\r\nexport const showCart = () => ({\r\n type: SHOW_CART,\r\n payload: true\r\n});\r\n\r\nexport const hideCart = () => ({\r\n type: HIDE_CART,\r\n payload: false\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/cartActions.js","import * as types from \"../constants/actionTypes\";\r\nimport { postContactUsForm } from \"../api/contactUs\";\r\nimport { generateAsyncAction } from \"./generateAsyncAction\";\r\n\r\nexport const sendContactForm = formData => async dispatch => {\r\n dispatch({ type: types.START_CONTACT_US_REQUEST });\r\n const sendContactFormAction = await generateAsyncAction({\r\n onFailAction: sendContactFormFailed,\r\n onSuccessAction: sendContactFormSuccess,\r\n asyncApiMethod: postContactUsForm,\r\n request: formData\r\n });\r\n return dispatch(sendContactFormAction);\r\n};\r\n\r\nconst sendContactFormSuccess = () => dispatch => {\r\n dispatch({\r\n type: types.CONTACT_US_REQUEST_HAS_SUCCEED\r\n });\r\n};\r\n\r\nconst sendContactFormFailed = () => dispatch => {\r\n dispatch({\r\n type: types.CONTACT_US_REQUEST_HAS_FAILED\r\n });\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/contactUsActions.js","import BaseApi from \"./BaseApi\";\r\n//import qs from \"qs\";\r\n\r\nexport const postContactUsForm = async formData => {\r\n const result = await BaseApi.post(\r\n `/ReservationProcess/SendContactMailByPost?lang=${formData.lang}`,\r\n formData.emailModel\r\n );\r\n return result;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/contactUs.js","\"use strict\"\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true,\n})\n\nvar _ToastContainer = require(\"./components/ToastContainer\")\n\nObject.defineProperty(exports, \"ToastContainer\", {\n enumerable: true,\n get: function get() {\n return _ToastContainer.ToastContainer\n },\n})\n\nvar _ToastMessage = require(\"./components/ToastMessage/ToastMessage\")\n\nObject.defineProperty(exports, \"ToastMessage\", {\n enumerable: true,\n get: function get() {\n return _ToastMessage.ToastMessage\n },\n})\n\nvar _ToastMessageAnimated = require(\"./components/ToastMessage/ToastMessageAnimated\")\n\nObject.defineProperty(exports, \"ToastMessageAnimated\", {\n enumerable: true,\n get: function get() {\n return _ToastMessageAnimated.ToastMessageAnimated\n },\n})\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-toastr/lib/index.js\n// module id = 1787\n// module chunks = 0","\"use strict\"\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true,\n})\nexports.ToastContainer = undefined\n\nvar _toConsumableArray2 = require(\"babel-runtime/helpers/toConsumableArray\")\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2)\n\nvar _extends2 = require(\"babel-runtime/helpers/extends\")\n\nvar _extends3 = _interopRequireDefault(_extends2)\n\nvar _getPrototypeOf = require(\"babel-runtime/core-js/object/get-prototype-of\")\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf)\n\nvar _classCallCheck2 = require(\"babel-runtime/helpers/classCallCheck\")\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2)\n\nvar _createClass2 = require(\"babel-runtime/helpers/createClass\")\n\nvar _createClass3 = _interopRequireDefault(_createClass2)\n\nvar _possibleConstructorReturn2 = require(\"babel-runtime/helpers/possibleConstructorReturn\")\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(\n _possibleConstructorReturn2\n)\n\nvar _inherits2 = require(\"babel-runtime/helpers/inherits\")\n\nvar _inherits3 = _interopRequireDefault(_inherits2)\n\nvar _keys2 = require(\"lodash/keys\")\n\nvar _keys3 = _interopRequireDefault(_keys2)\n\nvar _omit2 = require(\"lodash/omit\")\n\nvar _omit3 = _interopRequireDefault(_omit2)\n\nvar _reject2 = require(\"lodash/reject\")\n\nvar _reject3 = _interopRequireDefault(_reject2)\n\nvar _bind2 = require(\"lodash/bind\")\n\nvar _bind3 = _interopRequireDefault(_bind2)\n\nvar _isFunction2 = require(\"lodash/isFunction\")\n\nvar _isFunction3 = _interopRequireDefault(_isFunction2)\n\nvar _uniqueId2 = require(\"lodash/uniqueId\")\n\nvar _uniqueId3 = _interopRequireDefault(_uniqueId2)\n\nvar _includes2 = require(\"lodash/includes\")\n\nvar _includes3 = _interopRequireDefault(_includes2)\n\nvar _isObject2 = require(\"lodash/isObject\")\n\nvar _isObject3 = _interopRequireDefault(_isObject2)\n\nvar _forEach2 = require(\"lodash/forEach\")\n\nvar _forEach3 = _interopRequireDefault(_forEach2)\n\nvar _noop2 = require(\"lodash/noop\")\n\nvar _noop3 = _interopRequireDefault(_noop2)\n\nvar _react = require(\"react\")\n\nvar _react2 = _interopRequireDefault(_react)\n\nvar _ToastMessageAnimated = require(\"./ToastMessage/ToastMessageAnimated\")\n\nvar _ToastMessageAnimated2 = _interopRequireDefault(_ToastMessageAnimated)\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj }\n}\n\n/**\n * A React container for displaying a list of toast messages.\n * It mimics the APIs with the vanilla [toastr.js](https://github.com/CodeSeven/toastr)\n * by retaining a [ref][react-ref] to publish a new **toast**.\n * \n * To display HTML, simply pass JSX instead of strings for title and message.\n * \n * ```javascript\n * this.container.success(\n * I am a strong title,\n * I am an emphasized message\n * });\n * ```\n * \n * If you're using Redux for managing states, you might consider using the\n * underlying component directly. See [ToastMessageAnimated](#toastmessage) below\n */\nvar ToastContainer = (exports.ToastContainer = (function(_React$PureComponent) {\n ;(0, _inherits3.default)(ToastContainer, _React$PureComponent)\n\n function ToastContainer() {\n var _ref\n\n var _temp, _this, _ret\n\n ;(0, _classCallCheck3.default)(this, ToastContainer)\n\n for (\n var _len = arguments.length, args = Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n args[_key] = arguments[_key]\n }\n\n return (\n (_ret = ((_temp = ((_this = (0, _possibleConstructorReturn3.default)(\n this,\n (_ref =\n ToastContainer.__proto__ ||\n (0, _getPrototypeOf2.default)(ToastContainer)).call.apply(\n _ref,\n [this].concat(args)\n )\n )),\n _this)),\n (_this.state = {\n toastList: [],\n }),\n (_this.toastMessageRefs = {}),\n (_this.handleOnToastClick = function(event) {\n _this.props.onClick(event)\n if (event.defaultPrevented) {\n return\n }\n event.preventDefault()\n event.stopPropagation()\n }),\n (_this.handleOnToastRemove = function(key) {\n _this.setState(function(state) {\n return {\n toastList: (0, _reject3.default)(state.toastList, { key: key }),\n }\n })\n }),\n _temp)),\n (0, _possibleConstructorReturn3.default)(_this, _ret)\n )\n }\n\n ;(0, _createClass3.default)(ToastContainer, [\n {\n key: \"error\",\n\n /**\n * \n * @param {any} message \n * @param {any} title \n * @param {any} optionsOverride \n * @public\n */\n value: function error(message, title, optionsOverride) {\n this.handleNotify(\n this.props.toastType.error,\n message,\n title,\n optionsOverride\n )\n },\n\n /**\n * \n * @param {any} message \n * @param {any} title \n * @param {any} optionsOverride \n * @public\n */\n },\n {\n key: \"info\",\n value: function info(message, title, optionsOverride) {\n this.handleNotify(\n this.props.toastType.info,\n message,\n title,\n optionsOverride\n )\n },\n\n /**\n * \n * @param {any} message \n * @param {any} title \n * @param {any} optionsOverride \n * @public\n */\n },\n {\n key: \"success\",\n value: function success(message, title, optionsOverride) {\n this.handleNotify(\n this.props.toastType.success,\n message,\n title,\n optionsOverride\n )\n },\n\n /**\n * \n * @param {any} message \n * @param {any} title \n * @param {any} optionsOverride \n * @public\n */\n },\n {\n key: \"warning\",\n value: function warning(message, title, optionsOverride) {\n this.handleNotify(\n this.props.toastType.warning,\n message,\n title,\n optionsOverride\n )\n },\n\n /**\n * \n * @public\n */\n },\n {\n key: \"clear\",\n value: function clear() {\n ;(0, _forEach3.default)(this.toastMessageRefs, function(ref) {\n if ((0, _isObject3.default)(ref)) {\n ref.handleHide()\n }\n })\n },\n },\n {\n key: \"handleNotify\",\n value: function handleNotify(type, message, title) {\n var _this2 = this\n\n var optionsOverride =\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}\n\n if (\n this.props.preventDuplicates &&\n (0, _includes3.default)(this.state.toastList, { message: message })\n ) {\n return\n }\n var key = (0, _uniqueId3.default)(\"toast_\")\n var nextToast = (0, _extends3.default)({}, optionsOverride, {\n key: key,\n type: type,\n title: title,\n message: message,\n ref: function ref(_ref2) {\n _this2.toastMessageRefs[key] = _ref2\n },\n onClick: function onClick(event) {\n if ((0, _isFunction3.default)(optionsOverride.handleOnClick)) {\n optionsOverride.handleOnClick()\n }\n _this2.handleOnToastClick(event)\n },\n onRemove: (0, _bind3.default)(this.handleOnToastRemove, this, key),\n })\n this.setState(function(state) {\n return {\n toastList: _this2.props.newestOnTop\n ? [nextToast].concat(\n (0, _toConsumableArray3.default)(state.toastList)\n )\n : [].concat((0, _toConsumableArray3.default)(state.toastList), [\n nextToast,\n ]),\n }\n })\n },\n },\n {\n key: \"render\",\n value: function render() {\n var _this3 = this\n\n var restProps = (0, _omit3.default)(\n this.props,\n (0, _keys3.default)(ToastContainer.defaultProps)\n )\n return _react2.default.createElement(\n \"div\",\n (0, _extends3.default)({}, restProps, {\n id: this.props.id,\n \"aria-live\": \"polite\",\n role: \"alert\",\n }),\n this.state.toastList.map(function(it) {\n return _this3.props.toastMessageFactory(it)\n })\n )\n },\n },\n ])\n return ToastContainer\n})(_react2.default.PureComponent))\n\nToastContainer.defaultProps = {\n toastType: {\n error: \"error\",\n info: \"info\",\n success: \"success\",\n warning: \"warning\",\n },\n id: \"toast-container\",\n toastMessageFactory: _react2.default.createFactory(\n _ToastMessageAnimated2.default\n ),\n preventDuplicates: true,\n newestOnTop: true,\n onClick: _noop3.default,\n}\nexports.default = ToastContainer\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-toastr/lib/components/ToastContainer.js\n// module id = 1788\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 1789\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 1790\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/array/from.js\n// module id = 1791\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js\n// module id = 1792\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js\n// module id = 1793\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js\n// module id = 1794\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js\n// module id = 1795\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js\n// module id = 1796\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js\n// module id = 1797\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js\n// module id = 1798\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.from.js\n// module id = 1799\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-call.js\n// module id = 1800\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array-iter.js\n// module id = 1801\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_create-property.js\n// module id = 1802\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/core.get-iterator-method.js\n// module id = 1803\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_classof.js\n// module id = 1804\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-detect.js\n// module id = 1805\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/assign.js\n// module id = 1806\n// module chunks = 0","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js\n// module id = 1807\n// module chunks = 0","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js\n// module id = 1808\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js\n// module id = 1809\n// module chunks = 0","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js\n// module id = 1810\n// module chunks = 0","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js\n// module id = 1811\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js\n// module id = 1812\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/define-property.js\n// module id = 1813\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js\n// module id = 1814\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 1815\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 1816\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 1817\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 1818\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 1819\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 1820\n// module chunks = 0","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js\n// module id = 1821\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 1822\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js\n// module id = 1823\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n if (it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n replacer = args[1];\n if (typeof replacer == 'function') $replacer = replacer;\n if ($replacer || !isArray(replacer)) replacer = function (key, value) {\n if ($replacer) value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js\n// module id = 1824\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js\n// module id = 1825\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js\n// module id = 1826\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js\n// module id = 1827\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 1828\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 1830\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 1831\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 1832\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 1833\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 1834\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js\n// module id = 1835\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/create.js\n// module id = 1836\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js\n// module id = 1837\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js\n// module id = 1838\n// module chunks = 0","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isObject = require('./isObject'),\n keys = require('./keys');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseClone.js\n// module id = 1839\n// module chunks = 0","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseAssign.js\n// module id = 1840\n// module chunks = 0","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseAssignIn.js\n// module id = 1841\n// module chunks = 0","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseKeysIn.js\n// module id = 1842\n// module chunks = 0","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_nativeKeysIn.js\n// module id = 1843\n// module chunks = 0","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneBuffer.js\n// module id = 1844\n// module chunks = 0","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_copySymbols.js\n// module id = 1845\n// module chunks = 0","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_copySymbolsIn.js\n// module id = 1846\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_initCloneArray.js\n// module id = 1847\n// module chunks = 0","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneMap = require('./_cloneMap'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSet = require('./_cloneSet'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_initCloneByTag.js\n// module id = 1848\n// module chunks = 0","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneDataView.js\n// module id = 1849\n// module chunks = 0","var addMapEntry = require('./_addMapEntry'),\n arrayReduce = require('./_arrayReduce'),\n mapToArray = require('./_mapToArray');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), CLONE_DEEP_FLAG) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\nmodule.exports = cloneMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneMap.js\n// module id = 1850\n// module chunks = 0","/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\nmodule.exports = addMapEntry;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_addMapEntry.js\n// module id = 1851\n// module chunks = 0","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneRegExp.js\n// module id = 1852\n// module chunks = 0","var addSetEntry = require('./_addSetEntry'),\n arrayReduce = require('./_arrayReduce'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), CLONE_DEEP_FLAG) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\nmodule.exports = cloneSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneSet.js\n// module id = 1853\n// module chunks = 0","/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\nmodule.exports = addSetEntry;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_addSetEntry.js\n// module id = 1854\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneSymbol.js\n// module id = 1855\n// module chunks = 0","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_cloneTypedArray.js\n// module id = 1856\n// module chunks = 0","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_initCloneObject.js\n// module id = 1857\n// module chunks = 0","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseUnset.js\n// module id = 1858\n// module chunks = 0","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/last.js\n// module id = 1859\n// module chunks = 0","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_parent.js\n// module id = 1860\n// module chunks = 0","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseSlice.js\n// module id = 1861\n// module chunks = 0","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_customOmitClone.js\n// module id = 1862\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isPlainObject.js\n// module id = 1863\n// module chunks = 0","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/flatten.js\n// module id = 1864\n// module chunks = 0","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseSetToString.js\n// module id = 1865\n// module chunks = 0","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/constant.js\n// module id = 1866\n// module chunks = 0","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n negate = require('./negate');\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nmodule.exports = reject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/reject.js\n// module id = 1867\n// module chunks = 0","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseFilter.js\n// module id = 1868\n// module chunks = 0","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/negate.js\n// module id = 1869\n// module chunks = 0","var baseRest = require('./_baseRest'),\n createWrap = require('./_createWrap'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nmodule.exports = bind;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/bind.js\n// module id = 1870\n// module chunks = 0","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseRest.js\n// module id = 1871\n// module chunks = 0","var baseSetData = require('./_baseSetData'),\n createBind = require('./_createBind'),\n createCurry = require('./_createCurry'),\n createHybrid = require('./_createHybrid'),\n createPartial = require('./_createPartial'),\n getData = require('./_getData'),\n mergeData = require('./_mergeData'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString'),\n toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createWrap.js\n// module id = 1872\n// module chunks = 0","var createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nmodule.exports = createBind;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createBind.js\n// module id = 1873\n// module chunks = 0","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n createHybrid = require('./_createHybrid'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createCurry;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createCurry.js\n// module id = 1874\n// module chunks = 0","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nmodule.exports = countHolders;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_countHolders.js\n// module id = 1875\n// module chunks = 0","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_realNames.js\n// module id = 1876\n// module chunks = 0","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/wrapperLodash.js\n// module id = 1877\n// module chunks = 0","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n copyArray = require('./_copyArray');\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nmodule.exports = wrapperClone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_wrapperClone.js\n// module id = 1878\n// module chunks = 0","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_getWrapDetails.js\n// module id = 1879\n// module chunks = 0","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_insertWrapDetails.js\n// module id = 1880\n// module chunks = 0","var arrayEach = require('./_arrayEach'),\n arrayIncludes = require('./_arrayIncludes');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_updateWrapDetails.js\n// module id = 1881\n// module chunks = 0","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_arrayIncludes.js\n// module id = 1882\n// module chunks = 0","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseFindIndex.js\n// module id = 1883\n// module chunks = 0","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseIsNaN.js\n// module id = 1884\n// module chunks = 0","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_strictIndexOf.js\n// module id = 1885\n// module chunks = 0","var copyArray = require('./_copyArray'),\n isIndex = require('./_isIndex');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nmodule.exports = reorder;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_reorder.js\n// module id = 1886\n// module chunks = 0","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createPartial;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createPartial.js\n// module id = 1887\n// module chunks = 0","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nmodule.exports = mergeData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_mergeData.js\n// module id = 1888\n// module chunks = 0","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/toFinite.js\n// module id = 1889\n// module chunks = 0","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/toNumber.js\n// module id = 1890\n// module chunks = 0","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/uniqueId.js\n// module id = 1891\n// module chunks = 0","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/includes.js\n// module id = 1892\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isString.js\n// module id = 1893\n// module chunks = 0","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/values.js\n// module id = 1894\n// module chunks = 0","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_baseValues.js\n// module id = 1895\n// module chunks = 0","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isNil.js\n// module id = 1896\n// module chunks = 0","var createFlow = require('./_createFlow');\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nmodule.exports = flowRight;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/flowRight.js\n// module id = 1897\n// module chunks = 0","var LodashWrapper = require('./_LodashWrapper'),\n flatRest = require('./_flatRest'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n isArray = require('./isArray'),\n isLaziable = require('./_isLaziable');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nmodule.exports = createFlow;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/_createFlow.js\n// module id = 1898\n// module chunks = 0","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/lodash/isUndefined.js\n// module id = 1899\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inDOM = require('../util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar on = function on() {};\nif (_inDOM2.default) {\n on = function () {\n\n if (document.addEventListener) return function (node, eventName, handler, capture) {\n return node.addEventListener(eventName, handler, capture || false);\n };else if (document.attachEvent) return function (node, eventName, handler) {\n return node.attachEvent('on' + eventName, function (e) {\n e = e || window.event;\n e.target = e.target || e.srcElement;\n e.currentTarget = node;\n handler.call(node, e);\n });\n };\n }();\n}\n\nexports.default = on;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/events/on.js\n// module id = 1900\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined;\n\nvar _inDOM = require('../util/inDOM');\n\nvar _inDOM2 = _interopRequireDefault(_inDOM);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transform = 'transform';\nvar prefix = void 0,\n transitionEnd = void 0,\n animationEnd = void 0;\nvar transitionProperty = void 0,\n transitionDuration = void 0,\n transitionTiming = void 0,\n transitionDelay = void 0;\nvar animationName = void 0,\n animationDuration = void 0,\n animationTiming = void 0,\n animationDelay = void 0;\n\nif (_inDOM2.default) {\n var _getTransitionPropert = getTransitionProperties();\n\n prefix = _getTransitionPropert.prefix;\n exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;\n exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;\n\n\n exports.transform = transform = prefix + '-' + transform;\n exports.transitionProperty = transitionProperty = prefix + '-transition-property';\n exports.transitionDuration = transitionDuration = prefix + '-transition-duration';\n exports.transitionDelay = transitionDelay = prefix + '-transition-delay';\n exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function';\n\n exports.animationName = animationName = prefix + '-animation-name';\n exports.animationDuration = animationDuration = prefix + '-animation-duration';\n exports.animationTiming = animationTiming = prefix + '-animation-delay';\n exports.animationDelay = animationDelay = prefix + '-animation-timing-function';\n}\n\nexports.transform = transform;\nexports.transitionProperty = transitionProperty;\nexports.transitionTiming = transitionTiming;\nexports.transitionDelay = transitionDelay;\nexports.transitionDuration = transitionDuration;\nexports.transitionEnd = transitionEnd;\nexports.animationName = animationName;\nexports.animationDuration = animationDuration;\nexports.animationTiming = animationTiming;\nexports.animationDelay = animationDelay;\nexports.animationEnd = animationEnd;\nexports.default = {\n transform: transform,\n end: transitionEnd,\n property: transitionProperty,\n timing: transitionTiming,\n delay: transitionDelay,\n duration: transitionDuration\n};\n\n\nfunction getTransitionProperties() {\n var style = document.createElement('div').style;\n\n var vendorMap = {\n O: function O(e) {\n return 'o' + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return 'webkit' + e;\n },\n ms: function ms(e) {\n return 'MS' + e;\n }\n };\n\n var vendors = Object.keys(vendorMap);\n\n var transitionEnd = void 0,\n animationEnd = void 0;\n var prefix = '';\n\n for (var i = 0; i < vendors.length; i++) {\n var vendor = vendors[i];\n\n if (vendor + 'TransitionProperty' in style) {\n prefix = '-' + vendor.toLowerCase();\n transitionEnd = vendorMap[vendor]('TransitionEnd');\n animationEnd = vendorMap[vendor]('AnimationEnd');\n break;\n }\n }\n\n if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';\n\n if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';\n\n style = null;\n\n return { animationEnd: animationEnd, transitionEnd: transitionEnd, prefix: prefix };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/dom-helpers/transition/properties.js\n// module id = 1901\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/objectWithoutProperties.js\n// module id = 1902\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"containers_with-ellipsis---sb\",\"withEllipsis\":\"containers_with-ellipsis---sb\",\"app\":\"containers_app---sb\",\"segment\":\"containers_segment---sb\",\"full-height\":\"containers_full-height---sb\",\"fullHeight\":\"containers_full-height---sb\",\"static-cart-wrapper\":\"containers_static-cart-wrapper---sb\",\"staticCartWrapper\":\"containers_static-cart-wrapper---sb\",\"rtl\":\"containers_rtl---sb\",\"mobile\":\"containers_mobile---sb\",\"toastr\":\"containers_toastr---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/containers/styles.less\n// module id = 1903\n// module chunks = 0","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { Dropdown } from \"semantic-ui-react\";\r\nimport cx from \"classnames\";\r\nimport * as currenciesActions from \"../../actions/currenciesActions\";\r\n// import mockCurrencies from \"./mock\";\r\nimport { LAST_CURRENCY } from \"../../constants/constants\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass CurrenciesDropdown extends Component {\r\n async componentDidMount() {\r\n const { actions, defaultCurrency } = this.props;\r\n await actions.getCurrenciesList();\r\n this.updateCurrencyIfNedded(actions.setCurrency, defaultCurrency);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { actions, defaultCurrency } = this.props;\r\n if (defaultCurrency !== prevProps.defaultCurrency) {\r\n if (defaultCurrency) {\r\n actions.setCurrency(defaultCurrency);\r\n }\r\n }\r\n }\r\n\r\n updateCurrencyIfNedded = (setCurrency, selectedCurrency) => {\r\n const serverSearchData = sessionStorage.getItem(LAST_CURRENCY);\r\n const currency = this.calcCurrency(serverSearchData, selectedCurrency);\r\n if (currency) {\r\n setCurrency(currency);\r\n }\r\n };\r\n\r\n calcCurrency = (SearchData, currency) => SearchData || currency;\r\n\r\n onCurrencyChange = async (e, { value }) => {\r\n const { actions } = this.props;\r\n await actions.setCurrency(value);\r\n sessionStorage.setItem(LAST_CURRENCY, value);\r\n };\r\n\r\n getDropdownValues = () => {\r\n const { selectedCurrency, currencies, isMobileView, titles } = this.props;\r\n\r\n const anySelectedCurrency = selectedCurrency !== \"\";\r\n let icon = \"exchange\";\r\n let text = titles.ConvertingCurrency;\r\n\r\n if (isMobileView) {\r\n text = \"\";\r\n }\r\n\r\n if (anySelectedCurrency) {\r\n const currency = currencies.find(\r\n c => c.currencyCode === selectedCurrency\r\n );\r\n icon = null;\r\n text = `${currency.symbol} - ${currency.currencyCode}`;\r\n if (isMobileView) {\r\n text = currency.symbol;\r\n }\r\n }\r\n\r\n return { text, icon };\r\n };\r\n\r\n toRender = () => {\r\n const { selectedCurrency, currencies, isMobileView } = this.props;\r\n const mainCurrencies = currencies.filter(c => c.main);\r\n const subCurrencies = currencies.filter(c => !c.main);\r\n const { text } = this.getDropdownValues();\r\n\r\n return (\r\n \r\n \r\n \r\n {mainCurrencies.map(c => (\r\n \r\n ))}\r\n \r\n {subCurrencies.map(c => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n render() {\r\n const { currencies } = this.props;\r\n const isCurrenciesExist = currencies.length > 0;\r\n\r\n return isCurrenciesExist ? this.toRender() : ;\r\n }\r\n}\r\nCurrenciesDropdown.defaultProp = {\r\n currencies: [],\r\n isMobileView: false,\r\n titles: {},\r\n defaultCurrency: \"\"\r\n};\r\n\r\nCurrenciesDropdown.propTypes = {\r\n actions: PropTypes.object,\r\n selectedCurrency: PropTypes.string,\r\n currencies: PropTypes.array,\r\n isMobileView: PropTypes.bool,\r\n titles: PropTypes.object,\r\n defaultCurrency: PropTypes.string\r\n};\r\n\r\nfunction mapStateToProps(store) {\r\n return {\r\n selectedCurrency: store.selectedCurrency,\r\n currencies: store.currencies,\r\n isMobileView: store.isMobileView,\r\n titles: store.titles,\r\n defaultCurrency: store.hotelData.CurrencyCode\r\n };\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n const combinedActions = {\r\n ...currenciesActions\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(CurrenciesDropdown);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/CurrenciesDropdown/CurrenciesDropdown.js","import * as types from \"../constants/actionTypes\";\r\nimport { getCurrencies } from \"../api/currencies\";\r\nimport { generateAsyncAction } from \"./generateAsyncAction\";\r\n\r\nexport const setCurrency = currency => dispatch => {\r\n dispatch({\r\n type: types.SET_CURRENCY,\r\n payload: currency\r\n });\r\n};\r\n\r\nexport const getCurrenciesList = () => async dispatch => {\r\n dispatch({ type: types.GET_CURRENCIES_REQUEST });\r\n const getCurrenciesAction = await generateAsyncAction({\r\n onFailAction: currenciesFailed,\r\n onSuccessAction: currenciesSuccess,\r\n asyncApiMethod: getCurrencies\r\n });\r\n return dispatch(getCurrenciesAction);\r\n};\r\n\r\nexport const setCurrencies = list => dispatch => {\r\n dispatch({\r\n type: types.GET_CURRENCIES_SUCCESS,\r\n payload: list\r\n });\r\n};\r\n\r\nexport const currenciesSuccess = ({ payload }) => dispatch => {\r\n dispatch({\r\n type: types.GET_CURRENCIES_SUCCESS,\r\n payload: payload\r\n });\r\n};\r\n\r\nconst currenciesFailed = ({ message, title }) => ({\r\n type: types.GET_CURRENCIES_FAILED,\r\n meta: {\r\n globalModal: {\r\n message,\r\n title\r\n }\r\n }\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/currenciesActions.js","import BaseApi from \"./BaseApi\";\r\n\r\nexport const getCurrencies = async () => {\r\n const result = await BaseApi.get(\"/cdn/GetCurrencies\");\r\n return result;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/currencies.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"CurrenciesDropdown_with-ellipsis---sb\",\"withEllipsis\":\"CurrenciesDropdown_with-ellipsis---sb\",\"dropdown-wrapper\":\"CurrenciesDropdown_dropdown-wrapper---sb\",\"dropdownWrapper\":\"CurrenciesDropdown_dropdown-wrapper---sb\",\"dropdown\":\"CurrenciesDropdown_dropdown---sb\",\"dropdown-menu\":\"CurrenciesDropdown_dropdown-menu---sb\",\"dropdownMenu\":\"CurrenciesDropdown_dropdown-menu---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/containers/CurrenciesDropdown/styles.less\n// module id = 1907\n// module chunks = 0","export { default as RegistrationPayment } from \"./RegistrationPayment\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/RegistrationPayment/index.js","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { push, replace } from \"react-router-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport stringSimilarity from \"string-similarity\";\r\nimport {\r\n REGISTRATION_ANALYTICS_PHASE,\r\n PAYMENT_ANALYTICS_PHASE\r\n} from \"../../constants/general\";\r\nimport { changeDateToMomentFormat } from \"../../helpers/dateHelpers\";\r\nimport { removeHTMLFromString } from \"../../helpers/domHelpers\";\r\nimport {\r\n isRTL,\r\n availablePaxList,\r\n getCartTotalPrices,\r\n getSelectedHotelName\r\n} from \"../../reducers\";\r\nimport {\r\n setRegistrationData,\r\n setTotalAmount,\r\n setOrderCurrency,\r\n getClubLLoggedUserData\r\n} from \"../../actions/registrationActions\";\r\nimport * as addonsActions from \"../../actions/addonsActions\";\r\nimport {\r\n getAnalyticsPlaceHolders,\r\n clearAnalyticsPlaceHolders\r\n} from \"../../actions/placeHoldersActions\";\r\nimport {\r\n getPaymentData,\r\n setReservation,\r\n payPalProxy\r\n} from \"../../actions/paymentActions\";\r\nimport { setOrderSummary } from \"../../actions/orderSummaryActions\";\r\nimport RegistrationForm from \"../../components/RegistrationForm\";\r\nimport Payment from \"../../components/Payment/Payment\";\r\nimport ClubBanner from \"../../components/ClubBanner\";\r\nimport AddonCarouselGroup from \"../../components/AddonCarouselGroup\";\r\nimport { PlaceHolder } from \"../../components/common\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass RegistrationPayment extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n transactionId: null,\r\n paymentFormVisible: false\r\n };\r\n this.setOrderSummary();\r\n // window.addEventListener(\r\n // \"beforeunload\",\r\n // this.showDialogBeforUnloading.bind(this)\r\n // );\r\n }\r\n\r\n componentDidMount() {\r\n // onLoad from generalHandlers of ScrollManager wrapper:\r\n // check whether scrolling up should be done, if do, scroll.\r\n setTimeout(this.props.onLoad(), 0);\r\n }\r\n\r\n /** each update, check if payment confirmed, if so, redirect to confirmation.\r\n * payment confirmed by checking if valid token or transactionId is stored and has new value.\r\n */\r\n componentDidUpdate = prevProps => {\r\n const { isPayPal, transactionId, token, selectedAddonsGroup } = this.props;\r\n const { paymentFormVisible } = this.state;\r\n if (isPayPal != null && !isPayPal) {\r\n if (\r\n prevProps.transactionId != transactionId &&\r\n transactionId != null &&\r\n transactionId.length > 0\r\n ) {\r\n this.continueToConfirmation();\r\n }\r\n } else {\r\n if (prevProps.token != token && token != null && token.length > 0) {\r\n this.continueToConfirmation();\r\n }\r\n }\r\n if (\r\n paymentFormVisible &&\r\n prevProps.selectedAddonsGroup != selectedAddonsGroup\r\n ) {\r\n this.continueToPayment();\r\n }\r\n };\r\n\r\n componentWillUnmount() {\r\n window.beforeunload = null;\r\n }\r\n\r\n /**\r\n * Get analytics code from server and append it to #page-analytics-wrapper element ( append action include the execution ).\r\n * Generate the code with the data stored until this phase ( ex, no masterid )\r\n */\r\n getRegistrationAnalyticsPlaceHolders = () => {\r\n const {\r\n selectedHotelId,\r\n checkinDate,\r\n checkoutDate,\r\n promoCode,\r\n hotelName,\r\n orderSummary,\r\n orderCurrency,\r\n actions\r\n } = this.props;\r\n const rooms = orderSummary.map(r => ({\r\n RoomsId: r.id,\r\n Price: r.price\r\n }));\r\n const postObject = {\r\n Phase: REGISTRATION_ANALYTICS_PHASE,\r\n Currency: orderCurrency && orderCurrency.currencyCode,\r\n HotelId: selectedHotelId,\r\n HotelName: hotelName,\r\n CheckInDate: checkinDate,\r\n CheckoutDate: checkoutDate,\r\n PromoCode: promoCode,\r\n Rooms: rooms\r\n };\r\n actions.getAnalyticsPlaceHolders(postObject);\r\n };\r\n getPaymentAnalyticsPlaceHolders = () => {\r\n // for now, its should be same model data as registration..\r\n const {\r\n selectedHotelId,\r\n checkinDate,\r\n checkoutDate,\r\n promoCode,\r\n hotelName,\r\n orderSummary,\r\n orderCurrency,\r\n actions\r\n } = this.props;\r\n const rooms = orderSummary.map(r => ({\r\n RoomsId: r.id,\r\n Price: r.price\r\n }));\r\n const postObject = {\r\n Phase: PAYMENT_ANALYTICS_PHASE,\r\n Currency: orderCurrency && orderCurrency.currencyCode,\r\n HotelId: selectedHotelId,\r\n HotelName: hotelName,\r\n CheckInDate: checkinDate,\r\n CheckoutDate: checkoutDate,\r\n PromoCode: promoCode,\r\n Rooms: rooms\r\n };\r\n actions.getAnalyticsPlaceHolders(postObject);\r\n };\r\n\r\n showDialogBeforUnloading = event => {\r\n event.preventDefault();\r\n return (event.returnValue = \"\");\r\n };\r\n\r\n onAddonRoomChanged = roomNum => {\r\n const { actions } = this.props;\r\n actions.setAddonsCurosselRoomNum(roomNum);\r\n };\r\n\r\n updateRegistrationData = registrationData => {\r\n const { actions } = this.props;\r\n actions.setRegistrationData(registrationData);\r\n };\r\n\r\n onSubmit = async registrationData => {\r\n const { actions, isNoPayment } = this.props;\r\n await actions.setRegistrationData(registrationData);\r\n if (!isNoPayment) {\r\n this.continueToPayment();\r\n } else {\r\n this.continueToConfirmation();\r\n }\r\n };\r\n\r\n togglePaymentSection = () => {\r\n this.setState(prevState => ({\r\n paymentFormVisible: !prevState.paymentFormVisible\r\n }));\r\n };\r\n\r\n /** set final step of reservation process - payment.\r\n * calculate all the relavent parameters for creditguard/pelecard and create tokened src url for the iframe.\r\n */\r\n continueToPayment = async () => {\r\n const {\r\n actions,\r\n orderCurrency,\r\n lang,\r\n selectedHotelId,\r\n paxList,\r\n checkinDate,\r\n checkoutDate\r\n } = this.props;\r\n await this.calcAddonsForOrder();\r\n const totalAmountToPay = this.calcTotalAmountToPayInludingSpecialServices();\r\n const checkinDateMoment = changeDateToMomentFormat(checkinDate, \".\");\r\n const checkoutDateMoment = changeDateToMomentFormat(checkoutDate, \".\");\r\n const totalNights = checkoutDateMoment.diff(checkinDateMoment, \"days\");\r\n let orderDescription = \"\";\r\n paxList.map(pax => {\r\n orderDescription += pax.roomId + \", \";\r\n });\r\n let req = {\r\n amount: totalAmountToPay,\r\n currency: orderCurrency && orderCurrency.currencyCode,\r\n lang,\r\n hotelId: selectedHotelId,\r\n orderDescription,\r\n totalNights\r\n };\r\n actions.getPaymentData(req);\r\n };\r\n\r\n setOrderSummary = () => {\r\n const {\r\n isDealMode,\r\n dealSearchResults,\r\n rooms,\r\n clubUserLoggedIn,\r\n paxList,\r\n actions,\r\n titles\r\n } = this.props;\r\n let totalAmount = 0;\r\n let currencyCode = \"\";\r\n let currencySymbol = \"\";\r\n const result =\r\n paxList &&\r\n paxList.map((pax, index) => {\r\n /* Important!! we use the index for mapping the inputs\r\n because the pax.id can be off (if we removed a pax from the cart)\r\n server side needs the original index and not our modified index - sagiv. \r\n */\r\n const releventRoom = !isDealMode\r\n ? rooms[pax.id].find(room => room.id === pax.roomId) || {}\r\n : dealSearchResults[pax.id].find(deal => deal.roomId === pax.roomId);\r\n\r\n const relevantRate = !isDealMode\r\n ? releventRoom && releventRoom.rates\r\n ? releventRoom.rates.find(rate => rate.id === pax.rateId) || {}\r\n : {}\r\n : releventRoom && releventRoom.rate;\r\n\r\n currencySymbol = relevantRate.currency;\r\n currencyCode = relevantRate.currencyCode;\r\n\r\n const totalPriceForSession = clubUserLoggedIn\r\n ? relevantRate && relevantRate.simpleClubTotalPrice\r\n : relevantRate && relevantRate.totalPrice;\r\n\r\n totalAmount = +totalPriceForSession;\r\n\r\n const roomName = removeHTMLFromString(\r\n releventRoom && releventRoom.name\r\n );\r\n\r\n const paxChildren =\r\n pax.Children > 0 ? `${pax.Children} ${titles.Children}` : \"\";\r\n const paxInfants =\r\n pax.Infants > 0 ? `${pax.Infants} ${titles.Infants}` : \"\";\r\n const paxGuests =\r\n paxChildren != \"\" && paxInfants != \"\"\r\n ? `${pax.Adults} ${titles.Adults}, ${paxChildren}, ${paxInfants}`\r\n : paxChildren != \"\"\r\n ? `${pax.Adults} ${titles.Adults}, ${paxChildren}`\r\n : paxInfants != \"\"\r\n ? `${pax.Adults} ${titles.Adults}, ${paxInfants}`\r\n : `${pax.Adults} ${titles.Adults}`;\r\n const roomFullTitle = `${roomName}, ${paxGuests}`;\r\n let room = {};\r\n room.key = index;\r\n room.value = index;\r\n room.label = roomFullTitle;\r\n room.id = releventRoom.id;\r\n room.price = totalPriceForSession;\r\n room.name = releventRoom.name;\r\n return room;\r\n });\r\n let currency = {\r\n currencyCode,\r\n currencySymbol\r\n };\r\n actions.setTotalAmount(totalAmount);\r\n actions.setOrderCurrency(currency);\r\n actions.setOrderSummary(result);\r\n };\r\n\r\n onAddonIncrementClick = (addonCode, msg) => {\r\n const { actions, addonsCurosselRoomNumber } = this.props;\r\n actions.onAddonAdd(addonsCurosselRoomNumber, addonCode, msg);\r\n };\r\n\r\n continueToConfirmation = () => {\r\n this.setReservation();\r\n this.redirectToConfirmation();\r\n };\r\n\r\n calcAddonsForOrder = async () => {\r\n const { selectedAddonsGroup, paxList, addons, actions } = this.props;\r\n const result =\r\n paxList &&\r\n paxList.map(pax => {\r\n let currentSelectedGroup = selectedAddonsGroup[pax.id];\r\n let selectedAddonsPerPax =\r\n currentSelectedGroup &&\r\n Object.entries(currentSelectedGroup).reduce(\r\n (result, [addonKey, count]) => {\r\n const relevantAddon = addons[pax.id].find(\r\n addon => addon.id === addonKey\r\n );\r\n if (relevantAddon) {\r\n result.push({\r\n ID: relevantAddon.id,\r\n Quantity: count,\r\n Name: relevantAddon.name,\r\n TotalPrice: relevantAddon.price * count\r\n });\r\n }\r\n return result;\r\n },\r\n []\r\n );\r\n return selectedAddonsPerPax;\r\n });\r\n await actions.setAddonsForOrder(result);\r\n return result;\r\n };\r\n\r\n calcTotalAmountToPayInludingSpecialServices = () => {\r\n const { addonsForOrder, totalAmountToPay } = this.props;\r\n let totalAmountSpecialServices = 0;\r\n addonsForOrder &&\r\n addonsForOrder.forEach(currentValue => {\r\n let sum = 0;\r\n currentValue &&\r\n currentValue.forEach(element => {\r\n sum += element.Quantity * element.TotalPrice;\r\n });\r\n totalAmountSpecialServices += sum;\r\n });\r\n return totalAmountToPay + Math.round(totalAmountSpecialServices);\r\n };\r\n\r\n redirectToConfirmation() {\r\n const { actions, routing } = this.props;\r\n actions.replace(\r\n {\r\n pathname: \"/confirmation\",\r\n search: routing.location.search\r\n },\r\n null\r\n );\r\n }\r\n\r\n setReservation() {\r\n const {\r\n actions,\r\n registrationData,\r\n paxList,\r\n lang,\r\n transactionId,\r\n token,\r\n payerId,\r\n isPayPal,\r\n selectedHotelId,\r\n checkinDate,\r\n checkoutDate,\r\n promoCode,\r\n orderCurrency,\r\n isPromoCodeValid,\r\n addonsForOrder,\r\n userComments\r\n } = this.props;\r\n let SelectedSessions = paxList.map((element, index) => {\r\n return {\r\n sessionId: element.rateId,\r\n IsPackage: element.IsPackage,\r\n SelectedServices: addonsForOrder && addonsForOrder[index]\r\n };\r\n });\r\n const totalAmountToPay = this.calcTotalAmountToPayInludingSpecialServices();\r\n let req = {};\r\n if (isPayPal) {\r\n req = {\r\n SelectedHotelId: selectedHotelId,\r\n registrationData,\r\n CheckIn: checkinDate,\r\n CheckOut: checkoutDate,\r\n PromoCode: promoCode,\r\n IsPromoCodeValid: isPromoCodeValid,\r\n Lang: lang,\r\n token: token,\r\n payerId: payerId,\r\n currency: orderCurrency && orderCurrency.currencyCode,\r\n totalAmount: totalAmountToPay\r\n };\r\n } else {\r\n req = {\r\n SelectedHotelId: selectedHotelId,\r\n registrationData,\r\n CheckIn: checkinDate,\r\n CheckOut: checkoutDate,\r\n PromoCode: promoCode,\r\n IsPromoCodeValid: isPromoCodeValid,\r\n Lang: lang,\r\n TransactionId: transactionId,\r\n UserComments: userComments\r\n };\r\n }\r\n req.selectedSessions = SelectedSessions;\r\n actions.setReservation(req);\r\n }\r\n\r\n renderPaymentProcess() {\r\n const {\r\n payment,\r\n actions,\r\n titles,\r\n isMobileView,\r\n lang,\r\n transactionId,\r\n token,\r\n isRtl,\r\n discountClubConfig,\r\n orderCurrency,\r\n showSimpleClubLoginModal,\r\n totalAmountToPay,\r\n clubUserLoggedIn,\r\n isGlobalFetch,\r\n paymentUrlRequestStatus,\r\n placeHolders,\r\n domainUrl\r\n } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n handleRegistrationPaymentRef = node => {\r\n const { handleRegistrationPaymentRef } = this.props;\r\n if (handleRegistrationPaymentRef) {\r\n handleRegistrationPaymentRef(node);\r\n }\r\n };\r\n\r\n render() {\r\n const {\r\n titles,\r\n isMobileView,\r\n countries,\r\n isRtl,\r\n isNoPayment,\r\n termsAndConditions,\r\n registrationSubmitingStatus,\r\n registrationModel,\r\n registrationData,\r\n registrationModelContact,\r\n showContactDetailsInRegistration,\r\n addonsByPaxIndex,\r\n selectedAddonsGroup,\r\n onShowAddonDetailsClick,\r\n addonsCurosselRoomNumber,\r\n selectedPaxId,\r\n paxList,\r\n orderSummary,\r\n clubUserLoggedIn,\r\n clubUserData,\r\n totalPrices,\r\n clubTotalPrices,\r\n discountClubConfig,\r\n orderCurrency,\r\n showSimpleClubLoginModal,\r\n handleRegistrationFormRef,\r\n scrollToRegistrationForm,\r\n isIE,\r\n domainUrl,\r\n lang,\r\n showMessage,\r\n placeHolders,\r\n enableAddonsRegistration\r\n } = this.props;\r\n const { paymentFormVisible } = this.state;\r\n const showClubBanner =\r\n !clubUserLoggedIn && discountClubConfig && discountClubConfig.Active;\r\n\r\n return (\r\n \r\n
\r\n {showClubBanner && (\r\n
\r\n )}\r\n {enableAddonsRegistration &&\r\n addonsByPaxIndex &&\r\n addonsByPaxIndex.length > 0 && (\r\n
\r\n )}{\" \"}\r\n
0\r\n ? this.getRegistrationAnalyticsPlaceHolders\r\n : null\r\n }\r\n clearAnalyticsPlaceHolders={clearAnalyticsPlaceHolders}\r\n />\r\n {paymentFormVisible && this.renderPaymentProcess()}\r\n \r\n );\r\n }\r\n}\r\n\r\nRegistrationPayment.defaultProps = {\r\n addonsByPaxIndex: []\r\n};\r\n\r\nRegistrationPayment.propTypes = {\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n lang: PropTypes.string,\r\n rooms: PropTypes.object,\r\n hotelName: PropTypes.string,\r\n paxList: PropTypes.array,\r\n actions: PropTypes.object,\r\n clubUserLoggedIn: PropTypes.bool,\r\n clubUserData: PropTypes.object,\r\n totalPrices: PropTypes.object,\r\n clubTotalPrices: PropTypes.object,\r\n dealSearchResults: PropTypes.array,\r\n addonsCurosselRoomNumber: PropTypes.number,\r\n isDealMode: PropTypes.bool,\r\n countries: PropTypes.array,\r\n isRtl: PropTypes.bool,\r\n termsAndConditions: PropTypes.string,\r\n registrationSubmitingStatus: PropTypes.object,\r\n routing: PropTypes.object,\r\n registrationModel: PropTypes.array,\r\n registrationModelContact: PropTypes.array,\r\n registrationData: PropTypes.object,\r\n showContactDetailsInRegistration: PropTypes.bool,\r\n promoCode: PropTypes.string,\r\n selectedHotelId: PropTypes.string,\r\n checkinDate: PropTypes.string,\r\n checkoutDate: PropTypes.string,\r\n isIE: PropTypes.bool,\r\n isNoPayment: PropTypes.bool,\r\n payment: PropTypes.object,\r\n transactionId: PropTypes.string,\r\n token: PropTypes.string,\r\n payerId: PropTypes.string,\r\n isPayPal: PropTypes.bool,\r\n totalAmountToPay: PropTypes.number,\r\n orderCurrency: PropTypes.object,\r\n isPromoCodeValid: PropTypes.bool,\r\n addonsByPaxIndex: PropTypes.array,\r\n selectedAddonsGroup: PropTypes.object,\r\n discountClubConfig: PropTypes.object,\r\n showSimpleClubLoginModal: PropTypes.func,\r\n selectedPaxId: PropTypes.number,\r\n orderSummary: PropTypes.array,\r\n addons: PropTypes.object,\r\n addonsForOrder: PropTypes.array,\r\n onLoad: PropTypes.func,\r\n handleRegistrationPaymentRef: PropTypes.func,\r\n handleRegistrationFormRef: PropTypes.func,\r\n scrollToRegistrationForm: PropTypes.func,\r\n onShowAddonDetailsClick: PropTypes.func,\r\n isGlobalFetch: PropTypes.bool,\r\n domainUrl: PropTypes.string,\r\n paymentUrlRequestStatus: PropTypes.bool,\r\n showMessage: PropTypes.func,\r\n placeHolders: PropTypes.array,\r\n enableAddonsRegistration: PropTypes.bool\r\n};\r\n\r\nconst mapStateToProps = store => {\r\n const { addonImagesLookupTable } = store;\r\n\r\n const regTotalPrices = getCartTotalPrices(store);\r\n const regClubTotalPrices = getCartTotalPrices(store, true);\r\n const hotelName = getSelectedHotelName(store);\r\n\r\n const state = {\r\n lang: store.lang,\r\n checkinDate: store.checkinDate,\r\n checkoutDate: store.checkoutDate,\r\n paxList: availablePaxList(store),\r\n rooms: store.rooms,\r\n clubUserLoggedIn: store.clubUserLoggedIn,\r\n clubUserData: store.clubUserData,\r\n totalPrices: regTotalPrices,\r\n clubTotalPrices: regClubTotalPrices,\r\n dealSearchResults: store.dealSearchResults,\r\n isDealMode: store.isDealMode,\r\n titles: store.titles,\r\n isMobileView: store.isMobileView,\r\n countries: store.countries,\r\n isRtl: isRTL(store),\r\n termsAndConditions: store.termsAndConditions,\r\n registrationSubmitingStatus: store.registrationSubmitingStatus,\r\n registrationModel: store.registrationModel,\r\n registrationData: store.registrationData,\r\n showContactDetailsInRegistration: store.showContactDetailsInRegistration,\r\n registrationModelContact: store.registrationModelContact,\r\n routing: store.routing,\r\n selectedHotelId: store.selectedHotelId,\r\n promoCode: store.promoCode,\r\n isNoPayment: store.isNoPayment,\r\n payment: store.payment,\r\n totalAmountToPay: store.totalAmountToPay,\r\n orderCurrency: store.orderCurrency,\r\n isFetchingPaymentData: store.isFetchingPaymentData,\r\n isPromoCodeValid: store.isPromoCodeValid,\r\n selectedAddonsGroup: store.selectedAddonsGroup,\r\n discountClubConfig: store.discountClubConfig,\r\n selectedPaxId: store.selectedPaxId,\r\n orderSummary: store.orderSummary,\r\n addons: store.addons,\r\n isGlobalFetch: store.isGlobalFetch,\r\n addonsForOrder: store.addonsForOrder,\r\n addonsCurosselRoomNumber: store.addonsCurosselRoomNumber,\r\n domainUrl: store.domainUrl,\r\n paymentUrlRequestStatus: store.paymentUrlRequestStatus,\r\n placeHolders: store.placeHolders,\r\n userComments: store.userComments,\r\n hotelName: hotelName,\r\n enableAddonsRegistration: store.enableAddonsRegistration,\r\n addonsByPaxIndex:\r\n store.addons[store.addonsCurosselRoomNumber] &&\r\n store.addons[store.addonsCurosselRoomNumber].map(addon => {\r\n //TODO: this is bad practice to do in mapState, we need a memoized selector\r\n const bestMatch =\r\n stringSimilarity &&\r\n stringSimilarity.findBestMatch(\r\n addon.id,\r\n Object.keys(addonImagesLookupTable)\r\n ).bestMatch;\r\n const useBestMatch = bestMatch && bestMatch.rating > 0.8;\r\n return {\r\n ...addon,\r\n imageURL: useBestMatch\r\n ? addonImagesLookupTable[bestMatch.target]\r\n : addonImagesLookupTable.default\r\n };\r\n })\r\n };\r\n return state;\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n const combinedActions = {\r\n getAnalyticsPlaceHolders,\r\n setRegistrationData,\r\n setTotalAmount,\r\n setOrderCurrency,\r\n getClubLLoggedUserData,\r\n getPaymentData,\r\n setReservation,\r\n payPalProxy,\r\n replace,\r\n setOrderSummary,\r\n ...addonsActions,\r\n push\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(RegistrationPayment);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/RegistrationPayment/RegistrationPayment.js","import * as types from \"../constants/actionTypes\";\nimport { getClubLoggedUserDataFromApi } from \"../api/registration\";\nimport { generateAsyncAction } from \"./generateAsyncAction\";\n\nexport const setRegistrationData = registrationData => ({\n type: types.SET_REGISTRATION_DATA,\n payload: registrationData\n});\n\nexport const setTotalAmount = totalAmount => ({\n type: types.SET_TOTAL_AMOUNT_TO_PAY,\n payload: totalAmount\n});\n\nexport const setTotalAmountClub = totalAmountClub => ({\n type: types.SET_TOTAL_CLUB_AMOUNT_TO_PAY,\n payload: totalAmountClub\n});\n\nexport const setOrderCurrency = currency => ({\n type: types.SET_ORDER_CURRENCY,\n payload: currency\n});\n\nexport const getClubLLoggedUserData = request => async dispatch => {\n dispatch({ type: types.GET_CLUB_LOGGED_USER_DATA });\n const getClubLLoggedUserAction = await generateAsyncAction({\n onFailAction: getLoggedUserResultFailed,\n onSuccessAction: getLoggedUserResultSuccess,\n asyncApiMethod: getClubLoggedUserDataFromApi,\n request\n });\n return dispatch(getClubLLoggedUserAction);\n};\n\nconst getLoggedUserResultSuccess = ({ payload }) => ({\n type: types.GET_CLUB_LOGGED_SUCCESS,\n payload\n});\n\nconst getLoggedUserResultFailed = ({ message, title }) => ({\n type: types.GET_CLUB_LOGGED_FAIL,\n meta: {\n globalModal: {\n message,\n title\n }\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/registrationActions.js","import BaseApi from \"./BaseApi\";\r\n\r\nexport const getClubLoggedUserDataFromApi = async () => {\r\n const result = await BaseApi.get(`/GeneralAccount/GetLoggedClubUserData`);\r\n return result;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/registration.js","import * as types from \"../constants/actionTypes\";\r\nimport {\r\n getPaymentUrl,\r\n setReservationUrl,\r\n payPalProxyApi\r\n} from \"../api/payment\";\r\nimport { generateAsyncAction } from \"./generateAsyncAction\";\r\n\r\nexport const getPaymentData = req => async dispatch => {\r\n dispatch({ type: types.START_RECEIVING_PAYMENT_URL });\r\n const getPAymentUrlAction = await generateAsyncAction({\r\n onFailAction: getPaymentDataFailed,\r\n onSuccessAction: getPaymentDataSuccess,\r\n asyncApiMethod: getPaymentUrl,\r\n request: req\r\n });\r\n return dispatch(getPAymentUrlAction);\r\n};\r\n\r\nconst getPaymentDataSuccess = ({ payload }) => dispatch => {\r\n dispatch({\r\n type: types.GET_PAYMENT_URL_SUCCEED,\r\n payload: payload\r\n });\r\n};\r\n\r\nconst getPaymentDataFailed = () => dispatch => {\r\n dispatch({\r\n type: types.GET_PAYMENT_URL_FAILED\r\n });\r\n};\r\n\r\nexport const setReservation = req => async dispatch => {\r\n dispatch({ type: types.START_SETTING_RESERVATION });\r\n const setReservationAction = await generateAsyncAction({\r\n onFailAction: setReservationFailed,\r\n onSuccessAction: setReservationSuccess,\r\n asyncApiMethod: setReservationUrl,\r\n request: req\r\n });\r\n return dispatch(setReservationAction);\r\n};\r\n\r\nconst setReservationSuccess = ({ payload }) => dispatch => {\r\n dispatch({\r\n type: types.SET_RESERVATION_SUCCEED,\r\n payload: payload\r\n });\r\n};\r\n\r\nconst setReservationFailed = ({ payload }) => dispatch => {\r\n dispatch({\r\n type: types.SET_RESERVATION_FAILED,\r\n payload: payload\r\n });\r\n};\r\n\r\nexport const payPalProxy = req => async dispatch => {\r\n dispatch({ type: types.START_PAYPAL_PROXY });\r\n const payPalProxyAction = await generateAsyncAction({\r\n onFailAction: payPalProxyFailed,\r\n onSuccessAction: payPalProxySuccess,\r\n asyncApiMethod: payPalProxyApi,\r\n request: req\r\n });\r\n return dispatch(payPalProxyAction);\r\n};\r\n\r\nconst payPalProxySuccess = ({ payload }) => dispatch => {\r\n dispatch({\r\n type: types.PAYPAL_PROXY_SUCCEED,\r\n payload: payload\r\n });\r\n};\r\n\r\nconst payPalProxyFailed = () => dispatch => {\r\n dispatch({\r\n type: types.PAYPAL_PROXY_FAILED\r\n });\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/paymentActions.js","import BaseApi from \"./BaseApi\";\r\nimport qs from \"qs\";\r\n\r\nexport const getPaymentUrl = async reqObj => {\r\n const reqStr = qs.stringify(reqObj, { allowDots: true, encode: false });\r\n const result = await BaseApi.get(`/Payment/GetPaymentUrl/?${reqStr}`);\r\n return result;\r\n};\r\n\r\nexport const setReservationUrl = async reqObj => {\r\n const result = await BaseApi.post(`/Payment/SetReservation/`, reqObj);\r\n return result;\r\n};\r\n\r\nexport const payPalProxyApi = async reqObj => {\r\n const reqStr = qs.stringify(reqObj, { allowDots: true, encode: false });\r\n const result = await BaseApi.get(`/Payment/GetPayPalProxy/?${reqStr}`);\r\n return result;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/payment.js","import { SET_ORDER_SUMMARY } from \"../constants/actionTypes\";\r\n\r\nexport const setOrderSummary = orderSummary => ({\r\n type: SET_ORDER_SUMMARY,\r\n payload: orderSummary\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/orderSummaryActions.js","export { default } from \"./RegistrationForm\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/RegistrationForm/index.js","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport { Form, Message, Grid, Checkbox } from \"semantic-ui-react\";\r\nimport { Header, IcoMoon, Button, PlaceHolder } from \"../common\";\r\nimport FormInput from \"../common/Form/FormInput\";\r\nimport FormDropdown from \"../common/Form/FormDropdown\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass RegistrationForm extends React.Component {\r\n state = {\r\n registrationData: {},\r\n registrationErrors: {},\r\n termsAndConditionsRead: false,\r\n termsAndConditionsError: false,\r\n isFormSubmitted: false,\r\n formError: false,\r\n disabledFields: {},\r\n isAnalyticsLoaded: false\r\n };\r\n\r\n // updating user club details on registration form\r\n // on form mounted, if user is logged in as club member, update his details to form state.\r\n // on prop updates, check if user details has changed and update form state according to it.\r\n\r\n componentDidMount() {\r\n const { clubUserData, clubUserLoggedIn } = this.props;\r\n if (clubUserLoggedIn) {\r\n this.setClubUserDataToRegistration(clubUserData);\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const {\r\n clubUserLoggedIn,\r\n clubUserData: currentClubDetails,\r\n getAnalyticsPlaceHolders\r\n } = this.props;\r\n const { isAnalyticsLoaded } = this.state;\r\n\r\n if (clubUserLoggedIn) {\r\n if (\r\n (currentClubDetails && !prevProps.clubUserData) ||\r\n currentClubDetails.FirstName !== prevProps.clubUserData.FirstName ||\r\n currentClubDetails.LastName !== prevProps.clubUserData.LastName ||\r\n currentClubDetails.Email !== prevProps.clubUserData.Email\r\n ) {\r\n this.setClubUserDataToRegistration(currentClubDetails);\r\n }\r\n }\r\n if (!isAnalyticsLoaded && getAnalyticsPlaceHolders) {\r\n getAnalyticsPlaceHolders();\r\n this.setState({ isAnalyticsLoaded: true });\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { clearAnalyticsPlaceHolders } = this.props;\r\n clearAnalyticsPlaceHolders && clearAnalyticsPlaceHolders();\r\n }\r\n\r\n setClubUserDataToRegistration = clubUserData => {\r\n const disabledFields = {\r\n FirstName: true,\r\n LastName: true,\r\n Email: true\r\n };\r\n\r\n this.setState({\r\n registrationData: {\r\n FirstName: clubUserData.FirstName,\r\n LastName: clubUserData.LastName,\r\n Email: clubUserData.Email\r\n },\r\n disabledFields: disabledFields\r\n });\r\n };\r\n\r\n // end updating user club details on registration form\r\n\r\n onSubmit = e => {\r\n e.preventDefault();\r\n const {\r\n onSubmit,\r\n togglePaymentSection,\r\n lang,\r\n scrollToRegistrationForm,\r\n isMobileView,\r\n isNoPayment\r\n } = this.props;\r\n const { termsAndConditionsRead, registrationData } = this.state;\r\n const formValid = this.validateForm();\r\n const countryValid =\r\n lang.toLowerCase() == \"heb\" ||\r\n (lang.toLowerCase() != \"heb\" && registrationData.Country);\r\n if (termsAndConditionsRead && formValid && countryValid) {\r\n this.setState({\r\n isFormSubmitted: true\r\n });\r\n onSubmit({ ...registrationData });\r\n if (!isNoPayment) {\r\n togglePaymentSection();\r\n }\r\n } else {\r\n if (isMobileView) {\r\n scrollToRegistrationForm();\r\n }\r\n this.setState({\r\n termsAndConditionsError: !termsAndConditionsRead,\r\n formError: true,\r\n countryError: !countryValid\r\n });\r\n }\r\n };\r\n\r\n openFormForEditing = () => {\r\n const { togglePaymentSection } = this.props;\r\n this.setState({ isFormSubmitted: false });\r\n togglePaymentSection();\r\n };\r\n\r\n resetRegistrationErrors = name => {\r\n const { registrationErrors } = this.state;\r\n const updatedReg = { ...registrationErrors };\r\n if (name && registrationErrors[name]) {\r\n updatedReg[name] = null;\r\n this.setState({ registrationErrors: updatedReg });\r\n } else if (registrationErrors) {\r\n this.setState({ registrationErrors: {} });\r\n }\r\n };\r\n\r\n validateForm = () => {\r\n const { registrationModel, titles } = this.props;\r\n const { registrationData } = this.state;\r\n const requiredFields = registrationModel.filter(m => m.required);\r\n let formValid = true;\r\n let registrationFormErrors = {};\r\n if (registrationData != null) {\r\n for (let element in requiredFields) {\r\n if (isNaN(element)) {\r\n return formValid;\r\n }\r\n let field = requiredFields && requiredFields[element];\r\n if (!registrationData[field && field.name]) {\r\n formValid = false;\r\n } else if (registrationData[field && field.name]) {\r\n if (\r\n field &&\r\n field.validation &&\r\n field.validation.minLength &&\r\n registrationData[field && field.name].length <\r\n field.validation.minLength\r\n ) {\r\n registrationFormErrors[field && field.name] =\r\n titles.ValidationTooShort;\r\n this.setState({ registrationErrors: registrationFormErrors });\r\n formValid = false;\r\n } else if (field && field.validation && field.validation.pattern) {\r\n let reg = new RegExp(field.validation.pattern);\r\n if (!reg.test(registrationData[field && field.name])) {\r\n registrationFormErrors[field && field.name] =\r\n titles.ValidationPatternMismatch;\r\n this.setState({ registrationErrors: registrationFormErrors });\r\n formValid = false;\r\n }\r\n } else {\r\n this.resetRegistrationErrors(field.name);\r\n }\r\n }\r\n }\r\n } else {\r\n this.resetRegistrationErrors();\r\n formValid = false;\r\n }\r\n return formValid;\r\n };\r\n\r\n OnInputChange = (value, name) => {\r\n const nextState = {\r\n registrationData: {\r\n ...this.state.registrationData,\r\n [name]: value\r\n }\r\n };\r\n this.setState(nextState);\r\n };\r\n\r\n // onInputBlur = () => {\r\n // const { updateRegistrationData } = this.props;\r\n // const formValid = this.validateForm();\r\n // if (formValid) {\r\n // updateRegistrationData(this.state.registrationData);\r\n // }\r\n // };\r\n\r\n OnInputFocus = name => {\r\n const nextState = {\r\n registrationData: {\r\n ...this.state.registrationData,\r\n [name]: \"\"\r\n }\r\n };\r\n this.setState(nextState);\r\n };\r\n\r\n getEmailValidtionMsg = () => {\r\n const { titles } = this.props;\r\n let result = \"\";\r\n result = `${titles.ThisFieldIsMust},\r\n ${titles.ThisFieldNeedToBeEmailFormat}.`;\r\n return result;\r\n };\r\n\r\n getMessageContent = () => {\r\n const { titles } = this.props;\r\n //todo submitingStatus need to be from props\r\n const submitingStatus = {\r\n loading: false,\r\n error: false\r\n };\r\n let result = \"\";\r\n if (submitingStatus.error) result = titles.ContactFormErrorMessage;\r\n\r\n return result;\r\n };\r\n\r\n markTermsAndConditionsAsRead = () => {\r\n this.setState({\r\n termsAndConditionsRead: !this.state.termsAndConditionsRead,\r\n termsAndConditionsError: false\r\n });\r\n };\r\n\r\n renderRegistrationInputModel = (titles, registrationData, model) => {\r\n const {\r\n formError,\r\n registrationErrors,\r\n isFormSubmitted,\r\n disabledFields\r\n } = this.state;\r\n return (\r\n \r\n );\r\n };\r\n\r\n renderHeader = (headerTitle, isRtl, isMobileView, noSidePadding) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n renderFormSection = (model, sectionHeader, key) => {\r\n const { titles } = this.props;\r\n const { registrationData } = this.state;\r\n const modelLength = model.length - 1;\r\n return (\r\n \r\n {sectionHeader && (\r\n
{sectionHeader}
\r\n )}\r\n {model &&\r\n model.map((elem, index) => {\r\n if (index * 2 <= modelLength) {\r\n const currentModel = model[index * 2];\r\n const nextModel =\r\n index * 2 + 1 <= modelLength && model[index * 2 + 1];\r\n const isLastRow = index * 2 + 2 <= modelLength;\r\n return (\r\n
\r\n {currentModel != null &&\r\n this.renderRegistrationInputModel(\r\n titles,\r\n registrationData,\r\n currentModel\r\n )}\r\n {nextModel &&\r\n this.renderRegistrationInputModel(\r\n titles,\r\n registrationData,\r\n nextModel\r\n )}\r\n \r\n );\r\n }\r\n })}\r\n
\r\n );\r\n };\r\n\r\n renderForm = () => {\r\n const {\r\n titles,\r\n isMobileView,\r\n countries,\r\n isRtl,\r\n submitingStatus,\r\n lang,\r\n isNoPayment,\r\n termsAndConditions,\r\n registrationModel,\r\n registrationModelContact,\r\n showContactDetailsInRegistration,\r\n placeHolders\r\n } = this.props;\r\n const {\r\n termsAndConditionsRead,\r\n termsAndConditionsError,\r\n countryError,\r\n registrationData,\r\n isFormSubmitted\r\n } = this.state;\r\n return (\r\n \r\n );\r\n };\r\n\r\n handleRegistrationFormRef = node => {\r\n const { handleRegistrationFormRef } = this.props;\r\n if (handleRegistrationFormRef) {\r\n handleRegistrationFormRef(node);\r\n }\r\n };\r\n\r\n render() {\r\n const { isRtl, isMobileView, titles } = this.props;\r\n const { isFormSubmitted } = this.state;\r\n return (\r\n \r\n \r\n \r\n {isFormSubmitted && (\r\n \r\n )}\r\n
\r\n {this.renderForm()}\r\n \r\n );\r\n }\r\n}\r\n\r\nRegistrationForm.propTypes = {\r\n onSubmit: PropTypes.func,\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n countries: PropTypes.array,\r\n isRtl: PropTypes.bool,\r\n termsAndConditions: PropTypes.string,\r\n submitingStatus: PropTypes.object,\r\n lang: PropTypes.string,\r\n registrationModel: PropTypes.array,\r\n clubUserLoggedIn: PropTypes.bool,\r\n clubUserData: PropTypes.object,\r\n registrationModelContact: PropTypes.array,\r\n showContactDetailsInRegistration: PropTypes.bool,\r\n togglePaymentSection: PropTypes.func,\r\n handleRegistrationFormRef: PropTypes.func,\r\n scrollToRegistrationForm: PropTypes.func,\r\n isNoPayment: PropTypes.bool,\r\n placeHolders: PropTypes.array,\r\n getAnalyticsPlaceHolders: PropTypes.func,\r\n clearAnalyticsPlaceHolders: PropTypes.func\r\n //updateRegistrationData: PropTypes.func\r\n //registrationData: PropTypes.object\r\n};\r\n\r\nexport default RegistrationForm;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/RegistrationForm/RegistrationForm.js","import React from \"react\";\r\nimport { Form } from \"semantic-ui-react\";\r\nimport Select from \"react-select\";\r\nimport Only from \"react-only-when\";\r\nimport PropTypes from \"prop-types\";\r\nimport styles from \"./styles.less\";\r\nimport cx from \"classnames\";\r\n\r\nclass FormDropdown extends React.Component {\r\n state = {\r\n open: false,\r\n isInvalid: false,\r\n value: \"\"\r\n };\r\n\r\n componentDidMount() {\r\n this.updateOpenState();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.value != prevProps.value) {\r\n this.updateOpenState();\r\n }\r\n }\r\n\r\n updateOpenState = () => {\r\n const { value } = this.props;\r\n if (!value && value != 0) {\r\n this.setState({\r\n open: false\r\n });\r\n } else {\r\n this.setState({\r\n open: true\r\n });\r\n }\r\n };\r\n\r\n onInputChange = valueObj => {\r\n const { name, onChange } = this.props;\r\n const { isInvalid } = this.state;\r\n if (valueObj && (valueObj.value || valueObj.value == 0) && isInvalid) {\r\n this.setState({\r\n isInvalid: false\r\n });\r\n }\r\n if (valueObj && valueObj.value) {\r\n this.setState({\r\n value: valueObj.value\r\n });\r\n }\r\n onChange && onChange(valueObj.value, name);\r\n };\r\n\r\n onInputFocus = () => {\r\n const { onInputFocus, name } = this.props;\r\n this.setState({\r\n open: true\r\n });\r\n onInputFocus && onInputFocus(name);\r\n };\r\n\r\n onInputBlur = () => {\r\n const { onInputBlur, name } = this.props;\r\n this.updateOpenState();\r\n onInputBlur && onInputBlur(this.state.value, name);\r\n };\r\n\r\n render() {\r\n const {\r\n label,\r\n required,\r\n options,\r\n fullLength,\r\n value,\r\n isRtl,\r\n disabled,\r\n customValidation,\r\n error,\r\n className,\r\n labelClassName,\r\n isMobileView,\r\n searchable\r\n } = this.props;\r\n\r\n const { open } = this.state;\r\n\r\n const isRequired = required ? true : false;\r\n const noValue = !value;\r\n\r\n const toRender = (\r\n \r\n
\r\n {options &&\r\n options.length > 0 && (\r\n \r\n )}\r\n \r\n \r\n
\r\n {customValidation}
\r\n \r\n
\r\n );\r\n\r\n return toRender;\r\n }\r\n}\r\n\r\nFormDropdown.defaultProps = {\r\n isRtl: false,\r\n displayInOneLine: false,\r\n fullLength: true,\r\n searchable: true\r\n};\r\n\r\nFormDropdown.propTypes = {\r\n name: PropTypes.string,\r\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n label: PropTypes.string,\r\n onChange: PropTypes.func,\r\n onInputFocus: PropTypes.func,\r\n required: PropTypes.bool,\r\n options: PropTypes.array,\r\n fullLength: PropTypes.bool,\r\n isRtl: PropTypes.bool,\r\n onInputBlur: PropTypes.func,\r\n error: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n customValidation: PropTypes.string,\r\n className: PropTypes.string,\r\n labelClassName: PropTypes.string,\r\n isMobileView: PropTypes.bool,\r\n searchable: PropTypes.bool\r\n};\r\n\r\nexport default FormDropdown;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/common/Form/FormDropdown/FormDropdown.js","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\nimport AutosizeInput from 'react-input-autosize';\nimport classNames from 'classnames';\n\nfunction arrowRenderer(_ref) {\n\tvar onMouseDown = _ref.onMouseDown;\n\n\treturn React.createElement('span', {\n\t\tclassName: 'Select-arrow',\n\t\tonMouseDown: onMouseDown\n\t});\n}\n\narrowRenderer.propTypes = {\n\tonMouseDown: PropTypes.func\n};\n\nvar map = [{ 'base': 'A', 'letters': /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g }, { 'base': 'AA', 'letters': /[\\uA732]/g }, { 'base': 'AE', 'letters': /[\\u00C6\\u01FC\\u01E2]/g }, { 'base': 'AO', 'letters': /[\\uA734]/g }, { 'base': 'AU', 'letters': /[\\uA736]/g }, { 'base': 'AV', 'letters': /[\\uA738\\uA73A]/g }, { 'base': 'AY', 'letters': /[\\uA73C]/g }, { 'base': 'B', 'letters': /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g }, { 'base': 'C', 'letters': /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g }, { 'base': 'D', 'letters': /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g }, { 'base': 'DZ', 'letters': /[\\u01F1\\u01C4]/g }, { 'base': 'Dz', 'letters': /[\\u01F2\\u01C5]/g }, { 'base': 'E', 'letters': /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g }, { 'base': 'F', 'letters': /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g }, { 'base': 'G', 'letters': /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g }, { 'base': 'H', 'letters': /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g }, { 'base': 'I', 'letters': /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g }, { 'base': 'J', 'letters': /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g }, { 'base': 'K', 'letters': /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g }, { 'base': 'L', 'letters': /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g }, { 'base': 'LJ', 'letters': /[\\u01C7]/g }, { 'base': 'Lj', 'letters': /[\\u01C8]/g }, { 'base': 'M', 'letters': /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g }, { 'base': 'N', 'letters': /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g }, { 'base': 'NJ', 'letters': /[\\u01CA]/g }, { 'base': 'Nj', 'letters': /[\\u01CB]/g }, { 'base': 'O', 'letters': /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g }, { 'base': 'OI', 'letters': /[\\u01A2]/g }, { 'base': 'OO', 'letters': /[\\uA74E]/g }, { 'base': 'OU', 'letters': /[\\u0222]/g }, { 'base': 'P', 'letters': /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g }, { 'base': 'Q', 'letters': /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g }, { 'base': 'R', 'letters': /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g }, { 'base': 'S', 'letters': /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g }, { 'base': 'T', 'letters': /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g }, { 'base': 'TZ', 'letters': /[\\uA728]/g }, { 'base': 'U', 'letters': /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g }, { 'base': 'V', 'letters': /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g }, { 'base': 'VY', 'letters': /[\\uA760]/g }, { 'base': 'W', 'letters': /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g }, { 'base': 'X', 'letters': /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g }, { 'base': 'Y', 'letters': /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g }, { 'base': 'Z', 'letters': /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g }, { 'base': 'a', 'letters': /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g }, { 'base': 'aa', 'letters': /[\\uA733]/g }, { 'base': 'ae', 'letters': /[\\u00E6\\u01FD\\u01E3]/g }, { 'base': 'ao', 'letters': /[\\uA735]/g }, { 'base': 'au', 'letters': /[\\uA737]/g }, { 'base': 'av', 'letters': /[\\uA739\\uA73B]/g }, { 'base': 'ay', 'letters': /[\\uA73D]/g }, { 'base': 'b', 'letters': /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g }, { 'base': 'c', 'letters': /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g }, { 'base': 'd', 'letters': /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g }, { 'base': 'dz', 'letters': /[\\u01F3\\u01C6]/g }, { 'base': 'e', 'letters': /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g }, { 'base': 'f', 'letters': /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g }, { 'base': 'g', 'letters': /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g }, { 'base': 'h', 'letters': /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g }, { 'base': 'hv', 'letters': /[\\u0195]/g }, { 'base': 'i', 'letters': /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g }, { 'base': 'j', 'letters': /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g }, { 'base': 'k', 'letters': /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g }, { 'base': 'l', 'letters': /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g }, { 'base': 'lj', 'letters': /[\\u01C9]/g }, { 'base': 'm', 'letters': /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g }, { 'base': 'n', 'letters': /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g }, { 'base': 'nj', 'letters': /[\\u01CC]/g }, { 'base': 'o', 'letters': /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g }, { 'base': 'oi', 'letters': /[\\u01A3]/g }, { 'base': 'ou', 'letters': /[\\u0223]/g }, { 'base': 'oo', 'letters': /[\\uA74F]/g }, { 'base': 'p', 'letters': /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g }, { 'base': 'q', 'letters': /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g }, { 'base': 'r', 'letters': /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g }, { 'base': 's', 'letters': /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g }, { 'base': 't', 'letters': /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g }, { 'base': 'tz', 'letters': /[\\uA729]/g }, { 'base': 'u', 'letters': /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g }, { 'base': 'v', 'letters': /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g }, { 'base': 'vy', 'letters': /[\\uA761]/g }, { 'base': 'w', 'letters': /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g }, { 'base': 'x', 'letters': /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g }, { 'base': 'y', 'letters': /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g }, { 'base': 'z', 'letters': /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g }];\n\nfunction stripDiacritics(str) {\n\tfor (var i = 0; i < map.length; i++) {\n\t\tstr = str.replace(map[i].letters, map[i].base);\n\t}\n\treturn str;\n}\n\nfunction trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction filterOptions(options, filterValue, excludeOptions, props) {\n\tvar _this = this;\n\n\tif (props.ignoreAccents) {\n\t\tfilterValue = stripDiacritics(filterValue);\n\t}\n\n\tif (props.ignoreCase) {\n\t\tfilterValue = filterValue.toLowerCase();\n\t}\n\n\tif (props.trimFilter) {\n\t\tfilterValue = trim(filterValue);\n\t}\n\n\tif (excludeOptions) excludeOptions = excludeOptions.map(function (i) {\n\t\treturn i[props.valueKey];\n\t});\n\n\treturn options.filter(function (option) {\n\t\tif (excludeOptions && excludeOptions.indexOf(option[props.valueKey]) > -1) return false;\n\t\tif (props.filterOption) return props.filterOption.call(_this, option, filterValue);\n\t\tif (!filterValue) return true;\n\t\tvar valueTest = String(option[props.valueKey]);\n\t\tvar labelTest = String(option[props.labelKey]);\n\n\t\tif (props.ignoreAccents) {\n\t\t\tif (props.matchProp !== 'label') valueTest = stripDiacritics(valueTest);\n\t\t\tif (props.matchProp !== 'value') labelTest = stripDiacritics(labelTest);\n\t\t}\n\n\t\tif (props.ignoreCase) {\n\t\t\tif (props.matchProp !== 'label') valueTest = valueTest.toLowerCase();\n\t\t\tif (props.matchProp !== 'value') labelTest = labelTest.toLowerCase();\n\t\t}\n\t\treturn props.matchPos === 'start' ? props.matchProp !== 'label' && valueTest.substr(0, filterValue.length) === filterValue || props.matchProp !== 'value' && labelTest.substr(0, filterValue.length) === filterValue : props.matchProp !== 'label' && valueTest.indexOf(filterValue) >= 0 || props.matchProp !== 'value' && labelTest.indexOf(filterValue) >= 0;\n\t});\n}\n\nfunction menuRenderer(_ref) {\n\tvar focusedOption = _ref.focusedOption,\n\t focusOption = _ref.focusOption,\n\t inputValue = _ref.inputValue,\n\t instancePrefix = _ref.instancePrefix,\n\t labelKey = _ref.labelKey,\n\t onFocus = _ref.onFocus,\n\t onOptionRef = _ref.onOptionRef,\n\t onSelect = _ref.onSelect,\n\t optionClassName = _ref.optionClassName,\n\t optionComponent = _ref.optionComponent,\n\t optionRenderer = _ref.optionRenderer,\n\t options = _ref.options,\n\t removeValue = _ref.removeValue,\n\t selectValue = _ref.selectValue,\n\t valueArray = _ref.valueArray,\n\t valueKey = _ref.valueKey;\n\n\tvar Option = optionComponent;\n\n\treturn options.map(function (option, i) {\n\t\tvar isSelected = valueArray && valueArray.some(function (x) {\n\t\t\treturn x[valueKey] == option[valueKey];\n\t\t});\n\t\tvar isFocused = option === focusedOption;\n\t\tvar optionClass = classNames(optionClassName, {\n\t\t\t'Select-option': true,\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-focused': isFocused,\n\t\t\t'is-disabled': option.disabled\n\t\t});\n\n\t\treturn React.createElement(\n\t\t\tOption,\n\t\t\t{\n\t\t\t\tclassName: optionClass,\n\t\t\t\tfocusOption: focusOption,\n\t\t\t\tinputValue: inputValue,\n\t\t\t\tinstancePrefix: instancePrefix,\n\t\t\t\tisDisabled: option.disabled,\n\t\t\t\tisFocused: isFocused,\n\t\t\t\tisSelected: isSelected,\n\t\t\t\tkey: 'option-' + i + '-' + option[valueKey],\n\t\t\t\tonFocus: onFocus,\n\t\t\t\tonSelect: onSelect,\n\t\t\t\toption: option,\n\t\t\t\toptionIndex: i,\n\t\t\t\tref: function ref(_ref2) {\n\t\t\t\t\tonOptionRef(_ref2, isFocused);\n\t\t\t\t},\n\t\t\t\tremoveValue: removeValue,\n\t\t\t\tselectValue: selectValue\n\t\t\t},\n\t\t\toptionRenderer(option, i, inputValue)\n\t\t);\n\t});\n}\n\nfunction clearRenderer() {\n\treturn React.createElement('span', {\n\t\tclassName: 'Select-clear',\n\t\tdangerouslySetInnerHTML: { __html: '×' }\n\t});\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\nvar asyncGenerator = function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(function (arg) {\n resume(\"next\", arg);\n }, function (arg) {\n resume(\"throw\", arg);\n });\n } else {\n settle(result.done ? \"return\" : \"normal\", result.value);\n }\n } catch (err) {\n settle(\"throw\", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case \"return\":\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case \"throw\":\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== \"function\") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === \"function\" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () {\n return this;\n };\n }\n\n AsyncGenerator.prototype.next = function (arg) {\n return this._invoke(\"next\", arg);\n };\n\n AsyncGenerator.prototype.throw = function (arg) {\n return this._invoke(\"throw\", arg);\n };\n\n AsyncGenerator.prototype.return = function (arg) {\n return this._invoke(\"return\", arg);\n };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n}();\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar Option = function (_React$Component) {\n\tinherits(Option, _React$Component);\n\n\tfunction Option(props) {\n\t\tclassCallCheck(this, Option);\n\n\t\tvar _this = possibleConstructorReturn(this, (Option.__proto__ || Object.getPrototypeOf(Option)).call(this, props));\n\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.handleMouseEnter = _this.handleMouseEnter.bind(_this);\n\t\t_this.handleMouseMove = _this.handleMouseMove.bind(_this);\n\t\t_this.handleTouchStart = _this.handleTouchStart.bind(_this);\n\t\t_this.handleTouchEnd = _this.handleTouchEnd.bind(_this);\n\t\t_this.handleTouchMove = _this.handleTouchMove.bind(_this);\n\t\t_this.onFocus = _this.onFocus.bind(_this);\n\t\treturn _this;\n\t}\n\n\tcreateClass(Option, [{\n\t\tkey: 'blockEvent',\n\t\tvalue: function blockEvent(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif (event.target.tagName !== 'A' || !('href' in event.target)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.target.target) {\n\t\t\t\twindow.open(event.target.href, event.target.target);\n\t\t\t} else {\n\t\t\t\twindow.location.href = event.target.href;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDown',\n\t\tvalue: function handleMouseDown(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tthis.props.onSelect(this.props.option, event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseEnter',\n\t\tvalue: function handleMouseEnter(event) {\n\t\t\tthis.onFocus(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseMove',\n\t\tvalue: function handleMouseMove(event) {\n\t\t\tthis.onFocus(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEnd',\n\t\tvalue: function handleTouchEnd(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\tthis.handleMouseDown(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchMove',\n\t\tvalue: function handleTouchMove(event) {\n\t\t\t// Set a flag that the view is being dragged\n\t\t\tthis.dragging = true;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchStart',\n\t\tvalue: function handleTouchStart(event) {\n\t\t\t// Set a flag that the view is not being dragged\n\t\t\tthis.dragging = false;\n\t\t}\n\t}, {\n\t\tkey: 'onFocus',\n\t\tvalue: function onFocus(event) {\n\t\t\tif (!this.props.isFocused) {\n\t\t\t\tthis.props.onFocus(this.props.option, event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _props = this.props,\n\t\t\t option = _props.option,\n\t\t\t instancePrefix = _props.instancePrefix,\n\t\t\t optionIndex = _props.optionIndex;\n\n\t\t\tvar className = classNames(this.props.className, option.className);\n\n\t\t\treturn option.disabled ? React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className,\n\t\t\t\t\tonMouseDown: this.blockEvent,\n\t\t\t\t\tonClick: this.blockEvent },\n\t\t\t\tthis.props.children\n\t\t\t) : React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className,\n\t\t\t\t\tstyle: option.style,\n\t\t\t\t\trole: 'option',\n\t\t\t\t\t'aria-label': option.label,\n\t\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\t\tonMouseEnter: this.handleMouseEnter,\n\t\t\t\t\tonMouseMove: this.handleMouseMove,\n\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\tonTouchMove: this.handleTouchMove,\n\t\t\t\t\tonTouchEnd: this.handleTouchEnd,\n\t\t\t\t\tid: instancePrefix + '-option-' + optionIndex,\n\t\t\t\t\ttitle: option.title },\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}]);\n\treturn Option;\n}(React.Component);\n\n\n\nOption.propTypes = {\n\tchildren: PropTypes.node,\n\tclassName: PropTypes.string, // className (based on mouse position)\n\tinstancePrefix: PropTypes.string.isRequired, // unique prefix for the ids (used for aria)\n\tisDisabled: PropTypes.bool, // the option is disabled\n\tisFocused: PropTypes.bool, // the option is focused\n\tisSelected: PropTypes.bool, // the option is selected\n\tonFocus: PropTypes.func, // method to handle mouseEnter on option element\n\tonSelect: PropTypes.func, // method to handle click on option element\n\tonUnfocus: PropTypes.func, // method to handle mouseLeave on option element\n\toption: PropTypes.object.isRequired, // object that is base for that option\n\toptionIndex: PropTypes.number // index of the option, used to generate unique ids for aria\n};\n\nvar Value = function (_React$Component) {\n\tinherits(Value, _React$Component);\n\n\tfunction Value(props) {\n\t\tclassCallCheck(this, Value);\n\n\t\tvar _this = possibleConstructorReturn(this, (Value.__proto__ || Object.getPrototypeOf(Value)).call(this, props));\n\n\t\t_this.handleMouseDown = _this.handleMouseDown.bind(_this);\n\t\t_this.onRemove = _this.onRemove.bind(_this);\n\t\t_this.handleTouchEndRemove = _this.handleTouchEndRemove.bind(_this);\n\t\t_this.handleTouchMove = _this.handleTouchMove.bind(_this);\n\t\t_this.handleTouchStart = _this.handleTouchStart.bind(_this);\n\t\treturn _this;\n\t}\n\n\tcreateClass(Value, [{\n\t\tkey: 'handleMouseDown',\n\t\tvalue: function handleMouseDown(event) {\n\t\t\tif (event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.props.onClick) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tthis.props.onClick(this.props.value, event);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (this.props.value.href) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onRemove',\n\t\tvalue: function onRemove(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tthis.props.onRemove(this.props.value);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEndRemove',\n\t\tvalue: function handleTouchEndRemove(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\t// Fire the mouse events\n\t\t\tthis.onRemove(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchMove',\n\t\tvalue: function handleTouchMove(event) {\n\t\t\t// Set a flag that the view is being dragged\n\t\t\tthis.dragging = true;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchStart',\n\t\tvalue: function handleTouchStart(event) {\n\t\t\t// Set a flag that the view is not being dragged\n\t\t\tthis.dragging = false;\n\t\t}\n\t}, {\n\t\tkey: 'renderRemoveIcon',\n\t\tvalue: function renderRemoveIcon() {\n\t\t\tif (this.props.disabled || !this.props.onRemove) return;\n\t\t\treturn React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-value-icon',\n\t\t\t\t\t'aria-hidden': 'true',\n\t\t\t\t\tonMouseDown: this.onRemove,\n\t\t\t\t\tonTouchEnd: this.handleTouchEndRemove,\n\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\tonTouchMove: this.handleTouchMove },\n\t\t\t\t'\\xD7'\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderLabel',\n\t\tvalue: function renderLabel() {\n\t\t\tvar className = 'Select-value-label';\n\t\t\treturn this.props.onClick || this.props.value.href ? React.createElement(\n\t\t\t\t'a',\n\t\t\t\t{ className: className, href: this.props.value.href, target: this.props.value.target, onMouseDown: this.handleMouseDown, onTouchEnd: this.handleMouseDown },\n\t\t\t\tthis.props.children\n\t\t\t) : React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: className, role: 'option', 'aria-selected': 'true', id: this.props.id },\n\t\t\t\tthis.props.children\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: classNames('Select-value', this.props.value.className),\n\t\t\t\t\tstyle: this.props.value.style,\n\t\t\t\t\ttitle: this.props.value.title\n\t\t\t\t},\n\t\t\t\tthis.renderRemoveIcon(),\n\t\t\t\tthis.renderLabel()\n\t\t\t);\n\t\t}\n\t}]);\n\treturn Value;\n}(React.Component);\n\n\n\nValue.propTypes = {\n\tchildren: PropTypes.node,\n\tdisabled: PropTypes.bool, // disabled prop passed to ReactSelect\n\tid: PropTypes.string, // Unique id for the value - used for aria\n\tonClick: PropTypes.func, // method to handle click on value label\n\tonRemove: PropTypes.func, // method to handle removal of the value\n\tvalue: PropTypes.object.isRequired // the option object for this value\n};\n\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/react-select\n*/\nvar stringifyValue = function stringifyValue(value) {\n\treturn typeof value === 'string' ? value : value !== null && JSON.stringify(value) || '';\n};\n\nvar stringOrNode = PropTypes.oneOfType([PropTypes.string, PropTypes.node]);\nvar stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n\nvar instanceId = 1;\n\nvar Select$1 = function (_React$Component) {\n\tinherits(Select, _React$Component);\n\n\tfunction Select(props) {\n\t\tclassCallCheck(this, Select);\n\n\t\tvar _this = possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));\n\n\t\t['clearValue', 'focusOption', 'handleInputBlur', 'handleInputChange', 'handleInputFocus', 'handleInputValueChange', 'handleKeyDown', 'handleMenuScroll', 'handleMouseDown', 'handleMouseDownOnArrow', 'handleMouseDownOnMenu', 'handleRequired', 'handleTouchOutside', 'handleTouchMove', 'handleTouchStart', 'handleTouchEnd', 'handleTouchEndClearValue', 'handleValueClick', 'getOptionLabel', 'onOptionRef', 'removeValue', 'selectValue'].forEach(function (fn) {\n\t\t\treturn _this[fn] = _this[fn].bind(_this);\n\t\t});\n\n\t\t_this.state = {\n\t\t\tinputValue: '',\n\t\t\tisFocused: false,\n\t\t\tisOpen: false,\n\t\t\tisPseudoFocused: false,\n\t\t\trequired: false\n\t\t};\n\t\treturn _this;\n\t}\n\n\tcreateClass(Select, [{\n\t\tkey: 'componentWillMount',\n\t\tvalue: function componentWillMount() {\n\t\t\tthis._instancePrefix = 'react-select-' + (this.props.instanceId || ++instanceId) + '-';\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\n\t\t\tif (this.props.required) {\n\t\t\t\tthis.setState({\n\t\t\t\t\trequired: this.handleRequired(valueArray[0], this.props.multi)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tif (typeof this.props.autofocus !== 'undefined' && typeof console !== 'undefined') {\n\t\t\t\tconsole.warn('Warning: The autofocus prop has changed to autoFocus, support will be removed after react-select@1.0');\n\t\t\t}\n\t\t\tif (this.props.autoFocus || this.props.autofocus) {\n\t\t\t\tthis.focus();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar valueArray = this.getValueArray(nextProps.value, nextProps);\n\n\t\t\tif (nextProps.required) {\n\t\t\t\tthis.setState({\n\t\t\t\t\trequired: this.handleRequired(valueArray[0], nextProps.multi)\n\t\t\t\t});\n\t\t\t} else if (this.props.required) {\n\t\t\t\t// Used to be required but it's not any more\n\t\t\t\tthis.setState({ required: false });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\t// focus to the selected option\n\t\t\tif (this.menu && this.focused && this.state.isOpen && !this.hasScrolledToOption) {\n\t\t\t\tvar focusedOptionNode = findDOMNode(this.focused);\n\t\t\t\tvar menuNode = findDOMNode(this.menu);\n\n\t\t\t\tvar scrollTop = menuNode.scrollTop;\n\t\t\t\tvar scrollBottom = scrollTop + menuNode.offsetHeight;\n\t\t\t\tvar optionTop = focusedOptionNode.offsetTop;\n\t\t\t\tvar optionBottom = optionTop + focusedOptionNode.offsetHeight;\n\n\t\t\t\tif (scrollTop > optionTop || scrollBottom < optionBottom) {\n\t\t\t\t\tmenuNode.scrollTop = focusedOptionNode.offsetTop;\n\t\t\t\t}\n\n\t\t\t\t// We still set hasScrolledToOption to true even if we didn't\n\t\t\t\t// actually need to scroll, as we've still confirmed that the\n\t\t\t\t// option is in view.\n\t\t\t\tthis.hasScrolledToOption = true;\n\t\t\t} else if (!this.state.isOpen) {\n\t\t\t\tthis.hasScrolledToOption = false;\n\t\t\t}\n\n\t\t\tif (this._scrollToFocusedOptionOnUpdate && this.focused && this.menu) {\n\t\t\t\tthis._scrollToFocusedOptionOnUpdate = false;\n\t\t\t\tvar focusedDOM = findDOMNode(this.focused);\n\t\t\t\tvar menuDOM = findDOMNode(this.menu);\n\t\t\t\tvar focusedRect = focusedDOM.getBoundingClientRect();\n\t\t\t\tvar menuRect = menuDOM.getBoundingClientRect();\n\t\t\t\tif (focusedRect.bottom > menuRect.bottom) {\n\t\t\t\t\tmenuDOM.scrollTop = focusedDOM.offsetTop + focusedDOM.clientHeight - menuDOM.offsetHeight;\n\t\t\t\t} else if (focusedRect.top < menuRect.top) {\n\t\t\t\t\tmenuDOM.scrollTop = focusedDOM.offsetTop;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this.props.scrollMenuIntoView && this.menuContainer) {\n\t\t\t\tvar menuContainerRect = this.menuContainer.getBoundingClientRect();\n\t\t\t\tif (window.innerHeight < menuContainerRect.bottom + this.props.menuBuffer) {\n\t\t\t\t\twindow.scrollBy(0, menuContainerRect.bottom + this.props.menuBuffer - window.innerHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prevProps.disabled !== this.props.disabled) {\n\t\t\t\tthis.setState({ isFocused: false }); // eslint-disable-line react/no-did-update-set-state\n\t\t\t\tthis.closeMenu();\n\t\t\t}\n\t\t\tif (prevState.isOpen !== this.state.isOpen) {\n\t\t\t\tthis.toggleTouchOutsideEvent(this.state.isOpen);\n\t\t\t\tvar handler = this.state.isOpen ? this.props.onOpen : this.props.onClose;\n\t\t\t\thandler && handler();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.toggleTouchOutsideEvent(false);\n\t\t}\n\t}, {\n\t\tkey: 'toggleTouchOutsideEvent',\n\t\tvalue: function toggleTouchOutsideEvent(enabled) {\n\t\t\tif (enabled) {\n\t\t\t\tif (!document.addEventListener && document.attachEvent) {\n\t\t\t\t\tdocument.attachEvent('ontouchstart', this.handleTouchOutside);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.addEventListener('touchstart', this.handleTouchOutside);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!document.removeEventListener && document.detachEvent) {\n\t\t\t\t\tdocument.detachEvent('ontouchstart', this.handleTouchOutside);\n\t\t\t\t} else {\n\t\t\t\t\tdocument.removeEventListener('touchstart', this.handleTouchOutside);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchOutside',\n\t\tvalue: function handleTouchOutside(event) {\n\t\t\t// handle touch outside on ios to dismiss menu\n\t\t\tif (this.wrapper && !this.wrapper.contains(event.target)) {\n\t\t\t\tthis.closeMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tif (!this.input) return;\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blurInput',\n\t\tvalue: function blurInput() {\n\t\t\tif (!this.input) return;\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchMove',\n\t\tvalue: function handleTouchMove(event) {\n\t\t\t// Set a flag that the view is being dragged\n\t\t\tthis.dragging = true;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchStart',\n\t\tvalue: function handleTouchStart(event) {\n\t\t\t// Set a flag that the view is not being dragged\n\t\t\tthis.dragging = false;\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEnd',\n\t\tvalue: function handleTouchEnd(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\t// Fire the mouse events\n\t\t\tthis.handleMouseDown(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleTouchEndClearValue',\n\t\tvalue: function handleTouchEndClearValue(event) {\n\t\t\t// Check if the view is being dragged, In this case\n\t\t\t// we don't want to fire the click event (because the user only wants to scroll)\n\t\t\tif (this.dragging) return;\n\n\t\t\t// Clear the value\n\t\t\tthis.clearValue(event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDown',\n\t\tvalue: function handleMouseDown(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, or if the component is disabled, ignore it.\n\t\t\tif (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (event.target.tagName === 'INPUT') {\n\t\t\t\tif (!this.state.isFocused) {\n\t\t\t\t\tthis._openAfterFocus = this.props.openOnClick;\n\t\t\t\t\tthis.focus();\n\t\t\t\t} else if (!this.state.isOpen) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\tisPseudoFocused: false\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// prevent default event handlers\n\t\t\tevent.preventDefault();\n\n\t\t\t// for the non-searchable select, toggle the menu\n\t\t\tif (!this.props.searchable) {\n\t\t\t\t// TODO: This code means that if a select is searchable, onClick the options menu will not appear, only on subsequent click will it open.\n\t\t\t\tthis.focus();\n\t\t\t\treturn this.setState({\n\t\t\t\t\tisOpen: !this.state.isOpen\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.state.isFocused) {\n\t\t\t\t// On iOS, we can get into a state where we think the input is focused but it isn't really,\n\t\t\t\t// since iOS ignores programmatic calls to input.focus() that weren't triggered by a click event.\n\t\t\t\t// Call focus() again here to be safe.\n\t\t\t\tthis.focus();\n\n\t\t\t\tvar input = this.input;\n\t\t\t\tif (typeof input.getInput === 'function') {\n\t\t\t\t\t// Get the actual DOM input if the ref is an component\n\t\t\t\t\tinput = input.getInput();\n\t\t\t\t}\n\n\t\t\t\t// clears the value so that the cursor will be at the end of input when the component re-renders\n\t\t\t\tinput.value = '';\n\n\t\t\t\t// if the input is focused, ensure the menu is open\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: true,\n\t\t\t\t\tisPseudoFocused: false\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// otherwise, focus the input and open the menu\n\t\t\t\tthis._openAfterFocus = this.props.openOnClick;\n\t\t\t\tthis.focus();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDownOnArrow',\n\t\tvalue: function handleMouseDownOnArrow(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, or if the component is disabled, ignore it.\n\t\t\tif (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// If the menu isn't open, let the event bubble to the main handleMouseDown\n\t\t\tif (!this.state.isOpen) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: true\n\t\t\t\t});\n\t\t\t}\n\t\t\t// prevent default event handlers\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\t// close the menu\n\t\t\tif (this.state.isOpen) {\n\t\t\t\tthis.closeMenu();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleMouseDownOnMenu',\n\t\tvalue: function handleMouseDownOnMenu(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, or if the component is disabled, ignore it.\n\t\t\tif (this.props.disabled || event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n\t\t\tthis._openAfterFocus = true;\n\t\t\tthis.focus();\n\t\t}\n\t}, {\n\t\tkey: 'closeMenu',\n\t\tvalue: function closeMenu() {\n\t\t\tif (this.props.onCloseResetsInput) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: false,\n\t\t\t\t\tisPseudoFocused: this.state.isFocused && !this.props.multi,\n\t\t\t\t\tinputValue: this.handleInputValueChange('')\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: false,\n\t\t\t\t\tisPseudoFocused: this.state.isFocused && !this.props.multi\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.hasScrolledToOption = false;\n\t\t}\n\t}, {\n\t\tkey: 'handleInputFocus',\n\t\tvalue: function handleInputFocus(event) {\n\t\t\tif (this.props.disabled) return;\n\t\t\tvar isOpen = this.state.isOpen || this._openAfterFocus || this.props.openOnFocus;\n\t\t\tif (this.props.onFocus) {\n\t\t\t\tthis.props.onFocus(event);\n\t\t\t}\n\t\t\tthis.setState({\n\t\t\t\tisFocused: true,\n\t\t\t\tisOpen: isOpen\n\t\t\t});\n\t\t\tthis._openAfterFocus = false;\n\t\t}\n\t}, {\n\t\tkey: 'handleInputBlur',\n\t\tvalue: function handleInputBlur(event) {\n\t\t\t// The check for menu.contains(activeElement) is necessary to prevent IE11's scrollbar from closing the menu in certain contexts.\n\t\t\tif (this.menu && (this.menu === document.activeElement || this.menu.contains(document.activeElement))) {\n\t\t\t\tthis.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.props.onBlur) {\n\t\t\t\tthis.props.onBlur(event);\n\t\t\t}\n\t\t\tvar onBlurredState = {\n\t\t\t\tisFocused: false,\n\t\t\t\tisOpen: false,\n\t\t\t\tisPseudoFocused: false\n\t\t\t};\n\t\t\tif (this.props.onBlurResetsInput) {\n\t\t\t\tonBlurredState.inputValue = this.handleInputValueChange('');\n\t\t\t}\n\t\t\tthis.setState(onBlurredState);\n\t\t}\n\t}, {\n\t\tkey: 'handleInputChange',\n\t\tvalue: function handleInputChange(event) {\n\t\t\tvar newInputValue = event.target.value;\n\n\t\t\tif (this.state.inputValue !== event.target.value) {\n\t\t\t\tnewInputValue = this.handleInputValueChange(newInputValue);\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tisOpen: true,\n\t\t\t\tisPseudoFocused: false,\n\t\t\t\tinputValue: newInputValue\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'handleInputValueChange',\n\t\tvalue: function handleInputValueChange(newValue) {\n\t\t\tif (this.props.onInputChange) {\n\t\t\t\tvar nextState = this.props.onInputChange(newValue);\n\t\t\t\t// Note: != used deliberately here to catch undefined and null\n\t\t\t\tif (nextState != null && (typeof nextState === 'undefined' ? 'undefined' : _typeof(nextState)) !== 'object') {\n\t\t\t\t\tnewValue = '' + nextState;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn newValue;\n\t\t}\n\t}, {\n\t\tkey: 'handleKeyDown',\n\t\tvalue: function handleKeyDown(event) {\n\t\t\tif (this.props.disabled) return;\n\n\t\t\tif (typeof this.props.onInputKeyDown === 'function') {\n\t\t\t\tthis.props.onInputKeyDown(event);\n\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch (event.keyCode) {\n\t\t\t\tcase 8:\n\t\t\t\t\t// backspace\n\t\t\t\t\tif (!this.state.inputValue && this.props.backspaceRemoves) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.popValue();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\tcase 9:\n\t\t\t\t\t// tab\n\t\t\t\t\tif (event.shiftKey || !this.state.isOpen || !this.props.tabSelectsValue) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\treturn;\n\t\t\t\tcase 13:\n\t\t\t\t\t// enter\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tif (this.state.isOpen) {\n\t\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.focusNextOption();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 27:\n\t\t\t\t\t// escape\n\t\t\t\t\tif (this.state.isOpen) {\n\t\t\t\t\t\tthis.closeMenu();\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t} else if (this.props.clearable && this.props.escapeClearsValue) {\n\t\t\t\t\t\tthis.clearValue(event);\n\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32:\n\t\t\t\t\t// space\n\t\t\t\t\tif (this.props.searchable) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif (!this.state.isOpen) {\n\t\t\t\t\t\tthis.focusNextOption();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tthis.selectFocusedOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 38:\n\t\t\t\t\t// up\n\t\t\t\t\tthis.focusPreviousOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 40:\n\t\t\t\t\t// down\n\t\t\t\t\tthis.focusNextOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 33:\n\t\t\t\t\t// page up\n\t\t\t\t\tthis.focusPageUpOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 34:\n\t\t\t\t\t// page down\n\t\t\t\t\tthis.focusPageDownOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 35:\n\t\t\t\t\t// end key\n\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusEndOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 36:\n\t\t\t\t\t// home key\n\t\t\t\t\tif (event.shiftKey) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusStartOption();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 46:\n\t\t\t\t\t// delete\n\t\t\t\t\tif (!this.state.inputValue && this.props.deleteRemoves) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tthis.popValue();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\tdefault:\n\t\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t}\n\t}, {\n\t\tkey: 'handleValueClick',\n\t\tvalue: function handleValueClick(option, event) {\n\t\t\tif (!this.props.onValueClick) return;\n\t\t\tthis.props.onValueClick(option, event);\n\t\t}\n\t}, {\n\t\tkey: 'handleMenuScroll',\n\t\tvalue: function handleMenuScroll(event) {\n\t\t\tif (!this.props.onMenuScrollToBottom) return;\n\t\t\tvar target = event.target;\n\n\t\t\tif (target.scrollHeight > target.offsetHeight && target.scrollHeight - target.offsetHeight - target.scrollTop <= 0) {\n\t\t\t\tthis.props.onMenuScrollToBottom();\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'handleRequired',\n\t\tvalue: function handleRequired(value, multi) {\n\t\t\tif (!value) return true;\n\t\t\treturn multi ? value.length === 0 : Object.keys(value).length === 0;\n\t\t}\n\t}, {\n\t\tkey: 'getOptionLabel',\n\t\tvalue: function getOptionLabel(op) {\n\t\t\treturn op[this.props.labelKey];\n\t\t}\n\n\t\t/**\n * Turns a value into an array from the given options\n * @param\t{String|Number|Array}\tvalue\t\t- the value of the select input\n * @param\t{Object}\t\tnextProps\t- optionally specify the nextProps so the returned array uses the latest configuration\n * @returns\t{Array}\tthe value of the select represented in an array\n */\n\n\t}, {\n\t\tkey: 'getValueArray',\n\t\tvalue: function getValueArray(value, nextProps) {\n\t\t\tvar _this2 = this;\n\n\t\t\t/** support optionally passing in the `nextProps` so `componentWillReceiveProps` updates will function as expected */\n\t\t\tvar props = (typeof nextProps === 'undefined' ? 'undefined' : _typeof(nextProps)) === 'object' ? nextProps : this.props;\n\t\t\tif (props.multi) {\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = value.split(props.delimiter);\n\t\t\t\t}\n\t\t\t\tif (!Array.isArray(value)) {\n\t\t\t\t\tif (value === null || value === undefined) return [];\n\t\t\t\t\tvalue = [value];\n\t\t\t\t}\n\t\t\t\treturn value.map(function (value) {\n\t\t\t\t\treturn _this2.expandValue(value, props);\n\t\t\t\t}).filter(function (i) {\n\t\t\t\t\treturn i;\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar expandedValue = this.expandValue(value, props);\n\t\t\treturn expandedValue ? [expandedValue] : [];\n\t\t}\n\n\t\t/**\n * Retrieve a value from the given options and valueKey\n * @param\t{String|Number|Array}\tvalue\t- the selected value(s)\n * @param\t{Object}\t\tprops\t- the Select component's props (or nextProps)\n */\n\n\t}, {\n\t\tkey: 'expandValue',\n\t\tvalue: function expandValue(value, props) {\n\t\t\tvar valueType = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\t\t\tif (valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') return value;\n\t\t\tvar options = props.options,\n\t\t\t valueKey = props.valueKey;\n\n\t\t\tif (!options) return;\n\t\t\tfor (var i = 0; i < options.length; i++) {\n\t\t\t\tif (String(options[i][valueKey]) === String(value)) return options[i];\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'setValue',\n\t\tvalue: function setValue(value) {\n\t\t\tvar _this3 = this;\n\n\t\t\tif (this.props.autoBlur) {\n\t\t\t\tthis.blurInput();\n\t\t\t}\n\t\t\tif (this.props.required) {\n\t\t\t\tvar required = this.handleRequired(value, this.props.multi);\n\t\t\t\tthis.setState({ required: required });\n\t\t\t}\n\t\t\tif (this.props.onChange) {\n\t\t\t\tif (this.props.simpleValue && value) {\n\t\t\t\t\tvalue = this.props.multi ? value.map(function (i) {\n\t\t\t\t\t\treturn i[_this3.props.valueKey];\n\t\t\t\t\t}).join(this.props.delimiter) : value[this.props.valueKey];\n\t\t\t\t}\n\t\t\t\tthis.props.onChange(value);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'selectValue',\n\t\tvalue: function selectValue(value) {\n\t\t\tvar _this4 = this;\n\n\t\t\t// NOTE: we actually add/set the value in a callback to make sure the\n\t\t\t// input value is empty to avoid styling issues in Chrome\n\t\t\tif (this.props.closeOnSelect) {\n\t\t\t\tthis.hasScrolledToOption = false;\n\t\t\t}\n\t\t\tif (this.props.multi) {\n\t\t\t\tvar updatedValue = this.props.onSelectResetsInput ? '' : this.state.inputValue;\n\t\t\t\tthis.setState({\n\t\t\t\t\tfocusedIndex: null,\n\t\t\t\t\tinputValue: this.handleInputValueChange(updatedValue),\n\t\t\t\t\tisOpen: !this.props.closeOnSelect\n\t\t\t\t}, function () {\n\t\t\t\t\tvar valueArray = _this4.getValueArray(_this4.props.value);\n\t\t\t\t\tif (valueArray.some(function (i) {\n\t\t\t\t\t\treturn i[_this4.props.valueKey] === value[_this4.props.valueKey];\n\t\t\t\t\t})) {\n\t\t\t\t\t\t_this4.removeValue(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_this4.addValue(value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputValue: this.handleInputValueChange(''),\n\t\t\t\t\tisOpen: !this.props.closeOnSelect,\n\t\t\t\t\tisPseudoFocused: this.state.isFocused\n\t\t\t\t}, function () {\n\t\t\t\t\t_this4.setValue(value);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'addValue',\n\t\tvalue: function addValue(value) {\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tvar visibleOptions = this._visibleOptions.filter(function (val) {\n\t\t\t\treturn !val.disabled;\n\t\t\t});\n\t\t\tvar lastValueIndex = visibleOptions.indexOf(value);\n\t\t\tthis.setValue(valueArray.concat(value));\n\t\t\tif (visibleOptions.length - 1 === lastValueIndex) {\n\t\t\t\t// the last option was selected; focus the second-last one\n\t\t\t\tthis.focusOption(visibleOptions[lastValueIndex - 1]);\n\t\t\t} else if (visibleOptions.length > lastValueIndex) {\n\t\t\t\t// focus the option below the selected one\n\t\t\t\tthis.focusOption(visibleOptions[lastValueIndex + 1]);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'popValue',\n\t\tvalue: function popValue() {\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tif (!valueArray.length) return;\n\t\t\tif (valueArray[valueArray.length - 1].clearableValue === false) return;\n\t\t\tthis.setValue(this.props.multi ? valueArray.slice(0, valueArray.length - 1) : null);\n\t\t}\n\t}, {\n\t\tkey: 'removeValue',\n\t\tvalue: function removeValue(value) {\n\t\t\tvar _this5 = this;\n\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tthis.setValue(valueArray.filter(function (i) {\n\t\t\t\treturn i[_this5.props.valueKey] !== value[_this5.props.valueKey];\n\t\t\t}));\n\t\t\tthis.focus();\n\t\t}\n\t}, {\n\t\tkey: 'clearValue',\n\t\tvalue: function clearValue(event) {\n\t\t\t// if the event was triggered by a mousedown and not the primary\n\t\t\t// button, ignore it.\n\t\t\tif (event && event.type === 'mousedown' && event.button !== 0) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tthis.setValue(this.getResetValue());\n\t\t\tthis.setState({\n\t\t\t\tisOpen: false,\n\t\t\t\tinputValue: this.handleInputValueChange('')\n\t\t\t}, this.focus);\n\t\t}\n\t}, {\n\t\tkey: 'getResetValue',\n\t\tvalue: function getResetValue() {\n\t\t\tif (this.props.resetValue !== undefined) {\n\t\t\t\treturn this.props.resetValue;\n\t\t\t} else if (this.props.multi) {\n\t\t\t\treturn [];\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'focusOption',\n\t\tvalue: function focusOption(option) {\n\t\t\tthis.setState({\n\t\t\t\tfocusedOption: option\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'focusNextOption',\n\t\tvalue: function focusNextOption() {\n\t\t\tthis.focusAdjacentOption('next');\n\t\t}\n\t}, {\n\t\tkey: 'focusPreviousOption',\n\t\tvalue: function focusPreviousOption() {\n\t\t\tthis.focusAdjacentOption('previous');\n\t\t}\n\t}, {\n\t\tkey: 'focusPageUpOption',\n\t\tvalue: function focusPageUpOption() {\n\t\t\tthis.focusAdjacentOption('page_up');\n\t\t}\n\t}, {\n\t\tkey: 'focusPageDownOption',\n\t\tvalue: function focusPageDownOption() {\n\t\t\tthis.focusAdjacentOption('page_down');\n\t\t}\n\t}, {\n\t\tkey: 'focusStartOption',\n\t\tvalue: function focusStartOption() {\n\t\t\tthis.focusAdjacentOption('start');\n\t\t}\n\t}, {\n\t\tkey: 'focusEndOption',\n\t\tvalue: function focusEndOption() {\n\t\t\tthis.focusAdjacentOption('end');\n\t\t}\n\t}, {\n\t\tkey: 'focusAdjacentOption',\n\t\tvalue: function focusAdjacentOption(dir) {\n\t\t\tvar options = this._visibleOptions.map(function (option, index) {\n\t\t\t\treturn { option: option, index: index };\n\t\t\t}).filter(function (option) {\n\t\t\t\treturn !option.option.disabled;\n\t\t\t});\n\t\t\tthis._scrollToFocusedOptionOnUpdate = true;\n\t\t\tif (!this.state.isOpen) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisOpen: true,\n\t\t\t\t\tinputValue: '',\n\t\t\t\t\tfocusedOption: this._focusedOption || (options.length ? options[dir === 'next' ? 0 : options.length - 1].option : null)\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!options.length) return;\n\t\t\tvar focusedIndex = -1;\n\t\t\tfor (var i = 0; i < options.length; i++) {\n\t\t\t\tif (this._focusedOption === options[i].option) {\n\t\t\t\t\tfocusedIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (dir === 'next' && focusedIndex !== -1) {\n\t\t\t\tfocusedIndex = (focusedIndex + 1) % options.length;\n\t\t\t} else if (dir === 'previous') {\n\t\t\t\tif (focusedIndex > 0) {\n\t\t\t\t\tfocusedIndex = focusedIndex - 1;\n\t\t\t\t} else {\n\t\t\t\t\tfocusedIndex = options.length - 1;\n\t\t\t\t}\n\t\t\t} else if (dir === 'start') {\n\t\t\t\tfocusedIndex = 0;\n\t\t\t} else if (dir === 'end') {\n\t\t\t\tfocusedIndex = options.length - 1;\n\t\t\t} else if (dir === 'page_up') {\n\t\t\t\tvar potentialIndex = focusedIndex - this.props.pageSize;\n\t\t\t\tif (potentialIndex < 0) {\n\t\t\t\t\tfocusedIndex = 0;\n\t\t\t\t} else {\n\t\t\t\t\tfocusedIndex = potentialIndex;\n\t\t\t\t}\n\t\t\t} else if (dir === 'page_down') {\n\t\t\t\tvar potentialIndex = focusedIndex + this.props.pageSize;\n\t\t\t\tif (potentialIndex > options.length - 1) {\n\t\t\t\t\tfocusedIndex = options.length - 1;\n\t\t\t\t} else {\n\t\t\t\t\tfocusedIndex = potentialIndex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (focusedIndex === -1) {\n\t\t\t\tfocusedIndex = 0;\n\t\t\t}\n\n\t\t\tthis.setState({\n\t\t\t\tfocusedIndex: options[focusedIndex].index,\n\t\t\t\tfocusedOption: options[focusedIndex].option\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getFocusedOption',\n\t\tvalue: function getFocusedOption() {\n\t\t\treturn this._focusedOption;\n\t\t}\n\t}, {\n\t\tkey: 'selectFocusedOption',\n\t\tvalue: function selectFocusedOption() {\n\t\t\tif (this._focusedOption) {\n\t\t\t\treturn this.selectValue(this._focusedOption);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderLoading',\n\t\tvalue: function renderLoading() {\n\t\t\tif (!this.props.isLoading) return;\n\t\t\treturn React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-loading-zone', 'aria-hidden': 'true' },\n\t\t\t\tReact.createElement('span', { className: 'Select-loading' })\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderValue',\n\t\tvalue: function renderValue(valueArray, isOpen) {\n\t\t\tvar _this6 = this;\n\n\t\t\tvar renderLabel = this.props.valueRenderer || this.getOptionLabel;\n\t\t\tvar ValueComponent = this.props.valueComponent;\n\t\t\tif (!valueArray.length) {\n\t\t\t\treturn !this.state.inputValue ? React.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ className: 'Select-placeholder' },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null;\n\t\t\t}\n\t\t\tvar onClick = this.props.onValueClick ? this.handleValueClick : null;\n\t\t\tif (this.props.multi) {\n\t\t\t\treturn valueArray.map(function (value, i) {\n\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\tValueComponent,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid: _this6._instancePrefix + '-value-' + i,\n\t\t\t\t\t\t\tinstancePrefix: _this6._instancePrefix,\n\t\t\t\t\t\t\tdisabled: _this6.props.disabled || value.clearableValue === false,\n\t\t\t\t\t\t\tkey: 'value-' + i + '-' + value[_this6.props.valueKey],\n\t\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\t\tonRemove: _this6.removeValue,\n\t\t\t\t\t\t\tvalue: value\n\t\t\t\t\t\t},\n\t\t\t\t\t\trenderLabel(value, i),\n\t\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t\t'span',\n\t\t\t\t\t\t\t{ className: 'Select-aria-only' },\n\t\t\t\t\t\t\t'\\xA0'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t} else if (!this.state.inputValue) {\n\t\t\t\tif (isOpen) onClick = null;\n\t\t\t\treturn React.createElement(\n\t\t\t\t\tValueComponent,\n\t\t\t\t\t{\n\t\t\t\t\t\tid: this._instancePrefix + '-value-item',\n\t\t\t\t\t\tdisabled: this.props.disabled,\n\t\t\t\t\t\tinstancePrefix: this._instancePrefix,\n\t\t\t\t\t\tonClick: onClick,\n\t\t\t\t\t\tvalue: valueArray[0]\n\t\t\t\t\t},\n\t\t\t\t\trenderLabel(valueArray[0])\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderInput',\n\t\tvalue: function renderInput(valueArray, focusedOptionIndex) {\n\t\t\tvar _classNames,\n\t\t\t _this7 = this;\n\n\t\t\tvar className = classNames('Select-input', this.props.inputProps.className);\n\t\t\tvar isOpen = !!this.state.isOpen;\n\n\t\t\tvar ariaOwns = classNames((_classNames = {}, defineProperty(_classNames, this._instancePrefix + '-list', isOpen), defineProperty(_classNames, this._instancePrefix + '-backspace-remove-message', this.props.multi && !this.props.disabled && this.state.isFocused && !this.state.inputValue), _classNames));\n\t\t\tvar inputProps = _extends({}, this.props.inputProps, {\n\t\t\t\trole: 'combobox',\n\t\t\t\t'aria-expanded': '' + isOpen,\n\t\t\t\t'aria-owns': ariaOwns,\n\t\t\t\t'aria-haspopup': '' + isOpen,\n\t\t\t\t'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',\n\t\t\t\t'aria-describedby': this.props['aria-describedby'],\n\t\t\t\t'aria-labelledby': this.props['aria-labelledby'],\n\t\t\t\t'aria-label': this.props['aria-label'],\n\t\t\t\tclassName: className,\n\t\t\t\ttabIndex: this.props.tabIndex,\n\t\t\t\tonBlur: this.handleInputBlur,\n\t\t\t\tonChange: this.handleInputChange,\n\t\t\t\tonFocus: this.handleInputFocus,\n\t\t\t\tref: function ref(_ref) {\n\t\t\t\t\treturn _this7.input = _ref;\n\t\t\t\t},\n\t\t\t\trequired: this.state.required,\n\t\t\t\tvalue: this.state.inputValue\n\t\t\t});\n\n\t\t\tif (this.props.inputRenderer) {\n\t\t\t\treturn this.props.inputRenderer(inputProps);\n\t\t\t}\n\n\t\t\tif (this.props.disabled || !this.props.searchable) {\n\t\t\t\tvar _props$inputProps = this.props.inputProps,\n\t\t\t\t inputClassName = _props$inputProps.inputClassName,\n\t\t\t\t divProps = objectWithoutProperties(_props$inputProps, ['inputClassName']);\n\n\n\t\t\t\tvar _ariaOwns = classNames(defineProperty({}, this._instancePrefix + '-list', isOpen));\n\t\t\t\treturn React.createElement('div', _extends({}, divProps, {\n\t\t\t\t\trole: 'combobox',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-owns': _ariaOwns,\n\t\t\t\t\t'aria-activedescendant': isOpen ? this._instancePrefix + '-option-' + focusedOptionIndex : this._instancePrefix + '-value',\n\t\t\t\t\t'aria-labelledby': this.props['aria-labelledby'],\n\t\t\t\t\t'aria-label': this.props['aria-label'],\n\t\t\t\t\tclassName: className,\n\t\t\t\t\ttabIndex: this.props.tabIndex || 0,\n\t\t\t\t\tonBlur: this.handleInputBlur,\n\t\t\t\t\tonFocus: this.handleInputFocus,\n\t\t\t\t\tref: function ref(_ref2) {\n\t\t\t\t\t\treturn _this7.input = _ref2;\n\t\t\t\t\t},\n\t\t\t\t\t'aria-disabled': '' + !!this.props.disabled,\n\t\t\t\t\tstyle: { border: 0, width: 1, display: 'inline-block' } }));\n\t\t\t}\n\n\t\t\tif (this.props.autosize) {\n\t\t\t\treturn React.createElement(AutosizeInput, _extends({ id: this.props.id }, inputProps, { minWidth: '5' }));\n\t\t\t}\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: className, key: 'input-wrap' },\n\t\t\t\tReact.createElement('input', _extends({ id: this.props.id }, inputProps))\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderClear',\n\t\tvalue: function renderClear() {\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tif (!this.props.clearable || !valueArray.length || this.props.disabled || this.props.isLoading) return;\n\t\t\tvar clear = this.props.clearRenderer();\n\n\t\t\treturn React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{ className: 'Select-clear-zone', title: this.props.multi ? this.props.clearAllText : this.props.clearValueText,\n\t\t\t\t\t'aria-label': this.props.multi ? this.props.clearAllText : this.props.clearValueText,\n\t\t\t\t\tonMouseDown: this.clearValue,\n\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\tonTouchMove: this.handleTouchMove,\n\t\t\t\t\tonTouchEnd: this.handleTouchEndClearValue\n\t\t\t\t},\n\t\t\t\tclear\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'renderArrow',\n\t\tvalue: function renderArrow() {\n\t\t\tif (!this.props.arrowRenderer) return;\n\n\t\t\tvar onMouseDown = this.handleMouseDownOnArrow;\n\t\t\tvar isOpen = this.state.isOpen;\n\t\t\tvar arrow = this.props.arrowRenderer({ onMouseDown: onMouseDown, isOpen: isOpen });\n\n\t\t\tif (!arrow) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn React.createElement(\n\t\t\t\t'span',\n\t\t\t\t{\n\t\t\t\t\tclassName: 'Select-arrow-zone',\n\t\t\t\t\tonMouseDown: onMouseDown\n\t\t\t\t},\n\t\t\t\tarrow\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'filterOptions',\n\t\tvalue: function filterOptions$$1(excludeOptions) {\n\t\t\tvar filterValue = this.state.inputValue;\n\t\t\tvar options = this.props.options || [];\n\t\t\tif (this.props.filterOptions) {\n\t\t\t\t// Maintain backwards compatibility with boolean attribute\n\t\t\t\tvar filterOptions$$1 = typeof this.props.filterOptions === 'function' ? this.props.filterOptions : filterOptions;\n\n\t\t\t\treturn filterOptions$$1(options, filterValue, excludeOptions, {\n\t\t\t\t\tfilterOption: this.props.filterOption,\n\t\t\t\t\tignoreAccents: this.props.ignoreAccents,\n\t\t\t\t\tignoreCase: this.props.ignoreCase,\n\t\t\t\t\tlabelKey: this.props.labelKey,\n\t\t\t\t\tmatchPos: this.props.matchPos,\n\t\t\t\t\tmatchProp: this.props.matchProp,\n\t\t\t\t\tvalueKey: this.props.valueKey,\n\t\t\t\t\ttrimFilter: this.props.trimFilter\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn options;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onOptionRef',\n\t\tvalue: function onOptionRef(ref, isFocused) {\n\t\t\tif (isFocused) {\n\t\t\t\tthis.focused = ref;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderMenu',\n\t\tvalue: function renderMenu(options, valueArray, focusedOption) {\n\t\t\tif (options && options.length) {\n\t\t\t\treturn this.props.menuRenderer({\n\t\t\t\t\tfocusedOption: focusedOption,\n\t\t\t\t\tfocusOption: this.focusOption,\n\t\t\t\t\tinputValue: this.state.inputValue,\n\t\t\t\t\tinstancePrefix: this._instancePrefix,\n\t\t\t\t\tlabelKey: this.props.labelKey,\n\t\t\t\t\tonFocus: this.focusOption,\n\t\t\t\t\tonSelect: this.selectValue,\n\t\t\t\t\toptionClassName: this.props.optionClassName,\n\t\t\t\t\toptionComponent: this.props.optionComponent,\n\t\t\t\t\toptionRenderer: this.props.optionRenderer || this.getOptionLabel,\n\t\t\t\t\toptions: options,\n\t\t\t\t\tselectValue: this.selectValue,\n\t\t\t\t\tremoveValue: this.removeValue,\n\t\t\t\t\tvalueArray: valueArray,\n\t\t\t\t\tvalueKey: this.props.valueKey,\n\t\t\t\t\tonOptionRef: this.onOptionRef\n\t\t\t\t});\n\t\t\t} else if (this.props.noResultsText) {\n\t\t\t\treturn React.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ className: 'Select-noresults' },\n\t\t\t\t\tthis.props.noResultsText\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'renderHiddenField',\n\t\tvalue: function renderHiddenField(valueArray) {\n\t\t\tvar _this8 = this;\n\n\t\t\tif (!this.props.name) return;\n\t\t\tif (this.props.joinValues) {\n\t\t\t\tvar value = valueArray.map(function (i) {\n\t\t\t\t\treturn stringifyValue(i[_this8.props.valueKey]);\n\t\t\t\t}).join(this.props.delimiter);\n\t\t\t\treturn React.createElement('input', {\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tref: function ref(_ref3) {\n\t\t\t\t\t\treturn _this8.value = _ref3;\n\t\t\t\t\t},\n\t\t\t\t\tname: this.props.name,\n\t\t\t\t\tvalue: value,\n\t\t\t\t\tdisabled: this.props.disabled });\n\t\t\t}\n\t\t\treturn valueArray.map(function (item, index) {\n\t\t\t\treturn React.createElement('input', { key: 'hidden.' + index,\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tref: 'value' + index,\n\t\t\t\t\tname: _this8.props.name,\n\t\t\t\t\tvalue: stringifyValue(item[_this8.props.valueKey]),\n\t\t\t\t\tdisabled: _this8.props.disabled });\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'getFocusableOptionIndex',\n\t\tvalue: function getFocusableOptionIndex(selectedOption) {\n\t\t\tvar options = this._visibleOptions;\n\t\t\tif (!options.length) return null;\n\n\t\t\tvar valueKey = this.props.valueKey;\n\t\t\tvar focusedOption = this.state.focusedOption || selectedOption;\n\t\t\tif (focusedOption && !focusedOption.disabled) {\n\t\t\t\tvar focusedOptionIndex = -1;\n\t\t\t\toptions.some(function (option, index) {\n\t\t\t\t\tvar isOptionEqual = option[valueKey] === focusedOption[valueKey];\n\t\t\t\t\tif (isOptionEqual) {\n\t\t\t\t\t\tfocusedOptionIndex = index;\n\t\t\t\t\t}\n\t\t\t\t\treturn isOptionEqual;\n\t\t\t\t});\n\t\t\t\tif (focusedOptionIndex !== -1) {\n\t\t\t\t\treturn focusedOptionIndex;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < options.length; i++) {\n\t\t\t\tif (!options[i].disabled) return i;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t}, {\n\t\tkey: 'renderOuter',\n\t\tvalue: function renderOuter(options, valueArray, focusedOption) {\n\t\t\tvar _this9 = this;\n\n\t\t\tvar menu = this.renderMenu(options, valueArray, focusedOption);\n\t\t\tif (!menu) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ ref: function ref(_ref5) {\n\t\t\t\t\t\treturn _this9.menuContainer = _ref5;\n\t\t\t\t\t}, className: 'Select-menu-outer', style: this.props.menuContainerStyle },\n\t\t\t\tReact.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: function ref(_ref4) {\n\t\t\t\t\t\t\treturn _this9.menu = _ref4;\n\t\t\t\t\t\t}, role: 'listbox', tabIndex: -1, className: 'Select-menu', id: this._instancePrefix + '-list',\n\t\t\t\t\t\tstyle: this.props.menuStyle,\n\t\t\t\t\t\tonScroll: this.handleMenuScroll,\n\t\t\t\t\t\tonMouseDown: this.handleMouseDownOnMenu },\n\t\t\t\t\tmenu\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this10 = this;\n\n\t\t\tvar valueArray = this.getValueArray(this.props.value);\n\t\t\tvar options = this._visibleOptions = this.filterOptions(this.props.multi && this.props.removeSelected ? valueArray : null);\n\t\t\tvar isOpen = this.state.isOpen;\n\t\t\tif (this.props.multi && !options.length && valueArray.length && !this.state.inputValue) isOpen = false;\n\t\t\tvar focusedOptionIndex = this.getFocusableOptionIndex(valueArray[0]);\n\n\t\t\tvar focusedOption = null;\n\t\t\tif (focusedOptionIndex !== null) {\n\t\t\t\tfocusedOption = this._focusedOption = options[focusedOptionIndex];\n\t\t\t} else {\n\t\t\t\tfocusedOption = this._focusedOption = null;\n\t\t\t}\n\t\t\tvar className = classNames('Select', this.props.className, {\n\t\t\t\t'Select--multi': this.props.multi,\n\t\t\t\t'Select--single': !this.props.multi,\n\t\t\t\t'is-clearable': this.props.clearable,\n\t\t\t\t'is-disabled': this.props.disabled,\n\t\t\t\t'is-focused': this.state.isFocused,\n\t\t\t\t'is-loading': this.props.isLoading,\n\t\t\t\t'is-open': isOpen,\n\t\t\t\t'is-pseudo-focused': this.state.isPseudoFocused,\n\t\t\t\t'is-searchable': this.props.searchable,\n\t\t\t\t'has-value': valueArray.length,\n\t\t\t\t'Select--rtl': this.props.rtl\n\t\t\t});\n\n\t\t\tvar removeMessage = null;\n\t\t\tif (this.props.multi && !this.props.disabled && valueArray.length && !this.state.inputValue && this.state.isFocused && this.props.backspaceRemoves) {\n\t\t\t\tremoveMessage = React.createElement(\n\t\t\t\t\t'span',\n\t\t\t\t\t{ id: this._instancePrefix + '-backspace-remove-message', className: 'Select-aria-only', 'aria-live': 'assertive' },\n\t\t\t\t\tthis.props.backspaceToRemoveMessage.replace('{label}', valueArray[valueArray.length - 1][this.props.labelKey])\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn React.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ ref: function ref(_ref7) {\n\t\t\t\t\t\treturn _this10.wrapper = _ref7;\n\t\t\t\t\t},\n\t\t\t\t\tclassName: className,\n\t\t\t\t\tstyle: this.props.wrapperStyle },\n\t\t\t\tthis.renderHiddenField(valueArray),\n\t\t\t\tReact.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: function ref(_ref6) {\n\t\t\t\t\t\t\treturn _this10.control = _ref6;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tclassName: 'Select-control',\n\t\t\t\t\t\tstyle: this.props.style,\n\t\t\t\t\t\tonKeyDown: this.handleKeyDown,\n\t\t\t\t\t\tonMouseDown: this.handleMouseDown,\n\t\t\t\t\t\tonTouchEnd: this.handleTouchEnd,\n\t\t\t\t\t\tonTouchStart: this.handleTouchStart,\n\t\t\t\t\t\tonTouchMove: this.handleTouchMove\n\t\t\t\t\t},\n\t\t\t\t\tReact.createElement(\n\t\t\t\t\t\t'span',\n\t\t\t\t\t\t{ className: 'Select-multi-value-wrapper', id: this._instancePrefix + '-value' },\n\t\t\t\t\t\tthis.renderValue(valueArray, isOpen),\n\t\t\t\t\t\tthis.renderInput(valueArray, focusedOptionIndex)\n\t\t\t\t\t),\n\t\t\t\t\tremoveMessage,\n\t\t\t\t\tthis.renderLoading(),\n\t\t\t\t\tthis.renderClear(),\n\t\t\t\t\tthis.renderArrow()\n\t\t\t\t),\n\t\t\t\tisOpen ? this.renderOuter(options, valueArray, focusedOption) : null\n\t\t\t);\n\t\t}\n\t}]);\n\treturn Select;\n}(React.Component);\n\n\n\nSelect$1.propTypes = {\n\t'aria-describedby': PropTypes.string, // html id(s) of element(s) that should be used to describe this input (for assistive tech)\n\t'aria-label': PropTypes.string, // aria label (for assistive tech)\n\t'aria-labelledby': PropTypes.string, // html id of an element that should be used as the label (for assistive tech)\n\tarrowRenderer: PropTypes.func, // create the drop-down caret element\n\tautoBlur: PropTypes.bool, // automatically blur the component when an option is selected\n\tautoFocus: PropTypes.bool, // autofocus the component on mount\n\tautofocus: PropTypes.bool, // deprecated; use autoFocus instead\n\tautosize: PropTypes.bool, // whether to enable autosizing or not\n\tbackspaceRemoves: PropTypes.bool, // whether backspace removes an item if there is no text input\n\tbackspaceToRemoveMessage: PropTypes.string, // message to use for screenreaders to press backspace to remove the current item - {label} is replaced with the item label\n\tclassName: PropTypes.string, // className for the outer element\n\tclearAllText: stringOrNode, // title for the \"clear\" control when multi: true\n\tclearRenderer: PropTypes.func, // create clearable x element\n\tclearValueText: stringOrNode, // title for the \"clear\" control\n\tclearable: PropTypes.bool, // should it be possible to reset value\n\tcloseOnSelect: PropTypes.bool, // whether to close the menu when a value is selected\n\tdeleteRemoves: PropTypes.bool, // whether delete removes an item if there is no text input\n\tdelimiter: PropTypes.string, // delimiter to use to join multiple values for the hidden field value\n\tdisabled: PropTypes.bool, // whether the Select is disabled or not\n\tescapeClearsValue: PropTypes.bool, // whether escape clears the value when the menu is closed\n\tfilterOption: PropTypes.func, // method to filter a single option (option, filterString)\n\tfilterOptions: PropTypes.any, // boolean to enable default filtering or function to filter the options array ([options], filterString, [values])\n\tid: PropTypes.string, // html id to set on the input element for accessibility or tests\n\tignoreAccents: PropTypes.bool, // whether to strip diacritics when filtering\n\tignoreCase: PropTypes.bool, // whether to perform case-insensitive filtering\n\tinputProps: PropTypes.object, // custom attributes for the Input\n\tinputRenderer: PropTypes.func, // returns a custom input component\n\tinstanceId: PropTypes.string, // set the components instanceId\n\tisLoading: PropTypes.bool, // whether the Select is loading externally or not (such as options being loaded)\n\tjoinValues: PropTypes.bool, // joins multiple values into a single form field with the delimiter (legacy mode)\n\tlabelKey: PropTypes.string, // path of the label value in option objects\n\tmatchPos: PropTypes.string, // (any|start) match the start or entire string when filtering\n\tmatchProp: PropTypes.string, // (any|label|value) which option property to filter on\n\tmenuBuffer: PropTypes.number, // optional buffer (in px) between the bottom of the viewport and the bottom of the menu\n\tmenuContainerStyle: PropTypes.object, // optional style to apply to the menu container\n\tmenuRenderer: PropTypes.func, // renders a custom menu with options\n\tmenuStyle: PropTypes.object, // optional style to apply to the menu\n\tmulti: PropTypes.bool, // multi-value input\n\tname: PropTypes.string, // generates a hidden tag with this field name for html forms\n\tnoResultsText: stringOrNode, // placeholder displayed when there are no matching search results\n\tonBlur: PropTypes.func, // onBlur handler: function (event) {}\n\tonBlurResetsInput: PropTypes.bool, // whether input is cleared on blur\n\tonChange: PropTypes.func, // onChange handler: function (newValue) {}\n\tonClose: PropTypes.func, // fires when the menu is closed\n\tonCloseResetsInput: PropTypes.bool, // whether input is cleared when menu is closed through the arrow\n\tonFocus: PropTypes.func, // onFocus handler: function (event) {}\n\tonInputChange: PropTypes.func, // onInputChange handler: function (inputValue) {}\n\tonInputKeyDown: PropTypes.func, // input keyDown handler: function (event) {}\n\tonMenuScrollToBottom: PropTypes.func, // fires when the menu is scrolled to the bottom; can be used to paginate options\n\tonOpen: PropTypes.func, // fires when the menu is opened\n\tonSelectResetsInput: PropTypes.bool, // whether input is cleared on select (works only for multiselect)\n\tonValueClick: PropTypes.func, // onClick handler for value labels: function (value, event) {}\n\topenOnClick: PropTypes.bool, // boolean to control opening the menu when the control is clicked\n\topenOnFocus: PropTypes.bool, // always open options menu on focus\n\toptionClassName: PropTypes.string, // additional class(es) to apply to the elements\n\toptionComponent: PropTypes.func, // option component to render in dropdown\n\toptionRenderer: PropTypes.func, // optionRenderer: function (option) {}\n\toptions: PropTypes.array, // array of options\n\tpageSize: PropTypes.number, // number of entries to page when using page up/down keys\n\tplaceholder: stringOrNode, // field placeholder, displayed when there's no value\n\tremoveSelected: PropTypes.bool, // whether the selected option is removed from the dropdown on multi selects\n\trequired: PropTypes.bool, // applies HTML5 required attribute when needed\n\tresetValue: PropTypes.any, // value to use when you clear the control\n\trtl: PropTypes.bool, // set to true in order to use react-select in right-to-left direction\n\tscrollMenuIntoView: PropTypes.bool, // boolean to enable the viewport to shift so that the full menu fully visible when engaged\n\tsearchable: PropTypes.bool, // whether to enable searching feature or not\n\tsimpleValue: PropTypes.bool, // pass the value to onChange as a simple value (legacy pre 1.0 mode), defaults to false\n\tstyle: PropTypes.object, // optional style to apply to the control\n\ttabIndex: stringOrNumber, // optional tab index of the control\n\ttabSelectsValue: PropTypes.bool, // whether to treat tabbing out while focused to be value selection\n\ttrimFilter: PropTypes.bool, // whether to trim whitespace around filter value\n\tvalue: PropTypes.any, // initial field value\n\tvalueComponent: PropTypes.func, // value component to render\n\tvalueKey: PropTypes.string, // path of the label value in option objects\n\tvalueRenderer: PropTypes.func, // valueRenderer: function (option) {}\n\twrapperStyle: PropTypes.object // optional style to apply to the component wrapper\n};\n\nSelect$1.defaultProps = {\n\tarrowRenderer: arrowRenderer,\n\tautosize: true,\n\tbackspaceRemoves: true,\n\tbackspaceToRemoveMessage: 'Press backspace to remove {label}',\n\tclearable: true,\n\tclearAllText: 'Clear all',\n\tclearRenderer: clearRenderer,\n\tclearValueText: 'Clear value',\n\tcloseOnSelect: true,\n\tdeleteRemoves: true,\n\tdelimiter: ',',\n\tdisabled: false,\n\tescapeClearsValue: true,\n\tfilterOptions: filterOptions,\n\tignoreAccents: true,\n\tignoreCase: true,\n\tinputProps: {},\n\tisLoading: false,\n\tjoinValues: false,\n\tlabelKey: 'label',\n\tmatchPos: 'any',\n\tmatchProp: 'any',\n\tmenuBuffer: 0,\n\tmenuRenderer: menuRenderer,\n\tmulti: false,\n\tnoResultsText: 'No results found',\n\tonBlurResetsInput: true,\n\tonSelectResetsInput: true,\n\tonCloseResetsInput: true,\n\topenOnClick: true,\n\toptionComponent: Option,\n\tpageSize: 5,\n\tplaceholder: 'Select...',\n\tremoveSelected: true,\n\trequired: false,\n\trtl: false,\n\tscrollMenuIntoView: true,\n\tsearchable: true,\n\tsimpleValue: false,\n\ttabSelectsValue: true,\n\ttrimFilter: true,\n\tvalueComponent: Value,\n\tvalueKey: 'value'\n};\n\nvar propTypes = {\n\tautoload: PropTypes.bool.isRequired, // automatically call the `loadOptions` prop on-mount; defaults to true\n\tcache: PropTypes.any, // object to use to cache results; set to null/false to disable caching\n\tchildren: PropTypes.func.isRequired, // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n\tignoreAccents: PropTypes.bool, // strip diacritics when filtering; defaults to true\n\tignoreCase: PropTypes.bool, // perform case-insensitive filtering; defaults to true\n\tloadOptions: PropTypes.func.isRequired, // callback to load options asynchronously; (inputValue: string, callback: Function): ?Promise\n\tloadingPlaceholder: PropTypes.oneOfType([// replaces the placeholder while options are loading\n\tPropTypes.string, PropTypes.node]),\n\tmulti: PropTypes.bool, // multi-value input\n\tnoResultsText: PropTypes.oneOfType([// field noResultsText, displayed when no options come back from the server\n\tPropTypes.string, PropTypes.node]),\n\tonChange: PropTypes.func, // onChange handler: function (newValue) {}\n\tonInputChange: PropTypes.func, // optional for keeping track of what is being typed\n\toptions: PropTypes.array.isRequired, // array of options\n\tplaceholder: PropTypes.oneOfType([// field placeholder, displayed when there's no value (shared with Select)\n\tPropTypes.string, PropTypes.node]),\n\tsearchPromptText: PropTypes.oneOfType([// label to prompt for search input\n\tPropTypes.string, PropTypes.node]),\n\tvalue: PropTypes.any // initial field value\n};\n\nvar defaultCache = {};\n\nvar defaultProps = {\n\tautoload: true,\n\tcache: defaultCache,\n\tchildren: defaultChildren,\n\tignoreAccents: true,\n\tignoreCase: true,\n\tloadingPlaceholder: 'Loading...',\n\toptions: [],\n\tsearchPromptText: 'Type to search'\n};\n\nvar Async = function (_Component) {\n\tinherits(Async, _Component);\n\n\tfunction Async(props, context) {\n\t\tclassCallCheck(this, Async);\n\n\t\tvar _this = possibleConstructorReturn(this, (Async.__proto__ || Object.getPrototypeOf(Async)).call(this, props, context));\n\n\t\t_this._cache = props.cache === defaultCache ? {} : props.cache;\n\n\t\t_this.state = {\n\t\t\tinputValue: '',\n\t\t\tisLoading: false,\n\t\t\toptions: props.options\n\t\t};\n\n\t\t_this.onInputChange = _this.onInputChange.bind(_this);\n\t\treturn _this;\n\t}\n\n\tcreateClass(Async, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tvar autoload = this.props.autoload;\n\n\n\t\t\tif (autoload) {\n\t\t\t\tthis.loadOptions('');\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tif (nextProps.options !== this.props.options) {\n\t\t\t\tthis.setState({\n\t\t\t\t\toptions: nextProps.options\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis._callback = null;\n\t\t}\n\t}, {\n\t\tkey: 'loadOptions',\n\t\tvalue: function loadOptions(inputValue) {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar loadOptions = this.props.loadOptions;\n\n\t\t\tvar cache = this._cache;\n\n\t\t\tif (cache && Object.prototype.hasOwnProperty.call(cache, inputValue)) {\n\t\t\t\tthis._callback = null;\n\n\t\t\t\tthis.setState({\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\toptions: cache[inputValue]\n\t\t\t\t});\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar callback = function callback(error, data) {\n\t\t\t\tvar options = data && data.options || [];\n\n\t\t\t\tif (cache) {\n\t\t\t\t\tcache[inputValue] = options;\n\t\t\t\t}\n\n\t\t\t\tif (callback === _this2._callback) {\n\t\t\t\t\t_this2._callback = null;\n\n\t\t\t\t\t_this2.setState({\n\t\t\t\t\t\tisLoading: false,\n\t\t\t\t\t\toptions: options\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Ignore all but the most recent request\n\t\t\tthis._callback = callback;\n\n\t\t\tvar promise = loadOptions(inputValue, callback);\n\t\t\tif (promise) {\n\t\t\t\tpromise.then(function (data) {\n\t\t\t\t\treturn callback(null, data);\n\t\t\t\t}, function (error) {\n\t\t\t\t\treturn callback(error);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this._callback && !this.state.isLoading) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tisLoading: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onInputChange',\n\t\tvalue: function onInputChange(inputValue) {\n\t\t\tvar _props = this.props,\n\t\t\t ignoreAccents = _props.ignoreAccents,\n\t\t\t ignoreCase = _props.ignoreCase,\n\t\t\t onInputChange = _props.onInputChange;\n\n\t\t\tvar newInputValue = inputValue;\n\n\t\t\tif (onInputChange) {\n\t\t\t\tvar value = onInputChange(newInputValue);\n\t\t\t\t// Note: != used deliberately here to catch undefined and null\n\t\t\t\tif (value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object') {\n\t\t\t\t\tnewInputValue = '' + value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar transformedInputValue = newInputValue;\n\n\t\t\tif (ignoreAccents) {\n\t\t\t\ttransformedInputValue = stripDiacritics(transformedInputValue);\n\t\t\t}\n\n\t\t\tif (ignoreCase) {\n\t\t\t\ttransformedInputValue = transformedInputValue.toLowerCase();\n\t\t\t}\n\n\t\t\tthis.setState({ inputValue: newInputValue });\n\t\t\tthis.loadOptions(transformedInputValue);\n\n\t\t\t// Return new input value, but without applying toLowerCase() to avoid modifying the user's view case of the input while typing.\n\t\t\treturn newInputValue;\n\t\t}\n\t}, {\n\t\tkey: 'noResultsText',\n\t\tvalue: function noResultsText() {\n\t\t\tvar _props2 = this.props,\n\t\t\t loadingPlaceholder = _props2.loadingPlaceholder,\n\t\t\t noResultsText = _props2.noResultsText,\n\t\t\t searchPromptText = _props2.searchPromptText;\n\t\t\tvar _state = this.state,\n\t\t\t inputValue = _state.inputValue,\n\t\t\t isLoading = _state.isLoading;\n\n\n\t\t\tif (isLoading) {\n\t\t\t\treturn loadingPlaceholder;\n\t\t\t}\n\t\t\tif (inputValue && noResultsText) {\n\t\t\t\treturn noResultsText;\n\t\t\t}\n\t\t\treturn searchPromptText;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.select.focus();\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this3 = this;\n\n\t\t\tvar _props3 = this.props,\n\t\t\t children = _props3.children,\n\t\t\t loadingPlaceholder = _props3.loadingPlaceholder,\n\t\t\t multi = _props3.multi,\n\t\t\t onChange = _props3.onChange,\n\t\t\t placeholder = _props3.placeholder;\n\t\t\tvar _state2 = this.state,\n\t\t\t isLoading = _state2.isLoading,\n\t\t\t options = _state2.options;\n\n\n\t\t\tvar props = {\n\t\t\t\tnoResultsText: this.noResultsText(),\n\t\t\t\tplaceholder: isLoading ? loadingPlaceholder : placeholder,\n\t\t\t\toptions: isLoading && loadingPlaceholder ? [] : options,\n\t\t\t\tref: function ref(_ref) {\n\t\t\t\t\treturn _this3.select = _ref;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn children(_extends({}, this.props, props, {\n\t\t\t\tisLoading: isLoading,\n\t\t\t\tonInputChange: this.onInputChange\n\t\t\t}));\n\t\t}\n\t}]);\n\treturn Async;\n}(Component);\n\nAsync.propTypes = propTypes;\nAsync.defaultProps = defaultProps;\n\nfunction defaultChildren(props) {\n\treturn React.createElement(Select$1, props);\n}\n\nvar CreatableSelect = function (_React$Component) {\n\tinherits(CreatableSelect, _React$Component);\n\n\tfunction CreatableSelect(props, context) {\n\t\tclassCallCheck(this, CreatableSelect);\n\n\t\tvar _this = possibleConstructorReturn(this, (CreatableSelect.__proto__ || Object.getPrototypeOf(CreatableSelect)).call(this, props, context));\n\n\t\t_this.filterOptions = _this.filterOptions.bind(_this);\n\t\t_this.menuRenderer = _this.menuRenderer.bind(_this);\n\t\t_this.onInputKeyDown = _this.onInputKeyDown.bind(_this);\n\t\t_this.onInputChange = _this.onInputChange.bind(_this);\n\t\t_this.onOptionSelect = _this.onOptionSelect.bind(_this);\n\t\treturn _this;\n\t}\n\n\tcreateClass(CreatableSelect, [{\n\t\tkey: 'createNewOption',\n\t\tvalue: function createNewOption() {\n\t\t\tvar _props = this.props,\n\t\t\t isValidNewOption = _props.isValidNewOption,\n\t\t\t newOptionCreator = _props.newOptionCreator,\n\t\t\t onNewOptionClick = _props.onNewOptionClick,\n\t\t\t _props$options = _props.options,\n\t\t\t options = _props$options === undefined ? [] : _props$options;\n\n\n\t\t\tif (isValidNewOption({ label: this.inputValue })) {\n\t\t\t\tvar option = newOptionCreator({ label: this.inputValue, labelKey: this.labelKey, valueKey: this.valueKey });\n\t\t\t\tvar _isOptionUnique = this.isOptionUnique({ option: option });\n\n\t\t\t\t// Don't add the same option twice.\n\t\t\t\tif (_isOptionUnique) {\n\t\t\t\t\tif (onNewOptionClick) {\n\t\t\t\t\t\tonNewOptionClick(option);\n\t\t\t\t\t} else {\n\t\t\t\t\t\toptions.unshift(option);\n\n\t\t\t\t\t\tthis.select.selectValue(option);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'filterOptions',\n\t\tvalue: function filterOptions$$1() {\n\t\t\tvar _props2 = this.props,\n\t\t\t filterOptions$$1 = _props2.filterOptions,\n\t\t\t isValidNewOption = _props2.isValidNewOption,\n\t\t\t promptTextCreator = _props2.promptTextCreator;\n\n\t\t\t// TRICKY Check currently selected options as well.\n\t\t\t// Don't display a create-prompt for a value that's selected.\n\t\t\t// This covers async edge-cases where a newly-created Option isn't yet in the async-loaded array.\n\n\t\t\tvar excludeOptions = (arguments.length <= 2 ? undefined : arguments[2]) || [];\n\n\t\t\tvar filteredOptions = filterOptions$$1.apply(undefined, arguments) || [];\n\n\t\t\tif (isValidNewOption({ label: this.inputValue })) {\n\t\t\t\tvar _newOptionCreator = this.props.newOptionCreator;\n\n\n\t\t\t\tvar option = _newOptionCreator({\n\t\t\t\t\tlabel: this.inputValue,\n\t\t\t\t\tlabelKey: this.labelKey,\n\t\t\t\t\tvalueKey: this.valueKey\n\t\t\t\t});\n\n\t\t\t\t// TRICKY Compare to all options (not just filtered options) in case option has already been selected).\n\t\t\t\t// For multi-selects, this would remove it from the filtered list.\n\t\t\t\tvar _isOptionUnique2 = this.isOptionUnique({\n\t\t\t\t\toption: option,\n\t\t\t\t\toptions: excludeOptions.concat(filteredOptions)\n\t\t\t\t});\n\n\t\t\t\tif (_isOptionUnique2) {\n\t\t\t\t\tvar prompt = promptTextCreator(this.inputValue);\n\n\t\t\t\t\tthis._createPlaceholderOption = _newOptionCreator({\n\t\t\t\t\t\tlabel: prompt,\n\t\t\t\t\t\tlabelKey: this.labelKey,\n\t\t\t\t\t\tvalueKey: this.valueKey\n\t\t\t\t\t});\n\n\t\t\t\t\tfilteredOptions.unshift(this._createPlaceholderOption);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn filteredOptions;\n\t\t}\n\t}, {\n\t\tkey: 'isOptionUnique',\n\t\tvalue: function isOptionUnique(_ref) {\n\t\t\tvar option = _ref.option,\n\t\t\t options = _ref.options;\n\t\t\tvar isOptionUnique = this.props.isOptionUnique;\n\n\n\t\t\toptions = options || this.props.options;\n\n\t\t\treturn isOptionUnique({\n\t\t\t\tlabelKey: this.labelKey,\n\t\t\t\toption: option,\n\t\t\t\toptions: options,\n\t\t\t\tvalueKey: this.valueKey\n\t\t\t});\n\t\t}\n\t}, {\n\t\tkey: 'menuRenderer',\n\t\tvalue: function menuRenderer$$1(params) {\n\t\t\tvar menuRenderer$$1 = this.props.menuRenderer;\n\n\n\t\t\treturn menuRenderer$$1(_extends({}, params, {\n\t\t\t\tonSelect: this.onOptionSelect,\n\t\t\t\tselectValue: this.onOptionSelect\n\t\t\t}));\n\t\t}\n\t}, {\n\t\tkey: 'onInputChange',\n\t\tvalue: function onInputChange(input) {\n\t\t\tvar onInputChange = this.props.onInputChange;\n\n\t\t\t// This value may be needed in between Select mounts (when this.select is null)\n\n\t\t\tthis.inputValue = input;\n\n\t\t\tif (onInputChange) {\n\t\t\t\tthis.inputValue = onInputChange(input);\n\t\t\t}\n\n\t\t\treturn this.inputValue;\n\t\t}\n\t}, {\n\t\tkey: 'onInputKeyDown',\n\t\tvalue: function onInputKeyDown(event) {\n\t\t\tvar _props3 = this.props,\n\t\t\t shouldKeyDownEventCreateNewOption = _props3.shouldKeyDownEventCreateNewOption,\n\t\t\t onInputKeyDown = _props3.onInputKeyDown;\n\n\t\t\tvar focusedOption = this.select.getFocusedOption();\n\n\t\t\tif (focusedOption && focusedOption === this._createPlaceholderOption && shouldKeyDownEventCreateNewOption({ keyCode: event.keyCode })) {\n\t\t\t\tthis.createNewOption();\n\n\t\t\t\t// Prevent decorated Select from doing anything additional with this keyDown event\n\t\t\t\tevent.preventDefault();\n\t\t\t} else if (onInputKeyDown) {\n\t\t\t\tonInputKeyDown(event);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'onOptionSelect',\n\t\tvalue: function onOptionSelect(option, event) {\n\t\t\tif (option === this._createPlaceholderOption) {\n\t\t\t\tthis.createNewOption();\n\t\t\t} else {\n\t\t\t\tthis.select.selectValue(option);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.select.focus();\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this2 = this;\n\n\t\t\tvar _props4 = this.props,\n\t\t\t newOptionCreator = _props4.newOptionCreator,\n\t\t\t shouldKeyDownEventCreateNewOption = _props4.shouldKeyDownEventCreateNewOption,\n\t\t\t refProp = _props4.ref,\n\t\t\t restProps = objectWithoutProperties(_props4, ['newOptionCreator', 'shouldKeyDownEventCreateNewOption', 'ref']);\n\t\t\tvar children = this.props.children;\n\n\t\t\t// We can't use destructuring default values to set the children,\n\t\t\t// because it won't apply work if `children` is null. A falsy check is\n\t\t\t// more reliable in real world use-cases.\n\n\t\t\tif (!children) {\n\t\t\t\tchildren = defaultChildren$2;\n\t\t\t}\n\n\t\t\tvar props = _extends({}, restProps, {\n\t\t\t\tallowCreate: true,\n\t\t\t\tfilterOptions: this.filterOptions,\n\t\t\t\tmenuRenderer: this.menuRenderer,\n\t\t\t\tonInputChange: this.onInputChange,\n\t\t\t\tonInputKeyDown: this.onInputKeyDown,\n\t\t\t\tref: function ref(_ref2) {\n\t\t\t\t\t_this2.select = _ref2;\n\n\t\t\t\t\t// These values may be needed in between Select mounts (when this.select is null)\n\t\t\t\t\tif (_ref2) {\n\t\t\t\t\t\t_this2.labelKey = _ref2.props.labelKey;\n\t\t\t\t\t\t_this2.valueKey = _ref2.props.valueKey;\n\t\t\t\t\t}\n\t\t\t\t\tif (refProp) {\n\t\t\t\t\t\trefProp(_ref2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn children(props);\n\t\t}\n\t}]);\n\treturn CreatableSelect;\n}(React.Component);\n\n\n\nfunction defaultChildren$2(props) {\n\treturn React.createElement(Select$1, props);\n}\n\nfunction isOptionUnique(_ref3) {\n\tvar option = _ref3.option,\n\t options = _ref3.options,\n\t labelKey = _ref3.labelKey,\n\t valueKey = _ref3.valueKey;\n\n\treturn options.filter(function (existingOption) {\n\t\treturn existingOption[labelKey] === option[labelKey] || existingOption[valueKey] === option[valueKey];\n\t}).length === 0;\n}\n\nfunction isValidNewOption(_ref4) {\n\tvar label = _ref4.label;\n\n\treturn !!label;\n}\n\nfunction newOptionCreator(_ref5) {\n\tvar label = _ref5.label,\n\t labelKey = _ref5.labelKey,\n\t valueKey = _ref5.valueKey;\n\n\tvar option = {};\n\toption[valueKey] = label;\n\toption[labelKey] = label;\n\toption.className = 'Select-create-option-placeholder';\n\treturn option;\n}\n\nfunction promptTextCreator(label) {\n\treturn 'Create option \"' + label + '\"';\n}\n\nfunction shouldKeyDownEventCreateNewOption(_ref6) {\n\tvar keyCode = _ref6.keyCode;\n\n\tswitch (keyCode) {\n\t\tcase 9: // TAB\n\t\tcase 13: // ENTER\n\t\tcase 188:\n\t\t\t// COMMA\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\n// Default prop methods\nCreatableSelect.isOptionUnique = isOptionUnique;\nCreatableSelect.isValidNewOption = isValidNewOption;\nCreatableSelect.newOptionCreator = newOptionCreator;\nCreatableSelect.promptTextCreator = promptTextCreator;\nCreatableSelect.shouldKeyDownEventCreateNewOption = shouldKeyDownEventCreateNewOption;\n\nCreatableSelect.defaultProps = {\n\tfilterOptions: filterOptions,\n\tisOptionUnique: isOptionUnique,\n\tisValidNewOption: isValidNewOption,\n\tmenuRenderer: menuRenderer,\n\tnewOptionCreator: newOptionCreator,\n\tpromptTextCreator: promptTextCreator,\n\tshouldKeyDownEventCreateNewOption: shouldKeyDownEventCreateNewOption\n};\n\nCreatableSelect.propTypes = {\n\t// Child function responsible for creating the inner Select component\n\t// This component can be used to compose HOCs (eg Creatable and Async)\n\t// (props: Object): PropTypes.element\n\tchildren: PropTypes.func,\n\n\t// See Select.propTypes.filterOptions\n\tfilterOptions: PropTypes.any,\n\n\t// Searches for any matching option within the set of options.\n\t// This function prevents duplicate options from being created.\n\t// ({ option: Object, options: Array, labelKey: string, valueKey: string }): boolean\n\tisOptionUnique: PropTypes.func,\n\n\t// Determines if the current input text represents a valid option.\n\t// ({ label: string }): boolean\n\tisValidNewOption: PropTypes.func,\n\n\t// See Select.propTypes.menuRenderer\n\tmenuRenderer: PropTypes.any,\n\n\t// Factory to create new option.\n\t// ({ label: string, labelKey: string, valueKey: string }): Object\n\tnewOptionCreator: PropTypes.func,\n\n\t// input change handler: function (inputValue) {}\n\tonInputChange: PropTypes.func,\n\n\t// input keyDown handler: function (event) {}\n\tonInputKeyDown: PropTypes.func,\n\n\t// new option click handler: function (option) {}\n\tonNewOptionClick: PropTypes.func,\n\n\t// See Select.propTypes.options\n\toptions: PropTypes.array,\n\n\t// Creates prompt/placeholder option text.\n\t// (filterText: string): string\n\tpromptTextCreator: PropTypes.func,\n\n\tref: PropTypes.func,\n\n\t// Decides if a keyDown event (eg its `keyCode`) should result in the creation of a new option.\n\tshouldKeyDownEventCreateNewOption: PropTypes.func\n};\n\nvar AsyncCreatableSelect = function (_React$Component) {\n\tinherits(AsyncCreatableSelect, _React$Component);\n\n\tfunction AsyncCreatableSelect() {\n\t\tclassCallCheck(this, AsyncCreatableSelect);\n\t\treturn possibleConstructorReturn(this, (AsyncCreatableSelect.__proto__ || Object.getPrototypeOf(AsyncCreatableSelect)).apply(this, arguments));\n\t}\n\n\tcreateClass(AsyncCreatableSelect, [{\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.select.focus();\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar _this2 = this;\n\n\t\t\treturn React.createElement(\n\t\t\t\tAsync,\n\t\t\t\tthis.props,\n\t\t\t\tfunction (_ref) {\n\t\t\t\t\tvar ref = _ref.ref,\n\t\t\t\t\t asyncProps = objectWithoutProperties(_ref, ['ref']);\n\n\t\t\t\t\tvar asyncRef = ref;\n\t\t\t\t\treturn React.createElement(\n\t\t\t\t\t\tCreatableSelect,\n\t\t\t\t\t\tasyncProps,\n\t\t\t\t\t\tfunction (_ref2) {\n\t\t\t\t\t\t\tvar ref = _ref2.ref,\n\t\t\t\t\t\t\t creatableProps = objectWithoutProperties(_ref2, ['ref']);\n\n\t\t\t\t\t\t\tvar creatableRef = ref;\n\t\t\t\t\t\t\treturn _this2.props.children(_extends({}, creatableProps, {\n\t\t\t\t\t\t\t\tref: function ref(select) {\n\t\t\t\t\t\t\t\t\tcreatableRef(select);\n\t\t\t\t\t\t\t\t\tasyncRef(select);\n\t\t\t\t\t\t\t\t\t_this2.select = select;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}]);\n\treturn AsyncCreatableSelect;\n}(React.Component);\n\n\n\nfunction defaultChildren$1(props) {\n\treturn React.createElement(Select$1, props);\n}\n\nAsyncCreatableSelect.propTypes = {\n\tchildren: PropTypes.func.isRequired // Child function responsible for creating the inner Select component; (props: Object): PropTypes.element\n};\n\nAsyncCreatableSelect.defaultProps = {\n\tchildren: defaultChildren$1\n};\n\nSelect$1.Async = Async;\nSelect$1.AsyncCreatable = AsyncCreatableSelect;\nSelect$1.Creatable = CreatableSelect;\nSelect$1.Value = Value;\nSelect$1.Option = Option;\n\nexport { Async, AsyncCreatableSelect as AsyncCreatable, CreatableSelect as Creatable, Value, Option, menuRenderer as defaultMenuRenderer, arrowRenderer as defaultArrowRenderer, clearRenderer as defaultClearRenderer, filterOptions as defaultFilterOptions };\nexport default Select$1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-select/dist/react-select.es.js\n// module id = 1918\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-input-autosize/lib/AutosizeInput.js\n// module id = 1919\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"FormDropdown_with-ellipsis---sb\",\"withEllipsis\":\"FormDropdown_with-ellipsis---sb\",\"form-input\":\"FormDropdown_form-input---sb\",\"formInput\":\"FormDropdown_form-input---sb\",\"full-length\":\"FormDropdown_full-length---sb\",\"fullLength\":\"FormDropdown_full-length---sb\",\"input-element\":\"FormDropdown_input-element---sb\",\"inputElement\":\"FormDropdown_input-element---sb\",\"invalid\":\"FormDropdown_invalid---sb\",\"mobile-view\":\"FormDropdown_mobile-view---sb\",\"mobileView\":\"FormDropdown_mobile-view---sb\",\"input-label\":\"FormDropdown_input-label---sb\",\"inputLabel\":\"FormDropdown_input-label---sb\",\"textarea\":\"FormDropdown_textarea---sb\",\"open\":\"FormDropdown_open---sb\",\"disabled\":\"FormDropdown_disabled---sb\",\"error-message\":\"FormDropdown_error-message---sb\",\"errorMessage\":\"FormDropdown_error-message---sb\",\"required\":\"FormDropdown_required---sb\",\"wrapper\":\"FormDropdown_wrapper---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/Form/FormDropdown/styles.less\n// module id = 1920\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"RegistrationForm_with-ellipsis---sb\",\"withEllipsis\":\"RegistrationForm_with-ellipsis---sb\",\"rtl\":\"RegistrationForm_rtl---sb\",\"form\":\"RegistrationForm_form---sb\",\"mobile-view\":\"RegistrationForm_mobile-view---sb\",\"mobileView\":\"RegistrationForm_mobile-view---sb\",\"section-wrapper\":\"RegistrationForm_section-wrapper---sb\",\"sectionWrapper\":\"RegistrationForm_section-wrapper---sb\",\"inputs-row\":\"RegistrationForm_inputs-row---sb\",\"inputsRow\":\"RegistrationForm_inputs-row---sb\",\"form-input\":\"RegistrationForm_form-input---sb\",\"formInput\":\"RegistrationForm_form-input---sb\",\"text-area-wrapper\":\"RegistrationForm_text-area-wrapper---sb\",\"textAreaWrapper\":\"RegistrationForm_text-area-wrapper---sb\",\"nationality-selector-wrapper\":\"RegistrationForm_nationality-selector-wrapper---sb\",\"nationalitySelectorWrapper\":\"RegistrationForm_nationality-selector-wrapper---sb\",\"section-header\":\"RegistrationForm_section-header---sb\",\"sectionHeader\":\"RegistrationForm_section-header---sb\",\"submit-form-btn\":\"RegistrationForm_submit-form-btn---sb\",\"submitFormBtn\":\"RegistrationForm_submit-form-btn---sb\",\"terms-and-conditions\":\"RegistrationForm_terms-and-conditions---sb\",\"termsAndConditions\":\"RegistrationForm_terms-and-conditions---sb\",\"terms-and-conditions-link\":\"RegistrationForm_terms-and-conditions-link---sb\",\"termsAndConditionsLink\":\"RegistrationForm_terms-and-conditions-link---sb\",\"check-box-wrapper\":\"RegistrationForm_check-box-wrapper---sb\",\"checkBoxWrapper\":\"RegistrationForm_check-box-wrapper---sb\",\"check-box-error\":\"RegistrationForm_check-box-error---sb\",\"checkBoxError\":\"RegistrationForm_check-box-error---sb\",\"check-box-wrapper-error\":\"RegistrationForm_check-box-wrapper-error---sb\",\"checkBoxWrapperError\":\"RegistrationForm_check-box-wrapper-error---sb\",\"check-box-wrapper-disabled\":\"RegistrationForm_check-box-wrapper-disabled---sb\",\"checkBoxWrapperDisabled\":\"RegistrationForm_check-box-wrapper-disabled---sb\",\"terms-label\":\"RegistrationForm_terms-label---sb\",\"termsLabel\":\"RegistrationForm_terms-label---sb\",\"raw-html\":\"RegistrationForm_raw-html---sb\",\"rawHtml\":\"RegistrationForm_raw-html---sb\",\"form-final\":\"RegistrationForm_form-final---sb\",\"formFinal\":\"RegistrationForm_form-final---sb\",\"registration-data\":\"RegistrationForm_registration-data---sb\",\"registrationData\":\"RegistrationForm_registration-data---sb\",\"registration-data-set\":\"RegistrationForm_registration-data-set---sb\",\"registrationDataSet\":\"RegistrationForm_registration-data-set---sb\",\"registration-data-header\":\"RegistrationForm_registration-data-header---sb\",\"registrationDataHeader\":\"RegistrationForm_registration-data-header---sb\",\"registration-data-value\":\"RegistrationForm_registration-data-value---sb\",\"registrationDataValue\":\"RegistrationForm_registration-data-value---sb\",\"payment-iframe\":\"RegistrationForm_payment-iframe---sb\",\"paymentIframe\":\"RegistrationForm_payment-iframe---sb\",\"payment-data-header\":\"RegistrationForm_payment-data-header---sb\",\"paymentDataHeader\":\"RegistrationForm_payment-data-header---sb\",\"contiune-wrapper\":\"RegistrationForm_contiune-wrapper---sb\",\"contiuneWrapper\":\"RegistrationForm_contiune-wrapper---sb\",\"contiune-button\":\"RegistrationForm_contiune-button---sb\",\"contiuneButton\":\"RegistrationForm_contiune-button---sb\",\"externaltriangle\":\"RegistrationForm_externaltriangle---sb\",\"internal-triangle\":\"RegistrationForm_internal-triangle---sb\",\"internalTriangle\":\"RegistrationForm_internal-triangle---sb\",\"button-wrapper\":\"RegistrationForm_button-wrapper---sb\",\"buttonWrapper\":\"RegistrationForm_button-wrapper---sb\",\"header-wrrapper\":\"RegistrationForm_header-wrrapper---sb\",\"headerWrrapper\":\"RegistrationForm_header-wrrapper---sb\",\"edit-details-btn\":\"RegistrationForm_edit-details-btn---sb\",\"editDetailsBtn\":\"RegistrationForm_edit-details-btn---sb\",\"edit-details-icon\":\"RegistrationForm_edit-details-icon---sb\",\"editDetailsIcon\":\"RegistrationForm_edit-details-icon---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/RegistrationForm/styles.less\n// module id = 1921\n// module chunks = 0","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Grid, Loader, Dimmer, Ref } from \"semantic-ui-react\";\r\nimport { Header, PlaceHolder } from \"../../components/common\";\r\nimport { paypalImgEng, paypalImgHeb } from \"../../constants/constants\";\r\nimport styles from \"./styles.less\";\r\nimport scrollToComponent from \"react-scroll-to-component\";\r\n\r\nclass Payment extends React.Component {\r\n componentDidMount() {\r\n const { getAnalyticsPlaceHolders } = this.props;\r\n window.addEventListener(\"message\", this.recieveWindowMessage);\r\n if (this.wrapperRef) {\r\n scrollToComponent(this.wrapperRef, 10);\r\n }\r\n getAnalyticsPlaceHolders && getAnalyticsPlaceHolders();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { payment } = this.props;\r\n if (payment.URL && !prevProps.payment.URL) {\r\n if (this.wrapperRef) {\r\n scrollToComponent(this.wrapperRef, 10);\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { clearAnalyticsPlaceHolders } = this.props;\r\n clearAnalyticsPlaceHolders && clearAnalyticsPlaceHolders();\r\n window.removeEventListener(\"message\", this.recieveWindowMessage);\r\n }\r\n\r\n recieveWindowMessage = event => {\r\n if (\r\n event.origin !== \"https://gateway20.pelecard.biz\" &&\r\n event.origin !== \"http://localhost:8888\" &&\r\n event.origin !== \"https://bookingresults.com\" &&\r\n event.origin !== \"https://partner.webbnb.com\" &&\r\n event.origin !== \"https://vm-build\"\r\n ) {\r\n return;\r\n }\r\n if (event.data === \"___pleaseReloadSilverbytePaymentIframe\") {\r\n this.reloadPaymentIframe();\r\n }\r\n };\r\n\r\n wrapperRef = React.createRef();\r\n paymentIframeRef = React.createRef();\r\n\r\n setRef = node => (this.wrapperRef = node);\r\n setPaymentIframeRef = node => (this.paymentIframeRef = node);\r\n\r\n renderNoPayment = () => {\r\n const { titles, continueToConfirmation } = this.props;\r\n return (\r\n \r\n \r\n \r\n
\r\n {titles.Continue}\r\n
\r\n
\r\n \r\n \r\n );\r\n };\r\n\r\n goToPayPalProxy = () => {\r\n const { payment } = this.props;\r\n window.open(payment.PaypallUrl, \"_blank\");\r\n };\r\n\r\n reloadPaymentIframe = () => {\r\n const { resetPayment } = this.props;\r\n resetPayment();\r\n };\r\n\r\n renderHeader = () => {\r\n const { titles, isRtl, placeHolders } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n renderPayment = () => {\r\n const {\r\n payment,\r\n titles,\r\n transactionId,\r\n token,\r\n domainUrl,\r\n lang\r\n } = this.props;\r\n const finishedPayment =\r\n (transactionId != null && transactionId.length > 0) ||\r\n (token != null && token.length > 0);\r\n const paypalImgUrlBase = domainUrl.substring(\r\n 0,\r\n domainUrl.indexOf(\"actionUrl\")\r\n );\r\n const paypalImageUrl =\r\n paypalImgUrlBase + (lang == \"heb\" ? paypalImgHeb : paypalImgEng);\r\n return (\r\n \r\n {this.renderHeader()}\r\n \r\n {payment.IsPayPal && (\r\n \r\n \r\n
\r\n )}\r\n {payment.URL &&\r\n !finishedPayment && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n paymentError = () => {\r\n const { titles } = this.props;\r\n return (\r\n \r\n {this.renderHeader()}\r\n \r\n {titles.ErrorOccourred}
\r\n \r\n \r\n );\r\n };\r\n\r\n renderPaymentProcess() {\r\n const {\r\n payment,\r\n titles,\r\n isFetchingPaymentData,\r\n paymentUrlRequestStatus\r\n } = this.props;\r\n const isNoPayment = payment && payment.URL === \"nopayment\";\r\n return (\r\n \r\n {isFetchingPaymentData ? (\r\n \r\n \r\n \r\n {titles.PreparingPaymentPage}...\r\n \r\n \r\n \r\n ) : paymentUrlRequestStatus ? (\r\n isNoPayment ? (\r\n this.renderNoPayment()\r\n ) : (\r\n this.renderPayment()\r\n )\r\n ) : (\r\n this.paymentError()\r\n )}\r\n \r\n );\r\n }\r\n\r\n renderLoader = () => {\r\n const { renderLoader } = this.props;\r\n return {renderLoader(true)};\r\n };\r\n\r\n render() {\r\n return [{this.renderPaymentProcess()}];\r\n }\r\n}\r\n\r\nPayment.propTypes = {\r\n titles: PropTypes.object,\r\n isRtl: PropTypes.bool,\r\n payment: PropTypes.object,\r\n transactionId: PropTypes.string,\r\n token: PropTypes.string,\r\n renderLoader: PropTypes.func,\r\n continueToConfirmation: PropTypes.func,\r\n isFetchingPaymentData: PropTypes.bool,\r\n paymentUrlRequestStatus: PropTypes.bool,\r\n resetPayment: PropTypes.func,\r\n placeHolders: PropTypes.array,\r\n getAnalyticsPlaceHolders: PropTypes.func,\r\n clearAnalyticsPlaceHolders: PropTypes.func,\r\n domainUrl: PropTypes.string,\r\n lang: PropTypes.string\r\n};\r\n\r\nexport default Payment;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/Payment/Payment.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"Payment_with-ellipsis---sb\",\"withEllipsis\":\"Payment_with-ellipsis---sb\",\"loader-wrapper\":\"Payment_loader-wrapper---sb\",\"loaderWrapper\":\"Payment_loader-wrapper---sb\",\"payment-iframe\":\"Payment_payment-iframe---sb\",\"paymentIframe\":\"Payment_payment-iframe---sb\",\"contiune-wrapper\":\"Payment_contiune-wrapper---sb\",\"contiuneWrapper\":\"Payment_contiune-wrapper---sb\",\"contiune-button\":\"Payment_contiune-button---sb\",\"contiuneButton\":\"Payment_contiune-button---sb\",\"error\":\"Payment_error---sb\",\"payment-iframe-reloader\":\"Payment_payment-iframe-reloader---sb\",\"paymentIframeReloader\":\"Payment_payment-iframe-reloader---sb\",\"payment-wrapper\":\"Payment_payment-wrapper---sb\",\"paymentWrapper\":\"Payment_payment-wrapper---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Payment/styles.less\n// module id = 1923\n// module chunks = 0","export { default } from \"./AddonCarouselGroup\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/AddonCarouselGroup/index.js","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport cx from \"classnames\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport Carousel, { consts } from \"react-elastic-carousel\";\r\nimport PriceDisplay from \"../../containers/PriceDisplay\";\r\nimport AddonCarousel from \"../../components/AddonCarousel/AddonCarousel\";\r\nimport FormDropdown from \"../common/Form/FormDropdown\";\r\nimport { Header } from \"../../components/common\";\r\nimport Button from \"../../components/Carousel/Button/Button\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass AddonCarouselGroup extends Component {\r\n OnAddonRoomChange = value => {\r\n const { onAddonRoomChanged } = this.props;\r\n onAddonRoomChanged(value);\r\n };\r\n\r\n onAddonIncrementClick = (addonCode, msg) => {\r\n const { onAddonIncrementClick } = this.props;\r\n onAddonIncrementClick(addonCode, msg);\r\n };\r\n\r\n renderArrows = ({ type, onClick }) => {\r\n const { isRtl, isIE } = this.props;\r\n let pointer;\r\n if (isRtl) {\r\n pointer = type === consts.NEXT ? \"〉\" : \"〈\";\r\n } else {\r\n pointer = type === consts.NEXT ? \"〈\" : \"〉\";\r\n }\r\n return (\r\n \r\n );\r\n };\r\n\r\n renderAddonsRoomsList = () => {\r\n const {\r\n titles,\r\n orderSummary,\r\n isRtl,\r\n addonsCurosselRoomNumber,\r\n isMobileView\r\n } = this.props;\r\n let value = addonsCurosselRoomNumber;\r\n\r\n // map options with room number\r\n const modifiedOrderSummery =\r\n orderSummary &&\r\n orderSummary.map(os => ({\r\n ...os,\r\n label: `${titles.Room} ${os.value + 1}: ${os.label}`\r\n }));\r\n\r\n if (\r\n !value &&\r\n value != 0 &&\r\n modifiedOrderSummery &&\r\n modifiedOrderSummery.length > 0\r\n ) {\r\n value = modifiedOrderSummery[0].value;\r\n }\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n renderCarousel = itemsToShow => {\r\n const {\r\n addonsByPaxIndex,\r\n isRtl,\r\n selectedAddonsGroup,\r\n onShowAddonDetailsClick,\r\n titles,\r\n isMobileView,\r\n showMessage\r\n } = this.props;\r\n\r\n return (\r\n (this.carousel = ref)}\r\n >\r\n {addonsByPaxIndex &&\r\n addonsByPaxIndex.map((addon, i) => (\r\n \r\n {convertedPrice => (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n renderAddonsNoCarousel = () => {\r\n const {\r\n addonsByPaxIndex,\r\n isRtl,\r\n selectedAddonsGroup,\r\n onShowAddonDetailsClick,\r\n titles,\r\n isMobileView,\r\n showMessage\r\n } = this.props;\r\n\r\n return (\r\n (this.carousel = ref)}\r\n >\r\n {addonsByPaxIndex &&\r\n addonsByPaxIndex.map((addon, i) => (\r\n
\r\n {convertedPrice => (\r\n \r\n )}\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n addonsByPaxIndex,\r\n isRtl,\r\n isMobileView,\r\n paxList,\r\n titles\r\n } = this.props;\r\n const itemsToShow = isMobileView ? 1 : 5;\r\n const showCarousel =\r\n addonsByPaxIndex && addonsByPaxIndex.length > itemsToShow;\r\n const showAddonRoomsList = paxList && paxList.length > 1;\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {showAddonRoomsList && (\r\n
\r\n \r\n {this.renderAddonsRoomsList()}\r\n
\r\n \r\n )}\r\n
\r\n {showCarousel\r\n ? this.renderCarousel(itemsToShow)\r\n : this.renderAddonsNoCarousel()}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nAddonCarouselGroup.propTypes = {\r\n addonsByPaxIndex: PropTypes.array,\r\n isRtl: PropTypes.bool,\r\n isIE: PropTypes.bool,\r\n isMobileView: PropTypes.bool,\r\n selectedAddonsGroup: PropTypes.object,\r\n onShowAddonDetailsClick: PropTypes.func,\r\n paxList: PropTypes.array,\r\n titles: PropTypes.object,\r\n orderSummary: PropTypes.array,\r\n onAddonIncrementClick: PropTypes.func,\r\n onAddonRoomChanged: PropTypes.func,\r\n addonsCurosselRoomNumber: PropTypes.number,\r\n showMessage: PropTypes.func\r\n};\r\n\r\nexport default AddonCarouselGroup;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/AddonCarouselGroup/AddonCarouselGroup.js","import React, { Component } from \"react\";\r\nimport cx from \"classnames\";\r\nimport { addonTypes, addonDefaultProps } from \"../../types\";\r\nimport { RawHTML } from \"../common\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass AddonCarousel extends Component {\r\n onIncrement = e => {\r\n const { name, titles, id, onIncrement } = this.props;\r\n const msg = `${titles.Addon} ${name} ${titles.WasAddedToReservation}`;\r\n e.preventDefault();\r\n onIncrement(id, msg);\r\n };\r\n\r\n onShowAddonDetailsClick = e => {\r\n const { id, onShowAddonDetailsClick } = this.props;\r\n e.stopPropagation();\r\n onShowAddonDetailsClick(id);\r\n };\r\n\r\n render() {\r\n const {\r\n name,\r\n description,\r\n imageURL,\r\n price,\r\n isRtl,\r\n titles,\r\n isMobileView\r\n //defaultImageURL\r\n } = this.props;\r\n return (\r\n \r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {titles.ReadMore}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nAddonCarousel.defaultProps = addonDefaultProps;\r\n\r\nAddonCarousel.propTypes = addonTypes;\r\n\r\nexport default AddonCarousel;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/AddonCarousel/AddonCarousel.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"AddonCarousel_with-ellipsis---sb\",\"withEllipsis\":\"AddonCarousel_with-ellipsis---sb\",\"addon\":\"AddonCarousel_addon---sb\",\"title\":\"AddonCarousel_title---sb\",\"image-container\":\"AddonCarousel_image-container---sb\",\"imageContainer\":\"AddonCarousel_image-container---sb\",\"image\":\"AddonCarousel_image---sb\",\"addon-description-wrapper\":\"AddonCarousel_addon-description-wrapper---sb\",\"addonDescriptionWrapper\":\"AddonCarousel_addon-description-wrapper---sb\",\"addon-description-fade\":\"AddonCarousel_addon-description-fade---sb\",\"addonDescriptionFade\":\"AddonCarousel_addon-description-fade---sb\",\"addon-description\":\"AddonCarousel_addon-description---sb\",\"addonDescription\":\"AddonCarousel_addon-description---sb\",\"addon-description-read-more\":\"AddonCarousel_addon-description-read-more---sb\",\"addonDescriptionReadMore\":\"AddonCarousel_addon-description-read-more---sb\",\"addon-description-read-more-text\":\"AddonCarousel_addon-description-read-more-text---sb\",\"addonDescriptionReadMoreText\":\"AddonCarousel_addon-description-read-more-text---sb\",\"content-container\":\"AddonCarousel_content-container---sb\",\"contentContainer\":\"AddonCarousel_content-container---sb\",\"name\":\"AddonCarousel_name---sb\",\"rtl\":\"AddonCarousel_rtl---sb\",\"buttons-wrapper\":\"AddonCarousel_buttons-wrapper---sb\",\"buttonsWrapper\":\"AddonCarousel_buttons-wrapper---sb\",\"btn\":\"AddonCarousel_btn---sb\",\"plus\":\"AddonCarousel_plus---sb\",\"price-wrapper\":\"AddonCarousel_price-wrapper---sb\",\"priceWrapper\":\"AddonCarousel_price-wrapper---sb\",\"mobile-view\":\"AddonCarousel_mobile-view---sb\",\"mobileView\":\"AddonCarousel_mobile-view---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/AddonCarousel/styles.less\n// module id = 1927\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"AddonCarouselGroup_with-ellipsis---sb\",\"withEllipsis\":\"AddonCarouselGroup_with-ellipsis---sb\",\"addons-wrapper\":\"AddonCarouselGroup_addons-wrapper---sb\",\"addonsWrapper\":\"AddonCarouselGroup_addons-wrapper---sb\",\"addons-carousel-header\":\"AddonCarouselGroup_addons-carousel-header---sb\",\"addonsCarouselHeader\":\"AddonCarouselGroup_addons-carousel-header---sb\",\"addons-rooms-list\":\"AddonCarouselGroup_addons-rooms-list---sb\",\"addonsRoomsList\":\"AddonCarouselGroup_addons-rooms-list---sb\",\"addon-room-selector\":\"AddonCarouselGroup_addon-room-selector---sb\",\"addonRoomSelector\":\"AddonCarouselGroup_addon-room-selector---sb\",\"addon-room-selector-label\":\"AddonCarouselGroup_addon-room-selector-label---sb\",\"addonRoomSelectorLabel\":\"AddonCarouselGroup_addon-room-selector-label---sb\",\"carousel\":\"AddonCarouselGroup_carousel---sb\",\"with-arrows\":\"AddonCarouselGroup_with-arrows---sb\",\"withArrows\":\"AddonCarouselGroup_with-arrows---sb\",\"center-mode\":\"AddonCarouselGroup_center-mode---sb\",\"centerMode\":\"AddonCarouselGroup_center-mode---sb\",\"carousel-addons-wrapper\":\"AddonCarouselGroup_carousel-addons-wrapper---sb\",\"carouselAddonsWrapper\":\"AddonCarouselGroup_carousel-addons-wrapper---sb\",\"addons-header\":\"AddonCarouselGroup_addons-header---sb\",\"addonsHeader\":\"AddonCarouselGroup_addons-header---sb\",\"rtl\":\"AddonCarouselGroup_rtl---sb\",\"no-carousel-addons-wrapper\":\"AddonCarouselGroup_no-carousel-addons-wrapper---sb\",\"noCarouselAddonsWrapper\":\"AddonCarouselGroup_no-carousel-addons-wrapper---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/AddonCarouselGroup/styles.less\n// module id = 1928\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"main-wrapper\":\"RegistrationPayment_main-wrapper---sb\",\"mainWrapper\":\"RegistrationPayment_main-wrapper---sb\",\"mobile-view\":\"RegistrationPayment_mobile-view---sb\",\"mobileView\":\"RegistrationPayment_mobile-view---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/containers/RegistrationPayment/styles.less\n// module id = 1929\n// module chunks = 0","export { default as Confirmation } from \"./Confirmation\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/Confirmation/index.js","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Grid, Ref } from \"semantic-ui-react\";\r\nimport { bindActionCreators } from \"redux\";\r\nimport { getPropertyItemTitle } from \"../../helpers/general-helpers\";\r\nimport { CONFIRMATION_ANALYTICS_PHASE } from \"../../constants/general\";\r\nimport { resetStore } from \"../../actions/resetStoreActions\";\r\nimport {\r\n getPlaceHolders,\r\n clearAnalyticsPlaceHolders,\r\n getAnalyticsPlaceHolders\r\n} from \"../../actions/placeHoldersActions\";\r\nimport { isRTL, getSelectedHotelName } from \"../../reducers\";\r\nimport { Header, IcoMoon, PlaceHolder } from \"../../components/common\";\r\nimport ErrorDialog from \"../../components/ErrorDialog\";\r\nimport styles from \"./styles.less\";\r\nimport cx from \"classnames\";\r\n\r\nclass Confirmation extends React.Component {\r\n state = {\r\n placeHoldersReceivedFromServer: false\r\n };\r\n\r\n componentDidMount = () => {\r\n setTimeout(this.props.onLoad, 0);\r\n // this.setState({\r\n // reservationId: this.props.reservationId,\r\n // registrationData: this.props.registrationData\r\n // });\r\n //const { actions } = this.props;\r\n //actions.resetStore();\r\n };\r\n\r\n componentDidUpdate = prevProps => {\r\n if (\r\n this.props.isFetchingConfirmationData !=\r\n prevProps.isFetchingConfirmationData &&\r\n prevProps.isFetchingConfirmationData\r\n ) {\r\n this.getConfirmationPlaceHolders();\r\n this.getAnalyticsPlaceHolders();\r\n }\r\n };\r\n\r\n componentWillUnmount() {\r\n const { actions } = this.props;\r\n actions.clearAnalyticsPlaceHolders();\r\n }\r\n\r\n /**\r\n * Get analytics code from server and append it to #page-analytics-wrapper element ( append action include the execution ).\r\n * Generate the code with the data stored until this phase\r\n */\r\n getAnalyticsPlaceHolders = () => {\r\n const {\r\n selectedHotelId,\r\n hotelName,\r\n checkinDate,\r\n checkoutDate,\r\n promoCode,\r\n orderSummary,\r\n orderCurrency,\r\n actions,\r\n reservationId,\r\n registrationData\r\n } = this.props;\r\n const rooms = orderSummary.map(r => ({\r\n RoomId: r.id,\r\n Price: r.price\r\n }));\r\n const postObject = {\r\n Phase: CONFIRMATION_ANALYTICS_PHASE,\r\n MasterId: reservationId,\r\n HotelId: selectedHotelId,\r\n Currency: orderCurrency && orderCurrency.currencyCode,\r\n HotelName: hotelName,\r\n CheckInDate: checkinDate,\r\n CheckoutDate: checkoutDate,\r\n RegistrationEmail: registrationData.Email,\r\n PromoCode: promoCode,\r\n Rooms: rooms\r\n };\r\n actions.getAnalyticsPlaceHolders(postObject);\r\n };\r\n\r\n getConfirmationPlaceHolders = () => {\r\n const {\r\n actions,\r\n orderSummary,\r\n reservationId,\r\n registrationData,\r\n orderCurrency\r\n } = this.props;\r\n const data =\r\n orderSummary &&\r\n orderSummary.map(elem => {\r\n return {\r\n RoomId: elem.id,\r\n RoomPrice: elem.price\r\n };\r\n });\r\n actions.getPlaceHolders({\r\n component: \"ConfirmationPage\",\r\n location: \"Top\",\r\n data,\r\n reservationId,\r\n userEmail: registrationData.Email,\r\n currency: orderCurrency.currencyCode\r\n });\r\n this.setState({ placeHoldersReceivedFromServer: true });\r\n };\r\n\r\n renderHeader = (title, isSubtitle) => {\r\n const { isRtl, isMobileView } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n handleConfirmationRef = node => {\r\n const { handleConfirmationRef } = this.props;\r\n if (handleConfirmationRef) {\r\n handleConfirmationRef(node);\r\n }\r\n };\r\n\r\n renderError = () => {\r\n const { titles, isRtl, isMobileView } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n showResults = () => {\r\n const { reservationId } = this.props;\r\n return reservationId ? this.renderConfirmation() : this.renderError();\r\n };\r\n\r\n renderRoomDetails = () => {\r\n const { titles, propertyType, orderSummary } = this.props;\r\n const numberOfRooms = orderSummary && orderSummary.length;\r\n const propertyItemTitle = getPropertyItemTitle(titles, propertyType);\r\n if (numberOfRooms > 1) {\r\n return orderSummary.map((elem, index) => {\r\n const roomNumber = ++index;\r\n return (\r\n \r\n \r\n {propertyItemTitle + \" \" + roomNumber}:\r\n \r\n {` ${elem && elem.name}`}\r\n
\r\n );\r\n });\r\n } else if (orderSummary) {\r\n return (\r\n \r\n \r\n {getPropertyItemTitle(titles, propertyType)}:\r\n \r\n {` ${orderSummary[0] && orderSummary[0].name}`}\r\n
\r\n );\r\n }\r\n };\r\n\r\n renderConfirmation = () => {\r\n const {\r\n reservationId,\r\n registrationData,\r\n titles,\r\n checkinDate,\r\n checkoutDate,\r\n customText,\r\n CancellationPolicy,\r\n isMobileView,\r\n placeHolders\r\n } = this.props;\r\n\r\n return (\r\n \r\n {\r\n \r\n {\" \"}\r\n {this.renderHeader(titles.ReservationComplete)}\r\n
\r\n }\r\n {this.renderHeader(titles.ReservationCompleteSubtitle, true)}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {titles.ReservationNumber}:\r\n \r\n {` ${reservationId}`}\r\n
\r\n {/*
\r\n \r\n {getPropertyTitle(titles, propertyType)}:\r\n \r\n {` ${hotelName}`}\r\n
*/}\r\n {this.renderRoomDetails()}\r\n
\r\n {titles.CheckInDate}:\r\n {` ${checkinDate}`}\r\n
\r\n
\r\n {titles.CheckOutDate}:\r\n {` ${checkoutDate}`}\r\n
\r\n
\r\n\r\n {titles.ConfirmationLoginInstruction &&\r\n registrationData.Email && (\r\n \r\n {`* ${titles.ConfirmationLoginInstruction} (${\r\n registrationData.Email\r\n }).`}\r\n
\r\n )}\r\n\r\n {CancellationPolicy && (\r\n \r\n
\r\n
\r\n {titles.CancellationPolicy}:\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {customText && (\r\n \r\n {customText}\r\n
\r\n )}\r\n\r\n \r\n
{`${titles.ThankYou} , `}
\r\n
{titles.WeLookForward}
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n renderLoader = () => {\r\n const { renderLoader, titles } = this.props;\r\n return {renderLoader(true, titles.ProccessingOrder)};\r\n };\r\n\r\n render() {\r\n const { isFetchingConfirmationData } = this.props;\r\n return (\r\n [\r\n {isFetchingConfirmationData ? this.renderLoader() : this.showResults()}\r\n ]\r\n );\r\n }\r\n}\r\n\r\nConfirmation.defaultProps = {\r\n customText: \"\"\r\n};\r\n\r\nConfirmation.propTypes = {\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n // lang: PropTypes.string,\r\n isRtl: PropTypes.bool,\r\n customText: PropTypes.string,\r\n checkinDate: PropTypes.string,\r\n checkoutDate: PropTypes.string,\r\n reservationId: PropTypes.number,\r\n registrationData: PropTypes.object,\r\n isFetchingConfirmationData: PropTypes.bool,\r\n renderLoader: PropTypes.func,\r\n onLoad: PropTypes.func,\r\n handleConfirmationRef: PropTypes.func,\r\n CancellationPolicy: PropTypes.string,\r\n hotelName: PropTypes.string,\r\n propertyType: PropTypes.string,\r\n placeHolders: PropTypes.array,\r\n orderSummary: PropTypes.object,\r\n actions: PropTypes.object,\r\n selectedHotelId: PropTypes.string,\r\n promoCode: PropTypes.string\r\n};\r\n\r\nconst mapStateToProps = store => {\r\n const hotelName = getSelectedHotelName(store);\r\n const state = {\r\n // lang: store.lang,\r\n isMobileView: store.isMobileView,\r\n isRtl: isRTL(store),\r\n hotelName: hotelName,\r\n checkinDate: store.checkinDate,\r\n checkoutDate: store.checkoutDate,\r\n titles: store.titles,\r\n reservationId: store.reservationId,\r\n registrationData: store.registrationData,\r\n isFetchingConfirmationData: store.isFetchingConfirmationData,\r\n propertyType: store.propertyType,\r\n placeHolders: store.placeHolders,\r\n orderSummary: store.orderSummary,\r\n orderCurrency: store.orderCurrency,\r\n selectedHotelId: store.selectedHotelId,\r\n promoCode: store.promoCode\r\n };\r\n return state;\r\n};\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n const combinedActions = {\r\n resetStore,\r\n getPlaceHolders,\r\n clearAnalyticsPlaceHolders,\r\n getAnalyticsPlaceHolders\r\n };\r\n return {\r\n actions: bindActionCreators(combinedActions, dispatch)\r\n };\r\n}\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(Confirmation);\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/Confirmation/Confirmation.js","export { default } from \"./ErrorDialog\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ErrorDialog/index.js","import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { Grid } from \"semantic-ui-react\";\r\nimport { Header } from \"../common\";\r\nimport styles from \"./styles.less\";\r\n\r\nclass ErrorDialog extends Component {\r\n render() {\r\n const { titles, isRtl, isMobileView } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{titles.ErrorOccourred}
\r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nErrorDialog.propTypes = {\r\n titles: PropTypes.object,\r\n isMobileView: PropTypes.bool,\r\n isRtl: PropTypes.bool\r\n};\r\n\r\nexport default ErrorDialog;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/ErrorDialog/ErrorDialog.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"wrapper\":\"ErrorDialog_wrapper---sb\",\"section\":\"ErrorDialog_section---sb\",\"data-field\":\"ErrorDialog_data-field---sb\",\"dataField\":\"ErrorDialog_data-field---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ErrorDialog/styles.less\n// module id = 1934\n// module chunks = 0","// removed by extract-text-webpack-plugin\nmodule.exports = {\"confirmation-wrapper\":\"Confirmation_confirmation-wrapper---sb\",\"confirmationWrapper\":\"Confirmation_confirmation-wrapper---sb\",\"header-wrapper\":\"Confirmation_header-wrapper---sb\",\"headerWrapper\":\"Confirmation_header-wrapper---sb\",\"confirmation-header\":\"Confirmation_confirmation-header---sb\",\"confirmationHeader\":\"Confirmation_confirmation-header---sb\",\"section\":\"Confirmation_section---sb\",\"hello\":\"Confirmation_hello---sb\",\"data-field\":\"Confirmation_data-field---sb\",\"dataField\":\"Confirmation_data-field---sb\",\"title\":\"Confirmation_title---sb\",\"thankyou\":\"Confirmation_thankyou---sb\",\"font-weigher\":\"Confirmation_font-weigher---sb\",\"fontWeigher\":\"Confirmation_font-weigher---sb\",\"mobile-view\":\"Confirmation_mobile-view---sb\",\"mobileView\":\"Confirmation_mobile-view---sb\",\"Header_wrapper---sb\":\"Confirmation_Header_wrapper---sb---sb\",\"Header_wrapper--Sb\":\"Confirmation_Header_wrapper---sb---sb\",\"Header_mobile-view---sb\":\"Confirmation_Header_mobile-view---sb---sb\",\"Header_mobileView--Sb\":\"Confirmation_Header_mobile-view---sb---sb\",\"Header_subtitle-text---sb\":\"Confirmation_Header_subtitle-text---sb---sb\",\"Header_subtitleText--Sb\":\"Confirmation_Header_subtitle-text---sb---sb\",\"Header_header-text---sb\":\"Confirmation_Header_header-text---sb---sb\",\"Header_headerText--Sb\":\"Confirmation_Header_header-text---sb---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/containers/Confirmation/styles.less\n// module id = 1935\n// module chunks = 0","export { default } from \"./BreadCrumbsDots\";\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/BreadCrumbsDots/index.js","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport styles from \"./styles.less\";\r\nimport cx from \"classnames\";\r\nimport { BREAD_CRUMBS_STEPS } from \"../../constants/constants\";\r\n\r\nconst BreadCrumbsDots = props => {\r\n const { activeBreadCrumb, isRtl, titles } = props;\r\n const breadCrumbKeys = Object.keys(BREAD_CRUMBS_STEPS);\r\n return (\r\n \r\n
\r\n {breadCrumbKeys &&\r\n breadCrumbKeys.map((elem, index) => {\r\n return (\r\n
\r\n
{index + 1}
\r\n
\r\n {titles[BREAD_CRUMBS_STEPS[elem]]}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nBreadCrumbsDots.propTypes = {\r\n activeBreadCrumb: PropTypes.string,\r\n isRtl: PropTypes.bool,\r\n titles: PropTypes.object\r\n};\r\nexport default BreadCrumbsDots;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/BreadCrumbsDots/BreadCrumbsDots.js","// removed by extract-text-webpack-plugin\nmodule.exports = {\"with-ellipsis\":\"BreadCrumbsDots_with-ellipsis---sb\",\"withEllipsis\":\"BreadCrumbsDots_with-ellipsis---sb\",\"bread-crambs-wrapper\":\"BreadCrumbsDots_bread-crambs-wrapper---sb\",\"breadCrambsWrapper\":\"BreadCrumbsDots_bread-crambs-wrapper---sb\",\"bread-cramb-step\":\"BreadCrumbsDots_bread-cramb-step---sb\",\"breadCrambStep\":\"BreadCrumbsDots_bread-cramb-step---sb\",\"bc-text\":\"BreadCrumbsDots_bc-text---sb\",\"bcText\":\"BreadCrumbsDots_bc-text---sb\",\"bread-cramb-dot\":\"BreadCrumbsDots_bread-cramb-dot---sb\",\"breadCrambDot\":\"BreadCrumbsDots_bread-cramb-dot---sb\",\"active\":\"BreadCrumbsDots_active---sb\",\"rtl\":\"BreadCrumbsDots_rtl---sb\"};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/BreadCrumbsDots/styles.less\n// module id = 1938\n// module chunks = 0","import { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport scrollToComponent from \"react-scroll-to-component\";\r\nimport {\r\n isElementVisibleOnDOM,\r\n isElementInViewPort\r\n} from \"../helpers/domHelpers\";\r\n\r\nclass ScrollManager extends Component {\r\n // componentDidUpdate(prevProps) {\r\n // /* when selected pax has changed, we want to react to this change.\r\n // * onSelectedPaxChange is usually scrolling to \"First Important View\"\r\n // */\r\n // const { selectedPaxId } = this.props;\r\n // const { selectedPaxId: prevSelectedPaxIndex } = prevProps;\r\n // if (selectedPaxId !== prevSelectedPaxIndex) {\r\n // // make sure we don't run this on EACH update!\r\n // this.onSelectedPaxChange();\r\n // }\r\n // }\r\n\r\n onChildMount = () => {\r\n /* this should be called when the children mount or updated\r\n * meaning they should call it on componentDidMount / componentDidUpdate etc..\r\n */\r\n\r\n this.scrollToFirstImportantView();\r\n };\r\n\r\n _scrollToComponent = (ref, config) => {\r\n scrollToComponent(ref, config);\r\n };\r\n\r\n isElementTopIntoView = el => {\r\n let rect = el.getBoundingClientRect();\r\n let elemTop = rect.top;\r\n let isVisible = false;\r\n if (elemTop > 0) isVisible = true;\r\n return isVisible;\r\n };\r\n\r\n scrollToFirstImportantView = () => {\r\n const { isMobileView } = this.props;\r\n\r\n let isCartIncludedInView = true;\r\n const setCardIncludedFlag = flag => (isCartIncludedInView = flag);\r\n const getElementIfVisible = (elem, isCardIncluded = true) => {\r\n if (isElementVisibleOnDOM(elem)) {\r\n setCardIncludedFlag(isCardIncluded);\r\n return elem;\r\n }\r\n return false;\r\n };\r\n // TODO: maybe we need to do this per view? i.e: search-results / region results / registration...\r\n // determain which DOMNode to scroll to (passed from the child)\r\n let refToScroll =\r\n getElementIfVisible(this.confirmationRef, false) ||\r\n getElementIfVisible(this.registrationPaymentRef) ||\r\n getElementIfVisible(this.regionResultsRef) ||\r\n getElementIfVisible(this.searchResultsRef) ||\r\n getElementIfVisible(this.dealRatesGroupRef) ||\r\n getElementIfVisible(this.dealsResultsRef) ||\r\n getElementIfVisible(this.carouselRef) ||\r\n getElementIfVisible(this.roomboxRef) ||\r\n getElementIfVisible(this.selectedDealRef);\r\n\r\n if (refToScroll) {\r\n // const shouldScrollTop = !this.isElementTopIntoView(refToScroll);\r\n // if (!shouldScrollTop) return;\r\n\r\n let spacingFromTop = -260; // buffer (some spacing from top of searchbox)\r\n if (isMobileView) {\r\n spacingFromTop = isCartIncludedInView ? -200 : -100;\r\n }\r\n // scroll to the relevant DOMNode\r\n this._scrollToComponent(refToScroll, {\r\n align: \"top\",\r\n offset: spacingFromTop\r\n });\r\n }\r\n };\r\n\r\n scrollToRates = () => {\r\n this._scrollToComponent(this.ratesGroupRef, { align: \"top\", offset: -10 });\r\n };\r\n\r\n scrollToDealRates = () => {\r\n this._scrollToComponent(this.dealRatesGroupRef, {\r\n align: \"top\",\r\n offset: -150\r\n });\r\n };\r\n\r\n scrollToContactUsForm = () => {\r\n this._scrollToComponent(this.contactUsFormRef, {\r\n align: \"top\",\r\n offset: -10\r\n });\r\n };\r\n\r\n scrollToRegistrationForm = () => {\r\n this._scrollToComponent(this.registrationFormRef, {\r\n align: \"top\",\r\n offset: -85\r\n });\r\n };\r\n\r\n onRateSelection = () => {\r\n if (this.staticCartRef) {\r\n //***we no longer need this as the cart is bottom fixed on mobile***///\r\n // static cart (for mobile display)\r\n this._scrollToComponent(this.staticCartRef, {\r\n align: \"top\",\r\n offset: -30\r\n });\r\n } else if (this.fixedDisplayBarRef && !this.isFixedBarFullyVisible()) {\r\n // fixed / absolute cart (for desktop display)\r\n this._scrollToComponent(this.fixedDisplayBarRef, {\r\n align: \"top\",\r\n offset: -30\r\n });\r\n }\r\n };\r\n\r\n onSelectedPaxChange = () => {\r\n this.scrollToFirstImportantView();\r\n };\r\n\r\n isFixedBarFullyVisible = () => {\r\n return (\r\n this.fixedDisplayBarRef &&\r\n isElementInViewPort(this.fixedDisplayBarRef, 50)\r\n );\r\n };\r\n\r\n attachRef = refName => node => {\r\n /* dynamically attach ref to the instance,\r\n * this is a callback that the children will use.\r\n * for example, in SearchResults container: ...
\r\n */\r\n this[refName] = node;\r\n };\r\n\r\n /** creating ref callbacks and scroll callbacks for the search results container */\r\n createSearchResultsRefAndHandlers = () => ({\r\n handleCarouselRef: this.attachRef(\"carouselRef\"),\r\n handleRoomboxRef: this.attachRef(\"roomboxRef\"),\r\n handleRatesGroupRef: this.attachRef(\"ratesGroupRef\"),\r\n handleContactUsFormRef: this.attachRef(\"contactUsFormRef\"),\r\n handleRoomBoxHeaderRef: this.attachRef(\"roomBoxHeaderRef\"),\r\n handleSearchresultsRef: this.attachRef(\"searchResultsRef\"),\r\n handleRegistrationPaymentRef: this.attachRef(\"registrationPaymentRef\"),\r\n onDataLoaded: this.onChildMount,\r\n onShowRatesClick: this.scrollToRates,\r\n onShowContactUsForm: this.scrollToContactUsForm,\r\n onRateSelection: this.onRateSelection\r\n });\r\n\r\n /** creating ref callbacks and scroll callbacks for the registrations container */\r\n createRegionResultsRefAndHandlers = () => ({\r\n handleRegionResultsRef: this.attachRef(\"regionResultsRef\")\r\n });\r\n\r\n /** creating ref callbacks and scroll callbacks for the registrations container */\r\n createRegistrationPaymentRefAndHandlers = () => ({\r\n handleRegistrationPaymentRef: this.attachRef(\"registrationPaymentRef\"),\r\n handleRegistrationFormRef: this.attachRef(\"registrationFormRef\"),\r\n scrollToRegistrationForm: this.scrollToRegistrationForm\r\n });\r\n\r\n /** creating ref callbacks and scroll callbacks for the confirmation container */\r\n createConfirmationRefAndHandlers = () => ({\r\n handleConfirmationRef: this.attachRef(\"confirmationRef\")\r\n });\r\n\r\n createGeneralHandlers = () => ({\r\n onLoad: this.scrollToFirstImportantView\r\n });\r\n\r\n /** Dina 13/01/19 creating ref callbacks and scroll callbacks for the deal results container */\r\n createDealResultsRefAndHandlers = () => ({\r\n handleDealRatesGroupRef: this.attachRef(\"dealRatesGroupRef\"),\r\n handleDealsResultsRef: this.attachRef(\"dealsResultsRef\"),\r\n onDealRatesClick: this.scrollToDealRates\r\n });\r\n\r\n render() {\r\n const { children } = this.props;\r\n\r\n const handlers = {\r\n generalHandlers: this.createGeneralHandlers(),\r\n searchResultsRefAndHandlers: this.createSearchResultsRefAndHandlers(),\r\n regionResultsRefAndHandlers: this.createRegionResultsRefAndHandlers(),\r\n createRegistrationPaymentRefAndHandlers: this.createRegistrationPaymentRefAndHandlers(),\r\n createConfirmationRefAndHandlers: this.createConfirmationRefAndHandlers(),\r\n dealResultsRefAndHandlers: this.createDealResultsRefAndHandlers()\r\n };\r\n\r\n return children(handlers);\r\n }\r\n}\r\n\r\nScrollManager.propTypes = {\r\n isMobileView: PropTypes.bool,\r\n children: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = store => ({\r\n isMobileView: store.isMobileView\r\n});\r\n\r\nexport default withRouter(connect(mapStateToProps)(ScrollManager));\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/containers/ScrollManager.js","import * as types from \"../constants/actionTypes\";\n\nexport const changeLang = lang => {\n return {\n type: types.CHANGE_LANG,\n payload: lang\n };\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/langActions.js","/* eslint-disable no-constant-condition */\r\nimport * as types from \"../constants/actionTypes\";\r\nimport { getConfig } from \"../api/config\";\r\nimport { generateAsyncAction } from \"./generateAsyncAction\";\r\n\r\nexport const getServerConfig = lang => async (dispatch, getState) => {\r\n const configAction = await generateAsyncAction({\r\n onSuccessAction: configSuccess,\r\n onFailAction: configFail,\r\n asyncApiMethod: getConfig,\r\n request: lang\r\n });\r\n const { isMobileView, showCartSubmitBtn } = getState();\r\n let action = configAction;\r\n if (isMobileView || !showCartSubmitBtn) {\r\n // force \"enableSinglePaxCartSkipping\" on mobile or when showCartSubmitBtn is ture as we don't have a continue button\r\n action = {\r\n ...configAction,\r\n payload: {\r\n ...configAction.payload,\r\n enableSinglePaxCartSkipping: true\r\n }\r\n };\r\n }\r\n return dispatch(action);\r\n};\r\n\r\nexport const configSuccess = ({ payload }) => {\r\n return {\r\n type: types.CONFIG_SUCCESS,\r\n payload\r\n };\r\n};\r\n\r\nexport const configFail = ({ message, title }) => ({\r\n type: types.CONFIG_FAIL,\r\n meta: {\r\n globalModal: {\r\n message,\r\n title\r\n }\r\n }\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/configActions.js","import BaseApi from \"./BaseApi\";\r\n\r\nexport const getConfig = async lang => {\r\n return await BaseApi.get(`/cdn/GetBeConfig?lang=${lang}`);\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/config.js","import { UPDATE_PROMO_CODE } from \"../constants/actionTypes\";\r\n\r\nexport const updatePromoCode = code => ({\r\n type: UPDATE_PROMO_CODE,\r\n payload: code\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/promoCodeActions.js","import * as types from \"../constants/actionTypes\";\r\n\r\nexport const setCheckinDate = date => {\r\n return {\r\n type: types.CHECKIN_DATE,\r\n payload: date\r\n };\r\n};\r\n\r\nexport const setCheckoutDate = date => {\r\n return {\r\n type: types.CHECKOUT_DATE,\r\n payload: date\r\n };\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/datesActions.js","import { SEARCH_DATA_TIMESTAMP } from \"../constants/actionTypes\";\r\nimport { storagedSearchDataManager } from \"../helpers/domHelpers\";\r\nimport { SEARCH_DATA_STORE_PARAMETERS_MAPPING } from \"../constants/general\";\r\n\r\nexport const updateSearchDataInSessionStorage = () => (dispatch, getState) => {\r\n const searchData = {};\r\n const store = getState();\r\n\r\n Object.entries(SEARCH_DATA_STORE_PARAMETERS_MAPPING).forEach(\r\n ([storeKey, searchDataKey]) => {\r\n searchData[searchDataKey] = store[storeKey];\r\n }\r\n );\r\n\r\n storagedSearchDataManager().addNewSearchData(searchData);\r\n\r\n dispatch(setSearchDataTimestamp(new Date().getTime()));\r\n};\r\n\r\nexport const setSearchDataTimestamp = timestamp => {\r\n return {\r\n type: SEARCH_DATA_TIMESTAMP,\r\n payload: timestamp\r\n };\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/searchDataActions.js","import * as types from \"../constants/actionTypes\";\r\n\r\nexport const finishPayment = () => dispatch => {\r\n dispatch({\r\n type: types.GET_PAYMENT_FINISHED\r\n });\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/paymentFinishedActions.js","import * as types from \"../constants/actionTypes\";\r\n\r\nexport const setSelectedOption = selectedOption => {\r\n return {\r\n type: types.UPDATE_SELECTED_OPTION,\r\n payload: selectedOption\r\n };\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/selectedOptionActions.js","import * as types from \"../constants/actionTypes\";\r\n\r\nexport const setSelectedRoomCategory = roomCategory => ({\r\n type: types.UPDATE_SELECTED_ROOM_CATEGORY,\r\n payload: roomCategory\r\n});\r\n\r\nexport const resetSelectedRoomCategory = () => ({\r\n type: types.RESET_SELECTED_ROOM_CATEGORY\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/selectedRoomCategoryActions.js","import { IS_IE } from \"../constants/actionTypes\";\r\n\r\nexport const setIE = isIE => ({\r\n type: IS_IE,\r\n payload: isIE\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/browserActions.js","import { IS_IOS } from \"../constants/actionTypes\";\r\n\r\nexport const setIOS = isIOS => ({\r\n type: IS_IOS,\r\n payload: isIOS\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/operationSystemActions.js","import * as types from \"../constants/actionTypes\";\r\nimport { getCountries } from \"../api/countries\";\r\nimport { generateAsyncAction } from \"./generateAsyncAction\";\r\n\r\nexport const setCountry = country => dispatch => {\r\n dispatch({\r\n type: types.SET_COUNTRY,\r\n payload: country\r\n });\r\n};\r\n\r\nexport const getCountriesList = () => async dispatch => {\r\n dispatch({ type: types.GET_COUNTRIES_REQUEST });\r\n const getCountriesAction = await generateAsyncAction({\r\n onFailAction: countriesFailed,\r\n onSuccessAction: countriesSuccess,\r\n asyncApiMethod: getCountries\r\n });\r\n return dispatch(getCountriesAction);\r\n};\r\n\r\nexport const countriesSuccess = ({ payload }) => dispatch => {\r\n dispatch({\r\n type: types.GET_COUNTRIES_SUCCESS,\r\n payload: payload\r\n });\r\n};\r\n\r\nconst countriesFailed = ({ message, title }) => ({\r\n type: types.GET_COUNTRIES_FAILED,\r\n meta: {\r\n globalModal: {\r\n message,\r\n title\r\n }\r\n }\r\n});\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/actions/countriesActions.js","import BaseApi from \"./BaseApi\";\r\n\r\nexport const getCountries = async () => {\r\n return await BaseApi.get(`/reservationProcess/GetCountriesList`);\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/countries.js","import { createStore, compose, applyMiddleware } from \"redux\";\r\nimport reduxImmutableStateInvariant from \"redux-immutable-state-invariant\";\r\nimport thunk from \"redux-thunk\";\r\nimport createHistory from \"history/createBrowserHistory\";\r\n// 'routerMiddleware': the new way of storing route changes with redux middleware since rrV4.\r\nimport { routerMiddleware } from \"react-router-redux\";\r\nimport rootReducer from \"../reducers\";\r\nimport { globalModalMiddleware } from \"../middlewares/globalModalMiddleware\";\r\nimport { routeChangeMiddleware } from \"../middlewares/routeChangeMiddleware\";\r\nimport { resultGettingMiddleware } from \"../middlewares/resultGettingMiddleware\";\r\nimport { appName } from \"../constants/constants\";\r\nimport { getBaseUrl } from \"../helpers/url-helpers\";\r\n\r\nexport const history = createHistory({\r\n basename: getBaseUrl(appName, true)\r\n});\r\n\r\n// function getBaseNameStr() {\r\n// let path = window.location.pathname;\r\n// let appNameIndex = path.indexOf(appName);\r\n// if (appName && appNameIndex > -1) {\r\n// appNameIndex -= 1;\r\n// path = path.substring(0, appNameIndex);\r\n// }\r\n// path = `${path}${appName && '/' + appName + '/'}`;\r\n// return path;\r\n// }\r\n\r\nfunction configureStoreProd(initialState) {\r\n const reactRouterMiddleware = routerMiddleware(history);\r\n const middlewares = [\r\n // Add other middleware on this line...\r\n\r\n // thunk middleware can also accept an extra argument to be passed to each thunk action\r\n // https://github.com/gaearon/redux-thunk#injecting-a-custom-argument\r\n thunk,\r\n reactRouterMiddleware,\r\n routeChangeMiddleware,\r\n globalModalMiddleware,\r\n resultGettingMiddleware\r\n ];\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middlewares))\r\n );\r\n}\r\n\r\nfunction configureStoreDev(initialState) {\r\n const reactRouterMiddleware = routerMiddleware(history);\r\n const middlewares = [\r\n // Add other middleware on this line...\r\n\r\n // Redux middleware that spits an error on you when you try to mutate your state either inside a dispatch or between dispatches.\r\n reduxImmutableStateInvariant(),\r\n\r\n // thunk middleware can also accept an extra argument to be passed to each thunk action\r\n // https://github.com/gaearon/redux-thunk#injecting-a-custom-argument\r\n thunk,\r\n reactRouterMiddleware,\r\n routeChangeMiddleware,\r\n globalModalMiddleware,\r\n resultGettingMiddleware\r\n ];\r\n\r\n const composeEnhancers =\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; // add support for Redux dev tools\r\n const store = createStore(\r\n rootReducer,\r\n initialState,\r\n composeEnhancers(applyMiddleware(...middlewares))\r\n );\r\n\r\n if (module.hot) {\r\n // Enable Webpack hot module replacement for reducers\r\n module.hot.accept(\"../reducers\", () => {\r\n const nextReducer = require(\"../reducers\").default; // eslint-disable-line global-require\r\n store.replaceReducer(nextReducer);\r\n });\r\n }\r\n\r\n return store;\r\n}\r\n\r\nconst configureStore =\r\n process.env.NODE_ENV === \"production\"\r\n ? configureStoreProd\r\n : configureStoreDev;\r\n\r\nexport default configureStore;\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/configureStore.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = immutableStateInvariantMiddleware;\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _jsonStringifySafe = require('json-stringify-safe');\n\nvar _jsonStringifySafe2 = _interopRequireDefault(_jsonStringifySafe);\n\nvar _isImmutable = require('./isImmutable');\n\nvar _isImmutable2 = _interopRequireDefault(_isImmutable);\n\nvar _trackForMutations = require('./trackForMutations');\n\nvar _trackForMutations2 = _interopRequireDefault(_trackForMutations);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BETWEEN_DISPATCHES_MESSAGE = ['A state mutation was detected between dispatches, in the path `%s`.', 'This may cause incorrect behavior.', '(http://redux.js.org/docs/Troubleshooting.html#never-mutate-reducer-arguments)'].join(' ');\n\nvar INSIDE_DISPATCH_MESSAGE = ['A state mutation was detected inside a dispatch, in the path: `%s`.', 'Take a look at the reducer(s) handling the action %s.', '(http://redux.js.org/docs/Troubleshooting.html#never-mutate-reducer-arguments)'].join(' ');\n\nfunction immutableStateInvariantMiddleware() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$isImmutable = options.isImmutable,\n isImmutable = _options$isImmutable === undefined ? _isImmutable2.default : _options$isImmutable,\n ignore = options.ignore;\n\n var track = _trackForMutations2.default.bind(null, isImmutable, ignore);\n\n return function (_ref) {\n var getState = _ref.getState;\n\n var state = getState();\n var tracker = track(state);\n\n var result = void 0;\n return function (next) {\n return function (action) {\n state = getState();\n\n result = tracker.detectMutations();\n // Track before potentially not meeting the invariant\n tracker = track(state);\n\n (0, _invariant2.default)(!result.wasMutated, BETWEEN_DISPATCHES_MESSAGE, (result.path || []).join('.'));\n\n var dispatchedAction = next(action);\n state = getState();\n\n result = tracker.detectMutations();\n // Track before potentially not meeting the invariant\n tracker = track(state);\n\n (0, _invariant2.default)(!result.wasMutated, INSIDE_DISPATCH_MESSAGE, (result.path || []).join('.'), (0, _jsonStringifySafe2.default)(action));\n\n return dispatchedAction;\n };\n };\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-immutable-state-invariant/dist/index.js\n// module id = 1954\n// module chunks = 0","exports = module.exports = stringify\nexports.getSerialize = serializer\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [], keys = []\n\n if (cycleReplacer == null) cycleReplacer = function(key, value) {\n if (stack[0] === value) return \"[Circular ~]\"\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\"\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/json-stringify-safe/stringify.js\n// module id = 1955\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = isImmutableDefault;\nfunction isImmutableDefault(value) {\n return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null || typeof value === 'undefined';\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-immutable-state-invariant/dist/isImmutable.js\n// module id = 1956\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trackForMutations;\nfunction trackForMutations(isImmutable, ignore, obj) {\n var trackedProperties = trackProperties(isImmutable, ignore, obj);\n return {\n detectMutations: function detectMutations() {\n return _detectMutations(isImmutable, ignore, trackedProperties, obj);\n }\n };\n}\n\nfunction trackProperties(isImmutable) {\n var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var obj = arguments[2];\n var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n var tracked = { value: obj };\n\n if (!isImmutable(obj)) {\n tracked.children = {};\n\n for (var key in obj) {\n var childPath = path.concat(key);\n if (ignore.length && ignore.indexOf(childPath.join('.')) !== -1) {\n continue;\n }\n\n tracked.children[key] = trackProperties(isImmutable, ignore, obj[key], childPath);\n }\n }\n return tracked;\n}\n\nfunction _detectMutations(isImmutable) {\n var ignore = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var trackedProperty = arguments[2];\n var obj = arguments[3];\n var sameParentRef = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var path = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n\n var prevObj = trackedProperty ? trackedProperty.value : undefined;\n\n var sameRef = prevObj === obj;\n\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\n return { wasMutated: true, path: path };\n }\n\n if (isImmutable(prevObj) || isImmutable(obj)) {\n return { wasMutated: false };\n }\n\n // Gather all keys from prev (tracked) and after objs\n var keysToDetect = {};\n Object.keys(trackedProperty.children).forEach(function (key) {\n keysToDetect[key] = true;\n });\n Object.keys(obj).forEach(function (key) {\n keysToDetect[key] = true;\n });\n\n var keys = Object.keys(keysToDetect);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var childPath = path.concat(key);\n if (ignore.length && ignore.indexOf(childPath.join('.')) !== -1) {\n continue;\n }\n\n var result = _detectMutations(isImmutable, ignore, trackedProperty.children[key], obj[key], sameRef, childPath);\n\n if (result.wasMutated) {\n return result;\n }\n }\n return { wasMutated: false };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-immutable-state-invariant/dist/trackForMutations.js\n// module id = 1957\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nfunction createThunkMiddleware(extraArgument) {\n return function (_ref) {\n var dispatch = _ref.dispatch;\n var getState = _ref.getState;\n return function (next) {\n return function (action) {\n if (typeof action === 'function') {\n return action(dispatch, getState, extraArgument);\n }\n\n return next(action);\n };\n };\n };\n}\n\nvar thunk = createThunkMiddleware();\nthunk.withExtraArgument = createThunkMiddleware;\n\nexports['default'] = thunk;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/redux-thunk/lib/index.js\n// module id = 1958\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n if (basename) path = (0, _PathUtils.stripPrefix)(path, basename);\n\n return _extends({}, (0, _PathUtils.parsePath)(path), {\n state: state,\n key: key\n });\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createBrowserHistory.js\n// module id = 1959\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/LocationUtils.js\n// module id = 1960\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar valueEqual = function valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n};\n\nexports.default = valueEqual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/node_modules/value-equal/index.js\n// module id = 1961\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/createTransitionManager.js\n// module id = 1962\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/history/DOMUtils.js\n// module id = 1963\n// module chunks = 0","import { showGlobalModal } from \"../actions/globalModalActions\";\r\n\r\nexport const globalModalMiddleware = ({ dispatch }) => next => action => {\r\n if (action.meta && action.meta.globalModal) {\r\n dispatch(showGlobalModal(action.meta.globalModal));\r\n }\r\n next(action);\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/middlewares/globalModalMiddleware.js","import {\r\n setSelectedHotel,\r\n setSelectedRegion,\r\n setSelectedCity,\r\n setSelectedDeal\r\n} from \"../actions/hotelsActions\";\r\nimport { LOCATION_CHANGE } from \"react-router-redux\";\r\nimport { setActiveBreadCrumbs } from \"../actions/breadCrumbsActions\";\r\nimport qs from \"qs\";\r\nimport { BREAD_CRUMBS_ROUTE_MAPPING } from \"../constants/constants\";\r\n\r\nexport const routeChangeMiddleware = ({ dispatch }) => next => action => {\r\n if (action.type == LOCATION_CHANGE) {\r\n let query = qs.parse(action.payload.search, { ignoreQueryPrefix: true });\r\n action.payload &&\r\n action.payload.notifyRoute &&\r\n action.payload.notifyRoute(query && query.selectedHotelId);\r\n if (\r\n query.selectedHotelId ||\r\n query.selectedCityCode ||\r\n query.selectedRegionId ||\r\n query.selectedDealId\r\n ) {\r\n dispatch(setSelectedHotel(query.selectedHotelId));\r\n dispatch(setSelectedCity(query.selectedCityCode));\r\n dispatch(setSelectedRegion(query.selectedRegionId));\r\n dispatch(setSelectedDeal(query.selectedDealId));\r\n }\r\n let fullPath = action.payload && action.payload.pathname;\r\n let path = fullPath && fullPath.split(\"/\");\r\n if (path && path[1] && BREAD_CRUMBS_ROUTE_MAPPING[path[1]]) {\r\n dispatch(setActiveBreadCrumbs(BREAD_CRUMBS_ROUTE_MAPPING[path[1]]));\r\n }\r\n }\r\n next(action);\r\n};\r\n\r\n// const normalizeSelectedValue = (val) => {\r\n// let result = val;\r\n// if (result) {\r\n// result = parseInt(result);\r\n// }\r\n// else {\r\n// result = null;\r\n// }\r\n// return result;\r\n// };\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/middlewares/routeChangeMiddleware.js","/* eslint no-console: 0 */ // --> OFF\r\n\r\n// import { generateGroupNameCode } from \"../signalrStarter\";\r\nimport {\r\n GET_ROOM_RESULTS_SUCESS,\r\n GET_ROOM_RESULTS_FAIL,\r\n GET_REGION_RESULTS_SUCCESS,\r\n GET_REGION_RESULTS_FAIL\r\n} from \"../constants/actionTypes\";\r\nimport { push } from \"react-router-redux\";\r\nimport qs from \"qs\";\r\n\r\n// summery: each room/region results fetching will go though this middleware\r\n// to check if there are any room/region results - if don't - redirect to noresults route view\r\n// and if do, and room results (not region) join to real-time hotel current viewer group\r\nexport const resultGettingMiddleware = ({\r\n dispatch,\r\n getState\r\n}) => next => action => {\r\n const isRoomResults =\r\n action.type == GET_ROOM_RESULTS_SUCESS ||\r\n action.type == GET_ROOM_RESULTS_FAIL;\r\n const isRegionResults =\r\n action.type == GET_REGION_RESULTS_SUCCESS ||\r\n action.type == GET_REGION_RESULTS_FAIL;\r\n\r\n const { routing } = getState();\r\n const currentQuery = qs.parse(routing.location && routing.location.search, {\r\n ignoreQueryPrefix: true\r\n });\r\n const isDealMode = currentQuery.selectedDealId;\r\n if (isRoomResults || isRegionResults) {\r\n // if don't - go to 'noresults' view ( unmount searchresults and exc leave group proc )\r\n if (action.payload == null || action.payload.length == 0) {\r\n if (isDealMode == null) {\r\n dispatch(push(\"/noresults\" + routing.location.search));\r\n }\r\n } else {\r\n if (isRoomResults) {\r\n // if do - join singalr realtime hotel group\r\n const { selectedHotelId: hotelId, lang } = getState();\r\n try {\r\n window._hub.invoke(\"joinGroup\", `H${hotelId}`, lang);\r\n\r\n //window._hub.invoke(\"joinGroup\", generateGroupNameCode(hotelId), lang);\r\n } catch (error) {\r\n console.log(\"signalR joinGroup invoke failed\", error); // eslint-disable-line no-console\r\n }\r\n }\r\n }\r\n }\r\n next(action);\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/middlewares/resultGettingMiddleware.js","import { showGlobalNotification } from \"./actions/globalNotificationActions\";\r\nimport format from \"string-format\";\r\n// todo: does it need toastr.options.rtl = true config ?\r\n/* eslint-disable no-console, no-constant-condition */\r\n\r\nexport const signalrStarter = (store, hubURL, lang, callback = () => {}) => {\r\n try {\r\n do {\r\n if (!window.jQuery && !$.hubConnection) {\r\n console.warn(\"jQuery is not loaded, aborting signalR.\");\r\n break;\r\n }\r\n const connection = $.hubConnection(hubURL);\r\n if (!connection) {\r\n console.warn(\"signalR connection is not established, aborting.\");\r\n break;\r\n }\r\n const hub = connection.createHubProxy(\"BookingEngineHub\");\r\n window._hub = hub;\r\n\r\n // Hub client functions\r\n window._hub.on(\"notifyViewersNumber\", function(viewersNumber) {\r\n const { titles } = store.getState();\r\n store.dispatch(\r\n showGlobalNotification(\r\n format(titles.SignalrViewerNumbersNotification, viewersNumber)\r\n )\r\n );\r\n });\r\n\r\n // Start the connection.\r\n connection.start().done(() => {\r\n callback();\r\n });\r\n connection.error(err => {\r\n console.log(\"signalR connection start failed\", err);\r\n callback();\r\n });\r\n } while (false);\r\n } catch (error) {\r\n console.log(\"signalR not supported\", error);\r\n callback();\r\n }\r\n};\r\n\r\nexport const generateGroupNameCode = hotelId => {\r\n return `H${hotelId}`;\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/signalrStarter.js","void function(global) {\n\n 'use strict';\n\n // ValueError :: String -> Error\n function ValueError(message) {\n var err = new Error(message);\n err.name = 'ValueError';\n return err;\n }\n\n // create :: Object -> String,*... -> String\n function create(transformers) {\n return function(template) {\n var args = Array.prototype.slice.call(arguments, 1);\n var idx = 0;\n var state = 'UNDEFINED';\n\n return template.replace(\n /([{}])\\1|[{](.*?)(?:!(.+?))?[}]/g,\n function(match, literal, _key, xf) {\n if (literal != null) {\n return literal;\n }\n var key = _key;\n if (key.length > 0) {\n if (state === 'IMPLICIT') {\n throw ValueError('cannot switch from ' +\n 'implicit to explicit numbering');\n }\n state = 'EXPLICIT';\n } else {\n if (state === 'EXPLICIT') {\n throw ValueError('cannot switch from ' +\n 'explicit to implicit numbering');\n }\n state = 'IMPLICIT';\n key = String(idx);\n idx += 1;\n }\n\n // 1. Split the key into a lookup path.\n // 2. If the first path component is not an index, prepend '0'.\n // 3. Reduce the lookup path to a single result. If the lookup\n // succeeds the result is a singleton array containing the\n // value at the lookup path; otherwise the result is [].\n // 4. Unwrap the result by reducing with '' as the default value.\n var path = key.split('.');\n var value = (/^\\d+$/.test(path[0]) ? path : ['0'].concat(path))\n .reduce(function(maybe, key) {\n return maybe.reduce(function(_, x) {\n return x != null && key in Object(x) ?\n [typeof x[key] === 'function' ? x[key]() : x[key]] :\n [];\n }, []);\n }, [args])\n .reduce(function(_, x) { return x; }, '');\n\n if (xf == null) {\n return value;\n } else if (Object.prototype.hasOwnProperty.call(transformers, xf)) {\n return transformers[xf](value);\n } else {\n throw ValueError('no transformer named \"' + xf + '\"');\n }\n }\n );\n };\n }\n\n // format :: String,*... -> String\n var format = create({});\n\n // format.create :: Object -> String,*... -> String\n format.create = create;\n\n // format.extend :: Object,Object -> ()\n format.extend = function(prototype, transformers) {\n var $format = create(transformers);\n prototype.format = function() {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(this);\n return $format.apply(global, args);\n };\n };\n\n /* istanbul ignore else */\n if (typeof module !== 'undefined') {\n module.exports = format;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return format; });\n } else {\n global.format = format;\n }\n\n}.call(this, this);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/string-format/index.js\n// module id = 1968\n// module chunks = 0"],"sourceRoot":""}