UNPKG

3.07 kBJavaScriptView Raw
1"use strict";
2
3require("core-js/modules/es.symbol");
4
5require("core-js/modules/es.array.index-of");
6
7require("core-js/modules/es.object.keys");
8
9Object.defineProperty(exports, "__esModule", {
10 value: true
11});
12exports.withContexts = exports.renderVue = void 0;
13
14var _vue = _interopRequireDefault(require("vue"));
15
16var _index = require("../../index");
17
18var _ContextsPreviewAPI2 = require("../ContextsPreviewAPI");
19
20var _constants = require("../../shared/constants");
21
22function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
24function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
25
26function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
27
28/**
29 * This is the framework specific bindings for Vue.
30 * '@storybook/vue' expects the returning object from a decorator to be a 'VueComponent'.
31 */
32var renderVue = function renderVue(contextNodes, propsMap, getStoryComponent) {
33 var _ContextsPreviewAPI = (0, _ContextsPreviewAPI2.ContextsPreviewAPI)(),
34 getRendererFrom = _ContextsPreviewAPI.getRendererFrom,
35 updateReactiveSystem = _ContextsPreviewAPI.updateReactiveSystem;
36
37 var reactiveProps = updateReactiveSystem(propsMap);
38 return _vue["default"].extend({
39 name: _constants.ID,
40 data: function data() {
41 return reactiveProps;
42 },
43 render: function render(createElement) {
44 return getRendererFrom(function (Component, props, children) {
45 var _ref = props || Object(),
46 key = _ref.key,
47 ref = _ref.ref,
48 style = _ref.style,
49 classNames = _ref.classNames,
50 rest = _objectWithoutProperties(_ref, ["key", "ref", "style", "classNames"]);
51
52 var contextData = Component instanceof Object ? {
53 key: key,
54 ref: ref,
55 style: style,
56 "class": classNames,
57 props: rest
58 } // component as a Vue object
59 : {
60 key: key,
61 ref: ref,
62 style: style,
63 "class": classNames,
64 attrs: rest
65 }; // component as a HTML tag string
66
67 return createElement(Component, contextData, [children]);
68 })(contextNodes, reactiveProps, function () {
69 return createElement(getStoryComponent());
70 });
71 }
72 });
73};
74
75exports.renderVue = renderVue;
76var withContexts = (0, _index.createAddonDecorator)(renderVue);
77exports.withContexts = withContexts;
\No newline at end of file