@10up/block-components
Version:
10up Components built for the WordPress Block Editor.
949 lines (809 loc) • 75 kB
JavaScript
/******/ (function() { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./components/post-context/context.ts":
/*!********************************************!*\
!*** ./components/post-context/context.ts ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ DEFAULT_POST_CONTEXT: function() { return /* binding */ DEFAULT_POST_CONTEXT; },
/* harmony export */ PostContext: function() { return /* binding */ PostContext; },
/* harmony export */ usePostContext: function() { return /* binding */ usePostContext; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
const DEFAULT_POST_CONTEXT = {
postId: undefined,
postType: undefined,
isEditable: undefined
};
const PostContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createContext)(DEFAULT_POST_CONTEXT);
const usePostContext = () => {
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useContext)(PostContext);
};
/***/ }),
/***/ "./components/post-primary-term/index.tsx":
/*!************************************************!*\
!*** ./components/post-primary-term/index.tsx ***!
\************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ PostPrimaryTerm: function() { return /* binding */ PostPrimaryTerm; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/html-entities */ "@wordpress/html-entities");
/* harmony import */ var _wordpress_html_entities__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../hooks */ "./hooks/index.ts");
var _jsxFileName = "/Users/fabiankaegy/Developer/10up/block-components/components/post-primary-term/index.tsx";
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
const PostPrimaryTerm = ({
taxonomyName = 'category',
placeholder = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Select a term', 'tenup'),
isLink = true,
...rest
}) => {
const [primaryTerm, isSupportedTaxonomy] = (0,_hooks__WEBPACK_IMPORTED_MODULE_3__.usePrimaryTerm)(taxonomyName);
const hasPrimaryTerm = !!primaryTerm;
const termString = hasPrimaryTerm ? primaryTerm.name : placeholder;
const termUrl = hasPrimaryTerm ? primaryTerm.link : '#';
if (!isSupportedTaxonomy) {
return null;
}
const Tag = isLink ? 'a' : 'span';
const wrapperProps = {
...rest
};
if (isLink) {
wrapperProps.href = termUrl;
}
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(Tag, _extends({}, wrapperProps, {
__self: undefined,
__source: {
fileName: _jsxFileName,
lineNumber: 54,
columnNumber: 9
}
}), (0,_wordpress_html_entities__WEBPACK_IMPORTED_MODULE_2__.decodeEntities)(termString));
};
/***/ }),
/***/ "./hooks/index.ts":
/*!************************!*\
!*** ./hooks/index.ts ***!
\************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useAllTerms: function() { return /* reexport safe */ _use_all_terms__WEBPACK_IMPORTED_MODULE_8__.useAllTerms; },
/* harmony export */ useBlockParentAttributes: function() { return /* reexport safe */ _use_block_parent_attributes__WEBPACK_IMPORTED_MODULE_5__.useBlockParentAttributes; },
/* harmony export */ useFilteredList: function() { return /* reexport safe */ _use_filtered_list__WEBPACK_IMPORTED_MODULE_3__.useFilteredList; },
/* harmony export */ useFlatInnerBlocks: function() { return /* reexport safe */ _use_flat_inner_blocks__WEBPACK_IMPORTED_MODULE_19__.useFlatInnerBlocks; },
/* harmony export */ useHasSelectedInnerBlock: function() { return /* reexport safe */ _use_has_selected_inner_block__WEBPACK_IMPORTED_MODULE_0__.useHasSelectedInnerBlock; },
/* harmony export */ useIcon: function() { return /* reexport safe */ _use_icons__WEBPACK_IMPORTED_MODULE_2__.useIcon; },
/* harmony export */ useIcons: function() { return /* reexport safe */ _use_icons__WEBPACK_IMPORTED_MODULE_2__.useIcons; },
/* harmony export */ useIsPluginActive: function() { return /* reexport safe */ _use_is_plugin_active__WEBPACK_IMPORTED_MODULE_12__.useIsPluginActive; },
/* harmony export */ useIsSupportedMetaField: function() { return /* reexport safe */ _use_is_supported_meta_value__WEBPACK_IMPORTED_MODULE_18__.useIsSupportedMetaField; },
/* harmony export */ useIsSupportedTaxonomy: function() { return /* reexport safe */ _use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_7__.useIsSupportedTaxonomy; },
/* harmony export */ useMedia: function() { return /* reexport safe */ _use_media__WEBPACK_IMPORTED_MODULE_4__.useMedia; },
/* harmony export */ usePopover: function() { return /* reexport safe */ _use_popover__WEBPACK_IMPORTED_MODULE_14__.usePopover; },
/* harmony export */ usePost: function() { return /* reexport safe */ _use_post__WEBPACK_IMPORTED_MODULE_6__.usePost; },
/* harmony export */ usePostMetaValue: function() { return /* reexport safe */ _use_post_meta_value__WEBPACK_IMPORTED_MODULE_16__.usePostMetaValue; },
/* harmony export */ usePrimaryTerm: function() { return /* reexport safe */ _use_primary_term__WEBPACK_IMPORTED_MODULE_13__.usePrimaryTerm; },
/* harmony export */ useRequestData: function() { return /* reexport safe */ _use_request_data__WEBPACK_IMPORTED_MODULE_1__.useRequestData; },
/* harmony export */ useScript: function() { return /* reexport safe */ _use_script__WEBPACK_IMPORTED_MODULE_15__.useScript; },
/* harmony export */ useSelectedTermIds: function() { return /* reexport safe */ _use_selected_term_ids__WEBPACK_IMPORTED_MODULE_9__.useSelectedTermIds; },
/* harmony export */ useSelectedTerms: function() { return /* reexport safe */ _use_selected_terms__WEBPACK_IMPORTED_MODULE_10__.useSelectedTerms; },
/* harmony export */ useSelectedTermsOfSavedPost: function() { return /* reexport safe */ _use_selected_terms_of_saved_post__WEBPACK_IMPORTED_MODULE_11__.useSelectedTermsOfSavedPost; },
/* harmony export */ useTaxonomy: function() { return /* reexport safe */ _use_taxonomy__WEBPACK_IMPORTED_MODULE_17__.useTaxonomy; }
/* harmony export */ });
/* harmony import */ var _use_has_selected_inner_block__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./use-has-selected-inner-block */ "./hooks/use-has-selected-inner-block/index.ts");
/* harmony import */ var _use_request_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-request-data */ "./hooks/use-request-data/index.ts");
/* harmony import */ var _use_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-icons */ "./hooks/use-icons/index.ts");
/* harmony import */ var _use_filtered_list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./use-filtered-list */ "./hooks/use-filtered-list/index.ts");
/* harmony import */ var _use_media__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./use-media */ "./hooks/use-media/index.ts");
/* harmony import */ var _use_block_parent_attributes__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./use-block-parent-attributes */ "./hooks/use-block-parent-attributes/index.ts");
/* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./use-post */ "./hooks/use-post/index.ts");
/* harmony import */ var _use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./use-is-supported-taxonomy */ "./hooks/use-is-supported-taxonomy/index.ts");
/* harmony import */ var _use_all_terms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./use-all-terms */ "./hooks/use-all-terms/index.ts");
/* harmony import */ var _use_selected_term_ids__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./use-selected-term-ids */ "./hooks/use-selected-term-ids/index.ts");
/* harmony import */ var _use_selected_terms__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./use-selected-terms */ "./hooks/use-selected-terms/index.ts");
/* harmony import */ var _use_selected_terms_of_saved_post__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./use-selected-terms-of-saved-post */ "./hooks/use-selected-terms-of-saved-post/index.ts");
/* harmony import */ var _use_is_plugin_active__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./use-is-plugin-active */ "./hooks/use-is-plugin-active/index.ts");
/* harmony import */ var _use_primary_term__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./use-primary-term */ "./hooks/use-primary-term/index.ts");
/* harmony import */ var _use_popover__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./use-popover */ "./hooks/use-popover/index.tsx");
/* harmony import */ var _use_script__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./use-script */ "./hooks/use-script/index.ts");
/* harmony import */ var _use_post_meta_value__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./use-post-meta-value */ "./hooks/use-post-meta-value/index.ts");
/* harmony import */ var _use_taxonomy__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./use-taxonomy */ "./hooks/use-taxonomy/index.ts");
/* harmony import */ var _use_is_supported_meta_value__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./use-is-supported-meta-value */ "./hooks/use-is-supported-meta-value/index.ts");
/* harmony import */ var _use_flat_inner_blocks__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./use-flat-inner-blocks */ "./hooks/use-flat-inner-blocks/index.ts");
/***/ }),
/***/ "./hooks/use-all-terms/index.ts":
/*!**************************************!*\
!*** ./hooks/use-all-terms/index.ts ***!
\**************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useAllTerms: function() { return /* binding */ useAllTerms; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__);
const useAllTerms = taxonomyName => {
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
// @ts-ignore-next-line - The type definitions for the core store are incomplete.
const {
getEntityRecords,
hasFinishedResolution
} = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store);
const termsSelector = ['taxonomy', taxonomyName, {
per_page: -1,
context: 'view'
}];
const terms = getEntityRecords(...termsSelector);
const hasResolvedTerms = hasFinishedResolution('getEntityRecords', termsSelector);
return [terms, hasResolvedTerms];
}, [taxonomyName]);
};
/***/ }),
/***/ "./hooks/use-block-parent-attributes/index.ts":
/*!****************************************************!*\
!*** ./hooks/use-block-parent-attributes/index.ts ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useBlockParentAttributes: function() { return /* binding */ useBlockParentAttributes; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__);
// @ts-ignore-next-line - The type definitions for the block-editor package are incomplete.
/*
* useBlockParentAttributes
*
* allows you to easily interface with the attributes of the direct
* parent of the current block
*/
function useBlockParentAttributes() {
const {
clientId
} = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockEditContext)();
const parentBlocks = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(
// @ts-ignore-next-line - The type definitions for the core store are incomplete.
select => select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store).getBlockParents(clientId), [clientId]);
const parentBlockClientId = parentBlocks[parentBlocks.length - 1];
const parentBlock = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(
// @ts-ignore-next-line - The type definitions for the core store are incomplete.
select => select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store).getBlock(parentBlockClientId), [parentBlockClientId]);
const {
updateBlockAttributes
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store);
const setParentAttributes = attributes => {
updateBlockAttributes(parentBlockClientId, attributes);
};
return [parentBlock?.attributes ?? {}, setParentAttributes];
}
/***/ }),
/***/ "./hooks/use-filtered-list/index.ts":
/*!******************************************!*\
!*** ./hooks/use-filtered-list/index.ts ***!
\******************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useFilteredList: function() { return /* binding */ useFilteredList; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @leeoniya/ufuzzy */ "@leeoniya/ufuzzy");
/* harmony import */ var _leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1__);
// eslint-disable-next-line new-cap
const fuzzy = new (_leeoniya_ufuzzy__WEBPACK_IMPORTED_MODULE_1___default())();
/**
* useFilteredList
*
* @param {Array} list list of items to filter
* @param {string} searchTerm search term string
* @param {string?} property name of the prop
* @returns {Array} filtered list
*/
function useFilteredList(list = [], searchTerm = '', property = 'name') {
const [filteredList, setFilteredList] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(list);
const propertyList = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => list.map(item => item[property]), [list, property]);
const filterList = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useCallback)(searchTerm => {
const matchedNames = fuzzy.filter(propertyList, searchTerm);
const results = matchedNames?.map(index => list[index]) || [];
return results;
}, [propertyList, list]);
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
const hasListItems = !!list?.length;
const hasSearchTerm = searchTerm !== '';
const canFilter = hasSearchTerm && hasListItems;
const newFilteredList = canFilter ? filterList(searchTerm) : list;
setFilteredList(newFilteredList);
}, [searchTerm, filterList, list]);
return [filteredList];
}
/***/ }),
/***/ "./hooks/use-flat-inner-blocks/index.ts":
/*!**********************************************!*\
!*** ./hooks/use-flat-inner-blocks/index.ts ***!
\**********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useFlatInnerBlocks: function() { return /* binding */ useFlatInnerBlocks; }
/* harmony export */ });
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_1__);
const useFlatInnerBlocks = clientId => {
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
function recursivelyGetInnerBlocks(clientId) {
let allInnerBlocks = [];
// @ts-expect-error - TS doesn't know about the block editor store
const innerBlocks = select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__.store).getBlocks(clientId);
innerBlocks.forEach(block => {
allInnerBlocks.push(block);
allInnerBlocks = allInnerBlocks.concat(recursivelyGetInnerBlocks(block.clientId));
});
return allInnerBlocks;
}
return recursivelyGetInnerBlocks(clientId);
}, [clientId]);
};
/***/ }),
/***/ "./hooks/use-has-selected-inner-block/index.ts":
/*!*****************************************************!*\
!*** ./hooks/use-has-selected-inner-block/index.ts ***!
\*****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useHasSelectedInnerBlock: function() { return /* binding */ useHasSelectedInnerBlock; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor");
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__);
// @ts-ignore-next-line - The type definitions for the block-editor package are incomplete.
/*
* useHasSelectedInnerBlock
* Determine whether one of the inner blocks currently is selected
*/
function useHasSelectedInnerBlock() {
const {
clientId
} = (0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockEditContext)();
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(
// @ts-ignore-next-line - The type definitions for the core store are incomplete.
select => select(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.store).hasSelectedInnerBlock(clientId, true), [clientId]);
}
/***/ }),
/***/ "./hooks/use-icons/index.ts":
/*!**********************************!*\
!*** ./hooks/use-icons/index.ts ***!
\**********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useIcon: function() { return /* binding */ useIcon; },
/* harmony export */ useIcons: function() { return /* binding */ useIcons; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _stores__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stores */ "./stores/index.ts");
function transformIcons(iconSet) {
return iconSet.icons.map(icon => ({
...icon,
iconSet: iconSet.name
}));
}
const useIcons = (iconSet = '') => {
const [icons, setIcons] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)([]);
const rawIcons = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
const {
getIconSet,
getIconSets
} = select(_stores__WEBPACK_IMPORTED_MODULE_2__.iconStore);
if (iconSet) {
return getIconSet(iconSet);
}
return getIconSets();
}, [iconSet]);
(0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
if (iconSet) {
setIcons(transformIcons(rawIcons));
} else {
setIcons(Object.values(rawIcons).reduce((rawIcons, iconSet) => [...rawIcons, ...transformIcons(iconSet)], []));
}
}, [rawIcons, iconSet]);
return icons;
};
const useIcon = (iconSet, name) => {
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
return select(_stores__WEBPACK_IMPORTED_MODULE_2__.iconStore).getIcon(iconSet, name);
}, [iconSet, name]);
};
/***/ }),
/***/ "./hooks/use-is-plugin-active/index.ts":
/*!*********************************************!*\
!*** ./hooks/use-is-plugin-active/index.ts ***!
\*********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useIsPluginActive: function() { return /* binding */ useIsPluginActive; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__);
const ACTIVE_STATUSES = ['active', 'network-active'];
/**
* Custom hook to check if a plugin is active and whether its resolution has finished.
*
* @param {string} pluginName The name of the plugin to check.
* @returns {[boolean, boolean]} A tuple with the first value being whether the plugin is active and the second value being whether the resolution has finished.
*/
const useIsPluginActive = pluginName => {
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
const storeSelectors = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store);
const plugin = storeSelectors.getPlugin(pluginName);
const hasResolvedPlugins = storeSelectors.hasFinishedResolution('getPlugin', [pluginName]);
// @ts-ignore-next-line - The check here is intentional to see if the plugin is active.
const isPluginActive = ACTIVE_STATUSES.includes(plugin?.status);
return [isPluginActive, hasResolvedPlugins];
}, [pluginName]);
};
/***/ }),
/***/ "./hooks/use-is-supported-meta-value/index.ts":
/*!****************************************************!*\
!*** ./hooks/use-is-supported-meta-value/index.ts ***!
\****************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useIsSupportedMetaField: function() { return /* binding */ useIsSupportedMetaField; }
/* harmony export */ });
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../use-post */ "./hooks/use-post/index.ts");
const useIsSupportedMetaField = metaKey => {
const {
postId,
postType
} = (0,_use_post__WEBPACK_IMPORTED_MODULE_1__.usePost)();
const {
record
} = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__.useEntityRecord)('postType', postType, postId);
const {
meta
} = record || {}; // Add type assertion
const supportedMetaKeys = Object.keys(meta || {});
const isSupportedMetaField = supportedMetaKeys?.some(name => name === metaKey);
return [!!isSupportedMetaField];
};
/***/ }),
/***/ "./hooks/use-is-supported-taxonomy/index.ts":
/*!**************************************************!*\
!*** ./hooks/use-is-supported-taxonomy/index.ts ***!
\**************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useIsSupportedTaxonomy: function() { return /* binding */ useIsSupportedTaxonomy; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__);
const useIsSupportedTaxonomy = (postType, taxonomyName) => {
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
// @ts-ignore-next-line - The type definitions for the core store are incomplete.
const {
getPostType,
hasFinishedResolution
} = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store);
const postTypeObject = getPostType(postType);
const hasResolvedPostType = hasFinishedResolution('getPostType', [postType]);
const isSupportedTaxonomy = postTypeObject?.taxonomies?.some(name => name === taxonomyName);
return [!!isSupportedTaxonomy, hasResolvedPostType];
}, [postType, taxonomyName]);
};
/***/ }),
/***/ "./hooks/use-media/index.ts":
/*!**********************************!*\
!*** ./hooks/use-media/index.ts ***!
\**********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useMedia: function() { return /* binding */ useMedia; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__);
function useMedia(id) {
return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
// @ts-ignore-next-line - The type definitions for the core store are incomplete.
const {
getMedia,
isResolving,
hasFinishedResolution
} = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store);
const mediaParameters = [id, {
context: 'view'
}];
return {
media: getMedia(...mediaParameters),
isResolvingMedia: isResolving('getMedia', mediaParameters),
hasResolvedMedia: hasFinishedResolution('getMedia', mediaParameters)
};
}, [id]);
}
/***/ }),
/***/ "./hooks/use-on-click-outside.ts":
/*!***************************************!*\
!*** ./hooks/use-on-click-outside.ts ***!
\***************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useOnClickOutside: function() { return /* binding */ useOnClickOutside; }
/* harmony export */ });
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__);
/**
* useOnClickOutside
*
* Note: This hook is only intended to be used in the WordPress backend/block editor.
*
* @param {Function} onClickOutside callback that will get invoked when the user clicks outside of the target
* @returns {object} ref to the target element
*/
function useOnClickOutside(onClickOutside) {
const ref = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_0__.useRefEffect)(element => {
if (!element) {
return () => {};
}
const listener = event => {
// Do nothing if clicking ref's element or descendent elements
if (!element || element.contains(event.target)) {
return;
}
onClickOutside(event);
};
const ownerDocument = element.ownerDocument || document;
const isRenderedInsideIframe = ownerDocument !== document;
const editorCanvasIframe = document.querySelector('[name="editor-canvas"]');
const editorCanvasDocument = editorCanvasIframe?.contentDocument;
ownerDocument.addEventListener('mousedown', listener);
ownerDocument.addEventListener('touchstart', listener);
// If the element is rendered inside an iframe, we need to listen to events on the parent document
// as well to detect clicks outside the iframe.
if (isRenderedInsideIframe) {
document.addEventListener('mousedown', listener);
document.addEventListener('touchstart', listener);
// If the element is rendered outside the editor canvas iframe, we need to listen to events on the editor canvas
// document as well to detect clicks inside the editor canvas.
} else if (editorCanvasDocument) {
editorCanvasDocument.addEventListener('mousedown', listener);
editorCanvasDocument.addEventListener('touchstart', listener);
}
return () => {
ownerDocument.removeEventListener('mousedown', listener);
ownerDocument.removeEventListener('touchstart', listener);
if (isRenderedInsideIframe) {
document.removeEventListener('mousedown', listener);
document.removeEventListener('touchstart', listener);
} else if (editorCanvasDocument) {
editorCanvasDocument.removeEventListener('mousedown', listener);
editorCanvasDocument.removeEventListener('touchstart', listener);
}
};
}, [onClickOutside]);
return ref;
}
/***/ }),
/***/ "./hooks/use-popover/index.tsx":
/*!*************************************!*\
!*** ./hooks/use-popover/index.tsx ***!
\*************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ usePopover: function() { return /* binding */ usePopover; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _use_on_click_outside__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../use-on-click-outside */ "./hooks/use-on-click-outside.ts");
var _jsxFileName = "/Users/fabiankaegy/Developer/10up/block-components/hooks/use-popover/index.tsx";
const usePopover = () => {
// Use internal state instead of a ref to make sure that the component
// re-renders when the popover's anchor updates.
const [popoverAnchor, setPopoverAnchor] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)();
const [isVisible, setIsVisible] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
const toggleVisible = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
setIsVisible(visible => !visible);
}, []);
const toggleProps = {
onClick: toggleVisible,
'aria-expanded': isVisible,
ref: setPopoverAnchor
};
const ref = (0,_use_on_click_outside__WEBPACK_IMPORTED_MODULE_2__.useOnClickOutside)(() => setIsVisible(false));
const PopoverComponent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => ({
children
}) => {
if (!isVisible) {
return null;
}
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Popover, {
ref: ref,
anchor: popoverAnchor,
focusOnMount: false,
animate: false,
__self: undefined,
__source: {
fileName: _jsxFileName,
lineNumber: 35,
columnNumber: 6
}
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
style: {
padding: '16px',
minWidth: '250px'
},
__self: undefined,
__source: {
fileName: _jsxFileName,
lineNumber: 36,
columnNumber: 7
}
}, children));
}, [isVisible, popoverAnchor, ref]);
return {
setPopoverAnchor,
toggleVisible,
toggleProps,
Popover: PopoverComponent
};
};
/***/ }),
/***/ "./hooks/use-post-meta-value/index.ts":
/*!********************************************!*\
!*** ./hooks/use-post-meta-value/index.ts ***!
\********************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ usePostMetaValue: function() { return /* binding */ usePostMetaValue; }
/* harmony export */ });
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../use-post */ "./hooks/use-post/index.ts");
const usePostMetaValue = metaKey => {
const {
postId,
postType
} = (0,_use_post__WEBPACK_IMPORTED_MODULE_1__.usePost)();
const [meta, setMeta] = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_0__.useEntityProp)('postType', postType, 'meta', postId);
if (!meta || !metaKey || !Object.prototype.hasOwnProperty.call(meta, metaKey)) {
return [undefined, () => {}];
}
const metaValue = meta[metaKey];
const setMetaValue = newValue => {
setMeta({
...meta,
[metaKey]: newValue
});
};
return [metaValue, setMetaValue];
};
/***/ }),
/***/ "./hooks/use-post/index.ts":
/*!*********************************!*\
!*** ./hooks/use-post/index.ts ***!
\*********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ usePost: function() { return /* binding */ usePost; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/editor */ "@wordpress/editor");
/* harmony import */ var _wordpress_editor__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_editor__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _components_post_context_context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../components/post-context/context */ "./components/post-context/context.ts");
// @ts-ignore-next-line - The type definitions for the editor package are incomplete.
function usePost() {
const {
postId: blockContextPostId,
postType: blockContextPostType,
isEditable: blockContextIsEditable
} = (0,_components_post_context_context__WEBPACK_IMPORTED_MODULE_2__.usePostContext)();
const {
globalPostId,
globalPostType
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => ({
globalPostId: select(_wordpress_editor__WEBPACK_IMPORTED_MODULE_1__.store).getCurrentPostId(),
globalPostType: select(_wordpress_editor__WEBPACK_IMPORTED_MODULE_1__.store).getCurrentPostType()
}), []);
const hasBlockContext = !!blockContextPostId && !!blockContextPostType;
return {
postId: blockContextPostId || globalPostId,
postType: blockContextPostType || globalPostType,
isEditable: hasBlockContext ? blockContextIsEditable : true
};
}
/***/ }),
/***/ "./hooks/use-primary-term/index.ts":
/*!*****************************************!*\
!*** ./hooks/use-primary-term/index.ts ***!
\*****************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ usePrimaryTerm: function() { return /* binding */ usePrimaryTerm; }
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _use_post__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../use-post */ "./hooks/use-post/index.ts");
/* harmony import */ var _use_is_plugin_active__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../use-is-plugin-active */ "./hooks/use-is-plugin-active/index.ts");
/* harmony import */ var _use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../use-is-supported-taxonomy */ "./hooks/use-is-supported-taxonomy/index.ts");
const usePrimaryTerm = taxonomyName => {
const {
postType,
isEditable
} = (0,_use_post__WEBPACK_IMPORTED_MODULE_3__.usePost)();
const [isYoastSeoActive, hasResolvedIsPluginActive] = (0,_use_is_plugin_active__WEBPACK_IMPORTED_MODULE_4__.useIsPluginActive)('wordpress-seo/wp-seo');
const [isSupportedTaxonomy, hasResolvedIsSupportedTaxonomy] = (0,_use_is_supported_taxonomy__WEBPACK_IMPORTED_MODULE_5__.useIsSupportedTaxonomy)(postType, taxonomyName);
const primaryTermId = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
if (!hasResolvedIsSupportedTaxonomy || !hasResolvedIsPluginActive) {
return null;
}
if (!isYoastSeoActive && hasResolvedIsPluginActive) {
// eslint-disable-next-line no-console
console.error('Yoast SEO is not active. Please install and activate Yoast SEO to use the PostPrimaryCategory component.');
return null;
}
if (!isSupportedTaxonomy && hasResolvedIsSupportedTaxonomy) {
// eslint-disable-next-line no-console
console.error(`The taxonomy "${taxonomyName}" is not supported for the post type "${postType}". Please use a supported taxonomy.`);
return null;
}
const yoastStore = select('yoast-seo/editor');
if (!yoastStore) {
// eslint-disable-next-line no-console
console.error(`The yoast-seo/editor store does is not available.`);
return null;
}
// @ts-ignore-next-line - The type definitions for the Yoast store are incomplete.
return select('yoast-seo/editor').getPrimaryTaxonomyId(taxonomyName);
}, [taxonomyName, isYoastSeoActive, isSupportedTaxonomy, hasResolvedIsSupportedTaxonomy, hasResolvedIsPluginActive]);
const primaryTerm = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
if (!primaryTermId) {
return null;
}
const {
getEntityRecord
} = select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_2__.store);
return getEntityRecord('taxonomy', taxonomyName, primaryTermId);
}, [primaryTermId]);
return [!isEditable ? {
name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Primary Term', 'tenup'),
link: '#'
} : primaryTerm, isSupportedTaxonomy];
};
/***/ }),
/***/ "./hooks/use-request-data/index.ts":
/*!*****************************************!*\
!*** ./hooks/use-request-data/index.ts ***!
\*****************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useRequestData: function() { return /* binding */ useRequestData; }
/* harmony export */ });
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/isObject */ "./node_modules/lodash/isObject.js");
/* harmony import */ var lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_isObject__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/core-data */ "@wordpress/core-data");
/* harmony import */ var _wordpress_core_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_2__);
/**
* External dependencies
*/
// eslint-disable-next-line import/no-extraneous-dependencies
/**
* WordPress dependencies
*/
// @ts-ignore-next-line - The type definitions for the data package are incomplete.
/**
* Hook for retrieving data from the WordPress REST API.
*
* @param {string} entity The entity to retrieve. ie. postType
* @param {string} kind The entity kind to retrieve. ie. posts
* @param {object | number} [query] Optional. Query to pass to the geEntityRecords request. Defaults to an empty object. If a number is passed, it is used as the ID of the entity to retrieve via getEntityRecord.
* @returns {Array} The data returned from the request.
*/
const useRequestData = (entity, kind, query = {}) => {
const functionToCall = lodash_isObject__WEBPACK_IMPORTED_MODULE_0___default()(query) ? 'getEntityRecords' : 'getEntityRecord';
const {
invalidateResolution
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)('core/data');
const {
data,
isLoading
} = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => {
return {
// @ts-ignore-next-line - The type definitions for the data package are incomplete.
data: select(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store)[functionToCall](entity, kind, query),
// @ts-ignore-next-line - The type definitions for the data package are incomplete.
isLoading: select('core/data').isResolving(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store, functionToCall, [entity, kind, query])
};
}, [entity, kind, query]);
const invalidateResolver = () => {
invalidateResolution(_wordpress_core_data__WEBPACK_IMPORTED_MODULE_1__.store, functionToCall, [entity, kind, query]);
};
return [data, isLoading, invalidateResolver];
};
/***/ }),
/***/ "./hooks/use-script/index.ts":
/*!***********************************!*\
!*** ./hooks/use-script/index.ts ***!
\***********************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ useScript: function() { return /* binding */ useScript; }
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
/**
* Add a script tag to body
*
* @param {string} scriptSource Source URL of the script to be loaded.
* @returns {HTMLScriptElement} The script tag.
*/
const useScript = scriptSource => {
const scriptElement = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
const [scriptLoaded, setScriptLoaded]