{
  "version": 3,
  "sources": ["../../src/query-controls/index.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AuthorSelect from './author-select';\nimport CategorySelect from './category-select';\nimport FormTokenField from '../form-token-field';\nimport RangeControl from '../range-control';\nimport SelectControl from '../select-control';\nimport { VStack } from '../v-stack';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DEFAULT_MIN_ITEMS = 1;\nconst DEFAULT_MAX_ITEMS = 100;\nconst MAX_CATEGORIES_SUGGESTIONS = 20;\nfunction isSingleCategorySelection(props) {\n  return 'categoriesList' in props;\n}\nfunction isMultipleCategorySelection(props) {\n  return 'categorySuggestions' in props;\n}\nconst defaultOrderByOptions = [{\n  label: __('Newest to oldest'),\n  value: 'date/desc'\n}, {\n  label: __('Oldest to newest'),\n  value: 'date/asc'\n}, {\n  /* translators: Label for ordering posts by title in ascending order. */\n  label: __('A \u2192 Z'),\n  value: 'title/asc'\n}, {\n  /* translators: Label for ordering posts by title in descending order. */\n  label: __('Z \u2192 A'),\n  value: 'title/desc'\n}];\n\n/**\n * Controls to query for posts.\n *\n * ```jsx\n * const MyQueryControls = () => (\n *   <QueryControls\n *     { ...{ maxItems, minItems, numberOfItems, order, orderBy, orderByOptions } }\n *     onOrderByChange={ ( newOrderBy ) => {\n *       updateQuery( { orderBy: newOrderBy } )\n *     }\n *     onOrderChange={ ( newOrder ) => {\n *       updateQuery( { order: newOrder } )\n *     }\n *     categoriesList={ categories }\n *     selectedCategoryId={ category }\n *     onCategoryChange={ ( newCategory ) => {\n *       updateQuery( { category: newCategory } )\n *     }\n *     onNumberOfItemsChange={ ( newNumberOfItems ) => {\n *       updateQuery( { numberOfItems: newNumberOfItems } )\n *     } }\n *   />\n * );\n * ```\n */\nexport function QueryControls({\n  authorList,\n  selectedAuthorId,\n  numberOfItems,\n  order,\n  orderBy,\n  orderByOptions = defaultOrderByOptions,\n  maxItems = DEFAULT_MAX_ITEMS,\n  minItems = DEFAULT_MIN_ITEMS,\n  onAuthorChange,\n  onNumberOfItemsChange,\n  onOrderChange,\n  onOrderByChange,\n  // Props for single OR multiple category selection are not destructured here,\n  // but instead are destructured inline where necessary.\n  ...props\n}) {\n  return /*#__PURE__*/_jsx(VStack, {\n    spacing: \"4\",\n    className: \"components-query-controls\",\n    children: [onOrderChange && onOrderByChange && /*#__PURE__*/_jsx(SelectControl, {\n      __next40pxDefaultSize: true,\n      label: __('Order by'),\n      value: orderBy === undefined || order === undefined ? undefined : `${orderBy}/${order}`,\n      options: orderByOptions,\n      onChange: value => {\n        if (typeof value !== 'string') {\n          return;\n        }\n        const [newOrderBy, newOrder] = value.split('/');\n        if (newOrder !== order) {\n          onOrderChange(newOrder);\n        }\n        if (newOrderBy !== orderBy) {\n          onOrderByChange(newOrderBy);\n        }\n      }\n    }, \"query-controls-order-select\"), isSingleCategorySelection(props) && props.categoriesList && props.onCategoryChange && /*#__PURE__*/_jsx(CategorySelect, {\n      __next40pxDefaultSize: true,\n      categoriesList: props.categoriesList,\n      label: __('Category'),\n      noOptionLabel: _x('All', 'categories'),\n      selectedCategoryId: props.selectedCategoryId,\n      onChange: props.onCategoryChange\n    }, \"query-controls-category-select\"), isMultipleCategorySelection(props) && props.categorySuggestions && props.onCategoryChange && /*#__PURE__*/_jsx(FormTokenField, {\n      __next40pxDefaultSize: true,\n      label: __('Categories'),\n      value: props.selectedCategories && props.selectedCategories.map(item => ({\n        id: item.id,\n        // Keeping the fallback to `item.value` for legacy reasons,\n        // even if items of `selectedCategories` should not have a\n        // `value` property.\n        // @ts-expect-error\n        value: item.name || item.value\n      })),\n      suggestions: Object.keys(props.categorySuggestions),\n      onChange: props.onCategoryChange,\n      maxSuggestions: MAX_CATEGORIES_SUGGESTIONS\n    }, \"query-controls-categories-select\"), onAuthorChange && /*#__PURE__*/_jsx(AuthorSelect, {\n      __next40pxDefaultSize: true,\n      authorList: authorList,\n      label: __('Author'),\n      noOptionLabel: _x('All', 'authors'),\n      selectedAuthorId: selectedAuthorId,\n      onChange: onAuthorChange\n    }, \"query-controls-author-select\"), onNumberOfItemsChange && /*#__PURE__*/_jsx(RangeControl, {\n      __next40pxDefaultSize: true,\n      label: __('Number of items'),\n      value: numberOfItems,\n      onChange: onNumberOfItemsChange,\n      min: minItems,\n      max: maxItems,\n      required: true\n    }, \"query-controls-range-control\")]\n  });\n}\nexport default QueryControls;"],
  "mappings": "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",
  "names": ["_jsx", "SelectControl", "CategorySelect", "FormTokenField", "AuthorSelect", "RangeControl"]
}
