@fluentui-react-native/framework-base 0.2.1 → 0.3.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.
Files changed (187) hide show
  1. package/CHANGELOG.json +1 -1
  2. package/CHANGELOG.md +35 -2
  3. package/README.md +18 -1
  4. package/babel.config.js +1 -1
  5. package/jsx-runtime.js +1 -0
  6. package/lib/component-patterns/directComponent.d.ts +7 -0
  7. package/lib/component-patterns/directComponent.d.ts.map +1 -0
  8. package/lib/component-patterns/directComponent.js +8 -0
  9. package/lib/component-patterns/directComponent.js.map +1 -0
  10. package/lib/component-patterns/extract.d.ts +22 -0
  11. package/lib/component-patterns/extract.d.ts.map +1 -0
  12. package/lib/component-patterns/extract.js +25 -0
  13. package/lib/component-patterns/extract.js.map +1 -0
  14. package/lib/component-patterns/phasedComponent.d.ts +18 -0
  15. package/lib/component-patterns/phasedComponent.d.ts.map +1 -0
  16. package/lib/component-patterns/phasedComponent.js +51 -0
  17. package/lib/component-patterns/phasedComponent.js.map +1 -0
  18. package/lib/component-patterns/render.d.ts +9 -3
  19. package/lib/component-patterns/render.d.ts.map +1 -1
  20. package/lib/component-patterns/render.js +39 -32
  21. package/lib/component-patterns/render.js.map +1 -1
  22. package/lib/component-patterns/render.types.d.ts +60 -34
  23. package/lib/component-patterns/render.types.d.ts.map +1 -1
  24. package/lib/component-patterns/render.types.js +1 -1
  25. package/lib/component-patterns/stagedComponent.d.ts +3 -8
  26. package/lib/component-patterns/stagedComponent.d.ts.map +1 -1
  27. package/lib/component-patterns/stagedComponent.js +10 -27
  28. package/lib/component-patterns/stagedComponent.js.map +1 -1
  29. package/lib/component-patterns/withSlots.d.ts +6 -2
  30. package/lib/component-patterns/withSlots.d.ts.map +1 -1
  31. package/lib/component-patterns/withSlots.js +3 -3
  32. package/lib/component-patterns/withSlots.js.map +1 -1
  33. package/lib/immutable-merge/Merge.d.ts +6 -3
  34. package/lib/immutable-merge/Merge.js +79 -83
  35. package/lib/immutable-merge/Merge.js.map +1 -1
  36. package/lib/immutable-merge/Merge.test.d.ts +1 -1
  37. package/lib/immutable-merge/Merge.test.js +231 -219
  38. package/lib/immutable-merge/Merge.test.js.map +1 -1
  39. package/lib/index.d.ts +33 -5
  40. package/lib/index.d.ts.map +1 -1
  41. package/lib/index.js +13 -4
  42. package/lib/index.js.map +1 -1
  43. package/lib/jsx-namespace.d.ts +65 -0
  44. package/lib/jsx-namespace.d.ts.map +1 -0
  45. package/lib/jsx-namespace.js +2 -0
  46. package/lib/jsx-namespace.js.map +1 -0
  47. package/lib/jsx-runtime.d.ts +6 -4
  48. package/lib/jsx-runtime.d.ts.map +1 -1
  49. package/lib/jsx-runtime.js +9 -7
  50. package/lib/jsx-runtime.js.map +1 -1
  51. package/lib/memo-cache/getCacheEntry.d.ts +13 -13
  52. package/lib/memo-cache/getCacheEntry.js +20 -22
  53. package/lib/memo-cache/getCacheEntry.js.map +1 -1
  54. package/lib/memo-cache/getCacheEntry.test.d.ts +1 -1
  55. package/lib/memo-cache/getCacheEntry.test.js +90 -90
  56. package/lib/memo-cache/getCacheEntry.test.js.map +1 -1
  57. package/lib/memo-cache/getMemoCache.d.ts +1 -1
  58. package/lib/memo-cache/getMemoCache.js +11 -11
  59. package/lib/memo-cache/getMemoCache.js.map +1 -1
  60. package/lib/memo-cache/getMemoCache.test.d.ts +1 -1
  61. package/lib/memo-cache/getMemoCache.test.js +73 -73
  62. package/lib/memo-cache/getMemoCache.test.js.map +1 -1
  63. package/lib/memo-cache/memoize.d.ts +1 -1
  64. package/lib/memo-cache/memoize.js +9 -9
  65. package/lib/memo-cache/memoize.js.map +1 -1
  66. package/lib/memo-cache/memoize.test.d.ts +1 -1
  67. package/lib/memo-cache/memoize.test.js +36 -38
  68. package/lib/memo-cache/memoize.test.js.map +1 -1
  69. package/lib/merge-props/index.d.ts +1 -1
  70. package/lib/merge-props/index.js +1 -1
  71. package/lib/merge-props/mergeProps.d.ts +1 -1
  72. package/lib/merge-props/mergeProps.js +4 -4
  73. package/lib/merge-props/mergeProps.js.map +1 -1
  74. package/lib/merge-props/mergeStyles.d.ts +33 -4
  75. package/lib/merge-props/mergeStyles.d.ts.map +1 -1
  76. package/lib/merge-props/mergeStyles.js +16 -17
  77. package/lib/merge-props/mergeStyles.js.map +1 -1
  78. package/lib/merge-props/mergeStyles.test.d.ts +1 -1
  79. package/lib/merge-props/mergeStyles.test.js +75 -75
  80. package/lib/merge-props/mergeStyles.test.js.map +1 -1
  81. package/lib/merge-props/mergeStyles.types.d.ts +4 -4
  82. package/lib/merge-props/mergeStyles.types.d.ts.map +1 -1
  83. package/lib/merge-props/mergeStyles.types.js +1 -1
  84. package/lib/utilities/filterProps.d.ts +3 -0
  85. package/lib/utilities/filterProps.d.ts.map +1 -0
  86. package/lib/utilities/filterProps.js +12 -0
  87. package/lib/utilities/filterProps.js.map +1 -0
  88. package/lib-commonjs/component-patterns/directComponent.d.ts +7 -0
  89. package/lib-commonjs/component-patterns/directComponent.d.ts.map +1 -0
  90. package/lib-commonjs/component-patterns/directComponent.js +11 -0
  91. package/lib-commonjs/component-patterns/directComponent.js.map +1 -0
  92. package/lib-commonjs/component-patterns/extract.d.ts +22 -0
  93. package/lib-commonjs/component-patterns/extract.d.ts.map +1 -0
  94. package/lib-commonjs/component-patterns/extract.js +30 -0
  95. package/lib-commonjs/component-patterns/extract.js.map +1 -0
  96. package/lib-commonjs/component-patterns/phasedComponent.d.ts +18 -0
  97. package/lib-commonjs/component-patterns/phasedComponent.d.ts.map +1 -0
  98. package/lib-commonjs/component-patterns/phasedComponent.js +60 -0
  99. package/lib-commonjs/component-patterns/phasedComponent.js.map +1 -0
  100. package/lib-commonjs/component-patterns/render.d.ts +9 -3
  101. package/lib-commonjs/component-patterns/render.d.ts.map +1 -1
  102. package/lib-commonjs/component-patterns/render.js +101 -64
  103. package/lib-commonjs/component-patterns/render.js.map +1 -1
  104. package/lib-commonjs/component-patterns/render.types.d.ts +60 -34
  105. package/lib-commonjs/component-patterns/render.types.d.ts.map +1 -1
  106. package/lib-commonjs/component-patterns/render.types.js +3 -3
  107. package/lib-commonjs/component-patterns/stagedComponent.d.ts +3 -8
  108. package/lib-commonjs/component-patterns/stagedComponent.d.ts.map +1 -1
  109. package/lib-commonjs/component-patterns/stagedComponent.js +64 -56
  110. package/lib-commonjs/component-patterns/stagedComponent.js.map +1 -1
  111. package/lib-commonjs/component-patterns/withSlots.d.ts +6 -2
  112. package/lib-commonjs/component-patterns/withSlots.d.ts.map +1 -1
  113. package/lib-commonjs/component-patterns/withSlots.js +7 -8
  114. package/lib-commonjs/component-patterns/withSlots.js.map +1 -1
  115. package/lib-commonjs/immutable-merge/Merge.d.ts +6 -3
  116. package/lib-commonjs/immutable-merge/Merge.js +85 -90
  117. package/lib-commonjs/immutable-merge/Merge.js.map +1 -1
  118. package/lib-commonjs/immutable-merge/Merge.test.d.ts +1 -1
  119. package/lib-commonjs/immutable-merge/Merge.test.js +234 -222
  120. package/lib-commonjs/immutable-merge/Merge.test.js.map +1 -1
  121. package/lib-commonjs/index.d.ts +33 -5
  122. package/lib-commonjs/index.d.ts.map +1 -1
  123. package/lib-commonjs/index.js +184 -31
  124. package/lib-commonjs/index.js.map +1 -1
  125. package/lib-commonjs/jsx-namespace.d.ts +65 -0
  126. package/lib-commonjs/jsx-namespace.d.ts.map +1 -0
  127. package/lib-commonjs/jsx-namespace.js +3 -0
  128. package/lib-commonjs/jsx-namespace.js.map +1 -0
  129. package/lib-commonjs/jsx-runtime.d.ts +6 -4
  130. package/lib-commonjs/jsx-runtime.d.ts.map +1 -1
  131. package/lib-commonjs/jsx-runtime.js +69 -34
  132. package/lib-commonjs/jsx-runtime.js.map +1 -1
  133. package/lib-commonjs/memo-cache/getCacheEntry.d.ts +13 -13
  134. package/lib-commonjs/memo-cache/getCacheEntry.js +23 -26
  135. package/lib-commonjs/memo-cache/getCacheEntry.js.map +1 -1
  136. package/lib-commonjs/memo-cache/getCacheEntry.test.d.ts +1 -1
  137. package/lib-commonjs/memo-cache/getCacheEntry.test.js +93 -93
  138. package/lib-commonjs/memo-cache/getCacheEntry.test.js.map +1 -1
  139. package/lib-commonjs/memo-cache/getMemoCache.d.ts +1 -1
  140. package/lib-commonjs/memo-cache/getMemoCache.js +16 -17
  141. package/lib-commonjs/memo-cache/getMemoCache.js.map +1 -1
  142. package/lib-commonjs/memo-cache/getMemoCache.test.d.ts +1 -1
  143. package/lib-commonjs/memo-cache/getMemoCache.test.js +76 -76
  144. package/lib-commonjs/memo-cache/getMemoCache.test.js.map +1 -1
  145. package/lib-commonjs/memo-cache/memoize.d.ts +1 -1
  146. package/lib-commonjs/memo-cache/memoize.js +13 -14
  147. package/lib-commonjs/memo-cache/memoize.js.map +1 -1
  148. package/lib-commonjs/memo-cache/memoize.test.d.ts +1 -1
  149. package/lib-commonjs/memo-cache/memoize.test.js +39 -41
  150. package/lib-commonjs/memo-cache/memoize.test.js.map +1 -1
  151. package/lib-commonjs/merge-props/index.d.ts +1 -1
  152. package/lib-commonjs/merge-props/index.js +17 -7
  153. package/lib-commonjs/merge-props/index.js.map +1 -1
  154. package/lib-commonjs/merge-props/mergeProps.d.ts +1 -1
  155. package/lib-commonjs/merge-props/mergeProps.js +9 -10
  156. package/lib-commonjs/merge-props/mergeProps.js.map +1 -1
  157. package/lib-commonjs/merge-props/mergeStyles.d.ts +33 -4
  158. package/lib-commonjs/merge-props/mergeStyles.d.ts.map +1 -1
  159. package/lib-commonjs/merge-props/mergeStyles.js +23 -25
  160. package/lib-commonjs/merge-props/mergeStyles.js.map +1 -1
  161. package/lib-commonjs/merge-props/mergeStyles.test.d.ts +1 -1
  162. package/lib-commonjs/merge-props/mergeStyles.test.js +78 -78
  163. package/lib-commonjs/merge-props/mergeStyles.test.js.map +1 -1
  164. package/lib-commonjs/merge-props/mergeStyles.types.d.ts +4 -4
  165. package/lib-commonjs/merge-props/mergeStyles.types.d.ts.map +1 -1
  166. package/lib-commonjs/merge-props/mergeStyles.types.js +3 -3
  167. package/lib-commonjs/utilities/filterProps.d.ts +3 -0
  168. package/lib-commonjs/utilities/filterProps.d.ts.map +1 -0
  169. package/lib-commonjs/utilities/filterProps.js +15 -0
  170. package/lib-commonjs/utilities/filterProps.js.map +1 -0
  171. package/package.json +48 -26
  172. package/src/component-patterns/README.md +53 -16
  173. package/src/component-patterns/directComponent.ts +9 -0
  174. package/src/component-patterns/extract.ts +32 -0
  175. package/src/component-patterns/phasedComponent.ts +54 -0
  176. package/src/component-patterns/render.ts +21 -13
  177. package/src/component-patterns/render.types.ts +55 -30
  178. package/src/component-patterns/stagedComponent.ts +24 -0
  179. package/src/immutable-merge/Merge.test.ts +5 -1
  180. package/src/index.ts +27 -7
  181. package/src/jsx-namespace.ts +83 -0
  182. package/src/jsx-runtime.ts +8 -4
  183. package/src/memo-cache/README.md +1 -1
  184. package/src/merge-props/mergeStyles.ts +52 -4
  185. package/src/merge-props/mergeStyles.types.ts +2 -2
  186. package/src/utilities/filterProps.ts +14 -0
  187. package/src/component-patterns/stagedComponent.tsx +0 -45
@@ -1,78 +1,78 @@
1
1
  import { getMemoCache, getTypedMemoCache } from './getMemoCache';
2
2
  function getObjFactory() {
3
- const obj = { id: 0 };
4
- return () => ({
5
- id: obj.id++,
6
- });
3
+ const obj = { id: 0 };
4
+ return () => ({
5
+ id: obj.id++,
6
+ });
7
7
  }
8
8
  describe('getMemoCache unit tests', () => {
9
- test('memoValue with null function', () => {
10
- const memoValue = getMemoCache();
11
- const [val] = memoValue(null, ['foo', 'bar']);
12
- expect(val).toBeNull();
13
- });
14
- test('memoValue with undefined', () => {
15
- const memoValue = getMemoCache();
16
- const [val] = memoValue(undefined, ['foo', 'bar']);
17
- expect(val).toBeUndefined();
18
- });
19
- test('memoValue with string', () => {
20
- const memoValue = getMemoCache();
21
- const [val] = memoValue('foo', ['bar', 'baz']);
22
- expect(val).toEqual('foo');
23
- });
24
- test('memoValue with object', () => {
25
- const memoValue = getMemoCache();
26
- const obj = { foo: 'hello', bar: 2, baz: 'you' };
27
- const [val] = memoValue(obj, ['hello', obj]);
28
- expect(val).toBe(obj);
29
- });
30
- test('memoValue executes function', () => {
31
- const memoValue = getTypedMemoCache();
32
- const fn = getObjFactory();
33
- const v1 = fn();
34
- const [v2] = memoValue(fn, ['bar', 'baz']);
35
- expect(v1).not.toBe(v2);
36
- expect(v1.id).not.toEqual(v2.id);
37
- });
38
- test('memo calls function only once', () => {
39
- const memoValue = getMemoCache();
40
- const fn = getObjFactory();
41
- const keys = ['hello', 'world'];
42
- const [o1] = memoValue(fn, keys);
43
- const [o2] = memoValue(fn, keys);
44
- expect(o2).toBe(o1);
45
- });
46
- test('memo calls function only once for empty inputs', () => {
47
- const memoValue = getMemoCache();
48
- const fn = getObjFactory();
49
- const [o1] = memoValue(fn, undefined);
50
- const [o2] = memoValue(fn, undefined);
51
- expect(o2).toBe(o1);
52
- });
53
- test('sub caches are separate', () => {
54
- const memoValue = getMemoCache();
55
- const base1 = {};
56
- const base2 = {};
57
- const [, getCache1] = memoValue(null, [base1]);
58
- const [, getCache2] = memoValue(null, [base2]);
59
- const objKey = {};
60
- const fn = getObjFactory();
61
- const [o1] = getCache1(fn, [objKey]);
62
- const [o2] = getCache2(fn, [objKey]);
63
- const [o3] = getCache2(fn, [objKey]);
64
- expect(o1).not.toBe(o2);
65
- expect(o3).toBe(o2);
66
- });
67
- test('sub caches work on branches', () => {
68
- const memoValue = getMemoCache();
69
- const keys1 = [{}, 2, 'hello'];
70
- const keys2 = [{}, true];
71
- const fn = getObjFactory();
72
- const [, getMemoValue] = memoValue(null, keys1);
73
- const [val1] = getMemoValue(fn, keys2);
74
- const [val2] = memoValue(fn, [...keys1, ...keys2]);
75
- expect(val2).toBe(val1);
76
- });
9
+ test('memoValue with null function', () => {
10
+ const memoValue = getMemoCache();
11
+ const [val] = memoValue(null, ['foo', 'bar']);
12
+ expect(val).toBeNull();
13
+ });
14
+ test('memoValue with undefined', () => {
15
+ const memoValue = getMemoCache();
16
+ const [val] = memoValue(undefined, ['foo', 'bar']);
17
+ expect(val).toBeUndefined();
18
+ });
19
+ test('memoValue with string', () => {
20
+ const memoValue = getMemoCache();
21
+ const [val] = memoValue('foo', ['bar', 'baz']);
22
+ expect(val).toEqual('foo');
23
+ });
24
+ test('memoValue with object', () => {
25
+ const memoValue = getMemoCache();
26
+ const obj = { foo: 'hello', bar: 2, baz: 'you' };
27
+ const [val] = memoValue(obj, ['hello', obj]);
28
+ expect(val).toBe(obj);
29
+ });
30
+ test('memoValue executes function', () => {
31
+ const memoValue = getTypedMemoCache();
32
+ const fn = getObjFactory();
33
+ const v1 = fn();
34
+ const [v2] = memoValue(fn, ['bar', 'baz']);
35
+ expect(v1).not.toBe(v2);
36
+ expect(v1.id).not.toEqual(v2.id);
37
+ });
38
+ test('memo calls function only once', () => {
39
+ const memoValue = getMemoCache();
40
+ const fn = getObjFactory();
41
+ const keys = ['hello', 'world'];
42
+ const [o1] = memoValue(fn, keys);
43
+ const [o2] = memoValue(fn, keys);
44
+ expect(o2).toBe(o1);
45
+ });
46
+ test('memo calls function only once for empty inputs', () => {
47
+ const memoValue = getMemoCache();
48
+ const fn = getObjFactory();
49
+ const [o1] = memoValue(fn, undefined);
50
+ const [o2] = memoValue(fn, undefined);
51
+ expect(o2).toBe(o1);
52
+ });
53
+ test('sub caches are separate', () => {
54
+ const memoValue = getMemoCache();
55
+ const base1 = {};
56
+ const base2 = {};
57
+ const [, getCache1] = memoValue(null, [base1]);
58
+ const [, getCache2] = memoValue(null, [base2]);
59
+ const objKey = {};
60
+ const fn = getObjFactory();
61
+ const [o1] = getCache1(fn, [objKey]);
62
+ const [o2] = getCache2(fn, [objKey]);
63
+ const [o3] = getCache2(fn, [objKey]);
64
+ expect(o1).not.toBe(o2);
65
+ expect(o3).toBe(o2);
66
+ });
67
+ test('sub caches work on branches', () => {
68
+ const memoValue = getMemoCache();
69
+ const keys1 = [{}, 2, 'hello'];
70
+ const keys2 = [{}, true];
71
+ const fn = getObjFactory();
72
+ const [, getMemoValue] = memoValue(null, keys1);
73
+ const [val1] = getMemoValue(fn, keys2);
74
+ const [val2] = memoValue(fn, [...keys1, ...keys2]);
75
+ expect(val2).toBe(val1);
76
+ });
77
77
  });
78
- //# sourceMappingURL=getMemoCache.test.js.map
78
+ //# sourceMappingURL=getMemoCache.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getMemoCache.test.js","sourceRoot":"","sources":["../../src/memo-cache/getMemoCache.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getMemoCache.test.js","sourceRoot":"","sources":["../../src/memo-cache/getMemoCache.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMjE,SAAS,aAAa,GAAG;IACvB,MAAM,GAAG,GAAY,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/B,OAAO,GAAG,EAAE,CAAC,CAAC;QACZ,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;KACb,CAAC,CAAC;AAAA,CACJ;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC;IACxC,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IAAA,CACxB,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;IAAA,CAC7B,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAAA,CAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAAA,CACvB,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,iBAAiB,EAAW,CAAC;QAC/C,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAAA,CAClC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAA,CACrB,CAAC,CAAC;IAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAA,CACrB,CAAC,CAAC;IAEH,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAAA,CACrB,CAAC,CAAC;IAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,aAAa,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAAA,CACzB,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
@@ -3,4 +3,4 @@
3
3
  * @param fn - function to memoize
4
4
  */
5
5
  export declare function memoize<T extends Function>(fn: T): T;
6
- //# sourceMappingURL=memoize.d.ts.map
6
+ //# sourceMappingURL=memoize.d.ts.map
@@ -5,13 +5,13 @@ import { getMemoCache } from './getMemoCache';
5
5
  */
6
6
  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
7
7
  export function memoize(fn) {
8
- // create a unique cache that will be captured in the closure
9
- const cache = getMemoCache();
10
- // create the closure which wraps the calling function
11
- const closure = (...args) => {
12
- return cache(() => fn(...(args || [])), args)[0];
13
- };
14
- // now return that closure strongly typed as the function.
15
- return closure;
8
+ // create a unique cache that will be captured in the closure
9
+ const cache = getMemoCache();
10
+ // create the closure which wraps the calling function
11
+ const closure = (...args) => {
12
+ return cache(() => fn(...(args || [])), args)[0];
13
+ };
14
+ // now return that closure strongly typed as the function.
15
+ return closure;
16
16
  }
17
- //# sourceMappingURL=memoize.js.map
17
+ //# sourceMappingURL=memoize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/memo-cache/memoize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,sEAAsE;AACtE,MAAM,UAAU,OAAO,CAAqB,EAAK;IAC/C,6DAA6D;IAC7D,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;QACrC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,0DAA0D;IAC1D,OAAO,OAAuB,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/memo-cache/memoize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,sEAAsE;AACtE,MAAM,UAAU,OAAO,CAAqB,EAAK,EAAK;IACpD,6DAA6D;IAC7D,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,CAClD,CAAC;IACF,0DAA0D;IAC1D,OAAO,OAAuB,CAAC;AAAA,CAChC"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=memoize.test.d.ts.map
2
+ //# sourceMappingURL=memoize.test.d.ts.map
@@ -1,45 +1,43 @@
1
1
  import { memoize } from './memoize';
2
2
  let _globalCalls = 0;
3
3
  describe('Memoize unit tests', () => {
4
- test('simple function no args', () => {
5
- const noArgsFn = memoize(() => {
6
- return ++_globalCalls;
7
- });
8
- const result1 = noArgsFn();
9
- expect(noArgsFn()).toEqual(result1);
4
+ test('simple function no args', () => {
5
+ const noArgsFn = memoize(() => {
6
+ return ++_globalCalls;
10
7
  });
11
- test('simple function 1 arg', () => {
12
- const incrementFn = memoize((bump) => {
13
- ++_globalCalls;
14
- return bump + 1;
15
- });
16
- expect(incrementFn(3)).toEqual(4);
17
- const calls = _globalCalls;
18
- incrementFn(3);
19
- expect(_globalCalls).toEqual(calls);
20
- incrementFn(4);
21
- expect(_globalCalls).toEqual(calls + 1);
22
- incrementFn(4);
23
- expect(_globalCalls).toEqual(calls + 1);
8
+ const result1 = noArgsFn();
9
+ expect(noArgsFn()).toEqual(result1);
10
+ });
11
+ test('simple function 1 arg', () => {
12
+ const incrementFn = memoize((bump) => {
13
+ ++_globalCalls;
14
+ return bump + 1;
24
15
  });
25
- test('void function 2 args', () => {
26
- const voidFn = memoize((a, b) => {
27
- if (a) {
28
- ++_globalCalls;
29
- }
30
- else if (b) {
31
- ++_globalCalls;
32
- }
33
- else {
34
- ++_globalCalls;
35
- }
36
- });
37
- voidFn(3, 'hello');
38
- const calls = _globalCalls;
39
- voidFn(3, 'hello');
40
- expect(_globalCalls).toEqual(calls);
41
- voidFn(3, 'world');
42
- expect(_globalCalls).toEqual(calls + 1);
16
+ expect(incrementFn(3)).toEqual(4);
17
+ const calls = _globalCalls;
18
+ incrementFn(3);
19
+ expect(_globalCalls).toEqual(calls);
20
+ incrementFn(4);
21
+ expect(_globalCalls).toEqual(calls + 1);
22
+ incrementFn(4);
23
+ expect(_globalCalls).toEqual(calls + 1);
24
+ });
25
+ test('void function 2 args', () => {
26
+ const voidFn = memoize((a, b) => {
27
+ if (a) {
28
+ ++_globalCalls;
29
+ } else if (b) {
30
+ ++_globalCalls;
31
+ } else {
32
+ ++_globalCalls;
33
+ }
43
34
  });
35
+ voidFn(3, 'hello');
36
+ const calls = _globalCalls;
37
+ voidFn(3, 'hello');
38
+ expect(_globalCalls).toEqual(calls);
39
+ voidFn(3, 'world');
40
+ expect(_globalCalls).toEqual(calls + 1);
41
+ });
44
42
  });
45
- //# sourceMappingURL=memoize.test.js.map
43
+ //# sourceMappingURL=memoize.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoize.test.js","sourceRoot":"","sources":["../../src/memo-cache/memoize.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,YAAY,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACjC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;YAC3C,EAAE,YAAY,CAAC;YACf,OAAO,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;YAC9C,IAAI,CAAC,EAAE;gBACL,EAAE,YAAY,CAAC;aAChB;iBAAM,IAAI,CAAC,EAAE;gBACZ,EAAE,YAAY,CAAC;aAChB;iBAAM;gBACL,EAAE,YAAY,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"memoize.test.js","sourceRoot":"","sources":["../../src/memo-cache/memoize.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC;IACnC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC7B,OAAO,EAAE,YAAY,CAAC;QAAA,CACvB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAAA,CACrC,CAAC,CAAC;IAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC;YAC5C,EAAE,YAAY,CAAC;YACf,OAAO,IAAI,GAAG,CAAC,CAAC;QAAA,CACjB,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,WAAW,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAAA,CACzC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC;gBACN,EAAE,YAAY,CAAC;YACjB,CAAC;iBAAM,IAAI,CAAC,EAAE,CAAC;gBACb,EAAE,YAAY,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,EAAE,YAAY,CAAC;YACjB,CAAC;QAAA,CACF,CAAC,CAAC;QAEH,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,KAAK,GAAG,YAAY,CAAC;QAC3B,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACnB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAAA,CACzC,CAAC,CAAC;AAAA,CACJ,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export type { StyleProp } from './mergeStyles.types';
2
2
  export { mergeStyles } from './mergeStyles';
3
3
  export { mergeProps } from './mergeProps';
4
- //# sourceMappingURL=index.d.ts.map
4
+ //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
1
  export { mergeStyles } from './mergeStyles';
2
2
  export { mergeProps } from './mergeProps';
3
- //# sourceMappingURL=index.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -3,4 +3,4 @@
3
3
  * @param props - props to merge together
4
4
  */
5
5
  export declare function mergeProps<TProps>(...props: (TProps | undefined)[]): TProps;
6
- //# sourceMappingURL=mergeProps.d.ts.map
6
+ //# sourceMappingURL=mergeProps.d.ts.map
@@ -4,14 +4,14 @@ import { mergeStyles } from './mergeStyles';
4
4
  * Props will not deeply merge with the exception of a style property. Also className needs to be handled specially.
5
5
  */
6
6
  const mergePropsOptions = {
7
- className: (...names) => names.filter((v) => v && typeof v === 'string').join(' '),
8
- style: mergeStyles,
7
+ className: (...names) => names.filter((v) => v && typeof v === 'string').join(' '),
8
+ style: mergeStyles,
9
9
  };
10
10
  /**
11
11
  * Merge props together, flattening and merging styles as appropriate
12
12
  * @param props - props to merge together
13
13
  */
14
14
  export function mergeProps(...props) {
15
- return immutableMergeCore(mergePropsOptions, ...filterToObjects(props));
15
+ return immutableMergeCore(mergePropsOptions, ...filterToObjects(props));
16
16
  }
17
- //# sourceMappingURL=mergeProps.js.map
17
+ //# sourceMappingURL=mergeProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeProps.js","sourceRoot":"","sources":["../../src/merge-props/mergeProps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,iBAAiB,GAAiB;IACtC,SAAS,EAAE,CAAC,GAAG,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACzF,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAS,GAAG,KAA6B;IACjE,OAAO,kBAAkB,CAAC,iBAAiB,EAAE,GAAG,eAAe,CAAS,KAAK,CAAC,CAAC,CAAC;AAClF,CAAC"}
1
+ {"version":3,"file":"mergeProps.js","sourceRoot":"","sources":["../../src/merge-props/mergeProps.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,iBAAiB,GAAiB;IACtC,SAAS,EAAE,CAAC,GAAG,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACzF,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAS,GAAG,KAA6B,EAAU;IAC3E,OAAO,kBAAkB,CAAC,iBAAiB,EAAE,GAAG,eAAe,CAAS,KAAK,CAAC,CAAC,CAAC;AAAA,CACjF"}
@@ -5,12 +5,41 @@ import type { StyleProp } from './mergeStyles.types';
5
5
  *
6
6
  * @param style - StyleProp<TStyle> to flatten, this can be a TStyle or an array
7
7
  */
8
- export declare function flattenStyle(style: StyleProp<object>): object;
8
+ export declare function flattenStyle<T extends object>(style: StyleProp<T>): T;
9
9
  /**
10
10
  * Merge styles together into a single flat object and optionally finalize them, can also be used to finalize a single style
11
11
  *
12
12
  * @param styles - array of styles to merge together. The styles will be flattened as part of the process
13
13
  */
14
- export declare function mergeAndFlattenStyles(...styles: StyleProp<object>[]): object | undefined;
15
- export declare function mergeStyles(...styles: StyleProp<object>[]): object | undefined;
16
- //# sourceMappingURL=mergeStyles.d.ts.map
14
+ export declare function mergeAndFlattenStyles<T1 extends object, T2 extends object>(
15
+ style1: StyleProp<T1>,
16
+ style2: StyleProp<T2>,
17
+ ): (T1 & T2) | undefined;
18
+ export declare function mergeAndFlattenStyles<T1 extends object, T2 extends object, T3 extends object>(
19
+ style1: StyleProp<T1>,
20
+ style2: StyleProp<T2>,
21
+ style3: StyleProp<T3>,
22
+ ): (T1 & T2 & T3) | undefined;
23
+ export declare function mergeAndFlattenStyles<TStyle extends object>(...styles: StyleProp<any>[]): TStyle | undefined;
24
+ /**
25
+ * Function overloads to allow merging styles of different types.
26
+ * This is useful when merging token-based styles with React Native StyleProp types.
27
+ */
28
+ export declare function mergeStyles<T1 extends object>(style1: StyleProp<T1>): T1 | undefined;
29
+ export declare function mergeStyles<T1 extends object, T2 extends object>(
30
+ style1: StyleProp<T1>,
31
+ style2: StyleProp<T2>,
32
+ ): (T1 & T2) | undefined;
33
+ export declare function mergeStyles<T1 extends object, T2 extends object, T3 extends object>(
34
+ style1: StyleProp<T1>,
35
+ style2: StyleProp<T2>,
36
+ style3: StyleProp<T3>,
37
+ ): (T1 & T2 & T3) | undefined;
38
+ export declare function mergeStyles<T1 extends object, T2 extends object, T3 extends object, T4 extends object>(
39
+ style1: StyleProp<T1>,
40
+ style2: StyleProp<T2>,
41
+ style3: StyleProp<T3>,
42
+ style4: StyleProp<T4>,
43
+ ): (T1 & T2 & T3 & T4) | undefined;
44
+ export declare function mergeStyles<TStyle extends object>(...styles: StyleProp<TStyle>[]): TStyle | undefined;
45
+ //# sourceMappingURL=mergeStyles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeStyles.d.ts","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAE7D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAOxF;AAID,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAQ9E"}
1
+ {"version":3,"file":"mergeStyles.d.ts","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAErE;AAED;;;;GAIG;AAGH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACxE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GACpB,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAGzB,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAC3F,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GACpB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAG9B,wBAAgB,qBAAqB,CAAC,MAAM,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;AAc9G;;;GAGG;AAGH,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;AAGtF,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAGvI,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACjF,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GACpB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAG9B,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EACpG,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,EACrB,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,GACpB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,SAAS,CAAC;AAGnC,wBAAgB,WAAW,CAAC,MAAM,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC"}
@@ -7,26 +7,25 @@ import { getMemoCache } from '../memo-cache/getMemoCache';
7
7
  * @param style - StyleProp<TStyle> to flatten, this can be a TStyle or an array
8
8
  */
9
9
  export function flattenStyle(style) {
10
- return Array.isArray(style) ? immutableMerge(...style.map((v) => flattenStyle(v))) : style || {};
10
+ return Array.isArray(style) ? immutableMerge(...style.map((v) => flattenStyle(v))) : style || {};
11
11
  }
12
- /**
13
- * Merge styles together into a single flat object and optionally finalize them, can also be used to finalize a single style
14
- *
15
- * @param styles - array of styles to merge together. The styles will be flattened as part of the process
16
- */
12
+ // Implementation
17
13
  export function mergeAndFlattenStyles(...styles) {
18
- // baseline merge and flatten the objects
19
- return immutableMerge(...styles.map((styleProp) => {
20
- return flattenStyle(styleProp);
21
- }));
14
+ // baseline merge and flatten the objects
15
+ return immutableMerge(
16
+ ...styles.map((styleProp) => {
17
+ return flattenStyle(styleProp);
18
+ }),
19
+ );
22
20
  }
23
21
  const _styleCache = getMemoCache();
22
+ // Implementation
24
23
  export function mergeStyles(...styles) {
25
- // filter the style set to just objects (which might be arrays or plain style objects)
26
- const inputs = styles.filter((s) => typeof s === 'object');
27
- // now memo the results if there is more than one element or if the one element is an array
28
- return inputs.length > 1 || (inputs.length === 1 && Array.isArray(inputs[0]))
29
- ? _styleCache(() => mergeAndFlattenStyles(undefined, ...inputs), inputs)[0]
30
- : inputs[0] || {};
24
+ // filter the style set to just objects (which might be arrays or plain style objects)
25
+ const inputs = styles.filter((s) => typeof s === 'object');
26
+ // now memo the results if there is more than one element or if the one element is an array
27
+ return inputs.length > 1 || (inputs.length === 1 && Array.isArray(inputs[0]))
28
+ ? _styleCache(() => mergeAndFlattenStyles(undefined, ...inputs), inputs)[0]
29
+ : inputs[0] || {};
31
30
  }
32
- //# sourceMappingURL=mergeStyles.js.map
31
+ //# sourceMappingURL=mergeStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeStyles.js","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAG,MAA2B;IAClE,yCAAyC;IACzC,OAAO,cAAc,CACnB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,SAA4B,EAAE,EAAE;QAC7C,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC;AAEnC,MAAM,UAAU,WAAW,CAAC,GAAG,MAA2B;IACxD,sFAAsF;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;IAEvE,2FAA2F;IAC3F,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"mergeStyles.js","sourceRoot":"","sources":["../../src/merge-props/mergeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAmB,KAAmB,EAAK;IACrE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI,EAAE,CAAO,CAAC;AAAA,CAC9G;AAwBD,iBAAiB;AACjB,MAAM,UAAU,qBAAqB,CAAC,GAAG,MAAwB,EAAsB;IACrF,yCAAyC;IACzC,OAAO,cAAc,CACnB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,SAA4B,EAAE,EAAE,CAAC;QAC9C,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;IAAA,CAChC,CAAC,CACH,CAAC;AAAA,CACH;AAED,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC;AA+BnC,iBAAiB;AACjB,MAAM,UAAU,WAAW,CAAC,GAAG,MAAwB,EAAsB;IAC3E,sFAAsF;IACtF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAa,CAAC;IAEvE,2FAA2F;IAC3F,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAAA,CACrB"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=mergeStyles.test.d.ts.map
2
+ //# sourceMappingURL=mergeStyles.test.d.ts.map