{"ast":null,"code":"var _s2 = $RefreshSig$();\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n\n  var key, i;\n\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _slicedToArray(arr, i) {\n  return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(n);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n\n  return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n  if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n  var _arr = [];\n  var _n = true;\n  var _d = false;\n  var _e = undefined;\n\n  try {\n    for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n      _arr.push(_s.value);\n\n      if (i && _arr.length === i) break;\n    }\n  } catch (err) {\n    _d = true;\n    _e = err;\n  } finally {\n    try {\n      if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n    } finally {\n      if (_d) throw _e;\n    }\n  }\n\n  return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n  if (Array.isArray(arr)) return arr;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nimport React, { useRef } from \"react\";\nimport Downshift from \"downshift\";\nimport VisuallyHidden from \"@reach/visually-hidden\";\nimport { Manager, Reference } from \"react-popper\";\nimport matchSorter from \"match-sorter\";\nimport cx from \"classnames\";\nimport { MenuItem, MenuList, ToggleButton } from \"../menu\";\nimport Icon from \"../icon\";\nimport useFocus from \"../hooks/use-focus\";\n\nvar stateReducer = function stateReducer(state, changes) {\n  switch (changes.type) {\n    case Downshift.stateChangeTypes.keyDownEnter:\n    case Downshift.stateChangeTypes.clickItem:\n      return _objectSpread({}, changes, {\n        highlightedIndex: state.highlightedIndex,\n        isOpen: true,\n        inputValue: \"\"\n      });\n\n    default:\n      return changes;\n  }\n};\n\nfunction SelectedItem(_ref) {\n  var item = _ref.item,\n      onRemove = _ref.onRemove;\n\n  var handleRemoveClick = function handleRemoveClick() {\n    onRemove(item);\n  };\n\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"bg-gray-300 relative inline-flex items-center text-xs pl-1 pr-4 mb-1 mr-1 rounded-sm\"\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"mr-1 flex-grow\"\n  }, item.label), /*#__PURE__*/React.createElement(\"button\", {\n    className: \"absolute h-full right-0 pl-2 pr-1 text-gray-600 hover:text-gray-700 focus:outline-none focus:text-gray-700\",\n    onClick: handleRemoveClick\n  }, /*#__PURE__*/React.createElement(Icon, {\n    icon: \"times\"\n  })));\n}\n\n_c = SelectedItem;\nvar filters = {\n  valueIncludesOption: function valueIncludesOption(value) {\n    return function (option) {\n      return value.some(function (val) {\n        return val === option.value;\n      });\n    };\n  },\n  exceptValue: function exceptValue(value) {\n    return function (option) {\n      return option.value !== value;\n    };\n  }\n};\n\nfunction MultiselectMenu(_ref2) {\n  _s2();\n\n  var options = _ref2.options,\n      className = _ref2.className,\n      name = _ref2.name,\n      label = _ref2.label,\n      onChange = _ref2.onChange,\n      _ref2$value = _ref2.value,\n      value = _ref2$value === void 0 ? [] : _ref2$value;\n\n  var _useFocus = useFocus(),\n      _useFocus2 = _slicedToArray(_useFocus, 2),\n      focused = _useFocus2[0],\n      inputFocusProps = _useFocus2[1];\n\n  var menuRef = useRef();\n  var selectedItems = options.filter(filters.valueIncludesOption(value));\n\n  var handleChange = function handleChange(option) {\n    if (!selectedItems.includes(option)) {\n      var selectedValues = [].concat(_toConsumableArray(selectedItems.map(function (item) {\n        return item.value;\n      })), [option.value]);\n      onChange({\n        target: {\n          name: name,\n          value: selectedValues\n        }\n      });\n    }\n  };\n\n  var removeItem = function removeItem(item) {\n    var selectedValues = selectedItems.filter(filters.exceptValue(item.value)).map(function (item) {\n      return item.value;\n    });\n    onChange({\n      target: {\n        name: name,\n        value: selectedValues\n      }\n    });\n  };\n\n  return /*#__PURE__*/React.createElement(Downshift, {\n    stateReducer: stateReducer,\n    onChange: handleChange,\n    selectedItem: null,\n    itemToString: function itemToString(item) {\n      return item ? item.label : \"\";\n    }\n  }, function (_ref3) {\n    var getInputProps = _ref3.getInputProps,\n        getLabelProps = _ref3.getLabelProps,\n        getToggleButtonProps = _ref3.getToggleButtonProps,\n        getMenuProps = _ref3.getMenuProps,\n        getRootProps = _ref3.getRootProps,\n        isOpen = _ref3.isOpen,\n        inputValue = _ref3.inputValue,\n        getItemProps = _ref3.getItemProps,\n        highlightedIndex = _ref3.highlightedIndex;\n    var buttonClassName = cx(\"inline-flex relative py-2 leading-5 rounded-sm border bg-white border-gray-300 text-sm focus:outline-blue\", className, {\n      \"outline-blue\": focused\n    }, {\n      \"pb-1\": selectedItems.length\n    });\n    var items = inputValue ? matchSorter(options, inputValue, {\n      keys: [\"label\"]\n    }) : options;\n\n    var _getRootProps = getRootProps({\n      ref: function ref(el) {\n        menuRef.current = el;\n      }\n    }, // Downshift doesn't handle us supplying our own ref very well.\n    {\n      suppressRefError: true\n    }),\n        downshiftRef = _getRootProps.ref,\n        rootProps = _objectWithoutProperties(_getRootProps, [\"ref\"]);\n\n    var minWidth = menuRef.current ? \"\".concat(menuRef.current.offsetWidth, \"px\") : null;\n    return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Reference, {\n      innerRef: downshiftRef\n    }, function (_ref4) {\n      var ref = _ref4.ref;\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        ref: ref,\n        className: buttonClassName\n      }, rootProps, {\n        style: {\n          minHeight: \"38px\",\n          paddingLeft: \"0.375rem\",\n          paddingRight: \"1.5rem\"\n        }\n      }), /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"label\", getLabelProps(), label)), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"flex flex-grow flex-wrap items-center\"\n      }, selectedItems.length > 0 ? selectedItems.map(function (item) {\n        return /*#__PURE__*/React.createElement(SelectedItem, {\n          key: item.value,\n          item: item,\n          onRemove: removeItem\n        });\n      }) : \"\", /*#__PURE__*/React.createElement(\"input\", _extends({\n        className: \"outline-none\"\n      }, getInputProps(_objectSpread({}, inputFocusProps, {\n        onKeyDown: function onKeyDown(event) {\n          if (event.key === \"Backspace\" && !inputValue) {\n            removeItem(selectedItems[selectedItems.length - 1]);\n          }\n        },\n        style: {\n          marginLeft: \"0.125rem\"\n        }\n      }))))), /*#__PURE__*/React.createElement(ToggleButton, _extends({}, getToggleButtonProps(), {\n        className: \"absolute right-0 mr-2 focus:outline-none\"\n      })));\n    }), /*#__PURE__*/React.createElement(MenuList, _extends({\n      active: isOpen,\n      style: {\n        minWidth: minWidth\n      }\n    }, getMenuProps({}, {\n      suppressRefError: true\n    })), items.map(function (item, index) {\n      return /*#__PURE__*/React.createElement(MenuItem, _extends({\n        key: item.value\n      }, getItemProps({\n        item: item,\n        index: index,\n        active: highlightedIndex === index,\n        selected: selectedItems.includes(item)\n      })), item.label);\n    })));\n  });\n}\n\n_s2(MultiselectMenu, \"WgsgF2yEOrCA1xdMF0SprCA1dwM=\", false, function () {\n  return [useFocus];\n});\n\n_c2 = MultiselectMenu;\nexport default MultiselectMenu;\n\nvar _c, _c2;\n\n$RefreshReg$(_c, \"SelectedItem\");\n$RefreshReg$(_c2, \"MultiselectMenu\");","map":{"version":3,"sources":["/Users/silverdust/Projects/ConvertKit/convertkit-design/docs/node_modules/@convertkit/design/multiselect-menu/index.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","toString","slice","constructor","name","test","len","arr2","_arr","_n","_d","_e","undefined","_i","_s","next","done","push","value","err","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","configurable","writable","React","useRef","Downshift","VisuallyHidden","Manager","Reference","matchSorter","cx","MenuItem","MenuList","ToggleButton","Icon","useFocus","stateReducer","state","changes","type","stateChangeTypes","keyDownEnter","clickItem","highlightedIndex","isOpen","inputValue","SelectedItem","_ref","item","onRemove","handleRemoveClick","createElement","className","label","onClick","icon","filters","valueIncludesOption","option","some","val","exceptValue","MultiselectMenu","_ref2","options","onChange","_ref2$value","_useFocus","_useFocus2","focused","inputFocusProps","menuRef","selectedItems","handleChange","includes","selectedValues","concat","map","removeItem","selectedItem","itemToString","_ref3","getInputProps","getLabelProps","getToggleButtonProps","getMenuProps","getRootProps","getItemProps","buttonClassName","items","_getRootProps","ref","el","current","suppressRefError","downshiftRef","rootProps","minWidth","offsetWidth","innerRef","_ref4","style","minHeight","paddingLeft","paddingRight","onKeyDown","event","marginLeft","active","index","selected"],"mappings":";;AAAA,SAASA,QAAT,GAAoB;AAAEA,EAAAA,QAAQ,GAAGC,MAAM,CAACC,MAAP,IAAiB,UAAUC,MAAV,EAAkB;AAAE,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACC,MAA9B,EAAsCF,CAAC,EAAvC,EAA2C;AAAE,UAAIG,MAAM,GAAGF,SAAS,CAACD,CAAD,CAAtB;;AAA2B,WAAK,IAAII,GAAT,IAAgBD,MAAhB,EAAwB;AAAE,YAAIN,MAAM,CAACQ,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,MAArC,EAA6CC,GAA7C,CAAJ,EAAuD;AAAEL,UAAAA,MAAM,CAACK,GAAD,CAAN,GAAcD,MAAM,CAACC,GAAD,CAApB;AAA4B;AAAE;AAAE;;AAAC,WAAOL,MAAP;AAAgB,GAA5P;;AAA8P,SAAOH,QAAQ,CAACY,KAAT,CAAe,IAAf,EAAqBP,SAArB,CAAP;AAAyC;;AAE7T,SAASQ,wBAAT,CAAkCN,MAAlC,EAA0CO,QAA1C,EAAoD;AAAE,MAAIP,MAAM,IAAI,IAAd,EAAoB,OAAO,EAAP;;AAAW,MAAIJ,MAAM,GAAGY,6BAA6B,CAACR,MAAD,EAASO,QAAT,CAA1C;;AAA8D,MAAIN,GAAJ,EAASJ,CAAT;;AAAY,MAAIH,MAAM,CAACe,qBAAX,EAAkC;AAAE,QAAIC,gBAAgB,GAAGhB,MAAM,CAACe,qBAAP,CAA6BT,MAA7B,CAAvB;;AAA6D,SAAKH,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGa,gBAAgB,CAACX,MAAjC,EAAyCF,CAAC,EAA1C,EAA8C;AAAEI,MAAAA,GAAG,GAAGS,gBAAgB,CAACb,CAAD,CAAtB;AAA2B,UAAIU,QAAQ,CAACI,OAAT,CAAiBV,GAAjB,KAAyB,CAA7B,EAAgC;AAAU,UAAI,CAACP,MAAM,CAACQ,SAAP,CAAiBU,oBAAjB,CAAsCR,IAAtC,CAA2CJ,MAA3C,EAAmDC,GAAnD,CAAL,EAA8D;AAAUL,MAAAA,MAAM,CAACK,GAAD,CAAN,GAAcD,MAAM,CAACC,GAAD,CAApB;AAA4B;AAAE;;AAAC,SAAOL,MAAP;AAAgB;;AAE5e,SAASY,6BAAT,CAAuCR,MAAvC,EAA+CO,QAA/C,EAAyD;AAAE,MAAIP,MAAM,IAAI,IAAd,EAAoB,OAAO,EAAP;AAAW,MAAIJ,MAAM,GAAG,EAAb;AAAiB,MAAIiB,UAAU,GAAGnB,MAAM,CAACoB,IAAP,CAAYd,MAAZ,CAAjB;AAAsC,MAAIC,GAAJ,EAASJ,CAAT;;AAAY,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGgB,UAAU,CAACd,MAA3B,EAAmCF,CAAC,EAApC,EAAwC;AAAEI,IAAAA,GAAG,GAAGY,UAAU,CAAChB,CAAD,CAAhB;AAAqB,QAAIU,QAAQ,CAACI,OAAT,CAAiBV,GAAjB,KAAyB,CAA7B,EAAgC;AAAUL,IAAAA,MAAM,CAACK,GAAD,CAAN,GAAcD,MAAM,CAACC,GAAD,CAApB;AAA4B;;AAAC,SAAOL,MAAP;AAAgB;;AAEnT,SAASmB,kBAAT,CAA4BC,GAA5B,EAAiC;AAAE,SAAOC,kBAAkB,CAACD,GAAD,CAAlB,IAA2BE,gBAAgB,CAACF,GAAD,CAA3C,IAAoDG,2BAA2B,CAACH,GAAD,CAA/E,IAAwFI,kBAAkB,EAAjH;AAAsH;;AAEzJ,SAASA,kBAAT,GAA8B;AAAE,QAAM,IAAIC,SAAJ,CAAc,sIAAd,CAAN;AAA8J;;AAE9L,SAASH,gBAAT,CAA0BI,IAA1B,EAAgC;AAAE,MAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACC,QAAP,IAAmB9B,MAAM,CAAC4B,IAAD,CAA9D,EAAsE,OAAOG,KAAK,CAACC,IAAN,CAAWJ,IAAX,CAAP;AAA0B;;AAElI,SAASL,kBAAT,CAA4BD,GAA5B,EAAiC;AAAE,MAAIS,KAAK,CAACE,OAAN,CAAcX,GAAd,CAAJ,EAAwB,OAAOY,iBAAiB,CAACZ,GAAD,CAAxB;AAAgC;;AAE3F,SAASa,cAAT,CAAwBb,GAAxB,EAA6BnB,CAA7B,EAAgC;AAAE,SAAOiC,eAAe,CAACd,GAAD,CAAf,IAAwBe,qBAAqB,CAACf,GAAD,EAAMnB,CAAN,CAA7C,IAAyDsB,2BAA2B,CAACH,GAAD,EAAMnB,CAAN,CAApF,IAAgGmC,gBAAgB,EAAvH;AAA4H;;AAE9J,SAASA,gBAAT,GAA4B;AAAE,QAAM,IAAIX,SAAJ,CAAc,2IAAd,CAAN;AAAmK;;AAEjM,SAASF,2BAAT,CAAqCc,CAArC,EAAwCC,MAAxC,EAAgD;AAAE,MAAI,CAACD,CAAL,EAAQ;AAAQ,MAAI,OAAOA,CAAP,KAAa,QAAjB,EAA2B,OAAOL,iBAAiB,CAACK,CAAD,EAAIC,MAAJ,CAAxB;AAAqC,MAAIC,CAAC,GAAGzC,MAAM,CAACQ,SAAP,CAAiBkC,QAAjB,CAA0BhC,IAA1B,CAA+B6B,CAA/B,EAAkCI,KAAlC,CAAwC,CAAxC,EAA2C,CAAC,CAA5C,CAAR;AAAwD,MAAIF,CAAC,KAAK,QAAN,IAAkBF,CAAC,CAACK,WAAxB,EAAqCH,CAAC,GAAGF,CAAC,CAACK,WAAF,CAAcC,IAAlB;AAAwB,MAAIJ,CAAC,KAAK,KAAN,IAAeA,CAAC,KAAK,KAAzB,EAAgC,OAAOV,KAAK,CAACC,IAAN,CAAWS,CAAX,CAAP;AAAsB,MAAIA,CAAC,KAAK,WAAN,IAAqB,2CAA2CK,IAA3C,CAAgDL,CAAhD,CAAzB,EAA6E,OAAOP,iBAAiB,CAACK,CAAD,EAAIC,MAAJ,CAAxB;AAAsC;;AAEha,SAASN,iBAAT,CAA2BZ,GAA3B,EAAgCyB,GAAhC,EAAqC;AAAE,MAAIA,GAAG,IAAI,IAAP,IAAeA,GAAG,GAAGzB,GAAG,CAACjB,MAA7B,EAAqC0C,GAAG,GAAGzB,GAAG,CAACjB,MAAV;;AAAkB,OAAK,IAAIF,CAAC,GAAG,CAAR,EAAW6C,IAAI,GAAG,IAAIjB,KAAJ,CAAUgB,GAAV,CAAvB,EAAuC5C,CAAC,GAAG4C,GAA3C,EAAgD5C,CAAC,EAAjD,EAAqD;AAAE6C,IAAAA,IAAI,CAAC7C,CAAD,CAAJ,GAAUmB,GAAG,CAACnB,CAAD,CAAb;AAAmB;;AAAC,SAAO6C,IAAP;AAAc;;AAEvL,SAASX,qBAAT,CAA+Bf,GAA/B,EAAoCnB,CAApC,EAAuC;AAAE,MAAI,OAAO0B,MAAP,KAAkB,WAAlB,IAAiC,EAAEA,MAAM,CAACC,QAAP,IAAmB9B,MAAM,CAACsB,GAAD,CAA3B,CAArC,EAAwE;AAAQ,MAAI2B,IAAI,GAAG,EAAX;AAAe,MAAIC,EAAE,GAAG,IAAT;AAAe,MAAIC,EAAE,GAAG,KAAT;AAAgB,MAAIC,EAAE,GAAGC,SAAT;;AAAoB,MAAI;AAAE,SAAK,IAAIC,EAAE,GAAGhC,GAAG,CAACO,MAAM,CAACC,QAAR,CAAH,EAAT,EAAiCyB,EAAtC,EAA0C,EAAEL,EAAE,GAAG,CAACK,EAAE,GAAGD,EAAE,CAACE,IAAH,EAAN,EAAiBC,IAAxB,CAA1C,EAAyEP,EAAE,GAAG,IAA9E,EAAoF;AAAED,MAAAA,IAAI,CAACS,IAAL,CAAUH,EAAE,CAACI,KAAb;;AAAqB,UAAIxD,CAAC,IAAI8C,IAAI,CAAC5C,MAAL,KAAgBF,CAAzB,EAA4B;AAAQ;AAAE,GAAvJ,CAAwJ,OAAOyD,GAAP,EAAY;AAAET,IAAAA,EAAE,GAAG,IAAL;AAAWC,IAAAA,EAAE,GAAGQ,GAAL;AAAW,GAA5L,SAAqM;AAAE,QAAI;AAAE,UAAI,CAACV,EAAD,IAAOI,EAAE,CAAC,QAAD,CAAF,IAAgB,IAA3B,EAAiCA,EAAE,CAAC,QAAD,CAAF;AAAiB,KAAxD,SAAiE;AAAE,UAAIH,EAAJ,EAAQ,MAAMC,EAAN;AAAW;AAAE;;AAAC,SAAOH,IAAP;AAAc;;AAEze,SAASb,eAAT,CAAyBd,GAAzB,EAA8B;AAAE,MAAIS,KAAK,CAACE,OAAN,CAAcX,GAAd,CAAJ,EAAwB,OAAOA,GAAP;AAAa;;AAErE,SAASuC,OAAT,CAAiBC,MAAjB,EAAyBC,cAAzB,EAAyC;AAAE,MAAI3C,IAAI,GAAGpB,MAAM,CAACoB,IAAP,CAAY0C,MAAZ,CAAX;;AAAgC,MAAI9D,MAAM,CAACe,qBAAX,EAAkC;AAAE,QAAIiD,OAAO,GAAGhE,MAAM,CAACe,qBAAP,CAA6B+C,MAA7B,CAAd;AAAoD,QAAIC,cAAJ,EAAoBC,OAAO,GAAGA,OAAO,CAACC,MAAR,CAAe,UAAUC,GAAV,EAAe;AAAE,aAAOlE,MAAM,CAACmE,wBAAP,CAAgCL,MAAhC,EAAwCI,GAAxC,EAA6CE,UAApD;AAAiE,KAAjG,CAAV;AAA8GhD,IAAAA,IAAI,CAACsC,IAAL,CAAU/C,KAAV,CAAgBS,IAAhB,EAAsB4C,OAAtB;AAAiC;;AAAC,SAAO5C,IAAP;AAAc;;AAErV,SAASiD,aAAT,CAAuBnE,MAAvB,EAA+B;AAAE,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGC,SAAS,CAACC,MAA9B,EAAsCF,CAAC,EAAvC,EAA2C;AAAE,QAAIG,MAAM,GAAGF,SAAS,CAACD,CAAD,CAAT,IAAgB,IAAhB,GAAuBC,SAAS,CAACD,CAAD,CAAhC,GAAsC,EAAnD;;AAAuD,QAAIA,CAAC,GAAG,CAAR,EAAW;AAAE0D,MAAAA,OAAO,CAAC7D,MAAM,CAACM,MAAD,CAAP,EAAiB,IAAjB,CAAP,CAA8BgE,OAA9B,CAAsC,UAAU/D,GAAV,EAAe;AAAEgE,QAAAA,eAAe,CAACrE,MAAD,EAASK,GAAT,EAAcD,MAAM,CAACC,GAAD,CAApB,CAAf;AAA4C,OAAnG;AAAuG,KAApH,MAA0H,IAAIP,MAAM,CAACwE,yBAAX,EAAsC;AAAExE,MAAAA,MAAM,CAACyE,gBAAP,CAAwBvE,MAAxB,EAAgCF,MAAM,CAACwE,yBAAP,CAAiClE,MAAjC,CAAhC;AAA4E,KAApH,MAA0H;AAAEuD,MAAAA,OAAO,CAAC7D,MAAM,CAACM,MAAD,CAAP,CAAP,CAAwBgE,OAAxB,CAAgC,UAAU/D,GAAV,EAAe;AAAEP,QAAAA,MAAM,CAAC0E,cAAP,CAAsBxE,MAAtB,EAA8BK,GAA9B,EAAmCP,MAAM,CAACmE,wBAAP,CAAgC7D,MAAhC,EAAwCC,GAAxC,CAAnC;AAAmF,OAApI;AAAwI;AAAE;;AAAC,SAAOL,MAAP;AAAgB;;AAEthB,SAASqE,eAAT,CAAyBI,GAAzB,EAA8BpE,GAA9B,EAAmCoD,KAAnC,EAA0C;AAAE,MAAIpD,GAAG,IAAIoE,GAAX,EAAgB;AAAE3E,IAAAA,MAAM,CAAC0E,cAAP,CAAsBC,GAAtB,EAA2BpE,GAA3B,EAAgC;AAAEoD,MAAAA,KAAK,EAAEA,KAAT;AAAgBS,MAAAA,UAAU,EAAE,IAA5B;AAAkCQ,MAAAA,YAAY,EAAE,IAAhD;AAAsDC,MAAAA,QAAQ,EAAE;AAAhE,KAAhC;AAA0G,GAA5H,MAAkI;AAAEF,IAAAA,GAAG,CAACpE,GAAD,CAAH,GAAWoD,KAAX;AAAmB;;AAAC,SAAOgB,GAAP;AAAa;;AAEjN,OAAOG,KAAP,IAAgBC,MAAhB,QAA8B,OAA9B;AACA,OAAOC,SAAP,MAAsB,WAAtB;AACA,OAAOC,cAAP,MAA2B,wBAA3B;AACA,SAASC,OAAT,EAAkBC,SAAlB,QAAmC,cAAnC;AACA,OAAOC,WAAP,MAAwB,cAAxB;AACA,OAAOC,EAAP,MAAe,YAAf;AACA,SAASC,QAAT,EAAmBC,QAAnB,EAA6BC,YAA7B,QAAiD,SAAjD;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,QAAP,MAAqB,oBAArB;;AAEA,IAAIC,YAAY,GAAG,SAASA,YAAT,CAAsBC,KAAtB,EAA6BC,OAA7B,EAAsC;AACvD,UAAQA,OAAO,CAACC,IAAhB;AACE,SAAKd,SAAS,CAACe,gBAAV,CAA2BC,YAAhC;AACA,SAAKhB,SAAS,CAACe,gBAAV,CAA2BE,SAAhC;AACE,aAAO5B,aAAa,CAAC,EAAD,EAAKwB,OAAL,EAAc;AAChCK,QAAAA,gBAAgB,EAAEN,KAAK,CAACM,gBADQ;AAEhCC,QAAAA,MAAM,EAAE,IAFwB;AAGhCC,QAAAA,UAAU,EAAE;AAHoB,OAAd,CAApB;;AAMF;AACE,aAAOP,OAAP;AAVJ;AAYD,CAbD;;AAeA,SAASQ,YAAT,CAAsBC,IAAtB,EAA4B;AAC1B,MAAIC,IAAI,GAAGD,IAAI,CAACC,IAAhB;AAAA,MACIC,QAAQ,GAAGF,IAAI,CAACE,QADpB;;AAGA,MAAIC,iBAAiB,GAAG,SAASA,iBAAT,GAA6B;AACnDD,IAAAA,QAAQ,CAACD,IAAD,CAAR;AACD,GAFD;;AAIA,SAAO,aAAazB,KAAK,CAAC4B,aAAN,CAAoB,KAApB,EAA2B;AAC7CC,IAAAA,SAAS,EAAE;AADkC,GAA3B,EAEjB,aAAa7B,KAAK,CAAC4B,aAAN,CAAoB,MAApB,EAA4B;AAC1CC,IAAAA,SAAS,EAAE;AAD+B,GAA5B,EAEbJ,IAAI,CAACK,KAFQ,CAFI,EAIJ,aAAa9B,KAAK,CAAC4B,aAAN,CAAoB,QAApB,EAA8B;AACzDC,IAAAA,SAAS,EAAE,4GAD8C;AAEzDE,IAAAA,OAAO,EAAEJ;AAFgD,GAA9B,EAG1B,aAAa3B,KAAK,CAAC4B,aAAN,CAAoBjB,IAApB,EAA0B;AACxCqB,IAAAA,IAAI,EAAE;AADkC,GAA1B,CAHa,CAJT,CAApB;AAUD;;KAlBQT,Y;AAoBT,IAAIU,OAAO,GAAG;AACZC,EAAAA,mBAAmB,EAAE,SAASA,mBAAT,CAA6BrD,KAA7B,EAAoC;AACvD,WAAO,UAAUsD,MAAV,EAAkB;AACvB,aAAOtD,KAAK,CAACuD,IAAN,CAAW,UAAUC,GAAV,EAAe;AAC/B,eAAOA,GAAG,KAAKF,MAAM,CAACtD,KAAtB;AACD,OAFM,CAAP;AAGD,KAJD;AAKD,GAPW;AAQZyD,EAAAA,WAAW,EAAE,SAASA,WAAT,CAAqBzD,KAArB,EAA4B;AACvC,WAAO,UAAUsD,MAAV,EAAkB;AACvB,aAAOA,MAAM,CAACtD,KAAP,KAAiBA,KAAxB;AACD,KAFD;AAGD;AAZW,CAAd;;AAeA,SAAS0D,eAAT,CAAyBC,KAAzB,EAAgC;AAAA;;AAC9B,MAAIC,OAAO,GAAGD,KAAK,CAACC,OAApB;AAAA,MACIZ,SAAS,GAAGW,KAAK,CAACX,SADtB;AAAA,MAEI9D,IAAI,GAAGyE,KAAK,CAACzE,IAFjB;AAAA,MAGI+D,KAAK,GAAGU,KAAK,CAACV,KAHlB;AAAA,MAIIY,QAAQ,GAAGF,KAAK,CAACE,QAJrB;AAAA,MAKIC,WAAW,GAAGH,KAAK,CAAC3D,KALxB;AAAA,MAMIA,KAAK,GAAG8D,WAAW,KAAK,KAAK,CAArB,GAAyB,EAAzB,GAA8BA,WAN1C;;AAQA,MAAIC,SAAS,GAAGhC,QAAQ,EAAxB;AAAA,MACIiC,UAAU,GAAGxF,cAAc,CAACuF,SAAD,EAAY,CAAZ,CAD/B;AAAA,MAEIE,OAAO,GAAGD,UAAU,CAAC,CAAD,CAFxB;AAAA,MAGIE,eAAe,GAAGF,UAAU,CAAC,CAAD,CAHhC;;AAKA,MAAIG,OAAO,GAAG/C,MAAM,EAApB;AACA,MAAIgD,aAAa,GAAGR,OAAO,CAACtD,MAAR,CAAe8C,OAAO,CAACC,mBAAR,CAA4BrD,KAA5B,CAAf,CAApB;;AAEA,MAAIqE,YAAY,GAAG,SAASA,YAAT,CAAsBf,MAAtB,EAA8B;AAC/C,QAAI,CAACc,aAAa,CAACE,QAAd,CAAuBhB,MAAvB,CAAL,EAAqC;AACnC,UAAIiB,cAAc,GAAG,GAAGC,MAAH,CAAU9G,kBAAkB,CAAC0G,aAAa,CAACK,GAAd,CAAkB,UAAU7B,IAAV,EAAgB;AAClF,eAAOA,IAAI,CAAC5C,KAAZ;AACD,OAFiD,CAAD,CAA5B,EAEhB,CAACsD,MAAM,CAACtD,KAAR,CAFgB,CAArB;AAGA6D,MAAAA,QAAQ,CAAC;AACPtH,QAAAA,MAAM,EAAE;AACN2C,UAAAA,IAAI,EAAEA,IADA;AAENc,UAAAA,KAAK,EAAEuE;AAFD;AADD,OAAD,CAAR;AAMD;AACF,GAZD;;AAcA,MAAIG,UAAU,GAAG,SAASA,UAAT,CAAoB9B,IAApB,EAA0B;AACzC,QAAI2B,cAAc,GAAGH,aAAa,CAAC9D,MAAd,CAAqB8C,OAAO,CAACK,WAAR,CAAoBb,IAAI,CAAC5C,KAAzB,CAArB,EAAsDyE,GAAtD,CAA0D,UAAU7B,IAAV,EAAgB;AAC7F,aAAOA,IAAI,CAAC5C,KAAZ;AACD,KAFoB,CAArB;AAGA6D,IAAAA,QAAQ,CAAC;AACPtH,MAAAA,MAAM,EAAE;AACN2C,QAAAA,IAAI,EAAEA,IADA;AAENc,QAAAA,KAAK,EAAEuE;AAFD;AADD,KAAD,CAAR;AAMD,GAVD;;AAYA,SAAO,aAAapD,KAAK,CAAC4B,aAAN,CAAoB1B,SAApB,EAA+B;AACjDW,IAAAA,YAAY,EAAEA,YADmC;AAEjD6B,IAAAA,QAAQ,EAAEQ,YAFuC;AAGjDM,IAAAA,YAAY,EAAE,IAHmC;AAIjDC,IAAAA,YAAY,EAAE,SAASA,YAAT,CAAsBhC,IAAtB,EAA4B;AACxC,aAAOA,IAAI,GAAGA,IAAI,CAACK,KAAR,GAAgB,EAA3B;AACD;AANgD,GAA/B,EAOjB,UAAU4B,KAAV,EAAiB;AAClB,QAAIC,aAAa,GAAGD,KAAK,CAACC,aAA1B;AAAA,QACIC,aAAa,GAAGF,KAAK,CAACE,aAD1B;AAAA,QAEIC,oBAAoB,GAAGH,KAAK,CAACG,oBAFjC;AAAA,QAGIC,YAAY,GAAGJ,KAAK,CAACI,YAHzB;AAAA,QAIIC,YAAY,GAAGL,KAAK,CAACK,YAJzB;AAAA,QAKI1C,MAAM,GAAGqC,KAAK,CAACrC,MALnB;AAAA,QAMIC,UAAU,GAAGoC,KAAK,CAACpC,UANvB;AAAA,QAOI0C,YAAY,GAAGN,KAAK,CAACM,YAPzB;AAAA,QAQI5C,gBAAgB,GAAGsC,KAAK,CAACtC,gBAR7B;AASA,QAAI6C,eAAe,GAAG1D,EAAE,CAAC,2GAAD,EAA8GsB,SAA9G,EAAyH;AAC/I,sBAAgBiB;AAD+H,KAAzH,EAErB;AACD,cAAQG,aAAa,CAAC1H;AADrB,KAFqB,CAAxB;AAKA,QAAI2I,KAAK,GAAG5C,UAAU,GAAGhB,WAAW,CAACmC,OAAD,EAAUnB,UAAV,EAAsB;AACxDhF,MAAAA,IAAI,EAAE,CAAC,OAAD;AADkD,KAAtB,CAAd,GAEjBmG,OAFL;;AAIA,QAAI0B,aAAa,GAAGJ,YAAY,CAAC;AAC/BK,MAAAA,GAAG,EAAE,SAASA,GAAT,CAAaC,EAAb,EAAiB;AACpBrB,QAAAA,OAAO,CAACsB,OAAR,GAAkBD,EAAlB;AACD;AAH8B,KAAD,EAI7B;AACH;AACEE,MAAAA,gBAAgB,EAAE;AADpB,KALgC,CAAhC;AAAA,QAQIC,YAAY,GAAGL,aAAa,CAACC,GARjC;AAAA,QASIK,SAAS,GAAG3I,wBAAwB,CAACqI,aAAD,EAAgB,CAAC,KAAD,CAAhB,CATxC;;AAWA,QAAIO,QAAQ,GAAG1B,OAAO,CAACsB,OAAR,GAAkB,GAAGjB,MAAH,CAAUL,OAAO,CAACsB,OAAR,CAAgBK,WAA1B,EAAuC,IAAvC,CAAlB,GAAiE,IAAhF;AACA,WAAO,aAAa3E,KAAK,CAAC4B,aAAN,CAAoBxB,OAApB,EAA6B,IAA7B,EAAmC,aAAaJ,KAAK,CAAC4B,aAAN,CAAoBvB,SAApB,EAA+B;AACjGuE,MAAAA,QAAQ,EAAEJ;AADuF,KAA/B,EAEjE,UAAUK,KAAV,EAAiB;AAClB,UAAIT,GAAG,GAAGS,KAAK,CAACT,GAAhB;AACA,aAAO,aAAapE,KAAK,CAAC4B,aAAN,CAAoB,KAApB,EAA2B3G,QAAQ,CAAC;AACtDmJ,QAAAA,GAAG,EAAEA,GADiD;AAEtDvC,QAAAA,SAAS,EAAEoC;AAF2C,OAAD,EAGpDQ,SAHoD,EAGzC;AACZK,QAAAA,KAAK,EAAE;AACLC,UAAAA,SAAS,EAAE,MADN;AAELC,UAAAA,WAAW,EAAE,UAFR;AAGLC,UAAAA,YAAY,EAAE;AAHT;AADK,OAHyC,CAAnC,EAShB,aAAajF,KAAK,CAAC4B,aAAN,CAAoBzB,cAApB,EAAoC,IAApC,EAA0C,aAAaH,KAAK,CAAC4B,aAAN,CAAoB,OAApB,EAA6BgC,aAAa,EAA1C,EAA8C9B,KAA9C,CAAvD,CATG,EAS2G,aAAa9B,KAAK,CAAC4B,aAAN,CAAoB,KAApB,EAA2B;AACrKC,QAAAA,SAAS,EAAE;AAD0J,OAA3B,EAEzIoB,aAAa,CAAC1H,MAAd,GAAuB,CAAvB,GAA2B0H,aAAa,CAACK,GAAd,CAAkB,UAAU7B,IAAV,EAAgB;AAC9D,eAAO,aAAazB,KAAK,CAAC4B,aAAN,CAAoBL,YAApB,EAAkC;AACpD9F,UAAAA,GAAG,EAAEgG,IAAI,CAAC5C,KAD0C;AAEpD4C,UAAAA,IAAI,EAAEA,IAF8C;AAGpDC,UAAAA,QAAQ,EAAE6B;AAH0C,SAAlC,CAApB;AAKD,OAN6B,CAA3B,GAME,EARuI,EAQnI,aAAavD,KAAK,CAAC4B,aAAN,CAAoB,OAApB,EAA6B3G,QAAQ,CAAC;AAC1D4G,QAAAA,SAAS,EAAE;AAD+C,OAAD,EAExD8B,aAAa,CAACpE,aAAa,CAAC,EAAD,EAAKwD,eAAL,EAAsB;AAClDmC,QAAAA,SAAS,EAAE,SAASA,SAAT,CAAmBC,KAAnB,EAA0B;AACnC,cAAIA,KAAK,CAAC1J,GAAN,KAAc,WAAd,IAA6B,CAAC6F,UAAlC,EAA8C;AAC5CiC,YAAAA,UAAU,CAACN,aAAa,CAACA,aAAa,CAAC1H,MAAd,GAAuB,CAAxB,CAAd,CAAV;AACD;AACF,SALiD;AAMlDuJ,QAAAA,KAAK,EAAE;AACLM,UAAAA,UAAU,EAAE;AADP;AAN2C,OAAtB,CAAd,CAF2C,CAArC,CARsH,CATxH,EA4BZ,aAAapF,KAAK,CAAC4B,aAAN,CAAoBlB,YAApB,EAAkCzF,QAAQ,CAAC,EAAD,EAAK4I,oBAAoB,EAAzB,EAA6B;AAC1FhC,QAAAA,SAAS,EAAE;AAD+E,OAA7B,CAA1C,CA5BD,CAApB;AA+BD,KAnCmE,CAAhD,EAmChB,aAAa7B,KAAK,CAAC4B,aAAN,CAAoBnB,QAApB,EAA8BxF,QAAQ,CAAC;AACtDoK,MAAAA,MAAM,EAAEhE,MAD8C;AAEtDyD,MAAAA,KAAK,EAAE;AACLJ,QAAAA,QAAQ,EAAEA;AADL;AAF+C,KAAD,EAKpDZ,YAAY,CAAC,EAAD,EAAK;AAClBS,MAAAA,gBAAgB,EAAE;AADA,KAAL,CALwC,CAAtC,EAOZL,KAAK,CAACZ,GAAN,CAAU,UAAU7B,IAAV,EAAgB6D,KAAhB,EAAuB;AACpC,aAAO,aAAatF,KAAK,CAAC4B,aAAN,CAAoBpB,QAApB,EAA8BvF,QAAQ,CAAC;AACzDQ,QAAAA,GAAG,EAAEgG,IAAI,CAAC5C;AAD+C,OAAD,EAEvDmF,YAAY,CAAC;AACdvC,QAAAA,IAAI,EAAEA,IADQ;AAEd6D,QAAAA,KAAK,EAAEA,KAFO;AAGdD,QAAAA,MAAM,EAAEjE,gBAAgB,KAAKkE,KAHf;AAIdC,QAAAA,QAAQ,EAAEtC,aAAa,CAACE,QAAd,CAAuB1B,IAAvB;AAJI,OAAD,CAF2C,CAAtC,EAOfA,IAAI,CAACK,KAPU,CAApB;AAQD,KATI,CAPY,CAnCG,CAApB;AAoDD,GA1FmB,CAApB;AA2FD;;IAtIQS,e;UASS3B,Q;;;MATT2B,e;AAwIT,eAAeA,eAAf","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { useRef } from \"react\";\nimport Downshift from \"downshift\";\nimport VisuallyHidden from \"@reach/visually-hidden\";\nimport { Manager, Reference } from \"react-popper\";\nimport matchSorter from \"match-sorter\";\nimport cx from \"classnames\";\nimport { MenuItem, MenuList, ToggleButton } from \"../menu\";\nimport Icon from \"../icon\";\nimport useFocus from \"../hooks/use-focus\";\n\nvar stateReducer = function stateReducer(state, changes) {\n  switch (changes.type) {\n    case Downshift.stateChangeTypes.keyDownEnter:\n    case Downshift.stateChangeTypes.clickItem:\n      return _objectSpread({}, changes, {\n        highlightedIndex: state.highlightedIndex,\n        isOpen: true,\n        inputValue: \"\"\n      });\n\n    default:\n      return changes;\n  }\n};\n\nfunction SelectedItem(_ref) {\n  var item = _ref.item,\n      onRemove = _ref.onRemove;\n\n  var handleRemoveClick = function handleRemoveClick() {\n    onRemove(item);\n  };\n\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"bg-gray-300 relative inline-flex items-center text-xs pl-1 pr-4 mb-1 mr-1 rounded-sm\"\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"mr-1 flex-grow\"\n  }, item.label), /*#__PURE__*/React.createElement(\"button\", {\n    className: \"absolute h-full right-0 pl-2 pr-1 text-gray-600 hover:text-gray-700 focus:outline-none focus:text-gray-700\",\n    onClick: handleRemoveClick\n  }, /*#__PURE__*/React.createElement(Icon, {\n    icon: \"times\"\n  })));\n}\n\nvar filters = {\n  valueIncludesOption: function valueIncludesOption(value) {\n    return function (option) {\n      return value.some(function (val) {\n        return val === option.value;\n      });\n    };\n  },\n  exceptValue: function exceptValue(value) {\n    return function (option) {\n      return option.value !== value;\n    };\n  }\n};\n\nfunction MultiselectMenu(_ref2) {\n  var options = _ref2.options,\n      className = _ref2.className,\n      name = _ref2.name,\n      label = _ref2.label,\n      onChange = _ref2.onChange,\n      _ref2$value = _ref2.value,\n      value = _ref2$value === void 0 ? [] : _ref2$value;\n\n  var _useFocus = useFocus(),\n      _useFocus2 = _slicedToArray(_useFocus, 2),\n      focused = _useFocus2[0],\n      inputFocusProps = _useFocus2[1];\n\n  var menuRef = useRef();\n  var selectedItems = options.filter(filters.valueIncludesOption(value));\n\n  var handleChange = function handleChange(option) {\n    if (!selectedItems.includes(option)) {\n      var selectedValues = [].concat(_toConsumableArray(selectedItems.map(function (item) {\n        return item.value;\n      })), [option.value]);\n      onChange({\n        target: {\n          name: name,\n          value: selectedValues\n        }\n      });\n    }\n  };\n\n  var removeItem = function removeItem(item) {\n    var selectedValues = selectedItems.filter(filters.exceptValue(item.value)).map(function (item) {\n      return item.value;\n    });\n    onChange({\n      target: {\n        name: name,\n        value: selectedValues\n      }\n    });\n  };\n\n  return /*#__PURE__*/React.createElement(Downshift, {\n    stateReducer: stateReducer,\n    onChange: handleChange,\n    selectedItem: null,\n    itemToString: function itemToString(item) {\n      return item ? item.label : \"\";\n    }\n  }, function (_ref3) {\n    var getInputProps = _ref3.getInputProps,\n        getLabelProps = _ref3.getLabelProps,\n        getToggleButtonProps = _ref3.getToggleButtonProps,\n        getMenuProps = _ref3.getMenuProps,\n        getRootProps = _ref3.getRootProps,\n        isOpen = _ref3.isOpen,\n        inputValue = _ref3.inputValue,\n        getItemProps = _ref3.getItemProps,\n        highlightedIndex = _ref3.highlightedIndex;\n    var buttonClassName = cx(\"inline-flex relative py-2 leading-5 rounded-sm border bg-white border-gray-300 text-sm focus:outline-blue\", className, {\n      \"outline-blue\": focused\n    }, {\n      \"pb-1\": selectedItems.length\n    });\n    var items = inputValue ? matchSorter(options, inputValue, {\n      keys: [\"label\"]\n    }) : options;\n\n    var _getRootProps = getRootProps({\n      ref: function ref(el) {\n        menuRef.current = el;\n      }\n    }, // Downshift doesn't handle us supplying our own ref very well.\n    {\n      suppressRefError: true\n    }),\n        downshiftRef = _getRootProps.ref,\n        rootProps = _objectWithoutProperties(_getRootProps, [\"ref\"]);\n\n    var minWidth = menuRef.current ? \"\".concat(menuRef.current.offsetWidth, \"px\") : null;\n    return /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Reference, {\n      innerRef: downshiftRef\n    }, function (_ref4) {\n      var ref = _ref4.ref;\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        ref: ref,\n        className: buttonClassName\n      }, rootProps, {\n        style: {\n          minHeight: \"38px\",\n          paddingLeft: \"0.375rem\",\n          paddingRight: \"1.5rem\"\n        }\n      }), /*#__PURE__*/React.createElement(VisuallyHidden, null, /*#__PURE__*/React.createElement(\"label\", getLabelProps(), label)), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"flex flex-grow flex-wrap items-center\"\n      }, selectedItems.length > 0 ? selectedItems.map(function (item) {\n        return /*#__PURE__*/React.createElement(SelectedItem, {\n          key: item.value,\n          item: item,\n          onRemove: removeItem\n        });\n      }) : \"\", /*#__PURE__*/React.createElement(\"input\", _extends({\n        className: \"outline-none\"\n      }, getInputProps(_objectSpread({}, inputFocusProps, {\n        onKeyDown: function onKeyDown(event) {\n          if (event.key === \"Backspace\" && !inputValue) {\n            removeItem(selectedItems[selectedItems.length - 1]);\n          }\n        },\n        style: {\n          marginLeft: \"0.125rem\"\n        }\n      }))))), /*#__PURE__*/React.createElement(ToggleButton, _extends({}, getToggleButtonProps(), {\n        className: \"absolute right-0 mr-2 focus:outline-none\"\n      })));\n    }), /*#__PURE__*/React.createElement(MenuList, _extends({\n      active: isOpen,\n      style: {\n        minWidth: minWidth\n      }\n    }, getMenuProps({}, {\n      suppressRefError: true\n    })), items.map(function (item, index) {\n      return /*#__PURE__*/React.createElement(MenuItem, _extends({\n        key: item.value\n      }, getItemProps({\n        item: item,\n        index: index,\n        active: highlightedIndex === index,\n        selected: selectedItems.includes(item)\n      })), item.label);\n    })));\n  });\n}\n\nexport default MultiselectMenu;"]},"metadata":{},"sourceType":"module"}