@royaloperahouse/chord 1.18.2-b-chord-development → 1.18.2-d-chord-development
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/dist/chord.cjs.development.js +149 -17
- package/dist/chord.cjs.development.js.map +1 -1
- package/dist/chord.cjs.production.min.js +1 -1
- package/dist/chord.cjs.production.min.js.map +1 -1
- package/dist/chord.esm.js +149 -17
- package/dist/chord.esm.js.map +1 -1
- package/dist/components/atoms/Basket/Basket.d.ts +1 -1
- package/dist/components/atoms/Basket/helpers.d.ts +3 -0
- package/dist/components/atoms/Basket/hooks.d.ts +7 -0
- package/dist/components/molecules/NavTop/NavTop.d.ts +1 -1
- package/dist/components/molecules/PageHeading/Compact/Compact.d.ts +1 -0
- package/dist/helpers/devices.d.ts +1 -0
- package/dist/types/navigation.d.ts +8 -0
- package/package.json +1 -1
|
@@ -3513,7 +3513,7 @@ var isIOS = function isIOS() {
|
|
|
3513
3513
|
|
|
3514
3514
|
|
|
3515
3515
|
var useIOS = function useIOS() {
|
|
3516
|
-
var _useState = React.useState(
|
|
3516
|
+
var _useState = React.useState(isIOS()),
|
|
3517
3517
|
IOS = _useState[0],
|
|
3518
3518
|
setIOS = _useState[1];
|
|
3519
3519
|
|
|
@@ -3524,6 +3524,40 @@ var useIOS = function useIOS() {
|
|
|
3524
3524
|
return IOS;
|
|
3525
3525
|
};
|
|
3526
3526
|
|
|
3527
|
+
var setScreenWidth = function setScreenWidth(setterFunction) {
|
|
3528
|
+
if (typeof innerWidth !== undefined && innerWidth < breakpoints.sm) {
|
|
3529
|
+
setterFunction(true);
|
|
3530
|
+
return;
|
|
3531
|
+
}
|
|
3532
|
+
|
|
3533
|
+
setterFunction(false);
|
|
3534
|
+
return;
|
|
3535
|
+
};
|
|
3536
|
+
|
|
3537
|
+
var useWidth = function useWidth() {
|
|
3538
|
+
var _useState2 = React.useState(function () {
|
|
3539
|
+
if (typeof innerWidth !== undefined && innerWidth < breakpoints.sm) {
|
|
3540
|
+
return true;
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3543
|
+
return false;
|
|
3544
|
+
}),
|
|
3545
|
+
isPortraitMobile = _useState2[0],
|
|
3546
|
+
setIsPortraitMobile = _useState2[1];
|
|
3547
|
+
|
|
3548
|
+
React.useEffect(function () {
|
|
3549
|
+
var callSetScreenWidth = function callSetScreenWidth() {
|
|
3550
|
+
return setScreenWidth(setIsPortraitMobile);
|
|
3551
|
+
};
|
|
3552
|
+
|
|
3553
|
+
if (typeof window.innerWidth !== undefined) window.addEventListener('resize', callSetScreenWidth);
|
|
3554
|
+
return function () {
|
|
3555
|
+
return window.removeEventListener('resize', callSetScreenWidth);
|
|
3556
|
+
};
|
|
3557
|
+
}, []);
|
|
3558
|
+
return isPortraitMobile;
|
|
3559
|
+
};
|
|
3560
|
+
|
|
3527
3561
|
var VideoControls = function VideoControls(_ref) {
|
|
3528
3562
|
var videoElementId = _ref.videoElementId,
|
|
3529
3563
|
_ref$defaultMuted = _ref.defaultMuted,
|
|
@@ -3709,8 +3743,96 @@ var SvgContainer = /*#__PURE__*/styled__default.div(_templateObject2$f || (_temp
|
|
|
3709
3743
|
var NumContainer = /*#__PURE__*/styled__default.div(_templateObject3$9 || (_templateObject3$9 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: center;\n width: 12px;\n height: 12px;\n position: absolute;\n top: 8px;\n margin-left: 6px;\n\n & .basket-num {\n color: white;\n font-size: 10px;\n font-family: var(--font-family-navigation);\n }\n"])));
|
|
3710
3744
|
var BasketText = /*#__PURE__*/styled__default.a(_templateObject4$5 || (_templateObject4$5 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n font-size: var(--font-size-navigation);\n font-family: var(--font-family-navigation);\n color: var(--base-color-black);\n margin-left: 6px;\n text-decoration: none;\n"])));
|
|
3711
3745
|
|
|
3746
|
+
var getSecondsUntil = function getSecondsUntil(expiryUnixTimestamp) {
|
|
3747
|
+
if (!expiryUnixTimestamp) return 0;
|
|
3748
|
+
var now = Date.now();
|
|
3749
|
+
var expiry = new Date(expiryUnixTimestamp * 1000);
|
|
3750
|
+
var diff = Math.round((expiry.getTime() - now) / 1000);
|
|
3751
|
+
return diff > 0 ? diff : 0;
|
|
3752
|
+
};
|
|
3753
|
+
var formatTime = function formatTime(seconds) {
|
|
3754
|
+
if (seconds > 60) {
|
|
3755
|
+
return Math.ceil(seconds / 60) + " mins";
|
|
3756
|
+
}
|
|
3757
|
+
|
|
3758
|
+
return seconds + " sec" + (seconds === 1 ? '' : 's');
|
|
3759
|
+
};
|
|
3760
|
+
var checkTimeRed = function checkTimeRed(seconds) {
|
|
3761
|
+
if (seconds <= 0) {
|
|
3762
|
+
return false;
|
|
3763
|
+
}
|
|
3764
|
+
|
|
3765
|
+
return seconds / 60 <= 5;
|
|
3766
|
+
};
|
|
3767
|
+
|
|
3768
|
+
var useBasket = function useBasket(expiryUnixTimestamp, numItems) {
|
|
3769
|
+
var _useState = React.useState(),
|
|
3770
|
+
basketText = _useState[0],
|
|
3771
|
+
setBasketText = _useState[1];
|
|
3772
|
+
|
|
3773
|
+
var _useState2 = React.useState(),
|
|
3774
|
+
basketIsActive = _useState2[0],
|
|
3775
|
+
setBasketIsActive = _useState2[1];
|
|
3776
|
+
|
|
3777
|
+
var _useState3 = React.useState(numItems != null ? numItems : 0),
|
|
3778
|
+
basketNumItems = _useState3[0],
|
|
3779
|
+
setBasketNumItems = _useState3[1];
|
|
3780
|
+
|
|
3781
|
+
var _useState4 = React.useState(getSecondsUntil(expiryUnixTimestamp)),
|
|
3782
|
+
seconds = _useState4[0],
|
|
3783
|
+
setSeconds = _useState4[1];
|
|
3784
|
+
|
|
3785
|
+
var _useState5 = React.useState(),
|
|
3786
|
+
timer = _useState5[0],
|
|
3787
|
+
setTimer = _useState5[1];
|
|
3788
|
+
|
|
3789
|
+
React.useEffect(function () {
|
|
3790
|
+
if (!numItems) return;
|
|
3791
|
+
setBasketNumItems(numItems);
|
|
3792
|
+
}, [numItems]);
|
|
3793
|
+
React.useEffect(function () {
|
|
3794
|
+
if (!expiryUnixTimestamp) return;
|
|
3795
|
+
setSeconds(getSecondsUntil(expiryUnixTimestamp));
|
|
3796
|
+
}, [expiryUnixTimestamp]);
|
|
3797
|
+
React.useEffect(function () {
|
|
3798
|
+
if (timer) {
|
|
3799
|
+
clearInterval(timer); // clears the old timer before setting a new one
|
|
3800
|
+
}
|
|
3801
|
+
|
|
3802
|
+
if (!expiryUnixTimestamp || numItems === 0) return function () {
|
|
3803
|
+
return undefined;
|
|
3804
|
+
};
|
|
3805
|
+
var interval = setInterval(function () {
|
|
3806
|
+
setSeconds(getSecondsUntil(expiryUnixTimestamp));
|
|
3807
|
+
}, 1000);
|
|
3808
|
+
setTimer(interval);
|
|
3809
|
+
return function () {
|
|
3810
|
+
return clearInterval(interval);
|
|
3811
|
+
};
|
|
3812
|
+
}, [expiryUnixTimestamp]);
|
|
3813
|
+
React.useEffect(function () {
|
|
3814
|
+
if (!timer) return;
|
|
3815
|
+
|
|
3816
|
+
if (seconds > 0) {
|
|
3817
|
+
setBasketText(formatTime(seconds));
|
|
3818
|
+
setBasketIsActive(checkTimeRed(seconds));
|
|
3819
|
+
} else {
|
|
3820
|
+
clearInterval(timer);
|
|
3821
|
+
setBasketNumItems(0);
|
|
3822
|
+
setBasketText('');
|
|
3823
|
+
setBasketIsActive(false);
|
|
3824
|
+
}
|
|
3825
|
+
}, [seconds, timer]);
|
|
3826
|
+
return {
|
|
3827
|
+
basketText: basketText,
|
|
3828
|
+
basketNumItems: basketNumItems,
|
|
3829
|
+
basketIsActive: basketIsActive
|
|
3830
|
+
};
|
|
3831
|
+
};
|
|
3832
|
+
|
|
3712
3833
|
var Basket$1 = function Basket(_ref) {
|
|
3713
3834
|
var text = _ref.text,
|
|
3835
|
+
expiryTime = _ref.expiryTime,
|
|
3714
3836
|
link = _ref.link,
|
|
3715
3837
|
_ref$selected = _ref.selected,
|
|
3716
3838
|
selected = _ref$selected === void 0 ? false : _ref$selected,
|
|
@@ -3718,8 +3840,7 @@ var Basket$1 = function Basket(_ref) {
|
|
|
3718
3840
|
numItems = _ref$numItems === void 0 ? 0 : _ref$numItems,
|
|
3719
3841
|
onClick = _ref.onClick,
|
|
3720
3842
|
_ref$colorPrimary = _ref.colorPrimary,
|
|
3721
|
-
colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary
|
|
3722
|
-
isActive = _ref.isActive;
|
|
3843
|
+
colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary;
|
|
3723
3844
|
|
|
3724
3845
|
var onClickHandler = function onClickHandler() {
|
|
3725
3846
|
if (onClick) {
|
|
@@ -3727,29 +3848,35 @@ var Basket$1 = function Basket(_ref) {
|
|
|
3727
3848
|
}
|
|
3728
3849
|
};
|
|
3729
3850
|
|
|
3851
|
+
var _useBasket = useBasket(expiryTime, numItems),
|
|
3852
|
+
basketText = _useBasket.basketText,
|
|
3853
|
+
basketNumItems = _useBasket.basketNumItems,
|
|
3854
|
+
basketIsActive = _useBasket.basketIsActive;
|
|
3855
|
+
|
|
3856
|
+
var isEmpty = expiryTime ? basketNumItems <= 0 : numItems <= 0;
|
|
3857
|
+
|
|
3730
3858
|
var onKeyDownHandler = function onKeyDownHandler(e) {
|
|
3731
3859
|
if (e.key === 'Enter') {
|
|
3732
3860
|
onClickHandler();
|
|
3733
3861
|
}
|
|
3734
3862
|
};
|
|
3735
3863
|
|
|
3736
|
-
var empty = numItems <= 0;
|
|
3737
3864
|
return /*#__PURE__*/React__default.createElement(BasketContainer, {
|
|
3738
3865
|
selected: selected,
|
|
3739
3866
|
onClick: onClickHandler,
|
|
3740
3867
|
onKeyDown: onKeyDownHandler,
|
|
3741
3868
|
colorPrimary: colorPrimary,
|
|
3742
|
-
isActive:
|
|
3869
|
+
isActive: basketIsActive,
|
|
3743
3870
|
tabIndex: 0
|
|
3744
|
-
}, /*#__PURE__*/React__default.createElement(SvgContainer, null,
|
|
3871
|
+
}, /*#__PURE__*/React__default.createElement(SvgContainer, null, isEmpty ? /*#__PURE__*/React__default.createElement(Icon, {
|
|
3745
3872
|
iconName: "Basket"
|
|
3746
3873
|
}) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Icon, {
|
|
3747
3874
|
iconName: "BasketFull"
|
|
3748
3875
|
}), /*#__PURE__*/React__default.createElement(NumContainer, null, /*#__PURE__*/React__default.createElement("span", {
|
|
3749
3876
|
className: "basket-num"
|
|
3750
|
-
}, numItems)))), /*#__PURE__*/React__default.createElement("div", null, !
|
|
3877
|
+
}, expiryTime ? basketNumItems : numItems)))), /*#__PURE__*/React__default.createElement("div", null, !isEmpty ? /*#__PURE__*/React__default.createElement(BasketText, {
|
|
3751
3878
|
"data-testid": "baskettext"
|
|
3752
|
-
}, text) : ''));
|
|
3879
|
+
}, expiryTime ? basketText : text) : ''));
|
|
3753
3880
|
};
|
|
3754
3881
|
|
|
3755
3882
|
var _templateObject$v, _templateObject2$g;
|
|
@@ -4013,6 +4140,7 @@ var NavTop = function NavTop(_ref) {
|
|
|
4013
4140
|
accountOptions = _ref.accountOptions,
|
|
4014
4141
|
onLink = _ref.onLink,
|
|
4015
4142
|
basketText = _ref.basketText,
|
|
4143
|
+
basketExpiryUnixTimestamp = _ref.basketExpiryUnixTimestamp,
|
|
4016
4144
|
basketLink = _ref.basketLink,
|
|
4017
4145
|
basketNumItems = _ref.basketNumItems,
|
|
4018
4146
|
basketIsActive = _ref.basketIsActive,
|
|
@@ -4028,6 +4156,7 @@ var NavTop = function NavTop(_ref) {
|
|
|
4028
4156
|
}), /*#__PURE__*/React__default.createElement(Basket$1, {
|
|
4029
4157
|
link: basketLink,
|
|
4030
4158
|
text: basketText,
|
|
4159
|
+
expiryTime: basketExpiryUnixTimestamp,
|
|
4031
4160
|
numItems: basketNumItems,
|
|
4032
4161
|
isActive: basketIsActive,
|
|
4033
4162
|
onClick: onLink,
|
|
@@ -6626,6 +6755,12 @@ var CompactHeaderBranding = function CompactHeaderBranding(_ref) {
|
|
|
6626
6755
|
};
|
|
6627
6756
|
|
|
6628
6757
|
var _excluded$k = ["text"];
|
|
6758
|
+
var getVideoPosterAttr = function getVideoPosterAttr(bgDesktopImg, bgDeviceImg) {
|
|
6759
|
+
var isIOS = useIOS();
|
|
6760
|
+
var isPortraitMobile = useWidth();
|
|
6761
|
+
if (!isIOS) return undefined;
|
|
6762
|
+
return isPortraitMobile ? bgDeviceImg || bgDesktopImg : bgDesktopImg;
|
|
6763
|
+
};
|
|
6629
6764
|
|
|
6630
6765
|
var PageHeadingCompact = function PageHeadingCompact(_ref) {
|
|
6631
6766
|
var title = _ref.title,
|
|
@@ -6636,7 +6771,6 @@ var PageHeadingCompact = function PageHeadingCompact(_ref) {
|
|
|
6636
6771
|
bgUrlDesktop = _ref.bgUrlDesktop,
|
|
6637
6772
|
bgUrlDevice = _ref.bgUrlDevice,
|
|
6638
6773
|
videoUrlDesktop = _ref.videoUrlDesktop,
|
|
6639
|
-
videoUrlMobile = _ref.videoUrlMobile,
|
|
6640
6774
|
_ref$bgImageAltText = _ref.bgImageAltText,
|
|
6641
6775
|
bgImageAltText = _ref$bgImageAltText === void 0 ? '' : _ref$bgImageAltText,
|
|
6642
6776
|
_ref$invert = _ref.invert,
|
|
@@ -6652,26 +6786,24 @@ var PageHeadingCompact = function PageHeadingCompact(_ref) {
|
|
|
6652
6786
|
|
|
6653
6787
|
var titleSize = title && title.length > 20 ? 4 : 3;
|
|
6654
6788
|
var videoElementId = 'compact-header-video';
|
|
6789
|
+
var videoPosterAttr = getVideoPosterAttr(bgUrlDesktop, bgUrlDevice);
|
|
6655
6790
|
return /*#__PURE__*/React__default.createElement(ComapctHeaderWrapper, null, sponsor ? /*#__PURE__*/React__default.createElement(SponsorWrapper, {
|
|
6656
6791
|
"data-testid": "compact-sponsor"
|
|
6657
6792
|
}, customSponsorImage ? /*#__PURE__*/React__default.createElement(Sponsorship, Object.assign({
|
|
6658
6793
|
"data-testid": "compact-custom-sponsor"
|
|
6659
6794
|
}, customSponsorImage, {
|
|
6660
6795
|
isCustomImage: true
|
|
6661
|
-
})) : /*#__PURE__*/React__default.createElement(Sponsorship, null)) : null, /*#__PURE__*/React__default.createElement(CompactHeaderAssetWrapper, null, videoUrlDesktop
|
|
6796
|
+
})) : /*#__PURE__*/React__default.createElement(Sponsorship, null)) : null, /*#__PURE__*/React__default.createElement(CompactHeaderAssetWrapper, null, videoUrlDesktop ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("video", {
|
|
6662
6797
|
loop: true,
|
|
6663
6798
|
muted: true,
|
|
6664
6799
|
playsInline: true,
|
|
6665
6800
|
"data-testid": "compact-video",
|
|
6666
|
-
id: videoElementId
|
|
6801
|
+
id: videoElementId,
|
|
6802
|
+
poster: videoPosterAttr
|
|
6667
6803
|
}, videoUrlDesktop && /*#__PURE__*/React__default.createElement("source", {
|
|
6668
|
-
src: videoUrlDesktop
|
|
6669
|
-
media: "" + devices.desktop
|
|
6670
|
-
}), videoUrlMobile && /*#__PURE__*/React__default.createElement("source", {
|
|
6671
|
-
src: videoUrlMobile,
|
|
6672
|
-
media: "" + devices.mobile
|
|
6804
|
+
src: videoUrlDesktop
|
|
6673
6805
|
}), /*#__PURE__*/React__default.createElement("img", {
|
|
6674
|
-
src:
|
|
6806
|
+
src: bgUrlDevice,
|
|
6675
6807
|
alt: bgImageAltText,
|
|
6676
6808
|
"data-testid": "compact-image"
|
|
6677
6809
|
})), /*#__PURE__*/React__default.createElement(VideoControls, {
|