1 line
16 KiB
JSON
1 line
16 KiB
JSON
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"groupId\", \"children\"];\nimport * as React from 'react';\nimport { isLeaf } from '../../../models/gridColumnGrouping';\nimport { gridColumnGroupsLookupSelector } from './gridColumnGroupsSelector';\nimport { gridColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nexport function hasGroupPath(lookupElement) {\n return lookupElement.groupPath !== undefined;\n}\n\n// This is the recurrence function that help writing `unwrapGroupingColumnModel()`\nconst recurrentUnwrapGroupingColumnModel = (columnGroupNode, parents, unwrappedGroupingModelToComplet) => {\n if (isLeaf(columnGroupNode)) {\n if (unwrappedGroupingModelToComplet[columnGroupNode.field] !== undefined) {\n throw new Error([`MUI: columnGroupingModel contains duplicated field`, `column field ${columnGroupNode.field} occurrs two times in the grouping model:`, `- ${unwrappedGroupingModelToComplet[columnGroupNode.field].join(' > ')}`, `- ${parents.join(' > ')}`].join('\\n'));\n }\n unwrappedGroupingModelToComplet[columnGroupNode.field] = parents;\n return;\n }\n const {\n groupId,\n children\n } = columnGroupNode;\n children.forEach(child => {\n recurrentUnwrapGroupingColumnModel(child, [...parents, groupId], unwrappedGroupingModelToComplet);\n });\n};\n/**\n * This is a function that provide for each column the array of its parents.\n * Parents are ordered from the root to the leaf.\n * @param columnGroupingModel The model such as provided in DataGrid props\n * @returns An object `{[field]: groupIds}` where `groupIds` is the parents of the column `field`\n */\n\nexport const unwrapGroupingColumnModel = columnGroupingModel => {\n if (!columnGroupingModel) {\n return {};\n }\n const unwrappedSubTree = {};\n columnGroupingModel.forEach(columnGroupNode => {\n recurrentUnwrapGroupingColumnModel(columnGroupNode, [], unwrappedSubTree);\n });\n return unwrappedSubTree;\n};\nconst createGroupLookup = columnGroupingModel => {\n let groupLookup = {};\n columnGroupingModel.forEach(node => {\n if (isLeaf(node)) {\n return;\n }\n const {\n groupId,\n children\n } = node,\n other = _objectWithoutPropertiesLoose(node, _excluded);\n if (!groupId) {\n throw new Error('MUI: An element of the columnGroupingModel does not have either `field` or `groupId`.');\n }\n if (!children) {\n console.warn(`MUI: group groupId=${groupId} has no children.`);\n }\n const groupParam = _extends({}, other, {\n groupId\n });\n const subTreeLookup = createGroupLookup(children);\n if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {\n throw new Error(`MUI: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);\n }\n groupLookup = _extends({}, groupLookup, subTreeLookup, {\n [groupId]: groupParam\n });\n });\n return _extends({}, groupLookup);\n};\nexport const columnGroupsStateInitializer = (state, props) => {\n var _props$columnGrouping;\n const groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);\n return _extends({}, state, {\n columnGrouping: {\n lookup: groupLookup,\n groupCollapsedModel: {}\n }\n });\n};\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n */\n\nexport const useGridColumnGrouping = (apiRef, props) => {\n var _props$experimentalFe2;\n\n /**\n * API METHODS\n */\n const getColumnGroupPath = React.useCallback(field => {\n var _columnLookup$field$g, _columnLookup$field;\n const columnLookup = gridColumnLookupSelector(apiRef);\n return (_columnLookup$field$g = (_columnLookup$field = columnLookup[field]) == null ? void 0 : _columnLookup$field.groupPath) != null ? _columnLookup$field$g : [];\n }, [apiRef]);\n const getAllGroupDetails = React.useCallback(() => {\n const columnGroupLookup = gridColumnGroupsLookupSelector(apiRef);\n return columnGroupLookup;\n }, [apiRef]);\n const columnGroupingApi = {\n unstable_getColumnGroupPath: getColumnGroupPath,\n unstable_getAllGroupDetails: getAllGroupDetails\n };\n useGridApiMethod(apiRef, columnGroupingApi, 'GridColumnGroupingApi');\n /**\n * EFFECTS\n */\n // The effect does not track any value defined synchronously during the 1st render by hooks called after `useGridColumns`\n // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one\n\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n var _props$experimentalFe, _props$columnGrouping2;\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (!((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.columnGrouping)) {\n return;\n }\n const groupLookup = createGroupLookup((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);\n apiRef.current.setState(state => _extends({}, state, {\n columnGrouping: _extends({}, state.columnGrouping, {\n lookup: groupLookup\n })\n }));\n }, [apiRef, props.columnGroupingModel, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.columnGrouping]);\n};","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","_excluded","React","isLeaf","gridColumnGroupsLookupSelector","gridColumnLookupSelector","useGridApiMethod","hasGroupPath","lookupElement","groupPath","undefined","recurrentUnwrapGroupingColumnModel","columnGroupNode","parents","unwrappedGroupingModelToComplet","field","Error","join","groupId","children","forEach","child","unwrapGroupingColumnModel","columnGroupingModel","unwrappedSubTree","createGroupLookup","groupLookup","node","other","console","warn","groupParam","subTreeLookup","columnGroupsStateInitializer","state","props","_props$columnGrouping","columnGrouping","lookup","groupCollapsedModel","useGridColumnGrouping","apiRef","_props$experimentalFe2","getColumnGroupPath","useCallback","_columnLookup$field$g","_columnLookup$field","columnLookup","getAllGroupDetails","columnGroupLookup","columnGroupingApi","unstable_getColumnGroupPath","unstable_getAllGroupDetails","isFirstRender","useRef","useEffect","_props$experimentalFe","_props$columnGrouping2","current","experimentalFeatures","setState"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/@mui/x-data-grid/hooks/features/columnGrouping/useGridColumnGrouping.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"groupId\", \"children\"];\nimport * as React from 'react';\nimport { isLeaf } from '../../../models/gridColumnGrouping';\nimport { gridColumnGroupsLookupSelector } from './gridColumnGroupsSelector';\nimport { gridColumnLookupSelector } from '../columns/gridColumnsSelector';\nimport { useGridApiMethod } from '../../utils/useGridApiMethod';\nexport function hasGroupPath(lookupElement) {\n return lookupElement.groupPath !== undefined;\n}\n\n// This is the recurrence function that help writing `unwrapGroupingColumnModel()`\nconst recurrentUnwrapGroupingColumnModel = (columnGroupNode, parents, unwrappedGroupingModelToComplet) => {\n if (isLeaf(columnGroupNode)) {\n if (unwrappedGroupingModelToComplet[columnGroupNode.field] !== undefined) {\n throw new Error([`MUI: columnGroupingModel contains duplicated field`, `column field ${columnGroupNode.field} occurrs two times in the grouping model:`, `- ${unwrappedGroupingModelToComplet[columnGroupNode.field].join(' > ')}`, `- ${parents.join(' > ')}`].join('\\n'));\n }\n\n unwrappedGroupingModelToComplet[columnGroupNode.field] = parents;\n return;\n }\n\n const {\n groupId,\n children\n } = columnGroupNode;\n children.forEach(child => {\n recurrentUnwrapGroupingColumnModel(child, [...parents, groupId], unwrappedGroupingModelToComplet);\n });\n};\n/**\n * This is a function that provide for each column the array of its parents.\n * Parents are ordered from the root to the leaf.\n * @param columnGroupingModel The model such as provided in DataGrid props\n * @returns An object `{[field]: groupIds}` where `groupIds` is the parents of the column `field`\n */\n\n\nexport const unwrapGroupingColumnModel = columnGroupingModel => {\n if (!columnGroupingModel) {\n return {};\n }\n\n const unwrappedSubTree = {};\n columnGroupingModel.forEach(columnGroupNode => {\n recurrentUnwrapGroupingColumnModel(columnGroupNode, [], unwrappedSubTree);\n });\n return unwrappedSubTree;\n};\n\nconst createGroupLookup = columnGroupingModel => {\n let groupLookup = {};\n columnGroupingModel.forEach(node => {\n if (isLeaf(node)) {\n return;\n }\n\n const {\n groupId,\n children\n } = node,\n other = _objectWithoutPropertiesLoose(node, _excluded);\n\n if (!groupId) {\n throw new Error('MUI: An element of the columnGroupingModel does not have either `field` or `groupId`.');\n }\n\n if (!children) {\n console.warn(`MUI: group groupId=${groupId} has no children.`);\n }\n\n const groupParam = _extends({}, other, {\n groupId\n });\n\n const subTreeLookup = createGroupLookup(children);\n\n if (subTreeLookup[groupId] !== undefined || groupLookup[groupId] !== undefined) {\n throw new Error(`MUI: The groupId ${groupId} is used multiple times in the columnGroupingModel.`);\n }\n\n groupLookup = _extends({}, groupLookup, subTreeLookup, {\n [groupId]: groupParam\n });\n });\n return _extends({}, groupLookup);\n};\n\nexport const columnGroupsStateInitializer = (state, props) => {\n var _props$columnGrouping;\n\n const groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);\n return _extends({}, state, {\n columnGrouping: {\n lookup: groupLookup,\n groupCollapsedModel: {}\n }\n });\n};\n/**\n * @requires useGridColumns (method, event)\n * @requires useGridParamsApi (method)\n */\n\nexport const useGridColumnGrouping = (apiRef, props) => {\n var _props$experimentalFe2;\n\n /**\n * API METHODS\n */\n const getColumnGroupPath = React.useCallback(field => {\n var _columnLookup$field$g, _columnLookup$field;\n\n const columnLookup = gridColumnLookupSelector(apiRef);\n return (_columnLookup$field$g = (_columnLookup$field = columnLookup[field]) == null ? void 0 : _columnLookup$field.groupPath) != null ? _columnLookup$field$g : [];\n }, [apiRef]);\n const getAllGroupDetails = React.useCallback(() => {\n const columnGroupLookup = gridColumnGroupsLookupSelector(apiRef);\n return columnGroupLookup;\n }, [apiRef]);\n const columnGroupingApi = {\n unstable_getColumnGroupPath: getColumnGroupPath,\n unstable_getAllGroupDetails: getAllGroupDetails\n };\n useGridApiMethod(apiRef, columnGroupingApi, 'GridColumnGroupingApi');\n /**\n * EFFECTS\n */\n // The effect does not track any value defined synchronously during the 1st render by hooks called after `useGridColumns`\n // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one\n\n const isFirstRender = React.useRef(true);\n React.useEffect(() => {\n var _props$experimentalFe, _props$columnGrouping2;\n\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n\n if (!((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.columnGrouping)) {\n return;\n }\n\n const groupLookup = createGroupLookup((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);\n apiRef.current.setState(state => _extends({}, state, {\n columnGrouping: _extends({}, state.columnGrouping, {\n lookup: groupLookup\n })\n }));\n }, [apiRef, props.columnGroupingModel, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.columnGrouping]);\n};"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |