@royaloperahouse/harmonic 0.12.0 → 0.12.1

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.
@@ -11818,7 +11818,7 @@ var _templateObject$1m, _templateObject2$14, _templateObject3$S, _templateObject
11818
11818
  var TableContainer = /*#__PURE__*/styled.table(_templateObject$1m || (_templateObject$1m = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n border-collapse: collapse;\n"])));
11819
11819
  var Container$6 = /*#__PURE__*/styled.div(_templateObject2$14 || (_templateObject2$14 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n overflow-x: auto;\n"])));
11820
11820
  var Wrapper$8 = /*#__PURE__*/styled.div(_templateObject3$S || (_templateObject3$S = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n width: 100%;\n"])));
11821
- var TableHeader = /*#__PURE__*/styled.th(_templateObject4$H || (_templateObject4$H = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 12px;\n text-align: left;\n text-transform: uppercase;\n border: 1px solid var(--color-primary-black);\n\n &:last-child {\n white-space: nowrap;\n width: auto;\n }\n\n &:not(:last-child) {\n width: ", ";\n }\n\n @media ", " {\n &:last-child {\n white-space: nowrap;\n }\n }\n\n @media ", " {\n min-width: 150px;\n\n &:last-child {\n white-space: normal;\n }\n }\n"])), function (props) {
11821
+ var TableHeader = /*#__PURE__*/styled.th(_templateObject4$H || (_templateObject4$H = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 12px;\n text-align: left;\n text-transform: capitalize;\n border: 1px solid var(--color-primary-black);\n\n &:last-child {\n white-space: nowrap;\n width: auto;\n }\n\n &:not(:last-child) {\n width: ", ";\n }\n\n @media ", " {\n &:last-child {\n white-space: nowrap;\n }\n }\n\n @media ", " {\n min-width: 150px;\n\n &:last-child {\n white-space: normal;\n }\n }\n"])), function (props) {
11822
11822
  return "calc(100% / " + (props.columns - 1) + ")";
11823
11823
  }, devices.tablet, devices.mobile);
11824
11824
  var TableCell = /*#__PURE__*/styled.td(_templateObject5$A || (_templateObject5$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n padding: 12px;\n text-align: left;\n vertical-align: middle;\n border: 1px solid var(--color-primary-black);\n\n &:last-child {\n width: auto;\n }\n\n &:not(:last-child) {\n width: ", ";\n }\n\n > span > svg {\n width: 24px;\n height: 24px;\n }\n\n @media ", " {\n min-width: 150px;\n }\n"])), function (props) {
@@ -11929,20 +11929,53 @@ var Table = function Table(_ref) {
11929
11929
  var _useState2 = useState(false),
11930
11930
  showScrollButtons = _useState2[0],
11931
11931
  setShowScrollButtons = _useState2[1];
11932
+ var tableRef = useRef(null);
11933
+ var _useState3 = useState(true),
11934
+ atStart = _useState3[0],
11935
+ setAtStart = _useState3[1];
11936
+ var _useState4 = useState(false),
11937
+ atEnd = _useState4[0],
11938
+ setAtEnd = _useState4[1];
11939
+ var checkScrollPosition = function checkScrollPosition() {
11940
+ if (tableRef.current) {
11941
+ var _tableRef$current = tableRef.current,
11942
+ scrollLeft = _tableRef$current.scrollLeft,
11943
+ scrollWidth = _tableRef$current.scrollWidth,
11944
+ clientWidth = _tableRef$current.clientWidth;
11945
+ setAtStart(scrollLeft === 0);
11946
+ setAtEnd(scrollLeft + clientWidth >= scrollWidth);
11947
+ }
11948
+ };
11949
+ var handleNext = function handleNext() {
11950
+ scrollTable(tableRef, 'right');
11951
+ };
11952
+ var handlePrev = function handlePrev() {
11953
+ scrollTable(tableRef, 'left');
11954
+ };
11932
11955
  var handlePageChange = function handlePageChange(page) {
11933
11956
  setCurrentPage(page - 1);
11934
11957
  };
11935
- var tableRef = useRef(null);
11936
11958
  useLayoutEffect(function () {
11937
11959
  var horizontalScroll = function horizontalScroll() {
11938
11960
  if (tableRef.current) {
11939
11961
  setShowScrollButtons(tableRef.current.scrollWidth > tableRef.current.clientWidth);
11962
+ checkScrollPosition();
11940
11963
  }
11941
11964
  };
11965
+ var handleScroll = function handleScroll() {
11966
+ checkScrollPosition();
11967
+ };
11942
11968
  horizontalScroll();
11943
11969
  window.addEventListener('resize', horizontalScroll);
11970
+ var table = tableRef.current;
11971
+ if (table) {
11972
+ table.addEventListener('scroll', handleScroll);
11973
+ }
11944
11974
  return function () {
11945
- return window.removeEventListener('resize', horizontalScroll);
11975
+ window.removeEventListener('resize', horizontalScroll);
11976
+ if (table) {
11977
+ table.removeEventListener('scroll', handleScroll);
11978
+ }
11946
11979
  };
11947
11980
  }, []);
11948
11981
  var totalRows = Array.isArray(children) ? children.length : 1;
@@ -11969,12 +12002,10 @@ var Table = function Table(_ref) {
11969
12002
  return /*#__PURE__*/React__default.createElement(Wrapper$8, {
11970
12003
  className: className
11971
12004
  }, showScrollButtons && (/*#__PURE__*/React__default.createElement(ScrollButtons, null, /*#__PURE__*/React__default.createElement(RotatorButtons, {
11972
- onClickPrev: function onClickPrev() {
11973
- return scrollTable(tableRef, 'left');
11974
- },
11975
- onClickNext: function onClickNext() {
11976
- return scrollTable(tableRef, 'right');
11977
- }
12005
+ onClickPrev: handlePrev,
12006
+ onClickNext: handleNext,
12007
+ availablePrev: !atStart,
12008
+ availableNext: !atEnd
11978
12009
  }))), /*#__PURE__*/React__default.createElement(Container$6, {
11979
12010
  role: "table",
11980
12011
  tabIndex: 0,