@react-pdf/stylesheet 2.1.0 → 3.2.0

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/CHANGELOG.md CHANGED
@@ -1,20 +1,45 @@
1
1
  # @react-pdf/stylesheet
2
2
 
3
- ## 2.1.0
3
+ ## 3.2.0
4
+
4
5
  ### Minor Changes
5
6
 
7
+ - [#1892](https://github.com/diegomura/react-pdf/pull/1892) [`035d3f8`](https://github.com/diegomura/react-pdf/commit/035d3f8d24fa4f4af9f350950d81b51547858367) Thanks [@diegomura](https://github.com/diegomura)! - feat: add skew transformation support
6
8
 
9
+ ## 3.1.0
7
10
 
8
- - [#1535](https://github.com/diegomura/react-pdf/pull/1535) [`1f0eb6e`](https://github.com/diegomura/react-pdf/commit/1f0eb6e0d4e75480de6745a204924d5075859db7) Thanks [@jeetiss](https://github.com/jeetiss)! - fixed `margin: auto` parsing
11
+ ### Minor Changes
9
12
 
13
+ - [#1869](https://github.com/diegomura/react-pdf/pull/1869) [`5d2c308`](https://github.com/diegomura/react-pdf/commit/5d2c3088cf438a8abf1038b14a21117fecf59d57) Thanks [@diegomura](https://github.com/diegomura)! - feat: variable dpi
10
14
 
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies [[`1411d16`](https://github.com/diegomura/react-pdf/commit/1411d162e04ca237bad93729695c363fdf4bdbeb), [`4fadb48`](https://github.com/diegomura/react-pdf/commit/4fadb48983d7269452f89f80c7e341ece859aaee), [`ce8762f`](https://github.com/diegomura/react-pdf/commit/ce8762f6de5c796e69ec5a225c7f3ff9c619a960), [`5d2c308`](https://github.com/diegomura/react-pdf/commit/5d2c3088cf438a8abf1038b14a21117fecf59d57)]:
18
+ - @react-pdf/types@2.1.0
11
19
 
12
- - [#1654](https://github.com/diegomura/react-pdf/pull/1654) [`ccf3bf2`](https://github.com/diegomura/react-pdf/commit/ccf3bf22867a9bd49668cdd3543ec32492a40e4b) Thanks [@jeetiss](https://github.com/jeetiss)! - added `@babel/runtime` to dependencies
20
+ ## 3.0.0
13
21
 
22
+ ### Major Changes
23
+
24
+ - [#1829](https://github.com/diegomura/react-pdf/pull/1829) [`5458a00`](https://github.com/diegomura/react-pdf/commit/5458a00979d883341c6df094243cae859344d2b9) Thanks [@diegomura](https://github.com/diegomura)! - refactor: remove ramda from stylesheet package
14
25
 
15
26
  ### Patch Changes
16
27
 
28
+ - [#1838](https://github.com/diegomura/react-pdf/pull/1838) [`9bdb5c9`](https://github.com/diegomura/react-pdf/commit/9bdb5c934a822340754cd4c892d399f91f6218de) Thanks [@diegomura](https://github.com/diegomura)! - feat: create fns package
29
+
30
+ - Updated dependencies [[`9bdb5c9`](https://github.com/diegomura/react-pdf/commit/9bdb5c934a822340754cd4c892d399f91f6218de), [`fe0f214`](https://github.com/diegomura/react-pdf/commit/fe0f214dbbf2f632b852ebfe65f886ecc4dd6953)]:
31
+ - @react-pdf/fns@1.0.0
32
+ - @react-pdf/types@2.0.9
17
33
 
34
+ ## 2.1.0
35
+
36
+ ### Minor Changes
37
+
38
+ - [#1535](https://github.com/diegomura/react-pdf/pull/1535) [`1f0eb6e`](https://github.com/diegomura/react-pdf/commit/1f0eb6e0d4e75480de6745a204924d5075859db7) Thanks [@jeetiss](https://github.com/jeetiss)! - fixed `margin: auto` parsing
39
+
40
+ * [#1654](https://github.com/diegomura/react-pdf/pull/1654) [`ccf3bf2`](https://github.com/diegomura/react-pdf/commit/ccf3bf22867a9bd49668cdd3543ec32492a40e4b) Thanks [@jeetiss](https://github.com/jeetiss)! - added `@babel/runtime` to dependencies
41
+
42
+ ### Patch Changes
18
43
 
19
44
  - [#1581](https://github.com/diegomura/react-pdf/pull/1581) [`04449ab`](https://github.com/diegomura/react-pdf/commit/04449ab352db0cca2155024dd3e8c690e42193ca) Thanks [@jeetiss](https://github.com/jeetiss)! - added changelog with changesets
20
45
 
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  exports.__esModule = true;
6
4
  exports.default = void 0;
7
-
8
- var R = _interopRequireWildcard(require("ramda"));
9
-
10
5
  var BORDER_SHORTHAND_REGEX = /(-?\d+(\.\d+)?(px|in|mm|cm|pt|vw|vh|px)?)\s(\S+)\s(.+)/;
11
- var matchBorderShorthand = R.match(BORDER_SHORTHAND_REGEX);
6
+
7
+ var matchBorderShorthand = function matchBorderShorthand(value) {
8
+ return value.match(BORDER_SHORTHAND_REGEX) || [];
9
+ };
12
10
 
13
11
  var expandBorders = function expandBorders(key, value) {
14
12
  var match = matchBorderShorthand("" + value);
@@ -1,32 +1,19 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  exports.__esModule = true;
6
4
  exports.default = void 0;
7
5
 
8
- var R = _interopRequireWildcard(require("ramda"));
6
+ var _fns = require("@react-pdf/fns");
9
7
 
10
- var isNotArray = R.complement(R.is(Array));
11
- var castArray = R.when(isNotArray, function (v) {
12
- return [v];
13
- });
14
8
  /**
15
9
  * Remove nil values from array
16
10
  *
17
11
  * @param {Array} array
18
12
  * @returns {Array} array without nils
19
13
  */
20
-
21
- var compact = R.filter(Boolean);
22
- /**
23
- * Checks if value is array
24
- *
25
- * @param {any} value
26
- * @returns {Boolean} is value an array
27
- */
28
-
29
- var isArray = R.is(Array);
14
+ var compact = function compact(array) {
15
+ return array.filter(Boolean);
16
+ };
30
17
  /**
31
18
  * Merges style objects array
32
19
  *
@@ -34,9 +21,10 @@ var isArray = R.is(Array);
34
21
  * @returns {Object} merged style object
35
22
  */
36
23
 
24
+
37
25
  var mergeStyles = function mergeStyles(styles) {
38
26
  return styles.reduce(function (acc, style) {
39
- var s = isArray(style) ? flatten(style) : style;
27
+ var s = Array.isArray(style) ? flatten(style) : style;
40
28
  Object.keys(s).forEach(function (key) {
41
29
  if (s[key] !== null && s[key] !== undefined) {
42
30
  acc[key] = s[key];
@@ -53,6 +41,6 @@ var mergeStyles = function mergeStyles(styles) {
53
41
  */
54
42
 
55
43
 
56
- var flatten = R.compose(mergeStyles, compact, castArray);
44
+ var flatten = (0, _fns.compose)(mergeStyles, compact, _fns.castArray);
57
45
  var _default = flatten;
58
46
  exports.default = _default;
package/lib/index.js CHANGED
@@ -2,12 +2,10 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  exports.__esModule = true;
8
6
  exports.transformColor = exports.processTransform = exports.default = void 0;
9
7
 
10
- var R = _interopRequireWildcard(require("ramda"));
8
+ var _fns = require("@react-pdf/fns");
11
9
 
12
10
  var _expand = _interopRequireDefault(require("./expand"));
13
11
 
@@ -33,10 +31,13 @@ exports.processTransform = _transform2.default;
33
31
  * @returns {Object} resolved style object
34
32
  */
35
33
  var resolveStyles = function resolveStyles(container, style) {
36
- return R.compose((0, _transform.default)(container), _expand.default, (0, _mediaQueries.default)(container), _flatten.default)(style);
37
- }; // Utils exported for SVG processing
34
+ var computeMediaQueries = function computeMediaQueries(value) {
35
+ return (0, _mediaQueries.default)(container, value);
36
+ };
38
37
 
38
+ return (0, _fns.compose)((0, _transform.default)(container), _expand.default, computeMediaQueries, _flatten.default)(style);
39
+ }; // Utils exported for SVG processing
39
40
 
40
- var _default = R.curryN(2, resolveStyles);
41
41
 
42
+ var _default = resolveStyles;
42
43
  exports.default = _default;
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
4
 
7
5
  exports.__esModule = true;
@@ -9,8 +7,6 @@ exports.default = void 0;
9
7
 
10
8
  var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
9
 
12
- var R = _interopRequireWildcard(require("ramda"));
13
-
14
10
  var _mediaEngine = _interopRequireDefault(require("media-engine"));
15
11
 
16
12
  /**
@@ -33,6 +29,5 @@ var resolveMediaQueries = function resolveMediaQueries(container, styles) {
33
29
  }, {});
34
30
  };
35
31
 
36
- var _default = R.curryN(2, resolveMediaQueries);
37
-
32
+ var _default = resolveMediaQueries;
38
33
  exports.default = _default;
@@ -2,21 +2,20 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
-
7
5
  exports.__esModule = true;
8
6
  exports.default = void 0;
9
7
 
10
- var R = _interopRequireWildcard(require("ramda"));
11
-
12
8
  var _hslToHex = _interopRequireDefault(require("hsl-to-hex"));
13
9
 
14
10
  var _colorString = _interopRequireDefault(require("color-string"));
15
11
 
16
- var isRgb = R.test(/rgb/g);
17
- var isRgba = R.test(/rgba/g);
18
- var isHsl = R.test(/hsl/g);
19
- var isHsla = R.test(/hsla/g);
12
+ var isRgb = function isRgb(value) {
13
+ return /rgba?/g.test(value);
14
+ };
15
+
16
+ var isHsl = function isHsl(value) {
17
+ return /hsla?/g.test(value);
18
+ };
20
19
  /**
21
20
  * Transform rgb color to hexa
22
21
  *
@@ -24,7 +23,12 @@ var isHsla = R.test(/hsla/g);
24
23
  * @returns {Object} transformed value
25
24
  */
26
25
 
27
- var parseRgb = R.compose(_colorString.default.to.hex, _colorString.default.get.rgb);
26
+
27
+ var parseRgb = function parseRgb(value) {
28
+ var rgb = _colorString.default.get.rgb(value);
29
+
30
+ return _colorString.default.to.hex(rgb);
31
+ };
28
32
  /**
29
33
  * Transform Hsl color to hexa
30
34
  *
@@ -32,7 +36,14 @@ var parseRgb = R.compose(_colorString.default.to.hex, _colorString.default.get.r
32
36
  * @returns {Object} transformed value
33
37
  */
34
38
 
35
- var parseHsl = R.compose(R.toUpper, R.apply(_hslToHex.default), R.map(Math.round), _colorString.default.get.hsl);
39
+
40
+ var parseHsl = function parseHsl(value) {
41
+ var hsl = _colorString.default.get.hsl(value).map(Math.round);
42
+
43
+ var hex = _hslToHex.default.apply(void 0, hsl);
44
+
45
+ return hex.toUpperCase();
46
+ };
36
47
  /**
37
48
  * Transform given color to hexa
38
49
  *
@@ -40,8 +51,11 @@ var parseHsl = R.compose(R.toUpper, R.apply(_hslToHex.default), R.map(Math.round
40
51
  * @returns {Object} transformed value
41
52
  */
42
53
 
54
+
43
55
  var transformColor = function transformColor(value) {
44
- return R.cond([[isRgba, parseRgb], [isRgb, parseRgb], [isHsla, parseHsl], [isHsl, parseHsl], [R.T, R.always(value)]])(value);
56
+ if (isRgb(value)) return parseRgb(value);
57
+ if (isHsl(value)) return parseHsl(value);
58
+ return value;
45
59
  };
46
60
 
47
61
  var _default = transformColor;
@@ -34,6 +34,17 @@ var parse = function parse(transformString) {
34
34
  return parsed;
35
35
  };
36
36
 
37
+ var parseAngle = function parseAngle(value) {
38
+ var unitsRegexp = /(-?\d*\.?\d*)(\w*)?/i;
39
+
40
+ var _unitsRegexp$exec = unitsRegexp.exec(value),
41
+ angle = _unitsRegexp$exec[1],
42
+ unit = _unitsRegexp$exec[2];
43
+
44
+ var number = Number.parseFloat(angle);
45
+ return unit === 'rad' ? number * 180 / Math.PI : number;
46
+ };
47
+
37
48
  var normalizeTransformOperation = function normalizeTransformOperation(_ref) {
38
49
  var operation = _ref.operation,
39
50
  value = _ref.value;
@@ -72,16 +83,9 @@ var normalizeTransformOperation = function normalizeTransformOperation(_ref) {
72
83
 
73
84
  case 'rotate':
74
85
  {
75
- var unitsRegexp = /(-?\d*\.?\d*)(\w*)?/i;
76
-
77
- var _unitsRegexp$exec = unitsRegexp.exec(value),
78
- angle = _unitsRegexp$exec[1],
79
- unit = _unitsRegexp$exec[2];
80
-
81
- var number = Number.parseFloat(angle);
82
86
  return {
83
87
  operation: 'rotate',
84
- value: [unit === 'rad' ? number * 180 / Math.PI : number]
88
+ value: [parseAngle(value)]
85
89
  };
86
90
  }
87
91
 
@@ -111,6 +115,30 @@ var normalizeTransformOperation = function normalizeTransformOperation(_ref) {
111
115
  };
112
116
  }
113
117
 
118
+ case 'skew':
119
+ {
120
+ return {
121
+ operation: 'skew',
122
+ value: value.map(parseAngle)
123
+ };
124
+ }
125
+
126
+ case 'skewX':
127
+ {
128
+ return {
129
+ operation: 'skew',
130
+ value: [parseAngle(value), 0]
131
+ };
132
+ }
133
+
134
+ case 'skewY':
135
+ {
136
+ return {
137
+ operation: 'skew',
138
+ value: [0, parseAngle(value)]
139
+ };
140
+ }
141
+
114
142
  default:
115
143
  {
116
144
  return {
@@ -2,17 +2,13 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
- var DPI = 72; // 72pt per inch.
6
5
 
7
- var MM_FACTOR = 1 / 25.4 * DPI;
8
- var CM_FACTOR = 1 / 2.54 * DPI;
9
6
  /**
10
7
  * Parses scalar value in value and unit pairs
11
8
  *
12
9
  * @param {String} scalar value
13
10
  * @returns {Object} parsed value
14
11
  */
15
-
16
12
  var parseValue = function parseValue(value) {
17
13
  var match = /^(-?\d*\.?\d+)(in|mm|cm|pt|vh|vw|px)?$/g.exec(value);
18
14
  return match ? {
@@ -34,16 +30,19 @@ var parseValue = function parseValue(value) {
34
30
 
35
31
  var transformUnit = function transformUnit(container, value) {
36
32
  var scalar = parseValue(value);
33
+ var dpi = container.dpi || 72;
34
+ var mmFactor = 1 / 25.4 * dpi;
35
+ var cmFactor = 1 / 2.54 * dpi;
37
36
 
38
37
  switch (scalar.unit) {
39
38
  case 'in':
40
- return scalar.value * DPI;
39
+ return scalar.value * dpi;
41
40
 
42
41
  case 'mm':
43
- return scalar.value * MM_FACTOR;
42
+ return scalar.value * mmFactor;
44
43
 
45
44
  case 'cm':
46
- return scalar.value * CM_FACTOR;
45
+ return scalar.value * cmFactor;
47
46
 
48
47
  case 'vh':
49
48
  return scalar.value * (container.height / 100);
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  exports.__esModule = true;
6
4
  exports.default = void 0;
7
5
 
8
- var R = _interopRequireWildcard(require("ramda"));
9
-
10
- /* eslint-disable import/prefer-default-export */
11
- var matchNumber = R.when(R.is(String), R.test(/^-?\d*\.?\d*$/));
6
+ var matchNumber = function matchNumber(value) {
7
+ return typeof value === 'string' && /^-?\d*\.?\d*$/.test(value);
8
+ };
12
9
 
13
10
  var castFloat = function castFloat(value) {
14
11
  if (typeof value !== 'string') return value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pdf/stylesheet",
3
- "version": "2.1.0",
3
+ "version": "3.2.0",
4
4
  "license": "MIT",
5
5
  "description": "A styles engine for Node and the browser",
6
6
  "author": "Diego Muracciole <diegomuracciole@gmail.com>",
@@ -18,12 +18,12 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@babel/runtime": "^7.16.4",
21
- "@react-pdf/types": "^2.0.8",
21
+ "@react-pdf/fns": "1.0.0",
22
+ "@react-pdf/types": "^2.1.0",
22
23
  "color-string": "^1.5.3",
23
24
  "hsl-to-hex": "^1.0.0",
24
25
  "media-engine": "^1.0.3",
25
- "postcss-value-parser": "^4.1.0",
26
- "ramda": "^0.26.1"
26
+ "postcss-value-parser": "^4.1.0"
27
27
  },
28
28
  "files": [
29
29
  "lib"