UNPKG

sccoreui

Version:

ui-sccore

119 lines (118 loc) 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FeatureContext = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const helper_1 = require("./helper"); exports.FeatureContext = (0, react_1.createContext)(null); function MyProvider({ children, value }) { const { featureDetails, setFeatureDetails, gridData, callGrid, totalRecords, initialFeature, defaultFilters, createView, enableViewCreate, filterModelText, sortModelText, recordDetailModelText, sidePanelText, sortOptions, filterConditions, clearFilters, setGridData, gridApi, updateColumnsForGrid, enableManageColumnsCallback, columnToRender, selectedGroup, setSelectedGroup, initialCheckBoxData, intialColumns, setIntialColumns, rowModelType, quickSearch, enableAdvancedFilter, conditionsToDisplay, gridViewFun, gridViewData, setGridViewData, gridView } = value; // States for sort const [columnData] = (0, react_1.useState)(gridData === null || gridData === void 0 ? void 0 : gridData.columnData); const [sortValue, setSortValue] = (0, react_1.useState)({}); const [sortBy, setSortBy] = (0, react_1.useState)({}); const [isOverlayOpened, setIsOverlayOpened] = (0, react_1.useState)(false); const [viewName, setViewName] = (0, react_1.useState)(""); // States for filter const [queries, setQueries] = (0, react_1.useState)(() => { var _a; const length = ((_a = featureDetails === null || featureDetails === void 0 ? void 0 : featureDetails.filterQueries) === null || _a === void 0 ? void 0 : _a.length) || 0; // Returns based on length of filterQueries present return length === 0 ? [0] : Array.from({ length }, (_, index) => index); }); const conditionTypes = filterConditions ? filterConditions : [ { id: 1, label: "AND" }, { id: 2, label: "OR" }, ]; const [conditionType, setConditionType] = (0, react_1.useState)((defaultFilters === null || defaultFilters === void 0 ? void 0 : defaultFilters.logicalOperator) ? conditionTypes.find((item) => item.id === (defaultFilters === null || defaultFilters === void 0 ? void 0 : defaultFilters.logicalOperator)) : conditionTypes[0]); const [globalFilters, setGlobalFilters] = (0, react_1.useState)([]); const [showAsSave, setShowAsSave] = (0, react_1.useState)(false); // Function call on click to refresh const removeFeaturesAndRefresh = () => { const emptyFeatures = initialFeature; // Remove stored features setFeatureDetails(emptyFeatures); // Remove filter setQueries([0]); // Remove sort setSortBy({}); setSortValue({}); callGrid(emptyFeatures); }; (0, react_1.useEffect)(() => { if (defaultFilters.length) { const filtersToAdd = defaultFilters.map((filter) => { filter.value = (0, helper_1.parseIfNeeded)(filter.value); return filter; }); setGlobalFilters(filtersToAdd); } }, [defaultFilters]); // Empty filters and call the grid (0, react_1.useEffect)(() => { if (clearFilters) { let currentFeature = featureDetails; currentFeature.filterQueries = []; setSelectedGroup([]); setFeatureDetails(Object.assign(Object.assign({}, featureDetails), { checkBoxSelection: initialCheckBoxData })); setGlobalFilters([]); callGrid(currentFeature); } }, [clearFilters]); return ((0, jsx_runtime_1.jsx)(exports.FeatureContext.Provider, Object.assign({ value: { sortValue, setSortValue, sortBy, setSortBy, isOverlayOpened, setIsOverlayOpened, queries, setQueries, featureDetails, setFeatureDetails, columnData, callGrid, removeFeaturesAndRefresh, totalRecords, conditionTypes, conditionType, setConditionType, globalFilters, setGlobalFilters, showAsSave, setShowAsSave, setViewName, viewName, createView, enableViewCreate, filterModelText, sortModelText, recordDetailModelText, sidePanelText, sortOptions, setGridData, gridData, gridApi, updateColumnsForGrid, enableManageColumnsCallback, columnToRender, selectedGroup, setSelectedGroup, initialCheckBoxData, intialColumns, setIntialColumns, rowModelType, quickSearch, enableAdvancedFilter, conditionsToDisplay, gridViewFun, gridViewData, setGridViewData, gridView } }, { children: children }))); } exports.default = MyProvider;