@royaloperahouse/chord 1.12.4-b-chord-development → 1.12.4-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 +54 -3
- 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 +54 -3
- package/dist/chord.esm.js.map +1 -1
- package/dist/helpers/userDevices.d.ts +1 -0
- package/dist/types/navigation.d.ts +5 -0
- package/package.json +1 -1
|
@@ -4075,9 +4075,14 @@ var Footer = function Footer(_ref) {
|
|
|
4075
4075
|
}, additionalInfo)))));
|
|
4076
4076
|
};
|
|
4077
4077
|
|
|
4078
|
+
var IOSPlatforms = ['iPhone', 'iPad'];
|
|
4079
|
+
var isIOSDevice = function isIOSDevice() {
|
|
4080
|
+
return IOSPlatforms.includes(navigator.platform);
|
|
4081
|
+
};
|
|
4082
|
+
|
|
4078
4083
|
var _templateObject$x, _templateObject2$i, _templateObject3$b, _templateObject4$6, _templateObject5$4, _templateObject6$4;
|
|
4079
4084
|
var LIST_ITEM_GAP = 32;
|
|
4080
|
-
var AnchorTabbarWrapper = /*#__PURE__*/styled__default.div(_templateObject$x || (_templateObject$x = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n
|
|
4085
|
+
var AnchorTabbarWrapper = /*#__PURE__*/styled__default.div(_templateObject$x || (_templateObject$x = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: sticky;\n width: 100%;\n top: 0;\n background-color: var(--base-color-white);\n z-index: ", ";\n"])), zIndexes.anchor);
|
|
4081
4086
|
var TabsGrid = /*#__PURE__*/styled__default(Grid)(_templateObject2$i || (_templateObject2$i = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: var(--anchor-tabs-height);\n"])));
|
|
4082
4087
|
var TabsWrapper = /*#__PURE__*/styled__default.div(_templateObject3$b || (_templateObject3$b = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n"])));
|
|
4083
4088
|
var TabsList = /*#__PURE__*/styled__default.ul(_templateObject4$6 || (_templateObject4$6 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: ", ";\n display: flex;\n gap: ", "px;\n justify-content: ", ";\n align-items: center;\n list-style: none;\n padding: 0;\n margin: 0;\n height: var(--anchor-tabs-height);\n white-space: nowrap;\n overflow: scroll;\n scrollbar-width: none;\n ::-webkit-scrollbar {\n display: none;\n }\n scroll-behavior: smooth;\n\n @media ", " {\n background: linear-gradient(\n 135deg,\n rgba(255, 255, 255, 1) 0%,\n rgba(255, 255, 255, 0.48) 85%,\n rgba(235, 235, 235, 0.4) 99%,\n rgba(255, 255, 255, 0.39) 100%\n );\n }\n\n @media ", " {\n & {\n width: ", ";\n }\n }\n"])), function (_ref) {
|
|
@@ -4102,8 +4107,10 @@ var _excluded$7 = ["id", "text"];
|
|
|
4102
4107
|
var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
4103
4108
|
var tabs = _ref.tabs,
|
|
4104
4109
|
onTabClick = _ref.onTabClick,
|
|
4105
|
-
activeTab = _ref.activeTab
|
|
4110
|
+
activeTab = _ref.activeTab,
|
|
4111
|
+
topOffsetForIOS = _ref.topOffsetForIOS;
|
|
4106
4112
|
var tabListRef = React.useRef(null);
|
|
4113
|
+
var wrapperRef = React.useRef(null);
|
|
4107
4114
|
|
|
4108
4115
|
var _useState = React.useState(activeTab || ''),
|
|
4109
4116
|
selectedItem = _useState[0],
|
|
@@ -4121,6 +4128,7 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4121
4128
|
canScrollToRight = _useState4[0],
|
|
4122
4129
|
setCanScrollToRight = _useState4[1];
|
|
4123
4130
|
|
|
4131
|
+
var timer = null;
|
|
4124
4132
|
var hasTwoArrows = canScrollToRight && canScrollToLeft;
|
|
4125
4133
|
|
|
4126
4134
|
var isSelectedItem = function isSelectedItem(id) {
|
|
@@ -4149,6 +4157,46 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4149
4157
|
return width;
|
|
4150
4158
|
};
|
|
4151
4159
|
|
|
4160
|
+
var changeWrapperVisibilityOnOIS = function changeWrapperVisibilityOnOIS(showWrapper, topOffset) {
|
|
4161
|
+
if (showWrapper === void 0) {
|
|
4162
|
+
showWrapper = false;
|
|
4163
|
+
}
|
|
4164
|
+
|
|
4165
|
+
var wrapperEl = wrapperRef.current;
|
|
4166
|
+
wrapperEl.style.position = 'absolute';
|
|
4167
|
+
wrapperEl.style.visibility = showWrapper && topOffset !== undefined ? 'visible' : 'hidden';
|
|
4168
|
+
if (showWrapper && topOffset !== undefined) wrapperEl.style.top = topOffset + "px";
|
|
4169
|
+
};
|
|
4170
|
+
|
|
4171
|
+
var handleScrollOnIOS = function handleScrollOnIOS() {
|
|
4172
|
+
var topOffset = topOffsetForIOS;
|
|
4173
|
+
|
|
4174
|
+
if (wrapperRef.current && window.pageYOffset > topOffset) {
|
|
4175
|
+
changeWrapperVisibilityOnOIS();
|
|
4176
|
+
} else if (wrapperRef.current && window.pageYOffset < topOffset) {
|
|
4177
|
+
changeWrapperVisibilityOnOIS(true, 0);
|
|
4178
|
+
}
|
|
4179
|
+
|
|
4180
|
+
if (timer !== null) clearTimeout(timer);
|
|
4181
|
+
timer = setTimeout(function () {
|
|
4182
|
+
if (window.pageYOffset > topOffset && wrapperRef.current) {
|
|
4183
|
+
changeWrapperVisibilityOnOIS(true, window.pageYOffset - topOffset);
|
|
4184
|
+
}
|
|
4185
|
+
}, 300);
|
|
4186
|
+
}; // We use this behavior only on iOS devices because there is a known issue that
|
|
4187
|
+
// sticky elements lose their stickiness when a keyboard appears on the screen
|
|
4188
|
+
|
|
4189
|
+
|
|
4190
|
+
React.useEffect(function () {
|
|
4191
|
+
if (topOffsetForIOS && isIOSDevice()) {
|
|
4192
|
+
document.addEventListener('scroll', handleScrollOnIOS);
|
|
4193
|
+
return function () {
|
|
4194
|
+
document.removeEventListener('scroll', handleScrollOnIOS);
|
|
4195
|
+
};
|
|
4196
|
+
}
|
|
4197
|
+
|
|
4198
|
+
return;
|
|
4199
|
+
}, []);
|
|
4152
4200
|
React.useEffect(function () {
|
|
4153
4201
|
setTimeout(function () {
|
|
4154
4202
|
if (tabListRef.current) tabListRef.current.scrollLeft += getScrollWidth();
|
|
@@ -4245,7 +4293,10 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4245
4293
|
setCanScrollToRight(scrollLeft + clientWidth + LIST_ITEM_GAP < scrollWidth);
|
|
4246
4294
|
};
|
|
4247
4295
|
|
|
4248
|
-
return /*#__PURE__*/React__default.createElement(AnchorTabbarWrapper,
|
|
4296
|
+
return /*#__PURE__*/React__default.createElement(AnchorTabbarWrapper, {
|
|
4297
|
+
ref: wrapperRef,
|
|
4298
|
+
id: "AnchorTabbarWrapper"
|
|
4299
|
+
}, /*#__PURE__*/React__default.createElement(TabsGrid, null, /*#__PURE__*/React__default.createElement(GridItem, {
|
|
4249
4300
|
columnStartDesktop: tabsColumnStart,
|
|
4250
4301
|
columnSpanDesktop: tabsColumnSpan,
|
|
4251
4302
|
columnStartDevice: 2,
|