var _excluded = ["children", "options", "rootId"];
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
function _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; }
function _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; }
import React from "preact/compat";
import { define } from "./preactement/define";
import { Dropdown } from "../Dropdown";
import { parseBooleanAttr } from "./wrapperUtils";
var attributes = [
// Using the lowercase HTML attribute name rather than `auto-focus` so it's
// more natural. There's no reason for us to worry about name collisions.
'autofocus', 'aria-disabled', 'class-name', 'disabled', 'error-message', 'error-placement', 'field-class-name', 'options', 'label', 'label-class-name', 'label-id', 'hint', 'hint-id', 'name', 'requirements-label', 'root-id', 'size', 'value', 'default-value'];

/* eslint-disable @typescript-eslint/no-namespace */

/* eslint-enable */

var Wrapper = function Wrapper(_ref) {
  var children = _ref.children,
    options = _ref.options,
    rootId = _ref.rootId,
    otherProps = _objectWithoutProperties(_ref, _excluded);
  return /*#__PURE__*/React.createElement(Dropdown, _extends({}, otherProps, {
    autoFocus: parseBooleanAttr(otherProps.autofocus),
    disabled: parseBooleanAttr(otherProps.disabled),
    "aria-disabled": parseBooleanAttr(otherProps.ariaDisabled),
    options: typeof options === 'string' ? JSON.parse(options) : options,
    id: rootId
  }), options ? undefined : children);
};
define('ds-dropdown', function () {
  return Wrapper;
}, {
  attributes: attributes,
  events: ['onChange', 'onBlur']
});