@wordpress/dataviews 4.22.0 → 5.0.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 +39 -0
- package/README.md +147 -32
- package/build/components/dataviews/index.js +71 -37
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +15 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/{filter-summary.js → filter.js} +108 -17
- package/build/components/dataviews-filters/filter.js.map +1 -0
- package/build/components/dataviews-filters/index.js +21 -20
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-filters/input-widget.js +76 -0
- package/build/components/dataviews-filters/input-widget.js.map +1 -0
- package/build/components/dataviews-filters/search-widget.js +33 -39
- package/build/components/dataviews-filters/search-widget.js.map +1 -1
- package/build/components/dataviews-filters/utils.js +25 -0
- package/build/components/dataviews-filters/utils.js.map +1 -0
- package/build/components/dataviews-item-actions/index.js +1 -1
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +7 -2
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-pagination/index.js +4 -3
- package/build/components/dataviews-pagination/index.js.map +1 -1
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +10 -19
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/constants.js +83 -2
- package/build/constants.js.map +1 -1
- package/build/dataform-controls/boolean.js +42 -0
- package/build/dataform-controls/boolean.js.map +1 -0
- package/build/dataform-controls/checkbox.js +44 -0
- package/build/dataform-controls/checkbox.js.map +1 -0
- package/build/dataform-controls/datetime.js +96 -2
- package/build/dataform-controls/datetime.js.map +1 -1
- package/build/dataform-controls/email.js +48 -0
- package/build/dataform-controls/email.js.map +1 -0
- package/build/dataform-controls/index.js +9 -1
- package/build/dataform-controls/index.js.map +1 -1
- package/build/dataform-controls/integer.js +49 -1
- package/build/dataform-controls/integer.js.map +1 -1
- package/build/dataform-controls/select.js +1 -0
- package/build/dataform-controls/select.js.map +1 -1
- package/build/dataform-controls/text.js +3 -1
- package/build/dataform-controls/text.js.map +1 -1
- package/build/dataform-controls/toggle-group.js +52 -0
- package/build/dataform-controls/toggle-group.js.map +1 -0
- package/build/dataforms-layouts/data-form-layout.js +1 -1
- package/build/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build/dataforms-layouts/panel/index.js +14 -5
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +23 -4
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +89 -27
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +11 -6
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +9 -7
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +18 -13
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +46 -14
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +65 -0
- package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -0
- package/build/dataviews-layouts/utils/item-click-wrapper.js +77 -0
- package/build/dataviews-layouts/utils/item-click-wrapper.js.map +1 -0
- package/build/field-types/array.js +62 -0
- package/build/field-types/array.js.map +1 -0
- package/build/field-types/boolean.js +71 -0
- package/build/field-types/boolean.js.map +1 -0
- package/build/field-types/date.js +57 -0
- package/build/field-types/date.js.map +1 -0
- package/build/field-types/datetime.js +19 -1
- package/build/field-types/datetime.js.map +1 -1
- package/build/field-types/email.js +60 -0
- package/build/field-types/email.js.map +1 -0
- package/build/field-types/index.js +42 -1
- package/build/field-types/index.js.map +1 -1
- package/build/field-types/integer.js +23 -1
- package/build/field-types/integer.js.map +1 -1
- package/build/field-types/media.js +31 -0
- package/build/field-types/media.js.map +1 -0
- package/build/field-types/text.js +23 -1
- package/build/field-types/text.js.map +1 -1
- package/build/filter-and-sort-data-view.js +174 -11
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/normalize-fields.js +72 -11
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/utils.js +11 -19
- package/build/utils.js.map +1 -1
- package/build-module/components/dataviews/index.js +74 -40
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +16 -2
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/filter.js +309 -0
- package/build-module/components/dataviews-filters/filter.js.map +1 -0
- package/build-module/components/dataviews-filters/index.js +22 -21
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-filters/input-widget.js +69 -0
- package/build-module/components/dataviews-filters/input-widget.js.map +1 -0
- package/build-module/components/dataviews-filters/search-widget.js +31 -37
- package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
- package/build-module/components/dataviews-filters/utils.js +18 -0
- package/build-module/components/dataviews-filters/utils.js.map +1 -0
- package/build-module/components/dataviews-item-actions/index.js +1 -1
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +7 -2
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-pagination/index.js +4 -4
- package/build-module/components/dataviews-pagination/index.js.map +1 -1
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +9 -20
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/constants.js +82 -1
- package/build-module/constants.js.map +1 -1
- package/build-module/dataform-controls/boolean.js +35 -0
- package/build-module/dataform-controls/boolean.js.map +1 -0
- package/build-module/dataform-controls/checkbox.js +37 -0
- package/build-module/dataform-controls/checkbox.js.map +1 -0
- package/build-module/dataform-controls/datetime.js +98 -3
- package/build-module/dataform-controls/datetime.js.map +1 -1
- package/build-module/dataform-controls/email.js +41 -0
- package/build-module/dataform-controls/email.js.map +1 -0
- package/build-module/dataform-controls/index.js +9 -1
- package/build-module/dataform-controls/index.js.map +1 -1
- package/build-module/dataform-controls/integer.js +51 -3
- package/build-module/dataform-controls/integer.js.map +1 -1
- package/build-module/dataform-controls/select.js +1 -0
- package/build-module/dataform-controls/select.js.map +1 -1
- package/build-module/dataform-controls/text.js +3 -1
- package/build-module/dataform-controls/text.js.map +1 -1
- package/build-module/dataform-controls/toggle-group.js +45 -0
- package/build-module/dataform-controls/toggle-group.js.map +1 -0
- package/build-module/dataforms-layouts/data-form-layout.js +1 -1
- package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
- package/build-module/dataforms-layouts/panel/index.js +14 -5
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +23 -4
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +90 -29
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +11 -6
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +9 -7
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +18 -12
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +47 -16
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +58 -0
- package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +1 -0
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js +71 -0
- package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +1 -0
- package/build-module/field-types/array.js +57 -0
- package/build-module/field-types/array.js.map +1 -0
- package/build-module/field-types/boolean.js +65 -0
- package/build-module/field-types/boolean.js.map +1 -0
- package/build-module/field-types/date.js +51 -0
- package/build-module/field-types/date.js.map +1 -0
- package/build-module/field-types/datetime.js +19 -1
- package/build-module/field-types/datetime.js.map +1 -1
- package/build-module/field-types/email.js +54 -0
- package/build-module/field-types/email.js.map +1 -0
- package/build-module/field-types/index.js +42 -1
- package/build-module/field-types/index.js.map +1 -1
- package/build-module/field-types/integer.js +23 -1
- package/build-module/field-types/integer.js.map +1 -1
- package/build-module/field-types/media.js +25 -0
- package/build-module/field-types/media.js.map +1 -0
- package/build-module/field-types/text.js +23 -1
- package/build-module/field-types/text.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +175 -12
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/normalize-fields.js +72 -11
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/utils.js +10 -17
- package/build-module/utils.js.map +1 -1
- package/build-style/style-rtl.css +315 -13
- package/build-style/style.css +315 -13
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +24 -3
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts +10 -1
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
- package/build-types/components/dataviews/stories/index.story.d.ts +23 -4
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +14 -1
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/filter.d.ts +15 -0
- package/build-types/components/dataviews-filters/filter.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/index.d.ts +3 -8
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/input-widget.d.ts +13 -0
- package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/search-widget.d.ts +4 -5
- package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/utils.d.ts +6 -0
- package/build-types/components/dataviews-filters/utils.d.ts.map +1 -0
- package/build-types/components/dataviews-layout/index.d.ts +5 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-pagination/index.d.ts +1 -1
- package/build-types/components/dataviews-pagination/index.d.ts.map +1 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -2
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts +3 -4
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/components/stories/index.story.d.ts +63 -0
- package/build-types/components/stories/index.story.d.ts.map +1 -0
- package/build-types/constants.d.ts +20 -3
- package/build-types/constants.d.ts.map +1 -1
- package/build-types/dataform-controls/boolean.d.ts +6 -0
- package/build-types/dataform-controls/boolean.d.ts.map +1 -0
- package/build-types/dataform-controls/checkbox.d.ts +6 -0
- package/build-types/dataform-controls/checkbox.d.ts.map +1 -0
- package/build-types/dataform-controls/datetime.d.ts +1 -1
- package/build-types/dataform-controls/datetime.d.ts.map +1 -1
- package/build-types/dataform-controls/email.d.ts +6 -0
- package/build-types/dataform-controls/email.d.ts.map +1 -0
- package/build-types/dataform-controls/index.d.ts +1 -1
- package/build-types/dataform-controls/index.d.ts.map +1 -1
- package/build-types/dataform-controls/integer.d.ts +1 -4
- package/build-types/dataform-controls/integer.d.ts.map +1 -1
- package/build-types/dataform-controls/select.d.ts.map +1 -1
- package/build-types/dataform-controls/text.d.ts.map +1 -1
- package/build-types/dataform-controls/toggle-group.d.ts +6 -0
- package/build-types/dataform-controls/toggle-group.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts +2 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/index.d.ts +3 -3
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts +8 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/use-is-horizontal-scroll-end.d.ts +19 -0
- package/build-types/dataviews-layouts/table/use-is-horizontal-scroll-end.d.ts.map +1 -0
- package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts +15 -0
- package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -0
- package/build-types/field-types/array.d.ts +7 -0
- package/build-types/field-types/array.d.ts.map +1 -0
- package/build-types/field-types/boolean.d.ts +19 -0
- package/build-types/field-types/boolean.d.ts.map +1 -0
- package/build-types/field-types/date.d.ts +16 -0
- package/build-types/field-types/date.d.ts.map +1 -0
- package/build-types/field-types/datetime.d.ts +7 -1
- package/build-types/field-types/datetime.d.ts.map +1 -1
- package/build-types/field-types/email.d.ts +19 -0
- package/build-types/field-types/email.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts +2 -10
- package/build-types/field-types/index.d.ts.map +1 -1
- package/build-types/field-types/integer.d.ts +7 -1
- package/build-types/field-types/integer.d.ts.map +1 -1
- package/build-types/field-types/media.d.ts +16 -0
- package/build-types/field-types/media.d.ts.map +1 -0
- package/build-types/field-types/text.d.ts +7 -1
- package/build-types/field-types/text.d.ts.map +1 -1
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +74 -8
- package/build-types/types.d.ts.map +1 -1
- package/build-types/utils.d.ts +5 -2
- package/build-types/utils.d.ts.map +1 -1
- package/build-wp/index.js +3299 -1182
- package/package.json +18 -12
- package/src/components/dataform/stories/index.story.tsx +41 -20
- package/src/components/dataviews/index.tsx +108 -43
- package/src/components/dataviews/stories/fixtures.tsx +135 -69
- package/src/components/dataviews/stories/index.story.tsx +265 -7
- package/src/components/dataviews/stories/style.css +24 -3
- package/src/components/dataviews/style.scss +27 -0
- package/src/components/dataviews-context/index.ts +30 -2
- package/src/components/dataviews-filters/filter.tsx +603 -0
- package/src/components/dataviews-filters/index.tsx +23 -29
- package/src/components/dataviews-filters/input-widget.tsx +91 -0
- package/src/components/dataviews-filters/search-widget.tsx +51 -48
- package/src/components/dataviews-filters/style.scss +117 -14
- package/src/components/dataviews-filters/utils.ts +25 -0
- package/src/components/dataviews-item-actions/index.tsx +1 -1
- package/src/components/dataviews-layout/index.tsx +8 -1
- package/src/components/dataviews-pagination/index.tsx +4 -4
- package/src/components/dataviews-selection-checkbox/index.tsx +2 -2
- package/src/components/dataviews-view-config/index.tsx +10 -18
- package/src/components/stories/index.story.tsx +372 -0
- package/src/constants.ts +116 -1
- package/src/dataform-controls/boolean.tsx +30 -0
- package/src/dataform-controls/checkbox.tsx +31 -0
- package/src/dataform-controls/datetime.tsx +106 -2
- package/src/dataform-controls/email.tsx +42 -0
- package/src/dataform-controls/index.tsx +8 -0
- package/src/dataform-controls/integer.tsx +75 -1
- package/src/dataform-controls/select.tsx +1 -0
- package/src/dataform-controls/style.scss +5 -0
- package/src/dataform-controls/text.tsx +2 -1
- package/src/dataform-controls/toggle-group.tsx +59 -0
- package/src/dataforms-layouts/data-form-layout.tsx +1 -1
- package/src/dataforms-layouts/panel/index.tsx +19 -7
- package/src/dataforms-layouts/panel/style.scss +8 -1
- package/src/dataforms-layouts/regular/index.tsx +50 -17
- package/src/dataforms-layouts/regular/style.scss +4 -1
- package/src/dataviews-layouts/grid/index.tsx +180 -68
- package/src/dataviews-layouts/grid/style.scss +8 -0
- package/src/dataviews-layouts/list/index.tsx +12 -5
- package/src/dataviews-layouts/table/column-header-menu.tsx +10 -8
- package/src/dataviews-layouts/table/column-primary.tsx +26 -13
- package/src/dataviews-layouts/table/index.tsx +74 -10
- package/src/dataviews-layouts/table/style.scss +37 -1
- package/src/dataviews-layouts/table/use-is-horizontal-scroll-end.ts +82 -0
- package/src/dataviews-layouts/utils/item-click-wrapper.tsx +93 -0
- package/src/field-types/array.tsx +75 -0
- package/src/field-types/boolean.tsx +66 -0
- package/src/field-types/date.ts +56 -0
- package/src/field-types/datetime.tsx +46 -2
- package/src/field-types/email.tsx +79 -0
- package/src/field-types/index.tsx +50 -3
- package/src/field-types/integer.tsx +53 -2
- package/src/field-types/media.tsx +28 -0
- package/src/field-types/text.tsx +41 -2
- package/src/filter-and-sort-data-view.ts +270 -10
- package/src/normalize-fields.ts +116 -13
- package/src/test/dataviews.tsx +20 -2
- package/src/test/filter-and-sort-data-view.js +601 -25
- package/src/test/normalize-fields.ts +155 -0
- package/src/types.ts +112 -9
- package/src/utils.ts +10 -33
- package/tsconfig.json +2 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/dataviews-filters/filter-summary.js.map +0 -1
- package/build/dataviews-layouts/utils/get-clickable-item-props.js +0 -36
- package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +0 -1
- package/build-module/components/dataviews-filters/filter-summary.js +0 -218
- package/build-module/components/dataviews-filters/filter-summary.js.map +0 -1
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +0 -30
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +0 -1
- package/build-types/components/dataviews-filters/filter-summary.d.ts +0 -14
- package/build-types/components/dataviews-filters/filter-summary.d.ts.map +0 -1
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +0 -19
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +0 -1
- package/src/components/dataviews-filters/filter-summary.tsx +0 -338
- package/src/dataviews-layouts/utils/get-clickable-item-props.ts +0 -39
|
@@ -2,9 +2,16 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import { default as email } from './email';
|
|
5
6
|
import { default as integer } from './integer';
|
|
6
7
|
import { default as text } from './text';
|
|
7
8
|
import { default as datetime } from './datetime';
|
|
9
|
+
import { default as date } from './date';
|
|
10
|
+
import { default as boolean } from './boolean';
|
|
11
|
+
import { default as media } from './media';
|
|
12
|
+
import { default as array } from './array';
|
|
13
|
+
import { renderFromElements } from '../utils';
|
|
14
|
+
import { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../constants';
|
|
8
15
|
|
|
9
16
|
/**
|
|
10
17
|
*
|
|
@@ -13,6 +20,9 @@ import { default as datetime } from './datetime';
|
|
|
13
20
|
* @return A field type definition.
|
|
14
21
|
*/
|
|
15
22
|
export default function getFieldTypeDefinition(type) {
|
|
23
|
+
if ('email' === type) {
|
|
24
|
+
return email;
|
|
25
|
+
}
|
|
16
26
|
if ('integer' === type) {
|
|
17
27
|
return integer;
|
|
18
28
|
}
|
|
@@ -22,6 +32,21 @@ export default function getFieldTypeDefinition(type) {
|
|
|
22
32
|
if ('datetime' === type) {
|
|
23
33
|
return datetime;
|
|
24
34
|
}
|
|
35
|
+
if ('date' === type) {
|
|
36
|
+
return date;
|
|
37
|
+
}
|
|
38
|
+
if ('boolean' === type) {
|
|
39
|
+
return boolean;
|
|
40
|
+
}
|
|
41
|
+
if ('media' === type) {
|
|
42
|
+
return media;
|
|
43
|
+
}
|
|
44
|
+
if ('array' === type) {
|
|
45
|
+
return array;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// This is a fallback for fields that don't provide a type.
|
|
49
|
+
// It can be removed when the field.type is mandatory.
|
|
25
50
|
return {
|
|
26
51
|
sort: (a, b, direction) => {
|
|
27
52
|
if (typeof a === 'number' && typeof b === 'number') {
|
|
@@ -38,7 +63,23 @@ export default function getFieldTypeDefinition(type) {
|
|
|
38
63
|
}
|
|
39
64
|
return true;
|
|
40
65
|
},
|
|
41
|
-
Edit:
|
|
66
|
+
Edit: null,
|
|
67
|
+
render: ({
|
|
68
|
+
item,
|
|
69
|
+
field
|
|
70
|
+
}) => {
|
|
71
|
+
return field.elements ? renderFromElements({
|
|
72
|
+
item,
|
|
73
|
+
field
|
|
74
|
+
}) : field.getValue({
|
|
75
|
+
item
|
|
76
|
+
});
|
|
77
|
+
},
|
|
78
|
+
enableSorting: true,
|
|
79
|
+
filterBy: {
|
|
80
|
+
defaultOperators: [OPERATOR_IS, OPERATOR_IS_NOT],
|
|
81
|
+
validOperators: ALL_OPERATORS
|
|
82
|
+
}
|
|
42
83
|
};
|
|
43
84
|
}
|
|
44
85
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","integer","text","datetime","getFieldTypeDefinition","type","sort","a","b","direction","localeCompare","isValid","value","context","elements","validValues","map","f","includes","Edit"],"sources":["@wordpress/dataviews/src/field-types/index.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {
|
|
1
|
+
{"version":3,"names":["default","email","integer","text","datetime","date","boolean","media","array","renderFromElements","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","getFieldTypeDefinition","type","sort","a","b","direction","localeCompare","isValid","value","context","elements","validValues","map","f","includes","Edit","render","item","field","getValue","enableSorting","filterBy","defaultOperators","validOperators"],"sources":["@wordpress/dataviews/src/field-types/index.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tFieldType,\n\tFieldTypeDefinition,\n\tSortDirection,\n\tValidationContext,\n} from '../types';\nimport { default as email } from './email';\nimport { default as integer } from './integer';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\nimport { default as date } from './date';\nimport { default as boolean } from './boolean';\nimport { default as media } from './media';\nimport { default as array } from './array';\nimport { renderFromElements } from '../utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../constants';\n\n/**\n *\n * @param {FieldType} type The field type definition to get.\n *\n * @return A field type definition.\n */\nexport default function getFieldTypeDefinition< Item >(\n\ttype?: FieldType\n): FieldTypeDefinition< Item > {\n\tif ( 'email' === type ) {\n\t\treturn email;\n\t}\n\n\tif ( 'integer' === type ) {\n\t\treturn integer;\n\t}\n\n\tif ( 'text' === type ) {\n\t\treturn text;\n\t}\n\n\tif ( 'datetime' === type ) {\n\t\treturn datetime;\n\t}\n\n\tif ( 'date' === type ) {\n\t\treturn date;\n\t}\n\n\tif ( 'boolean' === type ) {\n\t\treturn boolean;\n\t}\n\n\tif ( 'media' === type ) {\n\t\treturn media;\n\t}\n\n\tif ( 'array' === type ) {\n\t\treturn array;\n\t}\n\n\t// This is a fallback for fields that don't provide a type.\n\t// It can be removed when the field.type is mandatory.\n\treturn {\n\t\tsort: ( a: any, b: any, direction: SortDirection ) => {\n\t\t\tif ( typeof a === 'number' && typeof b === 'number' ) {\n\t\t\t\treturn direction === 'asc' ? a - b : b - a;\n\t\t\t}\n\n\t\t\treturn direction === 'asc'\n\t\t\t\t? a.localeCompare( b )\n\t\t\t\t: b.localeCompare( a );\n\t\t},\n\t\tisValid: ( value: any, context?: ValidationContext ) => {\n\t\t\tif ( context?.elements ) {\n\t\t\t\tconst validValues = context?.elements?.map( ( f ) => f.value );\n\t\t\t\tif ( ! validValues.includes( value ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\tEdit: null,\n\t\trender: ( { item, field }: DataViewRenderFieldProps< Item > ) => {\n\t\t\treturn field.elements\n\t\t\t\t? renderFromElements( { item, field } )\n\t\t\t\t: field.getValue( { item } );\n\t\t},\n\t\tenableSorting: true,\n\t\tfilterBy: {\n\t\t\tdefaultOperators: [ OPERATOR_IS, OPERATOR_IS_NOT ],\n\t\t\tvalidOperators: ALL_OPERATORS,\n\t\t},\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;;AAQA,SAASA,OAAO,IAAIC,KAAK,QAAQ,SAAS;AAC1C,SAASD,OAAO,IAAIE,OAAO,QAAQ,WAAW;AAC9C,SAASF,OAAO,IAAIG,IAAI,QAAQ,QAAQ;AACxC,SAASH,OAAO,IAAII,QAAQ,QAAQ,YAAY;AAChD,SAASJ,OAAO,IAAIK,IAAI,QAAQ,QAAQ;AACxC,SAASL,OAAO,IAAIM,OAAO,QAAQ,WAAW;AAC9C,SAASN,OAAO,IAAIO,KAAK,QAAQ,SAAS;AAC1C,SAASP,OAAO,IAAIQ,KAAK,QAAQ,SAAS;AAC1C,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,SAASC,aAAa,EAAEC,WAAW,EAAEC,eAAe,QAAQ,cAAc;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,sBAAsBA,CAC7CC,IAAgB,EACc;EAC9B,IAAK,OAAO,KAAKA,IAAI,EAAG;IACvB,OAAOb,KAAK;EACb;EAEA,IAAK,SAAS,KAAKa,IAAI,EAAG;IACzB,OAAOZ,OAAO;EACf;EAEA,IAAK,MAAM,KAAKY,IAAI,EAAG;IACtB,OAAOX,IAAI;EACZ;EAEA,IAAK,UAAU,KAAKW,IAAI,EAAG;IAC1B,OAAOV,QAAQ;EAChB;EAEA,IAAK,MAAM,KAAKU,IAAI,EAAG;IACtB,OAAOT,IAAI;EACZ;EAEA,IAAK,SAAS,KAAKS,IAAI,EAAG;IACzB,OAAOR,OAAO;EACf;EAEA,IAAK,OAAO,KAAKQ,IAAI,EAAG;IACvB,OAAOP,KAAK;EACb;EAEA,IAAK,OAAO,KAAKO,IAAI,EAAG;IACvB,OAAON,KAAK;EACb;;EAEA;EACA;EACA,OAAO;IACNO,IAAI,EAAEA,CAAEC,CAAM,EAAEC,CAAM,EAAEC,SAAwB,KAAM;MACrD,IAAK,OAAOF,CAAC,KAAK,QAAQ,IAAI,OAAOC,CAAC,KAAK,QAAQ,EAAG;QACrD,OAAOC,SAAS,KAAK,KAAK,GAAGF,CAAC,GAAGC,CAAC,GAAGA,CAAC,GAAGD,CAAC;MAC3C;MAEA,OAAOE,SAAS,KAAK,KAAK,GACvBF,CAAC,CAACG,aAAa,CAAEF,CAAE,CAAC,GACpBA,CAAC,CAACE,aAAa,CAAEH,CAAE,CAAC;IACxB,CAAC;IACDI,OAAO,EAAEA,CAAEC,KAAU,EAAEC,OAA2B,KAAM;MACvD,IAAKA,OAAO,EAAEC,QAAQ,EAAG;QACxB,MAAMC,WAAW,GAAGF,OAAO,EAAEC,QAAQ,EAAEE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACL,KAAM,CAAC;QAC9D,IAAK,CAAEG,WAAW,CAACG,QAAQ,CAAEN,KAAM,CAAC,EAAG;UACtC,OAAO,KAAK;QACb;MACD;MAEA,OAAO,IAAI;IACZ,CAAC;IACDO,IAAI,EAAE,IAAI;IACVC,MAAM,EAAEA,CAAE;MAAEC,IAAI;MAAEC;IAAwC,CAAC,KAAM;MAChE,OAAOA,KAAK,CAACR,QAAQ,GAClBd,kBAAkB,CAAE;QAAEqB,IAAI;QAAEC;MAAM,CAAE,CAAC,GACrCA,KAAK,CAACC,QAAQ,CAAE;QAAEF;MAAK,CAAE,CAAC;IAC9B,CAAC;IACDG,aAAa,EAAE,IAAI;IACnBC,QAAQ,EAAE;MACTC,gBAAgB,EAAE,CAAExB,WAAW,EAAEC,eAAe,CAAE;MAClDwB,cAAc,EAAE1B;IACjB;EACD,CAAC;AACF","ignoreList":[]}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import { renderFromElements } from '../utils';
|
|
6
|
+
import { OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_LESS_THAN, OPERATOR_GREATER_THAN, OPERATOR_LESS_THAN_OR_EQUAL, OPERATOR_GREATER_THAN_OR_EQUAL, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL, OPERATOR_BETWEEN } from '../constants';
|
|
5
7
|
function sort(a, b, direction) {
|
|
6
8
|
return direction === 'asc' ? a - b : b - a;
|
|
7
9
|
}
|
|
@@ -24,6 +26,26 @@ function isValid(value, context) {
|
|
|
24
26
|
export default {
|
|
25
27
|
sort,
|
|
26
28
|
isValid,
|
|
27
|
-
Edit: 'integer'
|
|
29
|
+
Edit: 'integer',
|
|
30
|
+
render: ({
|
|
31
|
+
item,
|
|
32
|
+
field
|
|
33
|
+
}) => {
|
|
34
|
+
return field.elements ? renderFromElements({
|
|
35
|
+
item,
|
|
36
|
+
field
|
|
37
|
+
}) : field.getValue({
|
|
38
|
+
item
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
enableSorting: true,
|
|
42
|
+
filterBy: {
|
|
43
|
+
defaultOperators: [OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_LESS_THAN, OPERATOR_GREATER_THAN, OPERATOR_LESS_THAN_OR_EQUAL, OPERATOR_GREATER_THAN_OR_EQUAL, OPERATOR_BETWEEN],
|
|
44
|
+
validOperators: [
|
|
45
|
+
// Single-selection
|
|
46
|
+
OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_LESS_THAN, OPERATOR_GREATER_THAN, OPERATOR_LESS_THAN_OR_EQUAL, OPERATOR_GREATER_THAN_OR_EQUAL, OPERATOR_BETWEEN,
|
|
47
|
+
// Multiple-selection
|
|
48
|
+
OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL]
|
|
49
|
+
}
|
|
28
50
|
};
|
|
29
51
|
//# sourceMappingURL=integer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sort","a","b","direction","isValid","value","context","Number","isInteger","elements","validValues","map","f","includes","Edit"],"sources":["@wordpress/dataviews/src/field-types/integer.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {
|
|
1
|
+
{"version":3,"names":["renderFromElements","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_LESS_THAN","OPERATOR_GREATER_THAN","OPERATOR_LESS_THAN_OR_EQUAL","OPERATOR_GREATER_THAN_OR_EQUAL","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","OPERATOR_BETWEEN","sort","a","b","direction","isValid","value","context","Number","isInteger","elements","validValues","map","f","includes","Edit","render","item","field","getValue","enableSorting","filterBy","defaultOperators","validOperators"],"sources":["@wordpress/dataviews/src/field-types/integer.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tSortDirection,\n\tValidationContext,\n\tFieldTypeDefinition,\n} from '../types';\nimport { renderFromElements } from '../utils';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\n\nfunction sort( a: any, b: any, direction: SortDirection ) {\n\treturn direction === 'asc' ? a - b : b - a;\n}\n\nfunction isValid( value: any, context?: ValidationContext ) {\n\t// TODO: this implicitly means the value is required.\n\tif ( value === '' ) {\n\t\treturn false;\n\t}\n\n\tif ( ! Number.isInteger( Number( value ) ) ) {\n\t\treturn false;\n\t}\n\n\tif ( context?.elements ) {\n\t\tconst validValues = context?.elements.map( ( f ) => f.value );\n\t\tif ( ! validValues.includes( Number( value ) ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport default {\n\tsort,\n\tisValid,\n\tEdit: 'integer',\n\trender: ( { item, field }: DataViewRenderFieldProps< any > ) => {\n\t\treturn field.elements\n\t\t\t? renderFromElements( { item, field } )\n\t\t\t: field.getValue( { item } );\n\t},\n\tenableSorting: true,\n\tfilterBy: {\n\t\tdefaultOperators: [\n\t\t\tOPERATOR_IS,\n\t\t\tOPERATOR_IS_NOT,\n\t\t\tOPERATOR_LESS_THAN,\n\t\t\tOPERATOR_GREATER_THAN,\n\t\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\t\tOPERATOR_BETWEEN,\n\t\t],\n\t\tvalidOperators: [\n\t\t\t// Single-selection\n\t\t\tOPERATOR_IS,\n\t\t\tOPERATOR_IS_NOT,\n\t\t\tOPERATOR_LESS_THAN,\n\t\t\tOPERATOR_GREATER_THAN,\n\t\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\t\tOPERATOR_BETWEEN,\n\t\t\t// Multiple-selection\n\t\t\tOPERATOR_IS_ANY,\n\t\t\tOPERATOR_IS_NONE,\n\t\t\tOPERATOR_IS_ALL,\n\t\t\tOPERATOR_IS_NOT_ALL,\n\t\t],\n\t},\n} satisfies FieldTypeDefinition< any >;\n"],"mappings":"AAAA;AACA;AACA;;AAOA,SAASA,kBAAkB,QAAQ,UAAU;AAC7C,SACCC,WAAW,EACXC,eAAe,EACfC,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,EACnBC,gBAAgB,QACV,cAAc;AAErB,SAASC,IAAIA,CAAEC,CAAM,EAAEC,CAAM,EAAEC,SAAwB,EAAG;EACzD,OAAOA,SAAS,KAAK,KAAK,GAAGF,CAAC,GAAGC,CAAC,GAAGA,CAAC,GAAGD,CAAC;AAC3C;AAEA,SAASG,OAAOA,CAAEC,KAAU,EAAEC,OAA2B,EAAG;EAC3D;EACA,IAAKD,KAAK,KAAK,EAAE,EAAG;IACnB,OAAO,KAAK;EACb;EAEA,IAAK,CAAEE,MAAM,CAACC,SAAS,CAAED,MAAM,CAAEF,KAAM,CAAE,CAAC,EAAG;IAC5C,OAAO,KAAK;EACb;EAEA,IAAKC,OAAO,EAAEG,QAAQ,EAAG;IACxB,MAAMC,WAAW,GAAGJ,OAAO,EAAEG,QAAQ,CAACE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACP,KAAM,CAAC;IAC7D,IAAK,CAAEK,WAAW,CAACG,QAAQ,CAAEN,MAAM,CAAEF,KAAM,CAAE,CAAC,EAAG;MAChD,OAAO,KAAK;IACb;EACD;EAEA,OAAO,IAAI;AACZ;AAEA,eAAe;EACdL,IAAI;EACJI,OAAO;EACPU,IAAI,EAAE,SAAS;EACfC,MAAM,EAAEA,CAAE;IAAEC,IAAI;IAAEC;EAAuC,CAAC,KAAM;IAC/D,OAAOA,KAAK,CAACR,QAAQ,GAClBrB,kBAAkB,CAAE;MAAE4B,IAAI;MAAEC;IAAM,CAAE,CAAC,GACrCA,KAAK,CAACC,QAAQ,CAAE;MAAEF;IAAK,CAAE,CAAC;EAC9B,CAAC;EACDG,aAAa,EAAE,IAAI;EACnBC,QAAQ,EAAE;IACTC,gBAAgB,EAAE,CACjBhC,WAAW,EACXC,eAAe,EACfC,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,8BAA8B,EAC9BK,gBAAgB,CAChB;IACDuB,cAAc,EAAE;IACf;IACAjC,WAAW,EACXC,eAAe,EACfC,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,8BAA8B,EAC9BK,gBAAgB;IAChB;IACAJ,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB;EAErB;AACD,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
function sort() {
|
|
6
|
+
return 0;
|
|
7
|
+
}
|
|
8
|
+
function isValid(value, context) {
|
|
9
|
+
if (context?.elements) {
|
|
10
|
+
const validValues = context?.elements.map(f => f.value);
|
|
11
|
+
if (!validValues.includes(value)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
export default {
|
|
18
|
+
sort,
|
|
19
|
+
isValid,
|
|
20
|
+
Edit: null,
|
|
21
|
+
render: () => null,
|
|
22
|
+
enableSorting: false,
|
|
23
|
+
filterBy: false
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["sort","isValid","value","context","elements","validValues","map","f","includes","Edit","render","enableSorting","filterBy"],"sources":["@wordpress/dataviews/src/field-types/media.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { ValidationContext, FieldTypeDefinition } from '../types';\n\nfunction sort() {\n\treturn 0;\n}\n\nfunction isValid( value: any, context?: ValidationContext ) {\n\tif ( context?.elements ) {\n\t\tconst validValues = context?.elements.map( ( f ) => f.value );\n\t\tif ( ! validValues.includes( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport default {\n\tsort,\n\tisValid,\n\tEdit: null,\n\trender: () => null,\n\tenableSorting: false,\n\tfilterBy: false,\n} satisfies FieldTypeDefinition< any >;\n"],"mappings":"AAAA;AACA;AACA;;AAGA,SAASA,IAAIA,CAAA,EAAG;EACf,OAAO,CAAC;AACT;AAEA,SAASC,OAAOA,CAAEC,KAAU,EAAEC,OAA2B,EAAG;EAC3D,IAAKA,OAAO,EAAEC,QAAQ,EAAG;IACxB,MAAMC,WAAW,GAAGF,OAAO,EAAEC,QAAQ,CAACE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACL,KAAM,CAAC;IAC7D,IAAK,CAAEG,WAAW,CAACG,QAAQ,CAAEN,KAAM,CAAC,EAAG;MACtC,OAAO,KAAK;IACb;EACD;EAEA,OAAO,IAAI;AACZ;AAEA,eAAe;EACdF,IAAI;EACJC,OAAO;EACPQ,IAAI,EAAE,IAAI;EACVC,MAAM,EAAEA,CAAA,KAAM,IAAI;EAClBC,aAAa,EAAE,KAAK;EACpBC,QAAQ,EAAE;AACX,CAAC","ignoreList":[]}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import { renderFromElements } from '../utils';
|
|
6
|
+
import { OPERATOR_CONTAINS, OPERATOR_IS, OPERATOR_IS_ALL, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_NOT, OPERATOR_IS_NOT_ALL, OPERATOR_NOT_CONTAINS, OPERATOR_STARTS_WITH } from '../constants';
|
|
5
7
|
function sort(valueA, valueB, direction) {
|
|
6
8
|
return direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
|
|
7
9
|
}
|
|
@@ -17,6 +19,26 @@ function isValid(value, context) {
|
|
|
17
19
|
export default {
|
|
18
20
|
sort,
|
|
19
21
|
isValid,
|
|
20
|
-
Edit: 'text'
|
|
22
|
+
Edit: 'text',
|
|
23
|
+
render: ({
|
|
24
|
+
item,
|
|
25
|
+
field
|
|
26
|
+
}) => {
|
|
27
|
+
return field.elements ? renderFromElements({
|
|
28
|
+
item,
|
|
29
|
+
field
|
|
30
|
+
}) : field.getValue({
|
|
31
|
+
item
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
enableSorting: true,
|
|
35
|
+
filterBy: {
|
|
36
|
+
defaultOperators: [OPERATOR_IS_ANY, OPERATOR_IS_NONE],
|
|
37
|
+
validOperators: [
|
|
38
|
+
// Single selection
|
|
39
|
+
OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_CONTAINS, OPERATOR_NOT_CONTAINS, OPERATOR_STARTS_WITH,
|
|
40
|
+
// Multiple selection
|
|
41
|
+
OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL]
|
|
42
|
+
}
|
|
21
43
|
};
|
|
22
44
|
//# sourceMappingURL=text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sort","valueA","valueB","direction","localeCompare","isValid","value","context","elements","validValues","map","f","includes","Edit"],"sources":["@wordpress/dataviews/src/field-types/text.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {
|
|
1
|
+
{"version":3,"names":["renderFromElements","OPERATOR_CONTAINS","OPERATOR_IS","OPERATOR_IS_ALL","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_NOT","OPERATOR_IS_NOT_ALL","OPERATOR_NOT_CONTAINS","OPERATOR_STARTS_WITH","sort","valueA","valueB","direction","localeCompare","isValid","value","context","elements","validValues","map","f","includes","Edit","render","item","field","getValue","enableSorting","filterBy","defaultOperators","validOperators"],"sources":["@wordpress/dataviews/src/field-types/text.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tSortDirection,\n\tValidationContext,\n\tFieldTypeDefinition,\n} from '../types';\nimport { renderFromElements } from '../utils';\nimport {\n\tOPERATOR_CONTAINS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n} from '../constants';\n\nfunction sort( valueA: any, valueB: any, direction: SortDirection ) {\n\treturn direction === 'asc'\n\t\t? valueA.localeCompare( valueB )\n\t\t: valueB.localeCompare( valueA );\n}\n\nfunction isValid( value: any, context?: ValidationContext ) {\n\tif ( context?.elements ) {\n\t\tconst validValues = context?.elements?.map( ( f ) => f.value );\n\t\tif ( ! validValues.includes( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport default {\n\tsort,\n\tisValid,\n\tEdit: 'text',\n\trender: ( { item, field }: DataViewRenderFieldProps< any > ) => {\n\t\treturn field.elements\n\t\t\t? renderFromElements( { item, field } )\n\t\t\t: field.getValue( { item } );\n\t},\n\tenableSorting: true,\n\tfilterBy: {\n\t\tdefaultOperators: [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ],\n\t\tvalidOperators: [\n\t\t\t// Single selection\n\t\t\tOPERATOR_IS,\n\t\t\tOPERATOR_IS_NOT,\n\t\t\tOPERATOR_CONTAINS,\n\t\t\tOPERATOR_NOT_CONTAINS,\n\t\t\tOPERATOR_STARTS_WITH,\n\t\t\t// Multiple selection\n\t\t\tOPERATOR_IS_ANY,\n\t\t\tOPERATOR_IS_NONE,\n\t\t\tOPERATOR_IS_ALL,\n\t\t\tOPERATOR_IS_NOT_ALL,\n\t\t],\n\t},\n} satisfies FieldTypeDefinition< any >;\n"],"mappings":"AAAA;AACA;AACA;;AAOA,SAASA,kBAAkB,QAAQ,UAAU;AAC7C,SACCC,iBAAiB,EACjBC,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,EACnBC,qBAAqB,EACrBC,oBAAoB,QACd,cAAc;AAErB,SAASC,IAAIA,CAAEC,MAAW,EAAEC,MAAW,EAAEC,SAAwB,EAAG;EACnE,OAAOA,SAAS,KAAK,KAAK,GACvBF,MAAM,CAACG,aAAa,CAAEF,MAAO,CAAC,GAC9BA,MAAM,CAACE,aAAa,CAAEH,MAAO,CAAC;AAClC;AAEA,SAASI,OAAOA,CAAEC,KAAU,EAAEC,OAA2B,EAAG;EAC3D,IAAKA,OAAO,EAAEC,QAAQ,EAAG;IACxB,MAAMC,WAAW,GAAGF,OAAO,EAAEC,QAAQ,EAAEE,GAAG,CAAIC,CAAC,IAAMA,CAAC,CAACL,KAAM,CAAC;IAC9D,IAAK,CAAEG,WAAW,CAACG,QAAQ,CAAEN,KAAM,CAAC,EAAG;MACtC,OAAO,KAAK;IACb;EACD;EAEA,OAAO,IAAI;AACZ;AAEA,eAAe;EACdN,IAAI;EACJK,OAAO;EACPQ,IAAI,EAAE,MAAM;EACZC,MAAM,EAAEA,CAAE;IAAEC,IAAI;IAAEC;EAAuC,CAAC,KAAM;IAC/D,OAAOA,KAAK,CAACR,QAAQ,GAClBlB,kBAAkB,CAAE;MAAEyB,IAAI;MAAEC;IAAM,CAAE,CAAC,GACrCA,KAAK,CAACC,QAAQ,CAAE;MAAEF;IAAK,CAAE,CAAC;EAC9B,CAAC;EACDG,aAAa,EAAE,IAAI;EACnBC,QAAQ,EAAE;IACTC,gBAAgB,EAAE,CAAE1B,eAAe,EAAEC,gBAAgB,CAAE;IACvD0B,cAAc,EAAE;IACf;IACA7B,WAAW,EACXI,eAAe,EACfL,iBAAiB,EACjBO,qBAAqB,EACrBC,oBAAoB;IACpB;IACAL,eAAe,EACfC,gBAAgB,EAChBF,eAAe,EACfI,mBAAmB;EAErB;AACD,CAAC","ignoreList":[]}
|
|
@@ -2,17 +2,45 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import removeAccents from 'remove-accents';
|
|
5
|
+
import { subDays, subWeeks, subMonths, subYears } from 'date-fns';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { getDate } from '@wordpress/date';
|
|
5
11
|
|
|
6
12
|
/**
|
|
7
13
|
* Internal dependencies
|
|
8
14
|
*/
|
|
9
|
-
import { OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_NONE, OPERATOR_IS_ANY, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from './constants';
|
|
15
|
+
import { OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_NONE, OPERATOR_IS_ANY, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL, OPERATOR_LESS_THAN, OPERATOR_GREATER_THAN, OPERATOR_LESS_THAN_OR_EQUAL, OPERATOR_GREATER_THAN_OR_EQUAL, OPERATOR_BEFORE, OPERATOR_AFTER, OPERATOR_BEFORE_INC, OPERATOR_AFTER_INC, OPERATOR_CONTAINS, OPERATOR_NOT_CONTAINS, OPERATOR_STARTS_WITH, OPERATOR_BETWEEN, OPERATOR_ON, OPERATOR_NOT_ON, OPERATOR_IN_THE_PAST, OPERATOR_OVER } from './constants';
|
|
10
16
|
import { normalizeFields } from './normalize-fields';
|
|
11
17
|
function normalizeSearchInput(input = '') {
|
|
12
18
|
return removeAccents(input.trim().toLowerCase());
|
|
13
19
|
}
|
|
14
20
|
const EMPTY_ARRAY = [];
|
|
15
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Calculates a date offset from now.
|
|
24
|
+
*
|
|
25
|
+
* @param value Number of units to offset.
|
|
26
|
+
* @param unit Unit of time to offset.
|
|
27
|
+
* @return Date offset from now.
|
|
28
|
+
*/
|
|
29
|
+
function getRelativeDate(value, unit) {
|
|
30
|
+
switch (unit) {
|
|
31
|
+
case 'days':
|
|
32
|
+
return subDays(new Date(), value);
|
|
33
|
+
case 'weeks':
|
|
34
|
+
return subWeeks(new Date(), value);
|
|
35
|
+
case 'months':
|
|
36
|
+
return subMonths(new Date(), value);
|
|
37
|
+
case 'years':
|
|
38
|
+
return subYears(new Date(), value);
|
|
39
|
+
default:
|
|
40
|
+
return new Date();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
16
44
|
/**
|
|
17
45
|
* Applies the filtering, sorting and pagination to the raw data based on the view configuration.
|
|
18
46
|
*
|
|
@@ -93,7 +121,7 @@ export function filterSortAndPaginate(data, view, fields) {
|
|
|
93
121
|
filteredData = filteredData.filter(item => {
|
|
94
122
|
return filter.value === field.getValue({
|
|
95
123
|
item
|
|
96
|
-
});
|
|
124
|
+
}) || filter.value === undefined;
|
|
97
125
|
});
|
|
98
126
|
} else if (filter.operator === OPERATOR_IS_NOT) {
|
|
99
127
|
filteredData = filteredData.filter(item => {
|
|
@@ -101,23 +129,158 @@ export function filterSortAndPaginate(data, view, fields) {
|
|
|
101
129
|
item
|
|
102
130
|
});
|
|
103
131
|
});
|
|
132
|
+
} else if (filter.operator === OPERATOR_ON && filter.value !== undefined) {
|
|
133
|
+
const filterDate = getDate(filter.value);
|
|
134
|
+
filteredData = filteredData.filter(item => {
|
|
135
|
+
const fieldDate = getDate(field.getValue({
|
|
136
|
+
item
|
|
137
|
+
}));
|
|
138
|
+
return filterDate.getTime() === fieldDate.getTime();
|
|
139
|
+
});
|
|
140
|
+
} else if (filter.operator === OPERATOR_NOT_ON && filter.value !== undefined) {
|
|
141
|
+
const filterDate = getDate(filter.value);
|
|
142
|
+
filteredData = filteredData.filter(item => {
|
|
143
|
+
const fieldDate = getDate(field.getValue({
|
|
144
|
+
item
|
|
145
|
+
}));
|
|
146
|
+
return filterDate.getTime() !== fieldDate.getTime();
|
|
147
|
+
});
|
|
148
|
+
} else if (filter.operator === OPERATOR_LESS_THAN && filter.value !== undefined) {
|
|
149
|
+
filteredData = filteredData.filter(item => {
|
|
150
|
+
const fieldValue = field.getValue({
|
|
151
|
+
item
|
|
152
|
+
});
|
|
153
|
+
return fieldValue < filter.value;
|
|
154
|
+
});
|
|
155
|
+
} else if (filter.operator === OPERATOR_GREATER_THAN && filter.value !== undefined) {
|
|
156
|
+
filteredData = filteredData.filter(item => {
|
|
157
|
+
const fieldValue = field.getValue({
|
|
158
|
+
item
|
|
159
|
+
});
|
|
160
|
+
return fieldValue > filter.value;
|
|
161
|
+
});
|
|
162
|
+
} else if (filter.operator === OPERATOR_LESS_THAN_OR_EQUAL && filter.value !== undefined) {
|
|
163
|
+
filteredData = filteredData.filter(item => {
|
|
164
|
+
const fieldValue = field.getValue({
|
|
165
|
+
item
|
|
166
|
+
});
|
|
167
|
+
return fieldValue <= filter.value;
|
|
168
|
+
});
|
|
169
|
+
} else if (filter.operator === OPERATOR_GREATER_THAN_OR_EQUAL && filter.value !== undefined) {
|
|
170
|
+
filteredData = filteredData.filter(item => {
|
|
171
|
+
const fieldValue = field.getValue({
|
|
172
|
+
item
|
|
173
|
+
});
|
|
174
|
+
return fieldValue >= filter.value;
|
|
175
|
+
});
|
|
176
|
+
} else if (filter.operator === OPERATOR_CONTAINS && filter?.value !== undefined) {
|
|
177
|
+
filteredData = filteredData.filter(item => {
|
|
178
|
+
const fieldValue = field.getValue({
|
|
179
|
+
item
|
|
180
|
+
});
|
|
181
|
+
return typeof fieldValue === 'string' && filter.value && fieldValue.toLowerCase().includes(String(filter.value).toLowerCase());
|
|
182
|
+
});
|
|
183
|
+
} else if (filter.operator === OPERATOR_NOT_CONTAINS && filter?.value !== undefined) {
|
|
184
|
+
filteredData = filteredData.filter(item => {
|
|
185
|
+
const fieldValue = field.getValue({
|
|
186
|
+
item
|
|
187
|
+
});
|
|
188
|
+
return typeof fieldValue === 'string' && filter.value && !fieldValue.toLowerCase().includes(String(filter.value).toLowerCase());
|
|
189
|
+
});
|
|
190
|
+
} else if (filter.operator === OPERATOR_STARTS_WITH && filter?.value !== undefined) {
|
|
191
|
+
filteredData = filteredData.filter(item => {
|
|
192
|
+
const fieldValue = field.getValue({
|
|
193
|
+
item
|
|
194
|
+
});
|
|
195
|
+
return typeof fieldValue === 'string' && filter.value && fieldValue.toLowerCase().startsWith(String(filter.value).toLowerCase());
|
|
196
|
+
});
|
|
197
|
+
} else if (filter.operator === OPERATOR_BEFORE && filter.value !== undefined) {
|
|
198
|
+
const filterValue = getDate(filter.value);
|
|
199
|
+
filteredData = filteredData.filter(item => {
|
|
200
|
+
const fieldValue = getDate(field.getValue({
|
|
201
|
+
item
|
|
202
|
+
}));
|
|
203
|
+
return fieldValue < filterValue;
|
|
204
|
+
});
|
|
205
|
+
} else if (filter.operator === OPERATOR_AFTER && filter.value !== undefined) {
|
|
206
|
+
const filterValue = getDate(filter.value);
|
|
207
|
+
filteredData = filteredData.filter(item => {
|
|
208
|
+
const fieldValue = getDate(field.getValue({
|
|
209
|
+
item
|
|
210
|
+
}));
|
|
211
|
+
return fieldValue > filterValue;
|
|
212
|
+
});
|
|
213
|
+
} else if (filter.operator === OPERATOR_BEFORE_INC && filter.value !== undefined) {
|
|
214
|
+
const filterValue = getDate(filter.value);
|
|
215
|
+
filteredData = filteredData.filter(item => {
|
|
216
|
+
const fieldValue = getDate(field.getValue({
|
|
217
|
+
item
|
|
218
|
+
}));
|
|
219
|
+
return fieldValue <= filterValue;
|
|
220
|
+
});
|
|
221
|
+
} else if (filter.operator === OPERATOR_AFTER_INC && filter.value !== undefined) {
|
|
222
|
+
const filterValue = getDate(filter.value);
|
|
223
|
+
filteredData = filteredData.filter(item => {
|
|
224
|
+
const fieldValue = getDate(field.getValue({
|
|
225
|
+
item
|
|
226
|
+
}));
|
|
227
|
+
return fieldValue >= filterValue;
|
|
228
|
+
});
|
|
229
|
+
} else if (filter.operator === OPERATOR_BETWEEN && Array.isArray(filter.value) && filter.value.length === 2 && filter.value[0] !== undefined && filter.value[1] !== undefined) {
|
|
230
|
+
filteredData = filteredData.filter(item => {
|
|
231
|
+
const fieldValue = field.getValue({
|
|
232
|
+
item
|
|
233
|
+
});
|
|
234
|
+
if (typeof fieldValue === 'number' || fieldValue instanceof Date || typeof fieldValue === 'string') {
|
|
235
|
+
return fieldValue >= filter.value[0] && fieldValue <= filter.value[1];
|
|
236
|
+
}
|
|
237
|
+
return false;
|
|
238
|
+
});
|
|
239
|
+
} else if (filter.operator === OPERATOR_IN_THE_PAST && filter.value?.value !== undefined && filter.value?.unit !== undefined) {
|
|
240
|
+
const targetDate = getRelativeDate(filter.value.value, filter.value.unit);
|
|
241
|
+
filteredData = filteredData.filter(item => {
|
|
242
|
+
const fieldValue = getDate(field.getValue({
|
|
243
|
+
item
|
|
244
|
+
}));
|
|
245
|
+
return fieldValue >= targetDate && fieldValue <= new Date();
|
|
246
|
+
});
|
|
247
|
+
} else if (filter.operator === OPERATOR_OVER && filter.value?.value !== undefined && filter.value?.unit !== undefined) {
|
|
248
|
+
const targetDate = getRelativeDate(filter.value.value, filter.value.unit);
|
|
249
|
+
filteredData = filteredData.filter(item => {
|
|
250
|
+
const fieldValue = getDate(field.getValue({
|
|
251
|
+
item
|
|
252
|
+
}));
|
|
253
|
+
return fieldValue < targetDate;
|
|
254
|
+
});
|
|
104
255
|
}
|
|
105
256
|
}
|
|
106
257
|
});
|
|
107
258
|
}
|
|
108
259
|
|
|
109
260
|
// Handle sorting.
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
261
|
+
const sortByField = view.sort?.field ? _fields.find(field => {
|
|
262
|
+
return field.id === view.sort?.field;
|
|
263
|
+
}) : null;
|
|
264
|
+
const groupByField = view.groupByField ? _fields.find(field => {
|
|
265
|
+
return field.id === view.groupByField;
|
|
266
|
+
}) : null;
|
|
267
|
+
if (sortByField || groupByField) {
|
|
268
|
+
filteredData.sort((a, b) => {
|
|
269
|
+
if (groupByField) {
|
|
270
|
+
const groupCompare = groupByField.sort(a, b, 'asc');
|
|
271
|
+
|
|
272
|
+
// If items are in different groups, return the group comparison result.
|
|
273
|
+
// Otherwise, fall back to sorting by the sort field.
|
|
274
|
+
if (groupCompare !== 0) {
|
|
275
|
+
return groupCompare;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (sortByField) {
|
|
117
279
|
var _view$sort$direction;
|
|
118
|
-
return
|
|
119
|
-
}
|
|
120
|
-
|
|
280
|
+
return sortByField.sort(a, b, (_view$sort$direction = view.sort?.direction) !== null && _view$sort$direction !== void 0 ? _view$sort$direction : 'desc');
|
|
281
|
+
}
|
|
282
|
+
return 0;
|
|
283
|
+
});
|
|
121
284
|
}
|
|
122
285
|
|
|
123
286
|
// Handle pagination.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["removeAccents","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","value","fieldValue","Array","isArray","filterValue","every","sort","fieldId","fieldToSort","a","b","_view$sort$direction","direction","page","undefined","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, View } from './types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters && view.filters?.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tif ( fieldToSort ) {\n\t\t\tfilteredData.sort( ( a, b ) => {\n\t\t\t\treturn fieldToSort.sort( a, b, view.sort?.direction ?? 'desc' );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["removeAccents","subDays","subWeeks","subMonths","subYears","getDate","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","OPERATOR_LESS_THAN","OPERATOR_GREATER_THAN","OPERATOR_LESS_THAN_OR_EQUAL","OPERATOR_GREATER_THAN_OR_EQUAL","OPERATOR_BEFORE","OPERATOR_AFTER","OPERATOR_BEFORE_INC","OPERATOR_AFTER_INC","OPERATOR_CONTAINS","OPERATOR_NOT_CONTAINS","OPERATOR_STARTS_WITH","OPERATOR_BETWEEN","OPERATOR_ON","OPERATOR_NOT_ON","OPERATOR_IN_THE_PAST","OPERATOR_OVER","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","getRelativeDate","value","unit","Date","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","fieldValue","Array","isArray","filterValue","every","undefined","filterDate","fieldDate","getTime","String","startsWith","targetDate","sortByField","sort","groupByField","a","b","groupCompare","_view$sort$direction","direction","page","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { subDays, subWeeks, subMonths, subYears } from 'date-fns';\n\n/**\n * WordPress dependencies\n */\nimport { getDate } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, View } from './types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * Calculates a date offset from now.\n *\n * @param value Number of units to offset.\n * @param unit Unit of time to offset.\n * @return Date offset from now.\n */\nfunction getRelativeDate( value: number, unit: string ): Date {\n\tswitch ( unit ) {\n\t\tcase 'days':\n\t\t\treturn subDays( new Date(), value );\n\t\tcase 'weeks':\n\t\t\treturn subWeeks( new Date(), value );\n\t\tcase 'months':\n\t\t\treturn subMonths( new Date(), value );\n\t\tcase 'years':\n\t\t\treturn subYears( new Date(), value );\n\t\tdefault:\n\t\t\treturn new Date();\n\t}\n}\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters && view.filters?.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tfilter.value === field.getValue( { item } ) ||\n\t\t\t\t\t\t\tfilter.value === undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_ON &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterDate = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\t\t\t\t\t\treturn filterDate.getTime() === fieldDate.getTime();\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_ON &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterDate = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\t\t\t\t\t\treturn filterDate.getTime() !== fieldDate.getTime();\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_LESS_THAN &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue < filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_GREATER_THAN &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue > filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_LESS_THAN_OR_EQUAL &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue <= filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_GREATER_THAN_OR_EQUAL &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue >= filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_CONTAINS &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\tfieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_CONTAINS &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\t! fieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_STARTS_WITH &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\tfieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.startsWith(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BEFORE &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue < filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_AFTER &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue > filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BEFORE_INC &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue <= filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_AFTER_INC &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue >= filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BETWEEN &&\n\t\t\t\t\tArray.isArray( filter.value ) &&\n\t\t\t\t\tfilter.value.length === 2 &&\n\t\t\t\t\tfilter.value[ 0 ] !== undefined &&\n\t\t\t\t\tfilter.value[ 1 ] !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof fieldValue === 'number' ||\n\t\t\t\t\t\t\tfieldValue instanceof Date ||\n\t\t\t\t\t\t\ttypeof fieldValue === 'string'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tfieldValue >= filter.value[ 0 ] &&\n\t\t\t\t\t\t\t\tfieldValue <= filter.value[ 1 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IN_THE_PAST &&\n\t\t\t\t\tfilter.value?.value !== undefined &&\n\t\t\t\t\tfilter.value?.unit !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\t\t\tfilter.value.value,\n\t\t\t\t\t\tfilter.value.unit\n\t\t\t\t\t);\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tfieldValue >= targetDate && fieldValue <= new Date()\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_OVER &&\n\t\t\t\t\tfilter.value?.value !== undefined &&\n\t\t\t\t\tfilter.value?.unit !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\t\t\tfilter.value.value,\n\t\t\t\t\t\tfilter.value.unit\n\t\t\t\t\t);\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue < targetDate;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tconst sortByField = view.sort?.field\n\t\t? _fields.find( ( field ) => {\n\t\t\t\treturn field.id === view.sort?.field;\n\t\t } )\n\t\t: null;\n\tconst groupByField = view.groupByField\n\t\t? _fields.find( ( field ) => {\n\t\t\t\treturn field.id === view.groupByField;\n\t\t } )\n\t\t: null;\n\tif ( sortByField || groupByField ) {\n\t\tfilteredData.sort( ( a, b ) => {\n\t\t\tif ( groupByField ) {\n\t\t\t\tconst groupCompare = groupByField.sort( a, b, 'asc' );\n\n\t\t\t\t// If items are in different groups, return the group comparison result.\n\t\t\t\t// Otherwise, fall back to sorting by the sort field.\n\t\t\t\tif ( groupCompare !== 0 ) {\n\t\t\t\t\treturn groupCompare;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( sortByField ) {\n\t\t\t\treturn sortByField.sort( a, b, view.sort?.direction ?? 'desc' );\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t} );\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|