@micromag/core 0.3.418 → 0.3.423
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/es/components.js +52 -10
- package/es/index.js +150 -69
- package/lib/components.js +53 -10
- package/lib/index.js +150 -69
- package/package.json +3 -2
package/es/components.js
CHANGED
|
@@ -15,6 +15,7 @@ import { useForm, useDocumentEvent, useIntersectionObserver, useDimensionObserve
|
|
|
15
15
|
import { useFieldsManager, useFieldComponent, FieldContextProvider, withModals, useModals, useUppy, withPanels, usePanels, ScreenSizeProvider, useScreenComponent, ScreenProvider, useScreenRenderContext, useScreenSize } from '@micromag/core/contexts';
|
|
16
16
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
17
17
|
import get from 'lodash/get';
|
|
18
|
+
import queryString from 'query-string';
|
|
18
19
|
import ReactDOM from 'react-dom';
|
|
19
20
|
import isArray from 'lodash/isArray';
|
|
20
21
|
import { faAngleDown } from '@fortawesome/free-solid-svg-icons/faAngleDown';
|
|
@@ -1554,8 +1555,12 @@ var messages = defineMessages({
|
|
|
1554
1555
|
});
|
|
1555
1556
|
var propTypes$x = {
|
|
1556
1557
|
page: PropTypes$1.number,
|
|
1558
|
+
lastPage: PropTypes$1.number,
|
|
1559
|
+
maxPages: PropTypes$1.number,
|
|
1557
1560
|
total: PropTypes$1.number,
|
|
1558
1561
|
url: PropTypes$1.string,
|
|
1562
|
+
query: PropTypes$1.object,
|
|
1563
|
+
// eslint-disable-line react/forbid-prop-types
|
|
1559
1564
|
withPreviousNext: PropTypes$1.bool,
|
|
1560
1565
|
className: PropTypes$1.string,
|
|
1561
1566
|
paginationClassName: PropTypes$1.string,
|
|
@@ -1565,8 +1570,11 @@ var propTypes$x = {
|
|
|
1565
1570
|
};
|
|
1566
1571
|
var defaultProps$x = {
|
|
1567
1572
|
page: 1,
|
|
1573
|
+
lastPage: 1,
|
|
1574
|
+
maxPages: 10,
|
|
1568
1575
|
total: 1,
|
|
1569
1576
|
url: null,
|
|
1577
|
+
query: null,
|
|
1570
1578
|
withPreviousNext: false,
|
|
1571
1579
|
className: null,
|
|
1572
1580
|
paginationClassName: null,
|
|
@@ -1575,9 +1583,12 @@ var defaultProps$x = {
|
|
|
1575
1583
|
onClickPage: null
|
|
1576
1584
|
};
|
|
1577
1585
|
var PaginationMenu = function PaginationMenu(_ref) {
|
|
1578
|
-
var
|
|
1579
|
-
|
|
1586
|
+
var parentPage = _ref.page,
|
|
1587
|
+
parentLastPage = _ref.lastPage,
|
|
1588
|
+
parentMaxPages = _ref.maxPages,
|
|
1589
|
+
parentTotal = _ref.total,
|
|
1580
1590
|
url = _ref.url,
|
|
1591
|
+
query = _ref.query,
|
|
1581
1592
|
withPreviousNext = _ref.withPreviousNext,
|
|
1582
1593
|
className = _ref.className,
|
|
1583
1594
|
paginationClassName = _ref.paginationClassName,
|
|
@@ -1585,11 +1596,38 @@ var PaginationMenu = function PaginationMenu(_ref) {
|
|
|
1585
1596
|
linkClassName = _ref.linkClassName,
|
|
1586
1597
|
onClickPage = _ref.onClickPage;
|
|
1587
1598
|
var getUrl = useCallback(function (currentPage) {
|
|
1588
|
-
return url !== null ? "".concat(url).concat(
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1599
|
+
return url !== null ? "".concat(url, "?").concat(queryString.stringify(_objectSpread(_objectSpread({}, query), {}, {
|
|
1600
|
+
page: currentPage
|
|
1601
|
+
}), {
|
|
1602
|
+
arrayFormat: 'bracket'
|
|
1603
|
+
})) : null;
|
|
1604
|
+
}, [url, query]);
|
|
1605
|
+
|
|
1606
|
+
// TODO: test this
|
|
1607
|
+
// const pages = [...Array(total).keys()].map((it) => it + 1);
|
|
1608
|
+
|
|
1609
|
+
var page = parseInt(parentPage, 10);
|
|
1610
|
+
var total = parseInt(parentTotal, 10);
|
|
1611
|
+
var maxPages = parseInt(parentMaxPages, 10);
|
|
1612
|
+
var lastPage = parseInt(parentLastPage, 10);
|
|
1613
|
+
var pageNumbers = Array.from({
|
|
1614
|
+
length: parseInt(lastPage, 10)
|
|
1615
|
+
}, function (_, i) {
|
|
1616
|
+
return i + 1;
|
|
1592
1617
|
});
|
|
1618
|
+
var stripPages = maxPages !== null && lastPage > maxPages;
|
|
1619
|
+
var startPage = stripPages ? Math.min(Math.max(page - maxPages / 2, 1), lastPage - maxPages) : null;
|
|
1620
|
+
var endPage = stripPages ? startPage + maxPages : null;
|
|
1621
|
+
var strippedPages = stripPages ? pageNumbers.reduce(function (selectedPages, pageNumber) {
|
|
1622
|
+
if (pageNumber === 1 && startPage - 1 > 1) {
|
|
1623
|
+
return [pageNumber, '...'];
|
|
1624
|
+
}
|
|
1625
|
+
if (pageNumber === lastPage && endPage + 1 < lastPage) {
|
|
1626
|
+
return [].concat(_toConsumableArray(selectedPages), ['...', pageNumber]);
|
|
1627
|
+
}
|
|
1628
|
+
return pageNumber >= startPage && pageNumber <= endPage ? [].concat(_toConsumableArray(selectedPages), [pageNumber]) : selectedPages;
|
|
1629
|
+
}, []) : pageNumbers;
|
|
1630
|
+
var pages = strippedPages.length > 0 ? strippedPages : [1];
|
|
1593
1631
|
return /*#__PURE__*/React.createElement("nav", {
|
|
1594
1632
|
className: classNames([styles$p.container, _defineProperty({}, className, className !== null)])
|
|
1595
1633
|
}, /*#__PURE__*/React.createElement("ul", {
|
|
@@ -3827,7 +3865,7 @@ var Placeholder = /*#__PURE__*/React.memo(ScreenPlaceholder);
|
|
|
3827
3865
|
|
|
3828
3866
|
var styles$6 = {"stack":"micromag-core-screens-preview-stack","stackScreen":"micromag-core-screens-preview-stackScreen","stackItem":"micromag-core-screens-preview-stackItem","screen":"micromag-core-screens-preview-screen"};
|
|
3829
3867
|
|
|
3830
|
-
var _excluded = ["screen", "screenState", "width", "height", "screenWidth", "screenHeight", "className", "withSize"];
|
|
3868
|
+
var _excluded = ["screen", "screenState", "width", "height", "screenWidth", "screenHeight", "className", "withSize", "hidden"];
|
|
3831
3869
|
var propTypes$7 = {
|
|
3832
3870
|
screen: PropTypes.component.isRequired,
|
|
3833
3871
|
screenState: PropTypes$1.string,
|
|
@@ -3836,7 +3874,8 @@ var propTypes$7 = {
|
|
|
3836
3874
|
screenWidth: PropTypes$1.number,
|
|
3837
3875
|
screenHeight: PropTypes$1.number,
|
|
3838
3876
|
className: PropTypes$1.string,
|
|
3839
|
-
withSize: PropTypes$1.bool
|
|
3877
|
+
withSize: PropTypes$1.bool,
|
|
3878
|
+
hidden: PropTypes$1.bool
|
|
3840
3879
|
};
|
|
3841
3880
|
var defaultProps$7 = {
|
|
3842
3881
|
screenState: null,
|
|
@@ -3845,7 +3884,8 @@ var defaultProps$7 = {
|
|
|
3845
3884
|
screenWidth: undefined,
|
|
3846
3885
|
screenHeight: undefined,
|
|
3847
3886
|
className: null,
|
|
3848
|
-
withSize: false
|
|
3887
|
+
withSize: false,
|
|
3888
|
+
hidden: false
|
|
3849
3889
|
};
|
|
3850
3890
|
var ScreenPreview = function ScreenPreview(_ref) {
|
|
3851
3891
|
var screen = _ref.screen,
|
|
@@ -3856,6 +3896,7 @@ var ScreenPreview = function ScreenPreview(_ref) {
|
|
|
3856
3896
|
screenHeight = _ref.screenHeight,
|
|
3857
3897
|
className = _ref.className,
|
|
3858
3898
|
withSize = _ref.withSize,
|
|
3899
|
+
hidden = _ref.hidden,
|
|
3859
3900
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
3860
3901
|
var screenElement = /*#__PURE__*/React.createElement(Screen$1, Object.assign({
|
|
3861
3902
|
screen: screen,
|
|
@@ -3865,13 +3906,14 @@ var ScreenPreview = function ScreenPreview(_ref) {
|
|
|
3865
3906
|
height: !withSize ? height : undefined,
|
|
3866
3907
|
className: classNames([styles$6.screen, _defineProperty({}, className, !withSize)])
|
|
3867
3908
|
}, props));
|
|
3909
|
+
var element = !hidden ? screenElement : /*#__PURE__*/React.createElement("div", null);
|
|
3868
3910
|
var screenWithSize = withSize ? /*#__PURE__*/React.createElement(ScreenSizer, {
|
|
3869
3911
|
className: className,
|
|
3870
3912
|
screenWidth: screenWidth,
|
|
3871
3913
|
screenHeight: screenHeight,
|
|
3872
3914
|
width: width,
|
|
3873
3915
|
height: height
|
|
3874
|
-
},
|
|
3916
|
+
}, element) : element;
|
|
3875
3917
|
return screenWithSize;
|
|
3876
3918
|
};
|
|
3877
3919
|
ScreenPreview.propTypes = propTypes$7;
|
package/es/index.js
CHANGED
|
@@ -1156,7 +1156,8 @@ var FieldsManager = /*#__PURE__*/function (_DefinitionsManager) {
|
|
|
1156
1156
|
return FieldsManager;
|
|
1157
1157
|
}(DefinitionsManager);
|
|
1158
1158
|
|
|
1159
|
-
var _excluded$4 = ["medias"]
|
|
1159
|
+
var _excluded$4 = ["medias"],
|
|
1160
|
+
_excluded2$2 = ["medias"];
|
|
1160
1161
|
var MediasParser = /*#__PURE__*/function () {
|
|
1161
1162
|
function MediasParser(_ref) {
|
|
1162
1163
|
var fieldsManager = _ref.fieldsManager,
|
|
@@ -1165,8 +1166,23 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1165
1166
|
this.fieldsManager = fieldsManager;
|
|
1166
1167
|
this.screensManager = screensManager;
|
|
1167
1168
|
this.fieldsPatternCache = {};
|
|
1169
|
+
this.parsedThemesCache = {};
|
|
1168
1170
|
}
|
|
1169
1171
|
_createClass(MediasParser, [{
|
|
1172
|
+
key: "getParsedStoryTheme",
|
|
1173
|
+
value: function getParsedStoryTheme(storyId, theme) {
|
|
1174
|
+
if (typeof this.parsedThemesCache[storyId] === 'undefined') {
|
|
1175
|
+
var _this$toPath = this.toPath(theme),
|
|
1176
|
+
themeMedias = _this$toPath.medias,
|
|
1177
|
+
newTheme = _objectWithoutProperties(_this$toPath, _excluded$4);
|
|
1178
|
+
this.parsedThemesCache[storyId] = {
|
|
1179
|
+
themeMedias: themeMedias,
|
|
1180
|
+
newTheme: newTheme
|
|
1181
|
+
};
|
|
1182
|
+
}
|
|
1183
|
+
return this.parsedThemesCache[storyId];
|
|
1184
|
+
}
|
|
1185
|
+
}, {
|
|
1170
1186
|
key: "getFieldsPatternByScreen",
|
|
1171
1187
|
value: function getFieldsPatternByScreen(type) {
|
|
1172
1188
|
if (typeof this.fieldsPatternCache[type] === 'undefined') {
|
|
@@ -1187,6 +1203,8 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1187
1203
|
return story;
|
|
1188
1204
|
}
|
|
1189
1205
|
var _ref3 = story || {},
|
|
1206
|
+
_ref3$id = _ref3.id,
|
|
1207
|
+
storyId = _ref3$id === void 0 ? null : _ref3$id,
|
|
1190
1208
|
_ref3$theme = _ref3.theme,
|
|
1191
1209
|
theme = _ref3$theme === void 0 ? null : _ref3$theme,
|
|
1192
1210
|
_ref3$components = _ref3.components,
|
|
@@ -1210,9 +1228,9 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1210
1228
|
newComponents = _components$reduce.components,
|
|
1211
1229
|
medias = _components$reduce.medias;
|
|
1212
1230
|
if (theme !== null) {
|
|
1213
|
-
var _this$
|
|
1214
|
-
themeMedias = _this$
|
|
1215
|
-
newTheme = _objectWithoutProperties(_this$
|
|
1231
|
+
var _this$getParsedStoryT = this.getParsedStoryTheme(storyId, theme),
|
|
1232
|
+
themeMedias = _this$getParsedStoryT.medias,
|
|
1233
|
+
newTheme = _objectWithoutProperties(_this$getParsedStoryT, _excluded2$2);
|
|
1216
1234
|
return medias !== null || themeMedias !== null ? _objectSpread(_objectSpread({}, story), {}, {
|
|
1217
1235
|
theme: newTheme,
|
|
1218
1236
|
components: newComponents,
|
|
@@ -1641,6 +1659,7 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1641
1659
|
_classCallCheck(this, ThemeParser);
|
|
1642
1660
|
this.screensManager = screensManager;
|
|
1643
1661
|
this.definitionCache = {};
|
|
1662
|
+
this.fieldsCache = {};
|
|
1644
1663
|
}
|
|
1645
1664
|
_createClass(ThemeParser, [{
|
|
1646
1665
|
key: "getDefinitionByScreen",
|
|
@@ -1657,6 +1676,54 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1657
1676
|
}
|
|
1658
1677
|
return this.definitionCache[type];
|
|
1659
1678
|
}
|
|
1679
|
+
}, {
|
|
1680
|
+
key: "getFieldsForDefinition",
|
|
1681
|
+
value: function getFieldsForDefinition(definition) {
|
|
1682
|
+
var _ref2 = definition || {},
|
|
1683
|
+
_ref2$id = _ref2.id,
|
|
1684
|
+
definitionId = _ref2$id === void 0 ? null : _ref2$id,
|
|
1685
|
+
_ref2$fields = _ref2.fields,
|
|
1686
|
+
fields = _ref2$fields === void 0 ? [] : _ref2$fields,
|
|
1687
|
+
_ref2$states = _ref2.states,
|
|
1688
|
+
states = _ref2$states === void 0 ? [] : _ref2$states;
|
|
1689
|
+
if (typeof this.fieldsCache[definitionId] === 'undefined') {
|
|
1690
|
+
if (states === null || states.length === 0) {
|
|
1691
|
+
this.fieldsCache[definitionId] = {
|
|
1692
|
+
fields: fields
|
|
1693
|
+
};
|
|
1694
|
+
} else {
|
|
1695
|
+
// TODO: test this
|
|
1696
|
+
var finalFields = fields;
|
|
1697
|
+
var repetableStates = [];
|
|
1698
|
+
if (states !== null && states.length > 0) {
|
|
1699
|
+
var nonRepetableStates = states.filter(function (_ref3) {
|
|
1700
|
+
var _ref3$repeatable = _ref3.repeatable,
|
|
1701
|
+
repeatable = _ref3$repeatable === void 0 ? false : _ref3$repeatable;
|
|
1702
|
+
return repeatable === false;
|
|
1703
|
+
});
|
|
1704
|
+
repetableStates = states.filter(function (_ref4) {
|
|
1705
|
+
var _ref4$repeatable = _ref4.repeatable,
|
|
1706
|
+
repeatable = _ref4$repeatable === void 0 ? false : _ref4$repeatable;
|
|
1707
|
+
return repeatable === true;
|
|
1708
|
+
});
|
|
1709
|
+
finalFields = nonRepetableStates.reduce(function (acc, it) {
|
|
1710
|
+
var _ref5 = it || {},
|
|
1711
|
+
_ref5$fields = _ref5.fields,
|
|
1712
|
+
itemFields = _ref5$fields === void 0 ? [] : _ref5$fields;
|
|
1713
|
+
if (itemFields !== null && itemFields.length > 0) {
|
|
1714
|
+
return acc.concat(itemFields);
|
|
1715
|
+
}
|
|
1716
|
+
return acc;
|
|
1717
|
+
}, finalFields);
|
|
1718
|
+
}
|
|
1719
|
+
this.fieldsCache[definitionId] = {
|
|
1720
|
+
fields: finalFields,
|
|
1721
|
+
repetableStates: repetableStates
|
|
1722
|
+
};
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
return this.fieldsCache[definitionId];
|
|
1726
|
+
}
|
|
1660
1727
|
}, {
|
|
1661
1728
|
key: "parse",
|
|
1662
1729
|
value: function parse(story) {
|
|
@@ -1664,11 +1731,11 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1664
1731
|
if (story === null) {
|
|
1665
1732
|
return story;
|
|
1666
1733
|
}
|
|
1667
|
-
var
|
|
1668
|
-
|
|
1669
|
-
theme =
|
|
1670
|
-
|
|
1671
|
-
components =
|
|
1734
|
+
var _ref6 = story || {},
|
|
1735
|
+
_ref6$theme = _ref6.theme,
|
|
1736
|
+
theme = _ref6$theme === void 0 ? null : _ref6$theme,
|
|
1737
|
+
_ref6$components = _ref6.components,
|
|
1738
|
+
components = _ref6$components === void 0 ? null : _ref6$components;
|
|
1672
1739
|
if (theme === null || components === null) {
|
|
1673
1740
|
return story;
|
|
1674
1741
|
}
|
|
@@ -1682,6 +1749,33 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1682
1749
|
themeTextStyles = _theme$textStyles === void 0 ? null : _theme$textStyles,
|
|
1683
1750
|
_theme$boxStyles = theme.boxStyles,
|
|
1684
1751
|
themeBoxStyles = _theme$boxStyles === void 0 ? null : _theme$boxStyles;
|
|
1752
|
+
|
|
1753
|
+
// Speed test
|
|
1754
|
+
// const newComponents = [...components];
|
|
1755
|
+
// for (let index = 0; index < components.length; index += 1) {
|
|
1756
|
+
// const screen = components[index] || {};
|
|
1757
|
+
// const { type } = screen;
|
|
1758
|
+
// const { definition, themeScreen } = this.getDefinitionByScreen(type, themeComponents);
|
|
1759
|
+
// const newScreen = this.parseScreen(
|
|
1760
|
+
// definition,
|
|
1761
|
+
// screen,
|
|
1762
|
+
// themeScreen,
|
|
1763
|
+
// themeBackground,
|
|
1764
|
+
// themeColors,
|
|
1765
|
+
// themeTextStyles,
|
|
1766
|
+
// themeBoxStyles,
|
|
1767
|
+
// );
|
|
1768
|
+
|
|
1769
|
+
// if (newScreen !== screen || themeScreen !== null) {
|
|
1770
|
+
// newComponents[index] = {
|
|
1771
|
+
// ...themeScreen,
|
|
1772
|
+
// ...newScreen,
|
|
1773
|
+
// };
|
|
1774
|
+
// }
|
|
1775
|
+
// }
|
|
1776
|
+
// story.components = newComponents;
|
|
1777
|
+
// return story;
|
|
1778
|
+
|
|
1685
1779
|
var newComponents = components.reduce(function (currentComponents, screen, index) {
|
|
1686
1780
|
var type = screen.type;
|
|
1687
1781
|
var _this$getDefinitionBy = _this.getDefinitionByScreen(type, themeComponents),
|
|
@@ -1700,36 +1794,11 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1700
1794
|
key: "parseScreen",
|
|
1701
1795
|
value: function parseScreen(definition, value, themeValue, themeBackground, themeColors, themeTextStyles, themeBoxStyles) {
|
|
1702
1796
|
var _this2 = this;
|
|
1703
|
-
var
|
|
1704
|
-
|
|
1705
|
-
fields =
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
// TODO: test this
|
|
1710
|
-
var finalFields = fields;
|
|
1711
|
-
var repetableStates = [];
|
|
1712
|
-
if (states !== null && states.length > 0) {
|
|
1713
|
-
var nonRepetableStates = states.filter(function (_ref4) {
|
|
1714
|
-
var _ref4$repeatable = _ref4.repeatable,
|
|
1715
|
-
repeatable = _ref4$repeatable === void 0 ? false : _ref4$repeatable;
|
|
1716
|
-
return repeatable === false;
|
|
1717
|
-
});
|
|
1718
|
-
repetableStates = states.filter(function (_ref5) {
|
|
1719
|
-
var _ref5$repeatable = _ref5.repeatable,
|
|
1720
|
-
repeatable = _ref5$repeatable === void 0 ? false : _ref5$repeatable;
|
|
1721
|
-
return repeatable === true;
|
|
1722
|
-
});
|
|
1723
|
-
finalFields = nonRepetableStates.reduce(function (acc, it) {
|
|
1724
|
-
var _ref6 = it || {},
|
|
1725
|
-
_ref6$fields = _ref6.fields,
|
|
1726
|
-
itemFields = _ref6$fields === void 0 ? [] : _ref6$fields;
|
|
1727
|
-
if (itemFields !== null && itemFields.length > 0) {
|
|
1728
|
-
return acc.concat(itemFields);
|
|
1729
|
-
}
|
|
1730
|
-
return acc;
|
|
1731
|
-
}, finalFields);
|
|
1732
|
-
}
|
|
1797
|
+
var _this$getFieldsForDef = this.getFieldsForDefinition(definition),
|
|
1798
|
+
_this$getFieldsForDef2 = _this$getFieldsForDef.fields,
|
|
1799
|
+
fields = _this$getFieldsForDef2 === void 0 ? null : _this$getFieldsForDef2,
|
|
1800
|
+
_this$getFieldsForDef3 = _this$getFieldsForDef.repetableStates,
|
|
1801
|
+
repetableStates = _this$getFieldsForDef3 === void 0 ? null : _this$getFieldsForDef3;
|
|
1733
1802
|
var newThemeValue = themeValue === null && themeBackground !== null ? {} : themeValue;
|
|
1734
1803
|
if (themeBackground !== null && typeof newThemeValue.background !== 'undefined') {
|
|
1735
1804
|
newThemeValue.background = _objectSpread(_objectSpread({}, themeBackground), newThemeValue.background);
|
|
@@ -1738,23 +1807,33 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1738
1807
|
}
|
|
1739
1808
|
var newScreenValue = Object.keys(value).reduce(function (currentValue, key) {
|
|
1740
1809
|
var repetableState = null;
|
|
1741
|
-
if (repetableStates.length > 0) {
|
|
1810
|
+
if (repetableStates !== null && repetableStates.length > 0) {
|
|
1742
1811
|
repetableState = repetableStates.find(function (_ref7) {
|
|
1743
1812
|
var _ref7$id = _ref7.id,
|
|
1744
1813
|
stateId = _ref7$id === void 0 ? null : _ref7$id;
|
|
1745
1814
|
return stateId !== null && stateId === key;
|
|
1746
1815
|
}) || null;
|
|
1747
1816
|
}
|
|
1748
|
-
var fieldDefinition =
|
|
1817
|
+
var fieldDefinition = (fields || null).find(function (it) {
|
|
1749
1818
|
return it.name === key;
|
|
1750
1819
|
}) || repetableState || {};
|
|
1751
1820
|
var fieldValue = value[key];
|
|
1752
1821
|
var fieldThemeValue = newThemeValue !== null ? newThemeValue[key] || null : null;
|
|
1753
1822
|
|
|
1823
|
+
// Try for early return
|
|
1824
|
+
var _ref8 = fieldDefinition || {},
|
|
1825
|
+
_ref8$theme = _ref8.theme,
|
|
1826
|
+
theme = _ref8$theme === void 0 ? null : _ref8$theme;
|
|
1827
|
+
if ((theme === null || !isObject(theme)) && fields === null) {
|
|
1828
|
+
return _objectSpread(_objectSpread({}, currentValue), {}, _defineProperty({}, key, fieldValue));
|
|
1829
|
+
}
|
|
1830
|
+
|
|
1754
1831
|
// console.log('start', key, fieldValue);
|
|
1755
1832
|
var newFieldValue = _this2.parseField(fieldValue, fieldDefinition, fieldThemeValue, themeColors, themeTextStyles, themeBoxStyles);
|
|
1756
1833
|
// console.log('result', newFieldValue);
|
|
1757
1834
|
|
|
1835
|
+
// const newFieldValue = fieldValue;
|
|
1836
|
+
|
|
1758
1837
|
// Only switch field if it has changed
|
|
1759
1838
|
return newFieldValue !== fieldValue ? _objectSpread(_objectSpread({}, currentValue), {}, _defineProperty({}, key, newFieldValue)) : currentValue;
|
|
1760
1839
|
}, value);
|
|
@@ -1764,12 +1843,14 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1764
1843
|
// eslint-disable-next-line class-methods-use-this
|
|
1765
1844
|
}, {
|
|
1766
1845
|
key: "parseField",
|
|
1767
|
-
value: function parseField(value,
|
|
1846
|
+
value: function parseField(value, fieldDefinition, themeValue, themeColors, themeTextStyles, themeBoxStyles) {
|
|
1768
1847
|
var _this3 = this;
|
|
1769
|
-
var
|
|
1770
|
-
fieldTheme =
|
|
1771
|
-
|
|
1772
|
-
definitionFields =
|
|
1848
|
+
var _fieldDefinition$them = fieldDefinition.theme,
|
|
1849
|
+
fieldTheme = _fieldDefinition$them === void 0 ? null : _fieldDefinition$them,
|
|
1850
|
+
_fieldDefinition$fiel = fieldDefinition.fields,
|
|
1851
|
+
definitionFields = _fieldDefinition$fiel === void 0 ? null : _fieldDefinition$fiel;
|
|
1852
|
+
|
|
1853
|
+
// There are sub-fields in this definition
|
|
1773
1854
|
if (definitionFields !== null && value !== null) {
|
|
1774
1855
|
return isArray(value) ? value.map(function (innerFieldValue) {
|
|
1775
1856
|
if (innerFieldValue === null) {
|
|
@@ -1792,13 +1873,13 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1792
1873
|
if (!isObject(innerField[innerFieldName])) {
|
|
1793
1874
|
return newInnerField;
|
|
1794
1875
|
}
|
|
1795
|
-
var
|
|
1796
|
-
|
|
1797
|
-
innerFieldTextStyle =
|
|
1798
|
-
|
|
1799
|
-
innerFieldColor =
|
|
1800
|
-
|
|
1801
|
-
innerFieldBoxStyle =
|
|
1876
|
+
var _ref9 = fieldTheme[innerFieldName] || {},
|
|
1877
|
+
_ref9$textStyle = _ref9.textStyle,
|
|
1878
|
+
innerFieldTextStyle = _ref9$textStyle === void 0 ? null : _ref9$textStyle,
|
|
1879
|
+
_ref9$color = _ref9.color,
|
|
1880
|
+
innerFieldColor = _ref9$color === void 0 ? null : _ref9$color,
|
|
1881
|
+
_ref9$boxStyle = _ref9.boxStyle,
|
|
1882
|
+
innerFieldBoxStyle = _ref9$boxStyle === void 0 ? null : _ref9$boxStyle;
|
|
1802
1883
|
|
|
1803
1884
|
// Early return, no theme
|
|
1804
1885
|
if (innerFieldTextStyle === null && innerFieldColor === null && innerFieldBoxStyle === null) {
|
|
@@ -1838,9 +1919,9 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1838
1919
|
var innerDefinition = isArray(fieldsOrDefinition) ? fieldsOrDefinition.find(function (it) {
|
|
1839
1920
|
return it.name === innerFieldName;
|
|
1840
1921
|
}) || null : fieldsOrDefinition;
|
|
1841
|
-
var
|
|
1842
|
-
|
|
1843
|
-
idfTheme =
|
|
1922
|
+
var _ref10 = innerDefinition || {},
|
|
1923
|
+
_ref10$theme = _ref10.theme,
|
|
1924
|
+
idfTheme = _ref10$theme === void 0 ? null : _ref10$theme;
|
|
1844
1925
|
var innerValue = value[innerFieldName];
|
|
1845
1926
|
|
|
1846
1927
|
// For items fields
|
|
@@ -1871,14 +1952,14 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1871
1952
|
var _this5 = this;
|
|
1872
1953
|
if (isObject(initialValue) || isObject(fieldTheme)) {
|
|
1873
1954
|
var value = initialValue || null;
|
|
1874
|
-
var
|
|
1875
|
-
|
|
1876
|
-
fieldTextStyleName =
|
|
1877
|
-
|
|
1878
|
-
fieldColorName =
|
|
1879
|
-
|
|
1880
|
-
fieldBoxStyleName =
|
|
1881
|
-
otherProps = _objectWithoutProperties(
|
|
1955
|
+
var _ref11 = fieldTheme || {},
|
|
1956
|
+
_ref11$textStyle = _ref11.textStyle,
|
|
1957
|
+
fieldTextStyleName = _ref11$textStyle === void 0 ? null : _ref11$textStyle,
|
|
1958
|
+
_ref11$color = _ref11.color,
|
|
1959
|
+
fieldColorName = _ref11$color === void 0 ? null : _ref11$color,
|
|
1960
|
+
_ref11$boxStyle = _ref11.boxStyle,
|
|
1961
|
+
fieldBoxStyleName = _ref11$boxStyle === void 0 ? null : _ref11$boxStyle,
|
|
1962
|
+
otherProps = _objectWithoutProperties(_ref11, _excluded$1);
|
|
1882
1963
|
if (fieldTextStyleName === null && fieldColorName === null && fieldBoxStyleName === null && isEmpty(otherProps) && !isObject(fieldTheme)) {
|
|
1883
1964
|
return value;
|
|
1884
1965
|
}
|
|
@@ -1890,11 +1971,11 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1890
1971
|
return _objectSpread(_objectSpread({}, newObject), newValue !== null ? _defineProperty({}, key, newValue) : null);
|
|
1891
1972
|
}, {});
|
|
1892
1973
|
}
|
|
1893
|
-
var
|
|
1894
|
-
|
|
1895
|
-
valueTextStyle =
|
|
1896
|
-
|
|
1897
|
-
valueBoxStyle =
|
|
1974
|
+
var _ref13 = value || {},
|
|
1975
|
+
_ref13$textStyle = _ref13.textStyle,
|
|
1976
|
+
valueTextStyle = _ref13$textStyle === void 0 ? null : _ref13$textStyle,
|
|
1977
|
+
_ref13$boxStyle = _ref13.boxStyle,
|
|
1978
|
+
valueBoxStyle = _ref13$boxStyle === void 0 ? null : _ref13$boxStyle;
|
|
1898
1979
|
|
|
1899
1980
|
// Color
|
|
1900
1981
|
var fieldColor = fieldColorName !== null && themeColors !== null ? themeColors[fieldColorName] || null : null;
|
package/lib/components.js
CHANGED
|
@@ -19,6 +19,7 @@ var hooks = require('@micromag/core/hooks');
|
|
|
19
19
|
var contexts = require('@micromag/core/contexts');
|
|
20
20
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
21
21
|
var get = require('lodash/get');
|
|
22
|
+
var queryString = require('query-string');
|
|
22
23
|
var ReactDOM = require('react-dom');
|
|
23
24
|
var isArray = require('lodash/isArray');
|
|
24
25
|
var faAngleDown = require('@fortawesome/free-solid-svg-icons/faAngleDown');
|
|
@@ -76,6 +77,7 @@ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumab
|
|
|
76
77
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
77
78
|
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
|
78
79
|
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
|
|
80
|
+
var queryString__default = /*#__PURE__*/_interopDefaultLegacy(queryString);
|
|
79
81
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
80
82
|
var isArray__default = /*#__PURE__*/_interopDefaultLegacy(isArray);
|
|
81
83
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
@@ -1595,8 +1597,12 @@ var messages = reactIntl.defineMessages({
|
|
|
1595
1597
|
});
|
|
1596
1598
|
var propTypes$x = {
|
|
1597
1599
|
page: PropTypes__default["default"].number,
|
|
1600
|
+
lastPage: PropTypes__default["default"].number,
|
|
1601
|
+
maxPages: PropTypes__default["default"].number,
|
|
1598
1602
|
total: PropTypes__default["default"].number,
|
|
1599
1603
|
url: PropTypes__default["default"].string,
|
|
1604
|
+
query: PropTypes__default["default"].object,
|
|
1605
|
+
// eslint-disable-line react/forbid-prop-types
|
|
1600
1606
|
withPreviousNext: PropTypes__default["default"].bool,
|
|
1601
1607
|
className: PropTypes__default["default"].string,
|
|
1602
1608
|
paginationClassName: PropTypes__default["default"].string,
|
|
@@ -1606,8 +1612,11 @@ var propTypes$x = {
|
|
|
1606
1612
|
};
|
|
1607
1613
|
var defaultProps$x = {
|
|
1608
1614
|
page: 1,
|
|
1615
|
+
lastPage: 1,
|
|
1616
|
+
maxPages: 10,
|
|
1609
1617
|
total: 1,
|
|
1610
1618
|
url: null,
|
|
1619
|
+
query: null,
|
|
1611
1620
|
withPreviousNext: false,
|
|
1612
1621
|
className: null,
|
|
1613
1622
|
paginationClassName: null,
|
|
@@ -1616,9 +1625,12 @@ var defaultProps$x = {
|
|
|
1616
1625
|
onClickPage: null
|
|
1617
1626
|
};
|
|
1618
1627
|
var PaginationMenu = function PaginationMenu(_ref) {
|
|
1619
|
-
var
|
|
1620
|
-
|
|
1628
|
+
var parentPage = _ref.page,
|
|
1629
|
+
parentLastPage = _ref.lastPage,
|
|
1630
|
+
parentMaxPages = _ref.maxPages,
|
|
1631
|
+
parentTotal = _ref.total,
|
|
1621
1632
|
url = _ref.url,
|
|
1633
|
+
query = _ref.query,
|
|
1622
1634
|
withPreviousNext = _ref.withPreviousNext,
|
|
1623
1635
|
className = _ref.className,
|
|
1624
1636
|
paginationClassName = _ref.paginationClassName,
|
|
@@ -1626,11 +1638,38 @@ var PaginationMenu = function PaginationMenu(_ref) {
|
|
|
1626
1638
|
linkClassName = _ref.linkClassName,
|
|
1627
1639
|
onClickPage = _ref.onClickPage;
|
|
1628
1640
|
var getUrl = React.useCallback(function (currentPage) {
|
|
1629
|
-
return url !== null ? "".concat(url).concat(
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1641
|
+
return url !== null ? "".concat(url, "?").concat(queryString__default["default"].stringify(_objectSpread__default["default"](_objectSpread__default["default"]({}, query), {}, {
|
|
1642
|
+
page: currentPage
|
|
1643
|
+
}), {
|
|
1644
|
+
arrayFormat: 'bracket'
|
|
1645
|
+
})) : null;
|
|
1646
|
+
}, [url, query]);
|
|
1647
|
+
|
|
1648
|
+
// TODO: test this
|
|
1649
|
+
// const pages = [...Array(total).keys()].map((it) => it + 1);
|
|
1650
|
+
|
|
1651
|
+
var page = parseInt(parentPage, 10);
|
|
1652
|
+
var total = parseInt(parentTotal, 10);
|
|
1653
|
+
var maxPages = parseInt(parentMaxPages, 10);
|
|
1654
|
+
var lastPage = parseInt(parentLastPage, 10);
|
|
1655
|
+
var pageNumbers = Array.from({
|
|
1656
|
+
length: parseInt(lastPage, 10)
|
|
1657
|
+
}, function (_, i) {
|
|
1658
|
+
return i + 1;
|
|
1633
1659
|
});
|
|
1660
|
+
var stripPages = maxPages !== null && lastPage > maxPages;
|
|
1661
|
+
var startPage = stripPages ? Math.min(Math.max(page - maxPages / 2, 1), lastPage - maxPages) : null;
|
|
1662
|
+
var endPage = stripPages ? startPage + maxPages : null;
|
|
1663
|
+
var strippedPages = stripPages ? pageNumbers.reduce(function (selectedPages, pageNumber) {
|
|
1664
|
+
if (pageNumber === 1 && startPage - 1 > 1) {
|
|
1665
|
+
return [pageNumber, '...'];
|
|
1666
|
+
}
|
|
1667
|
+
if (pageNumber === lastPage && endPage + 1 < lastPage) {
|
|
1668
|
+
return [].concat(_toConsumableArray__default["default"](selectedPages), ['...', pageNumber]);
|
|
1669
|
+
}
|
|
1670
|
+
return pageNumber >= startPage && pageNumber <= endPage ? [].concat(_toConsumableArray__default["default"](selectedPages), [pageNumber]) : selectedPages;
|
|
1671
|
+
}, []) : pageNumbers;
|
|
1672
|
+
var pages = strippedPages.length > 0 ? strippedPages : [1];
|
|
1634
1673
|
return /*#__PURE__*/React__default["default"].createElement("nav", {
|
|
1635
1674
|
className: classNames__default["default"]([styles$p.container, _defineProperty__default["default"]({}, className, className !== null)])
|
|
1636
1675
|
}, /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
@@ -3868,7 +3907,7 @@ var Placeholder = /*#__PURE__*/React__default["default"].memo(ScreenPlaceholder)
|
|
|
3868
3907
|
|
|
3869
3908
|
var styles$6 = {"stack":"micromag-core-screens-preview-stack","stackScreen":"micromag-core-screens-preview-stackScreen","stackItem":"micromag-core-screens-preview-stackItem","screen":"micromag-core-screens-preview-screen"};
|
|
3870
3909
|
|
|
3871
|
-
var _excluded = ["screen", "screenState", "width", "height", "screenWidth", "screenHeight", "className", "withSize"];
|
|
3910
|
+
var _excluded = ["screen", "screenState", "width", "height", "screenWidth", "screenHeight", "className", "withSize", "hidden"];
|
|
3872
3911
|
var propTypes$7 = {
|
|
3873
3912
|
screen: core.PropTypes.component.isRequired,
|
|
3874
3913
|
screenState: PropTypes__default["default"].string,
|
|
@@ -3877,7 +3916,8 @@ var propTypes$7 = {
|
|
|
3877
3916
|
screenWidth: PropTypes__default["default"].number,
|
|
3878
3917
|
screenHeight: PropTypes__default["default"].number,
|
|
3879
3918
|
className: PropTypes__default["default"].string,
|
|
3880
|
-
withSize: PropTypes__default["default"].bool
|
|
3919
|
+
withSize: PropTypes__default["default"].bool,
|
|
3920
|
+
hidden: PropTypes__default["default"].bool
|
|
3881
3921
|
};
|
|
3882
3922
|
var defaultProps$7 = {
|
|
3883
3923
|
screenState: null,
|
|
@@ -3886,7 +3926,8 @@ var defaultProps$7 = {
|
|
|
3886
3926
|
screenWidth: undefined,
|
|
3887
3927
|
screenHeight: undefined,
|
|
3888
3928
|
className: null,
|
|
3889
|
-
withSize: false
|
|
3929
|
+
withSize: false,
|
|
3930
|
+
hidden: false
|
|
3890
3931
|
};
|
|
3891
3932
|
var ScreenPreview = function ScreenPreview(_ref) {
|
|
3892
3933
|
var screen = _ref.screen,
|
|
@@ -3897,6 +3938,7 @@ var ScreenPreview = function ScreenPreview(_ref) {
|
|
|
3897
3938
|
screenHeight = _ref.screenHeight,
|
|
3898
3939
|
className = _ref.className,
|
|
3899
3940
|
withSize = _ref.withSize,
|
|
3941
|
+
hidden = _ref.hidden,
|
|
3900
3942
|
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
3901
3943
|
var screenElement = /*#__PURE__*/React__default["default"].createElement(Screen$1, Object.assign({
|
|
3902
3944
|
screen: screen,
|
|
@@ -3906,13 +3948,14 @@ var ScreenPreview = function ScreenPreview(_ref) {
|
|
|
3906
3948
|
height: !withSize ? height : undefined,
|
|
3907
3949
|
className: classNames__default["default"]([styles$6.screen, _defineProperty__default["default"]({}, className, !withSize)])
|
|
3908
3950
|
}, props));
|
|
3951
|
+
var element = !hidden ? screenElement : /*#__PURE__*/React__default["default"].createElement("div", null);
|
|
3909
3952
|
var screenWithSize = withSize ? /*#__PURE__*/React__default["default"].createElement(ScreenSizer, {
|
|
3910
3953
|
className: className,
|
|
3911
3954
|
screenWidth: screenWidth,
|
|
3912
3955
|
screenHeight: screenHeight,
|
|
3913
3956
|
width: width,
|
|
3914
3957
|
height: height
|
|
3915
|
-
},
|
|
3958
|
+
}, element) : element;
|
|
3916
3959
|
return screenWithSize;
|
|
3917
3960
|
};
|
|
3918
3961
|
ScreenPreview.propTypes = propTypes$7;
|
package/lib/index.js
CHANGED
|
@@ -1183,7 +1183,8 @@ var FieldsManager = /*#__PURE__*/function (_DefinitionsManager) {
|
|
|
1183
1183
|
return FieldsManager;
|
|
1184
1184
|
}(DefinitionsManager);
|
|
1185
1185
|
|
|
1186
|
-
var _excluded$4 = ["medias"]
|
|
1186
|
+
var _excluded$4 = ["medias"],
|
|
1187
|
+
_excluded2$2 = ["medias"];
|
|
1187
1188
|
var MediasParser = /*#__PURE__*/function () {
|
|
1188
1189
|
function MediasParser(_ref) {
|
|
1189
1190
|
var fieldsManager = _ref.fieldsManager,
|
|
@@ -1192,8 +1193,23 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1192
1193
|
this.fieldsManager = fieldsManager;
|
|
1193
1194
|
this.screensManager = screensManager;
|
|
1194
1195
|
this.fieldsPatternCache = {};
|
|
1196
|
+
this.parsedThemesCache = {};
|
|
1195
1197
|
}
|
|
1196
1198
|
_createClass__default["default"](MediasParser, [{
|
|
1199
|
+
key: "getParsedStoryTheme",
|
|
1200
|
+
value: function getParsedStoryTheme(storyId, theme) {
|
|
1201
|
+
if (typeof this.parsedThemesCache[storyId] === 'undefined') {
|
|
1202
|
+
var _this$toPath = this.toPath(theme),
|
|
1203
|
+
themeMedias = _this$toPath.medias,
|
|
1204
|
+
newTheme = _objectWithoutProperties__default["default"](_this$toPath, _excluded$4);
|
|
1205
|
+
this.parsedThemesCache[storyId] = {
|
|
1206
|
+
themeMedias: themeMedias,
|
|
1207
|
+
newTheme: newTheme
|
|
1208
|
+
};
|
|
1209
|
+
}
|
|
1210
|
+
return this.parsedThemesCache[storyId];
|
|
1211
|
+
}
|
|
1212
|
+
}, {
|
|
1197
1213
|
key: "getFieldsPatternByScreen",
|
|
1198
1214
|
value: function getFieldsPatternByScreen(type) {
|
|
1199
1215
|
if (typeof this.fieldsPatternCache[type] === 'undefined') {
|
|
@@ -1214,6 +1230,8 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1214
1230
|
return story;
|
|
1215
1231
|
}
|
|
1216
1232
|
var _ref3 = story || {},
|
|
1233
|
+
_ref3$id = _ref3.id,
|
|
1234
|
+
storyId = _ref3$id === void 0 ? null : _ref3$id,
|
|
1217
1235
|
_ref3$theme = _ref3.theme,
|
|
1218
1236
|
theme = _ref3$theme === void 0 ? null : _ref3$theme,
|
|
1219
1237
|
_ref3$components = _ref3.components,
|
|
@@ -1237,9 +1255,9 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1237
1255
|
newComponents = _components$reduce.components,
|
|
1238
1256
|
medias = _components$reduce.medias;
|
|
1239
1257
|
if (theme !== null) {
|
|
1240
|
-
var _this$
|
|
1241
|
-
themeMedias = _this$
|
|
1242
|
-
newTheme = _objectWithoutProperties__default["default"](_this$
|
|
1258
|
+
var _this$getParsedStoryT = this.getParsedStoryTheme(storyId, theme),
|
|
1259
|
+
themeMedias = _this$getParsedStoryT.medias,
|
|
1260
|
+
newTheme = _objectWithoutProperties__default["default"](_this$getParsedStoryT, _excluded2$2);
|
|
1243
1261
|
return medias !== null || themeMedias !== null ? _objectSpread__default["default"](_objectSpread__default["default"]({}, story), {}, {
|
|
1244
1262
|
theme: newTheme,
|
|
1245
1263
|
components: newComponents,
|
|
@@ -1668,6 +1686,7 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1668
1686
|
_classCallCheck__default["default"](this, ThemeParser);
|
|
1669
1687
|
this.screensManager = screensManager;
|
|
1670
1688
|
this.definitionCache = {};
|
|
1689
|
+
this.fieldsCache = {};
|
|
1671
1690
|
}
|
|
1672
1691
|
_createClass__default["default"](ThemeParser, [{
|
|
1673
1692
|
key: "getDefinitionByScreen",
|
|
@@ -1684,6 +1703,54 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1684
1703
|
}
|
|
1685
1704
|
return this.definitionCache[type];
|
|
1686
1705
|
}
|
|
1706
|
+
}, {
|
|
1707
|
+
key: "getFieldsForDefinition",
|
|
1708
|
+
value: function getFieldsForDefinition(definition) {
|
|
1709
|
+
var _ref2 = definition || {},
|
|
1710
|
+
_ref2$id = _ref2.id,
|
|
1711
|
+
definitionId = _ref2$id === void 0 ? null : _ref2$id,
|
|
1712
|
+
_ref2$fields = _ref2.fields,
|
|
1713
|
+
fields = _ref2$fields === void 0 ? [] : _ref2$fields,
|
|
1714
|
+
_ref2$states = _ref2.states,
|
|
1715
|
+
states = _ref2$states === void 0 ? [] : _ref2$states;
|
|
1716
|
+
if (typeof this.fieldsCache[definitionId] === 'undefined') {
|
|
1717
|
+
if (states === null || states.length === 0) {
|
|
1718
|
+
this.fieldsCache[definitionId] = {
|
|
1719
|
+
fields: fields
|
|
1720
|
+
};
|
|
1721
|
+
} else {
|
|
1722
|
+
// TODO: test this
|
|
1723
|
+
var finalFields = fields;
|
|
1724
|
+
var repetableStates = [];
|
|
1725
|
+
if (states !== null && states.length > 0) {
|
|
1726
|
+
var nonRepetableStates = states.filter(function (_ref3) {
|
|
1727
|
+
var _ref3$repeatable = _ref3.repeatable,
|
|
1728
|
+
repeatable = _ref3$repeatable === void 0 ? false : _ref3$repeatable;
|
|
1729
|
+
return repeatable === false;
|
|
1730
|
+
});
|
|
1731
|
+
repetableStates = states.filter(function (_ref4) {
|
|
1732
|
+
var _ref4$repeatable = _ref4.repeatable,
|
|
1733
|
+
repeatable = _ref4$repeatable === void 0 ? false : _ref4$repeatable;
|
|
1734
|
+
return repeatable === true;
|
|
1735
|
+
});
|
|
1736
|
+
finalFields = nonRepetableStates.reduce(function (acc, it) {
|
|
1737
|
+
var _ref5 = it || {},
|
|
1738
|
+
_ref5$fields = _ref5.fields,
|
|
1739
|
+
itemFields = _ref5$fields === void 0 ? [] : _ref5$fields;
|
|
1740
|
+
if (itemFields !== null && itemFields.length > 0) {
|
|
1741
|
+
return acc.concat(itemFields);
|
|
1742
|
+
}
|
|
1743
|
+
return acc;
|
|
1744
|
+
}, finalFields);
|
|
1745
|
+
}
|
|
1746
|
+
this.fieldsCache[definitionId] = {
|
|
1747
|
+
fields: finalFields,
|
|
1748
|
+
repetableStates: repetableStates
|
|
1749
|
+
};
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
return this.fieldsCache[definitionId];
|
|
1753
|
+
}
|
|
1687
1754
|
}, {
|
|
1688
1755
|
key: "parse",
|
|
1689
1756
|
value: function parse(story) {
|
|
@@ -1691,11 +1758,11 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1691
1758
|
if (story === null) {
|
|
1692
1759
|
return story;
|
|
1693
1760
|
}
|
|
1694
|
-
var
|
|
1695
|
-
|
|
1696
|
-
theme =
|
|
1697
|
-
|
|
1698
|
-
components =
|
|
1761
|
+
var _ref6 = story || {},
|
|
1762
|
+
_ref6$theme = _ref6.theme,
|
|
1763
|
+
theme = _ref6$theme === void 0 ? null : _ref6$theme,
|
|
1764
|
+
_ref6$components = _ref6.components,
|
|
1765
|
+
components = _ref6$components === void 0 ? null : _ref6$components;
|
|
1699
1766
|
if (theme === null || components === null) {
|
|
1700
1767
|
return story;
|
|
1701
1768
|
}
|
|
@@ -1709,6 +1776,33 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1709
1776
|
themeTextStyles = _theme$textStyles === void 0 ? null : _theme$textStyles,
|
|
1710
1777
|
_theme$boxStyles = theme.boxStyles,
|
|
1711
1778
|
themeBoxStyles = _theme$boxStyles === void 0 ? null : _theme$boxStyles;
|
|
1779
|
+
|
|
1780
|
+
// Speed test
|
|
1781
|
+
// const newComponents = [...components];
|
|
1782
|
+
// for (let index = 0; index < components.length; index += 1) {
|
|
1783
|
+
// const screen = components[index] || {};
|
|
1784
|
+
// const { type } = screen;
|
|
1785
|
+
// const { definition, themeScreen } = this.getDefinitionByScreen(type, themeComponents);
|
|
1786
|
+
// const newScreen = this.parseScreen(
|
|
1787
|
+
// definition,
|
|
1788
|
+
// screen,
|
|
1789
|
+
// themeScreen,
|
|
1790
|
+
// themeBackground,
|
|
1791
|
+
// themeColors,
|
|
1792
|
+
// themeTextStyles,
|
|
1793
|
+
// themeBoxStyles,
|
|
1794
|
+
// );
|
|
1795
|
+
|
|
1796
|
+
// if (newScreen !== screen || themeScreen !== null) {
|
|
1797
|
+
// newComponents[index] = {
|
|
1798
|
+
// ...themeScreen,
|
|
1799
|
+
// ...newScreen,
|
|
1800
|
+
// };
|
|
1801
|
+
// }
|
|
1802
|
+
// }
|
|
1803
|
+
// story.components = newComponents;
|
|
1804
|
+
// return story;
|
|
1805
|
+
|
|
1712
1806
|
var newComponents = components.reduce(function (currentComponents, screen, index) {
|
|
1713
1807
|
var type = screen.type;
|
|
1714
1808
|
var _this$getDefinitionBy = _this.getDefinitionByScreen(type, themeComponents),
|
|
@@ -1727,36 +1821,11 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1727
1821
|
key: "parseScreen",
|
|
1728
1822
|
value: function parseScreen(definition, value, themeValue, themeBackground, themeColors, themeTextStyles, themeBoxStyles) {
|
|
1729
1823
|
var _this2 = this;
|
|
1730
|
-
var
|
|
1731
|
-
|
|
1732
|
-
fields =
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
// TODO: test this
|
|
1737
|
-
var finalFields = fields;
|
|
1738
|
-
var repetableStates = [];
|
|
1739
|
-
if (states !== null && states.length > 0) {
|
|
1740
|
-
var nonRepetableStates = states.filter(function (_ref4) {
|
|
1741
|
-
var _ref4$repeatable = _ref4.repeatable,
|
|
1742
|
-
repeatable = _ref4$repeatable === void 0 ? false : _ref4$repeatable;
|
|
1743
|
-
return repeatable === false;
|
|
1744
|
-
});
|
|
1745
|
-
repetableStates = states.filter(function (_ref5) {
|
|
1746
|
-
var _ref5$repeatable = _ref5.repeatable,
|
|
1747
|
-
repeatable = _ref5$repeatable === void 0 ? false : _ref5$repeatable;
|
|
1748
|
-
return repeatable === true;
|
|
1749
|
-
});
|
|
1750
|
-
finalFields = nonRepetableStates.reduce(function (acc, it) {
|
|
1751
|
-
var _ref6 = it || {},
|
|
1752
|
-
_ref6$fields = _ref6.fields,
|
|
1753
|
-
itemFields = _ref6$fields === void 0 ? [] : _ref6$fields;
|
|
1754
|
-
if (itemFields !== null && itemFields.length > 0) {
|
|
1755
|
-
return acc.concat(itemFields);
|
|
1756
|
-
}
|
|
1757
|
-
return acc;
|
|
1758
|
-
}, finalFields);
|
|
1759
|
-
}
|
|
1824
|
+
var _this$getFieldsForDef = this.getFieldsForDefinition(definition),
|
|
1825
|
+
_this$getFieldsForDef2 = _this$getFieldsForDef.fields,
|
|
1826
|
+
fields = _this$getFieldsForDef2 === void 0 ? null : _this$getFieldsForDef2,
|
|
1827
|
+
_this$getFieldsForDef3 = _this$getFieldsForDef.repetableStates,
|
|
1828
|
+
repetableStates = _this$getFieldsForDef3 === void 0 ? null : _this$getFieldsForDef3;
|
|
1760
1829
|
var newThemeValue = themeValue === null && themeBackground !== null ? {} : themeValue;
|
|
1761
1830
|
if (themeBackground !== null && typeof newThemeValue.background !== 'undefined') {
|
|
1762
1831
|
newThemeValue.background = _objectSpread__default["default"](_objectSpread__default["default"]({}, themeBackground), newThemeValue.background);
|
|
@@ -1765,23 +1834,33 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1765
1834
|
}
|
|
1766
1835
|
var newScreenValue = Object.keys(value).reduce(function (currentValue, key) {
|
|
1767
1836
|
var repetableState = null;
|
|
1768
|
-
if (repetableStates.length > 0) {
|
|
1837
|
+
if (repetableStates !== null && repetableStates.length > 0) {
|
|
1769
1838
|
repetableState = repetableStates.find(function (_ref7) {
|
|
1770
1839
|
var _ref7$id = _ref7.id,
|
|
1771
1840
|
stateId = _ref7$id === void 0 ? null : _ref7$id;
|
|
1772
1841
|
return stateId !== null && stateId === key;
|
|
1773
1842
|
}) || null;
|
|
1774
1843
|
}
|
|
1775
|
-
var fieldDefinition =
|
|
1844
|
+
var fieldDefinition = (fields || null).find(function (it) {
|
|
1776
1845
|
return it.name === key;
|
|
1777
1846
|
}) || repetableState || {};
|
|
1778
1847
|
var fieldValue = value[key];
|
|
1779
1848
|
var fieldThemeValue = newThemeValue !== null ? newThemeValue[key] || null : null;
|
|
1780
1849
|
|
|
1850
|
+
// Try for early return
|
|
1851
|
+
var _ref8 = fieldDefinition || {},
|
|
1852
|
+
_ref8$theme = _ref8.theme,
|
|
1853
|
+
theme = _ref8$theme === void 0 ? null : _ref8$theme;
|
|
1854
|
+
if ((theme === null || !isObject__default["default"](theme)) && fields === null) {
|
|
1855
|
+
return _objectSpread__default["default"](_objectSpread__default["default"]({}, currentValue), {}, _defineProperty__default["default"]({}, key, fieldValue));
|
|
1856
|
+
}
|
|
1857
|
+
|
|
1781
1858
|
// console.log('start', key, fieldValue);
|
|
1782
1859
|
var newFieldValue = _this2.parseField(fieldValue, fieldDefinition, fieldThemeValue, themeColors, themeTextStyles, themeBoxStyles);
|
|
1783
1860
|
// console.log('result', newFieldValue);
|
|
1784
1861
|
|
|
1862
|
+
// const newFieldValue = fieldValue;
|
|
1863
|
+
|
|
1785
1864
|
// Only switch field if it has changed
|
|
1786
1865
|
return newFieldValue !== fieldValue ? _objectSpread__default["default"](_objectSpread__default["default"]({}, currentValue), {}, _defineProperty__default["default"]({}, key, newFieldValue)) : currentValue;
|
|
1787
1866
|
}, value);
|
|
@@ -1791,12 +1870,14 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1791
1870
|
// eslint-disable-next-line class-methods-use-this
|
|
1792
1871
|
}, {
|
|
1793
1872
|
key: "parseField",
|
|
1794
|
-
value: function parseField(value,
|
|
1873
|
+
value: function parseField(value, fieldDefinition, themeValue, themeColors, themeTextStyles, themeBoxStyles) {
|
|
1795
1874
|
var _this3 = this;
|
|
1796
|
-
var
|
|
1797
|
-
fieldTheme =
|
|
1798
|
-
|
|
1799
|
-
definitionFields =
|
|
1875
|
+
var _fieldDefinition$them = fieldDefinition.theme,
|
|
1876
|
+
fieldTheme = _fieldDefinition$them === void 0 ? null : _fieldDefinition$them,
|
|
1877
|
+
_fieldDefinition$fiel = fieldDefinition.fields,
|
|
1878
|
+
definitionFields = _fieldDefinition$fiel === void 0 ? null : _fieldDefinition$fiel;
|
|
1879
|
+
|
|
1880
|
+
// There are sub-fields in this definition
|
|
1800
1881
|
if (definitionFields !== null && value !== null) {
|
|
1801
1882
|
return isArray__default["default"](value) ? value.map(function (innerFieldValue) {
|
|
1802
1883
|
if (innerFieldValue === null) {
|
|
@@ -1819,13 +1900,13 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1819
1900
|
if (!isObject__default["default"](innerField[innerFieldName])) {
|
|
1820
1901
|
return newInnerField;
|
|
1821
1902
|
}
|
|
1822
|
-
var
|
|
1823
|
-
|
|
1824
|
-
innerFieldTextStyle =
|
|
1825
|
-
|
|
1826
|
-
innerFieldColor =
|
|
1827
|
-
|
|
1828
|
-
innerFieldBoxStyle =
|
|
1903
|
+
var _ref9 = fieldTheme[innerFieldName] || {},
|
|
1904
|
+
_ref9$textStyle = _ref9.textStyle,
|
|
1905
|
+
innerFieldTextStyle = _ref9$textStyle === void 0 ? null : _ref9$textStyle,
|
|
1906
|
+
_ref9$color = _ref9.color,
|
|
1907
|
+
innerFieldColor = _ref9$color === void 0 ? null : _ref9$color,
|
|
1908
|
+
_ref9$boxStyle = _ref9.boxStyle,
|
|
1909
|
+
innerFieldBoxStyle = _ref9$boxStyle === void 0 ? null : _ref9$boxStyle;
|
|
1829
1910
|
|
|
1830
1911
|
// Early return, no theme
|
|
1831
1912
|
if (innerFieldTextStyle === null && innerFieldColor === null && innerFieldBoxStyle === null) {
|
|
@@ -1865,9 +1946,9 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1865
1946
|
var innerDefinition = isArray__default["default"](fieldsOrDefinition) ? fieldsOrDefinition.find(function (it) {
|
|
1866
1947
|
return it.name === innerFieldName;
|
|
1867
1948
|
}) || null : fieldsOrDefinition;
|
|
1868
|
-
var
|
|
1869
|
-
|
|
1870
|
-
idfTheme =
|
|
1949
|
+
var _ref10 = innerDefinition || {},
|
|
1950
|
+
_ref10$theme = _ref10.theme,
|
|
1951
|
+
idfTheme = _ref10$theme === void 0 ? null : _ref10$theme;
|
|
1871
1952
|
var innerValue = value[innerFieldName];
|
|
1872
1953
|
|
|
1873
1954
|
// For items fields
|
|
@@ -1898,14 +1979,14 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1898
1979
|
var _this5 = this;
|
|
1899
1980
|
if (isObject__default["default"](initialValue) || isObject__default["default"](fieldTheme)) {
|
|
1900
1981
|
var value = initialValue || null;
|
|
1901
|
-
var
|
|
1902
|
-
|
|
1903
|
-
fieldTextStyleName =
|
|
1904
|
-
|
|
1905
|
-
fieldColorName =
|
|
1906
|
-
|
|
1907
|
-
fieldBoxStyleName =
|
|
1908
|
-
otherProps = _objectWithoutProperties__default["default"](
|
|
1982
|
+
var _ref11 = fieldTheme || {},
|
|
1983
|
+
_ref11$textStyle = _ref11.textStyle,
|
|
1984
|
+
fieldTextStyleName = _ref11$textStyle === void 0 ? null : _ref11$textStyle,
|
|
1985
|
+
_ref11$color = _ref11.color,
|
|
1986
|
+
fieldColorName = _ref11$color === void 0 ? null : _ref11$color,
|
|
1987
|
+
_ref11$boxStyle = _ref11.boxStyle,
|
|
1988
|
+
fieldBoxStyleName = _ref11$boxStyle === void 0 ? null : _ref11$boxStyle,
|
|
1989
|
+
otherProps = _objectWithoutProperties__default["default"](_ref11, _excluded$1);
|
|
1909
1990
|
if (fieldTextStyleName === null && fieldColorName === null && fieldBoxStyleName === null && isEmpty__default["default"](otherProps) && !isObject__default["default"](fieldTheme)) {
|
|
1910
1991
|
return value;
|
|
1911
1992
|
}
|
|
@@ -1917,11 +1998,11 @@ var ThemeParser = /*#__PURE__*/function () {
|
|
|
1917
1998
|
return _objectSpread__default["default"](_objectSpread__default["default"]({}, newObject), newValue !== null ? _defineProperty__default["default"]({}, key, newValue) : null);
|
|
1918
1999
|
}, {});
|
|
1919
2000
|
}
|
|
1920
|
-
var
|
|
1921
|
-
|
|
1922
|
-
valueTextStyle =
|
|
1923
|
-
|
|
1924
|
-
valueBoxStyle =
|
|
2001
|
+
var _ref13 = value || {},
|
|
2002
|
+
_ref13$textStyle = _ref13.textStyle,
|
|
2003
|
+
valueTextStyle = _ref13$textStyle === void 0 ? null : _ref13$textStyle,
|
|
2004
|
+
_ref13$boxStyle = _ref13.boxStyle,
|
|
2005
|
+
valueBoxStyle = _ref13$boxStyle === void 0 ? null : _ref13$boxStyle;
|
|
1925
2006
|
|
|
1926
2007
|
// Color
|
|
1927
2008
|
var fieldColor = fieldColorName !== null && themeColors !== null ? themeColors[fieldColorName] || null : null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.423",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
"lodash": "^4.17.21",
|
|
120
120
|
"param-case": "^3.0.4",
|
|
121
121
|
"prop-types": "^15.7.2",
|
|
122
|
+
"query-string": "^6.13.7",
|
|
122
123
|
"raf": "^3.4.1",
|
|
123
124
|
"react-helmet": "^6.1.0",
|
|
124
125
|
"react-intl": "^5.12.1",
|
|
@@ -136,5 +137,5 @@
|
|
|
136
137
|
"access": "public",
|
|
137
138
|
"registry": "https://registry.npmjs.org/"
|
|
138
139
|
},
|
|
139
|
-
"gitHead": "
|
|
140
|
+
"gitHead": "c02e69c23fd099d5684bc0b69e02f19825cecfd2"
|
|
140
141
|
}
|