UNPKG

@raona/sp

Version:

Raona utilities to work with Sharepoint using pnp/sp

47 lines (46 loc) 1.79 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); function calculateDropdownOptions(options, selectedOption, exclusiveKey) { var multiple = typeof selectedOption.selected !== 'undefined'; var selectedOptionsRaw = []; var hasExclusiveKey = typeof exclusiveKey !== 'undefined'; var isExclusiveBeingChanged = selectedOption.key === exclusiveKey; var opts = options.map(function (o) { // Normal behaviour if (o.key === selectedOption.key) { o.selected = multiple ? selectedOption.selected : true; } else if (!multiple) { o.selected = false; } // override behaviour when there is an exclusiveKey if (hasExclusiveKey) { if (isExclusiveBeingChanged && selectedOption.selected) o.selected = false; if (!isExclusiveBeingChanged && o.key === exclusiveKey) o.selected = false; if (isExclusiveBeingChanged && o.key === exclusiveKey) o.selected = selectedOption.selected; } if (o.selected) { selectedOptionsRaw.push(o.text); } return __assign({}, o); }); return { dropdownOptions: opts, selectedOptionsRaw: selectedOptionsRaw }; } exports.calculateDropdownOptions = calculateDropdownOptions;