iticket-seatingplan-dev 1.6.2 → 1.6.4
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.
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _leaflet = _interopRequireDefault(require("leaflet"));
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactLeaflet = require("react-leaflet");
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
const POSITION_CLASSES = {
|
|
13
|
+
bottomleft: "leaflet-bottom leaflet-left",
|
|
14
|
+
bottomright: "leaflet-bottom leaflet-right",
|
|
15
|
+
topleft: "leaflet-top leaflet-left",
|
|
16
|
+
topright: "leaflet-top leaflet-right"
|
|
17
|
+
};
|
|
18
|
+
const Control = props => {
|
|
19
|
+
var _props$container;
|
|
20
|
+
const [portalRoot, setPortalRoot] = _react.default.useState(document.createElement("div"));
|
|
21
|
+
const positionClass = props.position && POSITION_CLASSES[props.position] || POSITION_CLASSES.topright;
|
|
22
|
+
const controlContainerRef = /*#__PURE__*/_react.default.createRef();
|
|
23
|
+
const map = (0, _reactLeaflet.useMap)();
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Whenever the control container ref is created,
|
|
27
|
+
* Ensure the click / scroll propagation is removed
|
|
28
|
+
* This way click/scroll events do not bubble down to the map
|
|
29
|
+
*/
|
|
30
|
+
_react.default.useEffect(() => {
|
|
31
|
+
if (controlContainerRef.current !== null) {
|
|
32
|
+
_leaflet.default.DomEvent.disableClickPropagation(controlContainerRef.current);
|
|
33
|
+
_leaflet.default.DomEvent.disableScrollPropagation(controlContainerRef.current);
|
|
34
|
+
}
|
|
35
|
+
}, [controlContainerRef]);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Whenever the position is changed, go ahead and get the container of the map and the first
|
|
39
|
+
* instance of the position class in that map container
|
|
40
|
+
* Fixes #17
|
|
41
|
+
*/
|
|
42
|
+
_react.default.useEffect(() => {
|
|
43
|
+
const mapContainer = map.getContainer();
|
|
44
|
+
const targetDiv = mapContainer.getElementsByClassName(positionClass);
|
|
45
|
+
setPortalRoot(targetDiv[0]);
|
|
46
|
+
}, [positionClass]);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Whenever the portal root is complete,
|
|
50
|
+
* append or prepend the control container to the portal root
|
|
51
|
+
*/
|
|
52
|
+
_react.default.useEffect(() => {
|
|
53
|
+
if (portalRoot !== null) {
|
|
54
|
+
if (props.prepend !== undefined && props.prepend === true) {
|
|
55
|
+
portalRoot.prepend(controlContainerRef.current);
|
|
56
|
+
} else {
|
|
57
|
+
portalRoot.append(controlContainerRef.current);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}, [portalRoot, props.prepend, controlContainerRef]);
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Concatenate the props.container className to the class of the control div
|
|
64
|
+
*/
|
|
65
|
+
const className = (((_props$container = props.container) === null || _props$container === void 0 || (_props$container = _props$container.className) === null || _props$container === void 0 ? void 0 : _props$container.concat(" ")) || "") + "leaflet-control";
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Render
|
|
69
|
+
*/
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement("div", _extends({}, props.container, {
|
|
71
|
+
ref: controlContainerRef,
|
|
72
|
+
className: className
|
|
73
|
+
}), props.children);
|
|
74
|
+
};
|
|
75
|
+
var _default = exports.default = Control;
|
package/dist/components/Map.js
CHANGED
|
@@ -11,7 +11,7 @@ var _reactLeaflet = require("react-leaflet");
|
|
|
11
11
|
var L = _interopRequireWildcard(require("leaflet"));
|
|
12
12
|
var _reactLeafletDraw = require("react-leaflet-draw");
|
|
13
13
|
var _gestureHandling2 = require("./gestureHandling");
|
|
14
|
-
var
|
|
14
|
+
var _Control = _interopRequireDefault(require("./Control"));
|
|
15
15
|
var _encodedSvgs = require("./assets/encodedSvgs");
|
|
16
16
|
var _utils = require("../utils");
|
|
17
17
|
var _PriceButton = _interopRequireDefault(require("./PriceButton"));
|
|
@@ -195,7 +195,7 @@ function Map(_ref) {
|
|
|
195
195
|
map.dragging.disable();
|
|
196
196
|
}
|
|
197
197
|
}, [mode, map]);
|
|
198
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(
|
|
198
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Control.default, {
|
|
199
199
|
position: "bottomright"
|
|
200
200
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
201
201
|
className: "legendBox"
|
|
@@ -236,7 +236,7 @@ function Map(_ref) {
|
|
|
236
236
|
src: _encodedSvgs.userIcon,
|
|
237
237
|
width: 15,
|
|
238
238
|
height: 15
|
|
239
|
-
}), /*#__PURE__*/_react.default.createElement("p", null, "membership seats"))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)))), /*#__PURE__*/_react.default.createElement(
|
|
239
|
+
}), /*#__PURE__*/_react.default.createElement("p", null, "membership seats"))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)))), /*#__PURE__*/_react.default.createElement(_Control.default, {
|
|
240
240
|
position: "topleft"
|
|
241
241
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
242
242
|
className: "extra-controls"
|
|
@@ -266,7 +266,7 @@ function Map(_ref) {
|
|
|
266
266
|
style: {
|
|
267
267
|
height: "17px"
|
|
268
268
|
}
|
|
269
|
-
})))), /*#__PURE__*/_react.default.createElement(
|
|
269
|
+
})))), /*#__PURE__*/_react.default.createElement(_Control.default, {
|
|
270
270
|
position: "topleft"
|
|
271
271
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
272
272
|
className: "extra-controls full-screen-control"
|
|
@@ -281,7 +281,7 @@ function Map(_ref) {
|
|
|
281
281
|
style: {
|
|
282
282
|
height: "24px"
|
|
283
283
|
}
|
|
284
|
-
})))), canMultiSelect && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(
|
|
284
|
+
})))), canMultiSelect && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Control.default, {
|
|
285
285
|
position: "bottomleft"
|
|
286
286
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
287
287
|
className: "extra-controls multi-select-control"
|
|
@@ -361,7 +361,7 @@ function Map(_ref) {
|
|
|
361
361
|
onMounted: drawInstance => {
|
|
362
362
|
drawRef.current = drawInstance;
|
|
363
363
|
}
|
|
364
|
-
}))), /*#__PURE__*/_react.default.createElement(
|
|
364
|
+
}))), /*#__PURE__*/_react.default.createElement(_Control.default, {
|
|
365
365
|
position: "topright"
|
|
366
366
|
}, /*#__PURE__*/_react.default.createElement("button", {
|
|
367
367
|
title: "Close full screen",
|
|
@@ -39,7 +39,15 @@ const SeatingPlan = _ref => {
|
|
|
39
39
|
connectedShowings,
|
|
40
40
|
areaName,
|
|
41
41
|
promoCode,
|
|
42
|
-
bookingMode = _utils.bookingModes.SHOPSITE
|
|
42
|
+
bookingMode = _utils.bookingModes.SHOPSITE,
|
|
43
|
+
theme = {
|
|
44
|
+
accent: "#6366f1",
|
|
45
|
+
accentDark: "#3730a3",
|
|
46
|
+
accentLight: "#e0e7ff",
|
|
47
|
+
flexiAccent: "#e32664",
|
|
48
|
+
flexiAccentDark: "#ffd3e2",
|
|
49
|
+
flexiAccentLight: "#be003f"
|
|
50
|
+
}
|
|
43
51
|
} = _ref;
|
|
44
52
|
const [initialiseMessage, setInitialiseMessage] = (0, _react.useState)("Initialising seating plan...");
|
|
45
53
|
const [isReloading, setIsReloading] = (0, _react.useState)(false);
|
|
@@ -461,19 +469,30 @@ const SeatingPlan = _ref => {
|
|
|
461
469
|
setPricingPopupOpen(false);
|
|
462
470
|
setSelectedSeats([]);
|
|
463
471
|
};
|
|
472
|
+
const themeStyles = {
|
|
473
|
+
"--accent": theme.accent,
|
|
474
|
+
"--accent-dark": theme.accentDark,
|
|
475
|
+
"--accent-light": theme.accentLight,
|
|
476
|
+
"--flexi-accent": theme.flexiAccent,
|
|
477
|
+
"--flexi-accent-light": theme.flexiAccentLight,
|
|
478
|
+
"--flexi-accent-dark": theme.flexiAccentDark
|
|
479
|
+
};
|
|
464
480
|
|
|
465
481
|
// return seating plan
|
|
466
482
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
467
483
|
className: "seating-plan-root",
|
|
468
|
-
id: "seating-plan-root"
|
|
484
|
+
id: "seating-plan-root",
|
|
485
|
+
style: themeStyles
|
|
469
486
|
}, error ? /*#__PURE__*/_react.default.createElement("div", {
|
|
470
487
|
className: "loading"
|
|
471
488
|
}, /*#__PURE__*/_react.default.createElement("h1", null, "OOPS!"), /*#__PURE__*/_react.default.createElement("div", null, error.response.data.message)) : position && area === areaId ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, backdropContainer && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement("div", {
|
|
472
489
|
className: "seating-plan-backdrop ".concat(isFullScreen ? "full-screen" : ""),
|
|
473
|
-
onClick: () => setIsFullScreen(false)
|
|
490
|
+
onClick: () => setIsFullScreen(false),
|
|
491
|
+
style: themeStyles
|
|
474
492
|
}), backdropContainer), mapContainer && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement("div", {
|
|
475
493
|
className: "seating-plan-container ".concat(isFullScreen ? "full-screen" : ""),
|
|
476
|
-
"data-mode": mode
|
|
494
|
+
"data-mode": mode,
|
|
495
|
+
style: themeStyles
|
|
477
496
|
}, pricingPopupOpen && canMultiSelect && /*#__PURE__*/_react.default.createElement(_PricingPopup.default, {
|
|
478
497
|
cancelPriceSelect: cancelPriceSelect,
|
|
479
498
|
groupedSelectedSeats: groupedSelectedSeats,
|
|
@@ -27,12 +27,12 @@ button {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
.seating-plan-container {
|
|
30
|
-
--accent:
|
|
31
|
-
--accent-dark:
|
|
32
|
-
--accent-light:
|
|
33
|
-
--flexi-accent:
|
|
34
|
-
--flexi-accent-light:
|
|
35
|
-
--flexi-accent-dark:
|
|
30
|
+
/* --accent: #6366f1;
|
|
31
|
+
--accent-dark: #3730a3;
|
|
32
|
+
--accent-light: #e0e7ff;
|
|
33
|
+
--flexi-accent: #e32664;
|
|
34
|
+
--flexi-accent-light: #ffd3e2;
|
|
35
|
+
--flexi-accent-dark: #be003f; */
|
|
36
36
|
font-family: inherit;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -41,6 +41,7 @@ button {
|
|
|
41
41
|
padding: 0.5rem 0.8rem;
|
|
42
42
|
border-radius: 3px;
|
|
43
43
|
text-align: left;
|
|
44
|
+
color: #333;
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
.legend-header {
|