0dc458062c006da087dc199655451671.json 24.4 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n  var key = data.key;\n  var value;\n\n  if ('value' in data) {\n    value = data.value;\n  }\n\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n\n  if (value !== undefined) {\n    return value;\n  }\n\n  return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n  var flattenList = [];\n\n  function dig(list, isGroupOption) {\n    list.forEach(function (data) {\n      if (isGroupOption || !('options' in data)) {\n        // Option\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          groupOption: isGroupOption,\n          data: data\n        });\n      } else {\n        // Option Group\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          group: true,\n          data: data\n        });\n        dig(data.options, true);\n      }\n    });\n  }\n\n  dig(options, false);\n  return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n  var newOption = _objectSpread({}, option);\n\n  if (!('props' in newOption)) {\n    Object.defineProperty(newOption, 'props', {\n      get: function get() {\n        warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n        return newOption;\n      }\n    });\n  }\n\n  return newOption;\n}\n\nexport function findValueOption(values, options) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref$prevValueOptions = _ref.prevValueOptions,\n      prevValueOptions = _ref$prevValueOptions === void 0 ? [] : _ref$prevValueOptions;\n\n  var optionMap = new Map();\n  options.forEach(function (flattenItem) {\n    if (!flattenItem.group) {\n      var data = flattenItem.data; // Check if match\n\n      optionMap.set(data.value, data);\n    }\n  });\n  return values.map(function (val) {\n    var option = optionMap.get(val); // Fallback to try to find prev options\n\n    if (!option) {\n      option = _objectSpread({}, prevValueOptions.find(function (opt) {\n        return opt._INTERNAL_OPTION_VALUE_ === val;\n      }));\n    }\n\n    return injectPropsWithOption(option);\n  });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref2) {\n  var options = _ref2.options,\n      prevValue = _ref2.prevValue,\n      labelInValue = _ref2.labelInValue,\n      optionLabelProp = _ref2.optionLabelProp;\n  var item = findValueOption([value], options)[0];\n  var result = {\n    value: value\n  };\n  var prevValItem;\n  var prevValues = toArray(prevValue);\n\n  if (labelInValue) {\n    prevValItem = prevValues.find(function (prevItem) {\n      if (_typeof(prevItem) === 'object' && 'value' in prevItem) {\n        return prevItem.value === value;\n      } // [Legacy] Support `key` as `value`\n\n\n      return prevItem.key === value;\n    });\n  }\n\n  if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n    result.label = prevValItem.label;\n\n    if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n      warning(false, '`label` of `value` is not same as `label` in Select options.');\n    }\n  } else if (item && optionLabelProp in item) {\n    result.label = item[optionLabelProp];\n  } else {\n    result.label = value;\n  } // Used for motion control\n\n\n  result.key = result.value;\n  return result;\n};\n\nfunction toRawString(content) {\n  return toArray(content).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n  return function (searchValue, option) {\n    var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n    if ('options' in option) {\n      return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n    } // Option value search\n\n\n    var rawValue = option[optionFilterProp];\n    var value = toRawString(rawValue).toLowerCase();\n    return value.includes(lowerSearchText);\n  };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref3) {\n  var optionFilterProp = _ref3.optionFilterProp,\n      filterOption = _ref3.filterOption;\n  var filteredOptions = [];\n  var filterFunc;\n\n  if (filterOption === false) {\n    return _toConsumableArray(options);\n  }\n\n  if (typeof filterOption === 'function') {\n    filterFunc = filterOption;\n  } else {\n    filterFunc = getFilterFunction(optionFilterProp);\n  }\n\n  options.forEach(function (item) {\n    // Group should check child options\n    if ('options' in item) {\n      // Check group first\n      var matchGroup = filterFunc(searchValue, item);\n\n      if (matchGroup) {\n        filteredOptions.push(item);\n      } else {\n        // Check option\n        var subOptions = item.options.filter(function (subItem) {\n          return filterFunc(searchValue, subItem);\n        });\n\n        if (subOptions.length) {\n          filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, {\n            options: subOptions\n          }));\n        }\n      }\n\n      return;\n    }\n\n    if (filterFunc(searchValue, injectPropsWithOption(item))) {\n      filteredOptions.push(item);\n    }\n  });\n  return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n  if (!tokens || !tokens.length) {\n    return null;\n  }\n\n  var match = false;\n\n  function separate(str, _ref4) {\n    var _ref5 = _toArray(_ref4),\n        token = _ref5[0],\n        restTokens = _ref5.slice(1);\n\n    if (!token) {\n      return [str];\n    }\n\n    var list = str.split(token);\n    match = match || list.length > 1;\n    return list.reduce(function (prevList, unitStr) {\n      return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n    }, []).filter(function (unit) {\n      return unit;\n    });\n  }\n\n  var list = separate(text, tokens);\n  return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n  var option = findValueOption([value], options)[0];\n  return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n  var values = toArray(value).slice().sort();\n\n  var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n  var optionValues = new Set();\n  options.forEach(function (opt) {\n    if (opt.options) {\n      opt.options.forEach(function (subOpt) {\n        optionValues.add(subOpt.value);\n      });\n    } else {\n      optionValues.add(opt.value);\n    }\n  }); // Fill missing value\n\n  values.forEach(function (item) {\n    var val = labelInValue ? item.value : item;\n\n    if (!optionValues.has(val)) {\n      var _ref6;\n\n      cloneOptions.push(labelInValue ? (_ref6 = {}, _defineProperty(_ref6, optionLabelProp, item.label), _defineProperty(_ref6, \"value\", val), _ref6) : {\n        value: val\n      });\n    }\n  });\n  return cloneOptions;\n}","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-select/es/utils/valueUtil.js"],"names":["_defineProperty","_toArray","_toConsumableArray","_typeof","_objectSpread","warning","toArray","getKey","data","index","key","value","undefined","concat","flattenOptions","options","flattenList","dig","list","isGroupOption","forEach","push","length","groupOption","group","injectPropsWithOption","option","newOption","Object","defineProperty","get","findValueOption","values","_ref","arguments","_ref$prevValueOptions","prevValueOptions","optionMap","Map","flattenItem","set","map","val","find","opt","_INTERNAL_OPTION_VALUE_","getLabeledValue","_ref2","prevValue","labelInValue","optionLabelProp","item","result","prevValItem","prevValues","prevItem","label","trim","toRawString","content","join","getFilterFunction","optionFilterProp","searchValue","lowerSearchText","toLowerCase","includes","rawValue","filterOptions","_ref3","filterOption","filteredOptions","filterFunc","matchGroup","subOptions","filter","subItem","getSeparatedContent","text","tokens","match","separate","str","_ref4","_ref5","token","restTokens","slice","split","reduce","prevList","unitStr","unit","isValueDisabled","disabled","fillOptionsWithMissingValue","sort","cloneOptions","optionValues","Set","subOpt","add","has","_ref6"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nimport { toArray } from './commonUtil';\n\nfunction getKey(data, index) {\n  var key = data.key;\n  var value;\n\n  if ('value' in data) {\n    value = data.value;\n  }\n\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n\n  if (value !== undefined) {\n    return value;\n  }\n\n  return \"rc-index-key-\".concat(index);\n}\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\n\n\nexport function flattenOptions(options) {\n  var flattenList = [];\n\n  function dig(list, isGroupOption) {\n    list.forEach(function (data) {\n      if (isGroupOption || !('options' in data)) {\n        // Option\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          groupOption: isGroupOption,\n          data: data\n        });\n      } else {\n        // Option Group\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          group: true,\n          data: data\n        });\n        dig(data.options, true);\n      }\n    });\n  }\n\n  dig(options, false);\n  return flattenList;\n}\n/**\n * Inject `props` into `option` for legacy usage\n */\n\nfunction injectPropsWithOption(option) {\n  var newOption = _objectSpread({}, option);\n\n  if (!('props' in newOption)) {\n    Object.defineProperty(newOption, 'props', {\n      get: function get() {\n        warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n        return newOption;\n      }\n    });\n  }\n\n  return newOption;\n}\n\nexport function findValueOption(values, options) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref$prevValueOptions = _ref.prevValueOptions,\n      prevValueOptions = _ref$prevValueOptions === void 0 ? [] : _ref$prevValueOptions;\n\n  var optionMap = new Map();\n  options.forEach(function (flattenItem) {\n    if (!flattenItem.group) {\n      var data = flattenItem.data; // Check if match\n\n      optionMap.set(data.value, data);\n    }\n  });\n  return values.map(function (val) {\n    var option = optionMap.get(val); // Fallback to try to find prev options\n\n    if (!option) {\n      option = _objectSpread({}, prevValueOptions.find(function (opt) {\n        return opt._INTERNAL_OPTION_VALUE_ === val;\n      }));\n    }\n\n    return injectPropsWithOption(option);\n  });\n}\nexport var getLabeledValue = function getLabeledValue(value, _ref2) {\n  var options = _ref2.options,\n      prevValue = _ref2.prevValue,\n      labelInValue = _ref2.labelInValue,\n      optionLabelProp = _ref2.optionLabelProp;\n  var item = findValueOption([value], options)[0];\n  var result = {\n    value: value\n  };\n  var prevValItem;\n  var prevValues = toArray(prevValue);\n\n  if (labelInValue) {\n    prevValItem = prevValues.find(function (prevItem) {\n      if (_typeof(prevItem) === 'object' && 'value' in prevItem) {\n        return prevItem.value === value;\n      } // [Legacy] Support `key` as `value`\n\n\n      return prevItem.key === value;\n    });\n  }\n\n  if (prevValItem && _typeof(prevValItem) === 'object' && 'label' in prevValItem) {\n    result.label = prevValItem.label;\n\n    if (item && typeof prevValItem.label === 'string' && typeof item[optionLabelProp] === 'string' && prevValItem.label.trim() !== item[optionLabelProp].trim()) {\n      warning(false, '`label` of `value` is not same as `label` in Select options.');\n    }\n  } else if (item && optionLabelProp in item) {\n    result.label = item[optionLabelProp];\n  } else {\n    result.label = value;\n  } // Used for motion control\n\n\n  result.key = result.value;\n  return result;\n};\n\nfunction toRawString(content) {\n  return toArray(content).join('');\n}\n/** Filter single option if match the search text */\n\n\nfunction getFilterFunction(optionFilterProp) {\n  return function (searchValue, option) {\n    var lowerSearchText = searchValue.toLowerCase(); // Group label search\n\n    if ('options' in option) {\n      return toRawString(option.label).toLowerCase().includes(lowerSearchText);\n    } // Option value search\n\n\n    var rawValue = option[optionFilterProp];\n    var value = toRawString(rawValue).toLowerCase();\n    return value.includes(lowerSearchText);\n  };\n}\n/** Filter options and return a new options by the search text */\n\n\nexport function filterOptions(searchValue, options, _ref3) {\n  var optionFilterProp = _ref3.optionFilterProp,\n      filterOption = _ref3.filterOption;\n  var filteredOptions = [];\n  var filterFunc;\n\n  if (filterOption === false) {\n    return _toConsumableArray(options);\n  }\n\n  if (typeof filterOption === 'function') {\n    filterFunc = filterOption;\n  } else {\n    filterFunc = getFilterFunction(optionFilterProp);\n  }\n\n  options.forEach(function (item) {\n    // Group should check child options\n    if ('options' in item) {\n      // Check group first\n      var matchGroup = filterFunc(searchValue, item);\n\n      if (matchGroup) {\n        filteredOptions.push(item);\n      } else {\n        // Check option\n        var subOptions = item.options.filter(function (subItem) {\n          return filterFunc(searchValue, subItem);\n        });\n\n        if (subOptions.length) {\n          filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, {\n            options: subOptions\n          }));\n        }\n      }\n\n      return;\n    }\n\n    if (filterFunc(searchValue, injectPropsWithOption(item))) {\n      filteredOptions.push(item);\n    }\n  });\n  return filteredOptions;\n}\nexport function getSeparatedContent(text, tokens) {\n  if (!tokens || !tokens.length) {\n    return null;\n  }\n\n  var match = false;\n\n  function separate(str, _ref4) {\n    var _ref5 = _toArray(_ref4),\n        token = _ref5[0],\n        restTokens = _ref5.slice(1);\n\n    if (!token) {\n      return [str];\n    }\n\n    var list = str.split(token);\n    match = match || list.length > 1;\n    return list.reduce(function (prevList, unitStr) {\n      return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n    }, []).filter(function (unit) {\n      return unit;\n    });\n  }\n\n  var list = separate(text, tokens);\n  return match ? list : null;\n}\nexport function isValueDisabled(value, options) {\n  var option = findValueOption([value], options)[0];\n  return option.disabled;\n}\n/**\n * `tags` mode should fill un-list item into the option list\n */\n\nexport function fillOptionsWithMissingValue(options, value, optionLabelProp, labelInValue) {\n  var values = toArray(value).slice().sort();\n\n  var cloneOptions = _toConsumableArray(options); // Convert options value to set\n\n\n  var optionValues = new Set();\n  options.forEach(function (opt) {\n    if (opt.options) {\n      opt.options.forEach(function (subOpt) {\n        optionValues.add(subOpt.value);\n      });\n    } else {\n      optionValues.add(opt.value);\n    }\n  }); // Fill missing value\n\n  values.forEach(function (item) {\n    var val = labelInValue ? item.value : item;\n\n    if (!optionValues.has(val)) {\n      var _ref6;\n\n      cloneOptions.push(labelInValue ? (_ref6 = {}, _defineProperty(_ref6, optionLabelProp, item.label), _defineProperty(_ref6, \"value\", val), _ref6) : {\n        value: val\n      });\n    }\n  });\n  return cloneOptions;\n}"]},"metadata":{},"sourceType":"module"}