@raystack/apsara 0.56.4 → 0.56.5

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,12 +1,19 @@
1
1
  'use strict';
2
2
 
3
+ var dayjs = require('dayjs');
3
4
  var filters = require('../../../types/filters.cjs');
4
5
  var dataTable_types = require('../data-table.types.cjs');
5
6
  var filterOperations = require('./filter-operations.cjs');
6
7
 
7
8
  function queryToTableState(query) {
8
9
  const columnFilters = query.filters
9
- ?.filter(data => data.value !== '')
10
+ ?.filter(data => {
11
+ if (data._type === filters.FilterType.date)
12
+ return dayjs(data.value).isValid();
13
+ if (data.value !== '')
14
+ return true;
15
+ return false;
16
+ })
10
17
  ?.map(data => {
11
18
  const valueObject = data._type === filters.FilterType.date
12
19
  ? { date: data.value }
@@ -119,7 +126,15 @@ function transformToDataTableQuery(query) {
119
126
  const { group_by = [], filters: filters$1 = [], sort = [], ...rest } = query;
120
127
  const sanitizedGroupBy = group_by?.filter(key => key !== dataTable_types.defaultGroupOption.id);
121
128
  const sanitizedFilters = filters$1
122
- ?.filter(data => data._type === filters.FilterType.select || data.value !== '')
129
+ ?.filter(data => {
130
+ if (data._type === filters.FilterType.select)
131
+ return true;
132
+ if (data._type === filters.FilterType.date)
133
+ return dayjs(data.value).isValid();
134
+ if (data.value !== '')
135
+ return true;
136
+ return false;
137
+ })
123
138
  ?.map(data => ({
124
139
  name: data.name,
125
140
  operator: filterOperations.getFilterOperator({
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from '@tanstack/table-core';\n\nimport { FilterOperatorTypes, FilterType } from '~/types/filters';\nimport {\n DataTableColumnDef,\n DataTableQuery,\n DataTableSort,\n GroupedData,\n InternalFilter,\n InternalQuery,\n SortOrders,\n defaultGroupOption\n} from '../data-table.types';\nimport {\n getFilterFn,\n getFilterOperator,\n getFilterValue\n} from './filter-operations';\n\nexport function queryToTableState(query: InternalQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter(data => data.value !== '')\n ?.map(data => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name\n };\n }) || [];\n\n const sorting = query.sort?.map(data => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: InternalFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map(column => {\n const colFilter = filters?.find(\n filter => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn\n };\n });\n}\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n\n const groupMap = new Map<string, TData[]>();\n data.forEach((currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n if (!groupMap.has(keyValue)) {\n groupMap.set(keyValue, []);\n }\n groupMap.get(keyValue)?.push(item as TData);\n });\n\n const columnDef = columns.find(col => col.accessorKey === group_by);\n const showGroupCount = columnDef?.showGroupCount || false;\n const groupLablesMap = columnDef?.groupLabelsMap || {};\n const groupCountMap = columnDef?.groupCountMap || {};\n const groupedData: GroupedData<TData>[] = [];\n\n groupMap.forEach((value, key) => {\n groupedData.push({\n label: groupLablesMap[key] || key,\n group_key: key,\n subRows: value,\n count: groupCountMap[key] ?? value.length,\n showGroupCount\n });\n });\n\n return groupedData;\n}\n\nconst generateFilterMap = (\n filters: InternalFilter[] = []\n): Map<string, any> => {\n return new Map(\n filters\n ?.filter(data => data._type === FilterType.select || data.value !== '')\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: InternalFilter[] = [],\n newFilters: InternalFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some(item => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: InternalQuery | null,\n newQuery: InternalQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true\n };\n }, {});\n}\n\nexport function transformToDataTableQuery(\n query: InternalQuery\n): DataTableQuery {\n const { group_by = [], filters = [], sort = [], ...rest } = query;\n const sanitizedGroupBy = group_by?.filter(\n key => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter(data => data._type === FilterType.select || data.value !== '')\n ?.map(data => ({\n name: data.name,\n operator: getFilterOperator({\n operator: data.operator,\n value: data.value,\n filterType: data._type\n }),\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n operator: data.operator\n })\n })) || [];\n\n return {\n ...rest,\n sort: sort,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters\n };\n}\n\n// Transform DataTableQuery to InternalQuery\n// This reverses the transformation done by transformToDataTableQuery\nexport function dataTableQueryToInternal(query: DataTableQuery): InternalQuery {\n const { filters, ...rest } = query;\n\n if (!filters) {\n return rest;\n }\n\n // Convert DataTableFilter[] to InternalFilter[]\n const internalFilters: InternalFilter[] = filters.map(filter => {\n const {\n operator,\n value,\n stringValue,\n numberValue,\n boolValue,\n ...filterRest\n } = filter;\n\n // Reverse the operator mapping and wildcard transformation\n let transformedFilter = {\n operator: operator as FilterOperatorTypes,\n value: value,\n ...(stringValue !== undefined && { stringValue }),\n ...(numberValue !== undefined && { numberValue }),\n ...(boolValue !== undefined && { boolValue })\n };\n\n // If operator is 'ilike', determine the original operator based on wildcards\n if (operator === 'ilike' && stringValue) {\n if (stringValue.startsWith('%') && stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'contains',\n value: stringValue.slice(1, -1) // Remove % from both ends\n };\n } else if (stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'starts_with',\n value: stringValue.slice(0, -1) // Remove % from end\n };\n } else if (stringValue.startsWith('%')) {\n transformedFilter = {\n operator: 'ends_with',\n value: stringValue.slice(1) // Remove % from start\n };\n } else {\n // Default to contains if no wildcards (shouldn't happen normally)\n transformedFilter = {\n operator: 'contains',\n value: stringValue\n };\n }\n }\n\n return {\n ...filterRest,\n ...transformedFilter,\n // We don't have type information, so leave it undefined\n // The UI will need to infer or set these based on column definitions\n _type: undefined,\n _dataType: undefined\n } as InternalFilter;\n });\n\n return {\n ...rest,\n filters: internalFilters\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): InternalQuery {\n // Convert DataTableQuery to InternalQuery\n const internalQuery = dataTableQueryToInternal(oldQuery);\n\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...internalQuery\n };\n}\n"],"names":["FilterType","SortOrders","filters","getFilterFn","defaultGroupOption","getFilterOperator","getFilterValue"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from '@tanstack/table-core';\nimport dayjs from 'dayjs';\n\nimport { FilterOperatorTypes, FilterType } from '~/types/filters';\nimport {\n DataTableColumnDef,\n DataTableQuery,\n DataTableSort,\n defaultGroupOption,\n GroupedData,\n InternalFilter,\n InternalQuery,\n SortOrders\n} from '../data-table.types';\nimport {\n getFilterFn,\n getFilterOperator,\n getFilterValue\n} from './filter-operations';\n\nexport function queryToTableState(query: InternalQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter(data => {\n if (data._type === FilterType.date) return dayjs(data.value).isValid();\n if (data.value !== '') return true;\n return false;\n })\n ?.map(data => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name\n };\n }) || [];\n\n const sorting = query.sort?.map(data => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: InternalFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map(column => {\n const colFilter = filters?.find(\n filter => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn\n };\n });\n}\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n\n const groupMap = new Map<string, TData[]>();\n data.forEach((currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n if (!groupMap.has(keyValue)) {\n groupMap.set(keyValue, []);\n }\n groupMap.get(keyValue)?.push(item as TData);\n });\n\n const columnDef = columns.find(col => col.accessorKey === group_by);\n const showGroupCount = columnDef?.showGroupCount || false;\n const groupLablesMap = columnDef?.groupLabelsMap || {};\n const groupCountMap = columnDef?.groupCountMap || {};\n const groupedData: GroupedData<TData>[] = [];\n\n groupMap.forEach((value, key) => {\n groupedData.push({\n label: groupLablesMap[key] || key,\n group_key: key,\n subRows: value,\n count: groupCountMap[key] ?? value.length,\n showGroupCount\n });\n });\n\n return groupedData;\n}\n\nconst generateFilterMap = (\n filters: InternalFilter[] = []\n): Map<string, any> => {\n return new Map(\n filters\n ?.filter(data => data._type === FilterType.select || data.value !== '')\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: InternalFilter[] = [],\n newFilters: InternalFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some(item => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: InternalQuery | null,\n newQuery: InternalQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true\n };\n }, {});\n}\n\nexport function transformToDataTableQuery(\n query: InternalQuery\n): DataTableQuery {\n const { group_by = [], filters = [], sort = [], ...rest } = query;\n const sanitizedGroupBy = group_by?.filter(\n key => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter(data => {\n if (data._type === FilterType.select) return true;\n if (data._type === FilterType.date) return dayjs(data.value).isValid();\n if (data.value !== '') return true;\n return false;\n })\n ?.map(data => ({\n name: data.name,\n operator: getFilterOperator({\n operator: data.operator,\n value: data.value,\n filterType: data._type\n }),\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n operator: data.operator\n })\n })) || [];\n\n return {\n ...rest,\n sort: sort,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters\n };\n}\n\n// Transform DataTableQuery to InternalQuery\n// This reverses the transformation done by transformToDataTableQuery\nexport function dataTableQueryToInternal(query: DataTableQuery): InternalQuery {\n const { filters, ...rest } = query;\n\n if (!filters) {\n return rest;\n }\n\n // Convert DataTableFilter[] to InternalFilter[]\n const internalFilters: InternalFilter[] = filters.map(filter => {\n const {\n operator,\n value,\n stringValue,\n numberValue,\n boolValue,\n ...filterRest\n } = filter;\n\n // Reverse the operator mapping and wildcard transformation\n let transformedFilter = {\n operator: operator as FilterOperatorTypes,\n value: value,\n ...(stringValue !== undefined && { stringValue }),\n ...(numberValue !== undefined && { numberValue }),\n ...(boolValue !== undefined && { boolValue })\n };\n\n // If operator is 'ilike', determine the original operator based on wildcards\n if (operator === 'ilike' && stringValue) {\n if (stringValue.startsWith('%') && stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'contains',\n value: stringValue.slice(1, -1) // Remove % from both ends\n };\n } else if (stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'starts_with',\n value: stringValue.slice(0, -1) // Remove % from end\n };\n } else if (stringValue.startsWith('%')) {\n transformedFilter = {\n operator: 'ends_with',\n value: stringValue.slice(1) // Remove % from start\n };\n } else {\n // Default to contains if no wildcards (shouldn't happen normally)\n transformedFilter = {\n operator: 'contains',\n value: stringValue\n };\n }\n }\n\n return {\n ...filterRest,\n ...transformedFilter,\n // We don't have type information, so leave it undefined\n // The UI will need to infer or set these based on column definitions\n _type: undefined,\n _dataType: undefined\n } as InternalFilter;\n });\n\n return {\n ...rest,\n filters: internalFilters\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): InternalQuery {\n // Convert DataTableQuery to InternalQuery\n const internalQuery = dataTableQueryToInternal(oldQuery);\n\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...internalQuery\n };\n}\n"],"names":["FilterType","SortOrders","filters","getFilterFn","defaultGroupOption","getFilterOperator","getFilterValue"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/data-table/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EAGd,MAAM,qBAAqB,CAAC;AAO7B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAwB3E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAClD,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAO,EACjD,OAAO,GAAE,cAAc,EAAO,GAC7B,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAcrC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAC7B,IAAI,EAAE,KAAK,EAAE,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAO,GAC7C,WAAW,CAAC,KAAK,CAAC,EAAE,CAgCtB;AAwDD,eAAO,MAAM,eAAe,aAChB,aAAa,GAAG,IAAI,YACpB,aAAa,KACtB,OAQF,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EACtD,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAO,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAO9B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,GACnB,cAAc,CA8BhB;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,CAmE7E;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,aAAa,EAC1B,QAAQ,GAAE,cAAmB,GAC5B,aAAa,CASf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/data-table/utils/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EAEb,WAAW,EACX,cAAc,EACd,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAO7B,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CA4B3E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAClD,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAO,EACjD,OAAO,GAAE,cAAc,EAAO,GAC7B,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAcrC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAC7B,IAAI,EAAE,KAAK,EAAE,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAO,GAC7C,WAAW,CAAC,KAAK,CAAC,EAAE,CAgCtB;AAwDD,eAAO,MAAM,eAAe,aAChB,aAAa,GAAG,IAAI,YACpB,aAAa,KACtB,OAQF,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EACtD,OAAO,GAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAO,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,CAO9B;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,GACnB,cAAc,CAmChB;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,CAmE7E;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,aAAa,EAC1B,QAAQ,GAAE,cAAmB,GAC5B,aAAa,CASf"}
@@ -1,10 +1,17 @@
1
+ import dayjs from 'dayjs';
1
2
  import { FilterType } from '../../../types/filters.js';
2
3
  import { SortOrders, defaultGroupOption } from '../data-table.types.js';
3
4
  import { getFilterFn, getFilterOperator, getFilterValue } from './filter-operations.js';
4
5
 
5
6
  function queryToTableState(query) {
6
7
  const columnFilters = query.filters
7
- ?.filter(data => data.value !== '')
8
+ ?.filter(data => {
9
+ if (data._type === FilterType.date)
10
+ return dayjs(data.value).isValid();
11
+ if (data.value !== '')
12
+ return true;
13
+ return false;
14
+ })
8
15
  ?.map(data => {
9
16
  const valueObject = data._type === FilterType.date
10
17
  ? { date: data.value }
@@ -117,7 +124,15 @@ function transformToDataTableQuery(query) {
117
124
  const { group_by = [], filters = [], sort = [], ...rest } = query;
118
125
  const sanitizedGroupBy = group_by?.filter(key => key !== defaultGroupOption.id);
119
126
  const sanitizedFilters = filters
120
- ?.filter(data => data._type === FilterType.select || data.value !== '')
127
+ ?.filter(data => {
128
+ if (data._type === FilterType.select)
129
+ return true;
130
+ if (data._type === FilterType.date)
131
+ return dayjs(data.value).isValid();
132
+ if (data.value !== '')
133
+ return true;
134
+ return false;
135
+ })
121
136
  ?.map(data => ({
122
137
  name: data.name,
123
138
  operator: getFilterOperator({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from '@tanstack/table-core';\n\nimport { FilterOperatorTypes, FilterType } from '~/types/filters';\nimport {\n DataTableColumnDef,\n DataTableQuery,\n DataTableSort,\n GroupedData,\n InternalFilter,\n InternalQuery,\n SortOrders,\n defaultGroupOption\n} from '../data-table.types';\nimport {\n getFilterFn,\n getFilterOperator,\n getFilterValue\n} from './filter-operations';\n\nexport function queryToTableState(query: InternalQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter(data => data.value !== '')\n ?.map(data => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name\n };\n }) || [];\n\n const sorting = query.sort?.map(data => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: InternalFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map(column => {\n const colFilter = filters?.find(\n filter => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn\n };\n });\n}\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n\n const groupMap = new Map<string, TData[]>();\n data.forEach((currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n if (!groupMap.has(keyValue)) {\n groupMap.set(keyValue, []);\n }\n groupMap.get(keyValue)?.push(item as TData);\n });\n\n const columnDef = columns.find(col => col.accessorKey === group_by);\n const showGroupCount = columnDef?.showGroupCount || false;\n const groupLablesMap = columnDef?.groupLabelsMap || {};\n const groupCountMap = columnDef?.groupCountMap || {};\n const groupedData: GroupedData<TData>[] = [];\n\n groupMap.forEach((value, key) => {\n groupedData.push({\n label: groupLablesMap[key] || key,\n group_key: key,\n subRows: value,\n count: groupCountMap[key] ?? value.length,\n showGroupCount\n });\n });\n\n return groupedData;\n}\n\nconst generateFilterMap = (\n filters: InternalFilter[] = []\n): Map<string, any> => {\n return new Map(\n filters\n ?.filter(data => data._type === FilterType.select || data.value !== '')\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: InternalFilter[] = [],\n newFilters: InternalFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some(item => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: InternalQuery | null,\n newQuery: InternalQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true\n };\n }, {});\n}\n\nexport function transformToDataTableQuery(\n query: InternalQuery\n): DataTableQuery {\n const { group_by = [], filters = [], sort = [], ...rest } = query;\n const sanitizedGroupBy = group_by?.filter(\n key => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter(data => data._type === FilterType.select || data.value !== '')\n ?.map(data => ({\n name: data.name,\n operator: getFilterOperator({\n operator: data.operator,\n value: data.value,\n filterType: data._type\n }),\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n operator: data.operator\n })\n })) || [];\n\n return {\n ...rest,\n sort: sort,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters\n };\n}\n\n// Transform DataTableQuery to InternalQuery\n// This reverses the transformation done by transformToDataTableQuery\nexport function dataTableQueryToInternal(query: DataTableQuery): InternalQuery {\n const { filters, ...rest } = query;\n\n if (!filters) {\n return rest;\n }\n\n // Convert DataTableFilter[] to InternalFilter[]\n const internalFilters: InternalFilter[] = filters.map(filter => {\n const {\n operator,\n value,\n stringValue,\n numberValue,\n boolValue,\n ...filterRest\n } = filter;\n\n // Reverse the operator mapping and wildcard transformation\n let transformedFilter = {\n operator: operator as FilterOperatorTypes,\n value: value,\n ...(stringValue !== undefined && { stringValue }),\n ...(numberValue !== undefined && { numberValue }),\n ...(boolValue !== undefined && { boolValue })\n };\n\n // If operator is 'ilike', determine the original operator based on wildcards\n if (operator === 'ilike' && stringValue) {\n if (stringValue.startsWith('%') && stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'contains',\n value: stringValue.slice(1, -1) // Remove % from both ends\n };\n } else if (stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'starts_with',\n value: stringValue.slice(0, -1) // Remove % from end\n };\n } else if (stringValue.startsWith('%')) {\n transformedFilter = {\n operator: 'ends_with',\n value: stringValue.slice(1) // Remove % from start\n };\n } else {\n // Default to contains if no wildcards (shouldn't happen normally)\n transformedFilter = {\n operator: 'contains',\n value: stringValue\n };\n }\n }\n\n return {\n ...filterRest,\n ...transformedFilter,\n // We don't have type information, so leave it undefined\n // The UI will need to infer or set these based on column definitions\n _type: undefined,\n _dataType: undefined\n } as InternalFilter;\n });\n\n return {\n ...rest,\n filters: internalFilters\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): InternalQuery {\n // Convert DataTableQuery to InternalQuery\n const internalQuery = dataTableQueryToInternal(oldQuery);\n\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...internalQuery\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../components/data-table/utils/index.tsx"],"sourcesContent":["import { TableState } from '@tanstack/table-core';\nimport dayjs from 'dayjs';\n\nimport { FilterOperatorTypes, FilterType } from '~/types/filters';\nimport {\n DataTableColumnDef,\n DataTableQuery,\n DataTableSort,\n defaultGroupOption,\n GroupedData,\n InternalFilter,\n InternalQuery,\n SortOrders\n} from '../data-table.types';\nimport {\n getFilterFn,\n getFilterOperator,\n getFilterValue\n} from './filter-operations';\n\nexport function queryToTableState(query: InternalQuery): Partial<TableState> {\n const columnFilters =\n query.filters\n ?.filter(data => {\n if (data._type === FilterType.date) return dayjs(data.value).isValid();\n if (data.value !== '') return true;\n return false;\n })\n ?.map(data => {\n const valueObject =\n data._type === FilterType.date\n ? { date: data.value }\n : { value: data.value };\n return {\n value: valueObject,\n id: data?.name\n };\n }) || [];\n\n const sorting = query.sort?.map(data => ({\n id: data?.name,\n desc: data?.order === SortOrders.DESC\n }));\n return {\n columnFilters: columnFilters,\n sorting: sorting,\n globalFilter: query.search\n };\n}\n\nexport function getColumnsWithFilterFn<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = [],\n filters: InternalFilter[] = []\n): DataTableColumnDef<TData, TValue>[] {\n return columns.map(column => {\n const colFilter = filters?.find(\n filter => filter.name === column.accessorKey\n );\n const filterFn = colFilter?.operator\n ? getFilterFn(column.filterType || FilterType.string, colFilter.operator)\n : undefined;\n\n return {\n ...column,\n filterFn\n };\n });\n}\n\nexport function groupData<TData>(\n data: TData[],\n group_by?: string,\n columns: DataTableColumnDef<TData, any>[] = []\n): GroupedData<TData>[] {\n if (!data) return [];\n if (!group_by || group_by === defaultGroupOption.id)\n return data as GroupedData<TData>[];\n\n const groupMap = new Map<string, TData[]>();\n data.forEach((currentData: TData) => {\n const item = currentData as Record<string, string>;\n const keyValue = item[group_by];\n if (!groupMap.has(keyValue)) {\n groupMap.set(keyValue, []);\n }\n groupMap.get(keyValue)?.push(item as TData);\n });\n\n const columnDef = columns.find(col => col.accessorKey === group_by);\n const showGroupCount = columnDef?.showGroupCount || false;\n const groupLablesMap = columnDef?.groupLabelsMap || {};\n const groupCountMap = columnDef?.groupCountMap || {};\n const groupedData: GroupedData<TData>[] = [];\n\n groupMap.forEach((value, key) => {\n groupedData.push({\n label: groupLablesMap[key] || key,\n group_key: key,\n subRows: value,\n count: groupCountMap[key] ?? value.length,\n showGroupCount\n });\n });\n\n return groupedData;\n}\n\nconst generateFilterMap = (\n filters: InternalFilter[] = []\n): Map<string, any> => {\n return new Map(\n filters\n ?.filter(data => data._type === FilterType.select || data.value !== '')\n .map(({ name, operator, value }) => [`${name}-${operator}`, value])\n );\n};\n\nconst generateSortMap = (sort: DataTableSort[] = []): Map<string, string> => {\n return new Map(sort.map(({ name, order }) => [name, order]));\n};\n\nconst isFilterChanged = (\n oldFilters: InternalFilter[] = [],\n newFilters: InternalFilter[] = []\n): boolean => {\n const oldFilterMap = generateFilterMap(oldFilters);\n const newFilterMap = generateFilterMap(newFilters);\n\n if (oldFilterMap.size !== newFilterMap.size) return true;\n\n return [...newFilterMap].some(\n ([key, value]) => oldFilterMap.get(key) !== value\n );\n};\n\nconst isSortChanged = (\n oldSort: DataTableSort[] = [],\n newSort: DataTableSort[] = []\n): boolean => {\n if (oldSort.length !== newSort.length) return true;\n\n const oldSortMap = generateSortMap(oldSort);\n const newSortMap = generateSortMap(newSort);\n\n return [...newSortMap].some(([key, order]) => oldSortMap.get(key) !== order);\n};\n\nconst isGroupChanged = (\n oldGroupBy: string[] = [],\n newGroupBy: string[] = []\n): boolean => {\n if (oldGroupBy.length !== newGroupBy.length) return true;\n\n const oldGroupSet = new Set(oldGroupBy);\n return newGroupBy.some(item => !oldGroupSet.has(item));\n};\n\nconst isSearchChanged = (oldSearch?: string, newSearch?: string): boolean => {\n return oldSearch !== newSearch;\n};\n\nexport const hasQueryChanged = (\n oldQuery: InternalQuery | null,\n newQuery: InternalQuery\n): boolean => {\n if (!oldQuery) return true;\n return (\n isFilterChanged(oldQuery.filters, newQuery.filters) ||\n isSortChanged(oldQuery.sort, newQuery.sort) ||\n isGroupChanged(oldQuery.group_by, newQuery.group_by) ||\n isSearchChanged(oldQuery.search, newQuery.search)\n );\n};\n\nexport function getInitialColumnVisibility<TData, TValue>(\n columns: DataTableColumnDef<TData, TValue>[] = []\n): Record<string, boolean> | {} {\n return columns.reduce((acc, col) => {\n return {\n ...acc,\n [col.accessorKey]: col.defaultHidden ? false : true\n };\n }, {});\n}\n\nexport function transformToDataTableQuery(\n query: InternalQuery\n): DataTableQuery {\n const { group_by = [], filters = [], sort = [], ...rest } = query;\n const sanitizedGroupBy = group_by?.filter(\n key => key !== defaultGroupOption.id\n );\n\n const sanitizedFilters =\n filters\n ?.filter(data => {\n if (data._type === FilterType.select) return true;\n if (data._type === FilterType.date) return dayjs(data.value).isValid();\n if (data.value !== '') return true;\n return false;\n })\n ?.map(data => ({\n name: data.name,\n operator: getFilterOperator({\n operator: data.operator,\n value: data.value,\n filterType: data._type\n }),\n ...getFilterValue({\n value: data.value,\n filterType: data._type,\n dataType: data._dataType,\n operator: data.operator\n })\n })) || [];\n\n return {\n ...rest,\n sort: sort,\n group_by: sanitizedGroupBy,\n filters: sanitizedFilters\n };\n}\n\n// Transform DataTableQuery to InternalQuery\n// This reverses the transformation done by transformToDataTableQuery\nexport function dataTableQueryToInternal(query: DataTableQuery): InternalQuery {\n const { filters, ...rest } = query;\n\n if (!filters) {\n return rest;\n }\n\n // Convert DataTableFilter[] to InternalFilter[]\n const internalFilters: InternalFilter[] = filters.map(filter => {\n const {\n operator,\n value,\n stringValue,\n numberValue,\n boolValue,\n ...filterRest\n } = filter;\n\n // Reverse the operator mapping and wildcard transformation\n let transformedFilter = {\n operator: operator as FilterOperatorTypes,\n value: value,\n ...(stringValue !== undefined && { stringValue }),\n ...(numberValue !== undefined && { numberValue }),\n ...(boolValue !== undefined && { boolValue })\n };\n\n // If operator is 'ilike', determine the original operator based on wildcards\n if (operator === 'ilike' && stringValue) {\n if (stringValue.startsWith('%') && stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'contains',\n value: stringValue.slice(1, -1) // Remove % from both ends\n };\n } else if (stringValue.endsWith('%')) {\n transformedFilter = {\n operator: 'starts_with',\n value: stringValue.slice(0, -1) // Remove % from end\n };\n } else if (stringValue.startsWith('%')) {\n transformedFilter = {\n operator: 'ends_with',\n value: stringValue.slice(1) // Remove % from start\n };\n } else {\n // Default to contains if no wildcards (shouldn't happen normally)\n transformedFilter = {\n operator: 'contains',\n value: stringValue\n };\n }\n }\n\n return {\n ...filterRest,\n ...transformedFilter,\n // We don't have type information, so leave it undefined\n // The UI will need to infer or set these based on column definitions\n _type: undefined,\n _dataType: undefined\n } as InternalFilter;\n });\n\n return {\n ...rest,\n filters: internalFilters\n };\n}\n\nexport function getDefaultTableQuery(\n defaultSort: DataTableSort,\n oldQuery: DataTableQuery = {}\n): InternalQuery {\n // Convert DataTableQuery to InternalQuery\n const internalQuery = dataTableQueryToInternal(oldQuery);\n\n return {\n sort: [defaultSort],\n group_by: [defaultGroupOption.id],\n ...internalQuery\n };\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raystack/apsara",
3
- "version": "0.56.4",
3
+ "version": "0.56.5",
4
4
  "types": "dist/index.d.ts",
5
5
  "sideEffects": false,
6
6
  "engines": {
@@ -90,7 +90,7 @@
90
90
  "semver": "^7.6.0",
91
91
  "typescript": "~5.4.3",
92
92
  "vitest": "^3.2.4",
93
- "@raystack/tools-config": "0.56.4"
93
+ "@raystack/tools-config": "0.56.5"
94
94
  },
95
95
  "dependencies": {
96
96
  "@ariakit/react": "^0.4.16",