@triptyk/ember-yeti-table 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"yeti-table.d.ts","sourceRoot":"","sources":["../../src/components/yeti-table.gts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yeti-table.d.ts","sourceRoot":"","sources":["../../src/components/yeti-table.gts"],"names":[],"mappings":"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"}
@@ -196,6 +196,9 @@ class YetiTable extends Component {
196
196
  resolvedData = trackedFunction(this, async () => {
197
197
  let data = this.args.data;
198
198
  if (this.columns.length == 0) {
199
+ if (typeof this.args.loadData === 'function') {
200
+ return this.previousResolvedData;
201
+ }
199
202
  return [];
200
203
  }
201
204
  if (typeof this.args.loadData === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"yeti-table.js","sources":["../../src/components/yeti-table.gts"],"sourcesContent":["import { getOwner } from '@ember/application';\nimport { action, notifyPropertyChange } from '@ember/object';\nimport { later, schedule, scheduleOnce } from '@ember/runloop';\nimport { isEmpty, isPresent } from '@ember/utils';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport Helper from '@ember/component/helper';\nimport type Owner from '@ember/owner';\n\nimport merge from 'deepmerge';\nimport { use } from 'ember-resources';\nimport { trackedFunction } from 'reactiveweb/function';\nimport { keepLatest } from 'reactiveweb/keep-latest';\nimport { dedupeTracked, localCopy } from 'tracked-toolbox';\n\nimport { hash } from '@ember/helper';\n\nimport DEFAULT_THEME from '../themes/default-theme.ts';\nimport filterData from '../utils/filtering-utils.ts';\nimport {\n compareValues,\n mergeSort,\n sortMultiple,\n} from '../utils/sorting-utils.ts';\n\nimport Table from './yeti-table/table.gts';\nimport HeaderComponent from './yeti-table/header.gts';\nimport THead from './yeti-table/thead.gts';\nimport Body from './yeti-table/body.gts';\nimport TBody from './yeti-table/tbody.gts';\nimport TFoot from './yeti-table/tfoot.gts';\nimport Pagination from './yeti-table/pagination.gts';\nimport type Column from './yeti-table/thead/row/column.gts';\nimport type {\n LoadDataParams,\n PaginationData,\n Row,\n RowFilterFunction,\n SortDirection,\n Theme,\n} from '../types.ts';\nimport type { Comparator } from '../utils/sorting-utils.ts';\nimport type { WithBoundArgs } from '@glint/template';\n\nconst TASK_CANCELATION_NAME = 'TaskCancelation';\nconst didCancel = function (e: unknown): boolean {\n return !!e && (e as { name?: string }).name === TASK_CANCELATION_NAME;\n};\n\nfunction getConfigWithDefault<T>(key: string, defaultValue: T): () => T {\n return function (this: YetiTable): T {\n return (this.config[key] as T | undefined) ?? defaultValue;\n };\n}\n\ninterface HelperNamed {\n context: YetiTable;\n}\n\ninterface UpdateTotalRowsSignature {\n Args: { Positional: [number | undefined]; Named: HelperNamed };\n Return: '';\n}\n\nclass UpdateTotalRows extends Helper<UpdateTotalRowsSignature> {\n compute(positional: [number | undefined], { context }: HelperNamed): '' {\n context.totalRows = positional[0];\n notifyPropertyChange(context, 'normalizedTotalRows');\n notifyPropertyChange(context, 'paginationData');\n return '';\n }\n}\n\ninterface UpdateFilterSignature {\n Args: { Positional: [string | undefined]; Named: HelperNamed };\n Return: '';\n}\n\nclass UpdateFilter extends Helper<UpdateFilterSignature> {\n compute(positional: [string | undefined], { context }: HelperNamed): '' {\n context.filter = positional[0] || '';\n return '';\n }\n}\n\ninterface ProcessedDataSignature {\n Args: {\n Positional: [];\n Named: {\n loadData?: YetiTable['args']['loadData'];\n context: YetiTable;\n };\n };\n Return: '';\n}\n\nclass ProcessedData extends Helper<ProcessedDataSignature> {\n compute(\n _positional: [],\n {\n loadData,\n context,\n }: {\n loadData?: YetiTable['args']['loadData'];\n context: YetiTable;\n },\n ): '' {\n const data = context.latestData ?? [];\n\n if (!loadData) {\n context.processData(data);\n } else {\n context.processedData = data;\n }\n return '';\n }\n}\n\nexport type YetiTableLoadData = (\n params: LoadDataParams,\n) => Row[] | Promise<Row[]>;\n\nexport interface YetiTableSignature {\n Element: HTMLElement;\n Args: {\n data?: Row[] | Promise<Row[]>;\n loadData?: YetiTableLoadData;\n theme?: Partial<Theme>;\n pagination?: boolean;\n pageSize?: number;\n pageNumber?: number;\n totalRows?: number;\n filter?: string;\n filterFunction?: RowFilterFunction;\n filterUsing?: unknown;\n sortable?: boolean;\n sortFunction?: (\n itemA: Row,\n itemB: Row,\n sorts: { prop: string; direction: SortDirection }[],\n compareFn: Comparator,\n ) => number;\n compareFunction?: Comparator;\n sortSequence?: SortDirection[] | string;\n ignoreDataChanges?: boolean;\n renderTableElement?: boolean;\n isColumnVisible?: (column: Column) => boolean;\n registerApi?: (api: YetiTable['publicApi']) => void;\n };\n Blocks: {\n default: [\n {\n table: WithBoundArgs<typeof Table, 'theme' | 'parent'>;\n header: WithBoundArgs<\n typeof HeaderComponent,\n | 'columns'\n | 'onColumnClick'\n | 'sortable'\n | 'sortSequence'\n | 'parent'\n | 'theme'\n >;\n thead: WithBoundArgs<\n typeof THead,\n | 'columns'\n | 'onColumnClick'\n | 'sortable'\n | 'sortSequence'\n | 'theme'\n | 'parent'\n >;\n body: WithBoundArgs<typeof Body, 'data' | 'columns' | 'theme'>;\n tbody: WithBoundArgs<typeof TBody, 'data' | 'columns' | 'theme'>;\n tfoot: WithBoundArgs<typeof TFoot, 'columns' | 'theme' | 'parent'>;\n pagination: WithBoundArgs<\n typeof Pagination,\n 'disabled' | 'theme' | 'paginationData' | 'paginationActions'\n >;\n actions: YetiTable['publicApi'];\n paginationData: PaginationData;\n isLoading: boolean;\n columns: Column[];\n visibleColumns: Column[];\n rows: Row[] | undefined;\n totalRows: number;\n visibleRows: Row[] | undefined;\n theme: Theme;\n },\n ];\n };\n}\n\nexport default class YetiTable extends Component<YetiTableSignature> {\n publicApi = {\n previousPage: () => this.previousPage(),\n nextPage: () => this.nextPage(),\n goToPage: (n: number) => this.goToPage(n),\n changePageSize: (n: number | string) => this.changePageSize(n),\n reloadData: () => this.reloadData(),\n };\n\n @localCopy('args.pagination', getConfigWithDefault('pagination', false))\n pagination!: boolean;\n\n @localCopy('args.pageSize', getConfigWithDefault('pageSize', 15))\n pageSize!: number;\n\n @localCopy('args.pageNumber', 1)\n pageNumber!: number;\n\n totalRows: number | undefined;\n\n @dedupeTracked\n filter = '';\n\n @localCopy('args.sortable', getConfigWithDefault('sortable', true))\n sortable!: boolean;\n\n @localCopy('args.sortFunction', () => sortMultiple)\n sortFunction!: YetiTableSignature['Args']['sortFunction'];\n\n @localCopy('args.compareFunction', () => compareValues)\n compareFunction!: Comparator;\n\n @localCopy(\n 'args.sortSequence',\n getConfigWithDefault('sortSequence', ['asc', 'desc']),\n )\n sortSequence!: SortDirection[] | string;\n\n @localCopy(\n 'args.ignoreDataChanges',\n getConfigWithDefault('ignoreDataChanges', false),\n )\n ignoreDataChanges!: boolean;\n\n @localCopy('args.renderTableElement', true)\n renderTableElement!: boolean;\n\n @cached\n get mergedTheme(): Theme {\n const configTheme = (this.config.theme as Partial<Theme>) || {};\n const localTheme = this.args.theme || {};\n return merge.all([DEFAULT_THEME, configTheme, localTheme]) as Theme;\n }\n\n @cached\n get visibleColumns(): Column[] {\n return this.columns.filter((c) => c.visible === true);\n }\n\n config: Record<string, unknown> =\n (\n (\n getOwner(this) as {\n resolveRegistration?: (name: string) => unknown;\n } | null\n )?.resolveRegistration?.('config:environment') as\n | Record<string, Record<string, unknown>>\n | undefined\n )?.['ember-yeti-table'] || {};\n\n get normalizedTotalRows(): number {\n if (!this.args.loadData) {\n return this.processedDataRows?.length || 0;\n } else {\n if (this.totalRows === undefined) {\n return this.previousResolvedData.length || 0;\n } else {\n return this.totalRows;\n }\n }\n }\n\n get normalizedRows(): Row[] | undefined {\n if (!this.args.loadData) {\n return this.processedDataRows;\n } else {\n return this.processedData;\n }\n }\n\n get paginationData(): PaginationData {\n const pageSize = this.pageSize;\n let pageNumber = this.pageNumber;\n const totalRows = this.normalizedTotalRows;\n let isLastPage: boolean | undefined;\n let totalPages: number | undefined;\n\n if (totalRows) {\n totalPages = Math.ceil(totalRows / pageSize);\n pageNumber = Math.min(pageNumber, totalPages);\n isLastPage = pageNumber === totalPages;\n }\n\n const isFirstPage = pageNumber === 1;\n const pageStart = (pageNumber - 1) * pageSize + 1;\n let pageEnd = pageStart + pageSize - 1;\n\n if (totalRows) {\n pageEnd = Math.min(pageEnd, totalRows);\n }\n\n return {\n pageSize,\n pageNumber,\n pageStart,\n pageEnd,\n isFirstPage,\n isLastPage,\n totalRows,\n totalPages,\n };\n }\n\n @tracked\n columns: Column[] = [];\n\n previousResolvedData: Row[] = [];\n\n @tracked\n processedData: Row[] | undefined;\n\n @tracked\n processedDataRows: Row[] | undefined;\n\n resolvedData = trackedFunction(this, async () => {\n let data: Row[] | Promise<Row[]> | undefined = this.args.data;\n\n if (this.columns.length == 0) {\n return [] as Row[];\n }\n\n if (typeof this.args.loadData === 'function') {\n const params = this.computeLoadDataParams();\n\n try {\n data = await this.args.loadData(params);\n } catch (e) {\n console.log(e);\n\n if (!didCancel(e)) {\n throw e;\n }\n }\n } else if (data && typeof (data as Promise<Row[]>).then === 'function') {\n data = await data;\n }\n\n if (this.isDestroyed) {\n return;\n }\n\n const resolved = (data as Row[] | undefined) || [];\n\n this.previousResolvedData = resolved;\n\n return resolved;\n });\n\n @use latestData = keepLatest({\n value: () => this.resolvedData.value ?? [],\n when: () => this.resolvedData.isPending,\n });\n\n constructor(owner: Owner, args: YetiTableSignature['Args']) {\n super(owner, args);\n\n if (typeof this.args.registerApi === 'function') {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('actions', null, this.args.registerApi, this.publicApi);\n }\n }\n\n processData(data: Row[]): void {\n const columns = this.columns.filter(\n (c) => c.filterable && isPresent(c.prop),\n );\n\n const sortableColumns = this.columns.filter((c) => !isEmpty(c.sort));\n const sortings = sortableColumns.map((c) => ({\n prop: c.prop as string,\n direction: c.sort as SortDirection,\n }));\n\n const filterFunction = this.args.filterFunction;\n const filterUsing = this.args.filterUsing;\n const filter = this.filter;\n\n const processTheData = (): void => {\n let working = filterData(\n data,\n columns,\n filter,\n filterFunction,\n filterUsing,\n );\n\n if (sortings.length > 0) {\n working = mergeSort(working, (itemA, itemB) => {\n return this.sortFunction!(\n itemA,\n itemB,\n sortings,\n this.compareFunction,\n );\n });\n }\n\n this.processedDataRows = working;\n\n if (this.pagination) {\n const { pageStart, pageEnd } = this.paginationData;\n working = working.slice(pageStart - 1, pageEnd);\n }\n\n this.processedData = working;\n };\n\n if (this.ignoreDataChanges) {\n // eslint-disable-next-line ember/no-runloop\n later(processTheData, 0);\n } else {\n processTheData();\n }\n }\n\n computeLoadDataParams(): LoadDataParams {\n const params: LoadDataParams = {\n sortData: this.columns\n .filter((c) => !isEmpty(c.sort))\n .map((c) => ({ prop: c.prop, direction: c.sort })),\n filterData: {\n filter: this.filter,\n filterUsing: this.args.filterUsing,\n columnFilters: this.columns.map((c) => ({\n prop: c.prop,\n filter: c.filter,\n filterUsing: c.filterUsing,\n })),\n },\n };\n\n if (this.pagination) {\n params.paginationData = this.paginationData;\n }\n\n return params;\n }\n\n paginateData(data: Row[]): Row[] {\n if (this.pagination) {\n const { pageStart, pageEnd } = this.paginationData;\n data = data.slice(pageStart - 1, pageEnd);\n }\n\n return data;\n }\n\n @action\n async reloadData(): Promise<unknown> {\n return await this.resolvedData.retry();\n }\n\n @action\n onColumnSort(column: Column, e: MouseEvent): void {\n if (column.isSorted) {\n let direction: SortDirection | null | undefined = column.sort;\n const sortSequence = column.normalizedSortSequence;\n direction = sortSequence[\n (sortSequence.indexOf(direction as string) + 1) % sortSequence.length\n ] as SortDirection;\n\n if ((direction as unknown as string) === 'unsorted') {\n direction = null;\n }\n column.sort = direction;\n\n if (!e.shiftKey) {\n const columns = this.columns.filter((c) => c !== column);\n columns.forEach((c) => (c.sort = null));\n }\n } else {\n const direction = column.normalizedSortSequence[0] as SortDirection;\n column.sort = direction;\n\n if (!e.shiftKey) {\n const columns = this.columns.filter((c) => c !== column);\n columns.forEach((c) => (c.sort = null));\n }\n }\n }\n\n @action\n previousPage(): void {\n if (this.pagination) {\n this.pageNumber = Math.max(this.pageNumber - 1, 1);\n }\n }\n\n @action\n nextPage(): void {\n if (this.pagination) {\n const { isLastPage } = this.paginationData;\n\n if (!isLastPage) {\n this.pageNumber = this.pageNumber + 1;\n }\n }\n }\n\n @action\n goToPage(pageNumber: number): void {\n if (this.pagination) {\n const { totalPages } = this.paginationData;\n pageNumber = Math.max(pageNumber, 1);\n\n if (totalPages) {\n pageNumber = Math.min(pageNumber, totalPages);\n }\n\n this.pageNumber = pageNumber;\n }\n }\n\n @action\n changePageSize(pageSize: number | string): void {\n if (this.pagination) {\n this.pageSize = parseInt(String(pageSize));\n }\n }\n\n registerColumn(column: Column): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', this, function (this: YetiTable) {\n if (typeof this.args.isColumnVisible === 'function') {\n column.visible = this.args.isColumnVisible(column);\n }\n\n if (!this.columns.includes(column)) {\n this.columns = [...this.columns, column];\n }\n });\n }\n\n unregisterColumn(column: Column): void {\n if (this.columns.includes(column)) {\n this.columns = this.columns.filter((c) => c !== column);\n }\n }\n\n <template>\n {{#let\n (hash\n table=(component Table theme=this.mergedTheme parent=this)\n header=(component\n HeaderComponent\n columns=this.columns\n onColumnClick=this.onColumnSort\n sortable=this.sortable\n sortSequence=this.sortSequence\n parent=this\n theme=this.mergedTheme\n )\n thead=(component\n THead\n columns=this.columns\n onColumnClick=this.onColumnSort\n sortable=this.sortable\n sortSequence=this.sortSequence\n theme=this.mergedTheme\n parent=this\n )\n body=(component\n Body\n data=this.processedData\n columns=this.columns\n theme=this.mergedTheme\n parent=this\n )\n tbody=(component\n TBody\n data=this.processedData\n columns=this.columns\n theme=this.mergedTheme\n parent=this\n )\n tfoot=(component\n TFoot columns=this.columns theme=this.mergedTheme parent=this\n )\n pagination=(component\n Pagination\n disabled=this.resolvedData.isPending\n theme=this.mergedTheme\n paginationData=this.paginationData\n paginationActions=(hash\n previousPage=this.previousPage\n nextPage=this.nextPage\n goToPage=this.goToPage\n changePageSize=this.changePageSize\n )\n )\n actions=this.publicApi\n paginationData=this.paginationData\n isLoading=this.resolvedData.isPending\n columns=this.columns\n visibleColumns=this.visibleColumns\n rows=this.normalizedRows\n totalRows=this.normalizedTotalRows\n visibleRows=this.processedData\n theme=this.mergedTheme\n )\n as |api|\n }}\n {{UpdateTotalRows @totalRows context=this}}\n {{UpdateFilter @filter context=this}}\n {{ProcessedData loadData=@loadData context=this}}\n\n {{#if this.renderTableElement}}\n <Table @theme={{this.mergedTheme}} @parent={{this}} ...attributes>\n {{yield api}}\n </Table>\n {{else}}\n {{yield api}}\n {{/if}}\n\n {{/let}}\n </template>\n}\n"],"names":["TASK_CANCELATION_NAME","didCancel","e","name","getConfigWithDefault","key","defaultValue","config","UpdateTotalRows","Helper","compute","positional","context","totalRows","notifyPropertyChange","UpdateFilter","filter","ProcessedData","_positional","loadData","data","latestData","processData","processedData","YetiTable","Component","publicApi","previousPage","nextPage","goToPage","n","changePageSize","reloadData","g","prototype","localCopy","i","dedupeTracked","sortMultiple","compareValues","mergedTheme","configTheme","theme","localTheme","args","merge","all","DEFAULT_THEME","cached","visibleColumns","columns","c","visible","getOwner","resolveRegistration","normalizedTotalRows","processedDataRows","length","undefined","previousResolvedData","normalizedRows","paginationData","pageSize","pageNumber","isLastPage","totalPages","Math","ceil","min","isFirstPage","pageStart","pageEnd","tracked","resolvedData","trackedFunction","params","computeLoadDataParams","console","log","then","isDestroyed","resolved","use","keepLatest","value","when","isPending","constructor","owner","registerApi","scheduleOnce","filterable","isPresent","prop","sortableColumns","isEmpty","sort","sortings","map","direction","filterFunction","filterUsing","processTheData","working","filterData","mergeSort","itemA","itemB","sortFunction","compareFunction","pagination","slice","ignoreDataChanges","later","sortData","columnFilters","paginateData","retry","action","onColumnSort","column","isSorted","sortSequence","normalizedSortSequence","indexOf","shiftKey","forEach","max","parseInt","String","registerColumn","schedule","isColumnVisible","includes","unregisterColumn","setComponentTemplate","precompileTemplate","strictMode","scope","hash","Table","HeaderComponent","THead","Body","TBody","TFoot","Pagination"],"mappings":"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"}
1
+ {"version":3,"file":"yeti-table.js","sources":["../../src/components/yeti-table.gts"],"sourcesContent":["import { getOwner } from '@ember/application';\nimport { action, notifyPropertyChange } from '@ember/object';\nimport { later, schedule, scheduleOnce } from '@ember/runloop';\nimport { isEmpty, isPresent } from '@ember/utils';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport Helper from '@ember/component/helper';\nimport type Owner from '@ember/owner';\n\nimport merge from 'deepmerge';\nimport { use } from 'ember-resources';\nimport { trackedFunction } from 'reactiveweb/function';\nimport { keepLatest } from 'reactiveweb/keep-latest';\nimport { dedupeTracked, localCopy } from 'tracked-toolbox';\n\nimport { hash } from '@ember/helper';\n\nimport DEFAULT_THEME from '../themes/default-theme.ts';\nimport filterData from '../utils/filtering-utils.ts';\nimport {\n compareValues,\n mergeSort,\n sortMultiple,\n} from '../utils/sorting-utils.ts';\n\nimport Table from './yeti-table/table.gts';\nimport HeaderComponent from './yeti-table/header.gts';\nimport THead from './yeti-table/thead.gts';\nimport Body from './yeti-table/body.gts';\nimport TBody from './yeti-table/tbody.gts';\nimport TFoot from './yeti-table/tfoot.gts';\nimport Pagination from './yeti-table/pagination.gts';\nimport type Column from './yeti-table/thead/row/column.gts';\nimport type {\n LoadDataParams,\n PaginationData,\n Row,\n RowFilterFunction,\n SortDirection,\n Theme,\n} from '../types.ts';\nimport type { Comparator } from '../utils/sorting-utils.ts';\nimport type { WithBoundArgs } from '@glint/template';\n\nconst TASK_CANCELATION_NAME = 'TaskCancelation';\nconst didCancel = function (e: unknown): boolean {\n return !!e && (e as { name?: string }).name === TASK_CANCELATION_NAME;\n};\n\nfunction getConfigWithDefault<T>(key: string, defaultValue: T): () => T {\n return function (this: YetiTable): T {\n return (this.config[key] as T | undefined) ?? defaultValue;\n };\n}\n\ninterface HelperNamed {\n context: YetiTable;\n}\n\ninterface UpdateTotalRowsSignature {\n Args: { Positional: [number | undefined]; Named: HelperNamed };\n Return: '';\n}\n\nclass UpdateTotalRows extends Helper<UpdateTotalRowsSignature> {\n compute(positional: [number | undefined], { context }: HelperNamed): '' {\n context.totalRows = positional[0];\n notifyPropertyChange(context, 'normalizedTotalRows');\n notifyPropertyChange(context, 'paginationData');\n return '';\n }\n}\n\ninterface UpdateFilterSignature {\n Args: { Positional: [string | undefined]; Named: HelperNamed };\n Return: '';\n}\n\nclass UpdateFilter extends Helper<UpdateFilterSignature> {\n compute(positional: [string | undefined], { context }: HelperNamed): '' {\n context.filter = positional[0] || '';\n return '';\n }\n}\n\ninterface ProcessedDataSignature {\n Args: {\n Positional: [];\n Named: {\n loadData?: YetiTable['args']['loadData'];\n context: YetiTable;\n };\n };\n Return: '';\n}\n\nclass ProcessedData extends Helper<ProcessedDataSignature> {\n compute(\n _positional: [],\n {\n loadData,\n context,\n }: {\n loadData?: YetiTable['args']['loadData'];\n context: YetiTable;\n },\n ): '' {\n const data = context.latestData ?? [];\n\n if (!loadData) {\n context.processData(data);\n } else {\n context.processedData = data;\n }\n return '';\n }\n}\n\nexport type YetiTableLoadData = (\n params: LoadDataParams,\n) => Row[] | Promise<Row[]>;\n\nexport interface YetiTableSignature {\n Element: HTMLElement;\n Args: {\n data?: Row[] | Promise<Row[]>;\n loadData?: YetiTableLoadData;\n theme?: Partial<Theme>;\n pagination?: boolean;\n pageSize?: number;\n pageNumber?: number;\n totalRows?: number;\n filter?: string;\n filterFunction?: RowFilterFunction;\n filterUsing?: unknown;\n sortable?: boolean;\n sortFunction?: (\n itemA: Row,\n itemB: Row,\n sorts: { prop: string; direction: SortDirection }[],\n compareFn: Comparator,\n ) => number;\n compareFunction?: Comparator;\n sortSequence?: SortDirection[] | string;\n ignoreDataChanges?: boolean;\n renderTableElement?: boolean;\n isColumnVisible?: (column: Column) => boolean;\n registerApi?: (api: YetiTable['publicApi']) => void;\n };\n Blocks: {\n default: [\n {\n table: WithBoundArgs<typeof Table, 'theme' | 'parent'>;\n header: WithBoundArgs<\n typeof HeaderComponent,\n | 'columns'\n | 'onColumnClick'\n | 'sortable'\n | 'sortSequence'\n | 'parent'\n | 'theme'\n >;\n thead: WithBoundArgs<\n typeof THead,\n | 'columns'\n | 'onColumnClick'\n | 'sortable'\n | 'sortSequence'\n | 'theme'\n | 'parent'\n >;\n body: WithBoundArgs<typeof Body, 'data' | 'columns' | 'theme'>;\n tbody: WithBoundArgs<typeof TBody, 'data' | 'columns' | 'theme'>;\n tfoot: WithBoundArgs<typeof TFoot, 'columns' | 'theme' | 'parent'>;\n pagination: WithBoundArgs<\n typeof Pagination,\n 'disabled' | 'theme' | 'paginationData' | 'paginationActions'\n >;\n actions: YetiTable['publicApi'];\n paginationData: PaginationData;\n isLoading: boolean;\n columns: Column[];\n visibleColumns: Column[];\n rows: Row[] | undefined;\n totalRows: number;\n visibleRows: Row[] | undefined;\n theme: Theme;\n },\n ];\n };\n}\n\nexport default class YetiTable extends Component<YetiTableSignature> {\n publicApi = {\n previousPage: () => this.previousPage(),\n nextPage: () => this.nextPage(),\n goToPage: (n: number) => this.goToPage(n),\n changePageSize: (n: number | string) => this.changePageSize(n),\n reloadData: () => this.reloadData(),\n };\n\n @localCopy('args.pagination', getConfigWithDefault('pagination', false))\n pagination!: boolean;\n\n @localCopy('args.pageSize', getConfigWithDefault('pageSize', 15))\n pageSize!: number;\n\n @localCopy('args.pageNumber', 1)\n pageNumber!: number;\n\n totalRows: number | undefined;\n\n @dedupeTracked\n filter = '';\n\n @localCopy('args.sortable', getConfigWithDefault('sortable', true))\n sortable!: boolean;\n\n @localCopy('args.sortFunction', () => sortMultiple)\n sortFunction!: YetiTableSignature['Args']['sortFunction'];\n\n @localCopy('args.compareFunction', () => compareValues)\n compareFunction!: Comparator;\n\n @localCopy(\n 'args.sortSequence',\n getConfigWithDefault('sortSequence', ['asc', 'desc']),\n )\n sortSequence!: SortDirection[] | string;\n\n @localCopy(\n 'args.ignoreDataChanges',\n getConfigWithDefault('ignoreDataChanges', false),\n )\n ignoreDataChanges!: boolean;\n\n @localCopy('args.renderTableElement', true)\n renderTableElement!: boolean;\n\n @cached\n get mergedTheme(): Theme {\n const configTheme = (this.config.theme as Partial<Theme>) || {};\n const localTheme = this.args.theme || {};\n return merge.all([DEFAULT_THEME, configTheme, localTheme]) as Theme;\n }\n\n @cached\n get visibleColumns(): Column[] {\n return this.columns.filter((c) => c.visible === true);\n }\n\n config: Record<string, unknown> =\n (\n (\n getOwner(this) as {\n resolveRegistration?: (name: string) => unknown;\n } | null\n )?.resolveRegistration?.('config:environment') as\n | Record<string, Record<string, unknown>>\n | undefined\n )?.['ember-yeti-table'] || {};\n\n get normalizedTotalRows(): number {\n if (!this.args.loadData) {\n return this.processedDataRows?.length || 0;\n } else {\n if (this.totalRows === undefined) {\n return this.previousResolvedData.length || 0;\n } else {\n return this.totalRows;\n }\n }\n }\n\n get normalizedRows(): Row[] | undefined {\n if (!this.args.loadData) {\n return this.processedDataRows;\n } else {\n return this.processedData;\n }\n }\n\n get paginationData(): PaginationData {\n const pageSize = this.pageSize;\n let pageNumber = this.pageNumber;\n const totalRows = this.normalizedTotalRows;\n let isLastPage: boolean | undefined;\n let totalPages: number | undefined;\n\n if (totalRows) {\n totalPages = Math.ceil(totalRows / pageSize);\n pageNumber = Math.min(pageNumber, totalPages);\n isLastPage = pageNumber === totalPages;\n }\n\n const isFirstPage = pageNumber === 1;\n const pageStart = (pageNumber - 1) * pageSize + 1;\n let pageEnd = pageStart + pageSize - 1;\n\n if (totalRows) {\n pageEnd = Math.min(pageEnd, totalRows);\n }\n\n return {\n pageSize,\n pageNumber,\n pageStart,\n pageEnd,\n isFirstPage,\n isLastPage,\n totalRows,\n totalPages,\n };\n }\n\n @tracked\n columns: Column[] = [];\n\n previousResolvedData: Row[] = [];\n\n @tracked\n processedData: Row[] | undefined;\n\n @tracked\n processedDataRows: Row[] | undefined;\n\n resolvedData = trackedFunction(this, async () => {\n let data: Row[] | Promise<Row[]> | undefined = this.args.data;\n\n if (this.columns.length == 0) {\n if (typeof this.args.loadData === 'function') {\n return this.previousResolvedData;\n }\n\n return [] as Row[];\n }\n\n if (typeof this.args.loadData === 'function') {\n const params = this.computeLoadDataParams();\n\n try {\n data = await this.args.loadData(params);\n } catch (e) {\n console.log(e);\n\n if (!didCancel(e)) {\n throw e;\n }\n }\n } else if (data && typeof (data as Promise<Row[]>).then === 'function') {\n data = await data;\n }\n\n if (this.isDestroyed) {\n return;\n }\n\n const resolved = (data as Row[] | undefined) || [];\n\n this.previousResolvedData = resolved;\n\n return resolved;\n });\n\n @use latestData = keepLatest({\n value: () => this.resolvedData.value ?? [],\n when: () => this.resolvedData.isPending,\n });\n\n constructor(owner: Owner, args: YetiTableSignature['Args']) {\n super(owner, args);\n\n if (typeof this.args.registerApi === 'function') {\n // eslint-disable-next-line ember/no-runloop\n scheduleOnce('actions', null, this.args.registerApi, this.publicApi);\n }\n }\n\n processData(data: Row[]): void {\n const columns = this.columns.filter(\n (c) => c.filterable && isPresent(c.prop),\n );\n\n const sortableColumns = this.columns.filter((c) => !isEmpty(c.sort));\n const sortings = sortableColumns.map((c) => ({\n prop: c.prop as string,\n direction: c.sort as SortDirection,\n }));\n\n const filterFunction = this.args.filterFunction;\n const filterUsing = this.args.filterUsing;\n const filter = this.filter;\n\n const processTheData = (): void => {\n let working = filterData(\n data,\n columns,\n filter,\n filterFunction,\n filterUsing,\n );\n\n if (sortings.length > 0) {\n working = mergeSort(working, (itemA, itemB) => {\n return this.sortFunction!(\n itemA,\n itemB,\n sortings,\n this.compareFunction,\n );\n });\n }\n\n this.processedDataRows = working;\n\n if (this.pagination) {\n const { pageStart, pageEnd } = this.paginationData;\n working = working.slice(pageStart - 1, pageEnd);\n }\n\n this.processedData = working;\n };\n\n if (this.ignoreDataChanges) {\n // eslint-disable-next-line ember/no-runloop\n later(processTheData, 0);\n } else {\n processTheData();\n }\n }\n\n computeLoadDataParams(): LoadDataParams {\n const params: LoadDataParams = {\n sortData: this.columns\n .filter((c) => !isEmpty(c.sort))\n .map((c) => ({ prop: c.prop, direction: c.sort })),\n filterData: {\n filter: this.filter,\n filterUsing: this.args.filterUsing,\n columnFilters: this.columns.map((c) => ({\n prop: c.prop,\n filter: c.filter,\n filterUsing: c.filterUsing,\n })),\n },\n };\n\n if (this.pagination) {\n params.paginationData = this.paginationData;\n }\n\n return params;\n }\n\n paginateData(data: Row[]): Row[] {\n if (this.pagination) {\n const { pageStart, pageEnd } = this.paginationData;\n data = data.slice(pageStart - 1, pageEnd);\n }\n\n return data;\n }\n\n @action\n async reloadData(): Promise<unknown> {\n return await this.resolvedData.retry();\n }\n\n @action\n onColumnSort(column: Column, e: MouseEvent): void {\n if (column.isSorted) {\n let direction: SortDirection | null | undefined = column.sort;\n const sortSequence = column.normalizedSortSequence;\n direction = sortSequence[\n (sortSequence.indexOf(direction as string) + 1) % sortSequence.length\n ] as SortDirection;\n\n if ((direction as unknown as string) === 'unsorted') {\n direction = null;\n }\n column.sort = direction;\n\n if (!e.shiftKey) {\n const columns = this.columns.filter((c) => c !== column);\n columns.forEach((c) => (c.sort = null));\n }\n } else {\n const direction = column.normalizedSortSequence[0] as SortDirection;\n column.sort = direction;\n\n if (!e.shiftKey) {\n const columns = this.columns.filter((c) => c !== column);\n columns.forEach((c) => (c.sort = null));\n }\n }\n }\n\n @action\n previousPage(): void {\n if (this.pagination) {\n this.pageNumber = Math.max(this.pageNumber - 1, 1);\n }\n }\n\n @action\n nextPage(): void {\n if (this.pagination) {\n const { isLastPage } = this.paginationData;\n\n if (!isLastPage) {\n this.pageNumber = this.pageNumber + 1;\n }\n }\n }\n\n @action\n goToPage(pageNumber: number): void {\n if (this.pagination) {\n const { totalPages } = this.paginationData;\n pageNumber = Math.max(pageNumber, 1);\n\n if (totalPages) {\n pageNumber = Math.min(pageNumber, totalPages);\n }\n\n this.pageNumber = pageNumber;\n }\n }\n\n @action\n changePageSize(pageSize: number | string): void {\n if (this.pagination) {\n this.pageSize = parseInt(String(pageSize));\n }\n }\n\n registerColumn(column: Column): void {\n // eslint-disable-next-line ember/no-runloop\n schedule('afterRender', this, function (this: YetiTable) {\n if (typeof this.args.isColumnVisible === 'function') {\n column.visible = this.args.isColumnVisible(column);\n }\n\n if (!this.columns.includes(column)) {\n this.columns = [...this.columns, column];\n }\n });\n }\n\n unregisterColumn(column: Column): void {\n if (this.columns.includes(column)) {\n this.columns = this.columns.filter((c) => c !== column);\n }\n }\n\n <template>\n {{#let\n (hash\n table=(component Table theme=this.mergedTheme parent=this)\n header=(component\n HeaderComponent\n columns=this.columns\n onColumnClick=this.onColumnSort\n sortable=this.sortable\n sortSequence=this.sortSequence\n parent=this\n theme=this.mergedTheme\n )\n thead=(component\n THead\n columns=this.columns\n onColumnClick=this.onColumnSort\n sortable=this.sortable\n sortSequence=this.sortSequence\n theme=this.mergedTheme\n parent=this\n )\n body=(component\n Body\n data=this.processedData\n columns=this.columns\n theme=this.mergedTheme\n parent=this\n )\n tbody=(component\n TBody\n data=this.processedData\n columns=this.columns\n theme=this.mergedTheme\n parent=this\n )\n tfoot=(component\n TFoot columns=this.columns theme=this.mergedTheme parent=this\n )\n pagination=(component\n Pagination\n disabled=this.resolvedData.isPending\n theme=this.mergedTheme\n paginationData=this.paginationData\n paginationActions=(hash\n previousPage=this.previousPage\n nextPage=this.nextPage\n goToPage=this.goToPage\n changePageSize=this.changePageSize\n )\n )\n actions=this.publicApi\n paginationData=this.paginationData\n isLoading=this.resolvedData.isPending\n columns=this.columns\n visibleColumns=this.visibleColumns\n rows=this.normalizedRows\n totalRows=this.normalizedTotalRows\n visibleRows=this.processedData\n theme=this.mergedTheme\n )\n as |api|\n }}\n {{UpdateTotalRows @totalRows context=this}}\n {{UpdateFilter @filter context=this}}\n {{ProcessedData loadData=@loadData context=this}}\n\n {{#if this.renderTableElement}}\n <Table @theme={{this.mergedTheme}} @parent={{this}} ...attributes>\n {{yield api}}\n </Table>\n {{else}}\n {{yield api}}\n {{/if}}\n\n {{/let}}\n </template>\n}\n"],"names":["TASK_CANCELATION_NAME","didCancel","e","name","getConfigWithDefault","key","defaultValue","config","UpdateTotalRows","Helper","compute","positional","context","totalRows","notifyPropertyChange","UpdateFilter","filter","ProcessedData","_positional","loadData","data","latestData","processData","processedData","YetiTable","Component","publicApi","previousPage","nextPage","goToPage","n","changePageSize","reloadData","g","prototype","localCopy","i","dedupeTracked","sortMultiple","compareValues","mergedTheme","configTheme","theme","localTheme","args","merge","all","DEFAULT_THEME","cached","visibleColumns","columns","c","visible","getOwner","resolveRegistration","normalizedTotalRows","processedDataRows","length","undefined","previousResolvedData","normalizedRows","paginationData","pageSize","pageNumber","isLastPage","totalPages","Math","ceil","min","isFirstPage","pageStart","pageEnd","tracked","resolvedData","trackedFunction","params","computeLoadDataParams","console","log","then","isDestroyed","resolved","use","keepLatest","value","when","isPending","constructor","owner","registerApi","scheduleOnce","filterable","isPresent","prop","sortableColumns","isEmpty","sort","sortings","map","direction","filterFunction","filterUsing","processTheData","working","filterData","mergeSort","itemA","itemB","sortFunction","compareFunction","pagination","slice","ignoreDataChanges","later","sortData","columnFilters","paginateData","retry","action","onColumnSort","column","isSorted","sortSequence","normalizedSortSequence","indexOf","shiftKey","forEach","max","parseInt","String","registerColumn","schedule","isColumnVisible","includes","unregisterColumn","setComponentTemplate","precompileTemplate","strictMode","scope","hash","Table","HeaderComponent","THead","Body","TBody","TFoot","Pagination"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@triptyk/ember-yeti-table",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "Lightweight and flexible tables addon.",
5
5
  "keywords": [
6
6
  "ember-addon",
@@ -328,6 +328,10 @@ export default class YetiTable extends Component<YetiTableSignature> {
328
328
  let data: Row[] | Promise<Row[]> | undefined = this.args.data;
329
329
 
330
330
  if (this.columns.length == 0) {
331
+ if (typeof this.args.loadData === 'function') {
332
+ return this.previousResolvedData;
333
+ }
334
+
331
335
  return [] as Row[];
332
336
  }
333
337