UNPKG

@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
"use strict"; 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 }; };