@wordpress/dataviews 0.9.0 → 1.1.0
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.
- package/CHANGELOG.md +8 -0
- package/README.md +0 -8
- package/build/add-filter.js.map +1 -1
- package/build/bulk-actions.js.map +1 -1
- package/build/constants.js +1 -26
- package/build/constants.js.map +1 -1
- package/build/dataviews.js +3 -6
- package/build/dataviews.js.map +1 -1
- package/build/dropdown-menu-helper.js.map +1 -1
- package/build/filter-and-sort-data-view.js +72 -65
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/filter-summary.js +4 -2
- package/build/filter-summary.js.map +1 -1
- package/build/filters.js.map +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/item-actions.js.map +1 -1
- package/build/layouts.js +38 -0
- package/build/layouts.js.map +1 -0
- package/build/lock-unlock.js.map +1 -1
- package/build/normalize-fields.js +7 -2
- package/build/normalize-fields.js.map +1 -1
- package/build/pagination.js.map +1 -1
- package/build/reset-filters.js.map +1 -1
- package/build/search-widget.js +5 -4
- package/build/search-widget.js.map +1 -1
- package/build/search.js.map +1 -1
- package/build/single-selection-checkbox.js +1 -1
- package/build/single-selection-checkbox.js.map +1 -1
- package/build/types.js +6 -0
- package/build/types.js.map +1 -0
- package/build/utils.js.map +1 -1
- package/build/view-actions.js +2 -1
- package/build/view-actions.js.map +1 -1
- package/build/view-grid.js +43 -15
- package/build/view-grid.js.map +1 -1
- package/build/view-list.js +4 -22
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +5 -11
- package/build/view-table.js.map +1 -1
- package/build-module/add-filter.js.map +1 -1
- package/build-module/bulk-actions.js.map +1 -1
- package/build-module/constants.js +1 -25
- package/build-module/constants.js.map +1 -1
- package/build-module/dataviews.js +3 -6
- package/build-module/dataviews.js.map +1 -1
- package/build-module/dropdown-menu-helper.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +72 -65
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/filter-summary.js +3 -2
- package/build-module/filter-summary.js.map +1 -1
- package/build-module/filters.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/item-actions.js.map +1 -1
- package/build-module/layouts.js +30 -0
- package/build-module/layouts.js.map +1 -0
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/normalize-fields.js +7 -2
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/pagination.js.map +1 -1
- package/build-module/reset-filters.js.map +1 -1
- package/build-module/search-widget.js +4 -3
- package/build-module/search-widget.js.map +1 -1
- package/build-module/search.js.map +1 -1
- package/build-module/single-selection-checkbox.js +1 -1
- package/build-module/single-selection-checkbox.js.map +1 -1
- package/build-module/types.js +2 -0
- package/build-module/types.js.map +1 -0
- package/build-module/utils.js.map +1 -1
- package/build-module/view-actions.js +2 -1
- package/build-module/view-actions.js.map +1 -1
- package/build-module/view-grid.js +43 -15
- package/build-module/view-grid.js.map +1 -1
- package/build-module/view-list.js +6 -24
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +5 -11
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +60 -45
- package/build-style/style.css +60 -45
- package/build-types/constants.d.ts +45 -0
- package/build-types/constants.d.ts.map +1 -0
- package/build-types/filter-and-sort-data-view.d.ts +18 -0
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -0
- package/build-types/normalize-fields.d.ts +12 -0
- package/build-types/normalize-fields.d.ts.map +1 -0
- package/build-types/types.d.ts +122 -0
- package/build-types/types.d.ts.map +1 -0
- package/package.json +11 -11
- package/src/{constants.js → constants.ts} +1 -35
- package/src/dataviews.js +2 -5
- package/src/filter-and-sort-data-view.ts +164 -0
- package/src/filter-summary.js +4 -4
- package/src/index.js +1 -1
- package/src/layouts.js +39 -0
- package/src/normalize-fields.ts +23 -0
- package/src/search-widget.js +4 -3
- package/src/single-selection-checkbox.js +1 -1
- package/src/stories/fixtures.js +0 -2
- package/src/style.scss +65 -51
- package/src/types.ts +144 -0
- package/src/view-actions.js +2 -1
- package/src/view-grid.js +91 -52
- package/src/view-list.js +4 -24
- package/src/view-table.js +7 -11
- package/tsconfig.json +20 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/src/filter-and-sort-data-view.js +0 -154
- package/src/normalize-fields.js +0 -17
package/src/view-table.js
CHANGED
|
@@ -7,7 +7,6 @@ import classnames from 'classnames';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { __ } from '@wordpress/i18n';
|
|
10
|
-
import { useAsyncList } from '@wordpress/compose';
|
|
11
10
|
import { unseen, funnel } from '@wordpress/icons';
|
|
12
11
|
import {
|
|
13
12
|
Button,
|
|
@@ -219,7 +218,9 @@ function BulkSelectionCheckbox( {
|
|
|
219
218
|
onSelectionChange( selectableItems );
|
|
220
219
|
}
|
|
221
220
|
} }
|
|
222
|
-
label={
|
|
221
|
+
aria-label={
|
|
222
|
+
areAllSelected ? __( 'Deselect all' ) : __( 'Select all' )
|
|
223
|
+
}
|
|
223
224
|
/>
|
|
224
225
|
);
|
|
225
226
|
}
|
|
@@ -299,8 +300,7 @@ function TableRow( {
|
|
|
299
300
|
<td
|
|
300
301
|
className="dataviews-view-table__checkbox-column"
|
|
301
302
|
style={ {
|
|
302
|
-
width:
|
|
303
|
-
minWidth: 20,
|
|
303
|
+
width: '1%',
|
|
304
304
|
} }
|
|
305
305
|
>
|
|
306
306
|
<div className="dataviews-view-table__cell-content-wrapper">
|
|
@@ -369,7 +369,6 @@ function ViewTable( {
|
|
|
369
369
|
data,
|
|
370
370
|
getItemId,
|
|
371
371
|
isLoading = false,
|
|
372
|
-
deferredRendering,
|
|
373
372
|
selection,
|
|
374
373
|
onSelectionChange,
|
|
375
374
|
setOpenedFilter,
|
|
@@ -386,7 +385,6 @@ function ViewTable( {
|
|
|
386
385
|
}
|
|
387
386
|
} );
|
|
388
387
|
|
|
389
|
-
const asyncData = useAsyncList( data );
|
|
390
388
|
const tableNoticeId = useId();
|
|
391
389
|
|
|
392
390
|
if ( nextHeaderMenuToFocus ) {
|
|
@@ -409,8 +407,7 @@ function ViewTable( {
|
|
|
409
407
|
! view.hiddenFields.includes( field.id ) &&
|
|
410
408
|
! [ view.layout.mediaField ].includes( field.id )
|
|
411
409
|
);
|
|
412
|
-
const
|
|
413
|
-
const hasData = !! usedData?.length;
|
|
410
|
+
const hasData = !! data?.length;
|
|
414
411
|
const sortValues = { asc: 'ascending', desc: 'descending' };
|
|
415
412
|
|
|
416
413
|
const primaryField = fields.find(
|
|
@@ -430,8 +427,7 @@ function ViewTable( {
|
|
|
430
427
|
<th
|
|
431
428
|
className="dataviews-view-table__checkbox-column"
|
|
432
429
|
style={ {
|
|
433
|
-
width:
|
|
434
|
-
minWidth: 20,
|
|
430
|
+
width: '1%',
|
|
435
431
|
} }
|
|
436
432
|
data-field-id="selection"
|
|
437
433
|
scope="col"
|
|
@@ -502,7 +498,7 @@ function ViewTable( {
|
|
|
502
498
|
</thead>
|
|
503
499
|
<tbody>
|
|
504
500
|
{ hasData &&
|
|
505
|
-
|
|
501
|
+
data.map( ( item, index ) => (
|
|
506
502
|
<TableRow
|
|
507
503
|
key={ getItemId( item ) }
|
|
508
504
|
item={ item }
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig.json",
|
|
3
|
+
"extends": "../../tsconfig.base.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"rootDir": "src",
|
|
6
|
+
"declarationDir": "build-types"
|
|
7
|
+
},
|
|
8
|
+
"references": [
|
|
9
|
+
{ "path": "../a11y" },
|
|
10
|
+
{ "path": "../components" },
|
|
11
|
+
{ "path": "../compose" },
|
|
12
|
+
{ "path": "../element" },
|
|
13
|
+
{ "path": "../i18n" },
|
|
14
|
+
{ "path": "../icons" },
|
|
15
|
+
{ "path": "../keycodes" },
|
|
16
|
+
{ "path": "../primitives" },
|
|
17
|
+
{ "path": "../private-apis" }
|
|
18
|
+
],
|
|
19
|
+
"include": [ "src/**/*.ts", "src/**/*.tsx" ]
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../i18n/build-types/sprintf.d.ts","../hooks/build-types/createAddHook.d.ts","../hooks/build-types/createRemoveHook.d.ts","../hooks/build-types/createHasHook.d.ts","../hooks/build-types/createDoingHook.d.ts","../hooks/build-types/createDidHook.d.ts","../hooks/build-types/index.d.ts","../hooks/build-types/createHooks.d.ts","../i18n/build-types/create-i18n.d.ts","../i18n/build-types/default-i18n.d.ts","../i18n/build-types/index.d.ts","./src/constants.ts","../../node_modules/remove-accents/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","./src/types.ts","./src/normalize-fields.ts","./src/filter-and-sort-data-view.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","886e50ef125efb7878f744e86908884c0133e7a6d9d80013f421b0cd8fb2af94",{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},"2f1fe46a7a4e25a4a414d5491c7b39b695a6f37e97a1bdfeb71d430f98c3ed10","faf78d76e0042f05c6ad2eb38ee410cd4ea2854e5f5aff14f9b328d0a8115d62","d238c17667e457cba3da40546d2ef06876c5e5828df09c6b8404f223f189bb7d","a9c883297d78a7255479719aa87fb89b716f10c8c8936642bcb95522de3ca774","4f8ff9897ced0fe4b19defefb2db74f9448f04bca3ded248202fcc1a7bf11f02","c02d9d4c463913d817b35147c866bdb14c8ccba6fd06255877317dace5258781","6110b1abe60e43633e27444dfd81bbc6b5a07468549a985500d0991106b1e998","b3920d0dae5ffb54b3b8a4b6c53ce29e38a67f06b9595fee369ef1e37a3b5db4","fe6d71e5f4b524eab952a9e3cbb0e54abb2d0335cb2b47d91b00095b1613bcff","0beaa0562c80cdd93e5ab0dc9d1b314921afddfa8ee3cb976153ac620c89983f","2a49b24214a9709c04c7d21d99f1473058bd3b4d1310655288347a4c8862da30",{"version":"cda04b900fe4736ed8cf237703f24333f2b117851e9473bfaaaebc009950d64d","signature":"4e32d43c4f79c6d95ba6940135f4ccf42b160182f11181550a3a624e9d4dc7d5"},"ddf9ae86061a50cb95914a7e59cca5737fae145d23bbcc0009d65bbd27b0df43",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},{"version":"daafd945fef17e0871e19abcea868140cc595c409aaeccb6a697f0db5b220aa8","signature":"ae71d2310d85ac6b59765af7bbd89faf1b7b59976266a461c8e320deac5f0a37"},{"version":"5e8430d57e4799215d1d303bd346836e045c6360f06f46cc6fc3089c6bceeffd","signature":"05891eb963d78902a71cf9dd3c20b6c93e1e6a66cb96a7b600636e129f3c7d03"},{"version":"dace3b195f6b99852123d8b2a8a8e9633cbdcbbbcb374ce19e978abdc68cffca","signature":"aafdcaa9ec6a60e3dc38c55da1d8afac98e98634f27e501ec63a33e3028d1f76"}],"root":[80,[87,89]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"checkJs":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[82,83,84,85],[79],[80,81,87,88],[87],[86],[75],[70,71,72,73,74,75],[70,71,72,73,74,76],[75,76],[77],[69,77,78]],"referencedMap":[[86,1],[80,2],[89,3],[88,4],[87,5],[70,6],[74,6],[73,6],[72,6],[76,7],[71,6],[75,8],[77,9],[78,10],[79,11]],"exportedModulesMap":[[86,1],[89,4],[88,4],[87,5],[70,6],[74,6],[73,6],[72,6],[76,7],[71,6],[75,8],[77,9],[78,10],[79,11]],"semanticDiagnosticsPerFile":[84,82,86,85,83,81,67,68,12,14,13,2,15,16,17,18,19,20,21,22,3,23,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,58,56,57,59,60,10,1,61,11,65,63,62,66,64,80,89,88,87,70,74,73,72,76,71,75,77,78,79,69],"latestChangedDtsFile":"./build-types/filter-and-sort-data-view.d.ts"},"version":"5.4.5"}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import removeAccents from 'remove-accents';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Internal dependencies
|
|
8
|
-
*/
|
|
9
|
-
import {
|
|
10
|
-
OPERATOR_IS,
|
|
11
|
-
OPERATOR_IS_NOT,
|
|
12
|
-
OPERATOR_IS_NONE,
|
|
13
|
-
OPERATOR_IS_ANY,
|
|
14
|
-
OPERATOR_IS_ALL,
|
|
15
|
-
OPERATOR_IS_NOT_ALL,
|
|
16
|
-
} from './constants';
|
|
17
|
-
import { normalizeFields } from './normalize-fields';
|
|
18
|
-
|
|
19
|
-
function normalizeSearchInput( input = '' ) {
|
|
20
|
-
return removeAccents( input.trim().toLowerCase() );
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const EMPTY_ARRAY = [];
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Applies the filtering, sorting and pagination to the raw data based on the view configuration.
|
|
27
|
-
*
|
|
28
|
-
* @param {any[]} data Raw data.
|
|
29
|
-
* @param {Object} view View config.
|
|
30
|
-
* @param {Object[]} fields Fields config.
|
|
31
|
-
*
|
|
32
|
-
* @return {Object} { data: any[], paginationInfo: { totalItems: number, totalPages: number } }
|
|
33
|
-
*/
|
|
34
|
-
export function filterSortAndPaginate( data, view, fields ) {
|
|
35
|
-
if ( ! data ) {
|
|
36
|
-
return {
|
|
37
|
-
data: EMPTY_ARRAY,
|
|
38
|
-
paginationInfo: { totalItems: 0, totalPages: 0 },
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
const _fields = normalizeFields( fields );
|
|
42
|
-
let filteredData = [ ...data ];
|
|
43
|
-
// Handle global search.
|
|
44
|
-
if ( view.search ) {
|
|
45
|
-
const normalizedSearch = normalizeSearchInput( view.search );
|
|
46
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
47
|
-
return _fields
|
|
48
|
-
.filter( ( field ) => field.enableGlobalSearch )
|
|
49
|
-
.map( ( field ) => {
|
|
50
|
-
return normalizeSearchInput( field.getValue( { item } ) );
|
|
51
|
-
} )
|
|
52
|
-
.some( ( field ) => field.includes( normalizedSearch ) );
|
|
53
|
-
} );
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if ( view.filters.length > 0 ) {
|
|
57
|
-
view.filters.forEach( ( filter ) => {
|
|
58
|
-
const field = _fields.find(
|
|
59
|
-
( _field ) => _field.id === filter.field
|
|
60
|
-
);
|
|
61
|
-
if (
|
|
62
|
-
filter.operator === OPERATOR_IS_ANY &&
|
|
63
|
-
filter?.value?.length > 0
|
|
64
|
-
) {
|
|
65
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
66
|
-
const fieldValue = field.getValue( { item } );
|
|
67
|
-
if ( Array.isArray( fieldValue ) ) {
|
|
68
|
-
return filter.value.some( ( filterValue ) =>
|
|
69
|
-
fieldValue.includes( filterValue )
|
|
70
|
-
);
|
|
71
|
-
} else if ( typeof fieldValue === 'string' ) {
|
|
72
|
-
return filter.value.includes( fieldValue );
|
|
73
|
-
}
|
|
74
|
-
return false;
|
|
75
|
-
} );
|
|
76
|
-
} else if (
|
|
77
|
-
filter.operator === OPERATOR_IS_NONE &&
|
|
78
|
-
filter?.value?.length > 0
|
|
79
|
-
) {
|
|
80
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
81
|
-
const fieldValue = field.getValue( { item } );
|
|
82
|
-
if ( Array.isArray( fieldValue ) ) {
|
|
83
|
-
return ! filter.value.some( ( filterValue ) =>
|
|
84
|
-
fieldValue.includes( filterValue )
|
|
85
|
-
);
|
|
86
|
-
} else if ( typeof fieldValue === 'string' ) {
|
|
87
|
-
return ! filter.value.includes( fieldValue );
|
|
88
|
-
}
|
|
89
|
-
return false;
|
|
90
|
-
} );
|
|
91
|
-
} else if (
|
|
92
|
-
filter.operator === OPERATOR_IS_ALL &&
|
|
93
|
-
filter?.value?.length > 0
|
|
94
|
-
) {
|
|
95
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
96
|
-
return filter.value.every( ( value ) => {
|
|
97
|
-
return field.getValue( { item } ).includes( value );
|
|
98
|
-
} );
|
|
99
|
-
} );
|
|
100
|
-
} else if (
|
|
101
|
-
filter.operator === OPERATOR_IS_NOT_ALL &&
|
|
102
|
-
filter?.value?.length > 0
|
|
103
|
-
) {
|
|
104
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
105
|
-
return filter.value.every( ( value ) => {
|
|
106
|
-
return ! field.getValue( { item } ).includes( value );
|
|
107
|
-
} );
|
|
108
|
-
} );
|
|
109
|
-
} else if ( filter.operator === OPERATOR_IS ) {
|
|
110
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
111
|
-
return filter.value === field.getValue( { item } );
|
|
112
|
-
} );
|
|
113
|
-
} else if ( filter.operator === OPERATOR_IS_NOT ) {
|
|
114
|
-
filteredData = filteredData.filter( ( item ) => {
|
|
115
|
-
return filter.value !== field.getValue( { item } );
|
|
116
|
-
} );
|
|
117
|
-
}
|
|
118
|
-
} );
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Handle sorting.
|
|
122
|
-
if ( view.sort ) {
|
|
123
|
-
const fieldId = view.sort.field;
|
|
124
|
-
const fieldToSort = _fields.find( ( field ) => {
|
|
125
|
-
return field.id === fieldId;
|
|
126
|
-
} );
|
|
127
|
-
filteredData.sort( ( a, b ) => {
|
|
128
|
-
const valueA = fieldToSort.getValue( { item: a } ) ?? '';
|
|
129
|
-
const valueB = fieldToSort.getValue( { item: b } ) ?? '';
|
|
130
|
-
return view.sort.direction === 'asc'
|
|
131
|
-
? valueA.localeCompare( valueB )
|
|
132
|
-
: valueB.localeCompare( valueA );
|
|
133
|
-
} );
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Handle pagination.
|
|
137
|
-
const hasPagination = view.page && view.perPage;
|
|
138
|
-
const start = hasPagination ? ( view.page - 1 ) * view.perPage : 0;
|
|
139
|
-
const totalItems = filteredData?.length || 0;
|
|
140
|
-
const totalPages = hasPagination
|
|
141
|
-
? Math.ceil( totalItems / view.perPage )
|
|
142
|
-
: 1;
|
|
143
|
-
filteredData = hasPagination
|
|
144
|
-
? filteredData?.slice( start, start + view.perPage )
|
|
145
|
-
: filteredData;
|
|
146
|
-
|
|
147
|
-
return {
|
|
148
|
-
data: filteredData,
|
|
149
|
-
paginationInfo: {
|
|
150
|
-
totalItems,
|
|
151
|
-
totalPages,
|
|
152
|
-
},
|
|
153
|
-
};
|
|
154
|
-
}
|
package/src/normalize-fields.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Apply default values and normalize the fields config.
|
|
3
|
-
*
|
|
4
|
-
* @param {Object[]} fields Raw Fields.
|
|
5
|
-
* @return {Object[]} Normalized fields.
|
|
6
|
-
*/
|
|
7
|
-
export function normalizeFields( fields ) {
|
|
8
|
-
return fields.map( ( field ) => {
|
|
9
|
-
const getValue = field.getValue || ( ( { item } ) => item[ field.id ] );
|
|
10
|
-
|
|
11
|
-
return {
|
|
12
|
-
...field,
|
|
13
|
-
getValue,
|
|
14
|
-
render: field.render || getValue,
|
|
15
|
-
};
|
|
16
|
-
} );
|
|
17
|
-
}
|