@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
52 lines • 3.31 kB
JavaScript
;
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