diff --git a/.gitignore b/.gitignore
index 50ea1ba..b4b9e23 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,7 @@ yarn-error.log*
.vercel
# tsup
-dist
\ No newline at end of file
+dist
+
+# idea
+.idea
\ No newline at end of file
diff --git a/.idea/discvr-components.iml b/.idea/discvr-components.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/discvr-components.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..03d9549
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..07115cd
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..c61594a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..6fae15d
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1718636855350
+
+
+ 1718636855350
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 9f0519b..df52134 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -26,7 +26,7 @@
"eslint": "^8.48.0",
"prettier": "^3.0.3",
"tsconfig": "*",
- "turbo": "*"
+ "turbo": "latest"
}
},
"apps/docs": {
@@ -7742,6 +7742,10 @@
"bser": "2.1.1"
}
},
+ "node_modules/field-label-component": {
+ "resolved": "packages/field-label-component",
+ "link": true
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -10297,6 +10301,10 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/operator-label-component": {
+ "resolved": "packages/operator-label-component",
+ "link": true
+ },
"node_modules/optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@@ -10820,15 +10828,6 @@
"react": "17.0.2"
}
},
- "node_modules/react-dom/node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -10867,6 +10866,27 @@
"react": "^16.0.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/react-test-renderer": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
+ "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "react-is": "^17.0.2",
+ "react-shallow-renderer": "^16.13.1",
+ "scheduler": "^0.20.2"
+ },
+ "peerDependencies": {
+ "react": "17.0.2"
+ }
+ },
+ "node_modules/react-test-renderer/node_modules/react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "dev": true
+ },
"node_modules/react-transition-group": {
"version": "4.4.5",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
@@ -11390,6 +11410,15 @@
"node": ">=v12.22.7"
}
},
+ "node_modules/scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
"node_modules/semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
@@ -13207,37 +13236,6 @@
"react-test-renderer": "^17.0.0"
}
},
- "packages/discvr-ui-components/node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true
- },
- "packages/discvr-ui-components/node_modules/react-test-renderer": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
- "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
- "dev": true,
- "dependencies": {
- "object-assign": "^4.1.1",
- "react-is": "^17.0.2",
- "react-shallow-renderer": "^16.13.1",
- "scheduler": "^0.20.2"
- },
- "peerDependencies": {
- "react": "17.0.2"
- }
- },
- "packages/discvr-ui-components/node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "dev": true,
- "dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
"packages/discvr-utils": {
"version": "0.0.0",
"dependencies": {
@@ -13253,6 +13251,44 @@
"typescript": "^4.5.3"
}
},
+ "packages/field-label-component": {
+ "version": "0.0.0",
+ "dependencies": {
+ "@mui/icons-material": "^5.14.16",
+ "@mui/material": "^5.0.0",
+ "@mui/x-data-grid": "^6.0.1",
+ "eslint-config-custom": "*",
+ "jest-environment-jsdom": "^29.7.0",
+ "react": "^17.0.0",
+ "react-select": "^5.7.4"
+ },
+ "devDependencies": {
+ "@babel/preset-env": "^7.23.3",
+ "@babel/preset-react": "^7.23.3",
+ "babel-jest": "^29.7.0",
+ "jest": "^29.7.0",
+ "react-test-renderer": "^17.0.0"
+ }
+ },
+ "packages/operator-label-component": {
+ "version": "0.0.0",
+ "dependencies": {
+ "@mui/icons-material": "^5.14.16",
+ "@mui/material": "^5.0.0",
+ "@mui/x-data-grid": "^6.0.1",
+ "eslint-config-custom": "*",
+ "jest-environment-jsdom": "^29.7.0",
+ "react": "^17.0.0",
+ "react-select": "^5.7.4"
+ },
+ "devDependencies": {
+ "@babel/preset-env": "^7.23.3",
+ "@babel/preset-react": "^7.23.3",
+ "babel-jest": "^29.7.0",
+ "jest": "^29.7.0",
+ "react-test-renderer": "^17.0.0"
+ }
+ },
"packages/tsconfig": {
"version": "0.0.0",
"license": "MIT"
@@ -17790,36 +17826,6 @@
"react": "^17.0.0",
"react-select": "^5.7.4",
"react-test-renderer": "^17.0.0"
- },
- "dependencies": {
- "react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true
- },
- "react-test-renderer": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
- "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
- "dev": true,
- "requires": {
- "object-assign": "^4.1.1",
- "react-is": "^17.0.2",
- "react-shallow-renderer": "^16.13.1",
- "scheduler": "^0.20.2"
- }
- },
- "scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "dev": true,
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- }
}
},
"discvr-utils": {
@@ -18748,6 +18754,23 @@
"bser": "2.1.1"
}
},
+ "field-label-component": {
+ "version": "file:packages/field-label-component",
+ "requires": {
+ "@babel/preset-env": "^7.23.3",
+ "@babel/preset-react": "^7.23.3",
+ "@mui/icons-material": "^5.14.16",
+ "@mui/material": "^5.0.0",
+ "@mui/x-data-grid": "^6.0.1",
+ "babel-jest": "^29.7.0",
+ "eslint-config-custom": "*",
+ "jest": "^29.7.0",
+ "jest-environment-jsdom": "^29.7.0",
+ "react": "^17.0.0",
+ "react-select": "^5.7.4",
+ "react-test-renderer": "^17.0.0"
+ }
+ },
"file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -20593,6 +20616,23 @@
"is-wsl": "^2.2.0"
}
},
+ "operator-label-component": {
+ "version": "file:packages/operator-label-component",
+ "requires": {
+ "@babel/preset-env": "^7.23.3",
+ "@babel/preset-react": "^7.23.3",
+ "@mui/icons-material": "^5.14.16",
+ "@mui/material": "^5.0.0",
+ "@mui/x-data-grid": "^6.0.1",
+ "babel-jest": "^29.7.0",
+ "eslint-config-custom": "*",
+ "jest": "^29.7.0",
+ "jest-environment-jsdom": "^29.7.0",
+ "react": "^17.0.0",
+ "react-select": "^5.7.4",
+ "react-test-renderer": "^17.0.0"
+ }
+ },
"optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
@@ -20930,17 +20970,6 @@
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
"scheduler": "^0.20.2"
- },
- "dependencies": {
- "scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- }
}
},
"react-is": {
@@ -20974,6 +21003,26 @@
"react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
}
},
+ "react-test-renderer": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
+ "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "react-is": "^17.0.2",
+ "react-shallow-renderer": "^16.13.1",
+ "scheduler": "^0.20.2"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
+ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "dev": true
+ }
+ }
+ },
"react-transition-group": {
"version": "4.4.5",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
@@ -21355,6 +21404,15 @@
"xmlchars": "^2.2.0"
}
},
+ "scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
"semver": {
"version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
diff --git a/packages/discvr-ui-components/package.json b/packages/discvr-ui-components/package.json
index 3dfe561..d4c60ab 100644
--- a/packages/discvr-ui-components/package.json
+++ b/packages/discvr-ui-components/package.json
@@ -7,7 +7,7 @@
"scripts": {
"test": "jest",
"lint": "eslint .",
- "build": "tsup field-type-info.tsx --format cjs,esm --dts",
+ "build": "tsup src/*.tsx --format cjs,esm --dts",
"dev": "npm run build -- --watch"
},
"jest": {
diff --git a/packages/discvr-ui-components/src/field-label.tsx b/packages/discvr-ui-components/src/field-label.tsx
new file mode 100644
index 0000000..9f61e4b
--- /dev/null
+++ b/packages/discvr-ui-components/src/field-label.tsx
@@ -0,0 +1,73 @@
+import React from 'react';
+import Select from '@mui/material/Select';
+import MenuItem from '@mui/material/MenuItem';
+
+
+interface FieldModel {
+ name: string;
+ label: string | undefined;
+ description: string;
+ type: string;
+ isInDefaultColumns: boolean;
+ isMultiValued: boolean;
+ isHidden: boolean;
+ colWidth: number;
+ formatString: string;
+ orderKey: number;
+ allowableValues: string[];
+ category: string;
+ url: string;
+ flex: number;
+ supportsFilter: boolean;
+}
+
+
+interface FilterType {
+ field: string;
+ operator: string;
+ value: string;
+}
+
+
+type HandleFilterChangeFunction = (
+ index: number,
+ key: string,
+ value: string | undefined,
+) => FilterType;
+
+
+interface FieldLabelProps {
+ filter: FilterType;
+ index: number;
+ handleFilterChange: HandleFilterChangeFunction;
+ fieldTypeInfo: FieldModel[];
+}
+
+
+function FieldLabel(props: FieldLabelProps): React.ReactElement | null {
+
+ const {filter, index, handleFilterChange, fieldTypeInfo} = props
+
+ return (
+
+ );
+
+}
+
+export {FieldLabel}
\ No newline at end of file
diff --git a/packages/discvr-ui-components/field-type-info.tsx b/packages/discvr-ui-components/src/field-type-info.tsx
similarity index 100%
rename from packages/discvr-ui-components/field-type-info.tsx
rename to packages/discvr-ui-components/src/field-type-info.tsx
diff --git a/packages/discvr-ui-components/src/operator-label.tsx b/packages/discvr-ui-components/src/operator-label.tsx
new file mode 100644
index 0000000..15bbb42
--- /dev/null
+++ b/packages/discvr-ui-components/src/operator-label.tsx
@@ -0,0 +1,83 @@
+import React from 'react';
+import Select from '@mui/material/Select';
+import MenuItem from '@mui/material/MenuItem';
+
+interface FieldModel {
+ name: string;
+ label: string | undefined;
+ description: string;
+ type: string;
+ isInDefaultColumns: boolean;
+ isMultiValued: boolean;
+ isHidden: boolean;
+ colWidth: number;
+ formatString: string;
+ orderKey: number;
+ allowableValues: string[];
+ category: string;
+ url: string;
+ flex: number;
+ supportsFilter: boolean;
+}
+
+interface FilterType {
+ field: string;
+ operator: string;
+ value: string;
+}
+
+
+type HandleFilterChangeFunction = (
+ index: number,
+ key: string,
+ value: string | undefined,
+) => FilterType;
+
+
+type GetOperatorsForFieldFunction = (
+ fieldTypeInfo: FieldModel | undefined
+) => string[] | undefined
+
+
+interface OperatorLabelProps {
+ filter: FilterType;
+ index: number;
+ handleFilterChange: HandleFilterChangeFunction;
+ fieldTypeInfo: FieldModel[];
+ getOperatorsForField: GetOperatorsForFieldFunction;
+}
+
+function OperatorLabel(props: OperatorLabelProps): React.ReactElement | null {
+
+ const {filter, index, getOperatorsForField, handleFilterChange, fieldTypeInfo} = props
+
+
+ return (
+
+ );
+}
+
+export {OperatorLabel}
\ No newline at end of file
diff --git a/packages/discvr-ui-components/tests/__snapshots__/field-label.test.tsx.snap b/packages/discvr-ui-components/tests/__snapshots__/field-label.test.tsx.snap
new file mode 100644
index 0000000..4f70b8a
--- /dev/null
+++ b/packages/discvr-ui-components/tests/__snapshots__/field-label.test.tsx.snap
@@ -0,0 +1,59 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`FieldLabel test 1`] = `
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/packages/discvr-ui-components/__snapshots__/field-type-info.test.tsx.snap b/packages/discvr-ui-components/tests/__snapshots__/field-type-info.test.tsx.snap
similarity index 100%
rename from packages/discvr-ui-components/__snapshots__/field-type-info.test.tsx.snap
rename to packages/discvr-ui-components/tests/__snapshots__/field-type-info.test.tsx.snap
diff --git a/packages/discvr-ui-components/tests/__snapshots__/operator-label.test.tsx.snap b/packages/discvr-ui-components/tests/__snapshots__/operator-label.test.tsx.snap
new file mode 100644
index 0000000..cac10a7
--- /dev/null
+++ b/packages/discvr-ui-components/tests/__snapshots__/operator-label.test.tsx.snap
@@ -0,0 +1,59 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`OperatorLabel test 1`] = `
+
+
+
+
+
+
+
+
+
+
+`;
diff --git a/packages/discvr-ui-components/tests/field-label.test.tsx b/packages/discvr-ui-components/tests/field-label.test.tsx
new file mode 100644
index 0000000..54cdd78
--- /dev/null
+++ b/packages/discvr-ui-components/tests/field-label.test.tsx
@@ -0,0 +1,81 @@
+import React from 'react';
+import {create} from 'react-test-renderer';
+import { FieldLabel } from '../src/field-label';
+
+
+export declare interface FieldModel {
+ name: string
+ label: string | undefined
+ description: string
+ type: string
+ isInDefaultColumns: boolean
+ isMultiValued: boolean
+ isHidden: boolean
+ colWidth: number
+ formatString: string
+ orderKey: number
+ allowableValues: string[]
+ category: string
+ url: string
+ flex: number
+ supportsFilter: boolean
+}
+
+export declare interface FilterModel {
+ field: string;
+ operator: string;
+ value: string;
+}
+
+it('FieldLabel test', () => {
+ const fieldTypeInfo:FieldModel[] = [{
+ name: '',
+ label: '',
+ description: '',
+ type: '',
+ isInDefaultColumns: false,
+ isMultiValued: false,
+ isHidden: false,
+ colWidth: 0,
+ formatString: '',
+ orderKey: 0,
+ allowableValues: [],
+ category: '',
+ url: '',
+ flex: 0,
+ supportsFilter: false
+ },
+ {
+ name: '',
+ label: '',
+ description: '',
+ type: '',
+ isInDefaultColumns: false,
+ isMultiValued: false,
+ isHidden: false,
+ colWidth: 0,
+ formatString: '',
+ orderKey: 0,
+ allowableValues: [],
+ category: '',
+ url: '',
+ flex: 0,
+ supportsFilter: false
+ }]
+
+ const filter:FilterModel = {
+ field: '',
+ operator: '',
+ value: ''
+ }
+
+ const component = create(
+ ({ field: "", operator: "", value: "" })}
+ index={0}
+ />
+ );
+ expect(component.toJSON()).toMatchSnapshot();
+})
\ No newline at end of file
diff --git a/packages/discvr-ui-components/field-type-info.test.tsx b/packages/discvr-ui-components/tests/field-type-info.test.tsx
similarity index 97%
rename from packages/discvr-ui-components/field-type-info.test.tsx
rename to packages/discvr-ui-components/tests/field-type-info.test.tsx
index 72738d8..5b7a2b2 100644
--- a/packages/discvr-ui-components/field-type-info.test.tsx
+++ b/packages/discvr-ui-components/tests/field-type-info.test.tsx
@@ -1,6 +1,6 @@
import React from 'react';
import {create} from 'react-test-renderer';
-import { ValueComponent } from './field-type-info';
+import { ValueComponent } from '../src/field-type-info';
export declare interface FieldModel {
name: string
diff --git a/packages/discvr-ui-components/tests/operator-label.test.tsx b/packages/discvr-ui-components/tests/operator-label.test.tsx
new file mode 100644
index 0000000..e3ed85a
--- /dev/null
+++ b/packages/discvr-ui-components/tests/operator-label.test.tsx
@@ -0,0 +1,84 @@
+import React from 'react';
+import {create} from 'react-test-renderer';
+import { OperatorLabel } from '../src/operator-label';
+
+
+export declare interface FieldModel {
+ name: string
+ label: string | undefined
+ description: string
+ type: string
+ isInDefaultColumns: boolean
+ isMultiValued: boolean
+ isHidden: boolean
+ colWidth: number
+ formatString: string
+ orderKey: number
+ allowableValues: string[]
+ category: string
+ url: string
+ flex: number
+ supportsFilter: boolean
+}
+
+export declare interface FilterModel {
+ field: string;
+ operator: string;
+ value: string;
+}
+
+it('OperatorLabel test', () => {
+ const fieldTypeInfo:FieldModel[] = [{
+ name: '',
+ label: '',
+ description: '',
+ type: '',
+ isInDefaultColumns: false,
+ isMultiValued: false,
+ isHidden: false,
+ colWidth: 0,
+ formatString: '',
+ orderKey: 0,
+ allowableValues: [],
+ category: '',
+ url: '',
+ flex: 0,
+ supportsFilter: false
+ },
+ {
+ name: '',
+ label: '',
+ description: '',
+ type: '',
+ isInDefaultColumns: false,
+ isMultiValued: false,
+ isHidden: false,
+ colWidth: 0,
+ formatString: '',
+ orderKey: 0,
+ allowableValues: [],
+ category: '',
+ url: '',
+ flex: 0,
+ supportsFilter: false
+ }]
+
+ const filter:FilterModel = {
+ field: '',
+ operator: '',
+ value: ''
+ }
+
+const component = create(
+
+ (["",""])}
+ handleFilterChange={(_index: number, _key: string, _value: string | undefined) => ({ field: "", operator: "", value: "" })}
+ index={0}
+ />
+
+)
+expect(component.toJSON()).toMatchSnapshot();
+})
\ No newline at end of file