@cloudscape-design/collection-hooks
Advanced tools
Comparing version 1.0.27 to 1.0.28
@@ -1,2 +0,3 @@ | ||
import { FilteringOptions } from '../interfaces'; | ||
export declare function filter<T>(items: ReadonlyArray<T>, filteringText: string | undefined, { filteringFunction, fields }: FilteringOptions<T>): ReadonlyArray<T>; | ||
import { UseCollectionOptions } from '../interfaces'; | ||
import { Predicate } from './compose-filters'; | ||
export declare function createFilterPredicate<T>(filtering: UseCollectionOptions<T>['filtering'], filteringText?: string): null | Predicate<T>; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.filter = void 0; | ||
exports.createFilterPredicate = void 0; | ||
function defaultFilteringFunction(item, filteringText, filteringFields) { | ||
@@ -16,7 +16,11 @@ if (filteringText.length === 0) { | ||
} | ||
function filter(items, filteringText, _a) { | ||
function createFilterPredicate(filtering, filteringText) { | ||
var _a; | ||
if (filteringText === void 0) { filteringText = ''; } | ||
var _b = _a.filteringFunction, filteringFunction = _b === void 0 ? defaultFilteringFunction : _b, fields = _a.fields; | ||
return items.filter(function (item) { return filteringFunction(item, filteringText, fields); }); | ||
if (!filtering) { | ||
return null; | ||
} | ||
var filteringFunction = (_a = filtering.filteringFunction) !== null && _a !== void 0 ? _a : defaultFilteringFunction; | ||
return function (item) { return filteringFunction(item, filteringText, filtering.fields); }; | ||
} | ||
exports.filter = filter; | ||
exports.createFilterPredicate = createFilterPredicate; |
@@ -7,28 +7,28 @@ "use strict"; | ||
var sort_js_1 = require("./sort.js"); | ||
var paginate_js_1 = require("./paginate.js"); | ||
var pagination_js_1 = require("./pagination.js"); | ||
var compose_filters_js_1 = require("./compose-filters.js"); | ||
function processItems(items, _a, _b) { | ||
var filteringText = _a.filteringText, sortingState = _a.sortingState, currentPageIndex = _a.currentPageIndex, propertyFilteringQuery = _a.propertyFilteringQuery; | ||
var filtering = _b.filtering, sorting = _b.sorting, pagination = _b.pagination, propertyFiltering = _b.propertyFiltering; | ||
var result = items; | ||
var pagesCount; | ||
var actualPageIndex; | ||
var filteredItemsCount; | ||
if (propertyFiltering) { | ||
result = (0, property_filter_js_1.propertyFilter)(result, propertyFilteringQuery || { tokens: [], operation: 'and' }, propertyFiltering); | ||
filteredItemsCount = result.length; | ||
var filterPredicate = (0, compose_filters_js_1.composeFilters)((0, property_filter_js_1.createPropertyFilterPredicate)(propertyFiltering, propertyFilteringQuery), (0, filter_js_1.createFilterPredicate)(filtering, filteringText)); | ||
if (filterPredicate) { | ||
items = items.filter(filterPredicate); | ||
} | ||
if (filtering) { | ||
result = (0, filter_js_1.filter)(result, filteringText, filtering); | ||
filteredItemsCount = result.length; | ||
var filteredItemsCount = filterPredicate ? items.length : undefined; | ||
var comparator = (0, sort_js_1.createComparator)(sorting, sortingState); | ||
if (comparator) { | ||
items = items.slice().sort(comparator); | ||
} | ||
if (sorting) { | ||
result = (0, sort_js_1.sort)(result, sortingState); | ||
var allPageItems = items; | ||
var pageProps = (0, pagination_js_1.createPageProps)(pagination, currentPageIndex, items); | ||
if (pageProps) { | ||
items = items.slice((pageProps.pageIndex - 1) * pageProps.pageSize, pageProps.pageIndex * pageProps.pageSize); | ||
} | ||
var allPageResult = result; | ||
if (pagination) { | ||
pagesCount = (0, paginate_js_1.getPagesCount)(result, pagination.pageSize); | ||
actualPageIndex = (0, paginate_js_1.normalizePageIndex)(currentPageIndex, pagesCount); | ||
result = (0, paginate_js_1.paginate)(result, actualPageIndex, pagination.pageSize); | ||
} | ||
return { items: result, allPageItems: allPageResult, pagesCount: pagesCount, filteredItemsCount: filteredItemsCount, actualPageIndex: actualPageIndex }; | ||
return { | ||
items: items, | ||
allPageItems: allPageItems, | ||
filteredItemsCount: filteredItemsCount, | ||
pagesCount: pageProps === null || pageProps === void 0 ? void 0 : pageProps.pagesCount, | ||
actualPageIndex: pageProps === null || pageProps === void 0 ? void 0 : pageProps.pageIndex, | ||
}; | ||
} | ||
@@ -35,0 +35,0 @@ exports.processItems = processItems; |
import { PropertyFilterQuery, UseCollectionOptions } from '../interfaces'; | ||
export declare function propertyFilter<T>(items: ReadonlyArray<T>, query: PropertyFilterQuery, { filteringFunction, filteringProperties }: NonNullable<UseCollectionOptions<T>['propertyFiltering']>): ReadonlyArray<T>; | ||
import { Predicate } from './compose-filters'; | ||
export declare function createPropertyFilterPredicate<T>(propertyFiltering: UseCollectionOptions<T>['propertyFiltering'], query?: PropertyFilterQuery): null | Predicate<T>; | ||
export declare const fixupFalsyValues: <T>(value: T) => string | T; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.fixupFalsyValues = exports.propertyFilter = void 0; | ||
exports.fixupFalsyValues = exports.createPropertyFilterPredicate = void 0; | ||
var compare_dates_js_1 = require("../date-utils/compare-dates.js"); | ||
@@ -96,5 +96,8 @@ var filterUsingOperator = function (itemValue, tokenValue, _a) { | ||
} | ||
function propertyFilter(items, query, _a) { | ||
var filteringFunction = _a.filteringFunction, filteringProperties = _a.filteringProperties; | ||
var filteringPropertiesMap = filteringProperties.reduce(function (acc, _a) { | ||
function createPropertyFilterPredicate(propertyFiltering, query) { | ||
if (query === void 0) { query = { tokens: [], operation: 'and' }; } | ||
if (!propertyFiltering) { | ||
return null; | ||
} | ||
var filteringPropertiesMap = propertyFiltering.filteringProperties.reduce(function (acc, _a) { | ||
var _b; | ||
@@ -116,6 +119,6 @@ var key = _a.key, operators = _a.operators, defaultOperator = _a.defaultOperator; | ||
}, {}); | ||
var filter = filteringFunction || defaultFilteringFunction(filteringPropertiesMap); | ||
return items.filter(function (item) { return filter(item, query); }); | ||
var filteringFunction = propertyFiltering.filteringFunction || defaultFilteringFunction(filteringPropertiesMap); | ||
return function (item) { return filteringFunction(item, query); }; | ||
} | ||
exports.propertyFilter = propertyFilter; | ||
exports.createPropertyFilterPredicate = createPropertyFilterPredicate; | ||
var fixupFalsyValues = function (value) { | ||
@@ -122,0 +125,0 @@ if (typeof value === 'boolean') { |
@@ -1,2 +0,2 @@ | ||
import { SortingState } from '../interfaces'; | ||
export declare function sort<T>(items: ReadonlyArray<T>, state: SortingState<T> | undefined): ReadonlyArray<T>; | ||
import { SortingState, UseCollectionOptions } from '../interfaces'; | ||
export declare function createComparator<T>(sorting: UseCollectionOptions<T>['sorting'], state: SortingState<T> | undefined): null | ((a: T, b: T) => number); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.sort = void 0; | ||
exports.createComparator = void 0; | ||
function getSorter(sortingField) { | ||
if (!sortingField) { | ||
return null; | ||
} | ||
return function (row1, row2) { | ||
@@ -20,20 +23,11 @@ var _a, _b; | ||
} | ||
function sort(items, state) { | ||
if (!state) { | ||
return items; | ||
function createComparator(sorting, state) { | ||
var _a; | ||
if (!sorting || !state) { | ||
return null; | ||
} | ||
var sortingColumn = state.sortingColumn; | ||
var comparator = 'sortingComparator' in sortingColumn | ||
? sortingColumn.sortingComparator | ||
: sortingColumn.sortingField | ||
? getSorter(sortingColumn.sortingField) | ||
: undefined; | ||
if (!comparator) { | ||
return items; | ||
} | ||
var sorted = items.slice(); | ||
var direction = state.isDescending ? -1 : 1; | ||
sorted.sort(function (a, b) { return comparator(a, b) * direction; }); | ||
return sorted; | ||
var comparator = (_a = state.sortingColumn.sortingComparator) !== null && _a !== void 0 ? _a : getSorter(state.sortingColumn.sortingField); | ||
return comparator ? function (a, b) { return comparator(a, b) * direction; } : null; | ||
} | ||
exports.sort = sort; | ||
exports.createComparator = createComparator; |
@@ -1,2 +0,3 @@ | ||
import { FilteringOptions } from '../interfaces'; | ||
export declare function filter<T>(items: ReadonlyArray<T>, filteringText: string | undefined, { filteringFunction, fields }: FilteringOptions<T>): ReadonlyArray<T>; | ||
import { UseCollectionOptions } from '../interfaces'; | ||
import { Predicate } from './compose-filters'; | ||
export declare function createFilterPredicate<T>(filtering: UseCollectionOptions<T>['filtering'], filteringText?: string): null | Predicate<T>; |
@@ -13,6 +13,10 @@ function defaultFilteringFunction(item, filteringText, filteringFields) { | ||
} | ||
export function filter(items, filteringText, _a) { | ||
export function createFilterPredicate(filtering, filteringText) { | ||
var _a; | ||
if (filteringText === void 0) { filteringText = ''; } | ||
var _b = _a.filteringFunction, filteringFunction = _b === void 0 ? defaultFilteringFunction : _b, fields = _a.fields; | ||
return items.filter(function (item) { return filteringFunction(item, filteringText, fields); }); | ||
if (!filtering) { | ||
return null; | ||
} | ||
var filteringFunction = (_a = filtering.filteringFunction) !== null && _a !== void 0 ? _a : defaultFilteringFunction; | ||
return function (item) { return filteringFunction(item, filteringText, filtering.fields); }; | ||
} |
@@ -1,30 +0,30 @@ | ||
import { filter } from './filter.js'; | ||
import { propertyFilter } from './property-filter.js'; | ||
import { sort } from './sort.js'; | ||
import { getPagesCount, normalizePageIndex, paginate } from './paginate.js'; | ||
import { createFilterPredicate } from './filter.js'; | ||
import { createPropertyFilterPredicate } from './property-filter.js'; | ||
import { createComparator } from './sort.js'; | ||
import { createPageProps } from './pagination.js'; | ||
import { composeFilters } from './compose-filters.js'; | ||
export function processItems(items, _a, _b) { | ||
var filteringText = _a.filteringText, sortingState = _a.sortingState, currentPageIndex = _a.currentPageIndex, propertyFilteringQuery = _a.propertyFilteringQuery; | ||
var filtering = _b.filtering, sorting = _b.sorting, pagination = _b.pagination, propertyFiltering = _b.propertyFiltering; | ||
var result = items; | ||
var pagesCount; | ||
var actualPageIndex; | ||
var filteredItemsCount; | ||
if (propertyFiltering) { | ||
result = propertyFilter(result, propertyFilteringQuery || { tokens: [], operation: 'and' }, propertyFiltering); | ||
filteredItemsCount = result.length; | ||
var filterPredicate = composeFilters(createPropertyFilterPredicate(propertyFiltering, propertyFilteringQuery), createFilterPredicate(filtering, filteringText)); | ||
if (filterPredicate) { | ||
items = items.filter(filterPredicate); | ||
} | ||
if (filtering) { | ||
result = filter(result, filteringText, filtering); | ||
filteredItemsCount = result.length; | ||
var filteredItemsCount = filterPredicate ? items.length : undefined; | ||
var comparator = createComparator(sorting, sortingState); | ||
if (comparator) { | ||
items = items.slice().sort(comparator); | ||
} | ||
if (sorting) { | ||
result = sort(result, sortingState); | ||
var allPageItems = items; | ||
var pageProps = createPageProps(pagination, currentPageIndex, items); | ||
if (pageProps) { | ||
items = items.slice((pageProps.pageIndex - 1) * pageProps.pageSize, pageProps.pageIndex * pageProps.pageSize); | ||
} | ||
var allPageResult = result; | ||
if (pagination) { | ||
pagesCount = getPagesCount(result, pagination.pageSize); | ||
actualPageIndex = normalizePageIndex(currentPageIndex, pagesCount); | ||
result = paginate(result, actualPageIndex, pagination.pageSize); | ||
} | ||
return { items: result, allPageItems: allPageResult, pagesCount: pagesCount, filteredItemsCount: filteredItemsCount, actualPageIndex: actualPageIndex }; | ||
return { | ||
items: items, | ||
allPageItems: allPageItems, | ||
filteredItemsCount: filteredItemsCount, | ||
pagesCount: pageProps === null || pageProps === void 0 ? void 0 : pageProps.pagesCount, | ||
actualPageIndex: pageProps === null || pageProps === void 0 ? void 0 : pageProps.pageIndex, | ||
}; | ||
} | ||
@@ -31,0 +31,0 @@ export var getTrackableValue = function (trackBy, item) { |
import { PropertyFilterQuery, UseCollectionOptions } from '../interfaces'; | ||
export declare function propertyFilter<T>(items: ReadonlyArray<T>, query: PropertyFilterQuery, { filteringFunction, filteringProperties }: NonNullable<UseCollectionOptions<T>['propertyFiltering']>): ReadonlyArray<T>; | ||
import { Predicate } from './compose-filters'; | ||
export declare function createPropertyFilterPredicate<T>(propertyFiltering: UseCollectionOptions<T>['propertyFiltering'], query?: PropertyFilterQuery): null | Predicate<T>; | ||
export declare const fixupFalsyValues: <T>(value: T) => string | T; |
@@ -93,5 +93,8 @@ import { compareDates, compareTimestamps } from '../date-utils/compare-dates.js'; | ||
} | ||
export function propertyFilter(items, query, _a) { | ||
var filteringFunction = _a.filteringFunction, filteringProperties = _a.filteringProperties; | ||
var filteringPropertiesMap = filteringProperties.reduce(function (acc, _a) { | ||
export function createPropertyFilterPredicate(propertyFiltering, query) { | ||
if (query === void 0) { query = { tokens: [], operation: 'and' }; } | ||
if (!propertyFiltering) { | ||
return null; | ||
} | ||
var filteringPropertiesMap = propertyFiltering.filteringProperties.reduce(function (acc, _a) { | ||
var _b; | ||
@@ -113,4 +116,4 @@ var key = _a.key, operators = _a.operators, defaultOperator = _a.defaultOperator; | ||
}, {}); | ||
var filter = filteringFunction || defaultFilteringFunction(filteringPropertiesMap); | ||
return items.filter(function (item) { return filter(item, query); }); | ||
var filteringFunction = propertyFiltering.filteringFunction || defaultFilteringFunction(filteringPropertiesMap); | ||
return function (item) { return filteringFunction(item, query); }; | ||
} | ||
@@ -117,0 +120,0 @@ export var fixupFalsyValues = function (value) { |
@@ -1,2 +0,2 @@ | ||
import { SortingState } from '../interfaces'; | ||
export declare function sort<T>(items: ReadonlyArray<T>, state: SortingState<T> | undefined): ReadonlyArray<T>; | ||
import { SortingState, UseCollectionOptions } from '../interfaces'; | ||
export declare function createComparator<T>(sorting: UseCollectionOptions<T>['sorting'], state: SortingState<T> | undefined): null | ((a: T, b: T) => number); |
function getSorter(sortingField) { | ||
if (!sortingField) { | ||
return null; | ||
} | ||
return function (row1, row2) { | ||
@@ -17,19 +20,10 @@ var _a, _b; | ||
} | ||
export function sort(items, state) { | ||
if (!state) { | ||
return items; | ||
export function createComparator(sorting, state) { | ||
var _a; | ||
if (!sorting || !state) { | ||
return null; | ||
} | ||
var sortingColumn = state.sortingColumn; | ||
var comparator = 'sortingComparator' in sortingColumn | ||
? sortingColumn.sortingComparator | ||
: sortingColumn.sortingField | ||
? getSorter(sortingColumn.sortingField) | ||
: undefined; | ||
if (!comparator) { | ||
return items; | ||
} | ||
var sorted = items.slice(); | ||
var direction = state.isDescending ? -1 : 1; | ||
sorted.sort(function (a, b) { return comparator(a, b) * direction; }); | ||
return sorted; | ||
var comparator = (_a = state.sortingColumn.sortingComparator) !== null && _a !== void 0 ? _a : getSorter(state.sortingColumn.sortingField); | ||
return comparator ? function (a, b) { return comparator(a, b) * direction; } : null; | ||
} |
{ | ||
"commit": "b0d7abfa5278acf76c2ad882335e07263177133d" | ||
"commit": "d51d7f9277c49212a8fc52bb825dc1f78eddfe44" | ||
} |
@@ -58,4 +58,4 @@ { | ||
"type": "module", | ||
"version": "1.0.27", | ||
"version": "1.0.28", | ||
"license": "Apache-2.0" | ||
} |
84449
64
1569