@try-at-software/input-elements
Version:
A package providing different input elements that are extensible and easily configurable for your custom needs.
61 lines (60 loc) • 2.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DropdownHelper = void 0;
const react_1 = require("@fluentui/react");
const SingleValueInputElements_1 = require("../SingleValueInputElements");
class DropdownHelper {
static getNormalizedOptions(defaultOption, allOptions) {
const options = [];
if (!!defaultOption) {
const predefinedDefaultOption = Object.assign(Object.assign({}, DropdownHelper.toNormalizedDropdownOption(defaultOption)), { selected: true });
options.push(predefinedDefaultOption);
}
if (!!allOptions)
allOptions.forEach((o) => {
if (!o)
return;
const newOption = this.toNormalizedDropdownOption(o);
options.push(newOption);
});
return options;
}
static mapToDropdownOptions(values) {
if (!values || !Array.isArray(values))
return [];
return values
.filter((x) => !!x)
.map((o) => {
return {
key: o,
text: o
};
});
}
}
exports.DropdownHelper = DropdownHelper;
DropdownHelper.toNormalizedDropdownOption = (inputOption) => {
if (!inputOption)
return null;
let itemType;
if (inputOption.type !== undefined) {
switch (inputOption.type) {
case SingleValueInputElements_1.DropdownOptionType.Normal:
itemType = react_1.SelectableOptionMenuItemType.Normal;
break;
case SingleValueInputElements_1.DropdownOptionType.Divider:
itemType = react_1.SelectableOptionMenuItemType.Divider;
break;
case SingleValueInputElements_1.DropdownOptionType.Header:
itemType = react_1.SelectableOptionMenuItemType.Header;
break;
}
}
return {
text: inputOption.text,
key: inputOption.key,
id: inputOption.key,
itemType: itemType,
disabled: !!inputOption.disabled
};
};