@wingsuit-designsystem/storybook
Version:
Wingsuit Storybook Integration.
177 lines (176 loc) • 7.32 kB
JavaScript
;
require("core-js/modules/es.symbol.iterator.js");
require("core-js/modules/es.symbol.to-primitive.js");
require("core-js/modules/es.array.filter.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.date.to-primitive.js");
require("core-js/modules/es.number.constructor.js");
require("core-js/modules/es.object.define-properties.js");
require("core-js/modules/es.object.define-property.js");
require("core-js/modules/es.object.get-own-property-descriptor.js");
require("core-js/modules/es.object.get-own-property-descriptors.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/web.dom-collections.iterator.js");
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.argTypes = argTypes;
exports.args = args;
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.array.concat.js");
require("core-js/modules/es.array.for-each.js");
require("core-js/modules/es.array.join.js");
require("core-js/modules/es.function.name.js");
require("core-js/modules/es.object.keys.js");
require("core-js/modules/es.object.to-string.js");
require("core-js/modules/web.dom-collections.for-each.js");
var _pattern = require("@wingsuit-designsystem/pattern");
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function getStorybookControlsOptions(setting, variant) {
var options = setting.getOptions();
var controls = {};
if (setting.isRequired() === false) {
controls = {
'': 'Empty'
};
}
Object.keys(options).forEach(function (key) {
if (options[key].label) {
controls[key] = options[key].label;
} else {
controls[key] = options[key];
}
});
return controls;
}
function argTypes(patternId, variantId) {
var variant = _pattern.storage.loadVariant(patternId, variantId);
var resultArgTypes = {};
Object.keys(variant.getSettings()).forEach(function (key) {
var setting = variant.getSetting(key);
if (setting.isActive() && setting.isEnable() && setting.getType() !== 'group' && setting.getType() !== 'media_library') {
resultArgTypes[key] = {
name: key,
type: {
type: 'string',
required: setting.isRequired()
},
table: {
defaultValue: {
summary: setting.getPreview()
},
category: 'Settings'
},
defaultValue: setting.getDefaultValue(),
description: "".concat(setting.getLabel(), " ").concat(setting.getDescription() !== '' ? " - ".concat(setting.getDescription()) : '')
};
if (setting.getType() === 'select' || setting.getType() === 'radios' || setting.getType() === 'colorwidget') {
resultArgTypes[key].type.name = 'enum';
resultArgTypes[key].description += "<br>Option keys: ".concat(Object.keys(setting.getOptions()).join(', '));
resultArgTypes[key].options = Object.keys(getStorybookControlsOptions(setting, variant));
resultArgTypes[key].control = {
labels: getStorybookControlsOptions(setting, variant),
type: setting.getType() === 'radio' ? 'radio' : 'select'
};
} else if (setting.getType() === 'boolean') {
resultArgTypes[key].type.name = 'boolean';
resultArgTypes[key].control = {
type: 'boolean'
};
} else if (setting.getType() === 'number') {
resultArgTypes[key].type.name = 'number';
resultArgTypes[key].control = {
type: 'number'
};
} else {
resultArgTypes[key].type.name = 'string';
resultArgTypes[key].control = {
type: 'text'
};
}
} else {
resultArgTypes[key] = {
table: {
disable: true
}
};
}
});
Object.keys(variant.getFields()).forEach(function (key) {
var field = variant.getField(key);
if (field.isEnable()) {
resultArgTypes[key] = {
name: key,
table: {
category: 'Fields'
},
type: {
required: false
},
defaultValue: field.getPreview(),
description: "".concat(field.getLabel(), " ").concat(field.getDescription() !== '' ? " - ".concat(field.getDescription()) : '')
};
if (field.getType() === 'object') {
resultArgTypes[key].type.name = 'object';
resultArgTypes[key].control = {
type: 'object'
};
} else if (field.getType() === 'pattern' || field.getType() === 'media_library') {
resultArgTypes[key].type.name = 'boolean';
resultArgTypes[key].defaultValue = true;
resultArgTypes[key].control = {
type: 'boolean'
};
} else {
resultArgTypes[key].type.name = 'string';
resultArgTypes[key].control = {
type: 'text'
};
}
} else {
resultArgTypes[key] = {
table: {
disable: true
}
};
}
});
resultArgTypes.patternId = {
table: {
disable: true
}
};
resultArgTypes.variantId = {
table: {
disable: true
}
};
resultArgTypes.variant = {
table: {
disable: true
}
};
return resultArgTypes;
}
function args(defaultArgs, patternId, variantId) {
var variant = _pattern.storage.loadVariant(patternId, variantId);
var fields = variant.getFields();
var resultArgs = _objectSpread(_objectSpread({}, defaultArgs), variant.getVariables(true, true, false));
Object.keys(fields).forEach(function (key) {
var field = fields[key];
if (field.getType() === 'pattern') {
if (resultArgs[key] === false) {
resultArgs[key] = null;
} else {
delete resultArgs[key];
}
}
});
return resultArgs;
}