@micromag/core 0.3.347 → 0.3.354

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.
package/lib/index.js CHANGED
@@ -29,8 +29,8 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
29
29
  require('slugify');
30
30
  var uniqBy = require('lodash/uniqBy');
31
31
  var _typeof = require('@babel/runtime/helpers/typeof');
32
- var isEmpty = require('lodash/isEmpty');
33
32
  var uniq = require('lodash/uniq');
33
+ var isEmpty = require('lodash/isEmpty');
34
34
  var tracking = require('@folklore/tracking');
35
35
 
36
36
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -53,8 +53,8 @@ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_obje
53
53
  var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
54
54
  var uniqBy__default = /*#__PURE__*/_interopDefaultLegacy(uniqBy);
55
55
  var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
56
- var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
57
56
  var uniq__default = /*#__PURE__*/_interopDefaultLegacy(uniq);
57
+ var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
58
58
 
59
59
  /**
60
60
  * Core
@@ -632,6 +632,10 @@ var visitor = PropTypes__default["default"].shape({
632
632
  id: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]),
633
633
  name: PropTypes__default["default"].string
634
634
  });
635
+ var badge = PropTypes__default["default"].shape({
636
+ label: textElement,
637
+ buttonStyle: boxStyle
638
+ });
635
639
 
636
640
  var PropTypes = /*#__PURE__*/Object.freeze({
637
641
  __proto__: null,
@@ -776,7 +780,8 @@ var PropTypes = /*#__PURE__*/Object.freeze({
776
780
  paymentItems: paymentItems,
777
781
  pageMetadata: pageMetadata,
778
782
  authorElement: authorElement,
779
- visitor: visitor
783
+ visitor: visitor,
784
+ badge: badge
780
785
  });
781
786
 
782
787
  var sortedColors = function sortedColors(colors) {
@@ -1164,7 +1169,7 @@ var FieldsManager = /*#__PURE__*/function (_DefinitionsManager) {
1164
1169
  return FieldsManager;
1165
1170
  }(DefinitionsManager);
1166
1171
 
1167
- var _excluded$3 = ["medias"];
1172
+ var _excluded$4 = ["medias"];
1168
1173
  var MediasParser = /*#__PURE__*/function () {
1169
1174
  function MediasParser(_ref) {
1170
1175
  var fieldsManager = _ref.fieldsManager,
@@ -1220,7 +1225,7 @@ var MediasParser = /*#__PURE__*/function () {
1220
1225
  if (theme !== null) {
1221
1226
  var _this$toPath = this.toPath(theme),
1222
1227
  themeMedias = _this$toPath.medias,
1223
- newTheme = _objectWithoutProperties__default["default"](_this$toPath, _excluded$3);
1228
+ newTheme = _objectWithoutProperties__default["default"](_this$toPath, _excluded$4);
1224
1229
  return medias !== null || themeMedias !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
1225
1230
  theme: newTheme,
1226
1231
  components: newComponents,
@@ -1452,7 +1457,197 @@ var ScreensManager = /*#__PURE__*/function (_DefinitionsManager) {
1452
1457
  return ScreensManager;
1453
1458
  }(DefinitionsManager);
1454
1459
 
1455
- var _excluded$2 = ["textStyle", "color", "boxStyle"];
1460
+ var _excluded$3 = ["fonts"];
1461
+ var FontsParser = /*#__PURE__*/function () {
1462
+ function FontsParser(_ref) {
1463
+ var fieldsManager = _ref.fieldsManager,
1464
+ screensManager = _ref.screensManager;
1465
+ _classCallCheck__default["default"](this, FontsParser);
1466
+ this.fieldsManager = fieldsManager;
1467
+ this.screensManager = screensManager;
1468
+ this.fieldsPatternCache = {};
1469
+ }
1470
+ _createClass__default["default"](FontsParser, [{
1471
+ key: "getFieldsPatternByScreen",
1472
+ value: function getFieldsPatternByScreen(type) {
1473
+ if (typeof this.fieldsPatternCache[type] === 'undefined') {
1474
+ var _ref2 = this.screensManager.getDefinition(type) || {},
1475
+ _ref2$fields = _ref2.fields,
1476
+ fields = _ref2$fields === void 0 ? [] : _ref2$fields;
1477
+ this.fieldsPatternCache[type] = this.getFieldsPattern(fields);
1478
+ }
1479
+ return this.fieldsPatternCache[type];
1480
+ }
1481
+
1482
+ // Extract fonts
1483
+ }, {
1484
+ key: "parse",
1485
+ value: function parse(story) {
1486
+ var _this = this;
1487
+ if (story === null) {
1488
+ return story;
1489
+ }
1490
+
1491
+ // Extract fonts from screen
1492
+ var _ref3 = story || {},
1493
+ _ref3$theme = _ref3.theme,
1494
+ theme = _ref3$theme === void 0 ? null : _ref3$theme,
1495
+ _ref3$components = _ref3.components,
1496
+ components = _ref3$components === void 0 ? [] : _ref3$components;
1497
+ var fonts = uniq__default["default"](components.reduce(function (currentFonts, screen) {
1498
+ var type = screen.type;
1499
+ var fieldsPattern = _this.getFieldsPatternByScreen(type);
1500
+ var newFonts = FontsParser.extractFontsWithPaths(screen, fieldsPattern);
1501
+ return newFonts.length > 0 ? [].concat(_toConsumableArray__default["default"](currentFonts), _toConsumableArray__default["default"](newFonts)) : currentFonts;
1502
+ }, []), 'name');
1503
+
1504
+ // Extract fonts from theme
1505
+ if (theme !== null) {
1506
+ var _this$parse = this.parse(theme),
1507
+ _this$parse$fonts = _this$parse.fonts,
1508
+ themeFonts = _this$parse$fonts === void 0 ? [] : _this$parse$fonts,
1509
+ newTheme = _objectWithoutProperties__default["default"](_this$parse, _excluded$3);
1510
+ return fonts.length > 0 || themeFonts.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
1511
+ theme: newTheme,
1512
+ fonts: uniq__default["default"]([].concat(_toConsumableArray__default["default"](themeFonts), _toConsumableArray__default["default"](fonts)), 'name')
1513
+ }) : story;
1514
+ }
1515
+ return fonts.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
1516
+ fonts: fonts
1517
+ }) : story;
1518
+ }
1519
+ }, {
1520
+ key: "getFieldsPattern",
1521
+ value: function getFieldsPattern(fields) {
1522
+ var _this2 = this;
1523
+ var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1524
+ return fields.reduce(function (patterns, field) {
1525
+ var _field$name = field.name,
1526
+ name = _field$name === void 0 ? null : _field$name,
1527
+ _field$type = field.type,
1528
+ type = _field$type === void 0 ? null : _field$type;
1529
+ var path = [namePrefix, name].filter(function (it) {
1530
+ return it !== null;
1531
+ }).join('\\.');
1532
+ var fieldDefinition = _objectSpread__default["default"](_objectSpread__default["default"]({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field);
1533
+
1534
+ // also check settings fields
1535
+ var _fieldDefinition$fiel = fieldDefinition.fields,
1536
+ subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
1537
+ _fieldDefinition$item = fieldDefinition.itemsField,
1538
+ itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
1539
+ _fieldDefinition$sett = fieldDefinition.settings,
1540
+ settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
1541
+ return [].concat(_toConsumableArray__default["default"](patterns), _toConsumableArray__default["default"](FontsParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray__default["default"](_this2.getFieldsPattern(subFields, path)), _toConsumableArray__default["default"](_this2.getFieldsPattern(settings, path)), _toConsumableArray__default["default"](itemsField !== null ? _this2.getFieldsPattern([itemsField], "".concat(path, "\\.[0-9]+")) : []));
1542
+ }, []);
1543
+ }
1544
+ }], [{
1545
+ key: "fieldIsFontFamily",
1546
+ value: function fieldIsFontFamily(_ref4) {
1547
+ var _ref4$id = _ref4.id,
1548
+ id = _ref4$id === void 0 ? null : _ref4$id;
1549
+ return id === 'font-family';
1550
+ }
1551
+ }, {
1552
+ key: "valueIsFont",
1553
+ value: function valueIsFont(_ref5) {
1554
+ var _ref5$type = _ref5.type,
1555
+ type = _ref5$type === void 0 ? null : _ref5$type;
1556
+ return type === 'custom' || type === 'google';
1557
+ }
1558
+ }, {
1559
+ key: "extractFontsWithPaths",
1560
+ value: function extractFontsWithPaths(data, patterns) {
1561
+ var keyPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1562
+ var dataIsArray = isArray__default["default"](data);
1563
+ var keys = dataIsArray ? _toConsumableArray__default["default"](data.keys()) : Object.keys(data);
1564
+ return keys.reduce(function (currentFonts, key) {
1565
+ var path = [keyPrefix, key].filter(function (it) {
1566
+ return it !== null;
1567
+ }).join('.');
1568
+ var patternMatch = patterns.reduce(function (found, pattern) {
1569
+ return found || pattern.test(path);
1570
+ }, false);
1571
+ var value = data[key];
1572
+ var font = null;
1573
+ var subFonts = null;
1574
+ if (patternMatch && isObject__default["default"](value) && FontsParser.valueIsFont(value)) {
1575
+ font = value;
1576
+ } else if (isObject__default["default"](value) || isArray__default["default"](value)) {
1577
+ subFonts = FontsParser.extractFontsWithPaths(value, patterns, path);
1578
+ }
1579
+ return subFonts !== null || font !== null ? [].concat(_toConsumableArray__default["default"](currentFonts), _toConsumableArray__default["default"](subFonts || []), _toConsumableArray__default["default"](font !== null ? [font] : [])) : currentFonts;
1580
+ }, []);
1581
+ }
1582
+ }]);
1583
+ return FontsParser;
1584
+ }();
1585
+
1586
+ var _excluded$2 = ["components"],
1587
+ _excluded2$1 = ["shareIncentive", "callToAction"];
1588
+ var MigrationsParser = /*#__PURE__*/function () {
1589
+ function MigrationsParser(_ref) {
1590
+ var fieldsManager = _ref.fieldsManager,
1591
+ screensManager = _ref.screensManager;
1592
+ _classCallCheck__default["default"](this, MigrationsParser);
1593
+ this.fieldsManager = fieldsManager;
1594
+ this.screensManager = screensManager;
1595
+ }
1596
+
1597
+ // eslint-disable-next-line class-methods-use-this
1598
+ _createClass__default["default"](MigrationsParser, [{
1599
+ key: "parse",
1600
+ value: function parse(story) {
1601
+ if (story === null) {
1602
+ return story;
1603
+ }
1604
+ var _ref2 = story || {},
1605
+ _ref2$components = _ref2.components,
1606
+ components = _ref2$components === void 0 ? [] : _ref2$components,
1607
+ restStory = _objectWithoutProperties__default["default"](_ref2, _excluded$2);
1608
+ var finalComponents = components.reduce(function (currentComponents, screen) {
1609
+ var _ref3 = screen || {},
1610
+ _ref3$shareIncentive = _ref3.shareIncentive,
1611
+ shareIncentive = _ref3$shareIncentive === void 0 ? null : _ref3$shareIncentive,
1612
+ _ref3$callToAction = _ref3.callToAction,
1613
+ callToAction = _ref3$callToAction === void 0 ? null : _ref3$callToAction,
1614
+ restScreen = _objectWithoutProperties__default["default"](_ref3, _excluded2$1);
1615
+ if (shareIncentive === null && callToAction === null) {
1616
+ return [].concat(_toConsumableArray__default["default"](currentComponents), [restScreen]);
1617
+ }
1618
+ var _ref4 = screen || {},
1619
+ _ref4$header = _ref4.header,
1620
+ header = _ref4$header === void 0 ? null : _ref4$header,
1621
+ _ref4$footer = _ref4.footer,
1622
+ footer = _ref4$footer === void 0 ? null : _ref4$footer;
1623
+
1624
+ // Carful for recursivity here cause same key name
1625
+ var newHeader = shareIncentive !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, shareIncentive !== null ? {
1626
+ shareIncentive: shareIncentive
1627
+ } : null), header !== null ? {
1628
+ header: header
1629
+ } : null) : header;
1630
+ var newFooter = callToAction !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, callToAction !== null ? {
1631
+ callToAction: callToAction
1632
+ } : null), footer !== null ? {
1633
+ footer: footer
1634
+ } : null) : footer;
1635
+ var newScreen = _objectSpread__default["default"](_objectSpread__default["default"](_objectSpread__default["default"]({}, restScreen), newHeader !== null ? {
1636
+ header: newHeader
1637
+ } : null), newFooter !== null ? {
1638
+ footer: newFooter
1639
+ } : null);
1640
+ return [].concat(_toConsumableArray__default["default"](currentComponents), [newScreen]);
1641
+ }, []);
1642
+ return _objectSpread__default["default"](_objectSpread__default["default"]({}, restStory), {}, {
1643
+ components: finalComponents
1644
+ });
1645
+ }
1646
+ }]);
1647
+ return MigrationsParser;
1648
+ }();
1649
+
1650
+ var _excluded$1 = ["textStyle", "color", "boxStyle"];
1456
1651
  var ThemeParser = /*#__PURE__*/function () {
1457
1652
  function ThemeParser(_ref) {
1458
1653
  var screensManager = _ref.screensManager;
@@ -1615,7 +1810,7 @@ var ThemeParser = /*#__PURE__*/function () {
1615
1810
  fieldColorName = _ref4$color === void 0 ? null : _ref4$color,
1616
1811
  _ref4$boxStyle = _ref4.boxStyle,
1617
1812
  fieldBoxStyleName = _ref4$boxStyle === void 0 ? null : _ref4$boxStyle,
1618
- otherProps = _objectWithoutProperties__default["default"](_ref4, _excluded$2);
1813
+ otherProps = _objectWithoutProperties__default["default"](_ref4, _excluded$1);
1619
1814
  if (fieldTextStyleName === null && fieldColorName === null && fieldBoxStyleName === null && isEmpty__default["default"](otherProps) && !isObject__default["default"](fieldTheme)) {
1620
1815
  return value;
1621
1816
  }
@@ -1662,132 +1857,6 @@ var ThemeParser = /*#__PURE__*/function () {
1662
1857
  return ThemeParser;
1663
1858
  }();
1664
1859
 
1665
- var _excluded$1 = ["fonts"];
1666
- var FontsParser = /*#__PURE__*/function () {
1667
- function FontsParser(_ref) {
1668
- var fieldsManager = _ref.fieldsManager,
1669
- screensManager = _ref.screensManager;
1670
- _classCallCheck__default["default"](this, FontsParser);
1671
- this.fieldsManager = fieldsManager;
1672
- this.screensManager = screensManager;
1673
- this.fieldsPatternCache = {};
1674
- }
1675
- _createClass__default["default"](FontsParser, [{
1676
- key: "getFieldsPatternByScreen",
1677
- value: function getFieldsPatternByScreen(type) {
1678
- if (typeof this.fieldsPatternCache[type] === 'undefined') {
1679
- var _ref2 = this.screensManager.getDefinition(type) || {},
1680
- _ref2$fields = _ref2.fields,
1681
- fields = _ref2$fields === void 0 ? [] : _ref2$fields;
1682
- this.fieldsPatternCache[type] = this.getFieldsPattern(fields);
1683
- }
1684
- return this.fieldsPatternCache[type];
1685
- }
1686
-
1687
- // Extract fonts
1688
- }, {
1689
- key: "parse",
1690
- value: function parse(story) {
1691
- var _this = this;
1692
- if (story === null) {
1693
- return story;
1694
- }
1695
-
1696
- // Extract fonts from screen
1697
- var _ref3 = story || {},
1698
- _ref3$theme = _ref3.theme,
1699
- theme = _ref3$theme === void 0 ? null : _ref3$theme,
1700
- _ref3$components = _ref3.components,
1701
- components = _ref3$components === void 0 ? [] : _ref3$components;
1702
- var fonts = uniq__default["default"](components.reduce(function (currentFonts, screen) {
1703
- var type = screen.type;
1704
- var fieldsPattern = _this.getFieldsPatternByScreen(type);
1705
- var newFonts = FontsParser.extractFontsWithPaths(screen, fieldsPattern);
1706
- return newFonts.length > 0 ? [].concat(_toConsumableArray__default["default"](currentFonts), _toConsumableArray__default["default"](newFonts)) : currentFonts;
1707
- }, []), 'name');
1708
-
1709
- // Extract fonts from theme
1710
- if (theme !== null) {
1711
- var _this$parse = this.parse(theme),
1712
- _this$parse$fonts = _this$parse.fonts,
1713
- themeFonts = _this$parse$fonts === void 0 ? [] : _this$parse$fonts,
1714
- newTheme = _objectWithoutProperties__default["default"](_this$parse, _excluded$1);
1715
- return fonts.length > 0 || themeFonts.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
1716
- theme: newTheme,
1717
- fonts: uniq__default["default"]([].concat(_toConsumableArray__default["default"](themeFonts), _toConsumableArray__default["default"](fonts)), 'name')
1718
- }) : story;
1719
- }
1720
- return fonts.length > 0 ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
1721
- fonts: fonts
1722
- }) : story;
1723
- }
1724
- }, {
1725
- key: "getFieldsPattern",
1726
- value: function getFieldsPattern(fields) {
1727
- var _this2 = this;
1728
- var namePrefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1729
- return fields.reduce(function (patterns, field) {
1730
- var _field$name = field.name,
1731
- name = _field$name === void 0 ? null : _field$name,
1732
- _field$type = field.type,
1733
- type = _field$type === void 0 ? null : _field$type;
1734
- var path = [namePrefix, name].filter(function (it) {
1735
- return it !== null;
1736
- }).join('\\.');
1737
- var fieldDefinition = _objectSpread__default["default"](_objectSpread__default["default"]({}, type !== null ? _this2.fieldsManager.getDefinition(type) : null), field);
1738
-
1739
- // also check settings fields
1740
- var _fieldDefinition$fiel = fieldDefinition.fields,
1741
- subFields = _fieldDefinition$fiel === void 0 ? [] : _fieldDefinition$fiel,
1742
- _fieldDefinition$item = fieldDefinition.itemsField,
1743
- itemsField = _fieldDefinition$item === void 0 ? null : _fieldDefinition$item,
1744
- _fieldDefinition$sett = fieldDefinition.settings,
1745
- settings = _fieldDefinition$sett === void 0 ? [] : _fieldDefinition$sett;
1746
- return [].concat(_toConsumableArray__default["default"](patterns), _toConsumableArray__default["default"](FontsParser.fieldIsFontFamily(fieldDefinition) ? [new RegExp("^".concat(path, "$"))] : []), _toConsumableArray__default["default"](_this2.getFieldsPattern(subFields, path)), _toConsumableArray__default["default"](_this2.getFieldsPattern(settings, path)), _toConsumableArray__default["default"](itemsField !== null ? _this2.getFieldsPattern([itemsField], "".concat(path, "\\.[0-9]+")) : []));
1747
- }, []);
1748
- }
1749
- }], [{
1750
- key: "fieldIsFontFamily",
1751
- value: function fieldIsFontFamily(_ref4) {
1752
- var _ref4$id = _ref4.id,
1753
- id = _ref4$id === void 0 ? null : _ref4$id;
1754
- return id === 'font-family';
1755
- }
1756
- }, {
1757
- key: "valueIsFont",
1758
- value: function valueIsFont(_ref5) {
1759
- var _ref5$type = _ref5.type,
1760
- type = _ref5$type === void 0 ? null : _ref5$type;
1761
- return type === 'custom' || type === 'google';
1762
- }
1763
- }, {
1764
- key: "extractFontsWithPaths",
1765
- value: function extractFontsWithPaths(data, patterns) {
1766
- var keyPrefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
1767
- var dataIsArray = isArray__default["default"](data);
1768
- var keys = dataIsArray ? _toConsumableArray__default["default"](data.keys()) : Object.keys(data);
1769
- return keys.reduce(function (currentFonts, key) {
1770
- var path = [keyPrefix, key].filter(function (it) {
1771
- return it !== null;
1772
- }).join('.');
1773
- var patternMatch = patterns.reduce(function (found, pattern) {
1774
- return found || pattern.test(path);
1775
- }, false);
1776
- var value = data[key];
1777
- var font = null;
1778
- var subFonts = null;
1779
- if (patternMatch && isObject__default["default"](value) && FontsParser.valueIsFont(value)) {
1780
- font = value;
1781
- } else if (isObject__default["default"](value) || isArray__default["default"](value)) {
1782
- subFonts = FontsParser.extractFontsWithPaths(value, patterns, path);
1783
- }
1784
- return subFonts !== null || font !== null ? [].concat(_toConsumableArray__default["default"](currentFonts), _toConsumableArray__default["default"](subFonts || []), _toConsumableArray__default["default"](font !== null ? [font] : [])) : currentFonts;
1785
- }, []);
1786
- }
1787
- }]);
1788
- return FontsParser;
1789
- }();
1790
-
1791
1860
  var StoryParser = /*#__PURE__*/function () {
1792
1861
  function StoryParser(_ref) {
1793
1862
  var screensManager = _ref.screensManager,
@@ -1804,6 +1873,10 @@ var StoryParser = /*#__PURE__*/function () {
1804
1873
  screensManager: screensManager,
1805
1874
  fieldsManager: fieldsManager
1806
1875
  });
1876
+ this.migrationsParser = new MigrationsParser({
1877
+ screensManager: screensManager,
1878
+ fieldsManager: fieldsManager
1879
+ });
1807
1880
  }
1808
1881
  _createClass__default["default"](StoryParser, [{
1809
1882
  key: "parse",
@@ -1815,7 +1888,9 @@ var StoryParser = /*#__PURE__*/function () {
1815
1888
  _ref2$withMedias = _ref2.withMedias,
1816
1889
  withMedias = _ref2$withMedias === void 0 ? true : _ref2$withMedias,
1817
1890
  _ref2$withFonts = _ref2.withFonts,
1818
- withFonts = _ref2$withFonts === void 0 ? true : _ref2$withFonts;
1891
+ withFonts = _ref2$withFonts === void 0 ? true : _ref2$withFonts,
1892
+ _ref2$withMigrations = _ref2.withMigrations,
1893
+ withMigrations = _ref2$withMigrations === void 0 ? true : _ref2$withMigrations;
1819
1894
  if (story === null) {
1820
1895
  return story;
1821
1896
  }
@@ -1825,6 +1900,8 @@ var StoryParser = /*#__PURE__*/function () {
1825
1900
  return _this.themeParser.parse(newStory);
1826
1901
  }], [withFonts, function (newStory) {
1827
1902
  return _this.fontsParser.parse(newStory);
1903
+ }], [withMigrations, function (newStory) {
1904
+ return _this.migrationsParser.parse(newStory);
1828
1905
  }]];
1829
1906
  return parsers.reduce(function (parsedStory, _ref3) {
1830
1907
  var _ref4 = _slicedToArray__default["default"](_ref3, 2),
package/lib/utils.js CHANGED
@@ -412,6 +412,40 @@ var getFontFamily = function getFontFamily(value) {
412
412
  }).join(', ');
413
413
  };
414
414
 
415
+ var _excluded$1 = ["isPreview", "isView", "current", "openWebView", "enableInteraction", "disableInteraction"];
416
+ var getFooterProps = function getFooterProps() {
417
+ var footer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
418
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
419
+ _ref$isPreview = _ref.isPreview,
420
+ isPreview = _ref$isPreview === void 0 ? false : _ref$isPreview,
421
+ _ref$isView = _ref.isView,
422
+ isView = _ref$isView === void 0 ? false : _ref$isView,
423
+ _ref$current = _ref.current,
424
+ current = _ref$current === void 0 ? false : _ref$current,
425
+ _ref$openWebView = _ref.openWebView,
426
+ openWebView = _ref$openWebView === void 0 ? false : _ref$openWebView,
427
+ _ref$enableInteractio = _ref.enableInteraction,
428
+ enableInteraction = _ref$enableInteractio === void 0 ? true : _ref$enableInteractio,
429
+ _ref$disableInteracti = _ref.disableInteraction,
430
+ disableInteraction = _ref$disableInteracti === void 0 ? false : _ref$disableInteracti,
431
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded$1);
432
+ var _ref2 = footer || {},
433
+ _ref2$callToAction = _ref2.callToAction,
434
+ callToAction = _ref2$callToAction === void 0 ? null : _ref2$callToAction;
435
+ var footerProps = react.useMemo(function () {
436
+ return {
437
+ callToAction: _objectSpread__default["default"](_objectSpread__default["default"]({}, callToAction), {}, {
438
+ animationDisabled: isPreview,
439
+ focusable: current && isView,
440
+ openWebView: openWebView,
441
+ enableInteraction: enableInteraction,
442
+ disableInteraction: disableInteraction
443
+ }, otherProps)
444
+ };
445
+ }, [callToAction, isPreview, isView, current, enableInteraction, disableInteraction, otherProps]);
446
+ return footerProps;
447
+ };
448
+
415
449
  var getGridLayoutName = function getGridLayoutName(layout) {
416
450
  return layout.map(function (it) {
417
451
  return "".concat(it.rows, "_").concat(it.columns.join('_'));
@@ -931,6 +965,38 @@ var getLayoutParts = function getLayoutParts() {
931
965
  };
932
966
  };
933
967
 
968
+ var isHeaderFilled = function isHeaderFilled() {
969
+ var header = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
970
+ var _ref = header || {},
971
+ _ref$badge = _ref.badge,
972
+ badge = _ref$badge === void 0 ? null : _ref$badge;
973
+ var _ref2 = badge || {},
974
+ _ref2$active = _ref2.active,
975
+ badgeActive = _ref2$active === void 0 ? false : _ref2$active,
976
+ _ref2$label = _ref2.label,
977
+ label = _ref2$label === void 0 ? null : _ref2$label;
978
+ var _ref3 = label || {},
979
+ _ref3$body = _ref3.body,
980
+ body = _ref3$body === void 0 ? null : _ref3$body;
981
+ return badgeActive && body !== null;
982
+ };
983
+
984
+ var isFooterFilled = function isFooterFilled() {
985
+ var footer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
986
+ var _ref = footer || {},
987
+ _ref$callToAction = _ref.callToAction,
988
+ callToAction = _ref$callToAction === void 0 ? null : _ref$callToAction;
989
+ var _ref2 = callToAction || {},
990
+ _ref2$active = _ref2.active,
991
+ callToActionActive = _ref2$active === void 0 ? false : _ref2$active,
992
+ _ref2$label = _ref2.label,
993
+ label = _ref2$label === void 0 ? null : _ref2$label;
994
+ var _ref3 = label || {},
995
+ _ref3$body = _ref3.body,
996
+ body = _ref3$body === void 0 ? null : _ref3$body;
997
+ return callToActionActive && body !== null;
998
+ };
999
+
934
1000
  var isMessage = function isMessage(message) {
935
1001
  return isObject__default["default"](message) && typeof message.defaultMessage !== 'undefined';
936
1002
  };
@@ -1084,6 +1150,7 @@ exports.getFieldByName = getFieldByName;
1084
1150
  exports.getFieldFromPath = getFieldFromPath;
1085
1151
  exports.getFileName = getFileName;
1086
1152
  exports.getFontFamilyFromFont = getFontFamily;
1153
+ exports.getFooterProps = getFooterProps;
1087
1154
  exports.getGridLayoutName = getGridLayoutName;
1088
1155
  exports.getLargestRemainderRound = largestRemainderRound;
1089
1156
  exports.getLayersFromBackground = getLayersFromBackground;
@@ -1104,6 +1171,8 @@ exports.getStyleFromLink = getStyleFromLink;
1104
1171
  exports.getStyleFromMargin = getStyleFromMargin;
1105
1172
  exports.getStyleFromText = getStyleFromText;
1106
1173
  exports.getVideoSupportedMimes = getVideoSupportedMimes;
1174
+ exports.isFooterFilled = isFooterFilled;
1175
+ exports.isHeaderFilled = isHeaderFilled;
1107
1176
  exports.isImageFilled = isImageFilled;
1108
1177
  exports.isIos = isIos;
1109
1178
  exports.isLabelFilled = isTextFilled$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/core",
3
- "version": "0.3.347",
3
+ "version": "0.3.354",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -133,5 +133,5 @@
133
133
  "publishConfig": {
134
134
  "access": "public"
135
135
  },
136
- "gitHead": "63a7e46763ae34c4143f0aa29a4c9467126e7734"
136
+ "gitHead": "ccf852d0a7df8f222365088e7de3843492e720e7"
137
137
  }