@erpsquad/common 1.8.35 → 1.8.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/ArrowBack/index.esm.js +5 -0
- package/dist/_virtual/ArrowBack/index.esm.js.map +1 -0
- package/dist/_virtual/ArrowBack/index.js +2 -0
- package/dist/_virtual/ArrowBack/index.js.map +1 -0
- package/dist/_virtual/ArrowForward/index.esm.js +5 -0
- package/dist/_virtual/ArrowForward/index.esm.js.map +1 -0
- package/dist/_virtual/ArrowForward/index.js +2 -0
- package/dist/_virtual/ArrowForward/index.js.map +1 -0
- package/dist/_virtual/IndeterminateCheckBox/index.esm.js +5 -0
- package/dist/_virtual/IndeterminateCheckBox/index.esm.js.map +1 -0
- package/dist/_virtual/IndeterminateCheckBox/index.js +2 -0
- package/dist/_virtual/IndeterminateCheckBox/index.js.map +1 -0
- package/dist/_virtual/NorthEast/index.esm.js +5 -0
- package/dist/_virtual/NorthEast/index.esm.js.map +1 -0
- package/dist/_virtual/NorthEast/index.js +2 -0
- package/dist/_virtual/NorthEast/index.js.map +1 -0
- package/dist/_virtual/Visibility/index.esm.js +5 -0
- package/dist/_virtual/Visibility/index.esm.js.map +1 -0
- package/dist/_virtual/Visibility/index.js +2 -0
- package/dist/_virtual/Visibility/index.js.map +1 -0
- package/dist/_virtual/extends/index.esm.js +2 -4
- package/dist/_virtual/extends/index.esm.js.map +1 -1
- package/dist/_virtual/extends/index.js +1 -1
- package/dist/_virtual/index/index.esm2.js +4 -2
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +2 -4
- package/dist/_virtual/index/index.esm3.js.map +1 -1
- package/dist/_virtual/index/index2.js +1 -1
- package/dist/_virtual/index/index3.js +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js +1 -1
- package/dist/components/action-bar/action-bar/index.esm.js.map +1 -1
- package/dist/components/action-bar/action-bar/index.js +1 -1
- package/dist/components/action-bar/action-bar/index.js.map +1 -1
- package/dist/components/charts/line-chart/area-line-chart/index.esm.js +40 -0
- package/dist/components/charts/line-chart/area-line-chart/index.esm.js.map +1 -0
- package/dist/components/charts/line-chart/area-line-chart/index.js +2 -0
- package/dist/components/charts/line-chart/area-line-chart/index.js.map +1 -0
- package/dist/components/filter/fields/index.esm.js +180 -0
- package/dist/components/filter/fields/index.esm.js.map +1 -0
- package/dist/components/filter/fields/index.js +2 -0
- package/dist/components/filter/fields/index.js.map +1 -0
- package/dist/components/filter/filter/index.esm.js +1 -1
- package/dist/components/filter/filter/index.esm.js.map +1 -1
- package/dist/components/filter/filter/index.js +1 -1
- package/dist/components/filter/filter/index.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/header/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/header/redux/actionCreator/index.js +1 -1
- package/dist/components/header/redux/actionCreator/index.js.map +1 -1
- package/dist/components/icons/action/index.esm.js +6 -7
- package/dist/components/icons/action/index.esm.js.map +1 -1
- package/dist/components/icons/action/index.js +6 -7
- package/dist/components/icons/action/index.js.map +1 -1
- package/dist/components/icons/criteria/index.esm.js +2 -5
- package/dist/components/icons/criteria/index.esm.js.map +1 -1
- package/dist/components/icons/criteria/index.js +2 -4
- package/dist/components/icons/criteria/index.js.map +1 -1
- package/dist/components/icons/share/index.esm.js +2 -5
- package/dist/components/icons/share/index.esm.js.map +1 -1
- package/dist/components/icons/share/index.js +1 -3
- package/dist/components/icons/share/index.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.esm.js +439 -433
- package/dist/components/index.esm.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/inventory-reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js +312 -0
- package/dist/components/material-editable-table/components/inline-edit-fields/index.esm.js.map +1 -0
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js +4 -0
- package/dist/components/material-editable-table/components/inline-edit-fields/index.js.map +1 -0
- package/dist/components/material-editable-table/material-editable-table/index.esm.js +1164 -0
- package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -0
- package/dist/components/material-editable-table/material-editable-table/index.js +28 -0
- package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -0
- package/dist/components/material-table/aggregation-fns/index/index.esm.js +10 -0
- package/dist/components/material-table/aggregation-fns/index/index.esm.js.map +1 -1
- package/dist/components/material-table/aggregation-fns/index/index.js +1 -1
- package/dist/components/material-table/aggregation-fns/index/index.js.map +1 -1
- package/dist/components/material-table/components/number-aggregation/index.esm.js +133 -0
- package/dist/components/material-table/components/number-aggregation/index.esm.js.map +1 -0
- package/dist/components/material-table/components/number-aggregation/index.js +5 -0
- package/dist/components/material-table/components/number-aggregation/index.js.map +1 -0
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js +1 -1
- package/dist/components/reports-title-bar/redux/actionCreator/index.js.map +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js +1 -1
- package/dist/components/share-modal/redux/actionCreator/index.js.map +1 -1
- package/dist/components/upload/upload/index.esm.js +2 -2
- package/dist/components/upload/upload/index.esm.js.map +1 -1
- package/dist/components/upload/upload/index.js +2 -2
- package/dist/components/upload/upload/index.js.map +1 -1
- package/dist/contexts/AuthContext/index.esm.js +1 -1
- package/dist/contexts/AuthContext/index.esm.js.map +1 -1
- package/dist/contexts/AuthContext/index.js +1 -1
- package/dist/contexts/AuthContext/index.js.map +1 -1
- package/dist/contexts/languageContext/index.esm.js +1 -1
- package/dist/contexts/languageContext/index.esm.js.map +1 -1
- package/dist/contexts/languageContext/index.js +1 -1
- package/dist/contexts/languageContext/index.js.map +1 -1
- package/dist/index.esm.js +537 -525
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@babel/runtime/helpers/extends/index.esm.js +23 -0
- package/dist/node_modules/@babel/runtime/helpers/extends/index.esm.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/extends/index.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/extends/index.js.map +1 -0
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js +32 -0
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js.map +1 -1
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js +36 -36
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +4 -4
- package/dist/node_modules/@mui/system/createStyled/index.esm.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.js.map +1 -1
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/components/material-editable-table/aggregation-fns/index.d.ts +13 -0
- package/dist/src/components/material-editable-table/components/default-aggregation.d.ts +9 -0
- package/dist/src/components/material-editable-table/components/header-cell.d.ts +5 -0
- package/dist/src/components/material-editable-table/components/inline-edit-fields.d.ts +17 -0
- package/dist/src/components/material-editable-table/components/number-aggregation.d.ts +9 -0
- package/dist/src/components/material-editable-table/material-editable-table.d.ts +40 -0
- package/dist/src/utils/index.d.ts +2 -1
- package/dist/src/views/index.d.ts +1 -0
- package/dist/style.css +3 -1
- package/dist/utils/api/index.esm.js +4 -4
- package/dist/utils/api/index.esm.js.map +1 -1
- package/dist/utils/api/index.js +1 -1
- package/dist/utils/api/index.js.map +1 -1
- package/dist/utils/common/index.esm.js +6 -6
- package/dist/utils/common/index.esm.js.map +1 -1
- package/dist/utils/common/index.js +1 -1
- package/dist/utils/common/index.js.map +1 -1
- package/dist/utils/fileSize/index.esm.js +22 -0
- package/dist/utils/fileSize/index.esm.js.map +1 -0
- package/dist/utils/fileSize/index.js +2 -0
- package/dist/utils/fileSize/index.js.map +1 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.esm.js +54 -50
- package/dist/utils/index.esm.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js +48 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js +2 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js +50 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js +2 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js +57 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js +2 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js +41 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js +2 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/index/index.esm.js +1144 -0
- package/dist/views/beforeAuth/components/index/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/index/index.js +206 -0
- package/dist/views/beforeAuth/components/index/index.js.map +1 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js +72 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js +2 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js +54 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js +2 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js +61 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.js +2 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js +21 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js +2 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js +21 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js +2 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js +306 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js +2 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -0
- package/dist/views/form-builder/redux/actionCreator/index.esm.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.esm.js.map +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js +1 -1
- package/dist/views/form-builder/redux/actionCreator/index.js.map +1 -1
- package/dist/views/index.esm.js +2 -0
- package/dist/views/index.esm.js.map +1 -1
- package/dist/views/index.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.esm.js.map +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js +1 -1
- package/dist/views/template-editor/components/EditorSidebar/index.js.map +1 -1
- package/dist/views/template-editor/templates/index.esm.js +1 -1
- package/dist/views/template-editor/templates/index.esm.js.map +1 -1
- package/dist/views/template-editor/templates/index.js +1 -1
- package/dist/views/template-editor/templates/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = []\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields,setActivePage } = usePages()\n\n fields = schemaFields.length ? generateFields(schemaFields) : fields\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const {isRtl}=useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear:boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if(isInvalid){\n setErrorMessage(\"Invalid filter\")\n return\n }\n if(clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n \n\n // Always set the query, regardless of validity\n setQuery({...q, rules: updatedRules});\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else{\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n\t\t\tif(error instanceof Error) {\n m = getErrorMessage(error.message)\n\t\t\t}\n\t\t\tenqueueSnackbar(m, {variant: 'error'})\n\t\t\treturn false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if(selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n \n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters:{\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n \n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", {variant:'error'}));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n \n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if(!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques:string[]=[]\n rule?.rules?.forEach((r: any) => {\n if(uniques.includes(r.field)&& rule.combinator=='and'){\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n \n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n \n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog \n open={open} \n onClose={onClose} \n maxWidth='md' \n fullWidth={true} \n PaperProps={{\n sx:{ borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) =>{\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'}/>\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\"/>\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px:1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl?'remove-filters_rtl':'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent:selectedFilter ? 'space-between' : 'flex-end', width:'100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}> \n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{display: 'flex', gap:1}}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport default Filter;\n"],"names":["selectedFilter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = []\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields,setActivePage } = usePages()\n\n fields = schemaFields.length ? generateFields(schemaFields) : fields\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const {isRtl}=useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear:boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if(isInvalid){\n setErrorMessage(\"Invalid filter\")\n return\n }\n if(clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n \n\n // Always set the query, regardless of validity\n setQuery({...q, rules: updatedRules});\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else{\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n\t\t\tif(error instanceof Error) {\n m = getErrorMessage(error.message)\n\t\t\t}\n\t\t\tenqueueSnackbar(m, {variant: 'error'})\n\t\t\treturn false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if(selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n \n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters:{\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n \n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", {variant:'error'}));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n \n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if(!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques:string[]=[]\n rule?.rules?.forEach((r: any) => {\n if(uniques.includes(r.field)&& rule.combinator=='and'){\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n \n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n \n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog \n open={open} \n onClose={onClose} \n maxWidth='md' \n fullWidth={true} \n PaperProps={{\n sx:{ borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) =>{\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'}/>\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\"/>\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px:1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl?'remove-filters_rtl':'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent:selectedFilter ? 'space-between' : 'flex-end', width:'100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}> \n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{display: 'flex', gap:1}}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport default Filter;\n"],"names":["selectedFilter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA,WAAW,GAAG,4BAAqC,iBAAiB;AAqBpE,MAAM,eAA8B,EAAE,YAAY,OAAO,OAAO,CAAA,EAAC;AAEjE,MAAM,SAAS,CAAC;AAAA,EACd;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,CAAA;AACX,MAAe;AACb,QAAM,WAAW,YAAA;AAEjB,QAAM,QAAQ,aAAa,QAAQ,KAAK,mBAAmB;AAC3D,QAAM,EAAE,gBAAgB,YAAY,cAAa,cAAA,IAAkB,SAAA;AAEnE,WAAS,aAAa,SAAS,eAAe,YAAY,IAAI;AAC9D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,YAAY;AAC9D,QAAM,CAAC,sBAAsB,uBAAuB,IAAI,SAEtD,gBAAgB,CAAA,CAAE;AACpB,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAc,IAAI;AAC9D,QAAM,CAAC,kBAAkB,qBAAqB,IAAI,SAAc,IAAI;AACpE,QAAM,CAAC,cAAc,eAAe,IAAI,SAAwB,IAAI;AACpE,QAAM,EAAC,MAAA,IAAO,YAAA;AACd,QAAM,YAAwB,QAAQ,MAAM,mBAAmB,SAAS,QAAQ,KAAK,MAAM,CAAC,SAAS,QAAQ,CAAC;AAE9G,YAAU,MAAM;AACd,oBAAgB,wBAAwB,YAAY;AAAA,EACtD,GAAG,CAAC,YAAY,CAAC;AAGjB,QAAM,oBAAoB,YAAY,CAAC,QAAgB,UAAU;AAC/D,QAAI,IAAI;AACR,UAAM,YAAY,oBAAoB,CAAC;AACvC,QAAG,WAAU;AACX,sBAAgB,gBAAgB;AAChC;AAAA,IACF;AACA,QAAG,OAAO;AACR,UAAI;AACJ,eAAS,CAAC;AAAA,IACZ,OAAO;AACL,YAAM,oBAAoB,IAAI,oBAAoB,CAAC,IAAI;AACvD,qBAAe,EAAE,SAAS,GAAG,mBAAmB,mBAAmB;AAEnE,cAAA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,aAAa,OAAO,CAAC;AAEhC,QAAM,oBAAoB,CAAC,MAAqB;AAC9C,UAAM,eAAe,EAAE,MAAM,IAAI,CAAC,MAAM,MAAA;;AAAO;AAAA,QAC7C,GAAG;AAAA,QACH,OAAO,KAAK,YAAU,iBAAM,UAAN,mBAAc,OAAd,mBAAkB,UAAS,CAAC,QAAQ,SAAS,EAAE,SAAS,KAAK,QAAQ,IAAI,KAAK,KAAK;AAAA,MAAA;AAAA,KACzG;AAwCF,aAAS,EAAC,GAAG,GAAG,OAAO,cAAa;AAK7B;AACL,sBAAgB,IAAI;AAAA,IACtB;AAGA,QAAI,cAAc;AAChB,mBAAa,CAAC;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,qBAAqB,CAAC,OAAa;AACvC,QAAI,IAAI;AACN,wBAAkB,EAAE;AACpB,eAAS,GAAG,KAAK;AACjB,UAAI,kBAAkB;AACpB,yBAAiB,EAAE;AAAA,MACrB;AAAA,IACF,OAAM;AACJ,wBAAkB,IAAI;AACtB,eAAS,YAAY;AACrB,UAAI,kBAAkB;AACpB,yBAAiB,IAAI;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AAEA,QAAM,oBAAoB,CAAC,eAAuB;AAChD,UAAM,kBAAkB,6CAAc;AAAA,MAAO,CAAC,WAC5C,OAAO,KAAK,cAAc,SAAS,WAAW,YAAA,CAAa;AAAA;AAE7D,QAAI,iBAAiB;AACnB,8BAAwB,eAAe;AAAA,IACzC;AAAA,EACF;AAEA,QAAM,qBAAqB,OAAO,UAAkB,YAAoB;AACtE,UAAM,mBAA+C;AAAA,MACnD,WAAW;AAAA,MACX,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,SAAQ,uCAAW,mBAAiB,uCAAW;AAAA,IAAA;AAGjD,QAAI;AACF,YAAM,cAAc,gBAAgB;AAEpC,UAAI,mBAAmB;AACrB,0BAAA;AAAA,MACF;AACA,sBAAgB,+BAA+B;AAAA,IACjD,SAAS,OAAO;AACd,UAAI,IAAY;AACnB,UAAG,iBAAiB,OAAO;AACtB,YAAI,gBAAgB,MAAM,OAAO;AAAA,MACtC;AACA,sBAAgB,GAAG,EAAC,SAAS,QAAA,CAAQ;AACrC,aAAO;AAAA,IACN;AACA,WAAO;AAAA,EACT;AACA,QAAM,kCAAkC,YAAY;AAClD,QAAG,gBAAgB;AAEjB,YAAM,mBAA+C;AAAA,QACnD,WAAW;AAAA,QACX,IAAI,eAAe;AAAA,QACnB,MAAM;AAAA,MAAA;AAGR,oBAAc,gBAAgB,EAC3B,KAAK,CAAC,aAAkB;AACvB,YAAI,mBAAmB;AACrB,4BAAA;AAAA,QACF;AACE,sBAAc,CAAC,UAAe;AAAA,UAC1B,GAAG;AAAA,UACL,SAAQ;AAAA,YACN,GAAG,KAAK;AAAA,YACR,OAAO,MAAM;AAAA,YACb,YAAY,MAAM;AAAA,YAClB,MAAM,eAAe;AAAA,UAAA;AAAA,QAEvB,EACE;AAAA,MACR,CAAC,EACA,MAAM,CAAC,QAAa,gBAAgB,iCAAiC,EAAC,SAAQ,QAAA,CAAQ,CAAC;AAAA,IAC5F;AAAA,EACF;AAEA,QAAM,qBAAqB,CAAC,SAAiB;AAC3C,QAAI,kBAAkB;AACpB,aAAO,mBAAmB,iBAAiB,IAAI,IAAI;AAAA,IACrD;AAAA,EACF;AAEA,QAAM,qBAAqB,OAAO,aAAqB;AACrD,UAAM,sBAAqD;AAAA,MACzD,WAAW;AAAA,MACX,IAAI;AAAA,IAAA;AAGN,qBAAiB,mBAAmB,EACjC,KAAK,CAAC,aAAkB;AACvB,wBAAkB,IAAI;AACtB,eAAS,YAAY;AACrB,UAAI,mBAAmB;AACrB,0BAAA;AAAA,MACF;AAAA,IAEF,CAAC,EACA,MAAM,CAAC,QAAa,QAAQ,IAAI,iCAAiC,GAAG,CAAC;AAAA,EAC1E;AAEA,YAAU,MAAM;AACd,QAAI,IAAI;AACR,QAAG,CAAC,EAAE,QAAQ,WAAW,OAAO,GAAG;AACjC,UAAI,WAAW;AAAA,IACjB;AACA,aAAS,CAAC;AACV,UAAMA,kBAAiB,6CAAc,KAAK,CAAC;;AAAW,eAAE,WAAS,8CAAY,YAAZ,mBAAqB;AAAA;AACtF,sBAAkBA,mBAAkB,IAAI;AAAA,EAC1C,GAAG,CAAC,yCAAY,SAAS,YAAY,CAAC;AAEtC,QAAM,sBAAsB,CAAC,SAAS;;AAClC,QAAI,UAAiB,CAAA;AACrB,uCAAM,UAAN,mBAAa,QAAQ,CAAC,MAAW;AAC/B,UAAG,QAAQ,SAAS,EAAE,KAAK,KAAI,KAAK,cAAY,OAAM;AACpD,eAAO;AAAA,MACT;AACA,cAAQ,KAAK,EAAE,KAAK;AAAA,IACtB;AACA,WAAO,QAAQ,aAAW,kCAAM,UAAN,mBAAa;AAAA,EAC3C;AAGA,QAAM,gBAAgB,CAAC,SAAuB;AAE5C,QAAI,MAAM,QAAQ,KAAK,KAAK,GAAG;AAC7B,aAAO,KAAK,MAAM,SAAS,KAAK,MAAM,KAAK,aAAa,IAAI,CAAC,KAAK,MAAM;AAAA,IAC1E;AAGA,WACE,CAAC,KAAK,SACL,EAAE,QAAQ,KAAK,KAAK,KAAK,CAAC,CAAC,QAAQ,SAAS,EAAE,SAAS,KAAK,QAAQ;AAAA,EAEzE;AAEA,QAAM,WAAW,QAAQ,MAAM,cAAc,KAAK,KAAK,cAAc,CAAC,OAAO,YAAY,CAAC;AAG1F,6BACG,OAAA,EACC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,UAAS;AAAA,MACT,WAAW;AAAA,MACX,YAAY;AAAA,QACV,IAAG,EAAE,cAAc,EAAA;AAAA,MAAE;AAAA,MAGvB,UAAA;AAAA,QAAA,qBAAC,aAAA,EAAY,WAAU,iBACrB,UAAA;AAAA,UAAA,oBAAC,cAAW,MAAK,MAAK,QAAO,UAAS,OAAM,wBAAuB,UAAA,UAAA,CAEnE;AAAA,+BACC,KAAA,EAAI,KAAK,GAAG,SAAS,QACpB,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAS;AAAA,gBACT,MAAK;AAAA,gBACL,WAAU;AAAA,gBACV,OAAO,iBAAiB,eAAe,OAAO;AAAA,gBAC9C,UAAU,CAAC,UAAc;AACvB,wBAAM,KAAK,6CAAc,KAAK,CAAA,MAAK,EAAE,QAAQ,MAAM,OAAO;AAC1D,qCAAmB,EAAE;AAAA,gBACvB;AAAA,gBACA,SAAQ;AAAA,gBACR,SAAS,MAAM;AACb,6BAAW,MAAM;AACf,sCAAkB,EAAE;AAAA,kBACtB,GAAG,GAAG;AAAA,gBACR;AAAA,gBACA,OACE,iBACE;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAM;AAAA,oBACN,cACE,oBAAC,gBAAA,EAAe,UAAS,OACrB,UAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,cAAW;AAAA,wBACX,SAAS,MAAM;AACb,6CAAA;AAAA,wBACF;AAAA,wBACA,MAAK;AAAA,wBACL,IAAI,EAAE,IAAI,IAAA;AAAA,wBACV,MAAK;AAAA,wBACL,8BAAC,OAAA,EAAM,IAAI,EAAE,UAAU,SAAO,CAAG;AAAA,sBAAA;AAAA,oBAAA,GAEvC;AAAA,kBAAA;AAAA,gBAAA,IAGF;AAAA,gBAGN,UAAA;AAAA,kBAAA,oBAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,aAAa;AAAA,sBACb,cAAc,CAAC,MAAM,kBAAkB,CAAC;AAAA,oBAAA;AAAA,kBAAA,GAE5C;AAAA,kBAQC,6DAAsB,IAAI,CAAC,gBAC1B;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,OAAO,2CAAa;AAAA,sBACpB,WAAU;AAAA,sBACV,WAAU,iDAAgB,UAAQ,2CAAa;AAAA,sBAE/C,UAAA;AAAA,wBAAA,oBAAC,cAAW,OAAM,wBAAuB,MAAK,MAC3C,qDAAa,MAChB;AAAA,wBAEA,qBAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,8CAAC,YAAA,EAAW,MAAK,SAAQ,SAAS,CAAC,MAAM;AACtC,8BAAE,eAAA;AACF,8BAAE,gBAAA;AACH,kDAAsB,WAAW;AAAA,0BACnC,GACE,UAAA,oBAAC,MAAA,EAAK,UAAS,SAAQ,QAAO,iDAAgB,UAAQ,2CAAa,QAAO,sBAAsB,UAAA,CAAU,GAC5G;AAAA,8CACC,YAAA,EAAW,MAAK,SAAQ,SAAS,CAAC,MAAM;AACvC,8BAAE,eAAA;AACF,8BAAE,gBAAA;AACF,+CAAmB,YAAY,EAAE;AAAA,0BACnC,GAAG,OAAM,SACP,UAAA,oBAAC,SAAM,UAAS,SAAQ,OAAM,kBAAA,CAAiB,GACjD;AAAA,wBAAA,GACF;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAxBK,YAAY;AAAA,kBAAA;AAAA,gBA0BpB;AAAA,cAAA;AAAA,YAAA;AAAA,YAEH;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM,qBAAqB;AAAA,gBAC3B,SAAS,MAAM,sBAAsB,IAAI;AAAA,gBACzC,cAAc,CAAC,SAAS,mBAAmB,IAAI;AAAA,gBAC/C,SAAS,qDAAkB;AAAA,cAAA;AAAA,YAAA;AAAA,YAE7B,oBAAC,KAAA,EACC,8BAAC,YAAA,EAAW,MAAK,SAAQ,SAAS,SAChC,UAAA,oBAAC,OAAA,EAAM,UAAS,SAAQ,EAAA,CAC1B,EAAA,CACF;AAAA,UAAA,GACF;AAAA,QAAA,GACF;AAAA,QACA,qBAAC,eAAA,EAAc,WAAU,WAEtB,UAAA;AAAA,UAAA,gBACC,oBAAC,OAAA,EAAM,UAAS,SAAQ,IAAI,EAAE,IAAG,GAAG,IAAI,KAAK,IAAI,EAAA,GAC/C,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAM;AAAA,cACN,MAAK;AAAA,cAEJ,UAAA;AAAA,YAAA;AAAA,UAAA,GAEL;AAAA,+BAED,sBAAA,EACC,UAAA;AAAA,YAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,QAAQ,UAAU,CAAA;AAAA,gBAClB;AAAA,gBACA,eAAe;AAAA,gBACf,6BAA6B;AAAA,gBAC7B,mBAAmB;AAAA,kBACjB,QAAQ;AAAA,gBAAA;AAAA,gBAEV,iBAAiB;AAAA,kBACf,eAAe;AAAA,kBACf,gBAAgB;AAAA,kBAChB,oBAAoB;AAAA,kBACpB,eAAe;AAAA,kBACf,kBAAkB;AAAA,kBAClB,kBAAkB;AAAA,kBAClB,aAAa;AAAA,kBACb,mBAAmB;AAAA,gBAAA;AAAA,cACrB;AAAA,YAAA;AAAA,YAEF;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAW,QAAM,uBAAqB;AAAA,gBACtC,SAAS,MAAM;AACb,oCAAkB,IAAI;AAAA,gBACxB;AAAA,gBACA;AAAA,gBACD,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,GACF;AAAA,QAAA,GACF;AAAA,4BACC,eAAA,EAAc,WAAU,iBACvB,UAAA,qBAAC,KAAA,EAAI,IAAI,EAAE,SAAS,QAAQ,YAAY,UAAU,gBAAe,iBAAiB,kBAAkB,YAAY,OAAM,OAAA,GACjH,UAAA;AAAA,UAAA,sCACE,KAAA,EACC,UAAA,oBAAC,UAAO,SAAS,iCAAiC,mCAElD,GACF;AAAA,UAEF,qBAAC,OAAI,IAAI,EAAC,SAAS,QAAQ,KAAI,EAAA,GAC7B,UAAA;AAAA,YAAA,oBAAC,QAAA,EAAO,WAAU,qBAAoB,SAAS,SAAS,UAAA,UAExD;AAAA,YACA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA,SAAS,MAAM,kBAAA;AAAA,gBAChB,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,GACF;AAAA,QAAA,EAAA,CACJ,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),l=require("react"),r=require("react-querybuilder"),t=;/* empty css */;/* empty css */var i=,/* empty css */n=,/* empty css */s=,/* empty css */a=,/* empty css */o=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */f=,/* empty css */x=,/* empty css */p=,/* empty css */h=,/* empty css */j=,/* empty css */v=,/* empty css */g=,/* empty css */q=,/* empty css */y=require("lodash"),b=,/* empty css */S=,/* empty css */C=require("react-router-dom"),k=,/* empty css */_=,/* empty css */A=,/* empty css */I=,/* empty css */F=,/* empty css */N=,/* empty css */w=,/* empty css */E=,/* empty css */D=,/* empty css */z=,/* empty css */P=,/* empty css */T=,/* empty css */B=,/* empty css */M=;/* empty css */function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var L=/* @__PURE__ */R(y);j.setBaseUrl("
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),l=require("react"),r=require("react-querybuilder"),t=;/* empty css */;/* empty css */var i=,/* empty css */n=,/* empty css */s=,/* empty css */a=,/* empty css */o=,/* empty css */u=,/* empty css */d=,/* empty css */c=,/* empty css */m=,/* empty css */f=,/* empty css */x=,/* empty css */p=,/* empty css */h=,/* empty css */j=,/* empty css */v=,/* empty css */g=,/* empty css */q=,/* empty css */y=require("lodash"),b=,/* empty css */S=,/* empty css */C=require("react-router-dom"),k=,/* empty css */_=,/* empty css */A=,/* empty css */I=,/* empty css */F=,/* empty css */N=,/* empty css */w=,/* empty css */E=,/* empty css */D=,/* empty css */z=,/* empty css */P=,/* empty css */T=,/* empty css */B=,/* empty css */M=;/* empty css */function R(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var L=/* @__PURE__ */R(y);j.setBaseUrl("https://apidev.erpforce.co/system-feature");const Q={combinator:"and",rules:[]};exports.default=({open:y,onClose:R,savedFilters:O,fetchSavedFilters:V,onSaveFilter:W,onSelectedFilter:G,applyFilter:U,fields:K=[]})=>{const H=C.useLocation(),J=localStorage.getItem(v.auth.storageTokenKeyName),{updatePageInfo:X,activePage:Y,schemaFields:Z,setActivePage:$}=q.usePages();K=Z.length?g.generateFields(Z):K;const[ee,le]=l.useState(Q),[re,te]=l.useState(O??[]),[ie,ne]=l.useState(null),[se,ae]=l.useState(null),[oe,ue]=l.useState(null),{isRtl:de}=k.useLanguage(),ce=l.useMemo(()=>S.routeToResourceMap[H.pathname]||null,[H.pathname]);l.useEffect(()=>{O&&te(O)},[O]);const me=l.useCallback((e=!1)=>{let l=ee;if(pe(l))ue("Invalid filter");else if(e)l=Q,le(l);else{const e=l?g.generateQueryString(l):l;X({filters:l,filterQueryString:e}),R()}},[ee,U,R]),fe=e=>{e?(ne(e),le(e.query),G&&G(e)):(ne(null),le(Q),G&&G(null))},xe=e=>{const l=null==O?void 0:O.filter(l=>l.name.toLowerCase().includes(e.toLowerCase()));l&&te(l)};l.useEffect(()=>{let e=Q;L.default.isEmpty(Y.filters)||(e=Y.filters),le(e);const l=null==O?void 0:O.find(e=>{var l;return e.name===(null==(l=null==Y?void 0:Y.filters)?void 0:l.name)});ne(l||null)},[null==Y?void 0:Y.filters,O]);const pe=e=>{var l,r;let t=[];return null==(l=null==e?void 0:e.rules)||l.forEach(l=>{if(t.includes(l.field)&&"and"==e.combinator)return!0;t.push(l.field)}),t.length!==(null==(r=null==e?void 0:e.rules)?void 0:r.length)},he=e=>Array.isArray(e.rules)?e.rules.length?e.rules.some(he):!e.rules.length:!e.field||L.default.isEmpty(e.value)&&!["null","notNull"].includes(e.operator),je=l.useMemo(()=>he(ee)||oe,[ee,oe]);/* @__PURE__ */
|
|
2
2
|
return e.jsx("div",{children:/* @__PURE__ */e.jsxs(_.default,{open:y,onClose:R,maxWidth:"md",fullWidth:!0,PaperProps:{sx:{borderRadius:2}},children:[
|
|
3
3
|
/* @__PURE__ */e.jsxs(A.default,{className:"filter-header",children:[
|
|
4
4
|
/* @__PURE__ */e.jsx(n.Typography,{type:"s3",weight:"medium",color:"theme.secondary.1000",children:"Filters"}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = []\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields,setActivePage } = usePages()\n\n fields = schemaFields.length ? generateFields(schemaFields) : fields\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const {isRtl}=useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear:boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if(isInvalid){\n setErrorMessage(\"Invalid filter\")\n return\n }\n if(clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n \n\n // Always set the query, regardless of validity\n setQuery({...q, rules: updatedRules});\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else{\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n\t\t\tif(error instanceof Error) {\n m = getErrorMessage(error.message)\n\t\t\t}\n\t\t\tenqueueSnackbar(m, {variant: 'error'})\n\t\t\treturn false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if(selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n \n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters:{\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n \n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", {variant:'error'}));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n \n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if(!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques:string[]=[]\n rule?.rules?.forEach((r: any) => {\n if(uniques.includes(r.field)&& rule.combinator=='and'){\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n \n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n \n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog \n open={open} \n onClose={onClose} \n maxWidth='md' \n fullWidth={true} \n PaperProps={{\n sx:{ borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) =>{\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'}/>\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\"/>\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px:1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl?'remove-filters_rtl':'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent:selectedFilter ? 'space-between' : 'flex-end', width:'100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}> \n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{display: 'flex', gap:1}}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport default Filter;\n"],"names":["setBaseUrl","initialQuery","combinator","rules","open","onClose","savedFilters","fetchSavedFilters","onSaveFilter","onSelectedFilter","applyFilter","fields","location","useLocation","token","localStorage","getItem","auth","storageTokenKeyName","updatePageInfo","activePage","schemaFields","setActivePage","usePages","length","generateFields","query","setQuery","useState","filteredSavedFilters","setFilteredSavedFilters","selectedFilter","setSelectedFilter","openRenameFilter","setIsOpenRenameFilter","errorMessage","setErrorMessage","isRtl","useLanguage","resources","useMemo","routeToResourceMap","pathname","useEffect","handleApplyFilter","useCallback","clear","q","isDuplicatedFilters","generatedSQLQuery","generateQueryString","filters","filterQueryString","handleFilterSwitch","sf","handleSearchEvent","searchText","filteredFilters","filter","name","toLowerCase","includes","_","isEmpty","find","f","_a","rule","uniques","forEach","r","field","push","_b","isRuleInvalid","Array","isArray","some","value","operator","disabled","children","jsxs","Dialog","maxWidth","fullWidth","PaperProps","sx","borderRadius","DialogTitle","className","jsx","Typography","type","weight","color","Box","gap","display","Select","size","onChange","event","target","variant","setTimeout","input","OutlinedInput","label","endAdornment","InputAdornment","position","IconButton","onClick","edge","mr","Close","fontSize","SearchBar","placeholder","handleSearch","e","map","savedFilter","MenuItem","selected","preventDefault","stopPropagation","Edit","async","filterId","deleteFilterRequest","id","deleteV1FilterId","then","response","catch","err","handleDeleteFilter","Trash","SaveFilterModal","handleSubmit","newName","putFilterRequest","module","fieldResource","pageResource","putV1FilterId","enqueueSnackbar","error","m","Error","getErrorMessage","message","handleRenameFilter","handleSubmitRename","oldName","DialogContent","Alert","severity","px","pt","mb","QueryBuilderMaterial","QueryBuilder","onQueryChange","updatedRules","i","showCombinatorsBetweenRules","controlClassnames","header","controlElements","addRuleAction","AddFilterButton","addGroupAction","AddGroupButton","combinatorSelector","CombinatorSelect","fieldSelector","FieldSelect","operatorSelector","OperatorSelect","removeRuleAction","RemoveAction","valueEditor","ValueEditor","removeGroupAction","RemoveGroupAction","Button","DialogActions","alignItems","justifyContent","width","data","prev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/filter/filter.tsx"],"sourcesContent":["/* eslint-disable */\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { RuleGroupType } from \"react-querybuilder\";\nimport \"react-querybuilder/dist/query-builder.scss\";\nimport { QueryBuilder /* , formatQuery */ } from \"react-querybuilder\";\nimport { QueryBuilderMaterial } from \"@react-querybuilder/material\";\nimport {\n Box,\n IconButton,\n MenuItem,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n OutlinedInput,\n InputAdornment,\n Alert,\n} from \"@mui/material\";\nimport \"./filter.scss\";\nimport Select from \"../select/select\";\nimport Typography from \"../typography/typography\";\nimport { Close } from \"@mui/icons-material\";\nimport CombinatorSelect from \"./components/combinator-select\";\nimport RemoveAction from \"./components/remove-action\";\nimport FieldSelect from \"./components/field-select\";\nimport AddFilterButton from \"./components/add-filter\";\nimport AddGroupButton from \"./components/add-group\";\nimport ValueEditor from \"./components/value-editor\";\nimport OperatorSelect from \"./components/operator-select\";\nimport Button from \"../button/button\";\nimport RemoveGroupAction from \"./components/delete-group\";\nimport SearchBar from \"../search-bar/search-bar\";\nimport SaveFilterModal from \"../save-filter-modal/save-filter-modal\";\n\nimport {\n setBaseUrl,\n putV1FilterId,\n deleteV1FilterId,\n} from \"../../api-client/api.system-feature/api\";\nimport type * as Types from \"../../api-client/api.system-feature/api-types\";\nimport { auth } from \"../../constants/auth\";\nimport { generateFields, generateQueryString, getErrorMessage } from \"../../utils/common\";\nimport { usePages } from \"../../hooks/use-pages\";\nimport _ from \"lodash\";\nimport { Edit, Trash } from \"../icons\";\nimport { enqueueSnackbar } from \"notistack\";\nimport { IResources, routeToResourceMap } from \"../../constants/route-page-map\";\nimport { useLocation } from \"react-router-dom\";\nimport { useLanguage } from \"../../hooks/useLangauge\";\n\nsetBaseUrl(`${import.meta.env.VITE_BACKEND_BASE_URL}/system-feature`);\n\ninterface IFilter {\n open: boolean;\n onClose: () => void;\n activeView?: string;\n savedFilters?: SavedFilter[];\n fetchSavedFilters?: () => Promise<void>;\n setFilterBar?: any;\n onSaveFilter?: (query: RuleGroupType) => void;\n onSelectedFilter?: (filterName: string) => void;\n fields: any;\n applyFilter: any\n}\n\ninterface SavedFilter {\n id: string;\n name: string;\n query: RuleGroupType;\n}\n\nconst initialQuery: RuleGroupType = { combinator: \"and\", rules: [] };\n\nconst Filter = ({\n open,\n onClose,\n // activeView,\n savedFilters,\n fetchSavedFilters,\n onSaveFilter,\n onSelectedFilter,\n applyFilter,\n fields = []\n}: IFilter) => {\n const location = useLocation();\n\n const token = localStorage.getItem(auth.storageTokenKeyName);\n const { updatePageInfo, activePage, schemaFields,setActivePage } = usePages()\n\n fields = schemaFields.length ? generateFields(schemaFields) : fields\n const [query, setQuery] = useState<RuleGroupType>(initialQuery);\n const [filteredSavedFilters, setFilteredSavedFilters] = useState<\n SavedFilter[]\n >(savedFilters ?? []);\n const [selectedFilter, setSelectedFilter] = useState<any>(null);\n const [openRenameFilter, setIsOpenRenameFilter] = useState<any>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n const {isRtl}=useLanguage();\n const resources: IResources = useMemo(() => routeToResourceMap[location.pathname] || null, [location.pathname])\n\n useEffect(() => {\n savedFilters && setFilteredSavedFilters(savedFilters);\n }, [savedFilters]);\n\n\n const handleApplyFilter = useCallback((clear:boolean = false) => {\n let q = query\n const isInvalid = isDuplicatedFilters(q)\n if(isInvalid){\n setErrorMessage(\"Invalid filter\")\n return\n }\n if(clear) {\n q = initialQuery\n setQuery(q)\n } else {\n const generatedSQLQuery = q ? generateQueryString(q) : q;\n updatePageInfo({ filters: q, filterQueryString: generatedSQLQuery })\n // applyFilter(generatedSQLQuery);\n onClose();\n }\n }, [query, applyFilter, onClose]);\n\n const handleQueryChange = (q: RuleGroupType) => {\n const updatedRules = q.rules.map((rule, i) => ({\n ...rule,\n value: rule.field !== query.rules?.[i]?.field || ['null', 'notNull'].includes(rule.operator) ? \"\" : rule.value\n }));\n let isValid = true;\n let errorMessage = '';\n\n // // Helper function to check for invalid aggregate usage, considering parent combinators\n // const checkForInvalidAggregateUsage = (rules: any[], combinator: string, parentCombinator: string | null): boolean => {\n // let hasAggregateField = false;\n // let hasNonAggregateField = false;\n\n // rules.forEach(rule => {\n // // Check nested groups\n // if (rule.rules) {\n // // If the current group or any parent has an 'OR', pass it down\n // const currentCombinator = combinator === 'or' || parentCombinator === 'or' ? 'or' : combinator;\n // checkForInvalidAggregateUsage(rule.rules, rule.combinator, currentCombinator);\n // } else {\n // // Find the field in the fields array and check if it's an aggregate\n // const field = fields.find((f: any) => f.name === rule.field);\n\n // if (field?.is_aggregate) {\n // hasAggregateField = true;\n // } else {\n // hasNonAggregateField = true;\n // }\n // }\n // });\n\n // // If any parent or current rule uses 'OR' with a mix of aggregate and non-aggregate fields, it's invalid\n // if ((combinator === 'or' || parentCombinator === 'or') && hasAggregateField && hasNonAggregateField) {\n // isValid = false;\n // errorMessage = 'Mixing aggregate and non-aggregate fields in OR conditions may lead to unexpected results.';\n // }\n\n // return isValid;\n // };\n\n // Start checking from the root level (no parent combinator initially)\n \n\n // Always set the query, regardless of validity\n setQuery({...q, rules: updatedRules});\n\n // Set error message if invalid, otherwise clear it\n if (!isValid) {\n setErrorMessage(errorMessage);\n } else {\n setErrorMessage(null);\n }\n\n // Always call onSaveFilter, if it exists\n if (onSaveFilter) {\n onSaveFilter(q);\n }\n };\n\n const handleFilterSwitch = (sf?: any) => {\n if (sf) {\n setSelectedFilter(sf);\n setQuery(sf.query);\n if (onSelectedFilter) {\n onSelectedFilter(sf);\n }\n } else{\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (onSelectedFilter) {\n onSelectedFilter(null);\n }\n }\n };\n\n const handleSearchEvent = (searchText: string) => {\n const filteredFilters = savedFilters?.filter((filter: any) =>\n filter.name.toLowerCase().includes(searchText.toLowerCase())\n );\n if (filteredFilters) {\n setFilteredSavedFilters(filteredFilters);\n }\n };\n\n const handleRenameFilter = async (filterId: string, newName: string) => {\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n name: newName,\n module: resources?.fieldResource || resources?.pageResource\n };\n\n try {\n await putV1FilterId(putFilterRequest)\n // setSelectedFilter(newName);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n enqueueSnackbar('Filters renamed successfully.')\n } catch (error) {\n let m: string = 'Something went wrong on saving filters'\n\t\t\tif(error instanceof Error) {\n m = getErrorMessage(error.message)\n\t\t\t}\n\t\t\tenqueueSnackbar(m, {variant: 'error'})\n\t\t\treturn false\n }\n return true\n };\n const handleUpdateSelectedFilterQuery = async () => {\n if(selectedFilter) {\n\n const putFilterRequest: Types.PutV1FilterIdRequest = {\n \"x-token\": token,\n id: selectedFilter.id,\n data: query,\n };\n \n putV1FilterId(putFilterRequest)\n .then((response: any) => {\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n setActivePage((prev: any) => ({\n ...prev,\n filters:{\n ...prev.filters,\n rules: query.rules,\n combinator: query.combinator,\n name: selectedFilter.name\n \n }\n }));\n })\n .catch((err: any) => enqueueSnackbar(\"Error renaming saved filters:\", {variant:'error'}));\n }\n };\n\n const handleSubmitRename = (name: string) => {\n if (openRenameFilter) {\n return handleRenameFilter(openRenameFilter.id, name);\n }\n };\n\n const handleDeleteFilter = async (filterId: string) => {\n const deleteFilterRequest: Types.DeleteV1FilterIdRequest = {\n \"x-token\": token,\n id: filterId,\n };\n\n deleteV1FilterId(deleteFilterRequest)\n .then((response: any) => {\n setSelectedFilter(null);\n setQuery(initialQuery);\n if (fetchSavedFilters) {\n fetchSavedFilters();\n }\n \n })\n .catch((err: any) => console.log(\"Error deleting saved filters:\", err));\n };\n\n useEffect(() => {\n let q = initialQuery\n if(!_.isEmpty(activePage.filters)) {\n q = activePage.filters\n }\n setQuery(q)\n const selectedFilter = savedFilters?.find((f: any) => f.name === activePage?.filters?.name);\n setSelectedFilter(selectedFilter || null);\n }, [activePage?.filters, savedFilters]);\n\n const isDuplicatedFilters = (rule) => {\n let uniques:string[]=[]\n rule?.rules?.forEach((r: any) => {\n if(uniques.includes(r.field)&& rule.combinator=='and'){\n return true\n }\n uniques.push(r.field)\n })\n return uniques.length !== rule?.rules?.length\n }\n\n\n const isRuleInvalid = (rule: any): boolean => {\n // If it's a group (has nested rules), recurse\n if (Array.isArray(rule.rules)) {\n return rule.rules.length ? rule.rules.some(isRuleInvalid) : !rule.rules.length;\n }\n \n // Otherwise, validate individual rule\n return (\n !rule.field ||\n (_.isEmpty(rule.value) && !['null', 'notNull'].includes(rule.operator))\n );\n };\n \n const disabled = useMemo(() => isRuleInvalid(query) || errorMessage, [query, errorMessage])\n // const disabled = isRuleInvalid(query) || errorMessage;\n\n return (\n <div>\n <Dialog \n open={open} \n onClose={onClose} \n maxWidth='md' \n fullWidth={true} \n PaperProps={{\n sx:{ borderRadius: 2 }\n }}\n >\n <DialogTitle className=\"filter-header\">\n <Typography type=\"s3\" weight=\"medium\" color=\"theme.secondary.1000\">\n Filters\n </Typography>\n <Box gap={1} display={\"flex\"}>\n <Select\n fullWidth\n size=\"small\"\n className=\"filter-dropdown\"\n value={selectedFilter ? selectedFilter.name : \"Saved Filters\"}\n onChange={(event: any) =>{\n const sf = savedFilters?.find(f => f.name == event.target.value)\n handleFilterSwitch(sf)\n }}\n variant=\"outlined\"\n onClose={() => {\n setTimeout(() => {\n handleSearchEvent(\"\")\n }, 500);\n }}\n input={\n selectedFilter ? (\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n <IconButton\n aria-label='clear selection'\n onClick={() => {\n handleFilterSwitch()\n }}\n edge='end'\n sx={{ mr: 1.5 }}\n size='small'>\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n </InputAdornment>\n }\n />\n ) : undefined\n }\n >\n <div className=\"searchbar-box-list\">\n <SearchBar\n placeholder={\"Search Filters\"}\n handleSearch={(e) => handleSearchEvent(e)}\n />\n </div>\n {/* <Typography\n color=\"theme.secondary.1000\"\n type=\"s4\"\n className=\"filter-title\"\n >\n Saved Filters\n </Typography> */}\n {filteredSavedFilters?.map((savedFilter: SavedFilter) => (\n <MenuItem\n key={savedFilter.id}\n value={savedFilter?.name}\n className=\"menu-list\"\n selected={selectedFilter?.name == savedFilter?.name}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s3\">\n {savedFilter?.name}\n </Typography>\n\n <div className=\"icon-list\">\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n setIsOpenRenameFilter(savedFilter)\n }}>\n <Edit fontSize=\"small\" color={selectedFilter?.name == savedFilter?.name ? \"theme.primary.800\" : 'inherit'}/>\n </IconButton>\n <IconButton size=\"small\" onClick={(e) => {\n e.preventDefault()\n e.stopPropagation()\n handleDeleteFilter(savedFilter.id)\n }} color=\"error\">\n <Trash fontSize=\"small\" color=\"theme.error.600\"/>\n </IconButton>\n </div>\n </MenuItem>\n ))}\n </Select>\n <SaveFilterModal\n open={openRenameFilter !== null}\n onClose={() => setIsOpenRenameFilter(null)}\n handleSubmit={(name) => handleSubmitRename(name)}\n oldName={openRenameFilter?.name}\n />\n <Box>\n <IconButton size=\"small\" onClick={onClose}>\n <Close fontSize=\"small\" />\n </IconButton>\n </Box>\n </Box>\n </DialogTitle>\n <DialogContent className=\"content\">\n {/* Display error message */}\n {errorMessage && (\n <Alert severity=\"error\" sx={{ px:1, pt: 0.5, mb: 1 }}>\n <Typography\n color=\"error\"\n type=\"s4\"\n >\n {errorMessage}\n </Typography>\n </Alert>\n )}\n <QueryBuilderMaterial>\n <QueryBuilder\n fields={fields || []}\n query={query}\n onQueryChange={handleQueryChange}\n showCombinatorsBetweenRules={true}\n controlClassnames={{\n header: \"actions\",\n }}\n controlElements={{\n addRuleAction: AddFilterButton,\n addGroupAction: AddGroupButton,\n combinatorSelector: CombinatorSelect,\n fieldSelector: FieldSelect,\n operatorSelector: OperatorSelect,\n removeRuleAction: RemoveAction,\n valueEditor: ValueEditor,\n removeGroupAction: RemoveGroupAction,\n }}\n />\n <Button\n variant=\"text\"\n className={isRtl?'remove-filters_rtl':'remove-filters'}\n onClick={() => {\n handleApplyFilter(true)\n }}\n disabled={disabled}\n >\n Clear all filters\n </Button>\n </QueryBuilderMaterial>\n </DialogContent>\n <DialogActions className=\"filter-footer\">\n <Box sx={{ display: 'flex', alignItems: 'center', justifyContent:selectedFilter ? 'space-between' : 'flex-end', width:'100%' }}>\n {selectedFilter &&\n <Box>\n <Button onClick={handleUpdateSelectedFilterQuery}> \n Update Seleted filter\n </Button>\n </Box>\n }\n <Box sx={{display: 'flex', gap:1}}>\n <Button className=\"cancel-filter-btn\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n disabled={disabled}\n onClick={() => handleApplyFilter()}\n >\n Apply\n </Button>\n </Box>\n </Box>\n </DialogActions>\n </Dialog>\n </div>\n );\n};\n\nexport default Filter;\n"],"names":["setBaseUrl","initialQuery","combinator","rules","open","onClose","savedFilters","fetchSavedFilters","onSaveFilter","onSelectedFilter","applyFilter","fields","location","useLocation","token","localStorage","getItem","auth","storageTokenKeyName","updatePageInfo","activePage","schemaFields","setActivePage","usePages","length","generateFields","query","setQuery","useState","filteredSavedFilters","setFilteredSavedFilters","selectedFilter","setSelectedFilter","openRenameFilter","setIsOpenRenameFilter","errorMessage","setErrorMessage","isRtl","useLanguage","resources","useMemo","routeToResourceMap","pathname","useEffect","handleApplyFilter","useCallback","clear","q","isDuplicatedFilters","generatedSQLQuery","generateQueryString","filters","filterQueryString","handleFilterSwitch","sf","handleSearchEvent","searchText","filteredFilters","filter","name","toLowerCase","includes","_","isEmpty","find","f","_a","rule","uniques","forEach","r","field","push","_b","isRuleInvalid","Array","isArray","some","value","operator","disabled","children","jsxs","Dialog","maxWidth","fullWidth","PaperProps","sx","borderRadius","DialogTitle","className","jsx","Typography","type","weight","color","Box","gap","display","Select","size","onChange","event","target","variant","setTimeout","input","OutlinedInput","label","endAdornment","InputAdornment","position","IconButton","onClick","edge","mr","Close","fontSize","SearchBar","placeholder","handleSearch","e","map","savedFilter","MenuItem","selected","preventDefault","stopPropagation","Edit","async","filterId","deleteFilterRequest","id","deleteV1FilterId","then","response","catch","err","handleDeleteFilter","Trash","SaveFilterModal","handleSubmit","newName","putFilterRequest","module","fieldResource","pageResource","putV1FilterId","enqueueSnackbar","error","m","Error","getErrorMessage","message","handleRenameFilter","handleSubmitRename","oldName","DialogContent","Alert","severity","px","pt","mb","QueryBuilderMaterial","QueryBuilder","onQueryChange","updatedRules","i","showCombinatorsBetweenRules","controlClassnames","header","controlElements","addRuleAction","AddFilterButton","addGroupAction","AddGroupButton","combinatorSelector","CombinatorSelect","fieldSelector","FieldSelect","operatorSelector","OperatorSelect","removeRuleAction","RemoveAction","valueEditor","ValueEditor","removeGroupAction","RemoveGroupAction","Button","DialogActions","alignItems","justifyContent","width","data","prev"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { createAsyncThunk } from "@reduxjs/toolkit";
|
|
|
2
2
|
import { setBaseUrl } from "../../../../api-client/api.rbac/api/index.esm.js";
|
|
3
3
|
import { getV1Languages } from "../../../../api-client/api.system-feature/api/index.esm.js";
|
|
4
4
|
import { getToken } from "../../../../utils/common/index.esm.js";
|
|
5
|
-
setBaseUrl(`${"
|
|
5
|
+
setBaseUrl(`${"https://apidev.erpforce.co"}/rbac`);
|
|
6
6
|
const fetchLanguages = createAsyncThunk(
|
|
7
7
|
"header/language/get",
|
|
8
8
|
async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL"],"mappings":";;;;AAOAA,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL"],"mappings":";;;;AAOAA,WAAW,GAAG,4BAAqC,OAAO;AAEnD,MAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA,YAAY;;AACV,UAAM,WAAW,MAAM,eAAe;AAAA,MACpC,OAAO;AAAA,MACP,GAAG,SAAA;AAAA,IAAS,CACb;AACD,UAAM,SAAO,0CAAU,SAAV,mBAAgB,cAAa,CAAA;AAC1C,UAAM,aAAY,kCAAM,OAAO,CAAA,MAAK,uBAAG,eAArB,mBAAiC;AAAA,MAAI,CAAA,MAAK;AAC1D,eAAO;AAAA,UACL,OAAO,uBAAG;AAAA,UACV,MAAM,uBAAG;AAAA,UACT,WAAW,uBAAG;AAAA,QAAA;AAAA,MAElB;AAAA;AAEF,WAAO,EAAE,UAAA;AAAA,EACX;AAAC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),i=require("../../../../api-client/api.rbac/api/index.js"),a=require("../../../../api-client/api.system-feature/api/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@reduxjs/toolkit"),i=require("../../../../api-client/api.rbac/api/index.js"),a=require("../../../../api-client/api.system-feature/api/index.js"),r=require("../../../../utils/common/index.js");i.setBaseUrl("https://apidev.erpforce.co/rbac");const n=e.createAsyncThunk("header/language/get",async()=>{var e,i;const n=await a.getV1Languages({order:"id:1",...r.getToken()}),t=(null==(e=null==n?void 0:n.data)?void 0:e.languages)||[];return{languages:null==(i=null==t?void 0:t.filter(e=>null==e?void 0:e.is_active))?void 0:i.map(e=>({label:null==e?void 0:e.name,code:null==e?void 0:e.code,direction:null==e?void 0:e.direction}))}});exports.fetchLanguages=n;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL","fetchLanguages","createAsyncThunk","async","response","getV1Languages","order","getToken","data","_a","languages","_b","filter","d","is_active","map","label","name","code","direction"],"mappings":"mRAOAA,EAAAA,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/header/redux/actionCreator.ts"],"sourcesContent":["import { createAsyncThunk } from \"@reduxjs/toolkit\";\nimport { setRoleURL } from \"../../../utils/server\";\nimport { getV1Languages } from \"../../../api-client/api.system-feature/api\";\nimport { getToken } from '../../../utils/common';\n\n\n\nsetRoleURL(`${import.meta.env.VITE_BACKEND_BASE_URL}/rbac`);\n\nexport const fetchLanguages = createAsyncThunk(\n \"header/language/get\",\n async () => {\n const response = await getV1Languages({\n order: `id:1`,\n ...getToken(),\n });\n const data = response?.data?.languages || [];\n const languages = data?.filter(d => d?.is_active)?.map(d => {\n return {\n label: d?.name,\n code: d?.code,\n direction: d?.direction\n }\n },\n );\n return { languages }\n});\n"],"names":["setRoleURL","fetchLanguages","createAsyncThunk","async","response","getV1Languages","order","getToken","data","_a","languages","_b","filter","d","is_active","map","label","name","code","direction"],"mappings":"mRAOAA,EAAAA,WAAW,mCAEJ,MAAMC,EAAiBC,EAAAA,iBAC5B,sBACAC,kBACE,MAAMC,QAAiBC,iBAAe,CACpCC,MAAO,UACJC,EAAAA,aAECC,GAAO,OAAAC,EAAA,MAAAL,OAAA,EAAAA,EAAUI,WAAV,EAAAC,EAAgBC,YAAa,GAS5C,MAAO,CAAEA,UARW,OAAAC,EAAA,MAAAH,OAAA,EAAAA,EAAMI,OAAOC,GAAK,MAAAA,OAAA,EAAAA,EAAGC,iBAArB,EAAAH,EAAiCI,IAAIF,IAC9C,CACLG,MAAO,MAAAH,OAAA,EAAAA,EAAGI,KACVC,KAAM,MAAAL,OAAA,EAAAA,EAAGK,KACTC,UAAW,MAAAN,OAAA,EAAAA,EAAGM"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import createSvgIcon from "../../../node_modules/@mui/material/utils/createSvgIcon/index.esm.js";
|
|
3
3
|
const Action = createSvgIcon(
|
|
4
|
-
/* @__PURE__ */ jsxs("svg", { width: "
|
|
5
|
-
/* @__PURE__ */ jsx("
|
|
6
|
-
/* @__PURE__ */ jsx("path", { d: "
|
|
7
|
-
/* @__PURE__ */ jsx("path", { d: "
|
|
8
|
-
/* @__PURE__ */ jsx("path", { d: "
|
|
9
|
-
/* @__PURE__ */ jsx("path", { d: "
|
|
10
|
-
/* @__PURE__ */ jsx("path", { d: "M14.9192 17.5V16.1779C14.9192 14.5313 16.0829 13.8583 17.5079 14.6817L18.6559 15.3467L19.8038 16.0117C21.2288 16.835 21.2288 18.1808 19.8038 19.0042L18.6559 19.6692L17.5079 20.3342C16.0829 21.1575 14.9192 20.4846 14.9192 18.8379V17.5Z", fill: "#2EB273" })
|
|
4
|
+
/* @__PURE__ */ jsxs("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
5
|
+
/* @__PURE__ */ jsx("path", { d: "M15.8915 16.5166C15.7331 16.5166 15.5748 16.4583 15.4498 16.3333C15.2081 16.0916 15.2081 15.6916 15.4498 15.4499C18.4581 12.4416 18.4581 7.54993 15.4498 4.54993C15.2081 4.30827 15.2081 3.90827 15.4498 3.6666C15.6915 3.42493 16.0915 3.42493 16.3331 3.6666C19.8248 7.15827 19.8248 12.8416 16.3331 16.3333C16.2081 16.4583 16.0498 16.5166 15.8915 16.5166Z", fill: "#2EB273" }),
|
|
6
|
+
/* @__PURE__ */ jsx("path", { d: "M4.10827 16.5166C3.94993 16.5166 3.7916 16.4583 3.6666 16.3333C0.174935 12.8416 0.174935 7.15827 3.6666 3.6666C3.90827 3.42493 4.30827 3.42493 4.54993 3.6666C4.7916 3.90827 4.7916 4.30827 4.54993 4.54993C1.5416 7.55827 1.5416 12.4499 4.54993 15.4499C4.7916 15.6916 4.7916 16.0916 4.54993 16.3333C4.42493 16.4583 4.2666 16.5166 4.10827 16.5166Z", fill: "#2EB273" }),
|
|
7
|
+
/* @__PURE__ */ jsx("path", { d: "M9.99996 18.9249C8.9583 18.9165 7.96663 18.7499 7.04163 18.4249C6.71663 18.3082 6.54163 17.9499 6.6583 17.6249C6.77496 17.2999 7.12496 17.1249 7.4583 17.2415C8.2583 17.5165 9.1083 17.6665 10.0083 17.6665C10.9 17.6665 11.7583 17.5165 12.55 17.2415C12.875 17.1332 13.2333 17.2999 13.35 17.6249C13.4666 17.9499 13.2916 18.3082 12.9666 18.4249C12.0333 18.7499 11.0416 18.9249 9.99996 18.9249Z", fill: "#2EB273" }),
|
|
8
|
+
/* @__PURE__ */ jsx("path", { d: "M12.75 2.78328C12.6833 2.78328 12.6083 2.77495 12.5416 2.74995C11.75 2.46662 10.8916 2.32495 9.99996 2.32495C9.1083 2.32495 8.2583 2.47495 7.4583 2.74995C7.12496 2.85828 6.77496 2.69162 6.6583 2.36662C6.54163 2.04162 6.71663 1.68328 7.04163 1.56662C7.97496 1.24162 8.96663 1.07495 9.99996 1.07495C11.0333 1.07495 12.0333 1.24162 12.9583 1.56662C13.2833 1.68328 13.4583 2.04162 13.3416 2.36662C13.25 2.62495 13.0083 2.78328 12.75 2.78328Z", fill: "#2EB273" }),
|
|
9
|
+
/* @__PURE__ */ jsx("path", { d: "M7.2832 10V8.60837C7.2832 6.87504 8.5082 6.1667 10.0082 7.03337L11.2165 7.73337L12.4249 8.43337C13.9249 9.30004 13.9249 10.7167 12.4249 11.5834L11.2165 12.2834L10.0082 12.9834C8.5082 13.85 7.2832 13.1417 7.2832 11.4084V10Z", fill: "#2EB273" })
|
|
11
10
|
] }),
|
|
12
11
|
"Action"
|
|
13
12
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/icons/action.tsx"],"sourcesContent":["import { createSvgIcon } from \"@mui/material\";\n\nexport const Action =\n createSvgIcon(\n
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/icons/action.tsx"],"sourcesContent":["import { createSvgIcon } from \"@mui/material\";\n\nexport const Action =\n createSvgIcon(\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.8915 16.5166C15.7331 16.5166 15.5748 16.4583 15.4498 16.3333C15.2081 16.0916 15.2081 15.6916 15.4498 15.4499C18.4581 12.4416 18.4581 7.54993 15.4498 4.54993C15.2081 4.30827 15.2081 3.90827 15.4498 3.6666C15.6915 3.42493 16.0915 3.42493 16.3331 3.6666C19.8248 7.15827 19.8248 12.8416 16.3331 16.3333C16.2081 16.4583 16.0498 16.5166 15.8915 16.5166Z\" fill=\"#2EB273\" />\n <path d=\"M4.10827 16.5166C3.94993 16.5166 3.7916 16.4583 3.6666 16.3333C0.174935 12.8416 0.174935 7.15827 3.6666 3.6666C3.90827 3.42493 4.30827 3.42493 4.54993 3.6666C4.7916 3.90827 4.7916 4.30827 4.54993 4.54993C1.5416 7.55827 1.5416 12.4499 4.54993 15.4499C4.7916 15.6916 4.7916 16.0916 4.54993 16.3333C4.42493 16.4583 4.2666 16.5166 4.10827 16.5166Z\" fill=\"#2EB273\" />\n <path d=\"M9.99996 18.9249C8.9583 18.9165 7.96663 18.7499 7.04163 18.4249C6.71663 18.3082 6.54163 17.9499 6.6583 17.6249C6.77496 17.2999 7.12496 17.1249 7.4583 17.2415C8.2583 17.5165 9.1083 17.6665 10.0083 17.6665C10.9 17.6665 11.7583 17.5165 12.55 17.2415C12.875 17.1332 13.2333 17.2999 13.35 17.6249C13.4666 17.9499 13.2916 18.3082 12.9666 18.4249C12.0333 18.7499 11.0416 18.9249 9.99996 18.9249Z\" fill=\"#2EB273\" />\n <path d=\"M12.75 2.78328C12.6833 2.78328 12.6083 2.77495 12.5416 2.74995C11.75 2.46662 10.8916 2.32495 9.99996 2.32495C9.1083 2.32495 8.2583 2.47495 7.4583 2.74995C7.12496 2.85828 6.77496 2.69162 6.6583 2.36662C6.54163 2.04162 6.71663 1.68328 7.04163 1.56662C7.97496 1.24162 8.96663 1.07495 9.99996 1.07495C11.0333 1.07495 12.0333 1.24162 12.9583 1.56662C13.2833 1.68328 13.4583 2.04162 13.3416 2.36662C13.25 2.62495 13.0083 2.78328 12.75 2.78328Z\" fill=\"#2EB273\" />\n <path d=\"M7.2832 10V8.60837C7.2832 6.87504 8.5082 6.1667 10.0082 7.03337L11.2165 7.73337L12.4249 8.43337C13.9249 9.30004 13.9249 10.7167 12.4249 11.5834L11.2165 12.2834L10.0082 12.9834C8.5082 13.85 7.2832 13.1417 7.2832 11.4084V10Z\" fill=\"#2EB273\" />\n </svg>\n\n\n\n ,\n \"Action\",\n )\n\nexport default Action;\n"],"names":[],"mappings":";;AAEO,MAAM,SACT;AAAA,EACI,qBAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC9D,UAAA;AAAA,IAAA,oBAAC,QAAA,EAAK,GAAE,mWAAkW,MAAK,WAAU;AAAA,IACzX,oBAAC,QAAA,EAAK,GAAE,2VAA0V,MAAK,WAAU;AAAA,IACjX,oBAAC,QAAA,EAAK,GAAE,wYAAuY,MAAK,WAAU;AAAA,IAC9Z,oBAAC,QAAA,EAAK,GAAE,ybAAwb,MAAK,WAAU;AAAA,IAC/c,oBAAC,QAAA,EAAK,GAAE,kOAAiO,MAAK,UAAA,CAAU;AAAA,EAAA,GAC5P;AAAA,EAKA;AACJ;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var C=require("react/jsx-runtime");const e=require("../../../node_modules/@mui/material/utils/createSvgIcon/index.js").default(
|
|
2
|
-
/* @__PURE__ */C.jsxs("svg",{width:"
|
|
3
|
-
/* @__PURE__ */C.jsx("
|
|
4
|
-
/* @__PURE__ */C.jsx("path",{d:"
|
|
5
|
-
/* @__PURE__ */C.jsx("path",{d:"
|
|
6
|
-
/* @__PURE__ */C.jsx("path",{d:"
|
|
7
|
-
/* @__PURE__ */C.jsx("path",{d:"
|
|
8
|
-
/* @__PURE__ */C.jsx("path",{d:"M14.9192 17.5V16.1779C14.9192 14.5313 16.0829 13.8583 17.5079 14.6817L18.6559 15.3467L19.8038 16.0117C21.2288 16.835 21.2288 18.1808 19.8038 19.0042L18.6559 19.6692L17.5079 20.3342C16.0829 21.1575 14.9192 20.4846 14.9192 18.8379V17.5Z",fill:"#2EB273"})]}),"Action");exports.Action=e,exports.default=e;
|
|
2
|
+
/* @__PURE__ */C.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[
|
|
3
|
+
/* @__PURE__ */C.jsx("path",{d:"M15.8915 16.5166C15.7331 16.5166 15.5748 16.4583 15.4498 16.3333C15.2081 16.0916 15.2081 15.6916 15.4498 15.4499C18.4581 12.4416 18.4581 7.54993 15.4498 4.54993C15.2081 4.30827 15.2081 3.90827 15.4498 3.6666C15.6915 3.42493 16.0915 3.42493 16.3331 3.6666C19.8248 7.15827 19.8248 12.8416 16.3331 16.3333C16.2081 16.4583 16.0498 16.5166 15.8915 16.5166Z",fill:"#2EB273"}),
|
|
4
|
+
/* @__PURE__ */C.jsx("path",{d:"M4.10827 16.5166C3.94993 16.5166 3.7916 16.4583 3.6666 16.3333C0.174935 12.8416 0.174935 7.15827 3.6666 3.6666C3.90827 3.42493 4.30827 3.42493 4.54993 3.6666C4.7916 3.90827 4.7916 4.30827 4.54993 4.54993C1.5416 7.55827 1.5416 12.4499 4.54993 15.4499C4.7916 15.6916 4.7916 16.0916 4.54993 16.3333C4.42493 16.4583 4.2666 16.5166 4.10827 16.5166Z",fill:"#2EB273"}),
|
|
5
|
+
/* @__PURE__ */C.jsx("path",{d:"M9.99996 18.9249C8.9583 18.9165 7.96663 18.7499 7.04163 18.4249C6.71663 18.3082 6.54163 17.9499 6.6583 17.6249C6.77496 17.2999 7.12496 17.1249 7.4583 17.2415C8.2583 17.5165 9.1083 17.6665 10.0083 17.6665C10.9 17.6665 11.7583 17.5165 12.55 17.2415C12.875 17.1332 13.2333 17.2999 13.35 17.6249C13.4666 17.9499 13.2916 18.3082 12.9666 18.4249C12.0333 18.7499 11.0416 18.9249 9.99996 18.9249Z",fill:"#2EB273"}),
|
|
6
|
+
/* @__PURE__ */C.jsx("path",{d:"M12.75 2.78328C12.6833 2.78328 12.6083 2.77495 12.5416 2.74995C11.75 2.46662 10.8916 2.32495 9.99996 2.32495C9.1083 2.32495 8.2583 2.47495 7.4583 2.74995C7.12496 2.85828 6.77496 2.69162 6.6583 2.36662C6.54163 2.04162 6.71663 1.68328 7.04163 1.56662C7.97496 1.24162 8.96663 1.07495 9.99996 1.07495C11.0333 1.07495 12.0333 1.24162 12.9583 1.56662C13.2833 1.68328 13.4583 2.04162 13.3416 2.36662C13.25 2.62495 13.0083 2.78328 12.75 2.78328Z",fill:"#2EB273"}),
|
|
7
|
+
/* @__PURE__ */C.jsx("path",{d:"M7.2832 10V8.60837C7.2832 6.87504 8.5082 6.1667 10.0082 7.03337L11.2165 7.73337L12.4249 8.43337C13.9249 9.30004 13.9249 10.7167 12.4249 11.5834L11.2165 12.2834L10.0082 12.9834C8.5082 13.85 7.2832 13.1417 7.2832 11.4084V10Z",fill:"#2EB273"})]}),"Action");exports.Action=e,exports.default=e;
|
|
9
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/icons/action.tsx"],"sourcesContent":["import { createSvgIcon } from \"@mui/material\";\n\nexport const Action =\n createSvgIcon(\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/icons/action.tsx"],"sourcesContent":["import { createSvgIcon } from \"@mui/material\";\n\nexport const Action =\n createSvgIcon(\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M15.8915 16.5166C15.7331 16.5166 15.5748 16.4583 15.4498 16.3333C15.2081 16.0916 15.2081 15.6916 15.4498 15.4499C18.4581 12.4416 18.4581 7.54993 15.4498 4.54993C15.2081 4.30827 15.2081 3.90827 15.4498 3.6666C15.6915 3.42493 16.0915 3.42493 16.3331 3.6666C19.8248 7.15827 19.8248 12.8416 16.3331 16.3333C16.2081 16.4583 16.0498 16.5166 15.8915 16.5166Z\" fill=\"#2EB273\" />\n <path d=\"M4.10827 16.5166C3.94993 16.5166 3.7916 16.4583 3.6666 16.3333C0.174935 12.8416 0.174935 7.15827 3.6666 3.6666C3.90827 3.42493 4.30827 3.42493 4.54993 3.6666C4.7916 3.90827 4.7916 4.30827 4.54993 4.54993C1.5416 7.55827 1.5416 12.4499 4.54993 15.4499C4.7916 15.6916 4.7916 16.0916 4.54993 16.3333C4.42493 16.4583 4.2666 16.5166 4.10827 16.5166Z\" fill=\"#2EB273\" />\n <path d=\"M9.99996 18.9249C8.9583 18.9165 7.96663 18.7499 7.04163 18.4249C6.71663 18.3082 6.54163 17.9499 6.6583 17.6249C6.77496 17.2999 7.12496 17.1249 7.4583 17.2415C8.2583 17.5165 9.1083 17.6665 10.0083 17.6665C10.9 17.6665 11.7583 17.5165 12.55 17.2415C12.875 17.1332 13.2333 17.2999 13.35 17.6249C13.4666 17.9499 13.2916 18.3082 12.9666 18.4249C12.0333 18.7499 11.0416 18.9249 9.99996 18.9249Z\" fill=\"#2EB273\" />\n <path d=\"M12.75 2.78328C12.6833 2.78328 12.6083 2.77495 12.5416 2.74995C11.75 2.46662 10.8916 2.32495 9.99996 2.32495C9.1083 2.32495 8.2583 2.47495 7.4583 2.74995C7.12496 2.85828 6.77496 2.69162 6.6583 2.36662C6.54163 2.04162 6.71663 1.68328 7.04163 1.56662C7.97496 1.24162 8.96663 1.07495 9.99996 1.07495C11.0333 1.07495 12.0333 1.24162 12.9583 1.56662C13.2833 1.68328 13.4583 2.04162 13.3416 2.36662C13.25 2.62495 13.0083 2.78328 12.75 2.78328Z\" fill=\"#2EB273\" />\n <path d=\"M7.2832 10V8.60837C7.2832 6.87504 8.5082 6.1667 10.0082 7.03337L11.2165 7.73337L12.4249 8.43337C13.9249 9.30004 13.9249 10.7167 12.4249 11.5834L11.2165 12.2834L10.0082 12.9834C8.5082 13.85 7.2832 13.1417 7.2832 11.4084V10Z\" fill=\"#2EB273\" />\n </svg>\n\n\n\n ,\n \"Action\",\n )\n\nexport default Action;\n"],"names":["Action","createSvgIcon","jsxs","width","height","viewBox","fill","xmlns","children","jsx","d"],"mappings":"uGAEO,MAAMA,8EACTC;eACIC,EAAAA,KAAC,MAAA,CAAIC,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAC9DC,SAAA;eAAAC,EAAAA,IAAC,OAAA,CAAKC,EAAE,kWAAkWJ,KAAK;eAC/WG,EAAAA,IAAC,OAAA,CAAKC,EAAE,0VAA0VJ,KAAK;eACvWG,EAAAA,IAAC,OAAA,CAAKC,EAAE,uYAAuYJ,KAAK;eACpZG,EAAAA,IAAC,OAAA,CAAKC,EAAE,wbAAwbJ,KAAK;eACrcG,EAAAA,IAAC,OAAA,CAAKC,EAAE,iOAAiOJ,KAAK,eAMlP"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import createSvgIcon from "../../../node_modules/@mui/material/utils/createSvgIcon/index.esm.js";
|
|
3
3
|
const Criteria = createSvgIcon(
|
|
4
|
-
/* @__PURE__ */
|
|
5
|
-
/* @__PURE__ */ jsx("rect", { x: "0.25", y: "0.25", width: "34.5", height: "34.5", rx: "7.75", fill: "#CDEBF4", stroke: "#C0E1EB", "stroke-width": "0.5" }),
|
|
6
|
-
/* @__PURE__ */ jsx("path", { d: "M20.817 9.58334H14.1828C11.3012 9.58334 9.58325 11.3013 9.58325 14.1829V20.8171C9.58325 23.6988 11.3012 25.4167 14.1828 25.4167H20.817C23.6987 25.4167 25.4166 23.6988 25.4166 20.8171V14.1829C25.4166 11.3013 23.6987 9.58334 20.817 9.58334ZM15.8928 19.7958L14.1116 21.5771C13.9928 21.6958 13.8424 21.7513 13.692 21.7513C13.5416 21.7513 13.3833 21.6958 13.2724 21.5771L12.6787 20.9833C12.4412 20.7538 12.4412 20.3738 12.6787 20.1442C12.9083 19.9146 13.2803 19.9146 13.5178 20.1442L13.692 20.3183L15.0537 18.9567C15.2833 18.7271 15.6553 18.7271 15.8928 18.9567C16.1224 19.1863 16.1224 19.5663 15.8928 19.7958ZM15.8928 14.2542L14.1116 16.0354C13.9928 16.1542 13.8424 16.2096 13.692 16.2096C13.5416 16.2096 13.3833 16.1542 13.2724 16.0354L12.6787 15.4417C12.4412 15.2121 12.4412 14.8321 12.6787 14.6025C12.9083 14.3729 13.2803 14.3729 13.5178 14.6025L13.692 14.7767L15.0537 13.415C15.2833 13.1854 15.6553 13.1854 15.8928 13.415C16.1224 13.6446 16.1224 14.0246 15.8928 14.2542ZM21.9016 21.1575H17.7453C17.4208 21.1575 17.1516 20.8883 17.1516 20.5638C17.1516 20.2392 17.4208 19.97 17.7453 19.97H21.9016C22.2341 19.97 22.4953 20.2392 22.4953 20.5638C22.4953 20.8883 22.2341 21.1575 21.9016 21.1575ZM21.9016 15.6158H17.7453C17.4208 15.6158 17.1516 15.3467 17.1516 15.0221C17.1516 14.6975 17.4208 14.4283 17.7453 14.4283H21.9016C22.2341 14.4283 22.4953 14.6975 22.4953 15.0221C22.4953 15.3467 22.2341 15.6158 21.9016 15.6158Z", fill: "#246E82" })
|
|
7
|
-
] }),
|
|
4
|
+
/* @__PURE__ */ jsx("svg", { width: "17", height: "17", viewBox: "0 0 17 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx("path", { d: "M11.825 0H4.84167C1.80833 0 0 1.80833 0 4.84167V11.825C0 14.8583 1.80833 16.6667 4.84167 16.6667H11.825C14.8583 16.6667 16.6667 14.8583 16.6667 11.825V4.84167C16.6667 1.80833 14.8583 0 11.825 0ZM6.64167 10.75L4.76667 12.625C4.64167 12.75 4.48333 12.8083 4.325 12.8083C4.16667 12.8083 4 12.75 3.88333 12.625L3.25833 12C3.00833 11.7583 3.00833 11.3583 3.25833 11.1167C3.5 10.875 3.89167 10.875 4.14167 11.1167L4.325 11.3L5.75833 9.86667C6 9.625 6.39167 9.625 6.64167 9.86667C6.88333 10.1083 6.88333 10.5083 6.64167 10.75ZM6.64167 4.91667L4.76667 6.79167C4.64167 6.91667 4.48333 6.975 4.325 6.975C4.16667 6.975 4 6.91667 3.88333 6.79167L3.25833 6.16667C3.00833 5.925 3.00833 5.525 3.25833 5.28333C3.5 5.04167 3.89167 5.04167 4.14167 5.28333L4.325 5.46667L5.75833 4.03333C6 3.79167 6.39167 3.79167 6.64167 4.03333C6.88333 4.275 6.88333 4.675 6.64167 4.91667ZM12.9667 12.1833H8.59167C8.25 12.1833 7.96667 11.9 7.96667 11.5583C7.96667 11.2167 8.25 10.9333 8.59167 10.9333H12.9667C13.3167 10.9333 13.5917 11.2167 13.5917 11.5583C13.5917 11.9 13.3167 12.1833 12.9667 12.1833ZM12.9667 6.35H8.59167C8.25 6.35 7.96667 6.06667 7.96667 5.725C7.96667 5.38333 8.25 5.1 8.59167 5.1H12.9667C13.3167 5.1 13.5917 5.38333 13.5917 5.725C13.5917 6.06667 13.3167 6.35 12.9667 6.35Z", fill: "#246E82" }) }),
|
|
8
5
|
"Criteria"
|
|
9
6
|
);
|
|
10
7
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/icons/criteria.tsx"],"sourcesContent":["import { createSvgIcon } from \"@mui/material\";\n\nexport const Criteria =\n createSvgIcon(\n
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../src/components/icons/criteria.tsx"],"sourcesContent":["import { createSvgIcon } from \"@mui/material\";\n\nexport const Criteria =\n createSvgIcon(\n <svg width=\"17\" height=\"17\" viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M11.825 0H4.84167C1.80833 0 0 1.80833 0 4.84167V11.825C0 14.8583 1.80833 16.6667 4.84167 16.6667H11.825C14.8583 16.6667 16.6667 14.8583 16.6667 11.825V4.84167C16.6667 1.80833 14.8583 0 11.825 0ZM6.64167 10.75L4.76667 12.625C4.64167 12.75 4.48333 12.8083 4.325 12.8083C4.16667 12.8083 4 12.75 3.88333 12.625L3.25833 12C3.00833 11.7583 3.00833 11.3583 3.25833 11.1167C3.5 10.875 3.89167 10.875 4.14167 11.1167L4.325 11.3L5.75833 9.86667C6 9.625 6.39167 9.625 6.64167 9.86667C6.88333 10.1083 6.88333 10.5083 6.64167 10.75ZM6.64167 4.91667L4.76667 6.79167C4.64167 6.91667 4.48333 6.975 4.325 6.975C4.16667 6.975 4 6.91667 3.88333 6.79167L3.25833 6.16667C3.00833 5.925 3.00833 5.525 3.25833 5.28333C3.5 5.04167 3.89167 5.04167 4.14167 5.28333L4.325 5.46667L5.75833 4.03333C6 3.79167 6.39167 3.79167 6.64167 4.03333C6.88333 4.275 6.88333 4.675 6.64167 4.91667ZM12.9667 12.1833H8.59167C8.25 12.1833 7.96667 11.9 7.96667 11.5583C7.96667 11.2167 8.25 10.9333 8.59167 10.9333H12.9667C13.3167 10.9333 13.5917 11.2167 13.5917 11.5583C13.5917 11.9 13.3167 12.1833 12.9667 12.1833ZM12.9667 6.35H8.59167C8.25 6.35 7.96667 6.06667 7.96667 5.725C7.96667 5.38333 8.25 5.1 8.59167 5.1H12.9667C13.3167 5.1 13.5917 5.38333 13.5917 5.725C13.5917 6.06667 13.3167 6.35 12.9667 6.35Z\" fill=\"#246E82\" />\n </svg>\n\n\n ,\n \"Criteria\",\n )\n\nexport default Criteria;\n"],"names":[],"mappings":";;AAEO,MAAM,WACT;AAAA,sBACK,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAC9D,UAAA,oBAAC,QAAA,EAAK,GAAE,8uCAA6uC,MAAK,WAAU,GACxwC;AAAA,EAIA;AACJ;"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");const
|
|
2
|
-
/* @__PURE__ */e.
|
|
3
|
-
/* @__PURE__ */e.jsx("rect",{x:"0.25",y:"0.25",width:"34.5",height:"34.5",rx:"7.75",fill:"#CDEBF4",stroke:"#C0E1EB","stroke-width":"0.5"}),
|
|
4
|
-
/* @__PURE__ */e.jsx("path",{d:"M20.817 9.58334H14.1828C11.3012 9.58334 9.58325 11.3013 9.58325 14.1829V20.8171C9.58325 23.6988 11.3012 25.4167 14.1828 25.4167H20.817C23.6987 25.4167 25.4166 23.6988 25.4166 20.8171V14.1829C25.4166 11.3013 23.6987 9.58334 20.817 9.58334ZM15.8928 19.7958L14.1116 21.5771C13.9928 21.6958 13.8424 21.7513 13.692 21.7513C13.5416 21.7513 13.3833 21.6958 13.2724 21.5771L12.6787 20.9833C12.4412 20.7538 12.4412 20.3738 12.6787 20.1442C12.9083 19.9146 13.2803 19.9146 13.5178 20.1442L13.692 20.3183L15.0537 18.9567C15.2833 18.7271 15.6553 18.7271 15.8928 18.9567C16.1224 19.1863 16.1224 19.5663 15.8928 19.7958ZM15.8928 14.2542L14.1116 16.0354C13.9928 16.1542 13.8424 16.2096 13.692 16.2096C13.5416 16.2096 13.3833 16.1542 13.2724 16.0354L12.6787 15.4417C12.4412 15.2121 12.4412 14.8321 12.6787 14.6025C12.9083 14.3729 13.2803 14.3729 13.5178 14.6025L13.692 14.7767L15.0537 13.415C15.2833 13.1854 15.6553 13.1854 15.8928 13.415C16.1224 13.6446 16.1224 14.0246 15.8928 14.2542ZM21.9016 21.1575H17.7453C17.4208 21.1575 17.1516 20.8883 17.1516 20.5638C17.1516 20.2392 17.4208 19.97 17.7453 19.97H21.9016C22.2341 19.97 22.4953 20.2392 22.4953 20.5638C22.4953 20.8883 22.2341 21.1575 21.9016 21.1575ZM21.9016 15.6158H17.7453C17.4208 15.6158 17.1516 15.3467 17.1516 15.0221C17.1516 14.6975 17.4208 14.4283 17.7453 14.4283H21.9016C22.2341 14.4283 22.4953 14.6975 22.4953 15.0221C22.4953 15.3467 22.2341 15.6158 21.9016 15.6158Z",fill:"#246E82"})]}),"Criteria");exports.Criteria=t,exports.default=t;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");const C=require("../../../node_modules/@mui/material/utils/createSvgIcon/index.js").default(
|
|
2
|
+
/* @__PURE__ */e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:/* @__PURE__ */e.jsx("path",{d:"M11.825 0H4.84167C1.80833 0 0 1.80833 0 4.84167V11.825C0 14.8583 1.80833 16.6667 4.84167 16.6667H11.825C14.8583 16.6667 16.6667 14.8583 16.6667 11.825V4.84167C16.6667 1.80833 14.8583 0 11.825 0ZM6.64167 10.75L4.76667 12.625C4.64167 12.75 4.48333 12.8083 4.325 12.8083C4.16667 12.8083 4 12.75 3.88333 12.625L3.25833 12C3.00833 11.7583 3.00833 11.3583 3.25833 11.1167C3.5 10.875 3.89167 10.875 4.14167 11.1167L4.325 11.3L5.75833 9.86667C6 9.625 6.39167 9.625 6.64167 9.86667C6.88333 10.1083 6.88333 10.5083 6.64167 10.75ZM6.64167 4.91667L4.76667 6.79167C4.64167 6.91667 4.48333 6.975 4.325 6.975C4.16667 6.975 4 6.91667 3.88333 6.79167L3.25833 6.16667C3.00833 5.925 3.00833 5.525 3.25833 5.28333C3.5 5.04167 3.89167 5.04167 4.14167 5.28333L4.325 5.46667L5.75833 4.03333C6 3.79167 6.39167 3.79167 6.64167 4.03333C6.88333 4.275 6.88333 4.675 6.64167 4.91667ZM12.9667 12.1833H8.59167C8.25 12.1833 7.96667 11.9 7.96667 11.5583C7.96667 11.2167 8.25 10.9333 8.59167 10.9333H12.9667C13.3167 10.9333 13.5917 11.2167 13.5917 11.5583C13.5917 11.9 13.3167 12.1833 12.9667 12.1833ZM12.9667 6.35H8.59167C8.25 6.35 7.96667 6.06667 7.96667 5.725C7.96667 5.38333 8.25 5.1 8.59167 5.1H12.9667C13.3167 5.1 13.5917 5.38333 13.5917 5.725C13.5917 6.06667 13.3167 6.35 12.9667 6.35Z",fill:"#246E82"})}),"Criteria");exports.Criteria=C,exports.default=C;
|
|
5
3
|
//# sourceMappingURL=index.js.map
|