@entur/dropdown 6.0.12 → 6.0.13-RC.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,1239 +4,361 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var utils = require('@entur/utils');
6
6
  var React = require('react');
7
- var Downshift = require('downshift');
7
+ var downshift = require('downshift');
8
8
  var classNames = require('classnames');
9
+ var reactDom = require('@floating-ui/react-dom');
9
10
  var form = require('@entur/form');
10
- var icons = require('@entur/icons');
11
- var a11y = require('@entur/a11y');
12
- var loader = require('@entur/loader');
13
11
  var tokens = require('@entur/tokens');
14
- var reactDom = require('@floating-ui/react-dom');
12
+ var a11y = require('@entur/a11y');
15
13
  var button = require('@entur/button');
16
14
  var chip = require('@entur/chip');
15
+ var icons = require('@entur/icons');
16
+ var loader = require('@entur/loader');
17
17
  var tooltip = require('@entur/tooltip');
18
18
 
19
+ function asyncGeneratorStep(n, t, e, r, o, a, c) {
20
+ try {
21
+ var i = n[a](c),
22
+ u = i.value;
23
+ } catch (n) {
24
+ return void e(n);
25
+ }
26
+ i.done ? t(u) : Promise.resolve(u).then(r, o);
27
+ }
28
+ function _asyncToGenerator(n) {
29
+ return function () {
30
+ var t = this,
31
+ e = arguments;
32
+ return new Promise(function (r, o) {
33
+ var a = n.apply(t, e);
34
+ function _next(n) {
35
+ asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
36
+ }
37
+ function _throw(n) {
38
+ asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
39
+ }
40
+ _next(void 0);
41
+ });
42
+ };
43
+ }
44
+ function _extends() {
45
+ return _extends = Object.assign ? Object.assign.bind() : function (n) {
46
+ for (var e = 1; e < arguments.length; e++) {
47
+ var t = arguments[e];
48
+ for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
49
+ }
50
+ return n;
51
+ }, _extends.apply(null, arguments);
52
+ }
53
+ function _objectWithoutPropertiesLoose(r, e) {
54
+ if (null == r) return {};
55
+ var t = {};
56
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
57
+ if (e.includes(n)) continue;
58
+ t[n] = r[n];
59
+ }
60
+ return t;
61
+ }
19
62
  function _regeneratorRuntime() {
20
63
  _regeneratorRuntime = function () {
21
- return exports;
64
+ return e;
22
65
  };
23
- var exports = {},
24
- Op = Object.prototype,
25
- hasOwn = Op.hasOwnProperty,
26
- defineProperty = Object.defineProperty || function (obj, key, desc) {
27
- obj[key] = desc.value;
66
+ var t,
67
+ e = {},
68
+ r = Object.prototype,
69
+ n = r.hasOwnProperty,
70
+ o = Object.defineProperty || function (t, e, r) {
71
+ t[e] = r.value;
28
72
  },
29
- $Symbol = "function" == typeof Symbol ? Symbol : {},
30
- iteratorSymbol = $Symbol.iterator || "@@iterator",
31
- asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator",
32
- toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
33
- function define(obj, key, value) {
34
- return Object.defineProperty(obj, key, {
35
- value: value,
73
+ i = "function" == typeof Symbol ? Symbol : {},
74
+ a = i.iterator || "@@iterator",
75
+ c = i.asyncIterator || "@@asyncIterator",
76
+ u = i.toStringTag || "@@toStringTag";
77
+ function define(t, e, r) {
78
+ return Object.defineProperty(t, e, {
79
+ value: r,
36
80
  enumerable: !0,
37
81
  configurable: !0,
38
82
  writable: !0
39
- }), obj[key];
83
+ }), t[e];
40
84
  }
41
85
  try {
42
86
  define({}, "");
43
- } catch (err) {
44
- define = function (obj, key, value) {
45
- return obj[key] = value;
87
+ } catch (t) {
88
+ define = function (t, e, r) {
89
+ return t[e] = r;
46
90
  };
47
91
  }
48
- function wrap(innerFn, outerFn, self, tryLocsList) {
49
- var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,
50
- generator = Object.create(protoGenerator.prototype),
51
- context = new Context(tryLocsList || []);
52
- return defineProperty(generator, "_invoke", {
53
- value: makeInvokeMethod(innerFn, self, context)
54
- }), generator;
92
+ function wrap(t, e, r, n) {
93
+ var i = e && e.prototype instanceof Generator ? e : Generator,
94
+ a = Object.create(i.prototype),
95
+ c = new Context(n || []);
96
+ return o(a, "_invoke", {
97
+ value: makeInvokeMethod(t, r, c)
98
+ }), a;
55
99
  }
56
- function tryCatch(fn, obj, arg) {
100
+ function tryCatch(t, e, r) {
57
101
  try {
58
102
  return {
59
103
  type: "normal",
60
- arg: fn.call(obj, arg)
104
+ arg: t.call(e, r)
61
105
  };
62
- } catch (err) {
106
+ } catch (t) {
63
107
  return {
64
108
  type: "throw",
65
- arg: err
109
+ arg: t
66
110
  };
67
111
  }
68
112
  }
69
- exports.wrap = wrap;
70
- var ContinueSentinel = {};
113
+ e.wrap = wrap;
114
+ var h = "suspendedStart",
115
+ l = "suspendedYield",
116
+ f = "executing",
117
+ s = "completed",
118
+ y = {};
71
119
  function Generator() {}
72
120
  function GeneratorFunction() {}
73
121
  function GeneratorFunctionPrototype() {}
74
- var IteratorPrototype = {};
75
- define(IteratorPrototype, iteratorSymbol, function () {
122
+ var p = {};
123
+ define(p, a, function () {
76
124
  return this;
77
125
  });
78
- var getProto = Object.getPrototypeOf,
79
- NativeIteratorPrototype = getProto && getProto(getProto(values([])));
80
- NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);
81
- var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
82
- function defineIteratorMethods(prototype) {
83
- ["next", "throw", "return"].forEach(function (method) {
84
- define(prototype, method, function (arg) {
85
- return this._invoke(method, arg);
126
+ var d = Object.getPrototypeOf,
127
+ v = d && d(d(values([])));
128
+ v && v !== r && n.call(v, a) && (p = v);
129
+ var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
130
+ function defineIteratorMethods(t) {
131
+ ["next", "throw", "return"].forEach(function (e) {
132
+ define(t, e, function (t) {
133
+ return this._invoke(e, t);
86
134
  });
87
135
  });
88
136
  }
89
- function AsyncIterator(generator, PromiseImpl) {
90
- function invoke(method, arg, resolve, reject) {
91
- var record = tryCatch(generator[method], generator, arg);
92
- if ("throw" !== record.type) {
93
- var result = record.arg,
94
- value = result.value;
95
- return value && "object" == typeof value && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) {
96
- invoke("next", value, resolve, reject);
97
- }, function (err) {
98
- invoke("throw", err, resolve, reject);
99
- }) : PromiseImpl.resolve(value).then(function (unwrapped) {
100
- result.value = unwrapped, resolve(result);
101
- }, function (error) {
102
- return invoke("throw", error, resolve, reject);
137
+ function AsyncIterator(t, e) {
138
+ function invoke(r, o, i, a) {
139
+ var c = tryCatch(t[r], t, o);
140
+ if ("throw" !== c.type) {
141
+ var u = c.arg,
142
+ h = u.value;
143
+ return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
144
+ invoke("next", t, i, a);
145
+ }, function (t) {
146
+ invoke("throw", t, i, a);
147
+ }) : e.resolve(h).then(function (t) {
148
+ u.value = t, i(u);
149
+ }, function (t) {
150
+ return invoke("throw", t, i, a);
103
151
  });
104
152
  }
105
- reject(record.arg);
153
+ a(c.arg);
106
154
  }
107
- var previousPromise;
108
- defineProperty(this, "_invoke", {
109
- value: function (method, arg) {
155
+ var r;
156
+ o(this, "_invoke", {
157
+ value: function (t, n) {
110
158
  function callInvokeWithMethodAndArg() {
111
- return new PromiseImpl(function (resolve, reject) {
112
- invoke(method, arg, resolve, reject);
159
+ return new e(function (e, r) {
160
+ invoke(t, n, e, r);
113
161
  });
114
162
  }
115
- return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
163
+ return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
116
164
  }
117
165
  });
118
166
  }
119
- function makeInvokeMethod(innerFn, self, context) {
120
- var state = "suspendedStart";
121
- return function (method, arg) {
122
- if ("executing" === state) throw new Error("Generator is already running");
123
- if ("completed" === state) {
124
- if ("throw" === method) throw arg;
125
- return doneResult();
167
+ function makeInvokeMethod(e, r, n) {
168
+ var o = h;
169
+ return function (i, a) {
170
+ if (o === f) throw Error("Generator is already running");
171
+ if (o === s) {
172
+ if ("throw" === i) throw a;
173
+ return {
174
+ value: t,
175
+ done: !0
176
+ };
126
177
  }
127
- for (context.method = method, context.arg = arg;;) {
128
- var delegate = context.delegate;
129
- if (delegate) {
130
- var delegateResult = maybeInvokeDelegate(delegate, context);
131
- if (delegateResult) {
132
- if (delegateResult === ContinueSentinel) continue;
133
- return delegateResult;
178
+ for (n.method = i, n.arg = a;;) {
179
+ var c = n.delegate;
180
+ if (c) {
181
+ var u = maybeInvokeDelegate(c, n);
182
+ if (u) {
183
+ if (u === y) continue;
184
+ return u;
134
185
  }
135
186
  }
136
- if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) {
137
- if ("suspendedStart" === state) throw state = "completed", context.arg;
138
- context.dispatchException(context.arg);
139
- } else "return" === context.method && context.abrupt("return", context.arg);
140
- state = "executing";
141
- var record = tryCatch(innerFn, self, context);
142
- if ("normal" === record.type) {
143
- if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue;
187
+ if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
188
+ if (o === h) throw o = s, n.arg;
189
+ n.dispatchException(n.arg);
190
+ } else "return" === n.method && n.abrupt("return", n.arg);
191
+ o = f;
192
+ var p = tryCatch(e, r, n);
193
+ if ("normal" === p.type) {
194
+ if (o = n.done ? s : l, p.arg === y) continue;
144
195
  return {
145
- value: record.arg,
146
- done: context.done
196
+ value: p.arg,
197
+ done: n.done
147
198
  };
148
199
  }
149
- "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg);
200
+ "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
150
201
  }
151
202
  };
152
203
  }
153
- function maybeInvokeDelegate(delegate, context) {
154
- var methodName = context.method,
155
- method = delegate.iterator[methodName];
156
- if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel;
157
- var record = tryCatch(method, delegate.iterator, context.arg);
158
- if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel;
159
- var info = record.arg;
160
- return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel);
204
+ function maybeInvokeDelegate(e, r) {
205
+ var n = r.method,
206
+ o = e.iterator[n];
207
+ if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
208
+ var i = tryCatch(o, e.iterator, r.arg);
209
+ if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
210
+ var a = i.arg;
211
+ return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
161
212
  }
162
- function pushTryEntry(locs) {
163
- var entry = {
164
- tryLoc: locs[0]
213
+ function pushTryEntry(t) {
214
+ var e = {
215
+ tryLoc: t[0]
165
216
  };
166
- 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);
217
+ 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
167
218
  }
168
- function resetTryEntry(entry) {
169
- var record = entry.completion || {};
170
- record.type = "normal", delete record.arg, entry.completion = record;
219
+ function resetTryEntry(t) {
220
+ var e = t.completion || {};
221
+ e.type = "normal", delete e.arg, t.completion = e;
171
222
  }
172
- function Context(tryLocsList) {
223
+ function Context(t) {
173
224
  this.tryEntries = [{
174
225
  tryLoc: "root"
175
- }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);
226
+ }], t.forEach(pushTryEntry, this), this.reset(!0);
176
227
  }
177
- function values(iterable) {
178
- if (iterable) {
179
- var iteratorMethod = iterable[iteratorSymbol];
180
- if (iteratorMethod) return iteratorMethod.call(iterable);
181
- if ("function" == typeof iterable.next) return iterable;
182
- if (!isNaN(iterable.length)) {
183
- var i = -1,
184
- next = function next() {
185
- for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;
186
- return next.value = undefined, next.done = !0, next;
228
+ function values(e) {
229
+ if (e || "" === e) {
230
+ var r = e[a];
231
+ if (r) return r.call(e);
232
+ if ("function" == typeof e.next) return e;
233
+ if (!isNaN(e.length)) {
234
+ var o = -1,
235
+ i = function next() {
236
+ for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
237
+ return next.value = t, next.done = !0, next;
187
238
  };
188
- return next.next = next;
239
+ return i.next = i;
189
240
  }
190
241
  }
191
- return {
192
- next: doneResult
193
- };
242
+ throw new TypeError(typeof e + " is not iterable");
194
243
  }
195
- function doneResult() {
196
- return {
197
- value: undefined,
198
- done: !0
199
- };
200
- }
201
- return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", {
244
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
202
245
  value: GeneratorFunctionPrototype,
203
246
  configurable: !0
204
- }), defineProperty(GeneratorFunctionPrototype, "constructor", {
247
+ }), o(GeneratorFunctionPrototype, "constructor", {
205
248
  value: GeneratorFunction,
206
249
  configurable: !0
207
- }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) {
208
- var ctor = "function" == typeof genFun && genFun.constructor;
209
- return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name));
210
- }, exports.mark = function (genFun) {
211
- return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun;
212
- }, exports.awrap = function (arg) {
250
+ }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
251
+ var e = "function" == typeof t && t.constructor;
252
+ return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
253
+ }, e.mark = function (t) {
254
+ return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
255
+ }, e.awrap = function (t) {
213
256
  return {
214
- __await: arg
257
+ __await: t
215
258
  };
216
- }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
259
+ }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
217
260
  return this;
218
- }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
219
- void 0 === PromiseImpl && (PromiseImpl = Promise);
220
- var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
221
- return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
222
- return result.done ? result.value : iter.next();
261
+ }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
262
+ void 0 === i && (i = Promise);
263
+ var a = new AsyncIterator(wrap(t, r, n, o), i);
264
+ return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
265
+ return t.done ? t.value : a.next();
223
266
  });
224
- }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () {
267
+ }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
225
268
  return this;
226
- }), define(Gp, "toString", function () {
269
+ }), define(g, "toString", function () {
227
270
  return "[object Generator]";
228
- }), exports.keys = function (val) {
229
- var object = Object(val),
230
- keys = [];
231
- for (var key in object) keys.push(key);
232
- return keys.reverse(), function next() {
233
- for (; keys.length;) {
234
- var key = keys.pop();
235
- if (key in object) return next.value = key, next.done = !1, next;
271
+ }), e.keys = function (t) {
272
+ var e = Object(t),
273
+ r = [];
274
+ for (var n in e) r.push(n);
275
+ return r.reverse(), function next() {
276
+ for (; r.length;) {
277
+ var t = r.pop();
278
+ if (t in e) return next.value = t, next.done = !1, next;
236
279
  }
237
280
  return next.done = !0, next;
238
281
  };
239
- }, exports.values = values, Context.prototype = {
282
+ }, e.values = values, Context.prototype = {
240
283
  constructor: Context,
241
- reset: function (skipTempReset) {
242
- if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);
284
+ reset: function (e) {
285
+ if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
243
286
  },
244
287
  stop: function () {
245
288
  this.done = !0;
246
- var rootRecord = this.tryEntries[0].completion;
247
- if ("throw" === rootRecord.type) throw rootRecord.arg;
289
+ var t = this.tryEntries[0].completion;
290
+ if ("throw" === t.type) throw t.arg;
248
291
  return this.rval;
249
292
  },
250
- dispatchException: function (exception) {
251
- if (this.done) throw exception;
252
- var context = this;
253
- function handle(loc, caught) {
254
- return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught;
293
+ dispatchException: function (e) {
294
+ if (this.done) throw e;
295
+ var r = this;
296
+ function handle(n, o) {
297
+ return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
255
298
  }
256
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
257
- var entry = this.tryEntries[i],
258
- record = entry.completion;
259
- if ("root" === entry.tryLoc) return handle("end");
260
- if (entry.tryLoc <= this.prev) {
261
- var hasCatch = hasOwn.call(entry, "catchLoc"),
262
- hasFinally = hasOwn.call(entry, "finallyLoc");
263
- if (hasCatch && hasFinally) {
264
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
265
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
266
- } else if (hasCatch) {
267
- if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);
299
+ for (var o = this.tryEntries.length - 1; o >= 0; --o) {
300
+ var i = this.tryEntries[o],
301
+ a = i.completion;
302
+ if ("root" === i.tryLoc) return handle("end");
303
+ if (i.tryLoc <= this.prev) {
304
+ var c = n.call(i, "catchLoc"),
305
+ u = n.call(i, "finallyLoc");
306
+ if (c && u) {
307
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
308
+ if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
309
+ } else if (c) {
310
+ if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
268
311
  } else {
269
- if (!hasFinally) throw new Error("try statement without catch or finally");
270
- if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);
312
+ if (!u) throw Error("try statement without catch or finally");
313
+ if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
271
314
  }
272
315
  }
273
316
  }
274
317
  },
275
- abrupt: function (type, arg) {
276
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
277
- var entry = this.tryEntries[i];
278
- if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
279
- var finallyEntry = entry;
318
+ abrupt: function (t, e) {
319
+ for (var r = this.tryEntries.length - 1; r >= 0; --r) {
320
+ var o = this.tryEntries[r];
321
+ if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
322
+ var i = o;
280
323
  break;
281
324
  }
282
325
  }
283
- finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);
284
- var record = finallyEntry ? finallyEntry.completion : {};
285
- return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);
326
+ i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
327
+ var a = i ? i.completion : {};
328
+ return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
286
329
  },
287
- complete: function (record, afterLoc) {
288
- if ("throw" === record.type) throw record.arg;
289
- return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;
330
+ complete: function (t, e) {
331
+ if ("throw" === t.type) throw t.arg;
332
+ return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
290
333
  },
291
- finish: function (finallyLoc) {
292
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
293
- var entry = this.tryEntries[i];
294
- if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;
334
+ finish: function (t) {
335
+ for (var e = this.tryEntries.length - 1; e >= 0; --e) {
336
+ var r = this.tryEntries[e];
337
+ if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
295
338
  }
296
339
  },
297
- catch: function (tryLoc) {
298
- for (var i = this.tryEntries.length - 1; i >= 0; --i) {
299
- var entry = this.tryEntries[i];
300
- if (entry.tryLoc === tryLoc) {
301
- var record = entry.completion;
302
- if ("throw" === record.type) {
303
- var thrown = record.arg;
304
- resetTryEntry(entry);
340
+ catch: function (t) {
341
+ for (var e = this.tryEntries.length - 1; e >= 0; --e) {
342
+ var r = this.tryEntries[e];
343
+ if (r.tryLoc === t) {
344
+ var n = r.completion;
345
+ if ("throw" === n.type) {
346
+ var o = n.arg;
347
+ resetTryEntry(r);
305
348
  }
306
- return thrown;
349
+ return o;
307
350
  }
308
351
  }
309
- throw new Error("illegal catch attempt");
352
+ throw Error("illegal catch attempt");
310
353
  },
311
- delegateYield: function (iterable, resultName, nextLoc) {
354
+ delegateYield: function (e, r, n) {
312
355
  return this.delegate = {
313
- iterator: values(iterable),
314
- resultName: resultName,
315
- nextLoc: nextLoc
316
- }, "next" === this.method && (this.arg = undefined), ContinueSentinel;
356
+ iterator: values(e),
357
+ resultName: r,
358
+ nextLoc: n
359
+ }, "next" === this.method && (this.arg = t), y;
317
360
  }
318
- }, exports;
319
- }
320
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
321
- try {
322
- var info = gen[key](arg);
323
- var value = info.value;
324
- } catch (error) {
325
- reject(error);
326
- return;
327
- }
328
- if (info.done) {
329
- resolve(value);
330
- } else {
331
- Promise.resolve(value).then(_next, _throw);
332
- }
333
- }
334
- function _asyncToGenerator(fn) {
335
- return function () {
336
- var self = this,
337
- args = arguments;
338
- return new Promise(function (resolve, reject) {
339
- var gen = fn.apply(self, args);
340
- function _next(value) {
341
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
342
- }
343
- function _throw(err) {
344
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
345
- }
346
- _next(undefined);
347
- });
348
- };
349
- }
350
- function _extends() {
351
- _extends = Object.assign ? Object.assign.bind() : function (target) {
352
- for (var i = 1; i < arguments.length; i++) {
353
- var source = arguments[i];
354
- for (var key in source) {
355
- if (Object.prototype.hasOwnProperty.call(source, key)) {
356
- target[key] = source[key];
357
- }
358
- }
359
- }
360
- return target;
361
- };
362
- return _extends.apply(this, arguments);
363
- }
364
- function _objectDestructuringEmpty(obj) {
365
- if (obj == null) throw new TypeError("Cannot destructure " + obj);
366
- }
367
- function _objectWithoutPropertiesLoose(source, excluded) {
368
- if (source == null) return {};
369
- var target = {};
370
- var sourceKeys = Object.keys(source);
371
- var key, i;
372
- for (i = 0; i < sourceKeys.length; i++) {
373
- key = sourceKeys[i];
374
- if (excluded.indexOf(key) >= 0) continue;
375
- target[key] = source[key];
376
- }
377
- return target;
378
- }
379
-
380
- var _excluded$d = ["children", "onChange", "onInputValueChange", "highlightFirstItemOnOpen", "className", "style", "searchable"];
381
- var DownshiftContext = /*#__PURE__*/React.createContext(null);
382
- var DownshiftProvider = function DownshiftProvider(_ref) {
383
- var children = _ref.children,
384
- _ref$onChange = _ref.onChange,
385
- onChange = _ref$onChange === void 0 ? function () {
386
- return undefined;
387
- } : _ref$onChange,
388
- _ref$onInputValueChan = _ref.onInputValueChange,
389
- onInputValueChange = _ref$onInputValueChan === void 0 ? function () {
390
- return undefined;
391
- } : _ref$onInputValueChan,
392
- _ref$highlightFirstIt = _ref.highlightFirstItemOnOpen,
393
- highlightFirstItemOnOpen = _ref$highlightFirstIt === void 0 ? false : _ref$highlightFirstIt,
394
- className = _ref.className,
395
- style = _ref.style,
396
- _ref$searchable = _ref.searchable,
397
- searchable = _ref$searchable === void 0 ? false : _ref$searchable,
398
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
399
- var handleStateChange = function handleStateChange(changes, stateAndHelpers) {
400
- if (changes.type === Downshift.stateChangeTypes.controlledPropUpdatedSelectedItem) {
401
- return;
402
- }
403
- if ('selectedItem' in changes) {
404
- onChange(changes.selectedItem, stateAndHelpers);
405
- } else if ('inputValue' in changes) {
406
- onInputValueChange(changes.inputValue);
407
- }
408
- };
409
- var stateReducer = function stateReducer(_, changes) {
410
- var highlightFirstOnOpen = highlightFirstItemOnOpen && 'isOpen' in changes && changes.isOpen;
411
- var highlightFirstItemIndex = highlightFirstOnOpen ? {
412
- highlightedIndex: 0
413
- } : {};
414
- if (searchable) {
415
- var type = changes.type;
416
- switch (type) {
417
- case '__autocomplete_change_input__':
418
- return _extends({}, changes, highlightFirstItemIndex);
419
- case '__autocomplete_click_item__':
420
- case '__autocomplete_keydown_enter__':
421
- case '__autocomplete_blur_input__':
422
- case '__autocomplete_mouseup__':
423
- return _extends({}, changes, {
424
- // if we had an item highlighted in the previous state.
425
- // we will reset input field value to blank
426
- inputValue: ''
427
- }, highlightFirstItemIndex);
428
- default:
429
- return _extends({}, changes, highlightFirstItemIndex);
430
- }
431
- } else {
432
- return _extends({}, changes, highlightFirstItemIndex);
433
- }
434
- };
435
- return React.createElement(Downshift, _extends({
436
- itemToString: function itemToString(item) {
437
- return item ? item.label : '';
438
- },
439
- onStateChange: handleStateChange,
440
- stateReducer: stateReducer
441
- }, rest), function (args) {
442
- return React.createElement("div", {
443
- className: classNames('eds-input-group', className),
444
- style: style
445
- }, React.createElement(DownshiftContext.Provider, {
446
- value: args
447
- }, children));
448
- });
449
- };
450
- var useDownshift = function useDownshift() {
451
- var context = React.useContext(DownshiftContext);
452
- if (!context) {
453
- throw new Error('You need to wrap your component in a DownshiftProvider');
454
- }
455
- return context;
456
- };
457
-
458
- var _excluded$c = ["items"];
459
- var DropdownListDeprecated = function DropdownListDeprecated(_ref) {
460
- var items = _ref.items,
461
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
462
- var _useDownshift = useDownshift(),
463
- highlightedIndex = _useDownshift.highlightedIndex,
464
- isOpen = _useDownshift.isOpen,
465
- selectedItem = _useDownshift.selectedItem,
466
- getItemProps = _useDownshift.getItemProps,
467
- getMenuProps = _useDownshift.getMenuProps;
468
- return React.createElement("ul", _extends({
469
- className: classNames('eds-dropdown-list', {
470
- 'eds-dropdown-list--open': isOpen
471
- })
472
- }, getMenuProps(), rest), isOpen ? items.map(function (item, index) {
473
- return (
474
- // eslint-disable-next-line react/jsx-key
475
- React.createElement("li", _extends({
476
- className: classNames('eds-dropdown-list__item', {
477
- 'eds-dropdown-list__item--highlighted': highlightedIndex === index,
478
- 'eds-dropdown-list__item--selected': selectedItem === item
479
- })
480
- }, getItemProps({
481
- key: "" + index + item.value,
482
- item: item,
483
- index: index
484
- })), React.createElement("span", null, item.label), item.icons && React.createElement("span", null, item.icons.map(function (Icon, index) {
485
- return React.createElement(Icon, {
486
- key: index,
487
- inline: true,
488
- className: "eds-dropdown-list__item-icon"
489
- });
490
- })), selectedItem === item && React.createElement(icons.CheckIcon, null))
491
- );
492
- }) : null);
493
- };
494
-
495
- var DropdownDeprecatedToggleButton = function DropdownDeprecatedToggleButton() {
496
- var _useDownshift = useDownshift(),
497
- getToggleButtonProps = _useDownshift.getToggleButtonProps,
498
- isOpen = _useDownshift.isOpen;
499
- return React.createElement("button", _extends({}, getToggleButtonProps({
500
- className: classNames('eds-dropdown__toggle-button', {
501
- 'eds-dropdown__toggle-button--open': isOpen
502
- })
503
- }), {
504
- tabIndex: -1,
505
- type: "button"
506
- }), React.createElement(icons.DownArrowIcon, null));
507
- };
508
-
509
- var _excluded$b = ["className", "children"];
510
- var DropdownDeprecatedLoadingDots = function DropdownDeprecatedLoadingDots(_ref) {
511
- var className = _ref.className,
512
- children = _ref.children,
513
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
514
- return React.createElement("div", _extends({
515
- className: classNames('eds-inline-spinner', className)
516
- }, rest), React.createElement(loader.LoadingDots, null), React.createElement(a11y.VisuallyHidden, null, children));
517
- };
518
-
519
- var _excluded$a = ["children", "className", "items", "loading", "loadingText", "placeholder", "style", "listStyle", "clearable", "label", "isFilled", "disableLabelAnimation"];
520
- var BaseDropdownDeprecated = function BaseDropdownDeprecated(_ref) {
521
- var children = _ref.children,
522
- className = _ref.className,
523
- items = _ref.items,
524
- _ref$loading = _ref.loading,
525
- loading = _ref$loading === void 0 ? false : _ref$loading,
526
- _ref$loadingText = _ref.loadingText,
527
- loadingText = _ref$loadingText === void 0 ? 'Loading...' : _ref$loadingText,
528
- style = _ref.style,
529
- listStyle = _ref.listStyle,
530
- clearable = _ref.clearable,
531
- label = _ref.label,
532
- _ref$isFilled = _ref.isFilled,
533
- isFilled = _ref$isFilled === void 0 ? false : _ref$isFilled,
534
- disableLabelAnimation = _ref.disableLabelAnimation,
535
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
536
- var _useDownshift = useDownshift(),
537
- getLabelProps = _useDownshift.getLabelProps;
538
- return React.createElement("div", {
539
- className: "eds-dropdown-wrapper",
540
- style: style
541
- }, React.createElement(form.BaseFormControl, _extends({
542
- append: React.createElement(Appendix$1, {
543
- clearable: clearable,
544
- loading: loading,
545
- loadingText: loadingText,
546
- readOnly: rest.readOnly
547
- }),
548
- className: className,
549
- label: label,
550
- isFilled: isFilled,
551
- labelProps: getLabelProps(),
552
- disableLabelAnimation: disableLabelAnimation
553
- }, rest), children), React.createElement(DropdownListDeprecated, _extends({
554
- items: items,
555
- style: _extends({
556
- position: 'absolute',
557
- top: tokens.space.extraLarge3 + tokens.space.extraSmall + "px"
558
- }, listStyle)
559
- }, rest)));
560
- };
561
- var ClearButton$1 = function ClearButton(_ref2) {
562
- var props = _extends({}, (_objectDestructuringEmpty(_ref2), _ref2));
563
- var _useDownshift2 = useDownshift(),
564
- clearSelection = _useDownshift2.clearSelection,
565
- selectedItem = _useDownshift2.selectedItem;
566
- return React.createElement(React.Fragment, null, selectedItem && React.createElement("button", _extends({
567
- className: "eds-dropdown__clear-button",
568
- type: "button",
569
- tabIndex: -1,
570
- onClick: function onClick() {
571
- return clearSelection();
572
- },
573
- "aria-label": "Trykk for \xE5 fjerne valg"
574
- }, props), React.createElement(icons.CloseSmallIcon, null)), selectedItem && React.createElement("div", {
575
- className: "eds-dropdown__divider"
576
- }));
577
- };
578
- var Appendix$1 = function Appendix(_ref3) {
579
- var clearable = _ref3.clearable,
580
- loading = _ref3.loading,
581
- loadingText = _ref3.loadingText,
582
- readOnly = _ref3.readOnly;
583
- if (loading) {
584
- return React.createElement(DropdownDeprecatedLoadingDots, null, loadingText);
585
- }
586
- if (readOnly) {
587
- return null;
588
- }
589
- return clearable ? React.createElement(React.Fragment, null, React.createElement(ClearButton$1, null), " ", React.createElement(DropdownDeprecatedToggleButton, null)) : React.createElement(DropdownDeprecatedToggleButton, null);
590
- };
591
-
592
- var _excluded$9 = ["disabled", "placeholder", "selectOnTab", "openOnFocus", "listStyle", "items", "label", "disableLabelAnimation", "loading", "loadingText", "className", "clearable"];
593
- var RegularDropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
594
- var disabled = _ref.disabled,
595
- _ref$placeholder = _ref.placeholder,
596
- placeholder = _ref$placeholder === void 0 ? 'Vennligst velg' : _ref$placeholder,
597
- _ref$selectOnTab = _ref.selectOnTab,
598
- selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
599
- _ref$openOnFocus = _ref.openOnFocus,
600
- openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
601
- listStyle = _ref.listStyle,
602
- items = _ref.items,
603
- label = _ref.label,
604
- disableLabelAnimation = _ref.disableLabelAnimation,
605
- loading = _ref.loading,
606
- loadingText = _ref.loadingText,
607
- className = _ref.className,
608
- clearable = _ref.clearable,
609
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
610
- var _useDownshift = useDownshift(),
611
- getToggleButtonProps = _useDownshift.getToggleButtonProps,
612
- selectedItem = _useDownshift.selectedItem,
613
- selectHighlightedItem = _useDownshift.selectHighlightedItem,
614
- openMenu = _useDownshift.openMenu,
615
- isOpen = _useDownshift.isOpen,
616
- highlightedIndex = _useDownshift.highlightedIndex,
617
- setHighlightedIndex = _useDownshift.setHighlightedIndex;
618
- return React.createElement(BaseDropdownDeprecated, _extends({
619
- disabled: disabled,
620
- listStyle: listStyle,
621
- items: items,
622
- label: label,
623
- isFilled: selectedItem ? true : placeholder.length !== 0,
624
- disableLabelAnimation: disableLabelAnimation,
625
- loading: loading,
626
- loadingText: loadingText,
627
- className: className,
628
- clearable: clearable
629
- }, rest), React.createElement("button", _extends({}, getToggleButtonProps(_extends({
630
- className: 'eds-form-control eds-dropdown__selected-item',
631
- style: {
632
- textAlign: 'left'
633
- },
634
- disabled: disabled,
635
- type: 'button',
636
- onKeyDown: function onKeyDown(e) {
637
- if (selectOnTab && e.key === 'Tab') {
638
- selectHighlightedItem();
639
- }
640
- if (isOpen) {
641
- var keyDownValue = e.key;
642
- var matchedItems = items.map(function (item, index) {
643
- return _extends({}, item, {
644
- index: index
645
- });
646
- }).filter(function (item) {
647
- var firstCharacter = item.label.trim().charAt(0).toLowerCase();
648
- return firstCharacter === keyDownValue;
649
- });
650
- var nextHighlightItem = matchedItems.find(function (item) {
651
- return item.index > (highlightedIndex != null ? highlightedIndex : 0);
652
- });
653
- if (nextHighlightItem) {
654
- setHighlightedIndex(nextHighlightItem.index);
655
- } else if (matchedItems.length > 0) {
656
- setHighlightedIndex(matchedItems[0].index);
657
- }
658
- }
659
- },
660
- onFocus: function onFocus() {
661
- if (openOnFocus) {
662
- !isOpen && openMenu();
663
- }
664
- }
665
- }, rest)), {
666
- ref: ref
667
- }), selectedItem ? selectedItem.label : placeholder));
668
- });
669
-
670
- var _excluded$8 = ["disabled", "className", "items", "loading", "loadingText", "readOnly", "prepend", "selectOnTab", "openOnFocus", "listStyle", "clearable", "itemFilter", "label", "disableLabelAnimation", "placeholder"];
671
- function LowerCaseFilterTest(item, input) {
672
- if (!input) {
673
- return true;
674
- }
675
- var sanitizeEscapeCharacters = input.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
676
- var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
677
- return inputRegex.test(item.label);
678
- }
679
- /**
680
- * @deprecated
681
- * New SearchableDropdown available
682
- *
683
- * migration guide to new dropdown:
684
- * - change import from 'DropdownDeprecated' to 'Dropdown'
685
- * - change from 'value' to 'selectedItem'
686
- * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
687
- * - 'onChange' must update value of 'selectedItem'
688
- */
689
- var SearchableDropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
690
- var _ref$disabled = _ref.disabled,
691
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
692
- className = _ref.className,
693
- items = _ref.items,
694
- loading = _ref.loading,
695
- loadingText = _ref.loadingText,
696
- _ref$readOnly = _ref.readOnly,
697
- readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
698
- prepend = _ref.prepend,
699
- _ref$selectOnTab = _ref.selectOnTab,
700
- selectOnTab = _ref$selectOnTab === void 0 ? false : _ref$selectOnTab,
701
- _ref$openOnFocus = _ref.openOnFocus,
702
- openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
703
- listStyle = _ref.listStyle,
704
- clearable = _ref.clearable,
705
- _ref$itemFilter = _ref.itemFilter,
706
- itemFilter = _ref$itemFilter === void 0 ? function (item, inputValue) {
707
- return LowerCaseFilterTest(item, inputValue);
708
- } : _ref$itemFilter,
709
- label = _ref.label,
710
- disableLabelAnimation = _ref.disableLabelAnimation,
711
- placeholder = _ref.placeholder,
712
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
713
- var _useDownshift = useDownshift(),
714
- getInputProps = _useDownshift.getInputProps,
715
- inputValue = _useDownshift.inputValue,
716
- selectHighlightedItem = _useDownshift.selectHighlightedItem,
717
- isOpen = _useDownshift.isOpen,
718
- openMenu = _useDownshift.openMenu,
719
- closeMenu = _useDownshift.closeMenu,
720
- selectedItem = _useDownshift.selectedItem;
721
- var _useState = React.useState(false),
722
- hideSelectedItem = _useState[0],
723
- setHideSelectedItem = _useState[1];
724
- var inputRef = React.useRef(null);
725
- var filteredItems = React.useMemo(function () {
726
- return items.filter(function (item) {
727
- return itemFilter(item, inputValue);
728
- });
729
- }, [inputValue, items, itemFilter]);
730
- return React.createElement(BaseDropdownDeprecated, {
731
- items: filteredItems,
732
- disabled: disabled,
733
- readOnly: readOnly,
734
- className: className,
735
- loading: loading,
736
- loadingText: loadingText,
737
- prepend: prepend,
738
- listStyle: listStyle,
739
- clearable: clearable,
740
- label: label,
741
- isFilled: selectedItem ? true : false,
742
- disableLabelAnimation: disableLabelAnimation
743
- }, !hideSelectedItem && selectedItem && !inputValue && React.createElement("span", {
744
- className: "eds-dropdown__searchable-selected-item__wrapper"
745
- }, React.createElement("span", {
746
- className: "eds-dropdown__searchable-selected-item",
747
- onClick: function onClick() {
748
- var _inputRef$current;
749
- return (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
750
- }
751
- }, selectedItem.label)), React.createElement("input", _extends({}, getInputProps(_extends({
752
- disabled: disabled,
753
- readOnly: readOnly,
754
- className: 'eds-form-control eds-dropdown__input',
755
- onKeyDown: function onKeyDown(e) {
756
- if (selectOnTab && e.key === 'Tab') selectHighlightedItem();
757
- },
758
- onFocus: function onFocus() {
759
- if (!isOpen && openOnFocus) openMenu();
760
- setHideSelectedItem(true);
761
- },
762
- placeholder: selectedItem ? selectedItem.label : placeholder
763
- }, rest)), {
764
- onBlur: function onBlur() {
765
- setHideSelectedItem(false);
766
- closeMenu();
767
- },
768
- ref: utils.mergeRefs(ref, inputRef)
769
- })));
770
- });
771
-
772
- var DropdownInputGroupDeprecated = function DropdownInputGroupDeprecated(_ref) {
773
- var children = _ref.children,
774
- feedback = _ref.feedback,
775
- variant = _ref.variant,
776
- className = _ref.className,
777
- style = _ref.style;
778
- return React.createElement(form.VariantProvider, {
779
- variant: variant
780
- }, React.createElement("div", {
781
- className: className,
782
- style: style
783
- }, children, feedback && variant && React.createElement(form.FeedbackText, {
784
- variant: variant
785
- }, feedback)));
786
- };
787
-
788
- var useNormalizedItems = function useNormalizedItems(items) {
789
- return React.useMemo(function () {
790
- return items.map(function (item) {
791
- if (typeof item == 'string') {
792
- return {
793
- value: item,
794
- label: item
795
- };
796
- }
797
- if ((item == null ? void 0 : item.value) === undefined) {
798
- return _extends({}, item, {
799
- value: item.label
800
- });
801
- }
802
- return _extends({}, item, {
803
- value: item.value
804
- });
805
- });
806
- }, [items]);
807
- };
808
-
809
- var useResolvedItems = function useResolvedItems( /** The list of items, or an async function that resolves the list of items */
810
- itemsOrItemsResolver, /** The time to wait after the input changes to the fetchItems method is called */
811
- debounceTimeout) {
812
- if (debounceTimeout === void 0) {
813
- debounceTimeout = 250;
814
- }
815
- var itemsIsAFunction = typeof itemsOrItemsResolver === 'function';
816
- var _React$useState = React.useState(itemsIsAFunction ? [] : itemsOrItemsResolver),
817
- items = _React$useState[0],
818
- setItems = _React$useState[1];
819
- var _React$useState2 = React.useState(false),
820
- loading = _React$useState2[0],
821
- setLoading = _React$useState2[1];
822
- var abortControllerRef = React.useRef(new AbortController());
823
- // We normalize the itemsResolver argument to an async function, so we
824
- // can use it without thinking about the differences later
825
- var itemsResolver = React.useMemo(function () {
826
- if (itemsIsAFunction) return itemsOrItemsResolver;
827
- return function () {
828
- return Promise.resolve(itemsOrItemsResolver);
829
- };
830
- }, [itemsOrItemsResolver, itemsIsAFunction]);
831
- // This should be called whenever the input value changes
832
- var updateItems = /*#__PURE__*/function () {
833
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(inputValue) {
834
- var _abortControllerRef$c;
835
- var abortController, _abortControllerRef$c2, _abortControllerRef$c3, resolvedItems;
836
- return _regeneratorRuntime().wrap(function _callee$(_context) {
837
- while (1) {
838
- switch (_context.prev = _context.next) {
839
- case 0:
840
- // The abortController handles cleanup of the previous request and unmounting
841
- if (abortControllerRef != null && abortControllerRef.current) abortControllerRef == null ? void 0 : (_abortControllerRef$c = abortControllerRef.current) == null ? void 0 : _abortControllerRef$c.abort();
842
- abortController = new AbortController();
843
- abortControllerRef.current = abortController;
844
- setLoading(true);
845
- _context.prev = 4;
846
- _context.next = 7;
847
- return itemsResolver(inputValue != null ? inputValue : '', abortControllerRef);
848
- case 7:
849
- resolvedItems = _context.sent;
850
- if (!(abortControllerRef != null && (_abortControllerRef$c2 = abortControllerRef.current) != null && (_abortControllerRef$c3 = _abortControllerRef$c2.signal) != null && _abortControllerRef$c3.aborted)) {
851
- _context.next = 11;
852
- break;
853
- }
854
- console.warn('Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.', 'Funksjonen bør kaste en DOMException med navnet "AbortError" når den avbrytes.', '', '\n\nSe eksempel her: https://design.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput', '\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController');
855
- return _context.abrupt("return");
856
- case 11:
857
- setLoading(false);
858
- setItems(resolvedItems);
859
- _context.next = 21;
860
- break;
861
- case 15:
862
- _context.prev = 15;
863
- _context.t0 = _context["catch"](4);
864
- if (!(_context.t0 && typeof _context.t0 === 'object' && 'name' in _context.t0 && _context.t0.name === 'AbortError')) {
865
- _context.next = 19;
866
- break;
867
- }
868
- return _context.abrupt("return");
869
- case 19:
870
- console.warn('The following error was received but not handled inside Entur Designsystems useResolvedItems hook:');
871
- throw _context.t0;
872
- case 21:
873
- case "end":
874
- return _context.stop();
875
- }
876
- }
877
- }, _callee, null, [[4, 15]]);
878
- }));
879
- return function updateItems(_x) {
880
- return _ref.apply(this, arguments);
881
- };
882
- }();
883
- var debouncedFetchItems = utils.useDebounce(updateItems, debounceTimeout);
884
- var normalizedItems = useNormalizedItems(items);
885
- React.useEffect(function () {
886
- // send abort signal to previous request on unmount for cleanup
887
- return function () {
888
- var _abortControllerRef$c4;
889
- return abortControllerRef == null ? void 0 : (_abortControllerRef$c4 = abortControllerRef.current) == null ? void 0 : _abortControllerRef$c4.abort('Component unmounted');
890
- };
891
- }, []);
892
- React.useEffect(function () {
893
- // Let's fetch the list initially if it's specified
894
- if (itemsIsAFunction) {
895
- debouncedFetchItems('');
896
- }
897
- }, [itemsIsAFunction, itemsResolver]);
898
- return {
899
- items: normalizedItems,
900
- loading: itemsIsAFunction ? loading : false,
901
- fetchItems: debouncedFetchItems
902
- };
903
- };
904
-
905
- var _excluded$7 = ["highlightFirstItemOnOpen", "debounceTimeout", "disabled", "feedback", "items", "label", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "searchable", "selectOnTab", "openOnFocus", "variant", "value", "clearable", "className", "style", "listStyle", "itemFilter", "disableLabelAnimation"];
906
- /**
907
- * @deprecated
908
- * New Dropdown available
909
- *
910
- * migration guide to new dropdown:
911
- * - change import from 'DropdownDeprecated' to 'Dropdown'
912
- * + if 'searchable', switch to 'SearchableDropdown'
913
- * - change from 'value' to 'selectedItem'
914
- * + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
915
- * - 'onChange' must update value of 'selectedItem'
916
- */
917
- var DropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
918
- var highlightFirstItemOnOpen = _ref.highlightFirstItemOnOpen,
919
- debounceTimeout = _ref.debounceTimeout,
920
- disabled = _ref.disabled,
921
- feedback = _ref.feedback,
922
- items = _ref.items,
923
- label = _ref.label,
924
- loadingText = _ref.loadingText,
925
- _ref$onChange = _ref.onChange,
926
- onChange = _ref$onChange === void 0 ? function () {
927
- return undefined;
928
- } : _ref$onChange,
929
- placeholder = _ref.placeholder,
930
- prepend = _ref.prepend,
931
- readOnly = _ref.readOnly,
932
- searchable = _ref.searchable,
933
- selectOnTab = _ref.selectOnTab,
934
- openOnFocus = _ref.openOnFocus,
935
- variant = _ref.variant,
936
- value = _ref.value,
937
- _ref$clearable = _ref.clearable,
938
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
939
- className = _ref.className,
940
- style = _ref.style,
941
- listStyle = _ref.listStyle,
942
- itemFilter = _ref.itemFilter,
943
- disableLabelAnimation = _ref.disableLabelAnimation,
944
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
945
- var _useResolvedItems = useResolvedItems(items, debounceTimeout),
946
- normalizedItems = _useResolvedItems.items,
947
- loading = _useResolvedItems.loading,
948
- fetchItems = _useResolvedItems.fetchItems;
949
- var selectedItem = value === undefined ? undefined : normalizedItems.find(function (item) {
950
- return value === item.value;
951
- }) || null;
952
- var RenderedDropdown = searchable ? SearchableDropdownDeprecated : RegularDropdownDeprecated;
953
- var searchAbleProps = searchable ? {
954
- itemFilter: itemFilter,
955
- name: rest.name,
956
- 'data-cy': rest['data-cy']
957
- } : {
958
- name: rest.name,
959
- 'data-cy': rest['data-cy']
960
- };
961
- return React.createElement(DownshiftProvider, _extends({
962
- selectedItem: selectedItem,
963
- onInputValueChange: fetchItems,
964
- onChange: onChange,
965
- value: value,
966
- highlightFirstItemOnOpen: highlightFirstItemOnOpen,
967
- className: className,
968
- style: style,
969
- searchable: searchable
970
- }, rest), React.createElement(DropdownInputGroupDeprecated, {
971
- feedback: feedback,
972
- variant: variant
973
- }, React.createElement(RenderedDropdown, _extends({
974
- label: label,
975
- items: normalizedItems,
976
- loading: loading,
977
- loadingText: loadingText,
978
- disabled: disabled,
979
- readOnly: readOnly,
980
- placeholder: placeholder,
981
- prepend: prepend,
982
- selectOnTab: selectOnTab,
983
- openOnFocus: openOnFocus,
984
- listStyle: listStyle,
985
- clearable: clearable,
986
- disableLabelAnimation: disableLabelAnimation,
987
- ref: ref
988
- }, searchAbleProps))));
989
- });
990
-
991
- var _excluded$6 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
992
- var MultiSelectOldContext = /*#__PURE__*/React.createContext(null);
993
- var useMultiSelectOldContext = function useMultiSelectOldContext() {
994
- var context = React.useContext(MultiSelectOldContext);
995
- if (!context) {
996
- throw new Error('You need to wrap your component in a DownshiftProvider');
997
- }
998
- return context;
999
- };
1000
- function stateReducer(state,
1001
- //StateChangeOptions<NormalizedDropdownItemDeprecatedType>,
1002
- actionAndChanges) {
1003
- var changes = actionAndChanges.changes,
1004
- type = actionAndChanges.type;
1005
- switch (type) {
1006
- case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
1007
- case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
1008
- case Downshift.useSelect.stateChangeTypes.ItemClick:
1009
- return _extends({}, changes, {
1010
- isOpen: true,
1011
- highlightedIndex: state.highlightedIndex
1012
- });
1013
- default:
1014
- return changes;
1015
- }
1016
- }
1017
- /**
1018
- * @deprecated
1019
- * New MultiSelect available
1020
- *
1021
- * migration guide to new dropdown:
1022
- * - change import from 'MultiSelectDeprecated' to 'MultiSelect'
1023
- * - add state containing selected items to 'selectedItems' prop
1024
- * + type of 'selectedItems' is 'NormalizedDropdownType[]' and does not include 'string'
1025
- * - 'onChange' must update value of 'selectedItem'
1026
- */
1027
- var MultiSelectDeprecated = function MultiSelectDeprecated(_ref) {
1028
- var className = _ref.className,
1029
- _ref$clearable = _ref.clearable,
1030
- clearable = _ref$clearable === void 0 ? false : _ref$clearable,
1031
- debounceTimeout = _ref.debounceTimeout,
1032
- disabled = _ref.disabled,
1033
- feedback = _ref.feedback,
1034
- _ref$initialSelectedI = _ref.initialSelectedItems,
1035
- initialSelectedItems = _ref$initialSelectedI === void 0 ? [] : _ref$initialSelectedI,
1036
- input = _ref.items,
1037
- _ref$itemsSelectedLab = _ref.itemsSelectedLabel,
1038
- itemsSelectedLabel = _ref$itemsSelectedLab === void 0 ? function (items) {
1039
- return SelectedItemsLabel(items);
1040
- } : _ref$itemsSelectedLab,
1041
- label = _ref.label,
1042
- listStyle = _ref.listStyle,
1043
- _ref$loading = _ref.loading,
1044
- loading = _ref$loading === void 0 ? false : _ref$loading,
1045
- _ref$loadingText = _ref.loadingText,
1046
- loadingText = _ref$loadingText === void 0 ? '' : _ref$loadingText,
1047
- _ref$onChange = _ref.onChange,
1048
- onChange = _ref$onChange === void 0 ? function () {
1049
- return undefined;
1050
- } : _ref$onChange,
1051
- _ref$openOnFocus = _ref.openOnFocus,
1052
- openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
1053
- _ref$readOnly = _ref.readOnly,
1054
- readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
1055
- style = _ref.style,
1056
- variant = _ref.variant,
1057
- rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
1058
- var _useResolvedItems = useResolvedItems(input, debounceTimeout),
1059
- items = _useResolvedItems.items;
1060
- var _useState = React.useState(initialSelectedItems),
1061
- selectedItems = _useState[0],
1062
- setSelectedItems = _useState[1];
1063
- var reset = React.useCallback(function () {
1064
- setSelectedItems([]);
1065
- }, []);
1066
- function isSelected(selectedCheckboxItem) {
1067
- return selectedItems.some(function (selected) {
1068
- return selected.value === selectedCheckboxItem.value;
1069
- });
1070
- }
1071
- var _useSelect = Downshift.useSelect(_extends({
1072
- items: items,
1073
- stateReducer: stateReducer,
1074
- selectedItem: null,
1075
- onSelectedItemChange: function onSelectedItemChange(_ref2) {
1076
- var selectedItem = _ref2.selectedItem;
1077
- if (!selectedItem) {
1078
- return;
1079
- }
1080
- var itemIsFound = isSelected(selectedItem);
1081
- if (itemIsFound) {
1082
- var slicedItemList = selectedItems.filter(function (item) {
1083
- return item.value !== selectedItem.value;
1084
- });
1085
- setSelectedItems(slicedItemList);
1086
- onChange(slicedItemList);
1087
- } else {
1088
- var _slicedItemList = [].concat(selectedItems, [selectedItem]);
1089
- setSelectedItems(_slicedItemList);
1090
- onChange(_slicedItemList);
1091
- }
1092
- }
1093
- }, rest)),
1094
- isOpen = _useSelect.isOpen,
1095
- getToggleButtonProps = _useSelect.getToggleButtonProps,
1096
- getLabelProps = _useSelect.getLabelProps,
1097
- getMenuProps = _useSelect.getMenuProps,
1098
- highlightedIndex = _useSelect.highlightedIndex,
1099
- getItemProps = _useSelect.getItemProps,
1100
- openMenu = _useSelect.openMenu;
1101
- var buttonText = selectedItems.length ? itemsSelectedLabel(selectedItems) : '';
1102
- var multiSelectId = utils.useRandomId('eds-multiselect');
1103
- return React.createElement(MultiSelectOldContext.Provider, {
1104
- value: {
1105
- isOpen: isOpen,
1106
- reset: reset,
1107
- getToggleButtonProps: getToggleButtonProps,
1108
- openMenu: openMenu,
1109
- openOnFocus: openOnFocus
1110
- }
1111
- }, React.createElement("div", {
1112
- className: classNames('eds-multiselect', 'eds-dropdown-wrapper', className),
1113
- style: style
1114
- }, React.createElement(form.BaseFormControl, {
1115
- label: label,
1116
- labelId: multiSelectId,
1117
- labelProps: getLabelProps,
1118
- feedback: feedback,
1119
- variant: variant,
1120
- isFilled: selectedItems.length > 0 || isOpen,
1121
- disabled: disabled,
1122
- readOnly: readOnly,
1123
- append: React.createElement(Appendix, {
1124
- hasSelected: clearable && selectedItems.length > 0,
1125
- loading: loading,
1126
- loadingText: loadingText,
1127
- readOnly: readOnly
1128
- })
1129
- }, React.createElement("button", _extends({}, getToggleButtonProps({
1130
- style: {
1131
- textAlign: 'left'
1132
- },
1133
- type: 'button',
1134
- className: 'eds-form-control eds-multiselect__button'
1135
- })), buttonText)), React.createElement("ul", _extends({
1136
- className: classNames('eds-dropdown-list', {
1137
- 'eds-dropdown-list--open': isOpen
1138
- })
1139
- }, getMenuProps({
1140
- style: _extends({
1141
- position: 'absolute',
1142
- top: tokens.space.extraLarge3 + tokens.space.extraSmall + "px"
1143
- }, listStyle)
1144
- })), isOpen && items.map(function (item, index) {
1145
- return React.createElement("li", _extends({
1146
- className: classNames('eds-dropdown-list__item', {
1147
- 'eds-dropdown-list__item--highlighted': highlightedIndex === index,
1148
- 'eds-dropdown-list__item--selected': isSelected(item)
1149
- }),
1150
- key: "" + item.value + index
1151
- }, getItemProps({
1152
- item: item,
1153
- index: index
1154
- }), {
1155
- style: {
1156
- display: 'flex'
1157
- }
1158
- }), React.createElement("span", {
1159
- style: {
1160
- display: 'flex'
1161
- }
1162
- }, React.createElement("span", {
1163
- className: classNames('eds-multiselect-checkbox', {
1164
- 'eds-multiselect-checkbox--checked': isSelected(item)
1165
- })
1166
- }, React.createElement(CheckboxIcon, null)), React.createElement("span", {
1167
- className: "eds-multiselect__item-label"
1168
- }, item.label)), item.icons && React.createElement("span", null, item.icons.map(function (Icon, index) {
1169
- return React.createElement(Icon, {
1170
- key: index,
1171
- inline: true,
1172
- className: "eds-dropdown-list__item-icon"
1173
- });
1174
- })));
1175
- }))));
1176
- };
1177
- var ClearButton = function ClearButton(_ref3) {
1178
- var props = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
1179
- var _useMultiSelectOldCon = useMultiSelectOldContext(),
1180
- reset = _useMultiSelectOldCon.reset;
1181
- return React.createElement(React.Fragment, null, React.createElement("button", _extends({
1182
- className: "eds-dropdown__clear-button",
1183
- type: "button",
1184
- tabIndex: -1,
1185
- onClick: function onClick() {
1186
- return reset();
1187
- }
1188
- }, props), React.createElement(icons.CloseIcon, null)), React.createElement("div", {
1189
- className: "eds-dropdown__divider"
1190
- }));
1191
- };
1192
- var Appendix = function Appendix(_ref4) {
1193
- var loading = _ref4.loading,
1194
- loadingText = _ref4.loadingText,
1195
- readOnly = _ref4.readOnly,
1196
- hasSelected = _ref4.hasSelected;
1197
- if (loading) {
1198
- return React.createElement(DropdownDeprecatedLoadingDots, null, loadingText);
1199
- }
1200
- if (readOnly) {
1201
- return null;
1202
- }
1203
- return hasSelected ? React.createElement(React.Fragment, null, React.createElement(ClearButton, null), React.createElement(DropdownToggleButton, null)) : React.createElement(DropdownToggleButton, null);
1204
- };
1205
- var DropdownToggleButton = function DropdownToggleButton() {
1206
- var _useMultiSelectOldCon2 = useMultiSelectOldContext(),
1207
- getToggleButtonProps = _useMultiSelectOldCon2.getToggleButtonProps,
1208
- isOpen = _useMultiSelectOldCon2.isOpen,
1209
- openMenu = _useMultiSelectOldCon2.openMenu,
1210
- openOnFocus = _useMultiSelectOldCon2.openOnFocus;
1211
- return React.createElement("button", _extends({}, getToggleButtonProps({
1212
- className: classNames('eds-dropdown__toggle-button', {
1213
- 'eds-dropdown__toggle-button--open': isOpen
1214
- }),
1215
- onFocus: function onFocus() {
1216
- if (openOnFocus) {
1217
- openMenu();
1218
- }
1219
- }
1220
- }), {
1221
- type: "button"
1222
- }), React.createElement(icons.DownArrowIcon, null));
1223
- };
1224
- var CheckboxIcon = function CheckboxIcon() {
1225
- return React.createElement("svg", {
1226
- className: "eds-checkbox-icon",
1227
- width: "11px",
1228
- height: "9px",
1229
- viewBox: "6 11 37 33"
1230
- }, React.createElement("path", {
1231
- className: "eds-checkbox-icon__path",
1232
- d: "M14.1 27.2l7.1 7.2 14.6-14.8",
1233
- fill: "none"
1234
- }));
1235
- };
1236
- function SelectedItemsLabel(items) {
1237
- return items.length < 3 ? items.map(function (item) {
1238
- return item.label;
1239
- }).toString() : items.length + " elementer valgt";
361
+ }, e;
1240
362
  }
1241
363
 
1242
364
  var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "floatingStyles", "setListRef", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
@@ -1264,7 +386,7 @@ var DropdownList = function DropdownList(_ref) {
1264
386
  selectedItems = _ref.selectedItems,
1265
387
  rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
1266
388
  var isMultiselect = selectAllItem !== undefined;
1267
- var isNoMatches = !loading && (listItems.length === 0 || (listItems == null ? void 0 : listItems.length) === 1 && (listItems == null ? void 0 : (_listItems$ = listItems[0]) == null ? void 0 : _listItems$.value) === (selectAllItem == null ? void 0 : selectAllItem.value));
389
+ var isNoMatches = !loading && (listItems.length === 0 || (listItems == null ? void 0 : listItems.length) === 1 && (listItems == null || (_listItems$ = listItems[0]) == null ? void 0 : _listItems$.value) === (selectAllItem == null ? void 0 : selectAllItem.value));
1268
390
  var isItemSelected = function isItemSelected(item) {
1269
391
  return selectedItems.some(function (selectedItem) {
1270
392
  return (selectedItem == null ? void 0 : selectedItem.value) === (item == null ? void 0 : item.value) && (selectedItem == null ? void 0 : selectedItem.label) === (item == null ? void 0 : item.label);
@@ -1500,6 +622,121 @@ var ToggleButton = function ToggleButton(_ref5) {
1500
622
  }));
1501
623
  };
1502
624
 
625
+ var useNormalizedItems = function useNormalizedItems(items) {
626
+ return React.useMemo(function () {
627
+ return items.map(function (item) {
628
+ if (typeof item == 'string') {
629
+ return {
630
+ value: item,
631
+ label: item
632
+ };
633
+ }
634
+ if ((item == null ? void 0 : item.value) === undefined) {
635
+ return _extends({}, item, {
636
+ value: item.label
637
+ });
638
+ }
639
+ return _extends({}, item, {
640
+ value: item.value
641
+ });
642
+ });
643
+ }, [items]);
644
+ };
645
+
646
+ var useResolvedItems = function useResolvedItems(/** The list of items, or an async function that resolves the list of items */
647
+ itemsOrItemsResolver, /** The time to wait after the input changes to the fetchItems method is called */
648
+ debounceTimeout) {
649
+ if (debounceTimeout === void 0) {
650
+ debounceTimeout = 250;
651
+ }
652
+ var itemsIsAFunction = typeof itemsOrItemsResolver === 'function';
653
+ var _React$useState = React.useState(itemsIsAFunction ? [] : itemsOrItemsResolver),
654
+ items = _React$useState[0],
655
+ setItems = _React$useState[1];
656
+ var _React$useState2 = React.useState(false),
657
+ loading = _React$useState2[0],
658
+ setLoading = _React$useState2[1];
659
+ var abortControllerRef = React.useRef(new AbortController());
660
+ // We normalize the itemsResolver argument to an async function, so we
661
+ // can use it without thinking about the differences later
662
+ var itemsResolver = React.useMemo(function () {
663
+ if (itemsIsAFunction) return itemsOrItemsResolver;
664
+ return function () {
665
+ return Promise.resolve(itemsOrItemsResolver);
666
+ };
667
+ }, [itemsOrItemsResolver, itemsIsAFunction]);
668
+ // This should be called whenever the input value changes
669
+ var updateItems = /*#__PURE__*/function () {
670
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(inputValue) {
671
+ var _abortControllerRef$c;
672
+ var abortController, _abortControllerRef$c2, resolvedItems;
673
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
674
+ while (1) switch (_context.prev = _context.next) {
675
+ case 0:
676
+ // The abortController handles cleanup of the previous request and unmounting
677
+ if (abortControllerRef != null && abortControllerRef.current) abortControllerRef == null || (_abortControllerRef$c = abortControllerRef.current) == null || _abortControllerRef$c.abort();
678
+ abortController = new AbortController();
679
+ abortControllerRef.current = abortController;
680
+ setLoading(true);
681
+ _context.prev = 4;
682
+ _context.next = 7;
683
+ return itemsResolver(inputValue != null ? inputValue : '', abortControllerRef);
684
+ case 7:
685
+ resolvedItems = _context.sent;
686
+ if (!(abortControllerRef != null && (_abortControllerRef$c2 = abortControllerRef.current) != null && (_abortControllerRef$c2 = _abortControllerRef$c2.signal) != null && _abortControllerRef$c2.aborted)) {
687
+ _context.next = 11;
688
+ break;
689
+ }
690
+ console.warn('Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.', 'Funksjonen bør kaste en DOMException med navnet "AbortError" når den avbrytes.', '', '\n\nSe eksempel her: https://design.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput', '\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController');
691
+ return _context.abrupt("return");
692
+ case 11:
693
+ setLoading(false);
694
+ setItems(resolvedItems);
695
+ _context.next = 21;
696
+ break;
697
+ case 15:
698
+ _context.prev = 15;
699
+ _context.t0 = _context["catch"](4);
700
+ if (!(_context.t0 && typeof _context.t0 === 'object' && 'name' in _context.t0 && _context.t0.name === 'AbortError')) {
701
+ _context.next = 19;
702
+ break;
703
+ }
704
+ return _context.abrupt("return");
705
+ case 19:
706
+ console.warn('The following error was received but not handled inside Entur Designsystems useResolvedItems hook:');
707
+ throw _context.t0;
708
+ case 21:
709
+ case "end":
710
+ return _context.stop();
711
+ }
712
+ }, _callee, null, [[4, 15]]);
713
+ }));
714
+ return function updateItems(_x) {
715
+ return _ref.apply(this, arguments);
716
+ };
717
+ }();
718
+ var debouncedFetchItems = utils.useDebounce(updateItems, debounceTimeout);
719
+ var normalizedItems = useNormalizedItems(items);
720
+ React.useEffect(function () {
721
+ // send abort signal to previous request on unmount for cleanup
722
+ return function () {
723
+ var _abortControllerRef$c3;
724
+ return abortControllerRef == null || (_abortControllerRef$c3 = abortControllerRef.current) == null ? void 0 : _abortControllerRef$c3.abort('Component unmounted');
725
+ };
726
+ }, []);
727
+ React.useEffect(function () {
728
+ // Let's fetch the list initially if it's specified
729
+ if (itemsIsAFunction) {
730
+ debouncedFetchItems('');
731
+ }
732
+ }, [itemsIsAFunction, itemsResolver]);
733
+ return {
734
+ items: normalizedItems,
735
+ loading: itemsIsAFunction ? loading : false,
736
+ fetchItems: debouncedFetchItems
737
+ };
738
+ };
739
+
1503
740
  /* start general utils */
1504
741
  var EMPTY_INPUT = '';
1505
742
  function lowerCaseFilterTest(item, input) {
@@ -1725,9 +962,9 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1725
962
  }
1726
963
  switch (type) {
1727
964
  // empty input to show selected item and reset dropdown list on item selection
1728
- case Downshift.useCombobox.stateChangeTypes.ItemClick:
1729
- case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
1730
- case Downshift.useCombobox.stateChangeTypes.InputBlur:
965
+ case downshift.useCombobox.stateChangeTypes.ItemClick:
966
+ case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
967
+ case downshift.useCombobox.stateChangeTypes.InputBlur:
1731
968
  {
1732
969
  updateListItems({
1733
970
  inputValue: EMPTY_INPUT
@@ -1736,7 +973,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1736
973
  inputValue: EMPTY_INPUT
1737
974
  });
1738
975
  }
1739
- case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
976
+ case downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
1740
977
  if (changes.selectedItem !== null && !inputHasFocus) setShowSelectedItem(true);
1741
978
  updateListItems({
1742
979
  inputValue: EMPTY_INPUT
@@ -1745,7 +982,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1745
982
  inputValue: EMPTY_INPUT
1746
983
  });
1747
984
  // remove leading whitespace, select element with spacebar on empty input, and filter list based on input
1748
- case Downshift.useCombobox.stateChangeTypes.InputChange:
985
+ case downshift.useCombobox.stateChangeTypes.InputChange:
1749
986
  {
1750
987
  var _changes$inputValue;
1751
988
  var leadingWhitespaceTest = /^\s+/g;
@@ -1771,7 +1008,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1771
1008
  return changes;
1772
1009
  }
1773
1010
  }, [fetchItems, filterListItems]);
1774
- var _useCombobox = Downshift.useCombobox(_extends({
1011
+ var _useCombobox = downshift.useCombobox(_extends({
1775
1012
  defaultHighlightedIndex: lastHighlightedIndex,
1776
1013
  items: listItems,
1777
1014
  itemToString: itemToString,
@@ -1782,10 +1019,10 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1782
1019
  newSelectedItem = _ref5.selectedItem;
1783
1020
  switch (type) {
1784
1021
  // @ts-expect-error This falltrough is wanted
1785
- case Downshift.useCombobox.stateChangeTypes.InputBlur:
1022
+ case downshift.useCombobox.stateChangeTypes.InputBlur:
1786
1023
  if (!selectOnBlur) break;
1787
- case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
1788
- case Downshift.useCombobox.stateChangeTypes.ItemClick:
1024
+ case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
1025
+ case downshift.useCombobox.stateChangeTypes.ItemClick:
1789
1026
  if (newSelectedItem === undefined) return;
1790
1027
  onChange(newSelectedItem != null ? newSelectedItem : null);
1791
1028
  }
@@ -1831,7 +1068,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1831
1068
  var _inputRef$current;
1832
1069
  onChange(null);
1833
1070
  setInputValue(EMPTY_INPUT);
1834
- (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
1071
+ (_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
1835
1072
  updateListItems({
1836
1073
  inputValue: inputValue
1837
1074
  });
@@ -1865,7 +1102,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1865
1102
  labelTooltip: labelTooltip,
1866
1103
  onClick: function onClick(e) {
1867
1104
  var _inputRef$current2;
1868
- if (e.target === e.currentTarget) (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
1105
+ if (e.target === e.currentTarget) (_inputRef$current2 = inputRef.current) == null || _inputRef$current2.focus();
1869
1106
  },
1870
1107
  prepend: prepend,
1871
1108
  readOnly: readOnly,
@@ -1879,7 +1116,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1879
1116
  "aria-hidden": "true",
1880
1117
  onClick: function onClick() {
1881
1118
  var _inputRef$current3;
1882
- (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
1119
+ (_inputRef$current3 = inputRef.current) == null || _inputRef$current3.focus();
1883
1120
  openMenu();
1884
1121
  }
1885
1122
  }, showSelectedItem ? selectedItem == null ? void 0 : selectedItem.label : ''), React.createElement("input", _extends({
@@ -1896,7 +1133,7 @@ var SearchableDropdown = function SearchableDropdown(_ref) {
1896
1133
  setShowSelectedItem(false);
1897
1134
  },
1898
1135
  onKeyDown: function onKeyDown(e) {
1899
- if (selectOnTab && isOpen && e.key === 'Tab') onChange == null ? void 0 : onChange(listItems[highlightedIndex]);
1136
+ if (selectOnTab && isOpen && e.key === 'Tab') onChange == null || onChange(listItems[highlightedIndex]);
1900
1137
  },
1901
1138
  ref: inputRef
1902
1139
  }))), React.createElement(DropdownList, {
@@ -2031,7 +1268,7 @@ var MultiSelect = function MultiSelect(_ref) {
2031
1268
  hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
2032
1269
  handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
2033
1270
  selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
2034
- var _useMultipleSelection = Downshift.useMultipleSelection({
1271
+ var _useMultipleSelection = downshift.useMultipleSelection({
2035
1272
  selectedItems: selectedItems,
2036
1273
  // @ts-expect-error prop missing from library types
2037
1274
  itemToString: itemToString,
@@ -2040,10 +1277,10 @@ var MultiSelect = function MultiSelect(_ref) {
2040
1277
  var newSelectedItems = _ref4.selectedItems,
2041
1278
  type = _ref4.type;
2042
1279
  switch (type) {
2043
- case Downshift.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
2044
- case Downshift.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
2045
- case Downshift.useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:
2046
- case Downshift.useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
1280
+ case downshift.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
1281
+ case downshift.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
1282
+ case downshift.useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:
1283
+ case downshift.useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
2047
1284
  {
2048
1285
  if (newSelectedItems !== undefined) onChange(newSelectedItems);
2049
1286
  break;
@@ -2061,8 +1298,8 @@ var MultiSelect = function MultiSelect(_ref) {
2061
1298
  }
2062
1299
  switch (type) {
2063
1300
  // keep menu open and edit input value on item selection
2064
- case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
2065
- case Downshift.useCombobox.stateChangeTypes.ItemClick:
1301
+ case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
1302
+ case downshift.useCombobox.stateChangeTypes.ItemClick:
2066
1303
  {
2067
1304
  var _inputRef$current$val, _inputRef$current;
2068
1305
  if (clearInputOnSelect) {
@@ -2072,19 +1309,19 @@ var MultiSelect = function MultiSelect(_ref) {
2072
1309
  }
2073
1310
  return _extends({}, changes, {
2074
1311
  isOpen: true,
2075
- inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null ? void 0 : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : EMPTY_INPUT
1312
+ inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null || (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : EMPTY_INPUT
2076
1313
  });
2077
1314
  }
2078
1315
  // edit input value when selected items is updated outside component
2079
- case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
1316
+ case downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
2080
1317
  {
2081
1318
  var _inputRef$current$val2, _inputRef$current2;
2082
1319
  return _extends({}, changes, {
2083
- inputValue: (_inputRef$current$val2 = inputRef == null ? void 0 : (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
1320
+ inputValue: (_inputRef$current$val2 = inputRef == null || (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
2084
1321
  });
2085
1322
  }
2086
1323
  // remove leading whitespace, select item with spacebar if input is empty and filter list items
2087
- case Downshift.useCombobox.stateChangeTypes.InputChange:
1324
+ case downshift.useCombobox.stateChangeTypes.InputChange:
2088
1325
  {
2089
1326
  var _changes$inputValue;
2090
1327
  var leadingWhitespaceTest = /^\s+/g;
@@ -2113,7 +1350,7 @@ var MultiSelect = function MultiSelect(_ref) {
2113
1350
  return changes;
2114
1351
  }
2115
1352
  // reset input value when leaving input field
2116
- case Downshift.useCombobox.stateChangeTypes.InputBlur:
1353
+ case downshift.useCombobox.stateChangeTypes.InputBlur:
2117
1354
  {
2118
1355
  updateListItems({
2119
1356
  inputValue: EMPTY_INPUT
@@ -2126,8 +1363,9 @@ var MultiSelect = function MultiSelect(_ref) {
2126
1363
  return changes;
2127
1364
  }
2128
1365
  }, [hideSelectAll, normalizedItems, filterListItems, initialItems]);
2129
- var _useCombobox = Downshift.useCombobox(_extends({
1366
+ var _useCombobox = downshift.useCombobox(_extends({
2130
1367
  defaultHighlightedIndex: lastHighlightedIndex,
1368
+ // after selection, highlight previously selected item.
2131
1369
  items: listItems,
2132
1370
  itemToString: itemToString,
2133
1371
  selectedItem: null,
@@ -2139,10 +1377,10 @@ var MultiSelect = function MultiSelect(_ref) {
2139
1377
  if (!clickedItem) return;
2140
1378
  switch (type) {
2141
1379
  // @ts-expect-error This falltrough is wanted
2142
- case Downshift.useCombobox.stateChangeTypes.InputBlur:
1380
+ case downshift.useCombobox.stateChangeTypes.InputBlur:
2143
1381
  if (!selectOnBlur) break;
2144
- case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
2145
- case Downshift.useCombobox.stateChangeTypes.ItemClick:
1382
+ case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
1383
+ case downshift.useCombobox.stateChangeTypes.ItemClick:
2146
1384
  {
2147
1385
  handleListItemClicked({
2148
1386
  clickedItem: clickedItem,
@@ -2191,7 +1429,7 @@ var MultiSelect = function MultiSelect(_ref) {
2191
1429
  var _inputRef$current3;
2192
1430
  onChange([]);
2193
1431
  setInputValue(EMPTY_INPUT);
2194
- (_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
1432
+ (_inputRef$current3 = inputRef.current) == null || _inputRef$current3.focus();
2195
1433
  updateListItems({
2196
1434
  inputValue: inputValue
2197
1435
  });
@@ -2224,7 +1462,7 @@ var MultiSelect = function MultiSelect(_ref) {
2224
1462
  labelTooltip: labelTooltip,
2225
1463
  onClick: function onClick(e) {
2226
1464
  var _inputRef$current4;
2227
- if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
1465
+ if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null || _inputRef$current4.focus();
2228
1466
  },
2229
1467
  readOnly: readOnly,
2230
1468
  ref: refs.setReference,
@@ -2257,7 +1495,7 @@ var MultiSelect = function MultiSelect(_ref) {
2257
1495
  clickedItem: selectedItem,
2258
1496
  onChange: onChange
2259
1497
  });
2260
- inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
1498
+ inputRef == null || (_inputRef$current6 = inputRef.current) == null || _inputRef$current6.focus();
2261
1499
  },
2262
1500
  selectedItem: selectedItem
2263
1501
  });
@@ -2352,7 +1590,7 @@ var Dropdown = function Dropdown(_ref) {
2352
1590
  loading = _useResolvedItems.loading;
2353
1591
  var toggleButtonRef = React.useRef(null);
2354
1592
  var isFilled = selectedItem !== null || placeholder !== undefined;
2355
- var _useSelect = Downshift.useSelect({
1593
+ var _useSelect = downshift.useSelect({
2356
1594
  items: normalizedItems,
2357
1595
  defaultHighlightedIndex: selectedItem ? undefined : 0,
2358
1596
  selectedItem: selectedItem,
@@ -2361,14 +1599,14 @@ var Dropdown = function Dropdown(_ref) {
2361
1599
  newSelectedItem = _ref2.selectedItem;
2362
1600
  switch (type) {
2363
1601
  // @ts-expect-error This falltrough is wanted
2364
- case Downshift.useSelect.stateChangeTypes.ToggleButtonBlur:
1602
+ case downshift.useSelect.stateChangeTypes.ToggleButtonBlur:
2365
1603
  if (!selectOnBlur) break;
2366
- case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough
2367
- case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
2368
- case Downshift.useSelect.stateChangeTypes.ItemClick:
1604
+ case downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough
1605
+ case downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
1606
+ case downshift.useSelect.stateChangeTypes.ItemClick:
2369
1607
  {
2370
1608
  if (newSelectedItem === undefined) return;
2371
- onChange == null ? void 0 : onChange(newSelectedItem != null ? newSelectedItem : null);
1609
+ onChange == null || onChange(newSelectedItem != null ? newSelectedItem : null);
2372
1610
  }
2373
1611
  }
2374
1612
  },
@@ -2413,8 +1651,8 @@ var Dropdown = function Dropdown(_ref) {
2413
1651
  loadingText: loadingText,
2414
1652
  onClear: function onClear() {
2415
1653
  var _toggleButtonRef$curr;
2416
- onChange == null ? void 0 : onChange(null);
2417
- (_toggleButtonRef$curr = toggleButtonRef.current) == null ? void 0 : _toggleButtonRef$curr.focus();
1654
+ onChange == null || onChange(null);
1655
+ (_toggleButtonRef$curr = toggleButtonRef.current) == null || _toggleButtonRef$curr.focus();
2418
1656
  },
2419
1657
  disabled: readOnly || disabled,
2420
1658
  selectedItems: [selectedItem]
@@ -2447,7 +1685,7 @@ var Dropdown = function Dropdown(_ref) {
2447
1685
  // we don't want to clear selection with tab
2448
1686
  var highlitedItem = normalizedItems[highlightedIndex];
2449
1687
  if (highlitedItem) {
2450
- onChange == null ? void 0 : onChange(highlitedItem);
1688
+ onChange == null || onChange(highlitedItem);
2451
1689
  }
2452
1690
  }
2453
1691
  },
@@ -2525,7 +1763,7 @@ var NativeDropdown = function NativeDropdown(_ref) {
2525
1763
  disabled: disabled || readOnly,
2526
1764
  onChange: function onChange(event) {
2527
1765
  var _normalizedItems$find;
2528
- _onChange == null ? void 0 : _onChange({
1766
+ _onChange == null || _onChange({
2529
1767
  value: event.target.value,
2530
1768
  selectedItem: (_normalizedItems$find = normalizedItems.find(function (item) {
2531
1769
  return item.value === event.target.value;
@@ -2563,9 +1801,7 @@ var FieldAppend = function FieldAppend(_ref3) {
2563
1801
  utils.warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
2564
1802
 
2565
1803
  exports.Dropdown = Dropdown;
2566
- exports.DropdownDeprecated = DropdownDeprecated;
2567
1804
  exports.MultiSelect = MultiSelect;
2568
- exports.MultiSelectDeprecated = MultiSelectDeprecated;
2569
1805
  exports.NativeDropdown = NativeDropdown;
2570
1806
  exports.SearchableDropdown = SearchableDropdown;
2571
1807
  //# sourceMappingURL=dropdown.cjs.development.js.map