All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.build.lib.features.Visibility.js.map Maven / Gradle / Ivy

The newest version!
{"version":3,"file":"Visibility.js","sources":["../../../src/features/Visibility.ts"],"sourcesContent":["import { TableFeature } from '../core/table'\nimport {\n  Cell,\n  Column,\n  OnChangeFn,\n  Table,\n  Updater,\n  Row,\n  RowData,\n} from '../types'\nimport { makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record\n\nexport interface VisibilityTableState {\n  columnVisibility: VisibilityState\n}\n\nexport interface VisibilityOptions {\n  onColumnVisibilityChange?: OnChangeFn\n  enableHiding?: boolean\n}\n\nexport interface VisibilityDefaultOptions {\n  onColumnVisibilityChange: OnChangeFn\n}\n\nexport interface VisibilityInstance {\n  getVisibleFlatColumns: () => Column[]\n  getVisibleLeafColumns: () => Column[]\n  getLeftVisibleLeafColumns: () => Column[]\n  getRightVisibleLeafColumns: () => Column[]\n  getCenterVisibleLeafColumns: () => Column[]\n  setColumnVisibility: (updater: Updater) => void\n  resetColumnVisibility: (defaultState?: boolean) => void\n  toggleAllColumnsVisible: (value?: boolean) => void\n  getIsAllColumnsVisible: () => boolean\n  getIsSomeColumnsVisible: () => boolean\n  getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n}\n\nexport interface VisibilityColumnDef {\n  enableHiding?: boolean\n}\n\nexport interface VisibilityRow {\n  _getAllVisibleCells: () => Cell[]\n  getVisibleCells: () => Cell[]\n}\n\nexport interface VisibilityColumn {\n  getCanHide: () => boolean\n  getIsVisible: () => boolean\n  toggleVisibility: (value?: boolean) => void\n  getToggleVisibilityHandler: () => (event: unknown) => void\n}\n\n//\n\nexport const Visibility: TableFeature = {\n  getInitialState: (state): VisibilityTableState => {\n    return {\n      columnVisibility: {},\n      ...state,\n    }\n  },\n\n  getDefaultOptions: (\n    table: Table\n  ): VisibilityDefaultOptions => {\n    return {\n      onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n    }\n  },\n\n  createColumn: (\n    column: Column,\n    table: Table\n  ): VisibilityColumn => {\n    return {\n      toggleVisibility: value => {\n        if (column.getCanHide()) {\n          table.setColumnVisibility(old => ({\n            ...old,\n            [column.id]: value ?? !column.getIsVisible(),\n          }))\n        }\n      },\n      getIsVisible: () => {\n        return table.getState().columnVisibility?.[column.id] ?? true\n      },\n\n      getCanHide: () => {\n        return (\n          (column.columnDef.enableHiding ?? true) &&\n          (table.options.enableHiding ?? true)\n        )\n      },\n      getToggleVisibilityHandler: () => {\n        return (e: unknown) => {\n          column.toggleVisibility?.(\n            ((e as MouseEvent).target as HTMLInputElement).checked\n          )\n        }\n      },\n    }\n  },\n\n  createRow: (\n    row: Row,\n    table: Table\n  ): VisibilityRow => {\n    return {\n      _getAllVisibleCells: memo(\n        () => [row.getAllCells(), table.getState().columnVisibility],\n        cells => {\n          return cells.filter(cell => cell.column.getIsVisible())\n        },\n        {\n          key:\n            process.env.NODE_ENV === 'production' && 'row._getAllVisibleCells',\n          debug: () => table.options.debugAll ?? table.options.debugRows,\n        }\n      ),\n      getVisibleCells: memo(\n        () => [\n          row.getLeftVisibleCells(),\n          row.getCenterVisibleCells(),\n          row.getRightVisibleCells(),\n        ],\n        (left, center, right) => [...left, ...center, ...right],\n        {\n          key: process.env.NODE_ENV === 'development' && 'row.getVisibleCells',\n          debug: () => table.options.debugAll ?? table.options.debugRows,\n        }\n      ),\n    }\n  },\n\n  createTable: (\n    table: Table\n  ): VisibilityInstance => {\n    const makeVisibleColumnsMethod = (\n      key: string,\n      getColumns: () => Column[]\n    ): (() => Column[]) => {\n      return memo(\n        () => [\n          getColumns(),\n          getColumns()\n            .filter(d => d.getIsVisible())\n            .map(d => d.id)\n            .join('_'),\n        ],\n        columns => {\n          return columns.filter(d => d.getIsVisible?.())\n        },\n        {\n          key,\n          debug: () => table.options.debugAll ?? table.options.debugColumns,\n        }\n      )\n    }\n\n    return {\n      getVisibleFlatColumns: makeVisibleColumnsMethod(\n        'getVisibleFlatColumns',\n        () => table.getAllFlatColumns()\n      ),\n      getVisibleLeafColumns: makeVisibleColumnsMethod(\n        'getVisibleLeafColumns',\n        () => table.getAllLeafColumns()\n      ),\n      getLeftVisibleLeafColumns: makeVisibleColumnsMethod(\n        'getLeftVisibleLeafColumns',\n        () => table.getLeftLeafColumns()\n      ),\n      getRightVisibleLeafColumns: makeVisibleColumnsMethod(\n        'getRightVisibleLeafColumns',\n        () => table.getRightLeafColumns()\n      ),\n      getCenterVisibleLeafColumns: makeVisibleColumnsMethod(\n        'getCenterVisibleLeafColumns',\n        () => table.getCenterLeafColumns()\n      ),\n\n      setColumnVisibility: updater =>\n        table.options.onColumnVisibilityChange?.(updater),\n\n      resetColumnVisibility: defaultState => {\n        table.setColumnVisibility(\n          defaultState ? {} : table.initialState.columnVisibility ?? {}\n        )\n      },\n\n      toggleAllColumnsVisible: value => {\n        value = value ?? !table.getIsAllColumnsVisible()\n\n        table.setColumnVisibility(\n          table.getAllLeafColumns().reduce(\n            (obj, column) => ({\n              ...obj,\n              [column.id]: !value ? !column.getCanHide?.() : value,\n            }),\n            {}\n          )\n        )\n      },\n\n      getIsAllColumnsVisible: () =>\n        !table.getAllLeafColumns().some(column => !column.getIsVisible?.()),\n\n      getIsSomeColumnsVisible: () =>\n        table.getAllLeafColumns().some(column => column.getIsVisible?.()),\n\n      getToggleAllColumnsVisibilityHandler: () => {\n        return (e: unknown) => {\n          table.toggleAllColumnsVisible(\n            ((e as MouseEvent).target as HTMLInputElement)?.checked\n          )\n        }\n      },\n    }\n  },\n}\n"],"names":["Visibility","getInitialState","state","columnVisibility","getDefaultOptions","table","onColumnVisibilityChange","makeStateUpdater","createColumn","column","toggleVisibility","value","getCanHide","setColumnVisibility","old","id","getIsVisible","_table$getState$colum","_table$getState$colum2","getState","_column$columnDef$ena","_table$options$enable","columnDef","enableHiding","options","getToggleVisibilityHandler","e","target","checked","createRow","row","_getAllVisibleCells","memo","getAllCells","cells","filter","cell","key","process","env","NODE_ENV","debug","_table$options$debugA","debugAll","debugRows","getVisibleCells","getLeftVisibleCells","getCenterVisibleCells","getRightVisibleCells","left","center","right","_table$options$debugA2","createTable","makeVisibleColumnsMethod","getColumns","d","map","join","columns","_table$options$debugA3","debugColumns","getVisibleFlatColumns","getAllFlatColumns","getVisibleLeafColumns","getAllLeafColumns","getLeftVisibleLeafColumns","getLeftLeafColumns","getRightVisibleLeafColumns","getRightLeafColumns","getCenterVisibleLeafColumns","getCenterLeafColumns","updater","resetColumnVisibility","defaultState","_table$initialState$c","initialState","toggleAllColumnsVisible","_value","getIsAllColumnsVisible","reduce","obj","some","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","_target"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy