@mirai/core 0.3.308 → 0.3.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/Booking/Booking.js +1 -3
- package/build/components/Booking/Booking.js.map +1 -1
- package/build/components/Checkout/Checkout.js +1 -3
- package/build/components/Checkout/Checkout.js.map +1 -1
- package/build/components/EventManager/EventManager.js +1 -7
- package/build/components/EventManager/EventManager.js.map +1 -1
- package/build/components/Finder/Finder.js +1 -7
- package/build/components/Finder/Finder.js.map +1 -1
- package/build/components/Header/Header.js +1 -1
- package/build/components/Header/Header.js.map +1 -1
- package/build/components/Rates/Rates.Header.js +7 -1
- package/build/components/Rates/Rates.Header.js.map +1 -1
- package/build/components/Rates/Rates.Unavailability.js +5 -1
- package/build/components/Rates/Rates.Unavailability.js.map +1 -1
- package/build/components/Rates/Rates.js +15 -5
- package/build/components/Rates/Rates.js.map +1 -1
- package/build/components/Rates/Rates.l10n.js +3 -0
- package/build/components/Rates/Rates.l10n.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.js +17 -5
- package/build/components/Rates/components/CardHotel/CardHotel.js.map +1 -1
- package/build/components/Rates/components/CardHotel/CardHotel.module.css +22 -0
- package/build/components/Rates/components/ModalMapView/ModalMapView.js +268 -0
- package/build/components/Rates/components/ModalMapView/ModalMapView.js.map +1 -0
- package/build/components/Rates/components/ModalMapView/ModalMapView.l10n.js +18 -0
- package/build/components/Rates/components/ModalMapView/ModalMapView.l10n.js.map +1 -0
- package/build/components/Rates/components/ModalMapView/ModalMapView.module.css +93 -0
- package/build/components/Rates/components/ModalMapView/helpers/customMarker.js +36 -0
- package/build/components/Rates/components/ModalMapView/helpers/customMarker.js.map +1 -0
- package/build/components/Rates/components/ModalMapView/helpers/index.js +28 -0
- package/build/components/Rates/components/ModalMapView/helpers/index.js.map +1 -0
- package/build/components/Rates/components/ModalMapView/helpers/loadGMaps.js +18 -0
- package/build/components/Rates/components/ModalMapView/helpers/loadGMaps.js.map +1 -0
- package/build/components/Rates/components/ModalMapView/index.js +17 -0
- package/build/components/Rates/components/ModalMapView/index.js.map +1 -0
- package/build/components/Rates/components/index.js +11 -0
- package/build/components/Rates/components/index.js.map +1 -1
- package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js +7 -1
- package/build/components/__shared__/SelectEnvironment/SelectEnvironment.js.map +1 -1
- package/build/services/Rates/get.js +0 -1
- package/build/services/Rates/get.js.map +1 -1
- package/package.json +1 -1
- package/public/routes/Home.jsx +27 -6
- package/public/routes/routes.module.css +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_shared__","_helpers3","_helpers4","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","_ref","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","price","stars","taxes","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","hotelId","tags","options","places","useStore","sliderWidth","setSliderWidth","useState","useEffect","_ref$current","current","clientWidth","handlePress","find","isHotel","ids","arguments","length","undefined","includes","toString","window","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","place","idtokenprovider","caption","action","small","placeId","title","placeName","hotelName","createElement","Card","View","className","card","Slider","height","slider","row","offset","spaceBetween","Icon","ICON","LOCATION","Text","L10N","LABEL_DISTANCE","Intl","NumberFormat","unit","minimumFractionDigits","maximumFractionDigits","format","bold","headline","level","Array","from","Action","getHotelUrl","inline","target","ACTION_VIEW_HOTEL","summary","accent","LABEL_CLUB_MEMBERS","LABEL_DISCOUNT","currencyFormat","capitalize","tiny","LABEL_PER_NIGHT","light","getLabelTaxes","Button","onPress","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","number","shape","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { getHotelUrl } from './helpers';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { ICON, toUrlParams } from '../../../helpers';\nimport { getFinderParams, getLabelTaxes } from '../../helpers';\nimport { Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n discountPercentage = 0,\n features: { distance, location, url } = {},\n hasDiscountClub = false,\n id,\n images = [],\n name,\n price,\n stars,\n taxes,\n}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, id: hotelId, tags: { options: places = [] } = {} } = {} } =\n useStore();\n\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n };\n\n const caption = { action: !isMobile, small: isMobile };\n const { features } = hotel || {};\n const { place: { id: [placeId] = [], isHotel, title: placeName } = {} } = finder || {};\n const { name: hotelName } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[hotelId]) || {};\n\n return (\n <Card>\n <View ref={ref} className={style.card}>\n <View>\n <Slider height={208} images={images} width={sliderWidth} className={style.slider} />\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>\n {translate(L10N.LABEL_DISTANCE, {\n distance: Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'kilometer',\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }).format(distance),\n name: hotelName,\n })}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action href={getHotelUrl(url)} inline small={isMobile} target=\"_blank\">\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.summary]}>\n <View>\n <Text accent bold small>\n {hasDiscountClub && `${translate(L10N.LABEL_CLUB_MEMBERS)} `}\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n\n <Text capitalize small={!isMobile} tiny={isMobile}>\n {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxes))}\n </Text>\n </View>\n\n <Button onPress={handlePress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n </View>\n </Card>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n price: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.number,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CardHotel.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_CardHotel","style","_helpers","_helpers2","_shared__","_helpers3","_helpers4","_components","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","DEFAULT_WIDTH","CardHotel","_ref","discountPercentage","features","distance","location","url","hasDiscountClub","id","images","name","nights","price","stars","taxes","isMobile","width","useDevice","locale","translate","useLocale","ref","useRef","value","currency","finder","forwarder","hotel","hotelId","tags","options","places","useStore","sliderWidth","setSliderWidth","useState","useEffect","_ref$current","current","clientWidth","handlePress","find","isHotel","ids","arguments","length","undefined","includes","toString","window","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","place","idtokenprovider","caption","action","small","placeId","title","placeName","hotelName","createElement","Card","View","className","card","preview","Slider","height","slider","row","Text","bold","L10N","LABEL_CLUB_MEMBERS","offset","spaceBetween","Icon","ICON","LOCATION","LABEL_DISTANCE","Intl","NumberFormat","unit","minimumFractionDigits","maximumFractionDigits","format","headline","level","Array","from","Action","getHotelUrl","inline","target","ACTION_VIEW_HOTEL","summary","accent","LABEL_DISCOUNT","currencyFormat","tiny","LABEL_PER_NIGHT","light","getLabelTaxes","Button","onPress","ACTION_VIEW_MORE","exports","displayName","propTypes","PropTypes","number","shape","string","bool","oneOfType","arrayOf"],"sources":["../../../../../src/components/Rates/components/CardHotel/CardHotel.jsx"],"sourcesContent":["import { useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Action, Button, Icon, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { L10N } from './CardHotel.l10n';\nimport * as style from './CardHotel.module.css';\nimport { getHotelUrl } from './helpers';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { ICON, toUrlParams } from '../../../helpers';\nimport { getFinderParams, getLabelTaxes } from '../../helpers';\nimport { Slider } from '../Item/components';\n\nconst DEFAULT_WIDTH = 374;\n\nconst CardHotel = ({\n discountPercentage = 0,\n features: { distance, location, url } = {},\n hasDiscountClub = false,\n id,\n images = [],\n name,\n nights = 1,\n price,\n stars,\n taxes,\n}) => {\n const { isMobile, width } = useDevice();\n const { locale, translate } = useLocale();\n const ref = useRef(null);\n const { value: { currency, finder, forwarder = {}, hotel, id: hotelId, tags: { options: places = [] } = {} } = {} } =\n useStore();\n\n const [sliderWidth, setSliderWidth] = useState(DEFAULT_WIDTH);\n\n useEffect(() => {\n if (ref.current) setSliderWidth(ref.current?.clientWidth - 1);\n }, [width]);\n\n const handlePress = () => {\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n };\n\n const caption = { action: !isMobile, small: isMobile };\n const { features } = hotel || {};\n const { place: { id: [placeId] = [], isHotel, title: placeName } = {} } = finder || {};\n const { name: hotelName } = (placeId ? (isHotel ? features[placeId] : { name: placeName }) : features[hotelId]) || {};\n\n return (\n <Card>\n <View ref={ref} className={style.card}>\n <View className={style.preview}>\n <Slider height={208} images={images} width={sliderWidth} className={style.slider} />\n\n <View row className={style.tags}>\n {hasDiscountClub && (\n <Text bold small>\n {translate(L10N.LABEL_CLUB_MEMBERS)}\n </Text>\n )}\n </View>\n </View>\n\n {distance && (\n <View row className={[style.offset, style.spaceBetween]}>\n <View row className={style.row}>\n <Icon value={ICON.LOCATION} />\n <Text small>\n {translate(L10N.LABEL_DISTANCE, {\n distance: Intl.NumberFormat(locale, {\n style: 'unit',\n unit: 'kilometer',\n minimumFractionDigits: 1,\n maximumFractionDigits: 1,\n }).format(distance),\n name: hotelName,\n })}\n </Text>\n </View>\n </View>\n )}\n\n <View className={style.offset}>\n <Text bold headline={!isMobile} level={3}>\n {name}\n </Text>\n {stars > 0 && (\n <Text headline={!isMobile} level={3}>\n {Array.from({ length: stars }, () => '★')}\n </Text>\n )}\n\n <Text {...caption}>{location}</Text>\n\n {url && (\n <Action href={getHotelUrl(url)} inline small={isMobile} target=\"_blank\">\n {translate(L10N.ACTION_VIEW_HOTEL)}\n </Action>\n )}\n </View>\n\n <View row className={[style.offset, style.spaceBetween, style.summary]}>\n <View>\n <Text accent bold small>\n {translate(L10N.LABEL_DISCOUNT, { value: `${discountPercentage}%` })}\n </Text>\n\n <Text bold headline level={isMobile || price >= 10000 ? 3 : 2}>\n {currencyFormat({ currency, locale, maximumFractionDigits: 0, value: price })}\n </Text>\n\n <Text small={!isMobile} tiny={isMobile}>\n {currencyFormat({ currency, value: price / nights })} {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n\n <Text light small={!isMobile} tiny={isMobile}>\n {translate(getLabelTaxes(taxes))}\n </Text>\n </View>\n\n <Button onPress={handlePress}>{translate(L10N.ACTION_VIEW_MORE)}</Button>\n </View>\n </View>\n </Card>\n );\n};\n\nCardHotel.displayName = 'Mirai:Core:Rates:CardHotel';\n\nCardHotel.propTypes = {\n discountPercentage: PropTypes.number,\n features: PropTypes.shape({\n distance: PropTypes.string,\n location: PropTypes.string,\n url: PropTypes.string,\n }),\n hasDiscountClub: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n images: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string,\n nights: PropTypes.number,\n price: PropTypes.number,\n stars: PropTypes.number,\n taxes: PropTypes.number,\n};\n\nexport { CardHotel };\n"],"mappings":"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"}
|
|
@@ -36,6 +36,28 @@
|
|
|
36
36
|
margin-bottom: var(--mirai-ui-space-XXS);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
.preview {
|
|
40
|
+
position: relative;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.preview .tags {
|
|
44
|
+
gap: var(--mirai-ui-space-XS);
|
|
45
|
+
left: 0;
|
|
46
|
+
margin: var(--mirai-ui-space-S);
|
|
47
|
+
position: absolute;
|
|
48
|
+
top: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.preview .tags > [data-role='text'] {
|
|
52
|
+
align-items: center;
|
|
53
|
+
background-color: var(--mirai-ui-accent);
|
|
54
|
+
border-radius: var(--mirai-ui-border-radius);
|
|
55
|
+
color: var(--mirai-ui-base);
|
|
56
|
+
display: flex;
|
|
57
|
+
gap: var(--mirai-ui-space-XXS);
|
|
58
|
+
padding: var(--mirai-ui-space-XXS) var(--mirai-ui-space-XS);
|
|
59
|
+
}
|
|
60
|
+
|
|
39
61
|
/* S */
|
|
40
62
|
@media only screen and (max-width: 480px) {
|
|
41
63
|
.card .gap {
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ModalMapView = void 0;
|
|
7
|
+
var _dataSources = require("@mirai/data-sources");
|
|
8
|
+
var _locale = require("@mirai/locale");
|
|
9
|
+
var _ui = require("@mirai/ui");
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _helpers = require("./helpers");
|
|
13
|
+
var _ModalMapView = require("./ModalMapView.l10n");
|
|
14
|
+
var style = _interopRequireWildcard(require("./ModalMapView.module.css"));
|
|
15
|
+
var _helpers2 = require("../../../../helpers");
|
|
16
|
+
var _shared__ = require("../../../__shared__");
|
|
17
|
+
var _helpers3 = require("../../../helpers");
|
|
18
|
+
var _helpers4 = require("../../helpers");
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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; }; return _extends.apply(this, arguments); }
|
|
23
|
+
let memoizedSelected;
|
|
24
|
+
const ModalMapView = _ref => {
|
|
25
|
+
var _selected$features;
|
|
26
|
+
let {
|
|
27
|
+
items = [],
|
|
28
|
+
nights = 1,
|
|
29
|
+
visible,
|
|
30
|
+
onClose,
|
|
31
|
+
...others
|
|
32
|
+
} = _ref;
|
|
33
|
+
const {
|
|
34
|
+
isMobile
|
|
35
|
+
} = (0, _ui.useDevice)();
|
|
36
|
+
const {
|
|
37
|
+
translate
|
|
38
|
+
} = (0, _locale.useLocale)();
|
|
39
|
+
const {
|
|
40
|
+
value: {
|
|
41
|
+
currency,
|
|
42
|
+
finder,
|
|
43
|
+
forwarder = {},
|
|
44
|
+
hotel,
|
|
45
|
+
locale,
|
|
46
|
+
tags: {
|
|
47
|
+
options: places = []
|
|
48
|
+
} = {}
|
|
49
|
+
}
|
|
50
|
+
} = (0, _dataSources.useStore)();
|
|
51
|
+
const mapRef = (0, _react.useRef)();
|
|
52
|
+
const [map, setMap] = (0, _react.useState)();
|
|
53
|
+
const [selected, setSelected] = (0, _react.useState)();
|
|
54
|
+
const theme = _ui.Theme.get();
|
|
55
|
+
const {
|
|
56
|
+
icon,
|
|
57
|
+
label
|
|
58
|
+
} = (0, _helpers.customMarker)(theme);
|
|
59
|
+
const {
|
|
60
|
+
accent,
|
|
61
|
+
base
|
|
62
|
+
} = theme;
|
|
63
|
+
const {
|
|
64
|
+
place: {
|
|
65
|
+
title
|
|
66
|
+
} = {}
|
|
67
|
+
} = finder;
|
|
68
|
+
(0, _react.useEffect)(() => {
|
|
69
|
+
if (!visible) return;
|
|
70
|
+
(0, _helpers.loadGMaps)().then(() => {
|
|
71
|
+
const bounds = new window.google.maps.LatLngBounds();
|
|
72
|
+
const map = new window.google.maps.Map(mapRef.current, {
|
|
73
|
+
fullscreenControl: false,
|
|
74
|
+
mapTypeControl: false
|
|
75
|
+
});
|
|
76
|
+
map.addListener('click', () => setSelected());
|
|
77
|
+
map.addListener('dragstart', () => setSelected());
|
|
78
|
+
setMap(map);
|
|
79
|
+
if (!visible) return;
|
|
80
|
+
setSelected(undefined);
|
|
81
|
+
map.markers = map.markers || [];
|
|
82
|
+
map.markers.forEach(marker => marker.setMap());
|
|
83
|
+
map.markers = [];
|
|
84
|
+
items.forEach(function () {
|
|
85
|
+
let dataSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
86
|
+
const item = {
|
|
87
|
+
...dataSource,
|
|
88
|
+
position: {
|
|
89
|
+
lat: dataSource.latitude,
|
|
90
|
+
lng: dataSource.longitude
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
const {
|
|
94
|
+
price,
|
|
95
|
+
position
|
|
96
|
+
} = item;
|
|
97
|
+
const text = (0, _locale.currencyFormat)({
|
|
98
|
+
currency,
|
|
99
|
+
fancy: true,
|
|
100
|
+
locale,
|
|
101
|
+
symbol: true,
|
|
102
|
+
value: price
|
|
103
|
+
});
|
|
104
|
+
const marker = new window.google.maps.Marker({
|
|
105
|
+
map,
|
|
106
|
+
position,
|
|
107
|
+
icon,
|
|
108
|
+
label: {
|
|
109
|
+
...label,
|
|
110
|
+
text
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
marker.addListener('click', () => setSelected(item));
|
|
114
|
+
marker.addListener('mouseover', () => highlightMarker(marker, item));
|
|
115
|
+
marker.addListener('mouseout', () => memoizedSelected !== item ? resetMarker(marker, item) : undefined);
|
|
116
|
+
map.markers.push(marker);
|
|
117
|
+
bounds.extend(position);
|
|
118
|
+
});
|
|
119
|
+
if (items.length > 0) map.fitBounds(bounds);
|
|
120
|
+
}).catch(() => {
|
|
121
|
+
_dataSources.Event.publish(_helpers3.EVENT.NOTIFICATION, {
|
|
122
|
+
error: true,
|
|
123
|
+
..._ModalMapView.L10N.NOTIFICATION_ERROR_MAP
|
|
124
|
+
});
|
|
125
|
+
onClose();
|
|
126
|
+
});
|
|
127
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
128
|
+
}, [items, visible]);
|
|
129
|
+
(0, _react.useEffect)(() => {
|
|
130
|
+
memoizedSelected = selected;
|
|
131
|
+
if (!map || !items.length) return;
|
|
132
|
+
if (selected) map.panTo(selected.position);
|
|
133
|
+
const itemIndex = selected ? items.findIndex(_ref2 => {
|
|
134
|
+
let {
|
|
135
|
+
id
|
|
136
|
+
} = _ref2;
|
|
137
|
+
return id === selected.id;
|
|
138
|
+
}) : -1;
|
|
139
|
+
map.markers.forEach((marker, index) => {
|
|
140
|
+
index === itemIndex ? highlightMarker(marker, items[index]) : resetMarker(marker, items[index], index);
|
|
141
|
+
});
|
|
142
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
143
|
+
}, [selected]);
|
|
144
|
+
const highlightMarker = function (marker) {
|
|
145
|
+
let {
|
|
146
|
+
price
|
|
147
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
148
|
+
marker.setIcon({
|
|
149
|
+
...icon,
|
|
150
|
+
fillColor: accent,
|
|
151
|
+
strokeColor: accent,
|
|
152
|
+
scale: 1.1
|
|
153
|
+
});
|
|
154
|
+
marker.setLabel({
|
|
155
|
+
...label,
|
|
156
|
+
color: base,
|
|
157
|
+
text: priceMarker(price)
|
|
158
|
+
});
|
|
159
|
+
marker.setZIndex(1024);
|
|
160
|
+
};
|
|
161
|
+
const resetMarker = function (marker) {
|
|
162
|
+
let {
|
|
163
|
+
price
|
|
164
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
165
|
+
let index = arguments.length > 2 ? arguments[2] : undefined;
|
|
166
|
+
marker.setIcon(icon);
|
|
167
|
+
marker.setLabel({
|
|
168
|
+
...label,
|
|
169
|
+
text: priceMarker(price)
|
|
170
|
+
});
|
|
171
|
+
marker.setZIndex(index);
|
|
172
|
+
};
|
|
173
|
+
const priceMarker = price => (0, _locale.currencyFormat)({
|
|
174
|
+
currency,
|
|
175
|
+
fancy: true,
|
|
176
|
+
locale,
|
|
177
|
+
symbol: true,
|
|
178
|
+
value: price
|
|
179
|
+
});
|
|
180
|
+
const handlePress = () => {
|
|
181
|
+
const {
|
|
182
|
+
id
|
|
183
|
+
} = selected;
|
|
184
|
+
const {
|
|
185
|
+
value
|
|
186
|
+
} = places.find(function () {
|
|
187
|
+
let {
|
|
188
|
+
isHotel,
|
|
189
|
+
id: ids = []
|
|
190
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
191
|
+
return isHotel && ids.includes(id.toString());
|
|
192
|
+
}) || {};
|
|
193
|
+
window.location.href = "".concat(forwarder.rates).concat((0, _helpers3.toUrlParams)({
|
|
194
|
+
...(0, _helpers2.fetchUrlParams)(window.location.search),
|
|
195
|
+
...(0, _helpers4.getFinderParams)({
|
|
196
|
+
...finder,
|
|
197
|
+
...{
|
|
198
|
+
place: {
|
|
199
|
+
id: undefined,
|
|
200
|
+
value
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
hotel
|
|
204
|
+
}),
|
|
205
|
+
idtokenprovider: id
|
|
206
|
+
}));
|
|
207
|
+
};
|
|
208
|
+
return /*#__PURE__*/_react.default.createElement(_ui.Modal, _extends({}, others, {
|
|
209
|
+
title,
|
|
210
|
+
visible,
|
|
211
|
+
onClose,
|
|
212
|
+
fit: true,
|
|
213
|
+
className: [style.modal, others.className]
|
|
214
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
215
|
+
ref: mapRef,
|
|
216
|
+
className: style.map
|
|
217
|
+
}), /*#__PURE__*/_react.default.createElement(_shared__.Card, {
|
|
218
|
+
className: (0, _ui.styles)(style.card, selected && style.visible)
|
|
219
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
220
|
+
className: style.image,
|
|
221
|
+
style: selected !== null && selected !== void 0 && selected.images ? {
|
|
222
|
+
backgroundImage: "url(".concat(selected === null || selected === void 0 ? void 0 : selected.images[0], ")")
|
|
223
|
+
} : undefined
|
|
224
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
225
|
+
className: style.content
|
|
226
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
227
|
+
bold: true,
|
|
228
|
+
headline: !isMobile
|
|
229
|
+
}, selected === null || selected === void 0 ? void 0 : selected.name), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
230
|
+
action: !isMobile,
|
|
231
|
+
light: true,
|
|
232
|
+
small: isMobile,
|
|
233
|
+
className: style.location
|
|
234
|
+
}, selected === null || selected === void 0 ? void 0 : (_selected$features = selected.features) === null || _selected$features === void 0 ? void 0 : _selected$features.location), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
235
|
+
className: style.anchor
|
|
236
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
237
|
+
row: true
|
|
238
|
+
}, /*#__PURE__*/_react.default.createElement(_ui.View, null, /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
239
|
+
bold: true
|
|
240
|
+
}, (0, _locale.currencyFormat)({
|
|
241
|
+
currency,
|
|
242
|
+
locale,
|
|
243
|
+
maximumFractionDigits: 0,
|
|
244
|
+
value: selected === null || selected === void 0 ? void 0 : selected.price
|
|
245
|
+
})), /*#__PURE__*/_react.default.createElement(_ui.Text, {
|
|
246
|
+
light: true,
|
|
247
|
+
small: !isMobile,
|
|
248
|
+
tiny: isMobile
|
|
249
|
+
}, (0, _locale.currencyFormat)({
|
|
250
|
+
currency,
|
|
251
|
+
value: (selected === null || selected === void 0 ? void 0 : selected.price) / nights
|
|
252
|
+
}), " ", translate(_ModalMapView.L10N.LABEL_PER_NIGHT))), /*#__PURE__*/_react.default.createElement(_ui.View, {
|
|
253
|
+
className: style.anchor
|
|
254
|
+
}), /*#__PURE__*/_react.default.createElement(_ui.Button, {
|
|
255
|
+
small: true,
|
|
256
|
+
onPress: handlePress
|
|
257
|
+
}, translate(_ModalMapView.L10N.ACTION_VIEW_MORE))))));
|
|
258
|
+
};
|
|
259
|
+
exports.ModalMapView = ModalMapView;
|
|
260
|
+
ModalMapView.propTypes = {
|
|
261
|
+
items: _propTypes.default.arrayOf(_propTypes.default.shape({})),
|
|
262
|
+
nights: _propTypes.default.number,
|
|
263
|
+
title: _propTypes.default.string,
|
|
264
|
+
visible: _propTypes.default.visible,
|
|
265
|
+
onClose: _propTypes.default.func
|
|
266
|
+
};
|
|
267
|
+
ModalMapView.displayName = 'Mirai:Core:Rates:ModalMapView';
|
|
268
|
+
//# sourceMappingURL=ModalMapView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalMapView.js","names":["_dataSources","require","_locale","_ui","_propTypes","_interopRequireDefault","_react","_interopRequireWildcard","_helpers","_ModalMapView","style","_helpers2","_shared__","_helpers3","_helpers4","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","obj","_extends","assign","bind","target","arguments","length","source","key","apply","memoizedSelected","ModalMapView","_ref","_selected$features","items","nights","visible","onClose","others","isMobile","useDevice","translate","useLocale","value","currency","finder","forwarder","hotel","locale","tags","options","places","useStore","mapRef","useRef","map","setMap","useState","selected","setSelected","theme","Theme","icon","label","customMarker","accent","base","place","title","useEffect","loadGMaps","then","bounds","window","google","maps","LatLngBounds","Map","current","fullscreenControl","mapTypeControl","addListener","undefined","markers","forEach","marker","dataSource","item","position","lat","latitude","lng","longitude","price","text","currencyFormat","fancy","symbol","Marker","highlightMarker","resetMarker","push","extend","fitBounds","catch","Event","publish","EVENT","NOTIFICATION","error","L10N","NOTIFICATION_ERROR_MAP","panTo","itemIndex","findIndex","_ref2","id","index","setIcon","fillColor","strokeColor","scale","setLabel","color","priceMarker","setZIndex","handlePress","find","isHotel","ids","includes","toString","location","href","concat","rates","toUrlParams","fetchUrlParams","search","getFinderParams","idtokenprovider","createElement","Modal","fit","className","modal","View","ref","Card","styles","card","image","images","backgroundImage","content","Text","bold","headline","name","action","light","small","features","anchor","row","maximumFractionDigits","tiny","LABEL_PER_NIGHT","Button","onPress","ACTION_VIEW_MORE","exports","propTypes","PropTypes","arrayOf","shape","number","string","func","displayName"],"sources":["../../../../../src/components/Rates/components/ModalMapView/ModalMapView.jsx"],"sourcesContent":["import { Event, useStore } from '@mirai/data-sources';\nimport { currencyFormat, useLocale } from '@mirai/locale';\nimport { Button, Modal, styles, Theme, Text, useDevice, View } from '@mirai/ui';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { customMarker, loadGMaps } from './helpers';\nimport { L10N } from './ModalMapView.l10n';\nimport * as style from './ModalMapView.module.css';\nimport { fetchUrlParams } from '../../../../helpers';\nimport { Card } from '../../../__shared__';\nimport { EVENT, toUrlParams } from '../../../helpers';\nimport { getFinderParams } from '../../helpers';\n\nlet memoizedSelected;\n\nconst ModalMapView = ({ items = [], nights = 1, visible, onClose, ...others }) => {\n const { isMobile } = useDevice();\n const { translate } = useLocale();\n const {\n value: { currency, finder, forwarder = {}, hotel, locale, tags: { options: places = [] } = {} },\n } = useStore();\n\n const mapRef = useRef();\n const [map, setMap] = useState();\n const [selected, setSelected] = useState();\n\n const theme = Theme.get();\n const { icon, label } = customMarker(theme);\n const { accent, base } = theme;\n const { place: { title } = {} } = finder;\n\n useEffect(() => {\n if (!visible) return;\n\n loadGMaps()\n .then(() => {\n const bounds = new window.google.maps.LatLngBounds();\n const map = new window.google.maps.Map(mapRef.current, {\n fullscreenControl: false,\n mapTypeControl: false,\n });\n\n map.addListener('click', () => setSelected());\n map.addListener('dragstart', () => setSelected());\n setMap(map);\n\n if (!visible) return;\n\n setSelected(undefined);\n map.markers = map.markers || [];\n map.markers.forEach((marker) => marker.setMap());\n map.markers = [];\n\n items.forEach((dataSource = {}) => {\n const item = { ...dataSource, position: { lat: dataSource.latitude, lng: dataSource.longitude } };\n const { price, position } = item;\n const text = currencyFormat({ currency, fancy: true, locale, symbol: true, value: price });\n const marker = new window.google.maps.Marker({ map, position, icon, label: { ...label, text } });\n\n marker.addListener('click', () => setSelected(item));\n marker.addListener('mouseover', () => highlightMarker(marker, item));\n marker.addListener('mouseout', () => (memoizedSelected !== item ? resetMarker(marker, item) : undefined));\n\n map.markers.push(marker);\n bounds.extend(position);\n });\n\n if (items.length > 0) map.fitBounds(bounds);\n })\n .catch(() => {\n Event.publish(EVENT.NOTIFICATION, { error: true, ...L10N.NOTIFICATION_ERROR_MAP });\n onClose();\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, visible]);\n\n useEffect(() => {\n memoizedSelected = selected;\n if (!map || !items.length) return;\n if (selected) map.panTo(selected.position);\n\n const itemIndex = selected ? items.findIndex(({ id }) => id === selected.id) : -1;\n map.markers.forEach((marker, index) => {\n index === itemIndex ? highlightMarker(marker, items[index]) : resetMarker(marker, items[index], index);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selected]);\n\n const highlightMarker = (marker, { price } = {}) => {\n marker.setIcon({ ...icon, fillColor: accent, strokeColor: accent, scale: 1.1 });\n marker.setLabel({ ...label, color: base, text: priceMarker(price) });\n marker.setZIndex(1024);\n };\n\n const resetMarker = (marker, { price } = {}, index) => {\n marker.setIcon(icon);\n marker.setLabel({ ...label, text: priceMarker(price) });\n marker.setZIndex(index);\n };\n\n const priceMarker = (price) => currencyFormat({ currency, fancy: true, locale, symbol: true, value: price });\n\n const handlePress = () => {\n const { id } = selected;\n const { value } = places.find(({ isHotel, id: ids = [] } = {}) => isHotel && ids.includes(id.toString())) || {};\n\n window.location.href = `${forwarder.rates}${toUrlParams({\n ...fetchUrlParams(window.location.search),\n ...getFinderParams({ ...finder, ...{ place: { id: undefined, value } }, hotel }),\n idtokenprovider: id,\n })}`;\n };\n\n return (\n <Modal {...others} {...{ title, visible, onClose }} fit className={[style.modal, others.className]}>\n <View ref={mapRef} className={style.map} />\n\n <Card className={styles(style.card, selected && style.visible)}>\n <View\n className={style.image}\n style={selected?.images ? { backgroundImage: `url(${selected?.images[0]})` } : undefined}\n />\n <View className={style.content}>\n <Text bold headline={!isMobile}>\n {selected?.name}\n </Text>\n <Text action={!isMobile} light small={isMobile} className={style.location}>\n {selected?.features?.location}\n </Text>\n\n <View className={style.anchor} />\n\n <View row>\n <View>\n <Text bold>{currencyFormat({ currency, locale, maximumFractionDigits: 0, value: selected?.price })}</Text>\n <Text light small={!isMobile} tiny={isMobile}>\n {currencyFormat({ currency, value: selected?.price / nights })} {translate(L10N.LABEL_PER_NIGHT)}\n </Text>\n </View>\n <View className={style.anchor} />\n <Button small onPress={handlePress}>\n {translate(L10N.ACTION_VIEW_MORE)}\n </Button>\n </View>\n </View>\n </Card>\n </Modal>\n );\n};\n\nModalMapView.propTypes = {\n items: PropTypes.arrayOf(PropTypes.shape({})),\n nights: PropTypes.number,\n title: PropTypes.string,\n visible: PropTypes.visible,\n onClose: PropTypes.func,\n};\n\nModalMapView.displayName = 'Mirai:Core:Rates:ModalMapView';\n\nexport { ModalMapView };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.L10N = void 0;
|
|
7
|
+
const L10N = exports.L10N = {
|
|
8
|
+
ACTION_VIEW_MORE: {
|
|
9
|
+
id: 'common.action.view_more'
|
|
10
|
+
},
|
|
11
|
+
LABEL_PER_NIGHT: {
|
|
12
|
+
id: 'finder.label.per_night'
|
|
13
|
+
},
|
|
14
|
+
NOTIFICATION_ERROR_MAP: {
|
|
15
|
+
id: 'finder.notification.error_map'
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=ModalMapView.l10n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalMapView.l10n.js","names":["L10N","exports","ACTION_VIEW_MORE","id","LABEL_PER_NIGHT","NOTIFICATION_ERROR_MAP"],"sources":["../../../../../src/components/Rates/components/ModalMapView/ModalMapView.l10n.js"],"sourcesContent":["export const L10N = {\n ACTION_VIEW_MORE: { id: 'common.action.view_more' },\n LABEL_PER_NIGHT: { id: 'finder.label.per_night' },\n NOTIFICATION_ERROR_MAP: { id: 'finder.notification.error_map' },\n};\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,gBAAgB,EAAE;IAAEC,EAAE,EAAE;EAA0B,CAAC;EACnDC,eAAe,EAAE;IAAED,EAAE,EAAE;EAAyB,CAAC;EACjDE,sBAAsB,EAAE;IAAEF,EAAE,EAAE;EAAgC;AAChE,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.modal {
|
|
2
|
+
height: 100svh;
|
|
3
|
+
width: 100svw;
|
|
4
|
+
align-items: center;
|
|
5
|
+
align-content: center;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.map {
|
|
9
|
+
height: 100%;
|
|
10
|
+
width: 100%;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.card {
|
|
14
|
+
bottom: var(--mirai-ui-space-M);
|
|
15
|
+
box-shadow: var(--mirai-ui-shadow);
|
|
16
|
+
flex-direction: row;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
position: absolute;
|
|
19
|
+
transition: transform var(--mirai-ui-motion-collapse) var(--mirai-ui-motion-easing);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.card:not(.visible) {
|
|
23
|
+
transform: translateY(125%);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.card.visible {
|
|
27
|
+
transform: translateY(0%);
|
|
28
|
+
transition: transform var(--mirai-ui-motion-expand) var(--mirai-ui-motion-easing);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.image {
|
|
32
|
+
background-color: var(--mirai-ui-content-background);
|
|
33
|
+
background-size: cover;
|
|
34
|
+
height: calc(var(--mirai-ui-space-XXL) * 2);
|
|
35
|
+
max-height: calc(var(--mirai-ui-space-XXL) * 2);
|
|
36
|
+
max-width: calc(var(--mirai-ui-space-XXL) * 2);
|
|
37
|
+
width: calc(var(--mirai-ui-space-XXL) * 2);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.content {
|
|
41
|
+
flex: 1;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.content .location {
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
text-overflow: ellipsis;
|
|
47
|
+
white-space: nowrap;
|
|
48
|
+
width: 95%;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.content .anchor {
|
|
52
|
+
flex: 1;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* S */
|
|
56
|
+
@media only screen and (max-width: 480px) {
|
|
57
|
+
.card {
|
|
58
|
+
width: auto;
|
|
59
|
+
left: var(--mirai-ui-space-S);
|
|
60
|
+
right: var(--mirai-ui-space-S);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.content {
|
|
64
|
+
padding: var(--mirai-ui-space-S);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.image {
|
|
68
|
+
height: calc(var(--mirai-ui-space-XXL) * 2);
|
|
69
|
+
max-height: calc(var(--mirai-ui-space-XXL) * 2);
|
|
70
|
+
max-width: calc(var(--mirai-ui-space-XXL) * 2);
|
|
71
|
+
width: calc(var(--mirai-ui-space-XXL) * 2);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* M & L */
|
|
76
|
+
@media only screen and (min-width: 481px) {
|
|
77
|
+
.card {
|
|
78
|
+
margin: 0 auto;
|
|
79
|
+
max-width: var(--mirai-ui-breakpoint-S);
|
|
80
|
+
width: 100%;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.content {
|
|
84
|
+
padding: var(--mirai-ui-space-M);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.image {
|
|
88
|
+
height: calc(var(--mirai-ui-space-XXL) * 2.5);
|
|
89
|
+
max-height: calc(var(--mirai-ui-space-XXL) * 2.5);
|
|
90
|
+
max-width: calc(var(--mirai-ui-space-XXL) * 2.5);
|
|
91
|
+
width: calc(var(--mirai-ui-space-XXL) * 2.5);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.customMarker = void 0;
|
|
7
|
+
const customMarker = function () {
|
|
8
|
+
let {
|
|
9
|
+
base,
|
|
10
|
+
content,
|
|
11
|
+
contentBorder,
|
|
12
|
+
font,
|
|
13
|
+
fontBoldWeight,
|
|
14
|
+
fontSizeAction
|
|
15
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
16
|
+
return {
|
|
17
|
+
icon: {
|
|
18
|
+
// path: 'M -28,-14 h 56 v 28 h -56 z', // Square
|
|
19
|
+
path: 'M -26, -14 a 2,2 0 0 1 2,-2 h 48 a 2,2 0 0 1 2,2 v 26 a 2,2 0 0 1 -2,2 h -48 a 2,2 0 0 1 -2,-2 z',
|
|
20
|
+
// Rounded
|
|
21
|
+
fillColor: base,
|
|
22
|
+
fillOpacity: 1,
|
|
23
|
+
strokeColor: contentBorder,
|
|
24
|
+
strokeOpacity: 1,
|
|
25
|
+
strokeWeight: 1
|
|
26
|
+
},
|
|
27
|
+
label: {
|
|
28
|
+
color: content,
|
|
29
|
+
fontFamily: font,
|
|
30
|
+
fontSize: fontSizeAction,
|
|
31
|
+
fontWeight: fontBoldWeight
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
exports.customMarker = customMarker;
|
|
36
|
+
//# sourceMappingURL=customMarker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customMarker.js","names":["customMarker","base","content","contentBorder","font","fontBoldWeight","fontSizeAction","arguments","length","undefined","icon","path","fillColor","fillOpacity","strokeColor","strokeOpacity","strokeWeight","label","color","fontFamily","fontSize","fontWeight","exports"],"sources":["../../../../../../src/components/Rates/components/ModalMapView/helpers/customMarker.js"],"sourcesContent":["export const customMarker = ({ base, content, contentBorder, font, fontBoldWeight, fontSizeAction } = {}) => ({\n icon: {\n // path: 'M -28,-14 h 56 v 28 h -56 z', // Square\n path: 'M -26, -14 a 2,2 0 0 1 2,-2 h 48 a 2,2 0 0 1 2,2 v 26 a 2,2 0 0 1 -2,2 h -48 a 2,2 0 0 1 -2,-2 z', // Rounded\n fillColor: base,\n fillOpacity: 1,\n strokeColor: contentBorder,\n strokeOpacity: 1,\n strokeWeight: 1,\n },\n\n label: {\n color: content,\n fontFamily: font,\n fontSize: fontSizeAction,\n fontWeight: fontBoldWeight,\n },\n});\n"],"mappings":";;;;;;AAAO,MAAMA,YAAY,GAAG,SAAAA,CAAA;EAAA,IAAC;IAAEC,IAAI;IAAEC,OAAO;IAAEC,aAAa;IAAEC,IAAI;IAAEC,cAAc;IAAEC;EAAe,CAAC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,OAAM;IAC5GG,IAAI,EAAE;MACJ;MACAC,IAAI,EAAE,kGAAkG;MAAE;MAC1GC,SAAS,EAAEX,IAAI;MACfY,WAAW,EAAE,CAAC;MACdC,WAAW,EAAEX,aAAa;MAC1BY,aAAa,EAAE,CAAC;MAChBC,YAAY,EAAE;IAChB,CAAC;IAEDC,KAAK,EAAE;MACLC,KAAK,EAAEhB,OAAO;MACdiB,UAAU,EAAEf,IAAI;MAChBgB,QAAQ,EAAEd,cAAc;MACxBe,UAAU,EAAEhB;IACd;EACF,CAAC;AAAA,CAAC;AAACiB,OAAA,CAAAtB,YAAA,GAAAA,YAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _customMarker = require("./customMarker");
|
|
7
|
+
Object.keys(_customMarker).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _customMarker[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _customMarker[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _loadGMaps = require("./loadGMaps");
|
|
18
|
+
Object.keys(_loadGMaps).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _loadGMaps[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _loadGMaps[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_customMarker","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_loadGMaps"],"sources":["../../../../../../src/components/Rates/components/ModalMapView/helpers/index.js"],"sourcesContent":["export * from './customMarker';\nexport * from './loadGMaps';\n"],"mappings":";;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,aAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,aAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,aAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.loadGMaps = void 0;
|
|
7
|
+
const SCRIPT_ID = 'script-gmap';
|
|
8
|
+
const loadGMaps = () => new Promise((resolve, reject) => {
|
|
9
|
+
if (document.getElementById(SCRIPT_ID)) return resolve();
|
|
10
|
+
const script = document.createElement('script');
|
|
11
|
+
script.id = SCRIPT_ID;
|
|
12
|
+
script.src = "https://maps.googleapis.com/maps/api/js?key=".concat(process.env.GMAP_API, "&callback");
|
|
13
|
+
script.onload = resolve;
|
|
14
|
+
script.onerror = reject;
|
|
15
|
+
document.head.appendChild(script);
|
|
16
|
+
});
|
|
17
|
+
exports.loadGMaps = loadGMaps;
|
|
18
|
+
//# sourceMappingURL=loadGMaps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadGMaps.js","names":["SCRIPT_ID","loadGMaps","Promise","resolve","reject","document","getElementById","script","createElement","id","src","concat","process","env","GMAP_API","onload","onerror","head","appendChild","exports"],"sources":["../../../../../../src/components/Rates/components/ModalMapView/helpers/loadGMaps.js"],"sourcesContent":["const SCRIPT_ID = 'script-gmap';\n\nexport const loadGMaps = () =>\n new Promise((resolve, reject) => {\n if (document.getElementById(SCRIPT_ID)) return resolve();\n\n const script = document.createElement('script');\n\n script.id = SCRIPT_ID;\n script.src = `https://maps.googleapis.com/maps/api/js?key=${process.env.GMAP_API}&callback`;\n script.onload = resolve;\n script.onerror = reject;\n\n document.head.appendChild(script);\n });\n"],"mappings":";;;;;;AAAA,MAAMA,SAAS,GAAG,aAAa;AAExB,MAAMC,SAAS,GAAGA,CAAA,KACvB,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;EAC/B,IAAIC,QAAQ,CAACC,cAAc,CAACN,SAAS,CAAC,EAAE,OAAOG,OAAO,CAAC,CAAC;EAExD,MAAMI,MAAM,GAAGF,QAAQ,CAACG,aAAa,CAAC,QAAQ,CAAC;EAE/CD,MAAM,CAACE,EAAE,GAAGT,SAAS;EACrBO,MAAM,CAACG,GAAG,kDAAAC,MAAA,CAAkDC,OAAO,CAACC,GAAG,CAACC,QAAQ,cAAW;EAC3FP,MAAM,CAACQ,MAAM,GAAGZ,OAAO;EACvBI,MAAM,CAACS,OAAO,GAAGZ,MAAM;EAEvBC,QAAQ,CAACY,IAAI,CAACC,WAAW,CAACX,MAAM,CAAC;AACnC,CAAC,CAAC;AAACY,OAAA,CAAAlB,SAAA,GAAAA,SAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _ModalMapView = require("./ModalMapView");
|
|
7
|
+
Object.keys(_ModalMapView).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _ModalMapView[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _ModalMapView[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=index.js.map
|