@popmenu/table 0.126.0 → 0.126.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/_virtual/_commonjsHelpers.js +4 -0
- package/build/esm/_virtual/_commonjsHelpers.js.map +1 -0
- package/build/{components → esm/components}/ColumnFilterChip/ColumnFilterChip.d.ts +9 -9
- package/build/esm/components/ColumnFilterChip/ColumnFilterChip.js +17 -0
- package/build/esm/components/ColumnFilterChip/ColumnFilterChip.js.map +1 -0
- package/build/esm/components/ColumnFilterChip/ColumnFilterChipStyles.d.ts +1 -0
- package/build/esm/components/ColumnFilterChip/ColumnFilterChipStyles.js +14 -0
- package/build/esm/components/ColumnFilterChip/ColumnFilterChipStyles.js.map +1 -0
- package/build/{components → esm/components}/ColumnFilterChip/index.d.ts +1 -1
- package/build/{components → esm/components}/ColumnFilterResetButton/ColumnFilterResetButton.d.ts +3 -3
- package/build/esm/components/ColumnFilterResetButton/ColumnFilterResetButton.js +11 -0
- package/build/esm/components/ColumnFilterResetButton/ColumnFilterResetButton.js.map +1 -0
- package/build/{components → esm/components}/ColumnFilterResetButton/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/FilterControl/FilterControl.d.ts +3 -3
- package/build/esm/components/FilterPanel/FilterControl/FilterControl.js +24 -0
- package/build/esm/components/FilterPanel/FilterControl/FilterControl.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/FilterControl/SelectFilter/SelectFilter.d.ts +5 -5
- package/build/esm/components/FilterPanel/FilterControl/SelectFilter/SelectFilter.js +97 -0
- package/build/esm/components/FilterPanel/FilterControl/SelectFilter/SelectFilter.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/FilterControl/SelectFilter/SelectFilterStyles.d.ts +1 -1
- package/build/esm/components/FilterPanel/FilterControl/SelectFilter/SelectFilterStyles.js +23 -0
- package/build/esm/components/FilterPanel/FilterControl/SelectFilter/SelectFilterStyles.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/FilterControl/SelectFilter/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/FilterControl/ToggleFilter/ToggleFilter.d.ts +4 -4
- package/build/esm/components/FilterPanel/FilterControl/ToggleFilter/ToggleFilter.js +20 -0
- package/build/esm/components/FilterPanel/FilterControl/ToggleFilter/ToggleFilter.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/FilterControl/ToggleFilter/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/FilterControl/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/FilterPanel.d.ts +2 -2
- package/build/esm/components/FilterPanel/FilterPanel.js +24 -0
- package/build/esm/components/FilterPanel/FilterPanel.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/FilterPanelContext/FilterPanelContext.d.ts +7 -7
- package/build/esm/components/FilterPanel/FilterPanelContext/FilterPanelContext.js +13 -0
- package/build/esm/components/FilterPanel/FilterPanelContext/FilterPanelContext.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/FilterPanelContext/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/FilterPanelProps.d.ts +11 -11
- package/build/{components → esm/components}/FilterPanel/Panel/Panel.d.ts +7 -7
- package/build/esm/components/FilterPanel/Panel/Panel.js +72 -0
- package/build/esm/components/FilterPanel/Panel/Panel.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/Panel/PanelStyles.d.ts +1 -1
- package/build/esm/components/FilterPanel/Panel/PanelStyles.js +58 -0
- package/build/esm/components/FilterPanel/Panel/PanelStyles.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/Panel/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/Trigger/Trigger.d.ts +7 -7
- package/build/esm/components/FilterPanel/Trigger/Trigger.js +14 -0
- package/build/esm/components/FilterPanel/Trigger/Trigger.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/Trigger/TriggerStyles.d.ts +1 -1
- package/build/esm/components/FilterPanel/Trigger/TriggerStyles.js +11 -0
- package/build/esm/components/FilterPanel/Trigger/TriggerStyles.js.map +1 -0
- package/build/{components → esm/components}/FilterPanel/Trigger/index.d.ts +1 -1
- package/build/{components → esm/components}/FilterPanel/index.d.ts +1 -1
- package/build/{components → esm/components}/GlobalFilter/GlobalFilter.d.ts +3 -3
- package/build/esm/components/GlobalFilter/GlobalFilter.js +21 -0
- package/build/esm/components/GlobalFilter/GlobalFilter.js.map +1 -0
- package/build/{components → esm/components}/GlobalFilter/GlobalFilterProps.d.ts +7 -7
- package/build/{components → esm/components}/GlobalFilter/GlobalFilterStyles.d.ts +1 -1
- package/build/esm/components/GlobalFilter/GlobalFilterStyles.js +14 -0
- package/build/esm/components/GlobalFilter/GlobalFilterStyles.js.map +1 -0
- package/build/{components → esm/components}/GlobalFilter/index.d.ts +2 -2
- package/build/{components → esm/components}/RowActions/RowActions.d.ts +3 -3
- package/build/esm/components/RowActions/RowActions.js +42 -0
- package/build/esm/components/RowActions/RowActions.js.map +1 -0
- package/build/{components → esm/components}/RowActions/RowActionsProps.d.ts +13 -13
- package/build/{components → esm/components}/RowActions/index.d.ts +2 -2
- package/build/{components → esm/components}/Table/Table.d.ts +21 -21
- package/build/esm/components/Table/Table.js +107 -0
- package/build/esm/components/Table/Table.js.map +1 -0
- package/build/{components → esm/components}/Table/TableProps.d.ts +47 -47
- package/build/{components → esm/components}/Table/TableStyles.d.ts +2 -2
- package/build/esm/components/Table/TableStyles.js +28 -0
- package/build/esm/components/Table/TableStyles.js.map +1 -0
- package/build/{components → esm/components}/Table/index.d.ts +2 -2
- package/build/{components → esm/components}/TableBody/TableBody.d.ts +4 -4
- package/build/esm/components/TableBody/TableBody.js +10 -0
- package/build/esm/components/TableBody/TableBody.js.map +1 -0
- package/build/{components → esm/components}/TableBody/index.d.ts +1 -1
- package/build/{components → esm/components}/TableCell/TableCell.d.ts +4 -4
- package/build/esm/components/TableCell/TableCell.js +12 -0
- package/build/esm/components/TableCell/TableCell.js.map +1 -0
- package/build/{components → esm/components}/TableCell/TableCellStyles.d.ts +1 -1
- package/build/esm/components/TableCell/TableCellStyles.js +11 -0
- package/build/esm/components/TableCell/TableCellStyles.js.map +1 -0
- package/build/{components → esm/components}/TableCell/index.d.ts +1 -1
- package/build/{components → esm/components}/TableContext/index.d.ts +16 -16
- package/build/esm/components/TableContext/index.js +6 -0
- package/build/esm/components/TableContext/index.js.map +1 -0
- package/build/{components → esm/components}/TableControlsContainer/TableControlsContainer.d.ts +3 -3
- package/build/esm/components/TableControlsContainer/TableControlsContainer.js +34 -0
- package/build/esm/components/TableControlsContainer/TableControlsContainer.js.map +1 -0
- package/build/{components → esm/components}/TableControlsContainer/TableControlsContainerProps.d.ts +6 -6
- package/build/{components → esm/components}/TableControlsContainer/index.d.ts +1 -1
- package/build/{components → esm/components}/TableFooter/TableFooter.d.ts +4 -4
- package/build/esm/components/TableFooter/TableFooter.js +9 -0
- package/build/esm/components/TableFooter/TableFooter.js.map +1 -0
- package/build/{components → esm/components}/TableFooter/index.d.ts +1 -1
- package/build/{components → esm/components}/TableHeader/TableHeader.d.ts +4 -4
- package/build/esm/components/TableHeader/TableHeader.js +10 -0
- package/build/esm/components/TableHeader/TableHeader.js.map +1 -0
- package/build/{components → esm/components}/TableHeader/index.d.ts +1 -1
- package/build/{components → esm/components}/TableHeaderCell/TableHeaderCell.d.ts +3 -3
- package/build/esm/components/TableHeaderCell/TableHeaderCell.js +31 -0
- package/build/esm/components/TableHeaderCell/TableHeaderCell.js.map +1 -0
- package/build/{components → esm/components}/TableHeaderCell/TableHeaderCellProps.d.ts +6 -6
- package/build/{components → esm/components}/TableHeaderCell/TableHeaderCellStyles.d.ts +4 -4
- package/build/esm/components/TableHeaderCell/TableHeaderCellStyles.js +41 -0
- package/build/esm/components/TableHeaderCell/TableHeaderCellStyles.js.map +1 -0
- package/build/{components → esm/components}/TableHeaderCell/index.d.ts +2 -2
- package/build/{components → esm/components}/TableHeaderRow/TableHeaderRow.d.ts +4 -4
- package/build/esm/components/TableHeaderRow/TableHeaderRow.js +10 -0
- package/build/esm/components/TableHeaderRow/TableHeaderRow.js.map +1 -0
- package/build/{components → esm/components}/TableHeaderRow/index.d.ts +1 -1
- package/build/{components → esm/components}/TableRow/TableRow.d.ts +4 -4
- package/build/esm/components/TableRow/TableRow.js +12 -0
- package/build/esm/components/TableRow/TableRow.js.map +1 -0
- package/build/{components → esm/components}/TableRow/TableRowStyles.d.ts +1 -1
- package/build/esm/components/TableRow/TableRowStyles.js +12 -0
- package/build/esm/components/TableRow/TableRowStyles.js.map +1 -0
- package/build/{components → esm/components}/TableRow/index.d.ts +1 -1
- package/build/{components → esm/components}/index.d.ts +10 -10
- package/build/{hooks → esm/hooks}/index.d.ts +2 -2
- package/build/{hooks → esm/hooks}/useColumnFilters.d.ts +9 -9
- package/build/esm/hooks/useColumnFilters.js +74 -0
- package/build/esm/hooks/useColumnFilters.js.map +1 -0
- package/build/{hooks → esm/hooks}/useStagedColumnFilters.d.ts +8 -8
- package/build/esm/hooks/useStagedColumnFilters.js +55 -0
- package/build/esm/hooks/useStagedColumnFilters.js.map +1 -0
- package/build/{index.d.ts → esm/index.d.ts} +1 -1
- package/build/esm/index.js +11 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/node_modules/lodash/_Symbol.js +11 -0
- package/build/esm/node_modules/lodash/_Symbol.js.map +1 -0
- package/build/esm/node_modules/lodash/_arrayMap.js +25 -0
- package/build/esm/node_modules/lodash/_arrayMap.js.map +1 -0
- package/build/esm/node_modules/lodash/_arrayReduce.js +30 -0
- package/build/esm/node_modules/lodash/_arrayReduce.js.map +1 -0
- package/build/esm/node_modules/lodash/_asciiWords.js +19 -0
- package/build/esm/node_modules/lodash/_asciiWords.js.map +1 -0
- package/build/esm/node_modules/lodash/_baseGetTag.js +35 -0
- package/build/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/build/esm/node_modules/lodash/_basePropertyOf.js +18 -0
- package/build/esm/node_modules/lodash/_basePropertyOf.js.map +1 -0
- package/build/esm/node_modules/lodash/_baseToString.js +42 -0
- package/build/esm/node_modules/lodash/_baseToString.js.map +1 -0
- package/build/esm/node_modules/lodash/_createCompounder.js +31 -0
- package/build/esm/node_modules/lodash/_createCompounder.js.map +1 -0
- package/build/esm/node_modules/lodash/_deburrLetter.js +76 -0
- package/build/esm/node_modules/lodash/_deburrLetter.js.map +1 -0
- package/build/esm/node_modules/lodash/_freeGlobal.js +10 -0
- package/build/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/build/esm/node_modules/lodash/_getRawTag.js +51 -0
- package/build/esm/node_modules/lodash/_getRawTag.js.map +1 -0
- package/build/esm/node_modules/lodash/_hasUnicodeWord.js +19 -0
- package/build/esm/node_modules/lodash/_hasUnicodeWord.js.map +1 -0
- package/build/esm/node_modules/lodash/_objectToString.js +26 -0
- package/build/esm/node_modules/lodash/_objectToString.js.map +1 -0
- package/build/esm/node_modules/lodash/_root.js +14 -0
- package/build/esm/node_modules/lodash/_root.js.map +1 -0
- package/build/esm/node_modules/lodash/_unicodeWords.js +73 -0
- package/build/esm/node_modules/lodash/_unicodeWords.js.map +1 -0
- package/build/esm/node_modules/lodash/deburr.js +51 -0
- package/build/esm/node_modules/lodash/deburr.js.map +1 -0
- package/build/esm/node_modules/lodash/isArray.js +30 -0
- package/build/esm/node_modules/lodash/isArray.js.map +1 -0
- package/build/esm/node_modules/lodash/isObjectLike.js +33 -0
- package/build/esm/node_modules/lodash/isObjectLike.js.map +1 -0
- package/build/esm/node_modules/lodash/isSymbol.js +35 -0
- package/build/esm/node_modules/lodash/isSymbol.js.map +1 -0
- package/build/esm/node_modules/lodash/kebabCase.js +33 -0
- package/build/esm/node_modules/lodash/kebabCase.js.map +1 -0
- package/build/esm/node_modules/lodash/toString.js +33 -0
- package/build/esm/node_modules/lodash/toString.js.map +1 -0
- package/build/esm/node_modules/lodash/words.js +43 -0
- package/build/esm/node_modules/lodash/words.js.map +1 -0
- package/build/{util → esm/util}/coercedValueIncludesString.d.ts +2 -2
- package/build/esm/util/coercedValueIncludesString.js +9 -0
- package/build/esm/util/coercedValueIncludesString.js.map +1 -0
- package/build/{util → esm/util}/getTableMinHeight.d.ts +2 -2
- package/build/esm/util/getTableMinHeight.js +20 -0
- package/build/esm/util/getTableMinHeight.js.map +1 -0
- package/build/{util → esm/util}/index.d.ts +3 -3
- package/build/{util → esm/util}/tableConstants.d.ts +5 -5
- package/build/esm/util/tableConstants.js +6 -0
- package/build/esm/util/tableConstants.js.map +1 -0
- package/build/{util → esm/util}/validateRowAction.d.ts +2 -2
- package/build/esm/util/validateRowAction.js +12 -0
- package/build/esm/util/validateRowAction.js.map +1 -0
- package/build/index.js +694 -3716
- package/build/index.js.map +1 -1
- package/package.json +8 -4
- package/build/components/ColumnFilterChip/ColumnFilterChipStyles.d.ts +0 -1
- package/build/index.es.js +0 -4407
- package/build/index.es.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_commonjsHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ColumnFilter } from '@tanstack/react-table';
|
|
3
|
-
interface ColumnFilterChipProps {
|
|
4
|
-
columnFilter: ColumnFilter;
|
|
5
|
-
label: [string, string];
|
|
6
|
-
onClick: (columnFilter: ColumnFilter) => void;
|
|
7
|
-
}
|
|
8
|
-
export declare const ColumnFilterChip: (props: ColumnFilterChipProps) => JSX.Element;
|
|
9
|
-
export {};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ColumnFilter } from '@tanstack/react-table';
|
|
3
|
+
interface ColumnFilterChipProps {
|
|
4
|
+
columnFilter: ColumnFilter;
|
|
5
|
+
label: [string, string];
|
|
6
|
+
onClick: (columnFilter: ColumnFilter) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare const ColumnFilterChip: (props: ColumnFilterChipProps) => JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useStyles } from './ColumnFilterChipStyles.js';
|
|
4
|
+
import { Chip, Box, Typography } from '@popmenu/common-ui';
|
|
5
|
+
|
|
6
|
+
var ColumnFilterChip = function (props) {
|
|
7
|
+
var columnFilter = props.columnFilter, onClick = props.onClick, label = props.label;
|
|
8
|
+
var classes = useStyles();
|
|
9
|
+
return (React.createElement(Chip, { className: classes.chip, onDelete: function () { return onClick(columnFilter); }, label: React.createElement(Box, { display: "flex", gridGap: 4, flexWrap: "wrap" },
|
|
10
|
+
React.createElement(Typography, null,
|
|
11
|
+
label[0],
|
|
12
|
+
":"),
|
|
13
|
+
React.createElement(Typography, __assign({ className: classes.label, weight: "semi-bold" }, { component: 'span' }), label[1])) }));
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { ColumnFilterChip };
|
|
17
|
+
//# sourceMappingURL=ColumnFilterChip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnFilterChip.js","sources":["../../../../src/components/ColumnFilterChip/ColumnFilterChip.tsx"],"sourcesContent":["import React from 'react'\nimport { ColumnFilter } from '@tanstack/react-table'\nimport { useStyles } from './ColumnFilterChipStyles'\nimport { Box, Chip, Typography } from '@popmenu/common-ui'\n\ninterface ColumnFilterChipProps {\n columnFilter: ColumnFilter\n label: [string, string]\n onClick: (columnFilter: ColumnFilter) => void\n}\n\nexport const ColumnFilterChip = (props: ColumnFilterChipProps) => {\n const { columnFilter, onClick, label } = props\n const classes = useStyles()\n return (\n <Chip\n className={classes.chip}\n onDelete={() => onClick(columnFilter)}\n label={\n <Box display=\"flex\" gridGap={4} flexWrap=\"wrap\">\n <Typography>{label[0]}:</Typography>\n <Typography className={classes.label} weight=\"semi-bold\" {...{ component: 'span' }}>\n {label[1]}\n </Typography>\n </Box>\n }\n />\n )\n}\n"],"names":[],"mappings":";;;;;AAWO,IAAM,gBAAgB,GAAG,UAAC,KAA4B,EAAA;AACnD,IAAA,IAAA,YAAY,GAAqB,KAAK,CAAA,YAA1B,EAAE,OAAO,GAAY,KAAK,CAAA,OAAjB,EAAE,KAAK,GAAK,KAAK,MAAV;AACpC,IAAA,IAAM,OAAO,GAAG,SAAS,EAAE;AAC3B,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,IAAI,EACH,EAAA,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,QAAQ,EAAE,YAAA,EAAM,OAAA,OAAO,CAAC,YAAY,CAAC,CAArB,EAAqB,EACrC,KAAK,EACH,KAAC,CAAA,aAAA,CAAA,GAAG,IAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAC,MAAM,EAAA;AAC7C,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,IAAA;gBAAE,KAAK,CAAC,CAAC,CAAC;AAAe,gBAAA,GAAA,CAAA;YACpC,KAAC,CAAA,aAAA,CAAA,UAAU,EAAC,QAAA,CAAA,EAAA,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAC,WAAW,EAAK,EAAA,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA,EAC/E,KAAK,CAAC,CAAC,CAAC,CACE,CACT,EAER,CAAA;AAEN;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<"label" | "chip">;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { makeStyles } from '@material-ui/core';
|
|
2
|
+
|
|
3
|
+
var useStyles = makeStyles({
|
|
4
|
+
chip: {
|
|
5
|
+
overflow: 'visible',
|
|
6
|
+
height: 'auto',
|
|
7
|
+
},
|
|
8
|
+
label: {
|
|
9
|
+
whiteSpace: 'normal',
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
export { useStyles };
|
|
14
|
+
//# sourceMappingURL=ColumnFilterChipStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnFilterChipStyles.js","sources":["../../../../src/components/ColumnFilterChip/ColumnFilterChipStyles.ts"],"sourcesContent":["import { makeStyles } from '@material-ui/core'\n\nexport const useStyles = makeStyles({\n chip: {\n overflow: 'visible',\n height: 'auto',\n },\n label: {\n whiteSpace: 'normal',\n },\n})\n"],"names":[],"mappings":";;AAEO,IAAM,SAAS,GAAG,UAAU,CAAC;AAClC,IAAA,IAAI,EAAE;AACJ,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,MAAM,EAAE,MAAM;AACf,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,QAAQ;AACrB,KAAA;AACF,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ColumnFilterChip } from './ColumnFilterChip';
|
|
1
|
+
export { ColumnFilterChip } from './ColumnFilterChip';
|
package/build/{components → esm/components}/ColumnFilterResetButton/ColumnFilterResetButton.d.ts
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ButtonProps } from '@popmenu/admin-ui';
|
|
3
|
-
export declare const ColumnFilterResetButton: (props: ButtonProps) => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ButtonProps } from '@popmenu/admin-ui';
|
|
3
|
+
export declare const ColumnFilterResetButton: (props: ButtonProps) => JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Button } from '@popmenu/admin-ui';
|
|
4
|
+
|
|
5
|
+
var ColumnFilterResetButton = function (props) {
|
|
6
|
+
var _a = props.children, children = _a === void 0 ? 'Clear All' : _a, restProps = __rest(props, ["children"]);
|
|
7
|
+
return (React.createElement(Button, __assign({ variant: "text", textTransform: "none" }, restProps), children));
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { ColumnFilterResetButton };
|
|
11
|
+
//# sourceMappingURL=ColumnFilterResetButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnFilterResetButton.js","sources":["../../../../src/components/ColumnFilterResetButton/ColumnFilterResetButton.tsx"],"sourcesContent":["import React from 'react'\nimport { Button, ButtonProps } from '@popmenu/admin-ui'\n\nexport const ColumnFilterResetButton = (props: ButtonProps) => {\n const { children = 'Clear All', ...restProps } = props\n return (\n <Button variant=\"text\" textTransform=\"none\" {...restProps}>\n {children}\n </Button>\n )\n}\n"],"names":[],"mappings":";;;;AAGO,IAAM,uBAAuB,GAAG,UAAC,KAAkB,EAAA;AAChD,IAAA,IAAA,EAAyC,GAAA,KAAK,CAAxB,QAAA,EAAtB,QAAQ,GAAG,EAAA,KAAA,MAAA,GAAA,WAAW,GAAA,EAAA,EAAK,SAAS,GAAK,MAAA,CAAA,KAAK,EAAhD,CAAA,UAAA,CAAwC,CAAF;AAC5C,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,MAAM,EAAC,QAAA,CAAA,EAAA,OAAO,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAK,EAAA,SAAS,GACtD,QAAQ,CACF;AAEb;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ColumnFilterResetButton } from './ColumnFilterResetButton';
|
|
1
|
+
export { ColumnFilterResetButton } from './ColumnFilterResetButton';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ColumnFilter } from '../FilterPanelProps';
|
|
3
|
-
export declare const FilterControl: (props: ColumnFilter) => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ColumnFilter } from '../FilterPanelProps';
|
|
3
|
+
export declare const FilterControl: (props: ColumnFilter) => JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { __rest, __assign } from 'tslib';
|
|
2
|
+
import React, { createElement } from 'react';
|
|
3
|
+
import { TextField } from '@material-ui/core';
|
|
4
|
+
import { SelectFilter } from './SelectFilter/SelectFilter.js';
|
|
5
|
+
import { ToggleFilter } from './ToggleFilter/ToggleFilter.js';
|
|
6
|
+
|
|
7
|
+
var FilterControl = function (props) {
|
|
8
|
+
var input = props.input, columnFilter = __rest(props, ["input"]);
|
|
9
|
+
var inputDictionary = {
|
|
10
|
+
text: TextField,
|
|
11
|
+
select: SelectFilter,
|
|
12
|
+
'multi-select': SelectFilter,
|
|
13
|
+
toggle: ToggleFilter,
|
|
14
|
+
};
|
|
15
|
+
var propsDictionary = {
|
|
16
|
+
select: { multiple: false },
|
|
17
|
+
'multi-select': { multiple: true },
|
|
18
|
+
};
|
|
19
|
+
// @ts-expect-error - todo.
|
|
20
|
+
return React.createElement("div", null, createElement(inputDictionary[input], __assign(__assign({}, columnFilter), propsDictionary[input])));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { FilterControl };
|
|
24
|
+
//# sourceMappingURL=FilterControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterControl.js","sources":["../../../../../src/components/FilterPanel/FilterControl/FilterControl.tsx"],"sourcesContent":["import React, { createElement } from 'react'\n\nimport { TextField } from '@material-ui/core'\nimport { ColumnFilter } from '../FilterPanelProps'\nimport { SelectFilter } from './SelectFilter'\nimport { ToggleFilter } from './ToggleFilter'\n\nexport const FilterControl = (props: ColumnFilter) => {\n const { input, ...columnFilter } = props\n const inputDictionary = {\n text: TextField,\n select: SelectFilter,\n 'multi-select': SelectFilter,\n toggle: ToggleFilter,\n }\n const propsDictionary = {\n select: { multiple: false },\n 'multi-select': { multiple: true },\n }\n // @ts-expect-error - todo.\n return <div>{createElement(inputDictionary[input], { ...columnFilter, ...propsDictionary[input] })}</div>\n}\n"],"names":[],"mappings":";;;;;;AAOO,IAAM,aAAa,GAAG,UAAC,KAAmB,EAAA;IACvC,IAAA,KAAK,GAAsB,KAAK,CAA3B,KAAA,EAAK,YAAY,GAAA,MAAA,CAAK,KAAK,EAAlC,CAA0B,OAAA,CAAA,CAAF;AAC9B,IAAA,IAAM,eAAe,GAAG;AACtB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,MAAM,EAAE,YAAY;KACrB;AACD,IAAA,IAAM,eAAe,GAAG;AACtB,QAAA,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC3B,QAAA,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;;AAED,IAAA,OAAO,iCAAM,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,EAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAO,YAAY,CAAA,EAAK,eAAe,CAAC,KAAK,CAAC,CAAA,CAAG,CAAO;AAC3G;;;;"}
|
package/build/{components → esm/components}/FilterPanel/FilterControl/SelectFilter/SelectFilter.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ColumnFilter } from '../../FilterPanelProps';
|
|
3
|
-
export declare const SelectFilter: (props: Pick<ColumnFilter, "options" | "columnId"> & {
|
|
4
|
-
multiple: boolean;
|
|
5
|
-
}) => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ColumnFilter } from '../../FilterPanelProps';
|
|
3
|
+
export declare const SelectFilter: (props: Pick<ColumnFilter, "options" | "columnId"> & {
|
|
4
|
+
multiple: boolean;
|
|
5
|
+
}) => JSX.Element;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import React, { useContext, useState } from 'react';
|
|
3
|
+
import { Box, FormControl, InputLabel, Select } from '@material-ui/core';
|
|
4
|
+
import { ChevronDown } from '@popmenu/web-icons';
|
|
5
|
+
import { Typography, MenuItem } from '@popmenu/common-ui';
|
|
6
|
+
import { useStyles } from './SelectFilterStyles.js';
|
|
7
|
+
import { TableContext } from '../../../TableContext/index.js';
|
|
8
|
+
import { useFilterPanelContext } from '../../FilterPanelContext/FilterPanelContext.js';
|
|
9
|
+
|
|
10
|
+
var SelectFilter = function (props) {
|
|
11
|
+
var _a, _b, _c;
|
|
12
|
+
var options = props.options, columnId = props.columnId, multiple = props.multiple;
|
|
13
|
+
var classes = useStyles();
|
|
14
|
+
var _d = useContext(TableContext), table = _d.table, stagedColumnFilters = _d.stagedColumnFilters, stageFilterSelections = _d.stageFilterSelections;
|
|
15
|
+
var _e = useState(false), open = _e[0], setOpen = _e[1];
|
|
16
|
+
var _f = useFilterPanelContext().anchorState, setAnchorEl = _f[1];
|
|
17
|
+
var column = table.getColumn(columnId);
|
|
18
|
+
var meta = column.columnDef.meta;
|
|
19
|
+
var filterName = (_a = meta === null || meta === void 0 ? void 0 : meta.filter) === null || _a === void 0 ? void 0 : _a.name;
|
|
20
|
+
var value = '';
|
|
21
|
+
if (stageFilterSelections && !!stagedColumnFilters.get(columnId)) {
|
|
22
|
+
value = stagedColumnFilters.get(columnId);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
value = column.getFilterValue();
|
|
26
|
+
}
|
|
27
|
+
var fallbackValue = multiple ? [] : '';
|
|
28
|
+
var filteredOptions = options.map(function (option) {
|
|
29
|
+
if (Array.isArray(value)) {
|
|
30
|
+
if (value.includes(option.value)) {
|
|
31
|
+
return __assign(__assign({}, option), { hide: !stageFilterSelections });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
35
|
+
if (value === option.value) {
|
|
36
|
+
return __assign(__assign({}, option), { hide: !stageFilterSelections });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return __assign(__assign({}, option), { hide: false });
|
|
40
|
+
});
|
|
41
|
+
var filteredOptionsCount = filteredOptions.filter(function (option) { return !(option === null || option === void 0 ? void 0 : option.hide); }).length;
|
|
42
|
+
var renderedValue = '';
|
|
43
|
+
if (!stageFilterSelections && value && filteredOptions && filteredOptionsCount > 0) {
|
|
44
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
45
|
+
renderedValue = (_c = (_b = filteredOptions.find(function (option) { return option.value === value; })) === null || _b === void 0 ? void 0 : _b.label) !== null && _c !== void 0 ? _c : filterName;
|
|
46
|
+
}
|
|
47
|
+
else if (Array.isArray(value) && value.length > 0) {
|
|
48
|
+
renderedValue = value.length + " selected";
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
renderedValue = filterName;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
var handleChange = function (event) {
|
|
55
|
+
event.stopPropagation();
|
|
56
|
+
if (stageFilterSelections) {
|
|
57
|
+
stagedColumnFilters.update(columnId, event.target.value);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
column.setFilterValue(event.target.value);
|
|
61
|
+
setAnchorEl(null);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
var handleItemClick = function () {
|
|
65
|
+
if (multiple) {
|
|
66
|
+
if (!stageFilterSelections && filteredOptionsCount === 1) {
|
|
67
|
+
setOpen(false);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
setOpen(false);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return (React.createElement(Box, { className: classes.selectContainer },
|
|
75
|
+
React.createElement(FormControl, { variant: "outlined", fullWidth: true },
|
|
76
|
+
React.createElement(InputLabel, { id: "select-filter-label-" + filterName }, filterName || 'filter'),
|
|
77
|
+
React.createElement(Select, { variant: "outlined", open: open, onOpen: function () { return setOpen(true); }, onClose: function () { return setOpen(false); }, value: value || fallbackValue, displayEmpty: true, multiple: multiple, renderValue: stageFilterSelections ? undefined : function () { return React.createElement(Typography, null, renderedValue); }, label: filterName || 'filter', labelId: "select-filter-label-" + filterName, disabled: !filteredOptionsCount, IconComponent: ChevronDown, onChange: handleChange, fullWidth: true, classes: {
|
|
78
|
+
root: classes.selectRoot,
|
|
79
|
+
icon: classes.icon,
|
|
80
|
+
}, MenuProps: {
|
|
81
|
+
disablePortal: true,
|
|
82
|
+
anchorOrigin: {
|
|
83
|
+
vertical: 'bottom',
|
|
84
|
+
horizontal: 'left',
|
|
85
|
+
},
|
|
86
|
+
transformOrigin: {
|
|
87
|
+
vertical: 'top',
|
|
88
|
+
horizontal: 'left',
|
|
89
|
+
},
|
|
90
|
+
getContentAnchorEl: null,
|
|
91
|
+
} }, filteredOptions.map(function (option, index) {
|
|
92
|
+
return (React.createElement(MenuItem, { classes: { root: option.hide ? classes.hidden : undefined }, key: "option-" + value + "-" + index, value: option.value, onClick: handleItemClick }, option.label));
|
|
93
|
+
})))));
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export { SelectFilter };
|
|
97
|
+
//# sourceMappingURL=SelectFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectFilter.js","sources":["../../../../../../src/components/FilterPanel/FilterControl/SelectFilter/SelectFilter.tsx"],"sourcesContent":["import React, { ChangeEvent, useContext, useState } from 'react'\nimport { Select, InputLabel, FormControl, Box } from '@material-ui/core'\nimport { ChevronDown } from '@popmenu/web-icons'\nimport { MenuItem, Typography } from '@popmenu/common-ui'\n\nimport { useStyles } from './SelectFilterStyles'\nimport { TableContext } from '../../../TableContext'\nimport { ColumnFilter } from '../../FilterPanelProps'\nimport { useFilterPanelContext } from '../../FilterPanelContext'\n\nexport const SelectFilter = (props: Pick<ColumnFilter, 'options' | 'columnId'> & { multiple: boolean }) => {\n const { options, columnId, multiple } = props\n const classes = useStyles()\n const { table, stagedColumnFilters, stageFilterSelections } = useContext(TableContext)\n\n const [open, setOpen] = useState(false)\n const {\n anchorState: [, setAnchorEl],\n } = useFilterPanelContext()\n const column = table.getColumn(columnId)\n const { meta } = column.columnDef as { meta?: any }\n const filterName = meta?.filter?.name\n let value = '' as unknown\n if (stageFilterSelections && !!stagedColumnFilters.get(columnId)) {\n value = stagedColumnFilters.get(columnId) as unknown\n } else {\n value = column.getFilterValue() as unknown\n }\n\n const fallbackValue = multiple ? [] : ''\n const filteredOptions = options.map((option) => {\n if (Array.isArray(value)) {\n if (value.includes(option.value)) {\n return { ...option, hide: !stageFilterSelections }\n }\n }\n if (typeof value === 'string' || typeof value === 'number') {\n if (value === option.value) {\n return { ...option, hide: !stageFilterSelections }\n }\n }\n return { ...option, hide: false }\n })\n const filteredOptionsCount = filteredOptions.filter((option) => !option?.hide).length\n let renderedValue = ''\n if (!stageFilterSelections && value && filteredOptions && filteredOptionsCount > 0) {\n if (typeof value === 'string' || typeof value === 'number') {\n renderedValue = filteredOptions.find((option) => option.value === value)?.label ?? filterName\n } else if (Array.isArray(value) && value.length > 0) {\n renderedValue = `${value.length} selected`\n } else {\n renderedValue = filterName\n }\n }\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n event.stopPropagation()\n if (stageFilterSelections) {\n stagedColumnFilters.update(columnId, event.target.value)\n } else {\n column.setFilterValue(event.target.value)\n setAnchorEl(null)\n }\n }\n const handleItemClick = () => {\n if (multiple) {\n if (!stageFilterSelections && filteredOptionsCount === 1) {\n setOpen(false)\n } else {\n setOpen(false)\n }\n }\n }\n\n return (\n <Box className={classes.selectContainer}>\n <FormControl variant=\"outlined\" fullWidth>\n <InputLabel id={`select-filter-label-${filterName}`}>{filterName || 'filter'}</InputLabel>\n <Select\n variant=\"outlined\"\n open={open}\n onOpen={() => setOpen(true)}\n onClose={() => setOpen(false)}\n value={value || fallbackValue}\n displayEmpty\n multiple={multiple}\n renderValue={stageFilterSelections ? undefined : () => <Typography>{renderedValue}</Typography>}\n label={filterName || 'filter'}\n labelId={`select-filter-label-${filterName}`}\n disabled={!filteredOptionsCount}\n IconComponent={ChevronDown}\n onChange={handleChange}\n fullWidth\n classes={{\n root: classes.selectRoot,\n icon: classes.icon,\n }}\n MenuProps={{\n disablePortal: true,\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n }}\n >\n {filteredOptions.map((option, index) => {\n return (\n <MenuItem\n classes={{ root: option.hide ? classes.hidden : undefined }}\n key={`option-${value}-${index}`}\n value={option.value}\n onClick={handleItemClick}\n >\n {option.label}\n </MenuItem>\n )\n })}\n </Select>\n </FormControl>\n </Box>\n )\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<string>;
|
|
1
|
+
export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<string>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { makeStyles } from '@material-ui/core';
|
|
2
|
+
|
|
3
|
+
var useStyles = makeStyles(function (theme) { return ({
|
|
4
|
+
icon: {
|
|
5
|
+
marginRight: theme.spacing(1.5),
|
|
6
|
+
marginTop: theme.spacing(0.5),
|
|
7
|
+
scale: 1.5,
|
|
8
|
+
},
|
|
9
|
+
selectContainer: {
|
|
10
|
+
padding: '8px 0',
|
|
11
|
+
},
|
|
12
|
+
selectRoot: {
|
|
13
|
+
'&:focus': {
|
|
14
|
+
backgroundColor: 'transparent',
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
hidden: {
|
|
18
|
+
display: 'none',
|
|
19
|
+
},
|
|
20
|
+
}); });
|
|
21
|
+
|
|
22
|
+
export { useStyles };
|
|
23
|
+
//# sourceMappingURL=SelectFilterStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectFilterStyles.js","sources":["../../../../../../src/components/FilterPanel/FilterControl/SelectFilter/SelectFilterStyles.ts"],"sourcesContent":["import { makeStyles, Theme } from '@material-ui/core'\n\nexport const useStyles = makeStyles<Theme>((theme) => ({\n icon: {\n marginRight: theme.spacing(1.5),\n marginTop: theme.spacing(0.5),\n scale: 1.5,\n },\n selectContainer: {\n padding: '8px 0',\n },\n selectRoot: {\n '&:focus': {\n backgroundColor: 'transparent',\n },\n },\n hidden: {\n display: 'none',\n },\n}))\n"],"names":[],"mappings":";;AAEa,IAAA,SAAS,GAAG,UAAU,CAAQ,UAAC,KAAK,EAAK,EAAA,QAAC;AACrD,IAAA,IAAI,EAAE;AACJ,QAAA,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/B,QAAA,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7B,QAAA,KAAK,EAAE,GAAG;AACX,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,OAAO;AACjB,KAAA;AACD,IAAA,UAAU,EAAE;AACV,QAAA,SAAS,EAAE;AACT,YAAA,eAAe,EAAE,aAAa;AAC/B,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,OAAO,EAAE,MAAM;AAChB,KAAA;CACF,EAAC,EAAA;;;;"}
|
package/build/{components → esm/components}/FilterPanel/FilterControl/SelectFilter/index.d.ts
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { SelectFilter } from './SelectFilter';
|
|
1
|
+
export { SelectFilter } from './SelectFilter';
|
package/build/{components → esm/components}/FilterPanel/FilterControl/ToggleFilter/ToggleFilter.d.ts
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const ToggleFilter: (props: {
|
|
3
|
-
columnId: string;
|
|
4
|
-
}) => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const ToggleFilter: (props: {
|
|
3
|
+
columnId: string;
|
|
4
|
+
}) => JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { FormControlLabel, Switch } from '@material-ui/core';
|
|
3
|
+
import { TableContext } from '../../../TableContext/index.js';
|
|
4
|
+
|
|
5
|
+
var ToggleFilter = function (props) {
|
|
6
|
+
var table = useContext(TableContext).table;
|
|
7
|
+
var columnId = props.columnId;
|
|
8
|
+
var column = table.getColumn(columnId);
|
|
9
|
+
var meta = column.columnDef.meta;
|
|
10
|
+
var filterName = meta.filter.name;
|
|
11
|
+
var value = column.getFilterValue();
|
|
12
|
+
var handleChange = function (event, checked) {
|
|
13
|
+
event.stopPropagation();
|
|
14
|
+
column.setFilterValue(checked);
|
|
15
|
+
};
|
|
16
|
+
return React.createElement(FormControlLabel, { control: React.createElement(Switch, { checked: value, onChange: handleChange }), label: filterName });
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export { ToggleFilter };
|
|
20
|
+
//# sourceMappingURL=ToggleFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleFilter.js","sources":["../../../../../../src/components/FilterPanel/FilterControl/ToggleFilter/ToggleFilter.tsx"],"sourcesContent":["import React, { useContext } from 'react'\nimport { FormControlLabel, Switch } from '@material-ui/core'\nimport { TableContext } from '../../../TableContext'\n\nexport const ToggleFilter = (props: { columnId: string }) => {\n const table = useContext(TableContext).table\n const { columnId } = props\n const column = table.getColumn(columnId)\n const meta = column.columnDef.meta as { filter: { name: string } }\n const filterName = meta.filter.name\n const value = column.getFilterValue() as boolean\n const handleChange = (event: React.SyntheticEvent<HTMLInputElement>, checked: boolean) => {\n event.stopPropagation()\n column.setFilterValue(checked)\n }\n return <FormControlLabel control={<Switch checked={value} onChange={handleChange} />} label={filterName} />\n}\n"],"names":[],"mappings":";;;;AAIO,IAAM,YAAY,GAAG,UAAC,KAA2B,EAAA;IACtD,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK;AACpC,IAAA,IAAA,QAAQ,GAAK,KAAK,CAAA,QAAV;IAChB,IAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;AACxC,IAAA,IAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAoC;AAClE,IAAA,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AACnC,IAAA,IAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAa;AAChD,IAAA,IAAM,YAAY,GAAG,UAAC,KAA6C,EAAE,OAAgB,EAAA;QACnF,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC;AAChC,KAAC;IACD,OAAO,KAAA,CAAA,aAAA,CAAC,gBAAgB,EAAC,EAAA,OAAO,EAAE,KAAC,CAAA,aAAA,CAAA,MAAM,IAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAA,CAAI,EAAE,KAAK,EAAE,UAAU,EAAA,CAAI;AAC7G;;;;"}
|
package/build/{components → esm/components}/FilterPanel/FilterControl/ToggleFilter/index.d.ts
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { ToggleFilter } from './ToggleFilter';
|
|
1
|
+
export { ToggleFilter } from './ToggleFilter';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FilterControl } from './FilterControl';
|
|
1
|
+
export { FilterControl } from './FilterControl';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const FilterPanel: () => JSX.Element;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const FilterPanel: () => JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { useState, useContext } from 'react';
|
|
2
|
+
import { Panel } from './Panel/Panel.js';
|
|
3
|
+
import { Trigger } from './Trigger/Trigger.js';
|
|
4
|
+
import { FilterPanelContext } from './FilterPanelContext/FilterPanelContext.js';
|
|
5
|
+
import { TableContext } from '../TableContext/index.js';
|
|
6
|
+
|
|
7
|
+
var FilterPanel = function () {
|
|
8
|
+
var _a = useState(null), anchorEl = _a[0], setAnchorEl = _a[1];
|
|
9
|
+
var _b = useContext(TableContext), stageFilterSelections = _b.stageFilterSelections, stagedColumnFilters = _b.stagedColumnFilters;
|
|
10
|
+
var handleClick = function (event) {
|
|
11
|
+
setAnchorEl(event.currentTarget);
|
|
12
|
+
};
|
|
13
|
+
var handleClose = function () {
|
|
14
|
+
if (stageFilterSelections)
|
|
15
|
+
stagedColumnFilters.clear();
|
|
16
|
+
setAnchorEl(null);
|
|
17
|
+
};
|
|
18
|
+
return (React.createElement(FilterPanelContext.Provider, { value: { anchorState: [anchorEl, setAnchorEl] } },
|
|
19
|
+
React.createElement(Trigger, { onClick: handleClick }),
|
|
20
|
+
React.createElement(Panel, { onClose: handleClose, anchorEl: anchorEl })));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { FilterPanel };
|
|
24
|
+
//# sourceMappingURL=FilterPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterPanel.js","sources":["../../../../src/components/FilterPanel/FilterPanel.tsx"],"sourcesContent":["import React, { useContext, useState } from 'react'\n\nimport { Panel } from './Panel'\nimport { Trigger } from './Trigger'\nimport { FilterPanelContext } from './FilterPanelContext'\nimport { TableContext } from '../TableContext'\n\nexport const FilterPanel = () => {\n const [anchorEl, setAnchorEl] = useState<Element | null>(null)\n const { stageFilterSelections, stagedColumnFilters } = useContext(TableContext)\n\n const handleClick = (event: React.SyntheticEvent) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n if (stageFilterSelections) stagedColumnFilters.clear()\n setAnchorEl(null)\n }\n return (\n <FilterPanelContext.Provider value={{ anchorState: [anchorEl, setAnchorEl] }}>\n <Trigger onClick={handleClick} />\n <Panel onClose={handleClose} anchorEl={anchorEl} />\n </FilterPanelContext.Provider>\n )\n}\n"],"names":[],"mappings":";;;;;;AAOa,IAAA,WAAW,GAAG,YAAA;IACnB,IAAA,EAAA,GAA0B,QAAQ,CAAiB,IAAI,CAAC,EAAvD,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,WAAW,GAAA,EAAA,CAAA,CAAA,CAAkC;IACxD,IAAA,EAAA,GAAiD,UAAU,CAAC,YAAY,CAAC,EAAvE,qBAAqB,GAAA,EAAA,CAAA,qBAAA,EAAE,mBAAmB,GAAA,EAAA,CAAA,mBAA6B;IAE/E,IAAM,WAAW,GAAG,UAAC,KAA2B,EAAA;AAC9C,QAAA,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC;AAClC,KAAC;AAED,IAAA,IAAM,WAAW,GAAG,YAAA;AAClB,QAAA,IAAI,qBAAqB;YAAE,mBAAmB,CAAC,KAAK,EAAE;QACtD,WAAW,CAAC,IAAI,CAAC;AACnB,KAAC;AACD,IAAA,QACE,KAAC,CAAA,aAAA,CAAA,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,EAAA;AAC1E,QAAA,KAAA,CAAA,aAAA,CAAC,OAAO,EAAA,EAAC,OAAO,EAAE,WAAW,EAAI,CAAA;AACjC,QAAA,KAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAA,CAAI,CACvB;AAElC;;;;"}
|
package/build/{components → esm/components}/FilterPanel/FilterPanelContext/FilterPanelContext.d.ts
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
declare type FilterPanelContextValue = {
|
|
3
|
-
anchorState: [Element | null, React.Dispatch<React.SetStateAction<Element | null>>];
|
|
4
|
-
};
|
|
5
|
-
export declare const FilterPanelContext: React.Context<FilterPanelContextValue | null>;
|
|
6
|
-
export declare const useFilterPanelContext: () => FilterPanelContextValue;
|
|
7
|
-
export {};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type FilterPanelContextValue = {
|
|
3
|
+
anchorState: [Element | null, React.Dispatch<React.SetStateAction<Element | null>>];
|
|
4
|
+
};
|
|
5
|
+
export declare const FilterPanelContext: React.Context<FilterPanelContextValue | null>;
|
|
6
|
+
export declare const useFilterPanelContext: () => FilterPanelContextValue;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createContext, useContext } from 'react';
|
|
2
|
+
|
|
3
|
+
var FilterPanelContext = createContext(null);
|
|
4
|
+
var useFilterPanelContext = function () {
|
|
5
|
+
var context = useContext(FilterPanelContext);
|
|
6
|
+
if (!context) {
|
|
7
|
+
throw new Error('useFilterPanelContext has to be used within <FilterPanelContext.Provider>');
|
|
8
|
+
}
|
|
9
|
+
return context;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { FilterPanelContext, useFilterPanelContext };
|
|
13
|
+
//# sourceMappingURL=FilterPanelContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterPanelContext.js","sources":["../../../../../src/components/FilterPanel/FilterPanelContext/FilterPanelContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react'\n\ntype FilterPanelContextValue = {\n anchorState: [Element | null, React.Dispatch<React.SetStateAction<Element | null>>]\n}\n\nexport const FilterPanelContext = createContext<FilterPanelContextValue | null>(null)\n\nexport const useFilterPanelContext = () => {\n const context = useContext(FilterPanelContext)\n\n if (!context) {\n throw new Error('useFilterPanelContext has to be used within <FilterPanelContext.Provider>')\n }\n\n return context\n}\n"],"names":[],"mappings":";;IAMa,kBAAkB,GAAG,aAAa,CAAiC,IAAI;AAEvE,IAAA,qBAAqB,GAAG,YAAA;AACnC,IAAA,IAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;AAC7F;AAED,IAAA,OAAO,OAAO;AAChB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FilterPanelContext, useFilterPanelContext } from './FilterPanelContext';
|
|
1
|
+
export { FilterPanelContext, useFilterPanelContext } from './FilterPanelContext';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare type ColumnFilterInput = 'text' | 'number' | 'radio' | 'select' | 'multi-select';
|
|
2
|
-
export declare type ColumnFilter = {
|
|
3
|
-
columnId: string;
|
|
4
|
-
input: ColumnFilterInput;
|
|
5
|
-
min?: number;
|
|
6
|
-
max?: number;
|
|
7
|
-
options: Array<{
|
|
8
|
-
label: string;
|
|
9
|
-
value: string | number;
|
|
10
|
-
}>;
|
|
11
|
-
};
|
|
1
|
+
export declare type ColumnFilterInput = 'text' | 'number' | 'radio' | 'select' | 'multi-select';
|
|
2
|
+
export declare type ColumnFilter = {
|
|
3
|
+
columnId: string;
|
|
4
|
+
input: ColumnFilterInput;
|
|
5
|
+
min?: number;
|
|
6
|
+
max?: number;
|
|
7
|
+
options: Array<{
|
|
8
|
+
label: string;
|
|
9
|
+
value: string | number;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare type PanelProps = {
|
|
3
|
-
anchorEl: null | Element;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
};
|
|
6
|
-
export declare const Panel: (props: PanelProps) => JSX.Element;
|
|
7
|
-
export {};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type PanelProps = {
|
|
3
|
+
anchorEl: null | Element;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const Panel: (props: PanelProps) => JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { __assign } from 'tslib';
|
|
2
|
+
import React, { useContext, useRef } from 'react';
|
|
3
|
+
import { Popover, Paper, Box, Typography } from '@popmenu/common-ui';
|
|
4
|
+
import { useStyles } from './PanelStyles.js';
|
|
5
|
+
import { FilterControl } from '../FilterControl/FilterControl.js';
|
|
6
|
+
import { TableContext } from '../../TableContext/index.js';
|
|
7
|
+
import { useColumnFilters } from '../../../hooks/useColumnFilters.js';
|
|
8
|
+
import { Button } from '@popmenu/admin-ui';
|
|
9
|
+
|
|
10
|
+
var Panel = function (props) {
|
|
11
|
+
var anchorEl = props.anchorEl, onClose = props.onClose;
|
|
12
|
+
var classes = useStyles();
|
|
13
|
+
var _a = useContext(TableContext), table = _a.table, stagedColumnFilters = _a.stagedColumnFilters, stageFilterSelections = _a.stageFilterSelections;
|
|
14
|
+
var paperRef = useRef(null);
|
|
15
|
+
var _b = useColumnFilters(table), columnFilters = _b.columnFilters, resetColumnFilters = _b.resetColumnFilters;
|
|
16
|
+
var handleClick = function (e) {
|
|
17
|
+
var _a;
|
|
18
|
+
var rect = (_a = paperRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
|
|
19
|
+
if (rect) {
|
|
20
|
+
var buffer = 10;
|
|
21
|
+
var mouseX = e.nativeEvent.x;
|
|
22
|
+
var mouseY = e.nativeEvent.y;
|
|
23
|
+
var xHit = rect.x - buffer < mouseX && mouseX < rect.x + rect.width + buffer;
|
|
24
|
+
var yHit = rect.y - buffer < mouseY && mouseY < rect.y + rect.height + buffer;
|
|
25
|
+
if (!xHit || !yHit) {
|
|
26
|
+
onClose();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var handleApplyClick = function () {
|
|
31
|
+
if (stagedColumnFilters.exist()) {
|
|
32
|
+
columnFilters.forEach(function (columnFilter) {
|
|
33
|
+
var columnInputValue = stagedColumnFilters.get(columnFilter.columnId);
|
|
34
|
+
if (columnInputValue) {
|
|
35
|
+
var column = table.getColumn(columnFilter.columnId);
|
|
36
|
+
column.setFilterValue(columnInputValue);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
resetColumnFilters();
|
|
42
|
+
}
|
|
43
|
+
onClose();
|
|
44
|
+
};
|
|
45
|
+
var handleCancelClick = function () {
|
|
46
|
+
onClose();
|
|
47
|
+
};
|
|
48
|
+
var open = Boolean(anchorEl);
|
|
49
|
+
return (React.createElement(Popover, { onClick: handleClick, anchorEl: anchorEl, anchorOrigin: {
|
|
50
|
+
vertical: 'bottom',
|
|
51
|
+
horizontal: 'right',
|
|
52
|
+
}, className: classes.filterPopover, onClose: onClose, open: open, PaperProps: {
|
|
53
|
+
style: {
|
|
54
|
+
backgroundColor: 'transparent',
|
|
55
|
+
boxShadow: 'none',
|
|
56
|
+
borderRadius: 0,
|
|
57
|
+
},
|
|
58
|
+
}, transformOrigin: {
|
|
59
|
+
vertical: 'top',
|
|
60
|
+
horizontal: 'right',
|
|
61
|
+
} },
|
|
62
|
+
React.createElement(Paper, { className: classes.filterPopoverContents, elevation: 2 },
|
|
63
|
+
React.createElement(Box, __assign({}, { ref: paperRef }, { padding: 3 }),
|
|
64
|
+
React.createElement(Typography, { className: classes.menuTitle }, "Filter By"),
|
|
65
|
+
columnFilters.map(function (columnFilter, i) { return (React.createElement(FilterControl, __assign({}, columnFilter, { key: i }))); })),
|
|
66
|
+
stageFilterSelections && (React.createElement(Box, { className: classes.buttonBox },
|
|
67
|
+
React.createElement(Button, { variant: "secondary", onClick: handleCancelClick }, "Cancel"),
|
|
68
|
+
React.createElement(Button, { onClick: handleApplyClick }, "Apply"))))));
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export { Panel };
|
|
72
|
+
//# sourceMappingURL=Panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.js","sources":["../../../../../src/components/FilterPanel/Panel/Panel.tsx"],"sourcesContent":["import React, { MouseEvent, useContext, useRef } from 'react'\nimport { Paper, Box, Typography, Popover } from '@popmenu/common-ui'\n\nimport { useStyles } from './PanelStyles'\nimport { FilterControl } from '../FilterControl'\nimport { TableContext } from '../../TableContext'\nimport { useColumnFilters } from '../../../hooks'\nimport { Button } from '@popmenu/admin-ui'\n\ntype PanelProps = {\n anchorEl: null | Element\n onClose: () => void\n}\n\nexport const Panel = (props: PanelProps) => {\n const { anchorEl, onClose } = props\n const classes = useStyles()\n const { table, stagedColumnFilters, stageFilterSelections } = useContext(TableContext)\n const paperRef = useRef<HTMLDivElement>(null)\n const { columnFilters, resetColumnFilters } = useColumnFilters(table)\n\n const handleClick = (e: MouseEvent) => {\n const rect = paperRef.current?.getBoundingClientRect()\n if (rect) {\n const buffer = 10\n const mouseX = e.nativeEvent.x\n const mouseY = e.nativeEvent.y\n const xHit = rect.x - buffer < mouseX && mouseX < rect.x + rect.width + buffer\n const yHit = rect.y - buffer < mouseY && mouseY < rect.y + rect.height + buffer\n if (!xHit || !yHit) {\n onClose()\n }\n }\n }\n\n const handleApplyClick = () => {\n if (stagedColumnFilters.exist()) {\n columnFilters.forEach((columnFilter) => {\n const columnInputValue = stagedColumnFilters.get(columnFilter.columnId)\n if (columnInputValue) {\n const column = table.getColumn(columnFilter.columnId)\n column.setFilterValue(columnInputValue)\n }\n })\n } else {\n resetColumnFilters()\n }\n onClose()\n }\n\n const handleCancelClick = () => {\n onClose()\n }\n const open = Boolean(anchorEl)\n return (\n <Popover\n onClick={handleClick}\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right',\n }}\n className={classes.filterPopover}\n onClose={onClose}\n open={open}\n PaperProps={{\n style: {\n backgroundColor: 'transparent',\n boxShadow: 'none',\n borderRadius: 0,\n },\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n <Paper className={classes.filterPopoverContents} elevation={2}>\n <Box {...{ ref: paperRef }} padding={3}>\n <Typography className={classes.menuTitle}>Filter By</Typography>\n {columnFilters.map((columnFilter, i) => (\n <FilterControl {...columnFilter} key={i} />\n ))}\n </Box>\n {stageFilterSelections && (\n <Box className={classes.buttonBox}>\n <Button variant=\"secondary\" onClick={handleCancelClick}>\n Cancel\n </Button>\n <Button onClick={handleApplyClick}>Apply</Button>\n </Box>\n )}\n </Paper>\n </Popover>\n )\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<string>;
|
|
1
|
+
export declare const useStyles: (props?: any) => import("@material-ui/styles").ClassNameMap<string>;
|