@royaloperahouse/chord 1.12.4-a-chord-development → 1.12.4-c-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 +68 -7
- 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 +68 -7
- package/dist/chord.esm.js.map +1 -1
- package/dist/components/organisms/AnchorTabBar/AnchorTabBar.style.d.ts +2 -2
- package/dist/helpers/userDevices.d.ts +1 -0
- package/dist/types/navigation.d.ts +15 -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 position: sticky;\n top: 0;\n background-color: var(--base-color-white);\n z-index: ", ";\n"])), zIndexes.anchor);
|
|
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) {
|
|
@@ -4087,10 +4092,14 @@ var TabsList = /*#__PURE__*/styled__default.ul(_templateObject4$6 || (_templateO
|
|
|
4087
4092
|
var tabsOverflow = _ref2.tabsOverflow;
|
|
4088
4093
|
return tabsOverflow ? 'start' : 'center';
|
|
4089
4094
|
}, devices.mobileAndTablet, devices.mobile, function (_ref3) {
|
|
4090
|
-
var tabsOverflow = _ref3.tabsOverflow
|
|
4091
|
-
|
|
4095
|
+
var tabsOverflow = _ref3.tabsOverflow,
|
|
4096
|
+
hasTwoArrows = _ref3.hasTwoArrows;
|
|
4097
|
+
return tabsOverflow && hasTwoArrows ? 'calc(100% - 50px)' : '100%';
|
|
4098
|
+
});
|
|
4099
|
+
var ArrowsContainer = /*#__PURE__*/styled__default.div(_templateObject5$4 || (_templateObject5$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: ", ";\n height: var(--anchor-tabs-height);\n background-color: var(--base-color-white);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n"])), function (_ref4) {
|
|
4100
|
+
var fullWidth = _ref4.fullWidth;
|
|
4101
|
+
return fullWidth ? '74px' : '46px';
|
|
4092
4102
|
});
|
|
4093
|
-
var ArrowsContainer = /*#__PURE__*/styled__default.div(_templateObject5$4 || (_templateObject5$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 74px;\n height: var(--anchor-tabs-height);\n background-color: var(--base-color-white);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n"])));
|
|
4094
4103
|
var ArrowWrapper = /*#__PURE__*/styled__default.div(_templateObject6$4 || (_templateObject6$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 24px;\n height: 24px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: flex-center;\n\n :hover {\n && svg path {\n fill: var(--base-color-primary);\n }\n }\n"])));
|
|
4095
4104
|
|
|
4096
4105
|
var _excluded$7 = ["id", "text"];
|
|
@@ -4098,8 +4107,10 @@ var _excluded$7 = ["id", "text"];
|
|
|
4098
4107
|
var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
4099
4108
|
var tabs = _ref.tabs,
|
|
4100
4109
|
onTabClick = _ref.onTabClick,
|
|
4101
|
-
activeTab = _ref.activeTab
|
|
4110
|
+
activeTab = _ref.activeTab,
|
|
4111
|
+
topOffsetForIOS = _ref.topOffsetForIOS;
|
|
4102
4112
|
var tabListRef = React.useRef(null);
|
|
4113
|
+
var wrapperRef = React.useRef(null);
|
|
4103
4114
|
|
|
4104
4115
|
var _useState = React.useState(activeTab || ''),
|
|
4105
4116
|
selectedItem = _useState[0],
|
|
@@ -4117,6 +4128,9 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4117
4128
|
canScrollToRight = _useState4[0],
|
|
4118
4129
|
setCanScrollToRight = _useState4[1];
|
|
4119
4130
|
|
|
4131
|
+
var timer = null;
|
|
4132
|
+
var hasTwoArrows = canScrollToRight && canScrollToLeft;
|
|
4133
|
+
|
|
4120
4134
|
var isSelectedItem = function isSelectedItem(id) {
|
|
4121
4135
|
return id === selectedItem;
|
|
4122
4136
|
};
|
|
@@ -4143,6 +4157,47 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4143
4157
|
return width;
|
|
4144
4158
|
};
|
|
4145
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 ? 'visible' : 'hidden';
|
|
4168
|
+
if (showWrapper && topOffset) wrapperEl.style.top = topOffset + "px";
|
|
4169
|
+
};
|
|
4170
|
+
|
|
4171
|
+
var handleScrollOnIOS = function handleScrollOnIOS() {
|
|
4172
|
+
var topOffset = topOffsetForIOS;
|
|
4173
|
+
console.log(window.pageYOffset);
|
|
4174
|
+
|
|
4175
|
+
if (wrapperRef.current && window.pageYOffset > topOffset) {
|
|
4176
|
+
changeWrapperVisibilityOnOIS();
|
|
4177
|
+
} else if (wrapperRef.current && window.pageYOffset < topOffset) {
|
|
4178
|
+
changeWrapperVisibilityOnOIS(true, topOffset);
|
|
4179
|
+
}
|
|
4180
|
+
|
|
4181
|
+
if (timer !== null) clearTimeout(timer);
|
|
4182
|
+
timer = setTimeout(function () {
|
|
4183
|
+
if (window.pageYOffset > topOffset && wrapperRef.current) {
|
|
4184
|
+
changeWrapperVisibilityOnOIS(true, window.pageYOffset);
|
|
4185
|
+
}
|
|
4186
|
+
}, 300);
|
|
4187
|
+
}; // We use this behavior only on iOS devices because there is a known issue that
|
|
4188
|
+
// sticky elements lose their stickiness when a keyboard appears on the screen
|
|
4189
|
+
|
|
4190
|
+
|
|
4191
|
+
React.useEffect(function () {
|
|
4192
|
+
if (topOffsetForIOS && isIOSDevice()) {
|
|
4193
|
+
document.addEventListener('scroll', handleScrollOnIOS);
|
|
4194
|
+
return function () {
|
|
4195
|
+
document.removeEventListener('scroll', handleScrollOnIOS);
|
|
4196
|
+
};
|
|
4197
|
+
}
|
|
4198
|
+
|
|
4199
|
+
return;
|
|
4200
|
+
}, []);
|
|
4146
4201
|
React.useEffect(function () {
|
|
4147
4202
|
setTimeout(function () {
|
|
4148
4203
|
if (tabListRef.current) tabListRef.current.scrollLeft += getScrollWidth();
|
|
@@ -4239,7 +4294,10 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4239
4294
|
setCanScrollToRight(scrollLeft + clientWidth + LIST_ITEM_GAP < scrollWidth);
|
|
4240
4295
|
};
|
|
4241
4296
|
|
|
4242
|
-
return /*#__PURE__*/React__default.createElement(AnchorTabbarWrapper,
|
|
4297
|
+
return /*#__PURE__*/React__default.createElement(AnchorTabbarWrapper, {
|
|
4298
|
+
ref: wrapperRef,
|
|
4299
|
+
id: "AnchorTabbarWrapper"
|
|
4300
|
+
}, /*#__PURE__*/React__default.createElement(TabsGrid, null, /*#__PURE__*/React__default.createElement(GridItem, {
|
|
4243
4301
|
columnStartDesktop: tabsColumnStart,
|
|
4244
4302
|
columnSpanDesktop: tabsColumnSpan,
|
|
4245
4303
|
columnStartDevice: 2,
|
|
@@ -4247,6 +4305,7 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4247
4305
|
}, /*#__PURE__*/React__default.createElement(TabsWrapper, {
|
|
4248
4306
|
"data-testid": "anchor-tabs"
|
|
4249
4307
|
}, /*#__PURE__*/React__default.createElement(TabsList, {
|
|
4308
|
+
hasTwoArrows: hasTwoArrows,
|
|
4250
4309
|
ref: tabListRef,
|
|
4251
4310
|
tabsOverflow: tabsOverflow,
|
|
4252
4311
|
onScroll: onTabsScroll
|
|
@@ -4266,7 +4325,9 @@ var AnchorTabBar = function AnchorTabBar(_ref) {
|
|
|
4266
4325
|
},
|
|
4267
4326
|
tabIndex: 0
|
|
4268
4327
|
}, rest), text));
|
|
4269
|
-
})), tabsOverflow ? /*#__PURE__*/React__default.createElement(ArrowsContainer,
|
|
4328
|
+
})), tabsOverflow ? /*#__PURE__*/React__default.createElement(ArrowsContainer, {
|
|
4329
|
+
fullWidth: hasTwoArrows
|
|
4330
|
+
}, canScrollToLeft ? /*#__PURE__*/React__default.createElement(ArrowWrapper, {
|
|
4270
4331
|
onClick: scrollToLeft
|
|
4271
4332
|
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
4272
4333
|
iconName: "Arrow",
|