Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-inclu.../js/dist
File: block-editor.js
group: group,
[21500] Fix | Delete
label: label,
[21501] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockSupportSlotContainer, {
[21502] Fix | Delete
...props,
[21503] Fix | Delete
fillProps: computedFillProps,
[21504] Fix | Delete
Slot: Slot
[21505] Fix | Delete
})
[21506] Fix | Delete
});
[21507] Fix | Delete
}
[21508] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Slot, {
[21509] Fix | Delete
...props,
[21510] Fix | Delete
fillProps: computedFillProps,
[21511] Fix | Delete
bubblesVirtually: true
[21512] Fix | Delete
});
[21513] Fix | Delete
}
[21514] Fix | Delete
[21515] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-controls/index.js
[21516] Fix | Delete
/**
[21517] Fix | Delete
* Internal dependencies
[21518] Fix | Delete
*/
[21519] Fix | Delete
[21520] Fix | Delete
[21521] Fix | Delete
[21522] Fix | Delete
const InspectorControls = InspectorControlsFill;
[21523] Fix | Delete
InspectorControls.Slot = InspectorControlsSlot;
[21524] Fix | Delete
[21525] Fix | Delete
// This is just here for backward compatibility.
[21526] Fix | Delete
const InspectorAdvancedControls = props => {
[21527] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorControlsFill, {
[21528] Fix | Delete
...props,
[21529] Fix | Delete
group: "advanced"
[21530] Fix | Delete
});
[21531] Fix | Delete
};
[21532] Fix | Delete
InspectorAdvancedControls.Slot = props => {
[21533] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorControlsSlot, {
[21534] Fix | Delete
...props,
[21535] Fix | Delete
group: "advanced"
[21536] Fix | Delete
});
[21537] Fix | Delete
};
[21538] Fix | Delete
InspectorAdvancedControls.slotName = 'InspectorAdvancedControls';
[21539] Fix | Delete
[21540] Fix | Delete
/**
[21541] Fix | Delete
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inspector-controls/README.md
[21542] Fix | Delete
*/
[21543] Fix | Delete
/* harmony default export */ const inspector_controls = (InspectorControls);
[21544] Fix | Delete
[21545] Fix | Delete
;// CONCATENATED MODULE: external ["wp","url"]
[21546] Fix | Delete
const external_wp_url_namespaceObject = window["wp"]["url"];
[21547] Fix | Delete
;// CONCATENATED MODULE: external ["wp","dom"]
[21548] Fix | Delete
const external_wp_dom_namespaceObject = window["wp"]["dom"];
[21549] Fix | Delete
;// CONCATENATED MODULE: external ["wp","blob"]
[21550] Fix | Delete
const external_wp_blob_namespaceObject = window["wp"]["blob"];
[21551] Fix | Delete
;// CONCATENATED MODULE: external ["wp","keycodes"]
[21552] Fix | Delete
const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
[21553] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/media.js
[21554] Fix | Delete
/**
[21555] Fix | Delete
* WordPress dependencies
[21556] Fix | Delete
*/
[21557] Fix | Delete
[21558] Fix | Delete
[21559] Fix | Delete
[21560] Fix | Delete
const media = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
[21561] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[21562] Fix | Delete
viewBox: "0 0 24 24",
[21563] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21564] Fix | Delete
d: "m7 6.5 4 2.5-4 2.5z"
[21565] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21566] Fix | Delete
fillRule: "evenodd",
[21567] Fix | Delete
clipRule: "evenodd",
[21568] Fix | Delete
d: "m5 3c-1.10457 0-2 .89543-2 2v14c0 1.1046.89543 2 2 2h14c1.1046 0 2-.8954 2-2v-14c0-1.10457-.8954-2-2-2zm14 1.5h-14c-.27614 0-.5.22386-.5.5v10.7072l3.62953-2.6465c.25108-.1831.58905-.1924.84981-.0234l2.92666 1.8969 3.5712-3.4719c.2911-.2831.7545-.2831 1.0456 0l2.9772 2.8945v-9.3568c0-.27614-.2239-.5-.5-.5zm-14.5 14.5v-1.4364l4.09643-2.987 2.99567 1.9417c.2936.1903.6798.1523.9307-.0917l3.4772-3.3806 3.4772 3.3806.0228-.0234v2.5968c0 .2761-.2239.5-.5.5h-14c-.27614 0-.5-.2239-.5-.5z"
[21569] Fix | Delete
})]
[21570] Fix | Delete
});
[21571] Fix | Delete
/* harmony default export */ const library_media = (media);
[21572] Fix | Delete
[21573] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
[21574] Fix | Delete
/**
[21575] Fix | Delete
* WordPress dependencies
[21576] Fix | Delete
*/
[21577] Fix | Delete
[21578] Fix | Delete
[21579] Fix | Delete
const upload = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
[21580] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[21581] Fix | Delete
viewBox: "0 0 24 24",
[21582] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21583] Fix | Delete
d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
[21584] Fix | Delete
})
[21585] Fix | Delete
});
[21586] Fix | Delete
/* harmony default export */ const library_upload = (upload);
[21587] Fix | Delete
[21588] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/post-featured-image.js
[21589] Fix | Delete
/**
[21590] Fix | Delete
* WordPress dependencies
[21591] Fix | Delete
*/
[21592] Fix | Delete
[21593] Fix | Delete
[21594] Fix | Delete
const postFeaturedImage = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
[21595] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[21596] Fix | Delete
viewBox: "0 0 24 24",
[21597] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21598] Fix | Delete
d: "M19 3H5c-.6 0-1 .4-1 1v7c0 .5.4 1 1 1h14c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1zM5.5 10.5v-.4l1.8-1.3 1.3.8c.3.2.7.2.9-.1L11 8.1l2.4 2.4H5.5zm13 0h-2.9l-4-4c-.3-.3-.8-.3-1.1 0L8.9 8l-1.2-.8c-.3-.2-.6-.2-.9 0l-1.3 1V4.5h13v6zM4 20h9v-1.5H4V20zm0-4h16v-1.5H4V16z"
[21599] Fix | Delete
})
[21600] Fix | Delete
});
[21601] Fix | Delete
/* harmony default export */ const post_featured_image = (postFeaturedImage);
[21602] Fix | Delete
[21603] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/index.js
[21604] Fix | Delete
/**
[21605] Fix | Delete
* WordPress dependencies
[21606] Fix | Delete
*/
[21607] Fix | Delete
[21608] Fix | Delete
[21609] Fix | Delete
/**
[21610] Fix | Delete
* This is a placeholder for the media upload component necessary to make it possible to provide
[21611] Fix | Delete
* an integration with the core blocks that handle media files. By default it renders nothing but
[21612] Fix | Delete
* it provides a way to have it overridden with the `editor.MediaUpload` filter.
[21613] Fix | Delete
*
[21614] Fix | Delete
* @return {Component} The component to be rendered.
[21615] Fix | Delete
*/
[21616] Fix | Delete
const MediaUpload = () => null;
[21617] Fix | Delete
[21618] Fix | Delete
/**
[21619] Fix | Delete
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-upload/README.md
[21620] Fix | Delete
*/
[21621] Fix | Delete
/* harmony default export */ const media_upload = ((0,external_wp_components_namespaceObject.withFilters)('editor.MediaUpload')(MediaUpload));
[21622] Fix | Delete
[21623] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/media-upload/check.js
[21624] Fix | Delete
/**
[21625] Fix | Delete
* WordPress dependencies
[21626] Fix | Delete
*/
[21627] Fix | Delete
[21628] Fix | Delete
[21629] Fix | Delete
/**
[21630] Fix | Delete
* Internal dependencies
[21631] Fix | Delete
*/
[21632] Fix | Delete
[21633] Fix | Delete
function MediaUploadCheck({
[21634] Fix | Delete
fallback = null,
[21635] Fix | Delete
children
[21636] Fix | Delete
}) {
[21637] Fix | Delete
const hasUploadPermissions = (0,external_wp_data_namespaceObject.useSelect)(select => {
[21638] Fix | Delete
const {
[21639] Fix | Delete
getSettings
[21640] Fix | Delete
} = select(store);
[21641] Fix | Delete
return !!getSettings().mediaUpload;
[21642] Fix | Delete
}, []);
[21643] Fix | Delete
return hasUploadPermissions ? children : fallback;
[21644] Fix | Delete
}
[21645] Fix | Delete
[21646] Fix | Delete
/**
[21647] Fix | Delete
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-upload/README.md
[21648] Fix | Delete
*/
[21649] Fix | Delete
/* harmony default export */ const check = (MediaUploadCheck);
[21650] Fix | Delete
[21651] Fix | Delete
;// CONCATENATED MODULE: external ["wp","isShallowEqual"]
[21652] Fix | Delete
const external_wp_isShallowEqual_namespaceObject = window["wp"]["isShallowEqual"];
[21653] Fix | Delete
var external_wp_isShallowEqual_default = /*#__PURE__*/__webpack_require__.n(external_wp_isShallowEqual_namespaceObject);
[21654] Fix | Delete
;// CONCATENATED MODULE: external ["wp","preferences"]
[21655] Fix | Delete
const external_wp_preferences_namespaceObject = window["wp"]["preferences"];
[21656] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/keyboard-return.js
[21657] Fix | Delete
/**
[21658] Fix | Delete
* WordPress dependencies
[21659] Fix | Delete
*/
[21660] Fix | Delete
[21661] Fix | Delete
[21662] Fix | Delete
const keyboardReturn = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
[21663] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[21664] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21665] Fix | Delete
d: "m6.734 16.106 2.176-2.38-1.093-1.028-3.846 4.158 3.846 4.158 1.093-1.028-2.176-2.38h2.811c1.125 0 2.25.03 3.374 0 1.428-.001 3.362-.25 4.963-1.277 1.66-1.065 2.868-2.906 2.868-5.859 0-2.479-1.327-4.896-3.65-5.93-1.82-.813-3.044-.8-4.806-.788l-.567.002v1.5c.184 0 .368 0 .553-.002 1.82-.007 2.704-.014 4.21.657 1.854.827 2.76 2.657 2.76 4.561 0 2.472-.973 3.824-2.178 4.596-1.258.807-2.864 1.04-4.163 1.04h-.02c-1.115.03-2.229 0-3.344 0H6.734Z"
[21666] Fix | Delete
})
[21667] Fix | Delete
});
[21668] Fix | Delete
/* harmony default export */ const keyboard_return = (keyboardReturn);
[21669] Fix | Delete
[21670] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js
[21671] Fix | Delete
/**
[21672] Fix | Delete
* WordPress dependencies
[21673] Fix | Delete
*/
[21674] Fix | Delete
[21675] Fix | Delete
[21676] Fix | Delete
const chevronLeftSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
[21677] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[21678] Fix | Delete
viewBox: "0 0 24 24",
[21679] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21680] Fix | Delete
d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"
[21681] Fix | Delete
})
[21682] Fix | Delete
});
[21683] Fix | Delete
/* harmony default export */ const chevron_left_small = (chevronLeftSmall);
[21684] Fix | Delete
[21685] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js
[21686] Fix | Delete
/**
[21687] Fix | Delete
* WordPress dependencies
[21688] Fix | Delete
*/
[21689] Fix | Delete
[21690] Fix | Delete
[21691] Fix | Delete
const chevronRightSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
[21692] Fix | Delete
xmlns: "http://www.w3.org/2000/svg",
[21693] Fix | Delete
viewBox: "0 0 24 24",
[21694] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
[21695] Fix | Delete
d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"
[21696] Fix | Delete
})
[21697] Fix | Delete
});
[21698] Fix | Delete
/* harmony default export */ const chevron_right_small = (chevronRightSmall);
[21699] Fix | Delete
[21700] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/link-control/settings-drawer.js
[21701] Fix | Delete
/**
[21702] Fix | Delete
* WordPress dependencies
[21703] Fix | Delete
*/
[21704] Fix | Delete
[21705] Fix | Delete
[21706] Fix | Delete
[21707] Fix | Delete
[21708] Fix | Delete
[21709] Fix | Delete
[21710] Fix | Delete
[21711] Fix | Delete
[21712] Fix | Delete
function LinkSettingsDrawer({
[21713] Fix | Delete
children,
[21714] Fix | Delete
settingsOpen,
[21715] Fix | Delete
setSettingsOpen
[21716] Fix | Delete
}) {
[21717] Fix | Delete
const prefersReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
[21718] Fix | Delete
const MaybeAnimatePresence = prefersReducedMotion ? external_wp_element_namespaceObject.Fragment : external_wp_components_namespaceObject.__unstableAnimatePresence;
[21719] Fix | Delete
const MaybeMotionDiv = prefersReducedMotion ? 'div' : external_wp_components_namespaceObject.__unstableMotion.div;
[21720] Fix | Delete
const id = (0,external_wp_compose_namespaceObject.useInstanceId)(LinkSettingsDrawer);
[21721] Fix | Delete
const settingsDrawerId = `link-control-settings-drawer-${id}`;
[21722] Fix | Delete
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
[21723] Fix | Delete
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
[21724] Fix | Delete
className: "block-editor-link-control__drawer-toggle",
[21725] Fix | Delete
"aria-expanded": settingsOpen,
[21726] Fix | Delete
onClick: () => setSettingsOpen(!settingsOpen),
[21727] Fix | Delete
icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_left_small : chevron_right_small,
[21728] Fix | Delete
"aria-controls": settingsDrawerId,
[21729] Fix | Delete
children: (0,external_wp_i18n_namespaceObject._x)('Advanced', 'Additional link settings')
[21730] Fix | Delete
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MaybeAnimatePresence, {
[21731] Fix | Delete
children: settingsOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MaybeMotionDiv, {
[21732] Fix | Delete
className: "block-editor-link-control__drawer",
[21733] Fix | Delete
hidden: !settingsOpen,
[21734] Fix | Delete
id: settingsDrawerId,
[21735] Fix | Delete
initial: "collapsed",
[21736] Fix | Delete
animate: "open",
[21737] Fix | Delete
exit: "collapsed",
[21738] Fix | Delete
variants: {
[21739] Fix | Delete
open: {
[21740] Fix | Delete
opacity: 1,
[21741] Fix | Delete
height: 'auto'
[21742] Fix | Delete
},
[21743] Fix | Delete
collapsed: {
[21744] Fix | Delete
opacity: 0,
[21745] Fix | Delete
height: 0
[21746] Fix | Delete
}
[21747] Fix | Delete
},
[21748] Fix | Delete
transition: {
[21749] Fix | Delete
duration: 0.1
[21750] Fix | Delete
},
[21751] Fix | Delete
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
[21752] Fix | Delete
className: "block-editor-link-control__drawer-inner",
[21753] Fix | Delete
children: children
[21754] Fix | Delete
})
[21755] Fix | Delete
})
[21756] Fix | Delete
})]
[21757] Fix | Delete
});
[21758] Fix | Delete
}
[21759] Fix | Delete
/* harmony default export */ const settings_drawer = (LinkSettingsDrawer);
[21760] Fix | Delete
[21761] Fix | Delete
// EXTERNAL MODULE: external "React"
[21762] Fix | Delete
var external_React_ = __webpack_require__(1609);
[21763] Fix | Delete
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/url-input/index.js
[21764] Fix | Delete
/**
[21765] Fix | Delete
* External dependencies
[21766] Fix | Delete
*/
[21767] Fix | Delete
[21768] Fix | Delete
[21769] Fix | Delete
/**
[21770] Fix | Delete
* WordPress dependencies
[21771] Fix | Delete
*/
[21772] Fix | Delete
[21773] Fix | Delete
[21774] Fix | Delete
[21775] Fix | Delete
[21776] Fix | Delete
[21777] Fix | Delete
[21778] Fix | Delete
[21779] Fix | Delete
[21780] Fix | Delete
[21781] Fix | Delete
/**
[21782] Fix | Delete
* Internal dependencies
[21783] Fix | Delete
*/
[21784] Fix | Delete
[21785] Fix | Delete
[21786] Fix | Delete
/**
[21787] Fix | Delete
* Whether the argument is a function.
[21788] Fix | Delete
*
[21789] Fix | Delete
* @param {*} maybeFunc The argument to check.
[21790] Fix | Delete
* @return {boolean} True if the argument is a function, false otherwise.
[21791] Fix | Delete
*/
[21792] Fix | Delete
[21793] Fix | Delete
[21794] Fix | Delete
[21795] Fix | Delete
[21796] Fix | Delete
function isFunction(maybeFunc) {
[21797] Fix | Delete
return typeof maybeFunc === 'function';
[21798] Fix | Delete
}
[21799] Fix | Delete
class URLInput extends external_wp_element_namespaceObject.Component {
[21800] Fix | Delete
constructor(props) {
[21801] Fix | Delete
super(props);
[21802] Fix | Delete
this.onChange = this.onChange.bind(this);
[21803] Fix | Delete
this.onFocus = this.onFocus.bind(this);
[21804] Fix | Delete
this.onKeyDown = this.onKeyDown.bind(this);
[21805] Fix | Delete
this.selectLink = this.selectLink.bind(this);
[21806] Fix | Delete
this.handleOnClick = this.handleOnClick.bind(this);
[21807] Fix | Delete
this.bindSuggestionNode = this.bindSuggestionNode.bind(this);
[21808] Fix | Delete
this.autocompleteRef = props.autocompleteRef || (0,external_wp_element_namespaceObject.createRef)();
[21809] Fix | Delete
this.inputRef = (0,external_wp_element_namespaceObject.createRef)();
[21810] Fix | Delete
this.updateSuggestions = (0,external_wp_compose_namespaceObject.debounce)(this.updateSuggestions.bind(this), 200);
[21811] Fix | Delete
this.suggestionNodes = [];
[21812] Fix | Delete
this.suggestionsRequest = null;
[21813] Fix | Delete
this.state = {
[21814] Fix | Delete
suggestions: [],
[21815] Fix | Delete
showSuggestions: false,
[21816] Fix | Delete
suggestionsValue: null,
[21817] Fix | Delete
selectedSuggestion: null,
[21818] Fix | Delete
suggestionsListboxId: '',
[21819] Fix | Delete
suggestionOptionIdPrefix: ''
[21820] Fix | Delete
};
[21821] Fix | Delete
}
[21822] Fix | Delete
componentDidUpdate(prevProps) {
[21823] Fix | Delete
const {
[21824] Fix | Delete
showSuggestions,
[21825] Fix | Delete
selectedSuggestion
[21826] Fix | Delete
} = this.state;
[21827] Fix | Delete
const {
[21828] Fix | Delete
value,
[21829] Fix | Delete
__experimentalShowInitialSuggestions = false
[21830] Fix | Delete
} = this.props;
[21831] Fix | Delete
[21832] Fix | Delete
// Only have to worry about scrolling selected suggestion into view
[21833] Fix | Delete
// when already expanded.
[21834] Fix | Delete
if (showSuggestions && selectedSuggestion !== null && this.suggestionNodes[selectedSuggestion]) {
[21835] Fix | Delete
this.suggestionNodes[selectedSuggestion].scrollIntoView({
[21836] Fix | Delete
behavior: 'instant',
[21837] Fix | Delete
block: 'nearest',
[21838] Fix | Delete
inline: 'nearest'
[21839] Fix | Delete
});
[21840] Fix | Delete
}
[21841] Fix | Delete
[21842] Fix | Delete
// Update suggestions when the value changes.
[21843] Fix | Delete
if (prevProps.value !== value && !this.props.disableSuggestions) {
[21844] Fix | Delete
if (value?.length) {
[21845] Fix | Delete
// If the new value is not empty we need to update with suggestions for it.
[21846] Fix | Delete
this.updateSuggestions(value);
[21847] Fix | Delete
} else if (__experimentalShowInitialSuggestions) {
[21848] Fix | Delete
// If the new value is empty and we can show initial suggestions, then show initial suggestions.
[21849] Fix | Delete
this.updateSuggestions();
[21850] Fix | Delete
}
[21851] Fix | Delete
}
[21852] Fix | Delete
}
[21853] Fix | Delete
componentDidMount() {
[21854] Fix | Delete
if (this.shouldShowInitialSuggestions()) {
[21855] Fix | Delete
this.updateSuggestions();
[21856] Fix | Delete
}
[21857] Fix | Delete
}
[21858] Fix | Delete
componentWillUnmount() {
[21859] Fix | Delete
this.suggestionsRequest?.cancel?.();
[21860] Fix | Delete
this.suggestionsRequest = null;
[21861] Fix | Delete
}
[21862] Fix | Delete
bindSuggestionNode(index) {
[21863] Fix | Delete
return ref => {
[21864] Fix | Delete
this.suggestionNodes[index] = ref;
[21865] Fix | Delete
};
[21866] Fix | Delete
}
[21867] Fix | Delete
shouldShowInitialSuggestions() {
[21868] Fix | Delete
const {
[21869] Fix | Delete
__experimentalShowInitialSuggestions = false,
[21870] Fix | Delete
value
[21871] Fix | Delete
} = this.props;
[21872] Fix | Delete
return __experimentalShowInitialSuggestions && !(value && value.length);
[21873] Fix | Delete
}
[21874] Fix | Delete
updateSuggestions(value = '') {
[21875] Fix | Delete
const {
[21876] Fix | Delete
__experimentalFetchLinkSuggestions: fetchLinkSuggestions,
[21877] Fix | Delete
__experimentalHandleURLSuggestions: handleURLSuggestions
[21878] Fix | Delete
} = this.props;
[21879] Fix | Delete
if (!fetchLinkSuggestions) {
[21880] Fix | Delete
return;
[21881] Fix | Delete
}
[21882] Fix | Delete
[21883] Fix | Delete
// Initial suggestions may only show if there is no value
[21884] Fix | Delete
// (note: this includes whitespace).
[21885] Fix | Delete
const isInitialSuggestions = !value?.length;
[21886] Fix | Delete
[21887] Fix | Delete
// Trim only now we've determined whether or not it originally had a "length"
[21888] Fix | Delete
// (even if that value was all whitespace).
[21889] Fix | Delete
value = value.trim();
[21890] Fix | Delete
[21891] Fix | Delete
// Allow a suggestions request if:
[21892] Fix | Delete
// - there are at least 2 characters in the search input (except manual searches where
[21893] Fix | Delete
// search input length is not required to trigger a fetch)
[21894] Fix | Delete
// - this is a direct entry (eg: a URL)
[21895] Fix | Delete
if (!isInitialSuggestions && (value.length < 2 || !handleURLSuggestions && (0,external_wp_url_namespaceObject.isURL)(value))) {
[21896] Fix | Delete
this.suggestionsRequest?.cancel?.();
[21897] Fix | Delete
this.suggestionsRequest = null;
[21898] Fix | Delete
this.setState({
[21899] Fix | Delete
suggestions: [],
[21900] Fix | Delete
showSuggestions: false,
[21901] Fix | Delete
suggestionsValue: value,
[21902] Fix | Delete
selectedSuggestion: null,
[21903] Fix | Delete
loading: false
[21904] Fix | Delete
});
[21905] Fix | Delete
return;
[21906] Fix | Delete
}
[21907] Fix | Delete
this.setState({
[21908] Fix | Delete
selectedSuggestion: null,
[21909] Fix | Delete
loading: true
[21910] Fix | Delete
});
[21911] Fix | Delete
const request = fetchLinkSuggestions(value, {
[21912] Fix | Delete
isInitialSuggestions
[21913] Fix | Delete
});
[21914] Fix | Delete
request.then(suggestions => {
[21915] Fix | Delete
// A fetch Promise doesn't have an abort option. It's mimicked by
[21916] Fix | Delete
// comparing the request reference in on the instance, which is
[21917] Fix | Delete
// reset or deleted on subsequent requests or unmounting.
[21918] Fix | Delete
if (this.suggestionsRequest !== request) {
[21919] Fix | Delete
return;
[21920] Fix | Delete
}
[21921] Fix | Delete
this.setState({
[21922] Fix | Delete
suggestions,
[21923] Fix | Delete
suggestionsValue: value,
[21924] Fix | Delete
loading: false,
[21925] Fix | Delete
showSuggestions: !!suggestions.length
[21926] Fix | Delete
});
[21927] Fix | Delete
if (!!suggestions.length) {
[21928] Fix | Delete
this.props.debouncedSpeak((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: number of results. */
[21929] Fix | Delete
(0,external_wp_i18n_namespaceObject._n)('%d result found, use up and down arrow keys to navigate.', '%d results found, use up and down arrow keys to navigate.', suggestions.length), suggestions.length), 'assertive');
[21930] Fix | Delete
} else {
[21931] Fix | Delete
this.props.debouncedSpeak((0,external_wp_i18n_namespaceObject.__)('No results.'), 'assertive');
[21932] Fix | Delete
}
[21933] Fix | Delete
}).catch(() => {
[21934] Fix | Delete
if (this.suggestionsRequest !== request) {
[21935] Fix | Delete
return;
[21936] Fix | Delete
}
[21937] Fix | Delete
this.setState({
[21938] Fix | Delete
loading: false
[21939] Fix | Delete
});
[21940] Fix | Delete
}).finally(() => {
[21941] Fix | Delete
// If this is the current promise then reset the reference
[21942] Fix | Delete
// to allow for checking if a new request is made.
[21943] Fix | Delete
if (this.suggestionsRequest === request) {
[21944] Fix | Delete
this.suggestionsRequest = null;
[21945] Fix | Delete
}
[21946] Fix | Delete
});
[21947] Fix | Delete
[21948] Fix | Delete
// Note that this assignment is handled *before* the async search request
[21949] Fix | Delete
// as a Promise always resolves on the next tick of the event loop.
[21950] Fix | Delete
this.suggestionsRequest = request;
[21951] Fix | Delete
}
[21952] Fix | Delete
onChange(event) {
[21953] Fix | Delete
this.props.onChange(event.target.value);
[21954] Fix | Delete
}
[21955] Fix | Delete
onFocus() {
[21956] Fix | Delete
const {
[21957] Fix | Delete
suggestions
[21958] Fix | Delete
} = this.state;
[21959] Fix | Delete
const {
[21960] Fix | Delete
disableSuggestions,
[21961] Fix | Delete
value
[21962] Fix | Delete
} = this.props;
[21963] Fix | Delete
[21964] Fix | Delete
// When opening the link editor, if there's a value present, we want to load the suggestions pane with the results for this input search value
[21965] Fix | Delete
// Don't re-run the suggestions on focus if there are already suggestions present (prevents searching again when tabbing between the input and buttons)
[21966] Fix | Delete
// or there is already a request in progress.
[21967] Fix | Delete
if (value && !disableSuggestions && !(suggestions && suggestions.length) && this.suggestionsRequest === null) {
[21968] Fix | Delete
// Ensure the suggestions are updated with the current input value.
[21969] Fix | Delete
this.updateSuggestions(value);
[21970] Fix | Delete
}
[21971] Fix | Delete
}
[21972] Fix | Delete
onKeyDown(event) {
[21973] Fix | Delete
this.props.onKeyDown?.(event);
[21974] Fix | Delete
const {
[21975] Fix | Delete
showSuggestions,
[21976] Fix | Delete
selectedSuggestion,
[21977] Fix | Delete
suggestions,
[21978] Fix | Delete
loading
[21979] Fix | Delete
} = this.state;
[21980] Fix | Delete
[21981] Fix | Delete
// If the suggestions are not shown or loading, we shouldn't handle the arrow keys
[21982] Fix | Delete
// We shouldn't preventDefault to allow block arrow keys navigation.
[21983] Fix | Delete
if (!showSuggestions || !suggestions.length || loading) {
[21984] Fix | Delete
// In the Windows version of Firefox the up and down arrows don't move the caret
[21985] Fix | Delete
// within an input field like they do for Mac Firefox/Chrome/Safari. This causes
[21986] Fix | Delete
// a form of focus trapping that is disruptive to the user experience. This disruption
[21987] Fix | Delete
// only happens if the caret is not in the first or last position in the text input.
[21988] Fix | Delete
// See: https://github.com/WordPress/gutenberg/issues/5693#issuecomment-436684747
[21989] Fix | Delete
switch (event.keyCode) {
[21990] Fix | Delete
// When UP is pressed, if the caret is at the start of the text, move it to the 0
[21991] Fix | Delete
// position.
[21992] Fix | Delete
case external_wp_keycodes_namespaceObject.UP:
[21993] Fix | Delete
{
[21994] Fix | Delete
if (0 !== event.target.selectionStart) {
[21995] Fix | Delete
event.preventDefault();
[21996] Fix | Delete
[21997] Fix | Delete
// Set the input caret to position 0.
[21998] Fix | Delete
event.target.setSelectionRange(0, 0);
[21999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function