UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

52 lines 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TermItemSuggestion = TermItemSuggestion; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var TermItemSuggestions_module_scss_1 = tslib_1.__importDefault(require("./TermItemSuggestions.module.scss")); var strings = tslib_1.__importStar(require("ControlStrings")); var sp_core_library_1 = require("@microsoft/sp-core-library"); function TermItemSuggestion(props) { var _a, _b; var _c = react_1.default.useState(""), parentLabel = _c[0], setParentLabel = _c[1]; (0, react_1.useEffect)(function () { if (props.onLoadParentLabel) { props.onLoadParentLabel(sp_core_library_1.Guid.parse(props.term.id.toString())) .then(function (localParentInfo) { setParentLabel(localParentInfo); }) .catch(function () { // no-op; }); } }, []); var filterLabels = function (isDefault, nameFilter) { nameFilter = nameFilter || (function () { return true; }); if (props.languageTag && props.termStoreInfo) { var labels_1 = props.term.labels.filter(function (name) { return name.languageTag === props.languageTag && name.isDefault === isDefault && nameFilter(name.name); }); if (labels_1.length === 0) { labels_1 = props.term.labels.filter(function (name) { return name.languageTag === props.termStoreInfo.defaultLanguageTag && name.isDefault === isDefault && nameFilter(name.name); }); } return labels_1; } else { return props.term.labels.filter(function (name) { return name.isDefault === isDefault && nameFilter(name.name); }); } }; var labels = filterLabels(true); var synonyms = props.searchFilter ? filterLabels(false, function (name) { var prefix = props.searchFilter; if (prefix.length > name.length) return false; var compareTo = name.substring(0, prefix.length); return compareTo.localeCompare(prefix, undefined, { sensitivity: 'base' }) === 0; }) : []; return (react_1.default.createElement("div", { className: TermItemSuggestions_module_scss_1.default.termSuggestionContainer, title: (_a = labels[0]) === null || _a === void 0 ? void 0 : _a.name }, (_b = labels[0]) === null || _b === void 0 ? void 0 : _b.name, parentLabel !== "" && react_1.default.createElement("div", null, react_1.default.createElement("span", { className: TermItemSuggestions_module_scss_1.default.termSuggestionPath }, "".concat(strings.ModernTaxonomyPickerSuggestionInLabel, " ").concat(parentLabel))), synonyms.length > 0 && react_1.default.createElement("ul", { className: TermItemSuggestions_module_scss_1.default.termSynonymList }, synonyms.map(function (synonym) { return react_1.default.createElement("li", { key: synonym.name }, react_1.default.createElement("span", { className: TermItemSuggestions_module_scss_1.default.synonymPrefix }, synonym.name.substring(0, props.searchFilter.length)), react_1.default.createElement("span", null, synonym.name.substring(props.searchFilter.length))); })))); } //# sourceMappingURL=TermItemSuggestion.js.map