UNPKG

1.26 kBJavaScriptView Raw
1import { __assign } from './_virtual/_tslib.js';
2import { toEventObject } from './utils.js';
3
4function toggle(onState, offState, eventType) {
5 var _a, _b, _c;
6
7 return _a = {}, _a[onState] = {
8 on: (_b = {}, _b[eventType] = offState, _b)
9 }, _a[offState] = {
10 on: (_c = {}, _c[eventType] = onState, _c)
11 }, _a;
12}
13var defaultSequencePatternOptions = {
14 nextEvent: 'NEXT',
15 prevEvent: 'PREV'
16};
17function sequence(items, options) {
18 var resolvedOptions = __assign(__assign({}, defaultSequencePatternOptions), options);
19
20 var states = {};
21 var nextEventObject = resolvedOptions.nextEvent === undefined ? undefined : toEventObject(resolvedOptions.nextEvent);
22 var prevEventObject = resolvedOptions.prevEvent === undefined ? undefined : toEventObject(resolvedOptions.prevEvent);
23 items.forEach(function (item, i) {
24 var state = {
25 on: {}
26 };
27
28 if (i + 1 === items.length) {
29 state.type = 'final';
30 }
31
32 if (nextEventObject && i + 1 < items.length) {
33 state.on[nextEventObject.type] = items[i + 1];
34 }
35
36 if (prevEventObject && i > 0) {
37 state.on[prevEventObject.type] = items[i - 1];
38 }
39
40 states[item] = state;
41 });
42 return {
43 initial: items[0],
44 states: states
45 };
46}
47
48export { sequence, toggle };