@commonsku/styles 1.17.1 → 1.17.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.
package/dist/index.cjs CHANGED
@@ -1221,7 +1221,7 @@ function GearIcon(_a) {
1221
1221
  React__default.default.createElement("path", { d: renderPath, fill: color }));
1222
1222
  }
1223
1223
 
1224
- var datepickerStyles = "\n.commonsku-styles-datepicker {\n &.react-datepicker-wrapper {\n width: 100%;\n }\n\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n\n .react-datepicker {\n border: 1px solid var(--color-primary1-60);\n outline: none;\n box-shadow: 1px 1px 0px var(--color-primary1-60),\n -1px -1px 0px var(--color-primary1-60),\n 1px -1px 0px var(--color-primary1-60),\n -1px 1px 0px var(--color-primary1-60);\n }\n\n .react-datepicker__current-month,\n .react-datepicker-time__header,\n .react-datepicker-year-header,\n .react-datepicker__header {\n padding-top: 8px;\n padding-bottom: 8px;\n }\n\n .react-datepicker__header,\n .react-datepicker__today-button {\n background: var(--color-neutrals-20);\n padding-top: 8px;\n padding-bottom: 8px;\n }\n\n .react-datepicker__header {\n border-bottom: none;\n }\n\n .react-datepicker__today-button {\n border-top: none;\n }\n\n .react-datepicker__day {\n outline: none;\n }\n\n .react-datepicker__day :not(\n .react-datepicker__day--outside-month,\n .react-datepicker__day--selected\n ) {\n color: var(--color-neutrals-90);\n }\n\n .react-datepicker__day:hover :not(.react-datepicker__day--selected),\n .react-datepicker__month-text:hover,\n .react-datepicker__quarter-text:hover,\n .react-datepicker__year-text:hover {\n background-color: var(--color-neutrals-20);\n }\n\n .react-datepicker__day--outside-month {\n color: var(--color-neutrals-70);\n }\n\n .react-datepicker__day--weekend {\n color: var(--color-errors-main);\n }\n\n .react-datepicker__day--selected,\n .react-datepicker__day--keyboard-selected,\n .react-datepicker__month-text--keyboard-selected,\n .react-datepicker__quarter-text--keyboard-selected,\n .react-datepicker__year-text--keyboard-selected\n {\n background-color: var(--color-primary1-60);\n color: #fff;\n }\n\n .react-datepicker__triangle {\n border-bottom-color: var(--color-neutrals-20) !important;\n }\n\n .react-datepicker__triangle::before {\n border-bottom-color: var(--color-primary1-60) !important;\n border-top-color: var(--color-primary1-60) !important;\n }\n\n .react-datepicker__month-select,\n .react-datepicker__year-select {\n height: 30px;\n border: 2px solid var(--color-primary1-60);\n padding: 3px;\n border-radius: 5px;\n outline: none;\n }\n\n .react-datepicker__time-container {\n margin-top: -2px;\n border-top-left-radius: 0px;\n border-right: 2px solid var(--color-primary1-60);\n border-bottom: 2px solid var(--color-primary1-60);\n border-top: 2px solid var(--color-primary1-60);\n }\n\n .react-datepicker__navigation {\n border: 0.45rem solid transparent;\n\n &.react-datepicker__navigation--next {\n border-left: 7px solid var(--color-primary1-60);\n margin-top: 8px;\n }\n \n &.react-datepicker__navigation--previous {\n border-right: 7px solid var(--color-primary1-60);\n margin-top: 8px;\n }\n }\n\n .react-datepicker__aria-live {\n display: none;\n }\n\n @media only screen and (min-height: 600px) and (max-height: 800px ) {\n .react-datepicker__month {\n overflow-y: scroll !important;\n height: 15vh !important;\n }\n }\n @media only screen and (max-height: 599px ) {\n .react-datepicker__month {\n overflow-y: scroll !important;\n height: 5vh !important;\n }\n\n .react-datepicker__time-container {\n margin-top: -2px;\n border-top-left-radius: 0px;\n border-right: 2px solid var(--color-primary1-60);\n border-bottom: 2px solid var(--color-primary1-60);\n border-top: 2px solid var(--color-primary1-60);\n }\n }\n}\n";
1224
+ var datepickerStyles = "\n.commonsku-styles-datepicker {\n &.react-datepicker-wrapper {\n width: 100%;\n }\n\n .react-datepicker__input-container {\n display: block;\n width: 100%;\n }\n\n .react-datepicker {\n border: 1px solid var(--color-primary1-60);\n outline: none;\n box-shadow: 1px 1px 0px var(--color-primary1-60),\n -1px -1px 0px var(--color-primary1-60),\n 1px -1px 0px var(--color-primary1-60),\n -1px 1px 0px var(--color-primary1-60);\n }\n\n .react-datepicker__current-month,\n .react-datepicker-time__header,\n .react-datepicker-year-header,\n .react-datepicker__header {\n padding-top: 8px;\n padding-bottom: 8px;\n }\n\n .react-datepicker__header,\n .react-datepicker__today-button {\n background: var(--color-neutrals-20);\n padding-top: 8px;\n padding-bottom: 8px;\n }\n\n .react-datepicker__header {\n border-bottom: none;\n }\n\n .react-datepicker__today-button {\n border-top: none;\n }\n\n .react-datepicker__day {\n outline: none;\n }\n\n .react-datepicker__day :not(\n .react-datepicker__day--outside-month,\n .react-datepicker__day--selected\n ) {\n color: var(--color-neutrals-90);\n }\n\n .react-datepicker__day:hover :not(.react-datepicker__day--selected),\n .react-datepicker__month-text:hover,\n .react-datepicker__quarter-text:hover,\n .react-datepicker__year-text:hover {\n background-color: var(--color-neutrals-20);\n }\n\n .react-datepicker__day--outside-month {\n color: var(--color-neutrals-70);\n }\n\n .react-datepicker__day--weekend {\n color: var(--color-errors-main);\n }\n\n .react-datepicker__day--selected,\n .react-datepicker__day--keyboard-selected,\n .react-datepicker__month-text--keyboard-selected,\n .react-datepicker__quarter-text--keyboard-selected,\n .react-datepicker__year-text--keyboard-selected\n {\n background-color: var(--color-primary1-60);\n color: #fff;\n }\n\n .react-datepicker__triangle {\n border-bottom-color: var(--color-neutrals-20) !important;\n }\n\n .react-datepicker__triangle::before {\n border-bottom-color: var(--color-primary1-60) !important;\n border-top-color: var(--color-primary1-60) !important;\n }\n\n .react-datepicker__month-select,\n .react-datepicker__year-select {\n height: 30px;\n border: 2px solid var(--color-primary1-60);\n padding: 3px;\n border-radius: 5px;\n outline: none;\n }\n\n .react-datepicker__time-container {\n margin-top: -2px;\n border-top-left-radius: 0px;\n border-right: 2px solid var(--color-primary1-60);\n border-bottom: 2px solid var(--color-primary1-60);\n border-top: 2px solid var(--color-primary1-60);\n }\n\n .react-datepicker__navigation {\n border: 0.45rem solid transparent;\n\n &.react-datepicker__navigation--next {\n border-left: 7px solid var(--color-primary1-60);\n margin-top: 8px;\n }\n \n &.react-datepicker__navigation--previous {\n border-right: 7px solid var(--color-primary1-60);\n margin-top: 8px;\n }\n }\n\n .react-datepicker__aria-live {\n display: none;\n }\n\n @media only screen and (min-height: 600px) and (max-height: 800px ) {\n .react-datepicker .react-datepicker__month-container .react-datepicker__month {\n overflow-y: scroll;\n max-height: 140px;\n }\n }\n @media only screen and (max-height: 599px ) {\n .react-datepicker .react-datepicker__month-container .react-datepicker__month {\n overflow-y: scroll;\n max-height: 110px;\n }\n\n .react-datepicker__time-container {\n margin-top: -2px;\n border-top-left-radius: 0px;\n border-right: 2px solid var(--color-primary1-60);\n border-bottom: 2px solid var(--color-primary1-60);\n border-top: 2px solid var(--color-primary1-60);\n }\n }\n}\n";
1225
1225
 
1226
1226
  var parseColorVars = function (colors, prefix) {
1227
1227
  if (prefix === void 0) { prefix = ''; }
@@ -3550,7 +3550,7 @@ var LabeledInput = React__default.default.forwardRef(function (_a, ref) {
3550
3550
  React__default.default.createElement(Input, __assign({ ref: ref, name: name, required: required }, props))));
3551
3551
  });
3552
3552
  var LabeledIconInput = React__default.default.forwardRef(function (_a, ref) {
3553
- var label = _a.label, name = _a.name, value = _a.value, defaultValue = _a.defaultValue, placeholder = _a.placeholder, required = _a.required, _b = _a.labelOnTop, labelOnTop = _b === void 0 ? false : _b, Icon = _a.Icon, noMargin = _a.noMargin, error = _a.error, disabled = _a.disabled, onFocus = _a.onFocus, onChange = _a.onChange, onBlur = _a.onBlur, _c = _a.iconPosition, iconPosition = _c === void 0 ? 'left' : _c, _d = _a.iconColor, iconColor = _d === void 0 ? '#fff' : _d, _e = _a.iconLabelStyles, iconLabelStyles = _e === void 0 ? {} : _e, _f = _a.containerStyle, containerStyle = _f === void 0 ? {} : _f, props = __rest(_a, ["label", "name", "value", "defaultValue", "placeholder", "required", "labelOnTop", "Icon", "noMargin", "error", "disabled", "onFocus", "onChange", "onBlur", "iconPosition", "iconColor", "iconLabelStyles", "containerStyle"]);
3553
+ var label = _a.label, name = _a.name, value = _a.value, defaultValue = _a.defaultValue, placeholder = _a.placeholder, readOnly = _a.readOnly, required = _a.required, _b = _a.labelOnTop, labelOnTop = _b === void 0 ? false : _b, Icon = _a.Icon, noMargin = _a.noMargin, error = _a.error, disabled = _a.disabled, onFocus = _a.onFocus, onChange = _a.onChange, onBlur = _a.onBlur, _c = _a.iconPosition, iconPosition = _c === void 0 ? 'left' : _c, _d = _a.iconColor, iconColor = _d === void 0 ? '#fff' : _d, _e = _a.iconLabelStyles, iconLabelStyles = _e === void 0 ? {} : _e, _f = _a.containerStyle, containerStyle = _f === void 0 ? {} : _f, props = __rest(_a, ["label", "name", "value", "defaultValue", "placeholder", "readOnly", "required", "labelOnTop", "Icon", "noMargin", "error", "disabled", "onFocus", "onChange", "onBlur", "iconPosition", "iconColor", "iconLabelStyles", "containerStyle"]);
3554
3554
  var containerRef = React.useRef(null);
3555
3555
  var _g = React.useState(false), isActive = _g[0], setIsActive = _g[1];
3556
3556
  var _h = React.useState(false), isHovering = _h[0], setIsHovering = _h[1];
@@ -3622,7 +3622,7 @@ var LabeledIconInput = React__default.default.forwardRef(function (_a, ref) {
3622
3622
  setIsActive(!isActive);
3623
3623
  }, style: __assign(__assign(__assign(__assign({}, activeStyles), errorStyles), disabledStyles), (props.style || {})), onMouseOver: function () { return setIsHovering(true); }, onMouseLeave: function () { return setIsHovering(false); } }),
3624
3624
  iconPosition !== 'right' ? React__default.default.createElement(InputIconLabel, { style: __assign({ marginBottom: 0 }, iconLabelStyles), isActive: isActive, isDisabled: disabled, isHover: isHovering }, NewIcon) : null,
3625
- React__default.default.createElement(Input, { hasIcon: true, ref: ref, name: name, value: value, defaultValue: defaultValue, placeholder: placeholder, required: required, style: { marginBottom: 0, }, noMargin: noMargin, error: error, disabled: disabled, onFocus: onFocus, onChange: onChange, onBlur: onBlur }),
3625
+ React__default.default.createElement(Input, { hasIcon: true, ref: ref, name: name, value: value, defaultValue: defaultValue, placeholder: placeholder, readOnly: readOnly, required: required, style: { marginBottom: 0, }, noMargin: noMargin, error: error, disabled: disabled, onFocus: onFocus, onChange: onChange, onBlur: onBlur }),
3626
3626
  iconPosition === 'right' ? React__default.default.createElement(InputIconLabel, { style: { marginBottom: 0, padding: 6, }, isActive: isActive, isDisabled: disabled, isHover: isHovering, iconPosition: iconPosition }, NewIcon) : null)));
3627
3627
  });
3628
3628
  var CheckboxLabel = styled__default.default.label(templateObject_4$d || (templateObject_4$d = __makeTemplateObject(["\n &&& {\n display: inline-flex;\n position: relative;\n margin-bottom: 12px;\n margin-right: 24px;\n cursor: ", ";\n font-size: ", ";\n color: ", ";\n font-family: ", ";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n font-weight: normal;\n line-height: ", ";\n box-sizing: border-box;\n opacity: ", ";\n &:focus {\n outline: 0;\n }\n }\n"], ["\n &&& {\n display: inline-flex;\n position: relative;\n margin-bottom: 12px;\n margin-right: 24px;\n cursor: ", ";\n font-size: ", ";\n color: ", ";\n font-family: ", ";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n font-weight: normal;\n line-height: ", ";\n box-sizing: border-box;\n opacity: ", ";\n &:focus {\n outline: 0;\n }\n }\n"])), function (props) { return props.disabled ? 'default' : 'pointer'; }, fontStyles.label.fontSize, neutrals.darkest, fontStyles.label.fontFamily, fontStyles.label.lineHeight, function (props) { return props.disabled ? 0.7 : 1; });
@@ -3649,8 +3649,8 @@ var LabeledRadio = function (_a) {
3649
3649
  React__default.default.createElement(Radio, __assign({ ref: radio, name: name, type: "radio", checked: checked, isHovering: isHovering, onChange: disabled ? undefined : onChange }, props))));
3650
3650
  };
3651
3651
  var LabeledRadioInButton = function (_a) {
3652
- var label = _a.label; _a.name; var checked = _a.checked, disabled = _a.disabled; _a.labelStyle; _a.radioIconStyle; var flexGrow = _a.flexGrow, onChange = _a.onChange; __rest(_a, ["label", "name", "checked", "disabled", "labelStyle", "radioIconStyle", "flexGrow", "onChange"]);
3653
- return (React__default.default.createElement(LabeledRadio, { label: label, checked: checked, disabled: disabled, onChange: onChange, labelStyle: {
3652
+ var label = _a.label; _a.name; var checked = _a.checked, disabled = _a.disabled, readOnly = _a.readOnly, defaultValue = _a.defaultValue; _a.labelStyle; _a.radioIconStyle; var flexGrow = _a.flexGrow, onChange = _a.onChange; __rest(_a, ["label", "name", "checked", "disabled", "readOnly", "defaultValue", "labelStyle", "radioIconStyle", "flexGrow", "onChange"]);
3653
+ return (React__default.default.createElement(LabeledRadio, { label: label, checked: checked, disabled: disabled, onChange: onChange, readOnly: readOnly, defaultValue: defaultValue, labelStyle: {
3654
3654
  padding: "13px 40px",
3655
3655
  backgroundColor: disabled ? neutrals['40'] : checked ? colors.white : teal['20'],
3656
3656
  border: disabled ? "solid 3px ".concat(neutrals['40']) : checked ? "solid 3px ".concat(teal.main) : "solid 3px ".concat(teal['20']),
@@ -4905,21 +4905,20 @@ var CalendarTask = React__default.default.forwardRef(function (_a, ref) {
4905
4905
  hideCheckbox && Icon ? Icon : null));
4906
4906
  }, [date, title, hideCheckbox, Icon]);
4907
4907
  return (React__default.default.createElement(StyledCalendarTaskWrapper, __assign({ backgroundColor: colorType === 'light-red' ? '#ffebf2' : '#01d37417' }, props, { style: __assign(__assign({}, (props.style || {})), (checked ? { filter: 'saturate(0)' } : {})) }),
4908
- !hideCheckbox ? React__default.default.createElement(LabeledCheckbox, { ref: ref, stopPropagation: true, checked: checked, checkboxPosition: "top-right", checkboxStyle: checkboxStyles, hoverByLabel: false, labelStyle: { width: '100%', paddingLeft: 0, paddingRight: 0, marginRight: 0, marginLeft: 0, margin: 0, }, label: RenderTaskLabel(), onClick: function (e) {
4908
+ !hideCheckbox ? React__default.default.createElement(LabeledCheckbox, { ref: ref, stopPropagation: true, checked: checked, checkboxPosition: "top-right", checkboxStyle: checkboxStyles, hoverByLabel: false, labelStyle: { width: '100%', paddingLeft: 0, paddingRight: 0, marginRight: 0, marginLeft: 0, margin: 0, }, label: React__default.default.createElement(RenderTaskLabel, null), onClick: function (e) {
4909
4909
  e && e.preventDefault();
4910
4910
  e && e.stopPropagation();
4911
4911
  }, onChange: function (e) {
4912
4912
  e && e.preventDefault();
4913
4913
  e && e.stopPropagation();
4914
- setChecked(function (s) {
4915
- onClickCheckbox && onClickCheckbox(!s);
4916
- return !s;
4917
- });
4914
+ var newValue = !checked;
4915
+ setChecked(newValue);
4916
+ onClickCheckbox === null || onClickCheckbox === void 0 ? void 0 : onClickCheckbox(newValue);
4918
4917
  }, style: {
4919
4918
  padding: 0,
4920
4919
  margin: 0,
4921
4920
  marginLeft: 20,
4922
- } }) : RenderTaskLabel(),
4921
+ } }) : React__default.default.createElement(RenderTaskLabel, null),
4923
4922
  React__default.default.createElement(StyledCalendarTaskBody, __assign({}, (isDescriptionHtml && typeof description === 'string'
4924
4923
  ? { dangerouslySetInnerHTML: { __html: description } }
4925
4924
  : { children: description }))),
@@ -6635,6 +6634,8 @@ var VirtualTable = function (props) {
6635
6634
  var _m = reactTable.useTable(__assign({ columns: columns, data: data, defaultColumn: defaultColumn, initialState: __assign({}, (defaultSort ? { sortBy: [defaultSort] } : {})), onUpdateData: onUpdateData }, useTableProps), reactTable.useFlexLayout, reactTable.useSortBy, reactTable.useExpanded), getTableProps = _m.getTableProps, getTableBodyProps = _m.getTableBodyProps, headerGroups = _m.headerGroups, footerGroups = _m.footerGroups, totalColumnsWidth = _m.totalColumnsWidth, prepareRow = _m.prepareRow, toggleAllRowsExpanded = _m.toggleAllRowsExpanded, tableData = __rest(_m, ["getTableProps", "getTableBodyProps", "headerGroups", "footerGroups", "totalColumnsWidth", "prepareRow", "toggleAllRowsExpanded"]);
6636
6635
  var rows = React.useMemo(function () { return tableData.rows; }, [tableData.rows]);
6637
6636
  var windowSize = useWindowSize();
6637
+ var _o = React.useState(false), scrolledToTop = _o[0], setScrolledToTop = _o[1];
6638
+ var _p = React.useState(false), scrolledToBottom = _p[0], setScrolledToBottom = _p[1];
6638
6639
  var headerRef = React.useRef(null);
6639
6640
  var footerRef = React.useRef(null);
6640
6641
  var rowsRef = React.useRef(null);
@@ -6723,17 +6724,35 @@ var VirtualTable = function (props) {
6723
6724
  ], (headerGroupProps.className || "").split(' '), true), (headerGroup.className || "").split(' '), true).filter(function (v) { return v; }).join(' ');
6724
6725
  return __assign(__assign({}, headerGroupProps), { style: headerStyles, className: headerClassNames });
6725
6726
  };
6727
+ var handleScroll = React.useCallback(function (props) {
6728
+ if (onScroll != null) {
6729
+ onScroll(props);
6730
+ }
6731
+ var rows = rowsRef.current;
6732
+ if (rows != null) {
6733
+ setScrolledToTop(rows.scrollTop === 0);
6734
+ setScrolledToBottom(rows.scrollTop === rows.scrollHeight - rows.offsetHeight);
6735
+ }
6736
+ }, [onScroll]);
6726
6737
  return (React__default.default.createElement("div", __assign({}, getTableProps(), { className: "table ".concat(className || '') }),
6727
6738
  React__default.default.createElement("div", __assign({}, tableHeaderProps, { className: "thead ".concat(tableHeaderProps.className || ''), style: __assign(__assign({}, (tableHeaderProps.style || {})), (hideHeader ? { display: 'none' } : {})) }), headerGroups.map(function (headerGroup) { return (React__default.default.createElement("div", __assign({}, getHeaderGroupProps(headerGroup, false), { ref: headerRef, style: { width: tableWidth, } }), headerGroup.headers.map(function (column) { return (React__default.default.createElement("div", __assign({}, getHeaderProps(column, false), { className: "th", onClick: function () { return handleSort(column); } }),
6728
6739
  column.render("Header"),
6729
- React__default.default.createElement("span", null, column.isSorted ? React__default.default.createElement(FilledChevronIcon, { direction: sortDirection(column), size: "medium", style: { verticalAlign: 'middle' } }) : null))); }))); })),
6740
+ React__default.default.createElement("span", null, column.canSort &&
6741
+ React__default.default.createElement(FilledChevronIcon, { direction: column.isSorted ? sortDirection(column) : 'updown', size: "medium", style: { verticalAlign: 'middle' } })))); }))); })),
6730
6742
  React__default.default.createElement("div", __assign({ className: "tbody" }, getTableBodyProps()), rows.length === 0 && NoRowsFound ? React__default.default.createElement(NoRowsFound, null) :
6731
- React__default.default.createElement(reactWindow.VariableSizeList, { useIsScrolling: true, className: "table-list-rows", height: height, itemCount: rows.length, itemSize: function (i) {
6732
- if (itemSize) {
6733
- return itemSize({ row: rows[i], index: i });
6734
- }
6735
- return (rows[i] && rows[i].isExpanded ? 300 : 50) + gutterSize;
6736
- }, width: tableWidth, onScroll: onScroll, ref: listRef, outerRef: rowsRef }, RenderRow)),
6743
+ React__default.default.createElement("div", { className: "scroll-container" },
6744
+ !scrolledToTop &&
6745
+ React__default.default.createElement("div", { className: "scroll-decoration-top" },
6746
+ React__default.default.createElement(DoubleArrowIcon, { direction: "up" })),
6747
+ React__default.default.createElement(reactWindow.VariableSizeList, { useIsScrolling: true, className: "table-list-rows", height: height, itemCount: rows.length, itemSize: function (i) {
6748
+ if (itemSize) {
6749
+ return itemSize({ row: rows[i], index: i });
6750
+ }
6751
+ return (rows[i] && rows[i].isExpanded ? 300 : 50) + gutterSize;
6752
+ }, width: tableWidth, onScroll: handleScroll, ref: listRef, outerRef: rowsRef }, RenderRow),
6753
+ !scrolledToBottom &&
6754
+ React__default.default.createElement("div", { className: "scroll-decoration-bottom" },
6755
+ React__default.default.createElement(DoubleArrowIcon, { direction: "down" })))),
6737
6756
  !hideFooter ? React__default.default.createElement("div", __assign({}, tableFooterProps, { className: "table-footer-wrapper ".concat(tableFooterProps.className || '') }), footerGroups.map(function (footerGroup) { return (React__default.default.createElement("div", __assign({}, getHeaderGroupProps(footerGroup, true), { className: "table-footer tr", ref: footerRef }), footerGroup.headers.map(function (column) { return (React__default.default.createElement("div", __assign({}, getHeaderProps(column, true)), column.render("Footer"))); }))); })) : null,
6738
6757
  TableFooter ? React__default.default.createElement(TableFooter, __assign({}, customTableFooterProps)) : null));
6739
6758
  };
@@ -6747,9 +6766,57 @@ function sortDirection(col) {
6747
6766
  return "updown";
6748
6767
  }
6749
6768
 
6750
- var VirtualTableStyles = styled__default.default.div(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\npadding: 1rem;\n\n.table-list-rows {\n ", "\n}\n\n.table {\n display: inline-flex;\n flex-direction: column;\n ", "\n width: 100% !important;\n min-width: 100% !important;\n ", "\n\n .thead {\n padding-right: 15px;\n ", "\n\n .tr {\n overflow-x: hidden;\n min-width: 100%;\n }\n }\n\n .tbody {\n flex: 1 1 auto;\n height: 80vh;\n }\n\n .tr-group {\n display: flex;\n flex-direction: column;\n\n .tr, .tr-sub {\n width: 99%;\n }\n }\n\n .tr {\n display: flex;\n\n ", "\n }\n\n .tr.header {\n position: sticky;\n }\n\n .th,\n .td {\n margin: 0;\n padding: 0.5rem;\n ", "\n }\n}"], ["\npadding: 1rem;\n\n.table-list-rows {\n ", "\n}\n\n.table {\n display: inline-flex;\n flex-direction: column;\n ", "\n width: 100% !important;\n min-width: 100% !important;\n ", "\n\n .thead {\n padding-right: 15px;\n ", "\n\n .tr {\n overflow-x: hidden;\n min-width: 100%;\n }\n }\n\n .tbody {\n flex: 1 1 auto;\n height: 80vh;\n }\n\n .tr-group {\n display: flex;\n flex-direction: column;\n\n .tr, .tr-sub {\n width: 99%;\n }\n }\n\n .tr {\n display: flex;\n\n ", "\n }\n\n .tr.header {\n position: sticky;\n }\n\n .th,\n .td {\n margin: 0;\n padding: 0.5rem;\n ", "\n }\n}"])), function (p) { return p.rowClickable ? "\n .tr {\n cursor: pointer;\n }\n " : ''; }, function (p) { return p.bordered ? "\n border-spacing: 0;\n border: 1px solid black;\n " : ''; }, function (p) { return p.tableHeight ? "height: ".concat(p.tableHeight).concat(typeof p.tableHeight === 'number' ? 'px' : '', ";") : ''; }, function (p) { return p.bordered ? 'border-bottom: 1px solid #000;' : ''; }, function (p) { return p.bordered ? "\n :last-child {\n .td {\n border-bottom: 0;\n }\n }\n " : ''; }, function (p) { return p.bordered ? "\n border-bottom: 1px solid black;\n border-right: 1px solid black;\n :last-child {\n border-right: 0;\n }\n " : ''; });
6769
+ var VirtualTableStyles = styled__default.default.div(templateObject_1$a || (templateObject_1$a = __makeTemplateObject(["\npadding: 1rem;\n\n.table-list-rows {\n ", "\n}\n\n.table {\n display: inline-flex;\n flex-direction: column;\n ", "\n width: 100% !important;\n min-width: 100% !important;\n ", "\n\n .thead {\n padding-right: 15px;\n ", "\n\n .tr {\n overflow-x: hidden;\n min-width: 100%;\n }\n }\n\n .tbody {\n flex: 1 1 auto;\n height: 80vh;\n }\n\n .tr-group {\n display: flex;\n flex-direction: column;\n\n .tr, .tr-sub {\n width: 99%;\n }\n }\n\n .tr {\n display: flex;\n\n ", "\n }\n\n .tr.header {\n position: sticky;\n }\n\n .th,\n .td {\n margin: 0;\n padding: 0.5rem;\n ", "\n }\n}\n\n.scroll-container {\n position: relative;\n}\n\n.scroll-decoration-top, .scroll-decoration-bottom {\n", "\n}\n\n.scroll-decoration-top {\n background: linear-gradient(180deg, #DFEEF4 0%, rgba(166, 194, 198, 0.00) 100%);\n top: 0;\n}\n\n.scroll-decoration-bottom {\n background: linear-gradient(0deg, #DFEEF4 0%, rgba(166, 194, 198, 0.00) 100%);\n bottom: 0;\n}"], ["\npadding: 1rem;\n\n.table-list-rows {\n ", "\n}\n\n.table {\n display: inline-flex;\n flex-direction: column;\n ", "\n width: 100% !important;\n min-width: 100% !important;\n ", "\n\n .thead {\n padding-right: 15px;\n ", "\n\n .tr {\n overflow-x: hidden;\n min-width: 100%;\n }\n }\n\n .tbody {\n flex: 1 1 auto;\n height: 80vh;\n }\n\n .tr-group {\n display: flex;\n flex-direction: column;\n\n .tr, .tr-sub {\n width: 99%;\n }\n }\n\n .tr {\n display: flex;\n\n ", "\n }\n\n .tr.header {\n position: sticky;\n }\n\n .th,\n .td {\n margin: 0;\n padding: 0.5rem;\n ", "\n }\n}\n\n.scroll-container {\n position: relative;\n}\n\n.scroll-decoration-top, .scroll-decoration-bottom {\n", "\n}\n\n.scroll-decoration-top {\n background: linear-gradient(180deg, #DFEEF4 0%, rgba(166, 194, 198, 0.00) 100%);\n top: 0;\n}\n\n.scroll-decoration-bottom {\n background: linear-gradient(0deg, #DFEEF4 0%, rgba(166, 194, 198, 0.00) 100%);\n bottom: 0;\n}"])), function (p) { return p.rowClickable ? "\n .tr {\n cursor: pointer;\n }\n " : ''; }, function (p) { return p.bordered ? "\n border-spacing: 0;\n border: 1px solid black;\n " : ''; }, function (p) { return p.tableHeight ? "height: ".concat(p.tableHeight).concat(typeof p.tableHeight === 'number' ? 'px' : '', ";") : ''; }, function (p) { return p.bordered ? 'border-bottom: 1px solid #000;' : ''; }, function (p) { return p.bordered ? "\n :last-child {\n .td {\n border-bottom: 0;\n }\n }\n " : ''; }, function (p) { return p.bordered ? "\n border-bottom: 1px solid black;\n border-right: 1px solid black;\n :last-child {\n border-right: 0;\n }\n " : ''; }, function (p) { return p.scrollDecoration ? "\n position: absolute;\n height: 48px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 1000000000;\n pointer-events: none;\n" : "\n display: none;\n"; });
6751
6770
  var templateObject_1$a;
6752
6771
 
6772
+ var SelectionTable = function (props) {
6773
+ var columns = props.columns, onSelectRow = props.onSelectRow;
6774
+ var _a = React.useState(props.data.map(function (row) { return (__assign({ selected: false }, row)); })), data = _a[0], setData = _a[1];
6775
+ var selectionState = React.useMemo(function () {
6776
+ return !data.some(function (row) { return row.selected === false; })
6777
+ ? 'all'
6778
+ : data.some(function (row) { return row.selected === true; })
6779
+ ? 'indeterminate'
6780
+ : 'none';
6781
+ }, [data]);
6782
+ var handleSelectHeader = React.useCallback(function () {
6783
+ switch (selectionState) {
6784
+ case 'none':
6785
+ setData(data.map(function (row) { return (__assign(__assign({}, row), { selected: true })); }));
6786
+ break;
6787
+ case 'all':
6788
+ case 'indeterminate':
6789
+ setData(data.map(function (row) { return (__assign(__assign({}, row), { selected: false })); }));
6790
+ break;
6791
+ }
6792
+ }, [data, selectionState]);
6793
+ var handleSelectRow = React.useCallback(function (rowIndex) {
6794
+ setData(function (prev) { return prev.map(function (row, index) {
6795
+ if (rowIndex !== index)
6796
+ return row;
6797
+ if (onSelectRow != null) {
6798
+ onSelectRow(row, rowIndex);
6799
+ }
6800
+ return __assign(__assign({}, row), { selected: rowIndex === index
6801
+ ? !row.selected
6802
+ : row.selected });
6803
+ }); });
6804
+ }, [onSelectRow]);
6805
+ var selectionHeader = React.useMemo(function () { return (React__default.default.createElement(LabeledCheckbox, { label: "", checked: selectionState === 'all', indeterminate: selectionState === 'indeterminate', onChange: handleSelectHeader })); }, [selectionState, handleSelectHeader]);
6806
+ var selectionColumn = React.useMemo(function () { return ({
6807
+ Header: selectionHeader,
6808
+ accessor: 'selected',
6809
+ Cell: function (cellObj) {
6810
+ return (React__default.default.createElement(LabeledCheckbox, { label: "", checked: cellObj.row.original.selected, onChange: function () { return handleSelectRow(cellObj.row.index); } }));
6811
+ },
6812
+ sticky: 'left',
6813
+ noDrag: true,
6814
+ width: 40,
6815
+ disableSortBy: true,
6816
+ }); }, [handleSelectRow, selectionHeader]);
6817
+ return (React__default.default.createElement(VirtualTable, __assign({}, props, { columns: __spreadArray([selectionColumn], columns, true), data: data, minWidth: 40 })));
6818
+ };
6819
+
6753
6820
  var psuedoSelectors = {
6754
6821
  __after: '&:after',
6755
6822
  __before: '&:before',
@@ -7029,8 +7096,8 @@ var ConfirmPopup = function (props) {
7029
7096
  };
7030
7097
 
7031
7098
  var ConfirmAlertPopup = function (props) {
7032
- var _a = props.padding, padding = _a === void 0 ? '16px' : _a, _b = props.maxWidth, maxWidth = _b === void 0 ? 555 : _b, _c = props.title, title = _c === void 0 ? '' : _c, _d = props.children, children = _d === void 0 ? 'Are you sure you want to perform this action?' : _d, _e = props.cancelButtonContent, cancelButtonContent = _e === void 0 ? 'Cancel' : _e, _f = props.actionButtonContent, actionButtonContent = _f === void 0 ? 'Delete' : _f, _g = props.disableActionButton, disableActionButton = _g === void 0 ? false : _g, onAction = props.onAction, onClose = props.onClose;
7033
- return (React__default.default.createElement(Popup, { width: 'auto', height: 'auto', padding: padding, style: { borderRadius: 10, maxWidth: maxWidth, }, noHeader: true, noCloseButton: true },
7099
+ var _a = props.padding, padding = _a === void 0 ? '16px' : _a, _b = props.maxWidth, maxWidth = _b === void 0 ? 555 : _b, _c = props.height, height = _c === void 0 ? 'auto' : _c, _d = props.width, width = _d === void 0 ? 'auto' : _d, _e = props.title, title = _e === void 0 ? '' : _e, _f = props.children, children = _f === void 0 ? 'Are you sure you want to perform this action?' : _f, _g = props.cancelButtonContent, cancelButtonContent = _g === void 0 ? 'Cancel' : _g, _h = props.actionButtonContent, actionButtonContent = _h === void 0 ? 'Delete' : _h, _j = props.disableActionButton, disableActionButton = _j === void 0 ? false : _j, onAction = props.onAction, onClose = props.onClose;
7100
+ return (React__default.default.createElement(Popup, { width: width !== null && width !== void 0 ? width : 'auto', height: height !== null && height !== void 0 ? height : 'auto', padding: padding, style: { borderRadius: 10, maxWidth: maxWidth, }, noHeader: true, noCloseButton: true },
7034
7101
  title ? React__default.default.createElement(PopupTitle, null, title) : null,
7035
7102
  React__default.default.createElement(PopupContent, null, children),
7036
7103
  React__default.default.createElement(Row, { style: { justifyContent: 'center', marginTop: 16, } },
@@ -7395,7 +7462,7 @@ var DraggableTaskBody = function (_a) {
7395
7462
  };
7396
7463
 
7397
7464
  var DroppableDays = function (_a) {
7398
- var days = _a.days, selectedDate = _a.selectedDate, onUpdateTask = _a.onUpdateTask, onClickDay = _a.onClickDay, onClickTask = _a.onClickTask, weekend = _a.weekend, props = __rest(_a, ["days", "selectedDate", "onUpdateTask", "onClickDay", "onClickTask", "weekend"]);
7465
+ var days = _a.days, weekend = _a.weekend, selectedDate = _a.selectedDate, onUpdateTask = _a.onUpdateTask, onClickDay = _a.onClickDay, onClickTask = _a.onClickTask, props = __rest(_a, ["days", "weekend", "selectedDate", "onUpdateTask", "onClickDay", "onClickTask"]);
7399
7466
  return (React__default.default.createElement(DaysBodyWrapper, __assign({ className: "days-body-wrapper" }, props),
7400
7467
  React__default.default.createElement(Row, { className: "day-body-wrapper-row" }, Object.entries(days).map(function (_a, i) {
7401
7468
  var __id__ = _a[0], d = _a[1];
@@ -7404,9 +7471,11 @@ var DroppableDays = function (_a) {
7404
7471
  React__default.default.createElement(Row, null,
7405
7472
  React__default.default.createElement(reactBeautifulDnd.Droppable, { droppableId: __id__, key: __id__ }, function (provided, snapshot) { return (React__default.default.createElement("div", __assign({}, droppableChildWrapperProps(provided, snapshot)),
7406
7473
  provided.placeholder,
7407
- d.tasks.map(function (t, j) { return (React__default.default.createElement(DraggableTaskBody, { key: t.__id__, index: j, task: t, onClickTask: onClickTask, onUpdateTask: onUpdateTask ? function (newData, otherData) {
7408
- onUpdateTask(newData, __assign(__assign({}, otherData), { day__id: __id__, task__id: t.__id__ }));
7409
- } : undefined })); }))); }))) : ""));
7474
+ d.tasks.map(function (t, j) { return (React__default.default.createElement(DraggableTaskBody, { key: t.__id__, index: j, task: t, onClickTask: onClickTask, onUpdateTask: function (newData, otherData) {
7475
+ if (typeof onUpdateTask !== 'undefined') {
7476
+ onUpdateTask(newData, __assign(__assign({}, otherData), { day__id: __id__, task__id: t.__id__ }));
7477
+ }
7478
+ } })); }))); }))) : ""));
7410
7479
  }))));
7411
7480
  };
7412
7481
 
@@ -7547,32 +7616,26 @@ var DraggableTasksCalendar = function (_a) {
7547
7616
  if (!day__id) {
7548
7617
  return;
7549
7618
  }
7550
- ___default.default.flowRight(function () {
7551
- onUpdateTask(newData, otherData);
7552
- }, function () {
7553
- setState(function (s) {
7554
- var _a;
7555
- return __assign(__assign({}, s), { days: __assign(__assign({}, s.days), (_a = {}, _a[day__id] = __assign(__assign({}, s.days[day__id]), { tasks: __spreadArray(__spreadArray(__spreadArray([], s.days[day__id].tasks.slice(0, otherData.index), true), [
7556
- __assign(__assign({}, s.days[day__id].tasks[otherData.index]), newData)
7557
- ], false), s.days[day__id].tasks.slice(otherData.index + 1), true) }), _a)) });
7558
- });
7559
- })();
7560
- } })),
7561
- showFooterTasks ? React__default.default.createElement(DroppableFooter, __assign({ tasks: state.footerTasks, onClickTask: onClickTask, onUpdateTask: function (newData, _a) {
7562
- var day__id = _a.day__id; _a.task__id; var otherData = __rest(_a, ["day__id", "task__id"]);
7563
- ___default.default.flowRight(function () {
7564
7619
  onUpdateTask(newData, otherData);
7565
- }, function () {
7566
- if (!day__id) {
7567
- return;
7568
- }
7569
7620
  setState(function (s) {
7570
7621
  var _a;
7571
7622
  return __assign(__assign({}, s), { days: __assign(__assign({}, s.days), (_a = {}, _a[day__id] = __assign(__assign({}, s.days[day__id]), { tasks: __spreadArray(__spreadArray(__spreadArray([], s.days[day__id].tasks.slice(0, otherData.index), true), [
7572
7623
  __assign(__assign({}, s.days[day__id].tasks[otherData.index]), newData)
7573
7624
  ], false), s.days[day__id].tasks.slice(otherData.index + 1), true) }), _a)) });
7574
7625
  });
7575
- })();
7626
+ } })),
7627
+ showFooterTasks ? React__default.default.createElement(DroppableFooter, __assign({ tasks: state.footerTasks, onClickTask: onClickTask, onUpdateTask: function (newData, _a) {
7628
+ var day__id = _a.day__id; _a.task__id; var otherData = __rest(_a, ["day__id", "task__id"]);
7629
+ onUpdateTask(newData, otherData);
7630
+ if (!day__id) {
7631
+ return;
7632
+ }
7633
+ setState(function (s) {
7634
+ var _a;
7635
+ return __assign(__assign({}, s), { days: __assign(__assign({}, s.days), (_a = {}, _a[day__id] = __assign(__assign({}, s.days[day__id]), { tasks: __spreadArray(__spreadArray(__spreadArray([], s.days[day__id].tasks.slice(0, otherData.index), true), [
7636
+ __assign(__assign({}, s.days[day__id].tasks[otherData.index]), newData)
7637
+ ], false), s.days[day__id].tasks.slice(otherData.index + 1), true) }), _a)) });
7638
+ });
7576
7639
  } }, headerProps)) : null)));
7577
7640
  };
7578
7641
 
@@ -7984,6 +8047,7 @@ exports.SalesArrowIcon = SalesArrowIcon;
7984
8047
  exports.SalesOrderCircleIcon = SalesOrderCircleIcon;
7985
8048
  exports.SearchIcon = SearchIcon;
7986
8049
  exports.Select = SKUSelect;
8050
+ exports.SelectionTable = SelectionTable;
7987
8051
  exports.SharedStyles = SharedStyles;
7988
8052
  exports.ShopIcon = ShopIcon;
7989
8053
  exports.ShoppingCartIcon = ShoppingCartIcon;