preview.js
3.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
"use strict";
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.withLinks = exports.hrefTo = exports.linkTo = exports.openLink = void 0;
require("core-js/modules/es6.string.iterator");
require("core-js/modules/es6.array.from");
require("core-js/modules/es6.regexp.to-string");
require("core-js/modules/es6.date.to-string");
require("core-js/modules/es7.symbol.async-iterator");
require("core-js/modules/es6.symbol");
require("core-js/modules/web.dom.iterable");
require("core-js/modules/es6.array.is-array");
require("core-js/modules/es6.promise");
var _global = require("global");
var _addons = _interopRequireDefault(require("@storybook/addons"));
var _coreEvents = _interopRequireDefault(require("@storybook/core-events"));
var _events = require("./events");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var openLink = function openLink(params) {
return _addons.default.getChannel().emit(_events.EVENT_ID, params);
};
exports.openLink = openLink;
var valueOrCall = function valueOrCall(args) {
return function (value) {
return typeof value === 'function' ? value.apply(void 0, _toConsumableArray(args)) : value;
};
};
var linkTo = function linkTo(kind, story) {
return function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var resolver = valueOrCall(args);
openLink({
kind: resolver(kind),
story: resolver(story)
});
};
};
exports.linkTo = linkTo;
var hrefTo = function hrefTo(kind, story) {
return new Promise(function (resolve) {
var channel = _addons.default.getChannel();
channel.on(_events.RECEIVE_HREF_EVENT_ID, resolve);
channel.emit(_events.REQUEST_HREF_EVENT_ID, {
kind: kind,
story: story
});
});
};
exports.hrefTo = hrefTo;
var linksListener = function linksListener(e) {
var _e$target$dataset = e.target.dataset,
sbKind = _e$target$dataset.sbKind,
sbStory = _e$target$dataset.sbStory;
if (sbKind || sbStory) {
e.preventDefault();
linkTo(sbKind, sbStory)();
}
};
var linkSubscribtion = function linkSubscribtion() {
_global.document.addEventListener('click', linksListener);
return function () {
return _global.document.removeEventListener('click', linksListener);
};
};
var withLinks = function withLinks(story) {
_addons.default.getChannel().emit(_coreEvents.default.REGISTER_SUBSCRIPTION, linkSubscribtion);
return story();
};
exports.withLinks = withLinks;