12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- function 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; }
- function _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; }
- function _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; }
- import { checkOptions } from './checkOptions';
- import { createStore } from './createStore';
- import { getAutocompleteSetters } from './getAutocompleteSetters';
- import { getDefaultProps } from './getDefaultProps';
- import { getPropGetters } from './getPropGetters';
- import { getMetadata, injectMetadata } from './metadata';
- import { onInput } from './onInput';
- import { stateReducer } from './stateReducer';
- export function createAutocomplete(options) {
- checkOptions(options);
- var subscribers = [];
- var props = getDefaultProps(options, subscribers);
- var store = createStore(stateReducer, props, onStoreStateChange);
- var setters = getAutocompleteSetters({
- store: store
- });
- var propGetters = getPropGetters(_objectSpread({
- props: props,
- refresh: refresh,
- store: store
- }, setters));
- function onStoreStateChange(_ref) {
- var prevState = _ref.prevState,
- state = _ref.state;
- props.onStateChange(_objectSpread({
- prevState: prevState,
- state: state,
- refresh: refresh
- }, setters));
- }
- function refresh() {
- return onInput(_objectSpread({
- event: new Event('input'),
- nextState: {
- isOpen: store.getState().isOpen
- },
- props: props,
- query: store.getState().query,
- refresh: refresh,
- store: store
- }, setters));
- }
- props.plugins.forEach(function (plugin) {
- var _plugin$subscribe;
- return (_plugin$subscribe = plugin.subscribe) === null || _plugin$subscribe === void 0 ? void 0 : _plugin$subscribe.call(plugin, _objectSpread(_objectSpread({}, setters), {}, {
- refresh: refresh,
- onSelect: function onSelect(fn) {
- subscribers.push({
- onSelect: fn
- });
- },
- onActive: function onActive(fn) {
- subscribers.push({
- onActive: fn
- });
- }
- }));
- });
- injectMetadata({
- metadata: getMetadata({
- plugins: props.plugins,
- options: options
- }),
- environment: props.environment
- });
- return _objectSpread(_objectSpread({
- refresh: refresh
- }, propGetters), setters);
- }
|