@addev-be/ui 0.2.13 → 0.2.15

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.
Files changed (114) hide show
  1. package/dist/Icons.d.ts +3 -1
  2. package/dist/Icons.js +5 -1
  3. package/dist/components/data/DataGrid/{FilterValuesScroller.d.ts → DataGridFilterMenu/FilterValuesScroller.d.ts} +1 -1
  4. package/dist/components/data/DataGrid/{FilterValuesScroller.js → DataGridFilterMenu/FilterValuesScroller.js} +6 -9
  5. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +3 -3
  6. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +9 -0
  7. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +12 -2
  8. package/dist/components/data/DataGrid/FilterModalContent/index.js +18 -9
  9. package/dist/components/data/DataGrid/helpers/columns.d.ts +1 -0
  10. package/dist/components/data/DataGrid/helpers/columns.js +7 -6
  11. package/dist/components/data/DataGrid/helpers/filters.d.ts +1 -0
  12. package/dist/components/data/DataGrid/helpers/filters.js +71 -2
  13. package/dist/components/data/DataGrid/hooks/useDataGrid.js +2 -1
  14. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +2 -0
  15. package/dist/components/data/DataGrid/styles.d.ts +0 -9
  16. package/dist/components/data/DataGrid/styles.js +2 -12
  17. package/dist/components/data/DataGrid/types.d.ts +2 -0
  18. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +6 -6
  19. package/dist/helpers/numbers.d.ts +1 -0
  20. package/dist/helpers/numbers.js +9 -1
  21. package/dist/services/globalSearch.d.ts +13 -0
  22. package/dist/services/globalSearch.js +8 -0
  23. package/package.json +18 -12
  24. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +0 -9
  25. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +0 -171
  26. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +0 -12
  27. package/dist/components/data/DataGrid/helpers/advancedRequests.js +0 -53
  28. package/eslint.config.js +0 -28
  29. package/src/Icons.tsx +0 -108
  30. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +0 -93
  31. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +0 -262
  32. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +0 -2
  33. package/src/components/data/AdvancedRequestDataGrid/index.tsx +0 -267
  34. package/src/components/data/AdvancedRequestDataGrid/types.ts +0 -47
  35. package/src/components/data/DataGrid/DataGridCell.tsx +0 -73
  36. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +0 -14
  37. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +0 -59
  38. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +0 -181
  39. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +0 -104
  40. package/src/components/data/DataGrid/DataGridEditableCell.tsx +0 -43
  41. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +0 -120
  42. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +0 -75
  43. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +0 -360
  44. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +0 -96
  45. package/src/components/data/DataGrid/DataGridFooter.tsx +0 -42
  46. package/src/components/data/DataGrid/DataGridHeader.tsx +0 -126
  47. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +0 -132
  48. package/src/components/data/DataGrid/FilterModalContent/index.tsx +0 -136
  49. package/src/components/data/DataGrid/FilterModalContent/styles.ts +0 -22
  50. package/src/components/data/DataGrid/VirtualScroller.tsx +0 -46
  51. package/src/components/data/DataGrid/helpers/columns.tsx +0 -295
  52. package/src/components/data/DataGrid/helpers/filters.ts +0 -287
  53. package/src/components/data/DataGrid/helpers/index.ts +0 -2
  54. package/src/components/data/DataGrid/hooks/index.ts +0 -30
  55. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +0 -306
  56. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +0 -175
  57. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +0 -48
  58. package/src/components/data/DataGrid/index.tsx +0 -140
  59. package/src/components/data/DataGrid/styles.ts +0 -323
  60. package/src/components/data/DataGrid/types.ts +0 -267
  61. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +0 -277
  62. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +0 -2
  63. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +0 -16
  64. package/src/components/data/SqlRequestDataGrid/index.tsx +0 -347
  65. package/src/components/data/SqlRequestDataGrid/types.ts +0 -47
  66. package/src/components/data/index.ts +0 -8
  67. package/src/components/forms/Button.tsx +0 -99
  68. package/src/components/forms/IconButton.tsx +0 -56
  69. package/src/components/forms/IndeterminateCheckbox.tsx +0 -46
  70. package/src/components/forms/Select.tsx +0 -40
  71. package/src/components/forms/index.ts +0 -5
  72. package/src/components/forms/styles.ts +0 -20
  73. package/src/components/index.ts +0 -3
  74. package/src/components/layout/Dropdown/index.tsx +0 -79
  75. package/src/components/layout/Dropdown/styles.ts +0 -44
  76. package/src/components/layout/Loading/index.tsx +0 -29
  77. package/src/components/layout/Loading/styles.ts +0 -29
  78. package/src/components/layout/Modal/index.tsx +0 -51
  79. package/src/components/layout/Modal/styles.ts +0 -110
  80. package/src/components/layout/index.ts +0 -3
  81. package/src/components/ui/ContextMenu/index.tsx +0 -79
  82. package/src/components/ui/ContextMenu/styles.ts +0 -119
  83. package/src/config/index.ts +0 -14
  84. package/src/helpers/dates.ts +0 -9
  85. package/src/helpers/getScrollbarSize.ts +0 -14
  86. package/src/helpers/numbers.ts +0 -26
  87. package/src/hooks/index.ts +0 -2
  88. package/src/hooks/useElementSize.ts +0 -24
  89. package/src/hooks/useWindowSize.ts +0 -20
  90. package/src/index.ts +0 -7
  91. package/src/providers/PortalsProvider/index.tsx +0 -54
  92. package/src/providers/PortalsProvider/styles.ts +0 -27
  93. package/src/providers/SettingsProvider/index.tsx +0 -70
  94. package/src/providers/ThemeProvider/ThemeProvider.ts +0 -55
  95. package/src/providers/ThemeProvider/defaultTheme.ts +0 -444
  96. package/src/providers/ThemeProvider/index.ts +0 -3
  97. package/src/providers/ThemeProvider/types.ts +0 -123
  98. package/src/providers/UiProviders/index.tsx +0 -65
  99. package/src/providers/UiProviders/styles.ts +0 -10
  100. package/src/providers/hooks.ts +0 -8
  101. package/src/providers/index.ts +0 -5
  102. package/src/services/HttpService.ts +0 -80
  103. package/src/services/WebSocketService.ts +0 -147
  104. package/src/services/advancedRequests.ts +0 -101
  105. package/src/services/base.ts +0 -31
  106. package/src/services/globalSearch.ts +0 -27
  107. package/src/services/hooks.ts +0 -23
  108. package/src/services/index.ts +0 -2
  109. package/src/services/sqlRequests.ts +0 -110
  110. package/src/styles/animations.scss +0 -30
  111. package/src/styles/index.scss +0 -42
  112. package/src/typings.d.ts +0 -6
  113. package/tsconfig.json +0 -18
  114. package/tsconfig.tsbuildinfo +0 -1
package/dist/Icons.d.ts CHANGED
@@ -23,6 +23,8 @@ import PhoneIcon from '../assets/icons/phone.svg?react';
23
23
  import PlusIcon from '../assets/icons/plus.svg?react';
24
24
  import RightIcon from '../assets/icons/right.svg?react';
25
25
  import SigmaIcon from '../assets/icons/sigma.svg?react';
26
+ import SortCalendarAscendingIcon from '../assets/icons/sort-calendar-ascending.svg?react';
27
+ import SortCalendarDescendingIcon from '../assets/icons/sort-calendar-descending.svg?react';
26
28
  import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
27
29
  import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
28
30
  import TableFooterIcon from '../assets/icons/table-footer.svg?react';
@@ -40,4 +42,4 @@ type AnimatedIconProps = {
40
42
  };
41
43
  export declare const AnimatedIcon: FC<AnimatedIconProps & IconFCProps>;
42
44
  export declare const LoadingIcon: FC<IconFCProps>;
43
- export { ArrowDownAZIcon, ArrowDown19Icon, ArrowDownBigSmallIcon, ArrowUpZAIcon, ArrowUpBigSmallIcon, ArrowUp91Icon, ArrowsRotateIcon, ArrowsUpDownIcon, CheckIcon, ChevronDownIcon, CopyIcon, DownIcon, EllipsisIcon, FilterFullIcon, FilterIcon, FilterSlashIcon, HashtagIcon, ImageSlashIcon, LeftIcon, MagnifierIcon, PhoneIcon, PlusIcon, RightIcon, SigmaIcon, SpinnerIcon, TableColumnsIcon, TableFooterIcon, TableFooterSlashIcon, TableIcon, TallyIcon, UpIcon, UserTieIcon, XBarIcon, };
45
+ export { ArrowDownAZIcon, ArrowDown19Icon, ArrowDownBigSmallIcon, ArrowUpZAIcon, ArrowUpBigSmallIcon, ArrowUp91Icon, ArrowsRotateIcon, ArrowsUpDownIcon, CheckIcon, ChevronDownIcon, CopyIcon, DownIcon, EllipsisIcon, FilterFullIcon, FilterIcon, FilterSlashIcon, HashtagIcon, ImageSlashIcon, LeftIcon, MagnifierIcon, PhoneIcon, PlusIcon, RightIcon, SigmaIcon, SortCalendarAscendingIcon, SortCalendarDescendingIcon, SpinnerIcon, TableColumnsIcon, TableFooterIcon, TableFooterSlashIcon, TableIcon, TallyIcon, UpIcon, UserTieIcon, XBarIcon, };
package/dist/Icons.js CHANGED
@@ -25,7 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.XBarIcon = exports.UserTieIcon = exports.UpIcon = exports.TallyIcon = exports.TableIcon = exports.TableFooterSlashIcon = exports.TableFooterIcon = exports.TableColumnsIcon = exports.SpinnerIcon = exports.SigmaIcon = exports.RightIcon = exports.PlusIcon = exports.PhoneIcon = exports.MagnifierIcon = exports.LeftIcon = exports.ImageSlashIcon = exports.HashtagIcon = exports.FilterSlashIcon = exports.FilterIcon = exports.FilterFullIcon = exports.EllipsisIcon = exports.DownIcon = exports.CopyIcon = exports.ChevronDownIcon = exports.CheckIcon = exports.ArrowsUpDownIcon = exports.ArrowsRotateIcon = exports.ArrowUp91Icon = exports.ArrowUpBigSmallIcon = exports.ArrowUpZAIcon = exports.ArrowDownBigSmallIcon = exports.ArrowDown19Icon = exports.ArrowDownAZIcon = exports.LoadingIcon = exports.AnimatedIcon = void 0;
28
+ exports.XBarIcon = exports.UserTieIcon = exports.UpIcon = exports.TallyIcon = exports.TableIcon = exports.TableFooterSlashIcon = exports.TableFooterIcon = exports.TableColumnsIcon = exports.SpinnerIcon = exports.SortCalendarDescendingIcon = exports.SortCalendarAscendingIcon = exports.SigmaIcon = exports.RightIcon = exports.PlusIcon = exports.PhoneIcon = exports.MagnifierIcon = exports.LeftIcon = exports.ImageSlashIcon = exports.HashtagIcon = exports.FilterSlashIcon = exports.FilterIcon = exports.FilterFullIcon = exports.EllipsisIcon = exports.DownIcon = exports.CopyIcon = exports.ChevronDownIcon = exports.CheckIcon = exports.ArrowsUpDownIcon = exports.ArrowsRotateIcon = exports.ArrowUp91Icon = exports.ArrowUpBigSmallIcon = exports.ArrowUpZAIcon = exports.ArrowDownBigSmallIcon = exports.ArrowDown19Icon = exports.ArrowDownAZIcon = exports.LoadingIcon = exports.AnimatedIcon = void 0;
29
29
  var jsx_runtime_1 = require("react/jsx-runtime");
30
30
  var react_1 = require("react");
31
31
  var arrow_down_1_9_svg_react_1 = __importDefault(require("../assets/icons/arrow-down-1-9.svg?react"));
@@ -76,6 +76,10 @@ var right_svg_react_1 = __importDefault(require("../assets/icons/right.svg?react
76
76
  exports.RightIcon = right_svg_react_1.default;
77
77
  var sigma_svg_react_1 = __importDefault(require("../assets/icons/sigma.svg?react"));
78
78
  exports.SigmaIcon = sigma_svg_react_1.default;
79
+ var sort_calendar_ascending_svg_react_1 = __importDefault(require("../assets/icons/sort-calendar-ascending.svg?react"));
80
+ exports.SortCalendarAscendingIcon = sort_calendar_ascending_svg_react_1.default;
81
+ var sort_calendar_descending_svg_react_1 = __importDefault(require("../assets/icons/sort-calendar-descending.svg?react"));
82
+ exports.SortCalendarDescendingIcon = sort_calendar_descending_svg_react_1.default;
79
83
  var spinner_third_svg_react_1 = __importDefault(require("../assets/icons/spinner-third.svg?react"));
80
84
  exports.SpinnerIcon = spinner_third_svg_react_1.default;
81
85
  var table_columns_svg_react_1 = __importDefault(require("../assets/icons/table-columns.svg?react"));
@@ -1,4 +1,4 @@
1
- import { DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterRenderer, DataGridFilterValue } from './types';
1
+ import { DataGridFilterFormatter, DataGridFilterGroup, DataGridFilterRenderer, DataGridFilterValue } from '../types';
2
2
  type FilterValuesScrollerProps = {
3
3
  values: DataGridFilterValue[];
4
4
  rowHeight?: number;
@@ -38,17 +38,14 @@ exports.FilterValuesScroller = void 0;
38
38
  var jsx_runtime_1 = require("react/jsx-runtime");
39
39
  /* eslint-disable @typescript-eslint/no-explicit-any */
40
40
  var styles = __importStar(require("./styles"));
41
- var lodash_1 = require("lodash");
42
- var helpers_1 = require("./helpers");
41
+ var helpers_1 = require("../helpers");
43
42
  var react_1 = require("react");
44
- var hooks_1 = require("../../../hooks");
43
+ var lodash_1 = require("lodash");
44
+ var hooks_1 = require("../../../../hooks");
45
45
  var CheckboxTemplate = function (_a) {
46
- var selectedValues = _a.selectedValues, value = _a.value, index = _a.index, className = _a.className, style = _a.style, onToggle = _a.onToggle;
46
+ var selectedValues = _a.selectedValues, value = _a.value, index = _a.index, style = _a.style, onToggle = _a.onToggle;
47
47
  var checked = (0, react_1.useMemo)(function () { return value.values.every(function (v) { return selectedValues.includes(v); }); }, [selectedValues, value.values]);
48
- return ((0, jsx_runtime_1.jsxs)(styles.FilterValueContainer, { className: (0, lodash_1.join)([
49
- // 'absolute left-0 right-0 flex flex-row cursor-pointer hover:bg-gray-50',
50
- className,
51
- ], ' '), style: __assign(__assign({}, style), { paddingLeft: "".concat(value.level, "rem") }), title: value.title, onClick: function () { return onToggle === null || onToggle === void 0 ? void 0 : onToggle(value.values); }, children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: checked, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: value.displayValue || '(Vides)' })] }, index));
48
+ return ((0, jsx_runtime_1.jsxs)(styles.FilterValueContainer, { style: __assign(__assign({}, style), { paddingLeft: "".concat(value.level, "rem") }), title: value.title, onClick: function () { return onToggle === null || onToggle === void 0 ? void 0 : onToggle(value.values); }, children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: checked, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { children: value.displayValue || '(Vides)' })] }, index));
52
49
  };
53
50
  var FilterValuesScroller = function (_a) {
54
51
  var values = _a.values, _b = _a.rowHeight, rowHeight = _b === void 0 ? styles.DEFAULT_FILTER_ROW_HEIGHT : _b, onRangeChange = _a.onRangeChange, onToggle = _a.onToggle, _c = _a.formatter, formatter = _c === void 0 ? helpers_1.defaultRendererAndFormatter : _c, _d = _a.renderer, renderer = _d === void 0 ? helpers_1.defaultRendererAndFormatter : _d, _e = _a.selectedValues, selectedValues = _e === void 0 ? [] : _e, groups = _a.groups;
@@ -69,6 +66,6 @@ var FilterValuesScroller = function (_a) {
69
66
  (0, react_1.useEffect)(function () {
70
67
  onRangeChange === null || onRangeChange === void 0 ? void 0 : onRangeChange(index, length);
71
68
  }, [index, length, onRangeChange]);
72
- return ((0, jsx_runtime_1.jsx)(styles.FilterValuesScrollerContainer, { ref: scrollableRef, onScroll: onScroll, "$rowHeight": rowHeight, children: (0, jsx_runtime_1.jsx)("div", { style: { height: "".concat(values.length * rowHeight, "px") }, children: visibleCheckboxes.map(function (value, index) { return ((0, jsx_runtime_1.jsx)(CheckboxTemplate, { className: "checkbox", style: { top: firstCheckboxTop + index * rowHeight + 'px' }, selectedValues: selectedValues, value: value, index: index, onToggle: onToggle }, index)); }) }) }));
69
+ return ((0, jsx_runtime_1.jsx)(styles.FilterValuesScrollerContainer, { ref: scrollableRef, onScroll: onScroll, "$rowHeight": rowHeight, children: (0, jsx_runtime_1.jsx)("div", { style: { height: "".concat(checkboxes.length * rowHeight, "px") }, children: visibleCheckboxes.map(function (value, index) { return ((0, jsx_runtime_1.jsx)(CheckboxTemplate, { style: { top: firstCheckboxTop + index * rowHeight + 'px' }, selectedValues: selectedValues, value: value, index: index, onToggle: onToggle }, index)); }) }) }));
73
70
  };
74
71
  exports.FilterValuesScroller = FilterValuesScroller;
@@ -64,18 +64,18 @@ var helpers_1 = require("../helpers");
64
64
  var lodash_1 = require("lodash");
65
65
  var react_1 = require("react");
66
66
  var ContextMenu_1 = require("../../../ui/ContextMenu");
67
- var FilterValuesScroller_1 = require("../FilterValuesScroller");
67
+ var FilterValuesScroller_1 = require("./FilterValuesScroller");
68
68
  var forms_1 = require("../../../forms");
69
69
  var hooks_1 = require("./hooks");
70
70
  var sortAsc = {
71
71
  number: ['Trier du plus petit au plus grand', Icons_1.ArrowDown19Icon],
72
72
  text: ['Trier de A à Z', Icons_1.ArrowDownAZIcon],
73
- // date: 'Trier du plus ancien au plus récent',
73
+ date: ['Trier du plus ancien au plus récent', Icons_1.SortCalendarAscendingIcon],
74
74
  };
75
75
  var sortDesc = {
76
76
  number: ['Trier du plus grand au plus petit', Icons_1.ArrowUp91Icon],
77
77
  text: ['Trier de Z à A', Icons_1.ArrowUpZAIcon],
78
- // date: 'Trier du plus récent au plus ancien',
78
+ date: ['Trier du plus récent au plus ancien', Icons_1.SortCalendarDescendingIcon],
79
79
  };
80
80
  var footerFunctionsTexts = {
81
81
  average: 'Moyenne',
@@ -1,3 +1,4 @@
1
+ export declare const DEFAULT_FILTER_ROW_HEIGHT = 24;
1
2
  export declare const InputContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
2
3
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
3
4
  }>, never>, never>> & string;
@@ -7,3 +8,11 @@ export declare const CheckboxesContainer: import("styled-components/dist/types")
7
8
  export declare const Separator: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
8
9
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
9
10
  }>, never>, never>> & string;
11
+ export declare const FilterValueContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
12
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
13
+ }>, never>, never>> & string;
14
+ export declare const FilterValuesScrollerContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
15
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
16
+ }>, never>, {
17
+ $rowHeight?: number;
18
+ }>> & string;
@@ -7,8 +7,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  return (mod && mod.__esModule) ? mod : { "default": mod };
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.Separator = exports.CheckboxesContainer = exports.InputContainer = void 0;
10
+ exports.FilterValuesScrollerContainer = exports.FilterValueContainer = exports.Separator = exports.CheckboxesContainer = exports.InputContainer = exports.DEFAULT_FILTER_ROW_HEIGHT = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
+ exports.DEFAULT_FILTER_ROW_HEIGHT = 24;
12
13
  exports.InputContainer = styled_components_1.default.div.attrs({
13
14
  className: 'InputContainer',
14
15
  })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n border-radius: var(--rounded-md);\n padding: 0 var(--space-1);\n\n svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: var(--space-4);\n display: flex;\n align-items: center;\n fill: var(--color-neutral-400);\n width: var(--space-4);\n height: var(--space-4);\n }\n\n input {\n padding-left: var(--space-8);\n }\n"], ["\n position: relative;\n border-radius: var(--rounded-md);\n padding: 0 var(--space-1);\n\n svg {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: var(--space-4);\n display: flex;\n align-items: center;\n fill: var(--color-neutral-400);\n width: var(--space-4);\n height: var(--space-4);\n }\n\n input {\n padding-left: var(--space-8);\n }\n"])));
@@ -18,4 +19,13 @@ exports.CheckboxesContainer = styled_components_1.default.div.attrs({
18
19
  exports.Separator = styled_components_1.default.div.attrs({
19
20
  className: 'Separator',
20
21
  })(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border-top: 1px solid var(--color-neutral-200);\n margin: var(--space-1) 0;\n"], ["\n border-top: 1px solid var(--color-neutral-200);\n margin: var(--space-1) 0;\n"])));
21
- var templateObject_1, templateObject_2, templateObject_3;
22
+ exports.FilterValueContainer = styled_components_1.default.div.attrs({
23
+ className: 'FilterValueContainer',
24
+ })(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n position: absolute;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n &:hover {\n background-color: var(--color-neutral-50);\n }\n"], ["\n position: absolute;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n &:hover {\n background-color: var(--color-neutral-50);\n }\n"])));
25
+ exports.FilterValuesScrollerContainer = styled_components_1.default.div.attrs({
26
+ className: 'FilterValuesScrollerContainer',
27
+ })(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n display: block;\n font-size: var(--text-base);\n background-color: var(--color-neutral-0);\n overflow-y: scroll;\n overflow-x: hidden;\n height: 100%;\n\n & > div {\n position: relative;\n }\n\n & ", " {\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: ", ";\n\n input[type='checkbox'] {\n margin-right: var(--space-1);\n }\n }\n"], ["\n display: block;\n font-size: var(--text-base);\n background-color: var(--color-neutral-0);\n overflow-y: scroll;\n overflow-x: hidden;\n height: 100%;\n\n & > div {\n position: relative;\n }\n\n & ", " {\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: ", ";\n\n input[type='checkbox'] {\n margin-right: var(--space-1);\n }\n }\n"])), exports.FilterValueContainer, function (_a) {
28
+ var _b = _a.$rowHeight, $rowHeight = _b === void 0 ? exports.DEFAULT_FILTER_ROW_HEIGHT : _b;
29
+ return "".concat($rowHeight, "px");
30
+ });
31
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -53,6 +53,13 @@ var react_1 = require("react");
53
53
  // import { Select } from '../../Select';
54
54
  // import clx from 'classnames';
55
55
  var filterOperators = {
56
+ date: {
57
+ after: 'Après',
58
+ before: 'Avant',
59
+ equals: 'Égal à',
60
+ notEquals: 'Différent de',
61
+ inRange: "Dans l'intervalle",
62
+ },
56
63
  number: {
57
64
  equals: 'Égal à',
58
65
  notEquals: 'Différent de',
@@ -94,15 +101,17 @@ var FilterModalContent = function (_a) {
94
101
  newValues[0] = String(e.target.value);
95
102
  onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
96
103
  }
97
- } })] }), operator === 'inRange' && ((0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue2", children: [(0, jsx_runtime_1.jsx)("span", { children: "et" }), (0, jsx_runtime_1.jsx)("input", { name: "filterValue2", type: filter.type, value: (_c = values[1]) !== null && _c !== void 0 ? _c : '',
98
- // className="text-sm w-24"
99
- onChange: function (e) {
100
- var newValues = __spreadArray([], values, true);
101
- newValues[0] =
102
- type === 'number'
103
- ? Number(e.target.value)
104
- : String(e.target.value);
105
- onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
104
+ } })] }), operator === 'inRange' && ((0, jsx_runtime_1.jsxs)("label", { htmlFor: "filterValue2", children: [(0, jsx_runtime_1.jsx)("span", { children: "et" }), (0, jsx_runtime_1.jsx)(forms_1.Input, { name: "filterValue2", type: filter.type, value: (_c = values[1]) !== null && _c !== void 0 ? _c : '', onChange: function (e) {
105
+ if (type === 'number') {
106
+ var newValues = __spreadArray([], values, true);
107
+ newValues[1] = Number(e.target.value);
108
+ onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
109
+ }
110
+ else {
111
+ var newValues = __spreadArray([], values, true);
112
+ newValues[1] = String(e.target.value);
113
+ onFilterChanged(__assign(__assign({}, filter), { values: newValues }));
114
+ }
106
115
  } })] }))] }));
107
116
  };
108
117
  exports.FilterModalContent = FilterModalContent;
@@ -1,5 +1,6 @@
1
1
  import { DataGridColumn, DataGridColumns, DataGridSettings } from '../types';
2
2
  export declare const isColumnVisible: <R>(obj: DataGridColumn<R> | DataGridSettings) => boolean;
3
+ export declare const buildExcelFormat: (decimals?: number, suffix?: string) => string;
3
4
  export declare const textColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
4
5
  export declare const mailColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
5
6
  export declare const phoneColumn: <R extends Record<string, any>>(key: string, title: string, options?: Partial<DataGridColumn<R>>) => DataGridColumns<R>;
@@ -14,10 +14,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.colorColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.isColumnVisible = void 0;
17
+ exports.colorColumn = exports.checkboxColumn = exports.percentageColumn = exports.moneyColumn = exports.numberColumn = exports.monthColumn = exports.dateColumn = exports.phoneColumn = exports.mailColumn = exports.textColumn = exports.buildExcelFormat = exports.isColumnVisible = void 0;
18
18
  var jsx_runtime_1 = require("react/jsx-runtime");
19
- var numbers_1 = require("../../../../helpers/numbers");
20
19
  var filters_1 = require("./filters");
20
+ var numbers_1 = require("../../../../helpers/numbers");
21
21
  var moment_1 = __importDefault(require("moment"));
22
22
  var lodash_1 = require("lodash");
23
23
  var isColumnVisible = function (obj) { return (obj === null || obj === void 0 ? void 0 : obj.order) !== -1; };
@@ -27,6 +27,7 @@ var buildExcelFormat = function (decimals, suffix) {
27
27
  if (suffix === void 0) { suffix = ''; }
28
28
  return "#0".concat(decimals > 0 ? ".".concat((0, lodash_1.repeat)('0', decimals)) : '').concat(suffix);
29
29
  };
30
+ exports.buildExcelFormat = buildExcelFormat;
30
31
  var textColumn = function (key, title, options) {
31
32
  var _a;
32
33
  return (_a = {},
@@ -61,7 +62,7 @@ exports.phoneColumn = phoneColumn;
61
62
  var dateColumn = function (key, title, options) {
62
63
  var _a;
63
64
  return (_a = {},
64
- _a[key] = __assign({ name: title, type: 'date', render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: __assign(__assign({}, (0, filters_1.textFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; } }) }, options),
65
+ _a[key] = __assign({ name: title, type: 'date', render: function (row) { var _a; return (_a = (0, moment_1.default)(row[key]).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: function (_, filteredRows) { return "".concat(filteredRows.length, " \u00E9l\u00E9ments"); }, filter: __assign(__assign({}, (0, filters_1.dateFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, moment_1.default)(value).format('DD/MM/YYYY')) !== null && _a !== void 0 ? _a : ''; } }) }, options),
65
66
  _a);
66
67
  };
67
68
  exports.dateColumn = dateColumn;
@@ -76,7 +77,7 @@ var numberColumn = function (key, title, decimals, options) {
76
77
  var _a;
77
78
  if (decimals === void 0) { decimals = 2; }
78
79
  return (_a = {},
79
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: {
80
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, exports.buildExcelFormat)(decimals); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, footer: {
80
81
  sum: function (_, filteredRows) {
81
82
  return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
82
83
  },
@@ -99,7 +100,7 @@ var moneyColumn = function (key, title, decimals, options) {
99
100
  var _a;
100
101
  if (decimals === void 0) { decimals = 2; }
101
102
  return (_a = {},
102
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return buildExcelFormat(decimals, ' €'); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, filters_1.numberFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
103
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, exports.buildExcelFormat)(decimals, ' €'); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, filters_1.numberFilter)(key)), { renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
103
104
  sum: function (_, filteredRows) {
104
105
  return (0, numbers_1.formatMoney)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0), decimals);
105
106
  },
@@ -122,7 +123,7 @@ var percentageColumn = function (key, title, decimals, options) {
122
123
  var _a;
123
124
  if (decimals === void 0) { decimals = 2; }
124
125
  return (_a = {},
125
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return buildExcelFormat(decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key), footer: {
126
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, exports.buildExcelFormat)(decimals, '%'); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: (0, filters_1.numberFilter)(key), footer: {
126
127
  average: function (_, filteredRows) {
127
128
  return (0, numbers_1.formatNumber)(filteredRows.reduce(function (acc, row) { var _a; return acc + ((_a = row[key]) !== null && _a !== void 0 ? _a : 0); }, 0) /
128
129
  (filteredRows.length || 1), decimals);
@@ -13,5 +13,6 @@ export declare const groupDatesByYearAndMonth: (dates: any[]) => Record<string,
13
13
  export declare const getDateGroups: (dates: any[]) => DataGridFilterGroup[];
14
14
  export declare const defaultRendererAndFormatter: (value: any) => string;
15
15
  export declare const getCheckboxes: (values: DataGridFilterValue[], displayValue: DataGridFilterValue, renderer: DataGridFilterRenderer, formatter: DataGridFilterFormatter, groups?: DataGridFilterGroup[], level?: number) => DataGridFilterCheckbox[];
16
+ export declare const dateFilter: (key: string) => DataGridFilter<"date">;
16
17
  export declare const textFilter: (key: string) => DataGridFilter<"text">;
17
18
  export declare const numberFilter: (key: string) => DataGridFilter<"number">;
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.numberFilter = exports.textFilter = exports.getCheckboxes = exports.defaultRendererAndFormatter = exports.getDateGroups = exports.groupDatesByYearAndMonth = exports.defaultValueParsers = exports.defaultFilterValues = exports.defaultFilterGetter = exports.applyFilter = exports.applyFilters = exports.filtersPredicates = void 0;
16
+ exports.numberFilter = exports.textFilter = exports.dateFilter = exports.getCheckboxes = exports.defaultRendererAndFormatter = exports.getDateGroups = exports.groupDatesByYearAndMonth = exports.defaultValueParsers = exports.defaultFilterValues = exports.defaultFilterGetter = exports.applyFilter = exports.applyFilters = exports.filtersPredicates = void 0;
17
17
  var moment_1 = __importDefault(require("moment"));
18
18
  var escapeRegExp = function (s) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); };
19
19
  var textContainsPredicate = function () {
@@ -141,7 +141,67 @@ var numberInArrayPredicate = function () {
141
141
  }
142
142
  return function (valueToVerify) { return filterValues.includes(valueToVerify); };
143
143
  };
144
+ var dateBeforePredicate = function () {
145
+ var filterValues = [];
146
+ for (var _i = 0; _i < arguments.length; _i++) {
147
+ filterValues[_i] = arguments[_i];
148
+ }
149
+ var limitDate = (0, moment_1.default)(filterValues[0]);
150
+ return function (valueToVerify) { return (0, moment_1.default)(valueToVerify).isBefore(limitDate); };
151
+ };
152
+ var dateAfterPredicate = function () {
153
+ var filterValues = [];
154
+ for (var _i = 0; _i < arguments.length; _i++) {
155
+ filterValues[_i] = arguments[_i];
156
+ }
157
+ var limitDate = (0, moment_1.default)(filterValues[0]);
158
+ return function (valueToVerify) { return (0, moment_1.default)(valueToVerify).isAfter(limitDate); };
159
+ };
160
+ var dateEqualsPredicate = function () {
161
+ var filterValues = [];
162
+ for (var _i = 0; _i < arguments.length; _i++) {
163
+ filterValues[_i] = arguments[_i];
164
+ }
165
+ var date = (0, moment_1.default)(filterValues[0]);
166
+ return function (valueToVerify) { return (0, moment_1.default)(valueToVerify).isSame(date); };
167
+ };
168
+ var dateNotEqualsPredicate = function () {
169
+ var filterValues = [];
170
+ for (var _i = 0; _i < arguments.length; _i++) {
171
+ filterValues[_i] = arguments[_i];
172
+ }
173
+ var date = (0, moment_1.default)(filterValues[0]);
174
+ return function (valueToVerify) { return !(0, moment_1.default)(valueToVerify).isSame(date); };
175
+ };
176
+ var dateInRangePredicate = function () {
177
+ var filterValues = [];
178
+ for (var _i = 0; _i < arguments.length; _i++) {
179
+ filterValues[_i] = arguments[_i];
180
+ }
181
+ var date1 = (0, moment_1.default)(filterValues[0]);
182
+ var date2 = (0, moment_1.default)(filterValues[1]);
183
+ var startDate = date1.isBefore(date2) ? date1 : date2;
184
+ var endDate = date1.isBefore(date2) ? date2 : date1;
185
+ return function (valueToVerify) {
186
+ return (0, moment_1.default)(valueToVerify).isBetween(startDate, endDate, 'days', '[]');
187
+ };
188
+ };
189
+ var dateInArrayPredicate = function () {
190
+ var filterValues = [];
191
+ for (var _i = 0; _i < arguments.length; _i++) {
192
+ filterValues[_i] = arguments[_i];
193
+ }
194
+ return function (valueToVerify) { return filterValues.includes(valueToVerify); };
195
+ };
144
196
  exports.filtersPredicates = {
197
+ date: {
198
+ before: dateBeforePredicate,
199
+ after: dateAfterPredicate,
200
+ equals: dateEqualsPredicate,
201
+ notEquals: dateNotEqualsPredicate,
202
+ inRange: dateInRangePredicate,
203
+ inArray: dateInArrayPredicate,
204
+ },
145
205
  text: {
146
206
  contains: textContainsPredicate,
147
207
  notContains: textNotContainsPredicate,
@@ -179,10 +239,12 @@ var defaultFilterGetter = function (row, columnKey) {
179
239
  };
180
240
  exports.defaultFilterGetter = defaultFilterGetter;
181
241
  exports.defaultFilterValues = {
242
+ date: '',
182
243
  text: '',
183
244
  number: 0,
184
245
  };
185
246
  exports.defaultValueParsers = {
247
+ date: function (value) { return (0, moment_1.default)(value).format('YYYY-MM-DD'); },
186
248
  text: function (value) { return value; },
187
249
  number: function (value) { return parseFloat(value); },
188
250
  };
@@ -192,7 +254,7 @@ var groupDatesByYearAndMonth = function (dates) {
192
254
  if (!acc[year]) {
193
255
  acc[year] = {};
194
256
  }
195
- var yearAndMonth = (0, moment_1.default)(date).format("YYYY-MM");
257
+ var yearAndMonth = (0, moment_1.default)(date).format("MM/YYYY");
196
258
  if (!acc[year][yearAndMonth]) {
197
259
  acc[year][yearAndMonth] = [];
198
260
  }
@@ -249,6 +311,13 @@ var getCheckboxes = function (values, displayValue, renderer, formatter, groups,
249
311
  }); });
250
312
  };
251
313
  exports.getCheckboxes = getCheckboxes;
314
+ var dateFilter = function (key) { return ({
315
+ type: 'date',
316
+ operator: 'before',
317
+ values: [''],
318
+ getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; },
319
+ }); };
320
+ exports.dateFilter = dateFilter;
252
321
  var textFilter = function (key) { return ({
253
322
  type: 'text',
254
323
  operator: 'contains',
@@ -176,7 +176,8 @@ var useDataGrid = function (props, override) {
176
176
  acc[columnKey] = column.footer;
177
177
  }
178
178
  else if (typeof column.footer === 'object' &&
179
- typeof column.footer[footerKey] === 'function') {
179
+ typeof column.footer[footerKey] === 'function' &&
180
+ column.footer[footerKey] !== null) {
180
181
  acc[columnKey] = column.footer[footerKey];
181
182
  }
182
183
  return acc;
@@ -74,6 +74,8 @@ var useDataGridCopy = function (_a) {
74
74
  }, []);
75
75
  var generateCellHtml = (0, react_1.useCallback)(function (col, value) { return "<td style=\"\n ".concat(col.excelFormatter
76
76
  ? "mso-number-format: '" + col.excelFormatter(col) + "';"
77
+ : '', "\n ").concat(col.excelBackgroundColor
78
+ ? "background-color: '" + col.excelBackgroundColor(value) + "';"
77
79
  : '', "\n white-space: nowrap;\n \">\n ").concat(generateCellText(col, value), "\n </td>"); }, [generateCellText]);
78
80
  var generateCopyHtml = (0, react_1.useCallback)(function (rowsToCopy, includeHeaders, includeFooters) {
79
81
  return "\n <table>\n ".concat(includeHeaders ? generateHeadersHtml() : '', "\n ").concat((rowsToCopy || [])
@@ -4,7 +4,6 @@ export declare const TOOLBAR_HEIGHT = 40;
4
4
  export declare const DEFAULT_HEADER_ROW_HEIGHT = 40;
5
5
  export declare const DEFAULT_FOOTER_ROW_HEIGHT = 40;
6
6
  export declare const DEFAULT_ROW_HEIGHT = 32;
7
- export declare const DEFAULT_FILTER_ROW_HEIGHT = 24;
8
7
  export declare const TopPaddingRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
9
8
  export declare const BottomPaddingRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
10
9
  export declare const VirtualScrollerContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
@@ -58,12 +57,4 @@ export declare const HeaderSelectionCell: import("styled-components/dist/types")
58
57
  export declare const ResizeBackdrop: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
59
58
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
60
59
  }>, never>, never>> & string;
61
- export declare const FilterValuesScrollerContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
62
- ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
63
- }>, never>, {
64
- $rowHeight?: number;
65
- }>> & string;
66
- export declare const FilterValueContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
67
- ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
68
- }>, never>, never>> & string;
69
60
  export {};
@@ -27,14 +27,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
27
27
  return result;
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.FilterValueContainer = exports.FilterValuesScrollerContainer = exports.ResizeBackdrop = exports.HeaderSelectionCell = exports.SelectionCell = exports.LoadingCell = exports.DataGridRow = exports.DataGridFooterRow = exports.DataGridHeaderRow = exports.DataGridContainer = exports.DataGridToolsRow = exports.DataGridCell = exports.DataGridHeaderCellContainer = exports.DataGridResizeGrip = exports.VirtualScrollerRowsContainer = exports.VirtualScrollerContainer = exports.BottomPaddingRow = exports.TopPaddingRow = exports.DEFAULT_FILTER_ROW_HEIGHT = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_FOOTER_ROW_HEIGHT = exports.DEFAULT_HEADER_ROW_HEIGHT = exports.TOOLBAR_HEIGHT = exports.VIRTUAL_SCROLL_TOLERANCE = void 0;
30
+ exports.ResizeBackdrop = exports.HeaderSelectionCell = exports.SelectionCell = exports.LoadingCell = exports.DataGridRow = exports.DataGridFooterRow = exports.DataGridHeaderRow = exports.DataGridContainer = exports.DataGridToolsRow = exports.DataGridCell = exports.DataGridHeaderCellContainer = exports.DataGridResizeGrip = exports.VirtualScrollerRowsContainer = exports.VirtualScrollerContainer = exports.BottomPaddingRow = exports.TopPaddingRow = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_FOOTER_ROW_HEIGHT = exports.DEFAULT_HEADER_ROW_HEIGHT = exports.TOOLBAR_HEIGHT = exports.VIRTUAL_SCROLL_TOLERANCE = void 0;
31
31
  var styled_components_1 = __importStar(require("styled-components"));
32
32
  exports.VIRTUAL_SCROLL_TOLERANCE = 20;
33
33
  exports.TOOLBAR_HEIGHT = 40;
34
34
  exports.DEFAULT_HEADER_ROW_HEIGHT = 40;
35
35
  exports.DEFAULT_FOOTER_ROW_HEIGHT = 40;
36
36
  exports.DEFAULT_ROW_HEIGHT = 32;
37
- exports.DEFAULT_FILTER_ROW_HEIGHT = 24;
38
37
  exports.TopPaddingRow = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject([""], [""])));
39
38
  exports.BottomPaddingRow = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject([""], [""])));
40
39
  exports.VirtualScrollerContainer = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: relative;\n overflow: visible;\n height: ", ";\n"], ["\n position: relative;\n overflow: visible;\n height: ", ";\n"])), function (_a) {
@@ -126,13 +125,4 @@ exports.ResizeBackdrop = styled_components_1.default.div.attrs({
126
125
  className: 'ResizeBackdrop',
127
126
  })(templateObject_24 || (templateObject_24 = __makeTemplateObject(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: col-resize;\n"], ["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0);\n cursor: col-resize;\n"])));
128
127
  exports.ResizeBackdrop.displayName = 'ResizeBackdrop';
129
- exports.FilterValuesScrollerContainer = styled_components_1.default.div.attrs({
130
- className: 'FilterValuesScrollerContainer',
131
- })(templateObject_25 || (templateObject_25 = __makeTemplateObject(["\n display: block;\n font-size: var(--text-base);\n background-color: var(--color-neutral-0);\n overflow-y: scroll;\n overflow-x: hidden;\n height: 100%;\n\n & > div {\n position: relative;\n }\n\n & .checkbox {\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: ", ";\n\n input[type='checkbox'] {\n margin-right: var(--space-1);\n }\n }\n"], ["\n display: block;\n font-size: var(--text-base);\n background-color: var(--color-neutral-0);\n overflow-y: scroll;\n overflow-x: hidden;\n height: 100%;\n\n & > div {\n position: relative;\n }\n\n & .checkbox {\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: ", ";\n\n input[type='checkbox'] {\n margin-right: var(--space-1);\n }\n }\n"])), function (_a) {
132
- var _b = _a.$rowHeight, $rowHeight = _b === void 0 ? exports.DEFAULT_FILTER_ROW_HEIGHT : _b;
133
- return "".concat($rowHeight, "px");
134
- });
135
- exports.FilterValueContainer = styled_components_1.default.div.attrs({
136
- className: 'FilterValueContainer',
137
- })(templateObject_26 || (templateObject_26 = __makeTemplateObject(["\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n &:hover {\n background-color: var(--color-neutral-50);\n }\n"], ["\n position: absolute;\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n &:hover {\n background-color: var(--color-neutral-50);\n }\n"])));
138
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25, templateObject_26;
128
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24;
@@ -12,6 +12,7 @@ export type DataGridColumn<R> = {
12
12
  component?: DataGridCellFC;
13
13
  editable?: boolean;
14
14
  excelFormatter?: (value: any) => string;
15
+ excelBackgroundColor?: (value: any) => string;
15
16
  excelValue?: (value: any) => string;
16
17
  filter?: DataGridFilter;
17
18
  footer?: DataGridFooterFunction<R> | Record<string, DataGridFooterFunction<R> | null>;
@@ -131,6 +132,7 @@ export type DataGridFilterOperators<K extends string, T> = {
131
132
  [key in K]: DataGridFilterPredicateBuilder<T>;
132
133
  };
133
134
  export type DataGridFilterPredicates = {
135
+ date: DataGridFilterOperators<'before' | 'after' | 'equals' | 'notEquals' | 'inRange' | 'inArray', string>;
134
136
  text: DataGridFilterOperators<'contains' | 'notContains' | 'equals' | 'notEquals' | 'startsWith' | 'endsWith' | 'inArray', string>;
135
137
  number: DataGridFilterOperators<'equals' | 'notEquals' | 'lessThan' | 'lessThanOrEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'inRange' | 'inArray', number>;
136
138
  };
@@ -13,8 +13,8 @@ var __assign = (this && this.__assign) || function () {
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.sqlColorColumn = exports.sqlCheckboxColumn = exports.sqlPercentageColumn = exports.sqlMoneyColumn = exports.sqlNumberColumn = exports.sqlMonthColumn = exports.sqlDateColumn = exports.sqlPhoneColumn = exports.sqlMailColumn = exports.sqlComposedColumn = exports.sqlTextColumn = void 0;
15
15
  var jsx_runtime_1 = require("react/jsx-runtime");
16
- var numbers_1 = require("../../../../helpers/numbers");
17
16
  var helpers_1 = require("../../DataGrid/helpers");
17
+ var numbers_1 = require("../../../../helpers/numbers");
18
18
  var dates_1 = require("../../../../helpers/dates");
19
19
  var sqlTextColumn = function (key, title, options) {
20
20
  var _a;
@@ -58,7 +58,7 @@ exports.sqlPhoneColumn = sqlPhoneColumn;
58
58
  var sqlDateColumn = function (key, title, options) {
59
59
  var _a;
60
60
  return (_a = {},
61
- _a[key] = __assign({ name: title, type: 'date', render: function (row) { return (0, dates_1.formatDate)(row[key]); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
61
+ _a[key] = __assign({ name: title, type: 'date', render: function (row) { return (0, dates_1.formatDate)(row[key]); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return 'dd/mm/yyyy'; }, excelValue: function (value) { return (0, dates_1.formatDate)(value, 'YYYY-MM-DD'); }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, formatter: function (value) { return (0, dates_1.formatDate)(value); }, renderer: function (value) { return (0, dates_1.formatDate)(value); } }), footer: function (rows) { return "".concat(rows[0][key], " \u00E9l\u00E9ments"); } }, options),
62
62
  _a);
63
63
  };
64
64
  exports.sqlDateColumn = sqlDateColumn;
@@ -73,7 +73,7 @@ var sqlNumberColumn = function (key, title, decimals, options) {
73
73
  var _a;
74
74
  if (decimals === void 0) { decimals = 2; }
75
75
  return (_a = {},
76
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
76
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatNumber)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, helpers_1.buildExcelFormat)(decimals); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatNumber)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
77
77
  sum: null,
78
78
  avg: null,
79
79
  count: null,
@@ -87,7 +87,7 @@ var sqlMoneyColumn = function (key, title, decimals, options) {
87
87
  var _a;
88
88
  if (decimals === void 0) { decimals = 2; }
89
89
  return (_a = {},
90
- _a[key] = __assign({ name: title, type: 'number', render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
90
+ _a[key] = __assign({ name: title, type: 'number', render: function (row) { var _a; return (_a = (0, numbers_1.formatMoney)(row[key], decimals)) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, helpers_1.buildExcelFormat)(decimals, ' €'); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatMoney)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }), footer: {
91
91
  sum: null,
92
92
  avg: null,
93
93
  count: null,
@@ -101,7 +101,7 @@ var sqlPercentageColumn = function (key, title, decimals, options) {
101
101
  var _a;
102
102
  if (decimals === void 0) { decimals = 2; }
103
103
  return (_a = {},
104
- _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return '#0.00'; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatPercentage)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }) }, options),
104
+ _a[key] = __assign({ name: title, render: function (row) { var _a; return (_a = (0, numbers_1.formatPercentage)(row[key])) !== null && _a !== void 0 ? _a : ''; }, excelFormatter: function () { return (0, helpers_1.buildExcelFormat)(decimals, '%'); }, excelValue: function (value) { return (0, numbers_1.formatNumberInvariant)(value, decimals); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.numberFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : 0; }, renderer: function (value) { var _a; return (_a = (0, numbers_1.formatPercentage)(value, decimals)) !== null && _a !== void 0 ? _a : ''; } }) }, options),
105
105
  _a);
106
106
  };
107
107
  exports.sqlPercentageColumn = sqlPercentageColumn;
@@ -115,7 +115,7 @@ exports.sqlCheckboxColumn = sqlCheckboxColumn;
115
115
  var sqlColorColumn = function (key, title, options) {
116
116
  var _a;
117
117
  return (_a = {},
118
- _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsx)("div", { style: { position: 'absolute', inset: 0, backgroundColor: row[key] }, children: "\u00A0" })); }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, renderer: function (value) { return ((0, jsx_runtime_1.jsx)("div", { style: {
118
+ _a[key] = __assign({ name: title, render: function (row) { return ((0, jsx_runtime_1.jsx)("div", { style: { position: 'absolute', inset: 0, backgroundColor: row[key] }, children: "\u00A0" })); }, excelValue: function () { return ''; }, excelBackgroundColor: function (value) { return value; }, getter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, sortGetter: function (row) { var _a; return (_a = row[key]) !== null && _a !== void 0 ? _a : ''; }, filter: __assign(__assign({}, (0, helpers_1.textFilter)(key)), { getter: function (value) { var _a; return (_a = value[key]) !== null && _a !== void 0 ? _a : ''; }, renderer: function (value) { return ((0, jsx_runtime_1.jsx)("div", { style: {
119
119
  backgroundColor: value,
120
120
  width: 'var(--space-16)',
121
121
  height: '1em',
@@ -1,3 +1,4 @@
1
1
  export declare const formatMoney: (number: number, decimals?: number, currency?: string) => string;
2
2
  export declare const formatPercentage: (number: number, decimals?: number) => string;
3
3
  export declare const formatNumber: (number: number, decimals?: number) => string;
4
+ export declare const formatNumberInvariant: (number: number, decimals?: number) => string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatNumber = exports.formatPercentage = exports.formatMoney = void 0;
3
+ exports.formatNumberInvariant = exports.formatNumber = exports.formatPercentage = exports.formatMoney = void 0;
4
4
  var formatMoney = function (number, decimals, currency) {
5
5
  if (decimals === void 0) { decimals = 2; }
6
6
  if (currency === void 0) { currency = 'EUR'; }
@@ -29,3 +29,11 @@ var formatNumber = function (number, decimals) {
29
29
  }).format(number);
30
30
  };
31
31
  exports.formatNumber = formatNumber;
32
+ var formatNumberInvariant = function (number, decimals) {
33
+ if (decimals === void 0) { decimals = 2; }
34
+ return new Intl.NumberFormat('es-US', {
35
+ minimumFractionDigits: decimals,
36
+ maximumFractionDigits: decimals,
37
+ }).format(number);
38
+ };
39
+ exports.formatNumberInvariant = formatNumberInvariant;
@@ -0,0 +1,13 @@
1
+ import { SqlRequestRow } from './sqlRequests';
2
+ export type GlobalSearchRequestDTO = {
3
+ types: string[];
4
+ searchTerm: string;
5
+ limit?: number;
6
+ };
7
+ export type GlobalSearchResponseDTO<T = any> = {
8
+ data: Record<string, SqlRequestRow<T>[]>;
9
+ count?: number;
10
+ };
11
+ type GlobalSearchRequestHandler<T> = (request: GlobalSearchRequestDTO) => Promise<GlobalSearchResponseDTO<T>>;
12
+ export declare const useGlobalSearchRequestHandler: <T = any>() => GlobalSearchRequestHandler<T>;
13
+ export {};