@mailstep/design-system 0.7.0 → 0.7.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mailstep/design-system",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "main": "./ui/index.js",
@@ -62,7 +62,6 @@
62
62
  "babel-loader": "^9.1.3",
63
63
  "babel-plugin-macros": "^3.1.0",
64
64
  "babel-plugin-named-exports-order": "^0.0.2",
65
- "chromatic": "^11.3.5",
66
65
  "eslint": "^8.41.0",
67
66
  "eslint-config-prettier": "^8.8.0",
68
67
  "eslint-config-standard-with-typescript": "^34.0.1",
@@ -8,5 +8,5 @@ import { th } from '@xstyled/system';
8
8
  export var ControlButtonsContainer = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n position: sticky;\n justify-content: space-between;\n flex: 1;\n left: 20px;\n"], ["\n display: flex;\n position: sticky;\n justify-content: space-between;\n flex: 1;\n left: 20px;\n"])));
9
9
  export var Left = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n margin-right: 10px;\n"], ["\n display: flex;\n margin-right: 10px;\n"])));
10
10
  export var Right = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n"], ["\n display: flex;\n"])));
11
- export var StyledColumnButton = styled(Button)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: sticky;\n right: 20px;\n > span > svg {\n stroke: ", ";\n width: 18px;\n height: 18px;\n }\n > span > H6 {\n display: none;\n }\n @media (min-width: 1024px) {\n > span > H6 {\n display: flex;\n margin-left: 5px;\n }\n }\n"], ["\n position: sticky;\n right: 20px;\n > span > svg {\n stroke: ", ";\n width: 18px;\n height: 18px;\n }\n > span > H6 {\n display: none;\n }\n @media (min-width: 1024px) {\n > span > H6 {\n display: flex;\n margin-left: 5px;\n }\n }\n"])), th('colors.blue2'));
11
+ export var StyledColumnButton = styled(Button)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: sticky;\n right: 20px;\n z-index: 3;\n margin-left: 8px;\n\n > span > svg {\n stroke: ", ";\n width: 18px;\n height: 18px;\n }\n > span > H6 {\n display: none;\n }\n @media (min-width: 1024px) {\n > span > H6 {\n display: flex;\n margin-left: 5px;\n }\n }\n"], ["\n position: sticky;\n right: 20px;\n z-index: 3;\n margin-left: 8px;\n\n > span > svg {\n stroke: ", ";\n width: 18px;\n height: 18px;\n }\n > span > H6 {\n display: none;\n }\n @media (min-width: 1024px) {\n > span > H6 {\n display: flex;\n margin-left: 5px;\n }\n }\n"])), th('colors.blue2'));
12
12
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -51,19 +51,17 @@ var createEqualComparators = [
51
51
  { label: i18n._({ id: 'dataGrid.comparator.equals', message: 'Equals' }), value: 'eq', icon: 'equals' },
52
52
  { label: i18n._({ id: 'dataGrid.comparator.notEquals', message: 'Not equal' }), value: 'neq', icon: 'notEqual' }
53
53
  ];
54
- var normalizeValue = function (number, decimals) {
55
- var normalized = String(number)
56
- .replace(',', '.')
57
- .replace(/[^0-9.]/g, '');
58
- if (!normalized) {
59
- return number;
54
+ var normalizeValue = function (number, isFloat, decimals) {
55
+ var normalized = String(number).replace(',', '.').replace(/[^0-9.]/g, '');
56
+ if (isFloat || !normalized) {
57
+ return normalized;
60
58
  }
61
59
  return !decimals ? parseInt(normalized, 10) : (parseFloat(normalized) || 0).toFixed(decimals).substr(0, String(number).length);
62
60
  };
63
61
  var NumberRange = function (props) {
64
62
  var _a;
65
63
  var numberComparators = createNumberComparators();
66
- var name = props.name, _b = props.value, value = _b === void 0 ? {} : _b, label = props.label, onChange = props.onChange, decimals = props.decimals, className = props.className, _c = props.OverlayComponent, OverlayComponent = _c === void 0 ? OverlayComponentDefault : _c, comparators = props.comparators, defaultComparator = props.defaultComparator, isEqual = props.isEqual, rest = __rest(props, ["name", "value", "label", "onChange", "decimals", "className", "OverlayComponent", "comparators", "defaultComparator", "isEqual"]);
64
+ var name = props.name, _b = props.value, value = _b === void 0 ? {} : _b, label = props.label, onChange = props.onChange, decimals = props.decimals, isFloat = props.isFloat, className = props.className, _c = props.OverlayComponent, OverlayComponent = _c === void 0 ? OverlayComponentDefault : _c, comparators = props.comparators, defaultComparator = props.defaultComparator, isEqual = props.isEqual, rest = __rest(props, ["name", "value", "label", "onChange", "decimals", "isFloat", "className", "OverlayComponent", "comparators", "defaultComparator", "isEqual"]);
67
65
  var _d = useState(false), isOpen = _d[0], setOpen = _d[1];
68
66
  var comparator = (value === null || value === void 0 ? void 0 : value.comparator) ||
69
67
  defaultComparator ||
@@ -86,12 +84,12 @@ var NumberRange = function (props) {
86
84
  }
87
85
  // two values for between comparation
88
86
  if (values.length === 2) {
89
- var normalizedValues = values.map(function (value) { return normalizeValue(value, 0); });
87
+ var normalizedValues = values.map(function (value) { return normalizeValue(value, false, 0); });
90
88
  onChange({ comparator: comparator, value: normalizedValues.join(',') });
91
89
  return;
92
90
  }
93
91
  }
94
- var number = normalizeValue(event.target.value, decimals);
92
+ var number = normalizeValue(event.target.value, isFloat, decimals);
95
93
  var isValid = number || number === 0;
96
94
  onChange({ comparator: comparator, value: isValid ? number : '' });
97
95
  });
@@ -23,5 +23,5 @@ export var GridModals = function (_a) {
23
23
  gridName: gridName,
24
24
  setGridPresets: setGridPresets
25
25
  }), fileInputRef = _e.fileInputRef, handleImportPresets = _e.handleImportPresets, handleExportPresets = _e.handleExportPresets, handleImportButtonClick = _e.handleImportButtonClick;
26
- return (_jsxs(_Fragment, { children: [_jsx(Modal, { title: _jsx(Trans, { id: "manageColumn.title", message: "Manage columns" }), onClose: onCloseForm, onCancel: onCloseForm, onExtraAction: resetColumnConfig, onConfirm: onConfirmForm, isShown: manageColumnFormVisible, width: "auto", minWidth: "350px", hasFooter: true, extraActionLabel: _jsx(Trans, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: _jsx(Trans, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: _jsx(Trans, { id: "form.buttonConfirm", message: "Confirm" }), children: _jsx(ManageColumnForm, { columns: manageColumnsFormDefinitions, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, handleDragEnd: handleDragEnd }) }), _jsx(Modal, { isShown: isPresetsModalOpen, title: _jsx(Trans, { id: "dataGrid.presets.title", message: "Presets" }), onClose: onClosePresetsModal, width: "narrow", children: _jsx(PresetsModalBody, { onOpenCreatePresetModal: onOpenCreatePresetModal, gridPresets: gridPresets, handleSelectPreset: handleSelectPreset, handleOpenDeletePresetModal: handleOpenDeletePresetModal, selectedPresetName: selectedPresetName, handleExportPresets: handleExportPresets, handleImportPresets: handleImportPresets, handleImportButtonClick: handleImportButtonClick, fileInputRef: fileInputRef, filters: gridSelectors.filter }) }), _jsx(Modal, { isShown: isCreatePresetModalOpen, title: _jsx(Trans, { id: "dataGrid.createPreset.title", message: "Create preset" }), onCancel: handleCloseCreatePresetModal, onConfirm: handleCreatePreset, isConfirmDisabled: !presetName, width: "narrow", children: _jsx(Input, { type: "text", onChange: handleChangePresetName, value: presetName, label: _jsx(Trans, { id: "dataGrid.createPreset.title", message: "Preset name" }) }) }), _jsx(Modal, { isShown: isDeletePresetModalOpen, title: _jsx(Trans, { id: "dataGrid.deletePreset.title", message: "Delete preset" }), onCancel: onCloseDeletePresetModal, onConfirm: handleDeletePreset, isConfirmDisabled: !presetNameToDelete, width: "narrow", children: _jsxs(_Fragment, { children: [_jsx(Trans, { id: "dataGrid.deletePreset.confirm", message: "Are you sure you want to delete preset" }), " \"", presetNameToDelete, "\" ?"] }) })] }));
26
+ return (_jsxs(_Fragment, { children: [_jsx(Modal, { title: _jsx(Trans, { id: "manageColumn.title", message: "Manage columns" }), onClose: onCloseForm, onCancel: onCloseForm, onExtraAction: resetColumnConfig, onConfirm: onConfirmForm, isShown: manageColumnFormVisible, width: "auto", minWidth: "350px", hasFooter: true, extraActionLabel: _jsx(Trans, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: _jsx(Trans, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: _jsx(Trans, { id: "form.buttonConfirm", message: "Confirm" }), children: _jsx(ManageColumnForm, { columns: manageColumnsFormDefinitions, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, handleDragEnd: handleDragEnd }) }), _jsx(Modal, { isShown: isPresetsModalOpen, title: _jsx(Trans, { id: "dataGrid.presets.title", message: "Presets" }), onClose: onClosePresetsModal, width: "narrow", children: _jsx(PresetsModalBody, { onOpenCreatePresetModal: onOpenCreatePresetModal, gridPresets: gridPresets, handleSelectPreset: handleSelectPreset, handleOpenDeletePresetModal: handleOpenDeletePresetModal, selectedPresetName: selectedPresetName, handleExportPresets: handleExportPresets, handleImportPresets: handleImportPresets, handleImportButtonClick: handleImportButtonClick, fileInputRef: fileInputRef, filters: gridSelectors.filter }) }), _jsx(Modal, { isShown: isCreatePresetModalOpen, title: _jsx(Trans, { id: "dataGrid.createNewPreset.title", message: "Create new preset" }), onCancel: handleCloseCreatePresetModal, onConfirm: handleCreatePreset, isConfirmDisabled: !presetName, width: "narrow", children: _jsx(Input, { type: "text", onChange: handleChangePresetName, value: presetName, label: _jsx(Trans, { id: "dataGrid.presetName.title", message: "Preset name" }) }) }), _jsx(Modal, { isShown: isDeletePresetModalOpen, title: _jsx(Trans, { id: "dataGrid.deletePreset.title", message: "Delete preset" }), onCancel: onCloseDeletePresetModal, onConfirm: handleDeletePreset, isConfirmDisabled: !presetNameToDelete, width: "narrow", children: _jsxs(_Fragment, { children: [_jsx(Trans, { id: "dataGrid.deletePreset.confirm", message: "Are you sure you want to delete preset" }), " \"", presetNameToDelete, "\" ?"] }) })] }));
27
27
  };
@@ -35,7 +35,11 @@ var comparators = {
35
35
  { label: 'yellow', value: 'Yell' },
36
36
  { label: 'blue', value: 'Blue' }
37
37
  ],
38
- number: [{ label: 'between', value: 'between' }, { label: 'gt', value: 'greater' }]
38
+ number: [
39
+ { label: 'eq', value: 'equal' },
40
+ { label: 'gt', value: 'greater' },
41
+ { label: 'between', value: 'between' }
42
+ ]
39
43
  };
40
44
  export default {
41
45
  title: 'Blocks/CommonGrid',
@@ -41,6 +41,17 @@ export var columnDefinitions = [
41
41
  filteringType: 'number',
42
42
  sorting: true,
43
43
  },
44
+ {
45
+ name: 'numberFloatColumn',
46
+ title: 'Number Float Column',
47
+ flexBasis: 160,
48
+ filtering: true,
49
+ filteringType: 'number',
50
+ sorting: true,
51
+ filterExtraProps: {
52
+ isFloat: true,
53
+ },
54
+ },
44
55
  {
45
56
  name: 'dateColumn',
46
57
  group: 'group1',
@@ -15,7 +15,7 @@ export var BottomWrapper = styled(x.div)(templateObject_1 || (templateObject_1 =
15
15
  export var ContentContainer = styled(x.div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n background-color: white;\n box-shadow: gridShadow;\n border-radius: 8px;\n flex-grow: 1;\n"], ["\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n background-color: white;\n box-shadow: gridShadow;\n border-radius: 8px;\n flex-grow: 1;\n"])));
16
16
  export var CommonGridWrap = styled(x.div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n flex-grow: 1;\n"], ["\n flex-grow: 1;\n"])));
17
17
  export var StyledButtonStrip = styled(x.div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: relative;\n padding: 18px 20px;\n display: flex;\n justify-content: space-between;\n width: 100%;\n min-height: 75px;\n flex-wrap: wrap;\n z-index: 2;\n"], ["\n position: relative;\n padding: 18px 20px;\n display: flex;\n justify-content: space-between;\n width: 100%;\n min-height: 75px;\n flex-wrap: wrap;\n z-index: 2;\n"])));
18
- export var CommonGridWithStyles = styled(CommonGrid)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: 40px;\n }\n & .gridHead {\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 1;\n padding-left: 12px;\n border-top: 1px solid ", ";\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n position: relative;\n }\n & .sticky {\n background-color: #fafbfc;\n }\n }\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n & .sticky {\n background-color: #fafbfc;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n & .body {\n margin: 0 1px 1px 1px; // matching margin with .gridHead\n padding-left: 12px;\n flex-grow: 1;\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .gridWrapper {\n background-color: ", ";\n width: ", ";\n padding-bottom: ", ";\n\n @media (min-width: 1024px) {\n height: ", ";\n overflow-y: auto;\n width: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 2px;\n padding-right: 2px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n\n &.selected,\n &.selected > .sticky {\n background-color: #fdf4f3;\n }\n\n :hover {\n background-color: #fdf4f3;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n max-width: 88px;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"], ["\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: 40px;\n }\n & .gridHead {\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 1;\n padding-left: 12px;\n border-top: 1px solid ", ";\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n position: relative;\n }\n & .sticky {\n background-color: #fafbfc;\n }\n }\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n & .sticky {\n background-color: #fafbfc;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n & .body {\n margin: 0 1px 1px 1px; // matching margin with .gridHead\n padding-left: 12px;\n flex-grow: 1;\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .gridWrapper {\n background-color: ", ";\n width: ", ";\n padding-bottom: ", ";\n\n @media (min-width: 1024px) {\n height: ", ";\n overflow-y: auto;\n width: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 2px;\n padding-right: 2px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n\n &.selected,\n &.selected > .sticky {\n background-color: #fdf4f3;\n }\n\n :hover {\n background-color: #fdf4f3;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n max-width: 88px;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"])), th('fonts.primary'), th('colors.lightGray6'), th('fonts.primary'), function (_a) {
18
+ export var CommonGridWithStyles = styled(CommonGrid)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: 40px;\n }\n & .gridHead {\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 1;\n padding-left: 12px;\n border-top: 1px solid ", ";\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n position: relative;\n }\n & .sticky {\n background-color: #fafbfc;\n }\n }\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n & .sticky {\n background-color: #fafbfc;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n & .body {\n margin: 0 1px 1px 1px; // matching margin with .gridHead\n padding-left: 12px;\n flex-grow: 1;\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .gridWrapper {\n background-color: ", ";\n width: ", ";\n padding-bottom: ", ";\n\n @media (min-width: 1024px) {\n height: ", ";\n overflow-y: auto;\n width: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 2px;\n padding-right: 2px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n max-width: 88px;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"], ["\n & .cell {\n padding: 0 4px;\n }\n & .dataRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: normal;\n border-bottom: 1px solid;\n border-color: lightGray3;\n height: 40px;\n }\n & .gridHead {\n background-color: neutral20;\n padding-bottom: 8px;\n position: sticky;\n top: -1px;\n z-index: 1;\n padding-left: 12px;\n border-top: 1px solid ", ";\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .headRow {\n font-size: 12px;\n font-family: ", ";\n color: typoPrimary;\n font-weight: bold;\n border-bottom: none; // TODO fix in common-grid\n\n & .cell {\n overflow: hidden;\n position: relative;\n }\n & .sticky {\n background-color: #fafbfc;\n }\n }\n & .filterRow {\n & .cell {\n overflow: visible;\n }\n & .cell > div {\n width: 100%; // TODO fix in common-grid\n }\n & .sticky {\n background-color: #fafbfc;\n }\n border-bottom: none; // TODO fix in common-grid\n }\n & .body {\n margin: 0 1px 1px 1px; // matching margin with .gridHead\n padding-left: 12px;\n flex-grow: 1;\n @media (min-width: 1024px) {\n padding-left: 20px;\n }\n }\n & .gridWrapper {\n background-color: ", ";\n width: ", ";\n padding-bottom: ", ";\n\n @media (min-width: 1024px) {\n height: ", ";\n overflow-y: auto;\n width: auto;\n padding-bottom: 0;\n }\n @media print {\n margin: 0;\n width: 100%;\n height: auto;\n overflow-x: hidden;\n }\n }\n\n & .fullWidthGrid > .gridWrapper > div {\n width: 100% !important;\n }\n\n & .paginatorWrapper,\n & .buttonsStrip {\n @media print {\n display: none;\n }\n }\n & .cell {\n padding-left: 2px;\n padding-right: 2px;\n @media print {\n white-space: unset;\n }\n }\n\n .dataRow {\n &.grayedOut {\n background: lightGray1;\n }\n\n .sticky-right {\n border-left: 1px solid #dfe1e6;\n }\n .sticky-left {\n border-right: 1px solid #dfe1e6;\n }\n }\n\n @media print {\n .filterRow .sticky {\n display: none;\n }\n\n .headRow .sticky {\n display: none;\n }\n\n .dataRow .sticky {\n display: none;\n }\n }\n\n .resizer {\n z-index: unset;\n }\n\n // hotfix table head\n .cell .sortable {\n display: flex;\n align-items: center;\n padding-right: 2px;\n }\n\n .sticky {\n position: sticky !important;\n max-width: 88px;\n }\n\n .sticky-left {\n left: 0;\n }\n\n .sticky-right {\n right: 0;\n }\n"])), th('fonts.primary'), th('colors.lightGray6'), th('fonts.primary'), function (_a) {
19
19
  var theme = _a.theme;
20
20
  return theme.colors.white;
21
21
  }, function (_a) {
@@ -105,7 +105,7 @@ export type ColumnDefinition<ColumnName extends string = string> = ColumnBasePro
105
105
  systemFilter?: string;
106
106
  title?: string | JSX.Element;
107
107
  filtering?: boolean;
108
- filteringType?: 'number' | 'text' | 'date' | 'flag';
108
+ filteringType?: 'number' | 'text' | 'date' | 'flag' | 'options';
109
109
  disableRowTouch?: boolean;
110
110
  filterExtraProps?: {
111
111
  isMulti?: boolean;
package/ui/index.es.js CHANGED
@@ -15020,58 +15020,59 @@ const Mse = G.div`
15020
15020
  }),
15021
15021
  value: "neq",
15022
15022
  icon: "notEqual"
15023
- }], $y = (e, t) => {
15024
- const r = String(e).replace(",", ".").replace(/[^0-9.]/g, "");
15025
- return r ? t ? (parseFloat(r) || 0).toFixed(t).substr(0, String(e).length) : parseInt(r, 10) : e;
15023
+ }], $y = (e, t, r) => {
15024
+ const n = String(e).replace(",", ".").replace(/[^0-9.]/g, "");
15025
+ return t || !n ? n : r ? (parseFloat(n) || 0).toFixed(r).substr(0, String(e).length) : parseInt(n, 10);
15026
15026
  }, ple = (e) => {
15027
- var B;
15027
+ var R;
15028
15028
  const t = fle(), {
15029
15029
  name: r,
15030
15030
  value: n = {},
15031
15031
  label: i,
15032
15032
  onChange: a,
15033
15033
  decimals: o,
15034
- className: s,
15035
- OverlayComponent: l = dle,
15036
- comparators: u,
15037
- defaultComparator: f,
15038
- isEqual: A,
15039
- ...h
15040
- } = e, [g, m] = Ee(!1), b = (n == null ? void 0 : n.comparator) || f || ((B = u == null ? void 0 : u[0]) == null ? void 0 : B.value) || t[0].value, y = u || (A ? Ale : t), x = n != null && n.value || (n == null ? void 0 : n.value) === 0 ? n.value : "", I = pe(() => m(!1), []), E = po({
15041
- onClose: I
15042
- }), O = pe(() => m(!g), [g, m]), T = Nc((R) => {
15043
- if (b === "between") {
15044
- const N = String(R.target.value).split(",");
15045
- if (N.length > 2) {
15034
+ isFloat: s,
15035
+ className: l,
15036
+ OverlayComponent: u = dle,
15037
+ comparators: f,
15038
+ defaultComparator: A,
15039
+ isEqual: h,
15040
+ ...g
15041
+ } = e, [m, b] = Ee(!1), w = (n == null ? void 0 : n.comparator) || A || ((R = f == null ? void 0 : f[0]) == null ? void 0 : R.value) || t[0].value, x = f || (h ? Ale : t), I = n != null && n.value || (n == null ? void 0 : n.value) === 0 ? n.value : "", E = pe(() => b(!1), []), O = po({
15042
+ onClose: E
15043
+ }), T = pe(() => b(!m), [m, b]), M = Nc((F) => {
15044
+ if (w === "between") {
15045
+ const L = String(F.target.value).split(",");
15046
+ if (L.length > 2) {
15046
15047
  a({
15047
- comparator: b,
15048
+ comparator: w,
15048
15049
  value: ""
15049
15050
  });
15050
15051
  return;
15051
15052
  }
15052
- if (N.length === 2) {
15053
- const L = N.map((J) => $y(J, 0));
15053
+ if (L.length === 2) {
15054
+ const J = L.map((_) => $y(_, !1, 0));
15054
15055
  a({
15055
- comparator: b,
15056
- value: L.join(",")
15056
+ comparator: w,
15057
+ value: J.join(",")
15057
15058
  });
15058
15059
  return;
15059
15060
  }
15060
15061
  }
15061
- const F = $y(R.target.value, o);
15062
+ const P = $y(F.target.value, s, o);
15062
15063
  a({
15063
- comparator: b,
15064
- value: F || F === 0 ? F : ""
15064
+ comparator: w,
15065
+ value: P || P === 0 ? P : ""
15065
15066
  });
15066
- }), M = Nc((R) => {
15067
+ }), B = Nc((F) => {
15067
15068
  a({
15068
- comparator: R.value,
15069
- value: x
15069
+ comparator: F.value,
15070
+ value: I
15070
15071
  });
15071
15072
  });
15072
- return /* @__PURE__ */ p.jsxs("div", { ref: E, children: [
15073
- /* @__PURE__ */ p.jsx(wa, { name: r, value: x, label: i, "data-cy": `${r}Inp`, onChange: T, iconOnClick: O, icon: "ellipsisVertical", iconPlacement: "right", type: "text", className: s, autoComplete: "off", ...h }),
15074
- g && /* @__PURE__ */ p.jsx(l, { children: /* @__PURE__ */ p.jsx(zO, { list: y, selected: b, onClick: M }) })
15073
+ return /* @__PURE__ */ p.jsxs("div", { ref: O, children: [
15074
+ /* @__PURE__ */ p.jsx(wa, { name: r, value: I, label: i, "data-cy": `${r}Inp`, onChange: M, iconOnClick: T, icon: "ellipsisVertical", iconPlacement: "right", type: "text", className: l, autoComplete: "off", ...g }),
15075
+ m && /* @__PURE__ */ p.jsx(u, { children: /* @__PURE__ */ p.jsx(zO, { list: x, selected: w, onClick: B }) })
15075
15076
  ] });
15076
15077
  }, hle = ({
15077
15078
  children: e
@@ -31282,6 +31283,9 @@ const z2 = ({
31282
31283
  `, Q4e = G(gr)`
31283
31284
  position: sticky;
31284
31285
  right: 20px;
31286
+ z-index: 3;
31287
+ margin-left: 8px;
31288
+
31285
31289
  > span > svg {
31286
31290
  stroke: ${V("colors.blue2")};
31287
31291
  width: 18px;
@@ -38130,7 +38134,7 @@ const d9e = ({
38130
38134
  return /* @__PURE__ */ p.jsxs(p.Fragment, { children: [
38131
38135
  /* @__PURE__ */ p.jsx(pc, { title: /* @__PURE__ */ p.jsx(wt, { id: "manageColumn.title", message: "Manage columns" }), onClose: t, onCancel: t, onExtraAction: r, onConfirm: n, isShown: e, width: "auto", minWidth: "350px", hasFooter: !0, extraActionLabel: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: /* @__PURE__ */ p.jsx(wt, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: /* @__PURE__ */ p.jsx(wt, { id: "form.buttonConfirm", message: "Confirm" }), children: /* @__PURE__ */ p.jsx(A9e, { columns: i, columnsConfigValues: a, setColumnsConfigOptions: o, handleDragEnd: s }) }),
38132
38136
  /* @__PURE__ */ p.jsx(pc, { isShown: A, title: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.presets.title", message: "Presets" }), onClose: h, width: "narrow", children: /* @__PURE__ */ p.jsx(p9e, { onOpenCreatePresetModal: E, gridPresets: b, handleSelectPreset: y, handleOpenDeletePresetModal: B, selectedPresetName: g, handleExportPresets: _, handleImportPresets: J, handleImportButtonClick: Z, fileInputRef: L, filters: u.filter }) }),
38133
- /* @__PURE__ */ p.jsx(pc, { isShown: x, title: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.createPreset.title", message: "Create preset" }), onCancel: I, onConfirm: O, isConfirmDisabled: !T, width: "narrow", children: /* @__PURE__ */ p.jsx(wa, { type: "text", onChange: M, value: T, label: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.createPreset.title", message: "Preset name" }) }) }),
38137
+ /* @__PURE__ */ p.jsx(pc, { isShown: x, title: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.createNewPreset.title", message: "Create new preset" }), onCancel: I, onConfirm: O, isConfirmDisabled: !T, width: "narrow", children: /* @__PURE__ */ p.jsx(wa, { type: "text", onChange: M, value: T, label: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.presetName.title", message: "Preset name" }) }) }),
38134
38138
  /* @__PURE__ */ p.jsx(pc, { isShown: N, title: /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.deletePreset.title", message: "Delete preset" }), onCancel: F, onConfirm: R, isConfirmDisabled: !P, width: "narrow", children: /* @__PURE__ */ p.jsxs(p.Fragment, { children: [
38135
38139
  /* @__PURE__ */ p.jsx(wt, { id: "dataGrid.deletePreset.confirm", message: "Are you sure you want to delete preset" }),
38136
38140
  ' "',
@@ -43666,15 +43670,6 @@ const Kke = (e = {}, t) => xye(e, (r) => {
43666
43670
  .sticky-left {
43667
43671
  border-right: 1px solid #dfe1e6;
43668
43672
  }
43669
-
43670
- &.selected,
43671
- &.selected > .sticky {
43672
- background-color: #fdf4f3;
43673
- }
43674
-
43675
- :hover {
43676
- background-color: #fdf4f3;
43677
- }
43678
43673
  }
43679
43674
 
43680
43675
  @media print {