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

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

The newest version!
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { TableFeature } from '../core/table'\nimport { OnChangeFn, Table, Row, Updater, RowData } from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record\nexport type ExpandedState = true | Record\nexport interface ExpandedTableState {\n  expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n  toggleExpanded: (expanded?: boolean) => void\n  getIsExpanded: () => boolean\n  getCanExpand: () => boolean\n  getToggleExpandedHandler: () => () => void\n}\n\nexport interface ExpandedOptions {\n  manualExpanding?: boolean\n  onExpandedChange?: OnChangeFn\n  autoResetExpanded?: boolean\n  enableExpanding?: boolean\n  getExpandedRowModel?: (table: Table) => () => RowModel\n  getIsRowExpanded?: (row: Row) => boolean\n  getRowCanExpand?: (row: Row) => boolean\n  paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance {\n  _autoResetExpanded: () => void\n  setExpanded: (updater: Updater) => void\n  toggleAllRowsExpanded: (expanded?: boolean) => void\n  resetExpanded: (defaultState?: boolean) => void\n  getCanSomeRowsExpand: () => boolean\n  getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n  getIsSomeRowsExpanded: () => boolean\n  getIsAllRowsExpanded: () => boolean\n  getExpandedDepth: () => number\n  getExpandedRowModel: () => RowModel\n  _getExpandedRowModel?: () => RowModel\n  getPreExpandedRowModel: () => RowModel\n}\n\n//\n\nexport const Expanding: TableFeature = {\n  getInitialState: (state): ExpandedTableState => {\n    return {\n      expanded: {},\n      ...state,\n    }\n  },\n\n  getDefaultOptions: (\n    table: Table\n  ): ExpandedOptions => {\n    return {\n      onExpandedChange: makeStateUpdater('expanded', table),\n      paginateExpandedRows: true,\n    }\n  },\n\n  createTable: (\n    table: Table\n  ): ExpandedInstance => {\n    let registered = false\n    let queued = false\n\n    return {\n      _autoResetExpanded: () => {\n        if (!registered) {\n          table._queue(() => {\n            registered = true\n          })\n          return\n        }\n\n        if (\n          table.options.autoResetAll ??\n          table.options.autoResetExpanded ??\n          !table.options.manualExpanding\n        ) {\n          if (queued) return\n          queued = true\n          table._queue(() => {\n            table.resetExpanded()\n            queued = false\n          })\n        }\n      },\n      setExpanded: updater => table.options.onExpandedChange?.(updater),\n      toggleAllRowsExpanded: expanded => {\n        if (expanded ?? !table.getIsAllRowsExpanded()) {\n          table.setExpanded(true)\n        } else {\n          table.setExpanded({})\n        }\n      },\n      resetExpanded: defaultState => {\n        table.setExpanded(\n          defaultState ? {} : table.initialState?.expanded ?? {}\n        )\n      },\n      getCanSomeRowsExpand: () => {\n        return table\n          .getPrePaginationRowModel()\n          .flatRows.some(row => row.getCanExpand())\n      },\n      getToggleAllRowsExpandedHandler: () => {\n        return (e: unknown) => {\n          ;(e as any).persist?.()\n          table.toggleAllRowsExpanded()\n        }\n      },\n      getIsSomeRowsExpanded: () => {\n        const expanded = table.getState().expanded\n        return expanded === true || Object.values(expanded).some(Boolean)\n      },\n      getIsAllRowsExpanded: () => {\n        const expanded = table.getState().expanded\n\n        // If expanded is true, save some cycles and return true\n        if (typeof expanded === 'boolean') {\n          return expanded === true\n        }\n\n        if (!Object.keys(expanded).length) {\n          return false\n        }\n\n        // If any row is not expanded, return false\n        if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n          return false\n        }\n\n        // They must all be expanded :shrug:\n        return true\n      },\n      getExpandedDepth: () => {\n        let maxDepth = 0\n\n        const rowIds =\n          table.getState().expanded === true\n            ? Object.keys(table.getRowModel().rowsById)\n            : Object.keys(table.getState().expanded)\n\n        rowIds.forEach(id => {\n          const splitId = id.split('.')\n          maxDepth = Math.max(maxDepth, splitId.length)\n        })\n\n        return maxDepth\n      },\n      getPreExpandedRowModel: () => table.getSortedRowModel(),\n      getExpandedRowModel: () => {\n        if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n          table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n        }\n\n        if (table.options.manualExpanding || !table._getExpandedRowModel) {\n          return table.getPreExpandedRowModel()\n        }\n\n        return table._getExpandedRowModel()\n      },\n    }\n  },\n\n  createRow: (\n    row: Row,\n    table: Table\n  ): ExpandedRow => {\n    return {\n      toggleExpanded: expanded => {\n        table.setExpanded(old => {\n          const exists = old === true ? true : !!old?.[row.id]\n\n          let oldExpanded: ExpandedStateList = {}\n\n          if (old === true) {\n            Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n              oldExpanded[rowId] = true\n            })\n          } else {\n            oldExpanded = old\n          }\n\n          expanded = expanded ?? !exists\n\n          if (!exists && expanded) {\n            return {\n              ...oldExpanded,\n              [row.id]: true,\n            }\n          }\n\n          if (exists && !expanded) {\n            const { [row.id]: _, ...rest } = oldExpanded\n            return rest\n          }\n\n          return old\n        })\n      },\n      getIsExpanded: () => {\n        const expanded = table.getState().expanded\n\n        return !!(\n          table.options.getIsRowExpanded?.(row) ??\n          (expanded === true || expanded?.[row.id])\n        )\n      },\n      getCanExpand: () => {\n        return (\n          table.options.getRowCanExpand?.(row) ??\n          ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n        )\n      },\n      getToggleExpandedHandler: () => {\n        const canExpand = row.getCanExpand()\n\n        return () => {\n          if (!canExpand) return\n          row.toggleExpanded()\n        }\n      },\n    }\n  },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","table","onExpandedChange","makeStateUpdater","paginateExpandedRows","createTable","registered","queued","_autoResetExpanded","_ref","_table$options$autoRe","_queue","options","autoResetAll","autoResetExpanded","manualExpanding","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","_table$initialState$e","_table$initialState","initialState","getCanSomeRowsExpand","getPrePaginationRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","keys","length","getRowModel","getIsExpanded","getExpandedDepth","maxDepth","rowIds","rowsById","forEach","id","splitId","split","Math","max","getPreExpandedRowModel","getSortedRowModel","getExpandedRowModel","_getExpandedRowModel","createRow","toggleExpanded","old","_expanded","exists","oldExpanded","rowId","_","rest","_table$options$getIsR","getIsRowExpanded","_table$options$getRow","_table$options$enable","_row$subRows","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy