UNPKG

@adaptabletools/adaptable-cjs

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

41 lines (40 loc) 2.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PivotColumnsSection = exports.PivotColumnsSectionSummary = void 0; const tslib_1 = require("tslib"); const React = tslib_1.__importStar(require("react")); const rebass_1 = require("rebass"); const Tabs_1 = require("../../../../components/Tabs"); const Tag_1 = require("../../../../components/Tag"); const AdaptableContext_1 = require("../../../AdaptableContext"); const ValueSelector_1 = require("../../../Components/ValueSelector"); const OnePageAdaptableWizard_1 = require("../../../Wizard/OnePageAdaptableWizard"); const Utilities_1 = require("./Utilities"); const ArrayExtensions_1 = tslib_1.__importDefault(require("../../../../Utilities/Extensions/ArrayExtensions")); const PivotColumnsSectionSummary = () => { const adaptable = (0, AdaptableContext_1.useAdaptable)(); const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)(); return (React.createElement(rebass_1.Box, { p: 2, style: { borderRadius: 'var(--ab__border-radius)' }, backgroundColor: "var(--ab-color-defaultbackground)" }, layout.PivotColumns?.length ? (layout.PivotColumns.map((columnId) => (React.createElement(Tag_1.Tag, { mr: 1, key: columnId }, adaptable.api.columnApi.getFriendlyNameForColumnId(columnId))))) : (React.createElement(Tag_1.Tag, null, "No Pivot Columns Defined")))); }; exports.PivotColumnsSectionSummary = PivotColumnsSectionSummary; const PivotColumnsSection = (props) => { const adaptable = (0, AdaptableContext_1.useAdaptable)(); const { data: layout } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)(); const allPivotColumns = adaptable.api.columnApi.getPivotableColumns(); const sortedPivotColumns = React.useMemo(() => { return ArrayExtensions_1.default.sortArrayWithOrder(allPivotColumns.map((col) => col.columnId), layout.PivotColumns ?? [], { sortUnorderedItems: false }).map((colId) => adaptable.api.columnApi.getColumnWithColumnId(colId)); }, [layout, allPivotColumns]); const handleColumnsChange = (columnIds) => { props.onChange({ ...layout, PivotColumns: columnIds, }); }; return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' } }, React.createElement(Tabs_1.Tabs.Tab, null, "Pivot Columns"), React.createElement(Tabs_1.Tabs.Content, null, React.createElement(ValueSelector_1.ValueSelector, { showFilterInput: true, showSelectedOnlyPosition: "top", filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => option.friendlyName ?? option.columnId, options: sortedPivotColumns, value: layout.PivotColumns ?? [], allowReorder: true, xSelectedLabel: () => { return `Selected Columns:`; }, onChange: handleColumnsChange })))); }; exports.PivotColumnsSection = PivotColumnsSection;