@wordpress/dataviews 3.0.0 → 4.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 +21 -3
- package/README.md +19 -4
- package/build/components/dataform/index.js +27 -0
- package/build/components/dataform/index.js.map +1 -0
- package/build/components/dataviews/index.js +126 -0
- package/build/components/dataviews/index.js.map +1 -0
- package/build/{bulk-actions.js → components/dataviews-bulk-actions/index.js} +42 -16
- package/build/components/dataviews-bulk-actions/index.js.map +1 -0
- package/build/{bulk-actions-toolbar.js → components/dataviews-bulk-actions-toolbar/index.js} +36 -19
- package/build/components/dataviews-bulk-actions-toolbar/index.js.map +1 -0
- package/build/components/dataviews-context/index.js +36 -0
- package/build/components/dataviews-context/index.js.map +1 -0
- package/build/{add-filter.js → components/dataviews-filters/add-filter.js} +35 -18
- package/build/components/dataviews-filters/add-filter.js.map +1 -0
- package/build/{filter-summary.js → components/dataviews-filters/filter-summary.js} +9 -9
- package/build/components/dataviews-filters/filter-summary.js.map +1 -0
- package/build/components/dataviews-filters/index.js +164 -0
- package/build/components/dataviews-filters/index.js.map +1 -0
- package/build/components/dataviews-filters/reset-filters.js.map +1 -0
- package/build/{search-widget.js → components/dataviews-filters/search-widget.js} +13 -13
- package/build/components/dataviews-filters/search-widget.js.map +1 -0
- package/build/{item-actions.js → components/dataviews-item-actions/index.js} +2 -2
- package/build/components/dataviews-item-actions/index.js.map +1 -0
- package/build/components/dataviews-layout/index.js +53 -0
- package/build/components/dataviews-layout/index.js.map +1 -0
- package/build/{pagination.js → components/dataviews-pagination/index.js} +16 -13
- package/build/components/dataviews-pagination/index.js.map +1 -0
- package/build/{search.js → components/dataviews-search/index.js} +18 -11
- package/build/components/dataviews-search/index.js.map +1 -0
- package/build/{single-selection-checkbox.js → components/dataviews-selection-checkbox/index.js} +6 -6
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -0
- package/build/components/dataviews-view-config/index.js +298 -0
- package/build/components/dataviews-view-config/index.js.map +1 -0
- package/build/constants.js +6 -1
- package/build/constants.js.map +1 -1
- package/build/dataforms-layouts/index.js +24 -0
- package/build/dataforms-layouts/index.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +129 -0
- package/build/dataforms-layouts/panel/index.js.map +1 -0
- package/build/dataforms-layouts/regular/index.js +39 -0
- package/build/dataforms-layouts/regular/index.js.map +1 -0
- package/build/dataviews-layouts/grid/density-picker.js +143 -0
- package/build/dataviews-layouts/grid/density-picker.js.map +1 -0
- package/build/{view-grid.js → dataviews-layouts/grid/index.js} +40 -41
- package/build/dataviews-layouts/grid/index.js.map +1 -0
- package/build/dataviews-layouts/index.js +52 -0
- package/build/dataviews-layouts/index.js.map +1 -0
- package/build/{view-list.js → dataviews-layouts/list/index.js} +26 -23
- package/build/dataviews-layouts/list/index.js.map +1 -0
- package/build/dataviews-layouts/table/column-header-menu.js +196 -0
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -0
- package/build/dataviews-layouts/table/index.js +350 -0
- package/build/dataviews-layouts/table/index.js.map +1 -0
- package/build/field-types/index.js +46 -0
- package/build/field-types/index.js.map +1 -0
- package/build/field-types/integer.js +94 -0
- package/build/field-types/integer.js.map +1 -0
- package/build/field-types/text.js +87 -0
- package/build/field-types/text.js.map +1 -0
- package/build/filter-and-sort-data-view.js +2 -11
- package/build/filter-and-sort-data-view.js.map +1 -1
- package/build/index.js +11 -4
- package/build/index.js.map +1 -1
- package/build/normalize-fields.js +36 -2
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +22 -0
- package/build/validation.js.map +1 -0
- package/build-module/components/dataform/index.js +21 -0
- package/build-module/components/dataform/index.js.map +1 -0
- package/build-module/components/dataviews/index.js +117 -0
- package/build-module/components/dataviews/index.js.map +1 -0
- package/build-module/{bulk-actions.js → components/dataviews-bulk-actions/index.js} +42 -17
- package/build-module/components/dataviews-bulk-actions/index.js.map +1 -0
- package/build-module/{bulk-actions-toolbar.js → components/dataviews-bulk-actions-toolbar/index.js} +35 -19
- package/build-module/components/dataviews-bulk-actions-toolbar/index.js.map +1 -0
- package/build-module/components/dataviews-context/index.js +30 -0
- package/build-module/components/dataviews-context/index.js.map +1 -0
- package/build-module/{add-filter.js → components/dataviews-filters/add-filter.js} +34 -18
- package/build-module/components/dataviews-filters/add-filter.js.map +1 -0
- package/build-module/{filter-summary.js → components/dataviews-filters/filter-summary.js} +9 -9
- package/build-module/components/dataviews-filters/filter-summary.js.map +1 -0
- package/build-module/components/dataviews-filters/index.js +153 -0
- package/build-module/components/dataviews-filters/index.js.map +1 -0
- package/build-module/components/dataviews-filters/reset-filters.js.map +1 -0
- package/build-module/{search-widget.js → components/dataviews-filters/search-widget.js} +13 -13
- package/build-module/components/dataviews-filters/search-widget.js.map +1 -0
- package/build-module/{item-actions.js → components/dataviews-item-actions/index.js} +2 -2
- package/build-module/components/dataviews-item-actions/index.js.map +1 -0
- package/build-module/components/dataviews-layout/index.js +45 -0
- package/build-module/components/dataviews-layout/index.js.map +1 -0
- package/build-module/{pagination.js → components/dataviews-pagination/index.js} +17 -15
- package/build-module/components/dataviews-pagination/index.js.map +1 -0
- package/build-module/{search.js → components/dataviews-search/index.js} +18 -12
- package/build-module/components/dataviews-search/index.js.map +1 -0
- package/build-module/{single-selection-checkbox.js → components/dataviews-selection-checkbox/index.js} +5 -5
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -0
- package/build-module/components/dataviews-view-config/index.js +292 -0
- package/build-module/components/dataviews-view-config/index.js.map +1 -0
- package/build-module/constants.js +5 -0
- package/build-module/constants.js.map +1 -1
- package/build-module/dataforms-layouts/index.js +16 -0
- package/build-module/dataforms-layouts/index.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +124 -0
- package/build-module/dataforms-layouts/panel/index.js.map +1 -0
- package/build-module/dataforms-layouts/regular/index.js +32 -0
- package/build-module/dataforms-layouts/regular/index.js.map +1 -0
- package/build-module/dataviews-layouts/grid/density-picker.js +138 -0
- package/build-module/dataviews-layouts/grid/density-picker.js.map +1 -0
- package/build-module/{view-grid.js → dataviews-layouts/grid/index.js} +38 -39
- package/build-module/dataviews-layouts/grid/index.js.map +1 -0
- package/build-module/dataviews-layouts/index.js +43 -0
- package/build-module/dataviews-layouts/index.js.map +1 -0
- package/build-module/{view-list.js → dataviews-layouts/list/index.js} +24 -21
- package/build-module/dataviews-layouts/list/index.js.map +1 -0
- package/build-module/dataviews-layouts/table/column-header-menu.js +190 -0
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -0
- package/build-module/dataviews-layouts/table/index.js +344 -0
- package/build-module/dataviews-layouts/table/index.js.map +1 -0
- package/build-module/field-types/index.js +40 -0
- package/build-module/field-types/index.js.map +1 -0
- package/build-module/field-types/integer.js +87 -0
- package/build-module/field-types/integer.js.map +1 -0
- package/build-module/field-types/text.js +80 -0
- package/build-module/field-types/text.js.map +1 -0
- package/build-module/filter-and-sort-data-view.js +2 -11
- package/build-module/filter-and-sort-data-view.js.map +1 -1
- package/build-module/index.js +4 -3
- package/build-module/index.js.map +1 -1
- package/build-module/normalize-fields.js +35 -3
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +15 -0
- package/build-module/validation.js.map +1 -0
- package/build-style/style-rtl.css +763 -532
- package/build-style/style.css +763 -532
- package/build-types/components/dataform/index.d.ts +6 -0
- package/build-types/components/dataform/index.d.ts.map +1 -0
- package/build-types/components/dataform/stories/index.story.d.ts +22 -0
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -0
- package/build-types/{dataviews.d.ts → components/dataviews/index.d.ts} +9 -7
- package/build-types/components/dataviews/index.d.ts.map +1 -0
- package/build-types/{stories → components/dataviews/stories}/fixtures.d.ts +13 -19
- package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -0
- package/build-types/components/dataviews/stories/index.story.d.ts +46 -0
- package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -0
- package/build-types/components/dataviews-bulk-actions/index.d.ts +5 -0
- package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -0
- package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts +2 -0
- package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts.map +1 -0
- package/build-types/components/dataviews-context/index.d.ts +26 -0
- package/build-types/components/dataviews-context/index.d.ts.map +1 -0
- package/build-types/{add-filter.d.ts → components/dataviews-filters/add-filter.d.ts} +4 -2
- package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -0
- package/build-types/{filter-summary.d.ts → components/dataviews-filters/filter-summary.d.ts} +1 -1
- package/build-types/components/dataviews-filters/filter-summary.d.ts.map +1 -0
- package/build-types/components/dataviews-filters/index.d.ts +14 -0
- package/build-types/components/dataviews-filters/index.d.ts.map +1 -0
- package/build-types/{reset-filters.d.ts → components/dataviews-filters/reset-filters.d.ts} +1 -2
- package/build-types/components/dataviews-filters/reset-filters.d.ts.map +1 -0
- package/build-types/{search-widget.d.ts → components/dataviews-filters/search-widget.d.ts} +1 -2
- package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -0
- package/build-types/{item-actions.d.ts → components/dataviews-item-actions/index.d.ts} +2 -2
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -0
- package/build-types/components/dataviews-layout/index.d.ts +2 -0
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -0
- package/build-types/components/dataviews-pagination/index.d.ts +4 -0
- package/build-types/components/dataviews-pagination/index.d.ts.map +1 -0
- package/build-types/components/dataviews-search/index.d.ts +6 -0
- package/build-types/components/dataviews-search/index.d.ts.map +1 -0
- package/build-types/components/dataviews-selection-checkbox/index.d.ts +16 -0
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -0
- package/build-types/components/dataviews-view-config/index.d.ts +8 -0
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -0
- package/build-types/constants.d.ts +4 -0
- package/build-types/constants.d.ts.map +1 -1
- package/build-types/dataforms-layouts/index.d.ts +9 -0
- package/build-types/dataforms-layouts/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts +3 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/regular/index.d.ts +3 -0
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/grid/density-picker.d.ts +5 -0
- package/build-types/dataviews-layouts/grid/density-picker.d.ts.map +1 -0
- package/build-types/dataviews-layouts/grid/index.d.ts +3 -0
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -0
- package/build-types/{layouts.d.ts → dataviews-layouts/index.d.ts} +6 -5
- package/build-types/dataviews-layouts/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/list/index.d.ts +3 -0
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -0
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts +17 -0
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -0
- package/build-types/dataviews-layouts/table/index.d.ts +4 -0
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -0
- package/build-types/field-types/index.d.ts +20 -0
- package/build-types/field-types/index.d.ts.map +1 -0
- package/build-types/field-types/integer.d.ts +14 -0
- package/build-types/field-types/integer.d.ts.map +1 -0
- package/build-types/field-types/text.d.ts +14 -0
- package/build-types/field-types/text.d.ts.map +1 -0
- package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
- package/build-types/index.d.ts +4 -3
- package/build-types/index.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts +0 -3
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +73 -19
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts +3 -0
- package/build-types/validation.d.ts.map +1 -0
- package/package.json +12 -11
- package/src/components/dataform/index.tsx +17 -0
- package/src/components/dataform/stories/index.story.tsx +79 -0
- package/src/components/dataviews/index.tsx +161 -0
- package/src/{stories → components/dataviews/stories}/fixtures.js +8 -11
- package/src/{stories → components/dataviews/stories}/index.story.js +17 -3
- package/src/components/dataviews/style.scss +100 -0
- package/src/{bulk-actions.tsx → components/dataviews-bulk-actions/index.tsx} +51 -29
- package/src/components/dataviews-bulk-actions/style.scss +7 -0
- package/src/{bulk-actions-toolbar.tsx → components/dataviews-bulk-actions-toolbar/index.tsx} +42 -30
- package/src/components/dataviews-bulk-actions-toolbar/style.scss +45 -0
- package/src/components/dataviews-context/index.ts +49 -0
- package/src/{add-filter.tsx → components/dataviews-filters/add-filter.tsx} +39 -23
- package/src/{filter-summary.tsx → components/dataviews-filters/filter-summary.tsx} +18 -10
- package/src/components/dataviews-filters/index.tsx +199 -0
- package/src/{reset-filters.tsx → components/dataviews-filters/reset-filters.tsx} +1 -1
- package/src/{search-widget.tsx → components/dataviews-filters/search-widget.tsx} +14 -14
- package/src/components/dataviews-filters/style.scss +282 -0
- package/src/{item-actions.tsx → components/dataviews-item-actions/index.tsx} +2 -2
- package/src/components/dataviews-item-actions/style.scss +3 -0
- package/src/components/dataviews-layout/index.tsx +51 -0
- package/src/{pagination.tsx → components/dataviews-pagination/index.tsx} +13 -21
- package/src/components/dataviews-pagination/style.scss +26 -0
- package/src/{search.tsx → components/dataviews-search/index.tsx} +13 -15
- package/src/{single-selection-checkbox.tsx → components/dataviews-selection-checkbox/index.tsx} +9 -9
- package/src/components/dataviews-selection-checkbox/style.scss +14 -0
- package/src/components/dataviews-view-config/index.tsx +358 -0
- package/src/components/dataviews-view-config/style.scss +44 -0
- package/src/constants.ts +5 -0
- package/src/dataforms-layouts/index.tsx +20 -0
- package/src/dataforms-layouts/panel/index.tsx +164 -0
- package/src/dataforms-layouts/panel/style.scss +59 -0
- package/src/dataforms-layouts/regular/index.tsx +41 -0
- package/src/dataviews-layouts/grid/density-picker.tsx +136 -0
- package/src/{view-grid.tsx → dataviews-layouts/grid/index.tsx} +35 -36
- package/src/dataviews-layouts/grid/style.scss +169 -0
- package/src/dataviews-layouts/index.ts +66 -0
- package/src/{view-list.tsx → dataviews-layouts/list/index.tsx} +30 -17
- package/src/dataviews-layouts/list/style.scss +192 -0
- package/src/dataviews-layouts/table/column-header-menu.tsx +268 -0
- package/src/dataviews-layouts/table/index.tsx +471 -0
- package/src/dataviews-layouts/table/style.scss +201 -0
- package/src/field-types/index.tsx +45 -0
- package/src/field-types/integer.tsx +103 -0
- package/src/field-types/text.tsx +95 -0
- package/src/filter-and-sort-data-view.ts +1 -15
- package/src/index.ts +4 -3
- package/src/normalize-fields.ts +45 -4
- package/src/style.scss +14 -907
- package/src/test/filter-and-sort-data-view.js +47 -4
- package/src/test/validation.ts +131 -0
- package/src/types.ts +88 -17
- package/src/validation.ts +18 -0
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/add-filter.js.map +0 -1
- package/build/bulk-actions-toolbar.js.map +0 -1
- package/build/bulk-actions.js.map +0 -1
- package/build/dataform.js +0 -78
- package/build/dataform.js.map +0 -1
- package/build/dataviews.js +0 -125
- package/build/dataviews.js.map +0 -1
- package/build/filter-summary.js.map +0 -1
- package/build/filters.js +0 -102
- package/build/filters.js.map +0 -1
- package/build/item-actions.js.map +0 -1
- package/build/layouts.js +0 -38
- package/build/layouts.js.map +0 -1
- package/build/pagination.js.map +0 -1
- package/build/reset-filters.js.map +0 -1
- package/build/search-widget.js.map +0 -1
- package/build/search.js.map +0 -1
- package/build/single-selection-checkbox.js.map +0 -1
- package/build/view-actions.js +0 -260
- package/build/view-actions.js.map +0 -1
- package/build/view-grid.js.map +0 -1
- package/build/view-list.js.map +0 -1
- package/build/view-table.js +0 -400
- package/build/view-table.js.map +0 -1
- package/build-module/add-filter.js.map +0 -1
- package/build-module/bulk-actions-toolbar.js.map +0 -1
- package/build-module/bulk-actions.js.map +0 -1
- package/build-module/dataform.js +0 -72
- package/build-module/dataform.js.map +0 -1
- package/build-module/dataviews.js +0 -116
- package/build-module/dataviews.js.map +0 -1
- package/build-module/filter-summary.js.map +0 -1
- package/build-module/filters.js +0 -94
- package/build-module/filters.js.map +0 -1
- package/build-module/item-actions.js.map +0 -1
- package/build-module/layouts.js +0 -30
- package/build-module/layouts.js.map +0 -1
- package/build-module/pagination.js.map +0 -1
- package/build-module/reset-filters.js.map +0 -1
- package/build-module/search-widget.js.map +0 -1
- package/build-module/search.js.map +0 -1
- package/build-module/single-selection-checkbox.js.map +0 -1
- package/build-module/view-actions.js +0 -255
- package/build-module/view-actions.js.map +0 -1
- package/build-module/view-grid.js.map +0 -1
- package/build-module/view-list.js.map +0 -1
- package/build-module/view-table.js +0 -393
- package/build-module/view-table.js.map +0 -1
- package/build-types/add-filter.d.ts.map +0 -1
- package/build-types/bulk-actions-toolbar.d.ts +0 -13
- package/build-types/bulk-actions-toolbar.d.ts.map +0 -1
- package/build-types/bulk-actions.d.ts +0 -15
- package/build-types/bulk-actions.d.ts.map +0 -1
- package/build-types/dataform.d.ts +0 -17
- package/build-types/dataform.d.ts.map +0 -1
- package/build-types/dataviews.d.ts.map +0 -1
- package/build-types/filter-summary.d.ts.map +0 -1
- package/build-types/filters.d.ts +0 -13
- package/build-types/filters.d.ts.map +0 -1
- package/build-types/item-actions.d.ts.map +0 -1
- package/build-types/layouts.d.ts.map +0 -1
- package/build-types/pagination.d.ts +0 -16
- package/build-types/pagination.d.ts.map +0 -1
- package/build-types/reset-filters.d.ts.map +0 -1
- package/build-types/search-widget.d.ts.map +0 -1
- package/build-types/search.d.ts +0 -13
- package/build-types/search.d.ts.map +0 -1
- package/build-types/single-selection-checkbox.d.ts +0 -17
- package/build-types/single-selection-checkbox.d.ts.map +0 -1
- package/build-types/stories/fixtures.d.ts.map +0 -1
- package/build-types/stories/index.story.d.ts +0 -29
- package/build-types/stories/index.story.d.ts.map +0 -1
- package/build-types/view-actions.d.ts +0 -12
- package/build-types/view-actions.d.ts.map +0 -1
- package/build-types/view-grid.d.ts +0 -4
- package/build-types/view-grid.d.ts.map +0 -1
- package/build-types/view-list.d.ts +0 -4
- package/build-types/view-list.d.ts.map +0 -1
- package/build-types/view-table.d.ts +0 -5
- package/build-types/view-table.d.ts.map +0 -1
- package/src/dataform.tsx +0 -106
- package/src/dataviews.tsx +0 -183
- package/src/filters.tsx +0 -125
- package/src/layouts.ts +0 -39
- package/src/view-actions.tsx +0 -350
- package/src/view-table.tsx +0 -592
- /package/build/{reset-filters.js → components/dataviews-filters/reset-filters.js} +0 -0
- /package/build-module/{reset-filters.js → components/dataviews-filters/reset-filters.js} +0 -0
package/build-module/{bulk-actions-toolbar.js → components/dataviews-bulk-actions-toolbar/index.js}
RENAMED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { ToolbarButton, Toolbar, ToolbarGroup, __unstableMotion as motion, __unstableAnimatePresence as AnimatePresence } from '@wordpress/components';
|
|
5
|
-
import { useMemo, useState, useRef } from '@wordpress/element';
|
|
5
|
+
import { useMemo, useState, useRef, useContext } from '@wordpress/element';
|
|
6
6
|
import { _n, sprintf, __ } from '@wordpress/i18n';
|
|
7
7
|
import { closeSmall } from '@wordpress/icons';
|
|
8
8
|
import { useReducedMotion } from '@wordpress/compose';
|
|
@@ -11,7 +11,10 @@ import { useRegistry } from '@wordpress/data';
|
|
|
11
11
|
/**
|
|
12
12
|
* Internal dependencies
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
14
|
+
import { useSomeItemHasAPossibleBulkAction } from '../dataviews-bulk-actions';
|
|
15
|
+
import DataViewsContext from '../dataviews-context';
|
|
16
|
+
import { ActionWithModal } from '../dataviews-item-actions';
|
|
17
|
+
import { LAYOUT_GRID, LAYOUT_TABLE } from '../../constants';
|
|
15
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
19
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
20
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -91,11 +94,11 @@ function ActionButton({
|
|
|
91
94
|
isBusy: actionInProgress === action.id
|
|
92
95
|
}, action.id);
|
|
93
96
|
}
|
|
94
|
-
function renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress,
|
|
97
|
+
function renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection) {
|
|
95
98
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
96
99
|
children: [/*#__PURE__*/_jsx(ToolbarGroup, {
|
|
97
100
|
children: /*#__PURE__*/_jsx("div", {
|
|
98
|
-
className: "dataviews-bulk-
|
|
101
|
+
className: "dataviews-bulk-actions-toolbar__selection-count",
|
|
99
102
|
children: selection.length === 1 ? __('1 item selected') : sprintf(
|
|
100
103
|
// translators: %s: Total number of selected items.
|
|
101
104
|
_n('%s item selected', '%s items selected', selection.length), selection.length)
|
|
@@ -117,7 +120,7 @@ function renderToolbarContent(selection, actionsToShow, selectedItems, actionInP
|
|
|
117
120
|
label: __('Cancel'),
|
|
118
121
|
disabled: !!actionInProgress,
|
|
119
122
|
onClick: () => {
|
|
120
|
-
|
|
123
|
+
onChangeSelection(EMPTY_ARRAY);
|
|
121
124
|
}
|
|
122
125
|
})
|
|
123
126
|
})]
|
|
@@ -127,7 +130,7 @@ function ToolbarContent({
|
|
|
127
130
|
selection,
|
|
128
131
|
actionsToShow,
|
|
129
132
|
selectedItems,
|
|
130
|
-
|
|
133
|
+
onChangeSelection
|
|
131
134
|
}) {
|
|
132
135
|
const [actionInProgress, setActionInProgress] = useState(null);
|
|
133
136
|
const buttons = useRef(null);
|
|
@@ -135,19 +138,20 @@ function ToolbarContent({
|
|
|
135
138
|
if (buttons.current) {
|
|
136
139
|
buttons.current = null;
|
|
137
140
|
}
|
|
138
|
-
return renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress,
|
|
141
|
+
return renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);
|
|
139
142
|
} else if (!buttons.current) {
|
|
140
|
-
buttons.current = renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress,
|
|
143
|
+
buttons.current = renderToolbarContent(selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);
|
|
141
144
|
}
|
|
142
145
|
return buttons.current;
|
|
143
146
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
function _BulkActionsToolbar() {
|
|
148
|
+
const {
|
|
149
|
+
data,
|
|
150
|
+
selection,
|
|
151
|
+
actions = EMPTY_ARRAY,
|
|
152
|
+
onChangeSelection,
|
|
153
|
+
getItemId
|
|
154
|
+
} = useContext(DataViewsContext);
|
|
151
155
|
const isReducedMotion = useReducedMotion();
|
|
152
156
|
const selectedItems = useMemo(() => {
|
|
153
157
|
return data.filter(item => selection.includes(getItemId(item)));
|
|
@@ -166,20 +170,32 @@ export default function BulkActionsToolbar({
|
|
|
166
170
|
animate: "open",
|
|
167
171
|
exit: "exit",
|
|
168
172
|
variants: isReducedMotion ? undefined : SNACKBAR_VARIANTS,
|
|
169
|
-
className: "dataviews-bulk-actions",
|
|
173
|
+
className: "dataviews-bulk-actions-toolbar",
|
|
170
174
|
children: /*#__PURE__*/_jsx(Toolbar, {
|
|
171
175
|
label: __('Bulk actions'),
|
|
172
176
|
children: /*#__PURE__*/_jsx("div", {
|
|
173
|
-
className: "dataviews-bulk-actions-
|
|
177
|
+
className: "dataviews-bulk-actions-toolbar__wrapper",
|
|
174
178
|
children: /*#__PURE__*/_jsx(ToolbarContent, {
|
|
175
179
|
selection: selection,
|
|
176
180
|
actionsToShow: actionsToShow,
|
|
177
181
|
selectedItems: selectedItems,
|
|
178
|
-
|
|
182
|
+
onChangeSelection: onChangeSelection
|
|
179
183
|
})
|
|
180
184
|
})
|
|
181
185
|
})
|
|
182
186
|
})
|
|
183
187
|
});
|
|
184
188
|
}
|
|
185
|
-
|
|
189
|
+
export default function BulkActionsToolbar() {
|
|
190
|
+
const {
|
|
191
|
+
data,
|
|
192
|
+
actions = [],
|
|
193
|
+
view
|
|
194
|
+
} = useContext(DataViewsContext);
|
|
195
|
+
const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(actions, data);
|
|
196
|
+
if (![LAYOUT_TABLE, LAYOUT_GRID].includes(view.type) || !hasPossibleBulkAction) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
return /*#__PURE__*/_jsx(_BulkActionsToolbar, {});
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ToolbarButton","Toolbar","ToolbarGroup","__unstableMotion","motion","__unstableAnimatePresence","AnimatePresence","useMemo","useState","useRef","useContext","_n","sprintf","__","closeSmall","useReducedMotion","useRegistry","useSomeItemHasAPossibleBulkAction","DataViewsContext","ActionWithModal","LAYOUT_GRID","LAYOUT_TABLE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SNACKBAR_VARIANTS","init","bottom","open","transition","type","duration","ease","exit","opacity","ActionTrigger","action","onClick","isBusy","items","label","disabled","icon","isDestructive","size","tooltipPosition","EMPTY_ARRAY","ActionButton","selectedItems","actionInProgress","setActionInProgress","registry","selectedEligibleItems","filter","item","isEligible","id","callback","renderToolbarContent","selection","actionsToShow","onChangeSelection","children","className","length","map","showTooltip","ToolbarContent","buttons","current","_BulkActionsToolbar","data","actions","getItemId","isReducedMotion","includes","supportsBulk","some","div","layout","initial","animate","variants","undefined","BulkActionsToolbar","view","hasPossibleBulkAction"],"sources":["@wordpress/dataviews/src/components/dataviews-bulk-actions-toolbar/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tToolbarButton,\n\tToolbar,\n\tToolbarGroup,\n\t__unstableMotion as motion,\n\t__unstableAnimatePresence as AnimatePresence,\n} from '@wordpress/components';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { _n, sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\nimport { useReducedMotion } from '@wordpress/compose';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useSomeItemHasAPossibleBulkAction } from '../dataviews-bulk-actions';\nimport DataViewsContext from '../dataviews-context';\nimport { ActionWithModal } from '../dataviews-item-actions';\nimport { LAYOUT_GRID, LAYOUT_TABLE } from '../../constants';\nimport type { Action } from '../../types';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\nimport type { SetSelection } from '../../private-types';\n\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tactionsToShow: Action< Item >[];\n\tselectedItems: Item[];\n\tonChangeSelection: SetSelection;\n}\n\nconst SNACKBAR_VARIANTS = {\n\tinit: {\n\t\tbottom: -48,\n\t},\n\topen: {\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\tbottom: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n\texit: {\n\t\topacity: 0,\n\t\tbottom: 24,\n\t\ttransition: {\n\t\t\topacity: { type: 'tween', duration: 0.2, ease: [ 0, 0, 0.2, 1 ] },\n\t\t},\n\t},\n};\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<ToolbarButton\n\t\t\tdisabled={ isBusy }\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\taction.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderToolbarContent< Item >(\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<div className=\"dataviews-bulk-actions-toolbar__selection-count\">\n\t\t\t\t\t{ selection.length === 1\n\t\t\t\t\t\t? __( '1 item selected' )\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Total number of selected items.\n\t\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t\t'%s item selected',\n\t\t\t\t\t\t\t\t\t'%s items selected',\n\t\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tselection.length\n\t\t\t\t\t\t ) }\n\t\t\t\t</div>\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ToolbarGroup>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tshowTooltip\n\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n\nfunction ToolbarContent< Item >( {\n\tselection,\n\tactionsToShow,\n\tselectedItems,\n\tonChangeSelection,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst buttons = useRef< JSX.Element | null >( null );\n\tif ( ! actionInProgress ) {\n\t\tif ( buttons.current ) {\n\t\t\tbuttons.current = null;\n\t\t}\n\t\treturn renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! buttons.current ) {\n\t\tbuttons.current = renderToolbarContent(\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn buttons.current;\n}\n\nfunction _BulkActionsToolbar() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\tconst isReducedMotion = useReducedMotion();\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter( ( item ) =>\n\t\t\tselection.includes( getItemId( item ) )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\n\tif (\n\t\t( selection && selection.length === 0 ) ||\n\t\tactionsToShow.length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<AnimatePresence>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! isReducedMotion } // See https://www.framer.com/docs/animation/#layout-animations\n\t\t\t\tinitial=\"init\"\n\t\t\t\tanimate=\"open\"\n\t\t\t\texit=\"exit\"\n\t\t\t\tvariants={ isReducedMotion ? undefined : SNACKBAR_VARIANTS }\n\t\t\t\tclassName=\"dataviews-bulk-actions-toolbar\"\n\t\t\t>\n\t\t\t\t<Toolbar label={ __( 'Bulk actions' ) }>\n\t\t\t\t\t<div className=\"dataviews-bulk-actions-toolbar__wrapper\">\n\t\t\t\t\t\t<ToolbarContent\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tactionsToShow={ actionsToShow }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Toolbar>\n\t\t\t</motion.div>\n\t\t</AnimatePresence>\n\t);\n}\n\nexport default function BulkActionsToolbar() {\n\tconst { data, actions = [], view } = useContext( DataViewsContext );\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\tif (\n\t\t! [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) ||\n\t\t! hasPossibleBulkAction\n\t) {\n\t\treturn null;\n\t}\n\n\treturn <_BulkActionsToolbar />;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { createContext } from '@wordpress/element';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { LAYOUT_TABLE } from '../../constants';
|
|
11
|
+
const DataViewsContext = createContext({
|
|
12
|
+
view: {
|
|
13
|
+
type: LAYOUT_TABLE
|
|
14
|
+
},
|
|
15
|
+
onChangeView: () => {},
|
|
16
|
+
fields: [],
|
|
17
|
+
data: [],
|
|
18
|
+
paginationInfo: {
|
|
19
|
+
totalItems: 0,
|
|
20
|
+
totalPages: 0
|
|
21
|
+
},
|
|
22
|
+
selection: [],
|
|
23
|
+
onChangeSelection: () => {},
|
|
24
|
+
setOpenedFilter: () => {},
|
|
25
|
+
openedFilter: null,
|
|
26
|
+
getItemId: item => item.id,
|
|
27
|
+
density: 0
|
|
28
|
+
});
|
|
29
|
+
export default DataViewsContext;
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","LAYOUT_TABLE","DataViewsContext","view","type","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","density"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { View, Action, NormalizedField } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { LAYOUT_TABLE } from '../../constants';\n\ntype DataViewsContextType< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n\tgetItemId: ( item: Item ) => string;\n\tdensity: number;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tdensity: 0,\n} );\n\nexport default DataViewsContext;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,oBAAoB;;AAElD;AACA;AACA;;AAGA,SAASC,YAAY,QAAQ,iBAAiB;AAqB9C,MAAMC,gBAAgB,GAAGF,aAAa,CAAiC;EACtEG,IAAI,EAAE;IAAEC,IAAI,EAAEH;EAAa,CAAC;EAC5BI,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,EAAE;EACRC,cAAc,EAAE;IACfC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACb,CAAC;EACDC,SAAS,EAAE,EAAE;EACbC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,YAAY,EAAE,IAAI;EAClBC,SAAS,EAAIC,IAAI,IAAMA,IAAI,CAACC,EAAE;EAC9BC,OAAO,EAAE;AACV,CAAE,CAAC;AAEH,eAAehB,gBAAgB","ignoreList":[]}
|
|
@@ -12,35 +12,23 @@ import { forwardRef } from '@wordpress/element';
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
|
-
import { unlock } from '
|
|
15
|
+
import { unlock } from '../../lock-unlock';
|
|
16
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
17
|
const {
|
|
18
18
|
DropdownMenuV2: DropdownMenu,
|
|
19
19
|
DropdownMenuItemV2: DropdownMenuItem,
|
|
20
20
|
DropdownMenuItemLabelV2: DropdownMenuItemLabel
|
|
21
21
|
} = unlock(componentsPrivateApis);
|
|
22
|
-
function
|
|
22
|
+
export function AddFilterDropdownMenu({
|
|
23
23
|
filters,
|
|
24
24
|
view,
|
|
25
25
|
onChangeView,
|
|
26
|
-
setOpenedFilter
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
isPrimary
|
|
30
|
-
}) => isPrimary)) {
|
|
31
|
-
return null;
|
|
32
|
-
}
|
|
26
|
+
setOpenedFilter,
|
|
27
|
+
trigger
|
|
28
|
+
}) {
|
|
33
29
|
const inactiveFilters = filters.filter(filter => !filter.isVisible);
|
|
34
30
|
return /*#__PURE__*/_jsx(DropdownMenu, {
|
|
35
|
-
trigger:
|
|
36
|
-
accessibleWhenDisabled: true,
|
|
37
|
-
size: "compact",
|
|
38
|
-
className: "dataviews-filters-button",
|
|
39
|
-
variant: "tertiary",
|
|
40
|
-
disabled: !inactiveFilters.length,
|
|
41
|
-
ref: ref,
|
|
42
|
-
children: __('Add filter')
|
|
43
|
-
}),
|
|
31
|
+
trigger: trigger,
|
|
44
32
|
children: inactiveFilters.map(filter => {
|
|
45
33
|
return /*#__PURE__*/_jsx(DropdownMenuItem, {
|
|
46
34
|
onClick: () => {
|
|
@@ -62,5 +50,33 @@ function AddFilter({
|
|
|
62
50
|
})
|
|
63
51
|
});
|
|
64
52
|
}
|
|
53
|
+
function AddFilter({
|
|
54
|
+
filters,
|
|
55
|
+
view,
|
|
56
|
+
onChangeView,
|
|
57
|
+
setOpenedFilter
|
|
58
|
+
}, ref) {
|
|
59
|
+
if (!filters.length || filters.every(({
|
|
60
|
+
isPrimary
|
|
61
|
+
}) => isPrimary)) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const inactiveFilters = filters.filter(filter => !filter.isVisible);
|
|
65
|
+
return /*#__PURE__*/_jsx(AddFilterDropdownMenu, {
|
|
66
|
+
trigger: /*#__PURE__*/_jsx(Button, {
|
|
67
|
+
accessibleWhenDisabled: true,
|
|
68
|
+
size: "compact",
|
|
69
|
+
className: "dataviews-filters-button",
|
|
70
|
+
variant: "tertiary",
|
|
71
|
+
disabled: !inactiveFilters.length,
|
|
72
|
+
ref: ref,
|
|
73
|
+
children: __('Add filter')
|
|
74
|
+
}),
|
|
75
|
+
filters,
|
|
76
|
+
view,
|
|
77
|
+
onChangeView,
|
|
78
|
+
setOpenedFilter
|
|
79
|
+
});
|
|
80
|
+
}
|
|
65
81
|
export default forwardRef(AddFilter);
|
|
66
82
|
//# sourceMappingURL=add-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["privateApis","componentsPrivateApis","Button","__","forwardRef","unlock","jsx","_jsx","DropdownMenuV2","DropdownMenu","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","AddFilterDropdownMenu","filters","view","onChangeView","setOpenedFilter","trigger","inactiveFilters","filter","isVisible","children","map","onClick","field","page","value","undefined","operator","operators","name","AddFilter","ref","length","every","isPrimary","accessibleWhenDisabled","size","className","variant","disabled"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/add-filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Ref } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport type { NormalizedFilter, View } from '../../types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\ninterface AddFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n}\n\nexport function AddFilterDropdownMenu( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\ttrigger,\n}: AddFilterProps & {\n\ttrigger: React.ReactNode;\n} ) {\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<DropdownMenu trigger={ trigger }>\n\t\t\t{ inactiveFilters.map( ( filter ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetOpenedFilter( filter.field );\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\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\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ filter.name }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction AddFilter(\n\t{ filters, view, onChangeView, setOpenedFilter }: AddFilterProps,\n\tref: Ref< HTMLButtonElement >\n) {\n\tif ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {\n\t\treturn null;\n\t}\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<AddFilterDropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tdisabled={ ! inactiveFilters.length }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\t{ ...{ filters, view, onChangeView, setOpenedFilter } }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( AddFilter );\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SACCA,WAAW,IAAIC,qBAAqB,EACpCC,MAAM,QACA,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG3C,MAAM;EACLC,cAAc,EAAEC,YAAY;EAC5BC,kBAAkB,EAAEC,gBAAgB;EACpCC,uBAAuB,EAAEC;AAC1B,CAAC,GAAGR,MAAM,CAAEJ,qBAAsB,CAAC;AASnC,OAAO,SAASa,qBAAqBA,CAAE;EACtCC,OAAO;EACPC,IAAI;EACJC,YAAY;EACZC,eAAe;EACfC;AAGD,CAAC,EAAG;EACH,MAAMC,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACCf,IAAA,CAACE,YAAY;IAACU,OAAO,EAAGA,OAAS;IAAAI,QAAA,EAC9BH,eAAe,CAACI,GAAG,CAAIH,MAAM,IAAM;MACpC,oBACCd,IAAA,CAACI,gBAAgB;QAEhBc,OAAO,EAAGA,CAAA,KAAM;UACfP,eAAe,CAAEG,MAAM,CAACK,KAAM,CAAC;UAC/BT,YAAY,CAAE;YACb,GAAGD,IAAI;YACPW,IAAI,EAAE,CAAC;YACPZ,OAAO,EAAE,CACR,IAAKC,IAAI,CAACD,OAAO,IAAI,EAAE,CAAE,EACzB;cACCW,KAAK,EAAEL,MAAM,CAACK,KAAK;cACnBE,KAAK,EAAEC,SAAS;cAChBC,QAAQ,EAAET,MAAM,CAACU,SAAS,CAAE,CAAC;YAC9B,CAAC;UAEH,CAAE,CAAC;QACJ,CAAG;QAAAR,QAAA,eAEHhB,IAAA,CAACM,qBAAqB;UAAAU,QAAA,EACnBF,MAAM,CAACW;QAAI,CACS;MAAC,GAnBlBX,MAAM,CAACK,KAoBI,CAAC;IAErB,CAAE;EAAC,CACU,CAAC;AAEjB;AAEA,SAASO,SAASA,CACjB;EAAElB,OAAO;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAgC,CAAC,EAChEgB,GAA6B,EAC5B;EACD,IAAK,CAAEnB,OAAO,CAACoB,MAAM,IAAIpB,OAAO,CAACqB,KAAK,CAAE,CAAE;IAAEC;EAAU,CAAC,KAAMA,SAAU,CAAC,EAAG;IAC1E,OAAO,IAAI;EACZ;EACA,MAAMjB,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACCf,IAAA,CAACO,qBAAqB;IACrBK,OAAO,eACNZ,IAAA,CAACL,MAAM;MACNoC,sBAAsB;MACtBC,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,0BAA0B;MACpCC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,CAAEtB,eAAe,CAACe,MAAQ;MACrCD,GAAG,EAAGA,GAAK;MAAAX,QAAA,EAETpB,EAAE,CAAE,YAAa;IAAC,CACb,CACR;IACMY,OAAO;IAAEC,IAAI;IAAEC,YAAY;IAAEC;EAAe,CACnD,CAAC;AAEJ;AAEA,eAAed,UAAU,CAAE6B,SAAU,CAAC","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ const SPACE = ' ';
|
|
|
16
16
|
* Internal dependencies
|
|
17
17
|
*/
|
|
18
18
|
import SearchWidget from './search-widget';
|
|
19
|
-
import { OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from '
|
|
19
|
+
import { OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from '../../constants';
|
|
20
20
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
21
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
22
|
const FilterText = ({
|
|
@@ -29,10 +29,10 @@ const FilterText = ({
|
|
|
29
29
|
}
|
|
30
30
|
const filterTextWrappers = {
|
|
31
31
|
Name: /*#__PURE__*/_jsx("span", {
|
|
32
|
-
className: "dataviews-filter-
|
|
32
|
+
className: "dataviews-filters__summary-filter-text-name"
|
|
33
33
|
}),
|
|
34
34
|
Value: /*#__PURE__*/_jsx("span", {
|
|
35
|
-
className: "dataviews-filter-
|
|
35
|
+
className: "dataviews-filters__summary-filter-text-value"
|
|
36
36
|
})
|
|
37
37
|
};
|
|
38
38
|
if (filterInView?.operator === OPERATOR_IS_ANY) {
|
|
@@ -76,9 +76,9 @@ function OperatorSelector({
|
|
|
76
76
|
return operatorOptions.length > 1 && /*#__PURE__*/_jsxs(HStack, {
|
|
77
77
|
spacing: 2,
|
|
78
78
|
justify: "flex-start",
|
|
79
|
-
className: "dataviews-
|
|
79
|
+
className: "dataviews-filters__summary-operators-container",
|
|
80
80
|
children: [/*#__PURE__*/_jsx(FlexItem, {
|
|
81
|
-
className: "dataviews-
|
|
81
|
+
className: "dataviews-filters__summary-operators-filter-name",
|
|
82
82
|
children: filter.name
|
|
83
83
|
}), /*#__PURE__*/_jsx(SelectControl, {
|
|
84
84
|
label: __('Conditions'),
|
|
@@ -135,7 +135,7 @@ export default function FilterSummary({
|
|
|
135
135
|
const canResetOrRemove = !isPrimary || hasValues;
|
|
136
136
|
return /*#__PURE__*/_jsx(Dropdown, {
|
|
137
137
|
defaultOpen: openedFilter === filter.field,
|
|
138
|
-
contentClassName: "dataviews-
|
|
138
|
+
contentClassName: "dataviews-filters__summary-popover",
|
|
139
139
|
popoverProps: {
|
|
140
140
|
placement: 'bottom-start',
|
|
141
141
|
role: 'dialog'
|
|
@@ -147,13 +147,13 @@ export default function FilterSummary({
|
|
|
147
147
|
isOpen,
|
|
148
148
|
onToggle
|
|
149
149
|
}) => /*#__PURE__*/_jsxs("div", {
|
|
150
|
-
className: "dataviews-
|
|
150
|
+
className: "dataviews-filters__summary-chip-container",
|
|
151
151
|
children: [/*#__PURE__*/_jsx(Tooltip, {
|
|
152
152
|
text: sprintf( /* translators: 1: Filter name. */
|
|
153
153
|
__('Filter by: %1$s'), filter.name.toLowerCase()),
|
|
154
154
|
placement: "top",
|
|
155
155
|
children: /*#__PURE__*/_jsx("div", {
|
|
156
|
-
className: clsx('dataviews-
|
|
156
|
+
className: clsx('dataviews-filters__summary-chip', {
|
|
157
157
|
'has-reset': canResetOrRemove,
|
|
158
158
|
'has-values': hasValues
|
|
159
159
|
}),
|
|
@@ -179,7 +179,7 @@ export default function FilterSummary({
|
|
|
179
179
|
text: isPrimary ? __('Reset') : __('Remove'),
|
|
180
180
|
placement: "top",
|
|
181
181
|
children: /*#__PURE__*/_jsx("button", {
|
|
182
|
-
className: clsx('dataviews-
|
|
182
|
+
className: clsx('dataviews-filters__summary-chip-remove', {
|
|
183
183
|
'has-values': hasValues
|
|
184
184
|
}),
|
|
185
185
|
onClick: () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["clsx","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","jsx","_jsx","jsxs","_jsxs","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","className","Value","operator","map","element","label","join","OperatorSelector","view","onChangeView","operatorOptions","operators","value","currentFilter","filters","find","_filter","field","spacing","justify","children","options","onChange","newValue","_view$filters","_view$filters2","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","singleSelection","includes","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","key","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/filter-summary.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { RefObject } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport {\n\tOPERATORS,\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from '../../constants';\nimport type {\n\tFilter,\n\tNormalizedFilter,\n\tOperator,\n\tOption,\n\tView,\n} from '../../types';\n\ninterface FilterTextProps {\n\tactiveElements: Option[];\n\tfilterInView?: Filter;\n\tfilter: NormalizedFilter;\n}\n\ninterface OperatorSelectorProps {\n\tfilter: NormalizedFilter;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FilterSummaryProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\n}\n\nconst FilterText = ( {\n\tactiveElements,\n\tfilterInView,\n\tfilter,\n}: FilterTextProps ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filters__summary-filter-text-name\" />,\n\t\tValue: (\n\t\t\t<span className=\"dataviews-filters__summary-filter-text-value\" />\n\t\t),\n\t};\n\n\tif ( filterInView?.operator === OPERATOR_IS_ANY ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NONE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is: Admin\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not: Admin\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( {\n\tfilter,\n\tview,\n\tonChangeView,\n}: OperatorSelectorProps ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters?.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filters__summary-operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filters__summary-operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst operator = newValue as Operator;\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ).map(\n\t\t\t\t\t\t\t\t\t\t( _filter ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\treturn _filter;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\toperator,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n}: FilterSummaryProps ) {\n\tconst toggleRef = useRef< HTMLDivElement >( null );\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\tconst activeElements = filter.elements.filter( ( element ) => {\n\t\tif ( filter.singleSelection ) {\n\t\t\treturn element.value === filterInView?.value;\n\t\t}\n\t\treturn filterInView?.value?.includes( element.value );\n\t} );\n\tconst isPrimary = filter.isPrimary;\n\tconst hasValues = filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isPrimary || hasValues;\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filters__summary-popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filters__summary-chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'dataviews-filters__summary-chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif ( [ ENTER, SPACE ].includes( event.key ) ) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElements={ activeElements }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-filters__summary-chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters?.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t<SearchWidget { ...commonProps } />\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { memo, useContext, useRef, useMemo, useCallback } from '@wordpress/element';
|
|
5
|
+
import { __experimentalHStack as HStack, Button } from '@wordpress/components';
|
|
6
|
+
import { funnel } from '@wordpress/icons';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Internal dependencies
|
|
11
|
+
*/
|
|
12
|
+
import FilterSummary from './filter-summary';
|
|
13
|
+
import { default as AddFilter, AddFilterDropdownMenu } from './add-filter';
|
|
14
|
+
import ResetFilters from './reset-filters';
|
|
15
|
+
import DataViewsContext from '../dataviews-context';
|
|
16
|
+
import { sanitizeOperators } from '../../utils';
|
|
17
|
+
import { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../../constants';
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
export function useFilters(fields, view) {
|
|
21
|
+
return useMemo(() => {
|
|
22
|
+
const filters = [];
|
|
23
|
+
fields.forEach(field => {
|
|
24
|
+
if (!field.elements?.length) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const operators = sanitizeOperators(field);
|
|
28
|
+
if (operators.length === 0) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const isPrimary = !!field.filterBy?.isPrimary;
|
|
32
|
+
filters.push({
|
|
33
|
+
field: field.id,
|
|
34
|
+
name: field.label,
|
|
35
|
+
elements: field.elements,
|
|
36
|
+
singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),
|
|
37
|
+
operators,
|
|
38
|
+
isVisible: isPrimary || !!view.filters?.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),
|
|
39
|
+
isPrimary
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
// Sort filters by primary property. We need the primary filters to be first.
|
|
43
|
+
// Then we sort by name.
|
|
44
|
+
filters.sort((a, b) => {
|
|
45
|
+
if (a.isPrimary && !b.isPrimary) {
|
|
46
|
+
return -1;
|
|
47
|
+
}
|
|
48
|
+
if (!a.isPrimary && b.isPrimary) {
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
return a.name.localeCompare(b.name);
|
|
52
|
+
});
|
|
53
|
+
return filters;
|
|
54
|
+
}, [fields, view]);
|
|
55
|
+
}
|
|
56
|
+
export function FilterVisibilityToggle({
|
|
57
|
+
filters,
|
|
58
|
+
view,
|
|
59
|
+
onChangeView,
|
|
60
|
+
setOpenedFilter,
|
|
61
|
+
isShowingFilter,
|
|
62
|
+
setIsShowingFilter
|
|
63
|
+
}) {
|
|
64
|
+
const onChangeViewWithFilterVisibility = useCallback(_view => {
|
|
65
|
+
onChangeView(_view);
|
|
66
|
+
setIsShowingFilter(true);
|
|
67
|
+
}, [onChangeView, setIsShowingFilter]);
|
|
68
|
+
const visibleFilters = filters.filter(filter => filter.isVisible);
|
|
69
|
+
const hasVisibleFilters = !!visibleFilters.length;
|
|
70
|
+
if (!hasVisibleFilters) {
|
|
71
|
+
return /*#__PURE__*/_jsx(AddFilterDropdownMenu, {
|
|
72
|
+
filters: filters,
|
|
73
|
+
view: view,
|
|
74
|
+
onChangeView: onChangeViewWithFilterVisibility,
|
|
75
|
+
setOpenedFilter: setOpenedFilter,
|
|
76
|
+
trigger: /*#__PURE__*/_jsx(Button, {
|
|
77
|
+
className: "dataviews-filters__visibility-toggle",
|
|
78
|
+
size: "compact",
|
|
79
|
+
icon: funnel,
|
|
80
|
+
label: __('Add filter'),
|
|
81
|
+
isPressed: false,
|
|
82
|
+
"aria-expanded": false
|
|
83
|
+
})
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
87
|
+
className: "dataviews-filters__container-visibility-toggle",
|
|
88
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
89
|
+
className: "dataviews-filters__visibility-toggle",
|
|
90
|
+
size: "compact",
|
|
91
|
+
icon: funnel,
|
|
92
|
+
label: __('Toggle filter display'),
|
|
93
|
+
onClick: () => {
|
|
94
|
+
if (!isShowingFilter) {
|
|
95
|
+
setOpenedFilter(null);
|
|
96
|
+
}
|
|
97
|
+
setIsShowingFilter(!isShowingFilter);
|
|
98
|
+
},
|
|
99
|
+
isPressed: isShowingFilter,
|
|
100
|
+
"aria-expanded": isShowingFilter
|
|
101
|
+
}), hasVisibleFilters && !!view.filters?.length && /*#__PURE__*/_jsx("span", {
|
|
102
|
+
className: "dataviews-filters-toggle__count",
|
|
103
|
+
children: view.filters?.length
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function Filters() {
|
|
108
|
+
const {
|
|
109
|
+
fields,
|
|
110
|
+
view,
|
|
111
|
+
onChangeView,
|
|
112
|
+
openedFilter,
|
|
113
|
+
setOpenedFilter
|
|
114
|
+
} = useContext(DataViewsContext);
|
|
115
|
+
const addFilterRef = useRef(null);
|
|
116
|
+
const filters = useFilters(fields, view);
|
|
117
|
+
const addFilter = /*#__PURE__*/_jsx(AddFilter, {
|
|
118
|
+
filters: filters,
|
|
119
|
+
view: view,
|
|
120
|
+
onChangeView: onChangeView,
|
|
121
|
+
ref: addFilterRef,
|
|
122
|
+
setOpenedFilter: setOpenedFilter
|
|
123
|
+
}, "add-filter");
|
|
124
|
+
const visibleFilters = filters.filter(filter => filter.isVisible);
|
|
125
|
+
if (visibleFilters.length === 0) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const filterComponents = [...visibleFilters.map(filter => {
|
|
129
|
+
return /*#__PURE__*/_jsx(FilterSummary, {
|
|
130
|
+
filter: filter,
|
|
131
|
+
view: view,
|
|
132
|
+
onChangeView: onChangeView,
|
|
133
|
+
addFilterRef: addFilterRef,
|
|
134
|
+
openedFilter: openedFilter
|
|
135
|
+
}, filter.field);
|
|
136
|
+
}), addFilter];
|
|
137
|
+
filterComponents.push( /*#__PURE__*/_jsx(ResetFilters, {
|
|
138
|
+
filters: filters,
|
|
139
|
+
view: view,
|
|
140
|
+
onChangeView: onChangeView
|
|
141
|
+
}, "reset-filters"));
|
|
142
|
+
return /*#__PURE__*/_jsx(HStack, {
|
|
143
|
+
justify: "flex-start",
|
|
144
|
+
style: {
|
|
145
|
+
width: 'fit-content'
|
|
146
|
+
},
|
|
147
|
+
className: "dataviews-filters__container",
|
|
148
|
+
wrap: true,
|
|
149
|
+
children: filterComponents
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
export default memo(Filters);
|
|
153
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useContext","useRef","useMemo","useCallback","__experimentalHStack","HStack","Button","funnel","__","FilterSummary","default","AddFilter","AddFilterDropdownMenu","ResetFilters","DataViewsContext","sanitizeOperators","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","jsx","_jsx","jsxs","_jsxs","useFilters","fields","view","filters","forEach","field","elements","length","operators","isPrimary","filterBy","push","id","name","label","singleSelection","some","op","includes","isVisible","f","operator","sort","a","b","localeCompare","FilterVisibilityToggle","onChangeView","setOpenedFilter","isShowingFilter","setIsShowingFilter","onChangeViewWithFilterVisibility","_view","visibleFilters","filter","hasVisibleFilters","trigger","className","size","icon","isPressed","children","onClick","Filters","openedFilter","addFilterRef","addFilter","ref","filterComponents","map","justify","style","width","wrap"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport { default as AddFilter, AddFilterDropdownMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { sanitizeOperators } from '../../utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../../constants';\nimport type { NormalizedFilter, NormalizedField, View } from '../../types';\n\nexport function useFilters( fields: NormalizedField< any >[], view: View ) {\n\treturn useMemo( () => {\n\t\tconst filters: NormalizedFilter[] = [];\n\t\tfields.forEach( ( field ) => {\n\t\t\tif ( ! field.elements?.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst operators = sanitizeOperators( field );\n\t\t\tif ( operators.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\t\tfilters.push( {\n\t\t\t\tfield: field.id,\n\t\t\t\tname: field.label,\n\t\t\t\telements: field.elements,\n\t\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t\t),\n\t\t\t\toperators,\n\t\t\t\tisVisible:\n\t\t\t\t\tisPrimary ||\n\t\t\t\t\t!! view.filters?.some(\n\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t\t),\n\t\t\t\tisPrimary,\n\t\t\t} );\n\t\t} );\n\t\t// Sort filters by primary property. We need the primary filters to be first.\n\t\t// Then we sort by name.\n\t\tfilters.sort( ( a, b ) => {\n\t\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn a.name.localeCompare( b.name );\n\t\t} );\n\t\treturn filters;\n\t}, [ fields, view ] );\n}\n\nexport function FilterVisibilityToggle( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\tisShowingFilter,\n\tsetIsShowingFilter,\n}: {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: React.Dispatch< React.SetStateAction< boolean > >;\n} ) {\n\tconst onChangeViewWithFilterVisibility = useCallback(\n\t\t( _view: View ) => {\n\t\t\tonChangeView( _view );\n\t\t\tsetIsShowingFilter( true );\n\t\t},\n\t\t[ onChangeView, setIsShowingFilter ]\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\n\tconst hasVisibleFilters = !! visibleFilters.length;\n\tif ( ! hasVisibleFilters ) {\n\t\treturn (\n\t\t\t<AddFilterDropdownMenu\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeViewWithFilterVisibility }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ funnel }\n\t\t\t\t\t\tlabel={ __( 'Add filter' ) }\n\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"dataviews-filters__container-visibility-toggle\">\n\t\t\t<Button\n\t\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ funnel }\n\t\t\t\tlabel={ __( 'Toggle filter display' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isShowingFilter ) {\n\t\t\t\t\t\tsetOpenedFilter( null );\n\t\t\t\t\t}\n\t\t\t\t\tsetIsShowingFilter( ! isShowingFilter );\n\t\t\t\t} }\n\t\t\t\tisPressed={ isShowingFilter }\n\t\t\t\taria-expanded={ isShowingFilter }\n\t\t\t/>\n\t\t\t{ hasVisibleFilters && !! view.filters?.length && (\n\t\t\t\t<span className=\"dataviews-filters-toggle__count\">\n\t\t\t\t\t{ view.filters?.length }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction Filters() {\n\tconst { fields, view, onChangeView, openedFilter, setOpenedFilter } =\n\t\tuseContext( DataViewsContext );\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters = useFilters( fields, view );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\tif ( visibleFilters.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst filterComponents = [\n\t\t...visibleFilters.map( ( filter ) => {\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tfilterComponents.push(\n\t\t<ResetFilters\n\t\t\tkey=\"reset-filters\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tstyle={ { width: 'fit-content' } }\n\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\twrap\n\t\t>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\nexport default memo( Filters );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Button","__","jsx","_jsx","ResetFilter","filters","view","onChangeView","isPrimary","field","some","_filter","isDisabled","search","value","undefined","disabled","accessibleWhenDisabled","size","variant","className","onClick","page","children"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/reset-filters.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedFilter, View } from '../../types';\n\ninterface ResetFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\nexport default function ResetFilter( {\n\tfilters,\n\tview,\n\tonChangeView,\n}: ResetFilterProps ) {\n\tconst isPrimary = ( field: string ) =>\n\t\tfilters.some(\n\t\t\t( _filter ) => _filter.field === field && _filter.isPrimary\n\t\t);\n\tconst isDisabled =\n\t\t! view.search &&\n\t\t! view.filters?.some(\n\t\t\t( _filter ) =>\n\t\t\t\t_filter.value !== undefined || ! isPrimary( _filter.field )\n\t\t);\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isDisabled }\n\t\t\taccessibleWhenDisabled\n\t\t\tsize=\"compact\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tclassName=\"dataviews-filters__reset-button\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: '',\n\t\t\t\t\tfilters: [],\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Reset' ) }\n\t\t</Button>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,QAAQ,uBAAuB;AAC9C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAWA,eAAe,SAASC,WAAWA,CAAE;EACpCC,OAAO;EACPC,IAAI;EACJC;AACiB,CAAC,EAAG;EACrB,MAAMC,SAAS,GAAKC,KAAa,IAChCJ,OAAO,CAACK,IAAI,CACTC,OAAO,IAAMA,OAAO,CAACF,KAAK,KAAKA,KAAK,IAAIE,OAAO,CAACH,SACnD,CAAC;EACF,MAAMI,UAAU,GACf,CAAEN,IAAI,CAACO,MAAM,IACb,CAAEP,IAAI,CAACD,OAAO,EAAEK,IAAI,CACjBC,OAAO,IACRA,OAAO,CAACG,KAAK,KAAKC,SAAS,IAAI,CAAEP,SAAS,CAAEG,OAAO,CAACF,KAAM,CAC5D,CAAC;EACF,oBACCN,IAAA,CAACH,MAAM;IACNgB,QAAQ,EAAGJ,UAAY;IACvBK,sBAAsB;IACtBC,IAAI,EAAC,SAAS;IACdC,OAAO,EAAC,UAAU;IAClBC,SAAS,EAAC,iCAAiC;IAC3CC,OAAO,EAAGA,CAAA,KAAM;MACfd,YAAY,CAAE;QACb,GAAGD,IAAI;QACPgB,IAAI,EAAE,CAAC;QACPT,MAAM,EAAE,EAAE;QACVR,OAAO,EAAE;MACV,CAAE,CAAC;IACJ,CAAG;IAAAkB,QAAA,EAEDtB,EAAE,CAAE,OAAQ;EAAC,CACR,CAAC;AAEX","ignoreList":[]}
|