@mui/x-internals 8.16.0 → 8.18.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
@@ -5,6 +5,213 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.18.0
9
+
10
+ <!-- generated comparing v8.17.0..master -->
11
+
12
+ _Nov 13, 2025_
13
+
14
+ We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
15
+
16
+ - Add `barLabelPlacement` property to customize the bar label position in bar charts, enabling labels to be placed above bars.
17
+
18
+ ![image](https://github.com/user-attachments/assets/4bc3a75b-74b8-4c6d-896b-5f5bf837bcda)
19
+
20
+ - Add `source` property to the date/time picker lifecycle and event handler context, enabling clearer differentiation between changes initiated by the picker UI and those from direct field input.
21
+ - 🐞 Bugfixes
22
+ - 📚 Documentation improvements
23
+
24
+ Special thanks go out to these community members for their valuable contributions:
25
+ @htollefsen, @sai6855, @Sigdriv
26
+
27
+ The following team members contributed to this release:
28
+ @arminmeh, @bernardobelchior, @brijeshb42, @cherniavskii, @flaviendelangle, @JCQuintas, @michelengelen, @noraleonte, @prakhargupta1, @rita-codes, @siriwatknp
29
+
30
+ ### Data Grid
31
+
32
+ #### `@mui/x-data-grid@8.18.0`
33
+
34
+ - [DataGrid] Allow default event in the column action cell item click event handler (#20272) @arminmeh
35
+ - [DataGrid] Remove unnecessary generic from `useGridApiRef` (#20277) @cherniavskii
36
+
37
+ #### `@mui/x-data-grid-pro@8.18.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
38
+
39
+ Same changes as in `@mui/x-data-grid@8.18.0`.
40
+
41
+ #### `@mui/x-data-grid-premium@8.18.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
42
+
43
+ Same changes as in `@mui/x-data-grid-pro@8.18.0`, plus:
44
+
45
+ - [DataGridPremium] Return the correct `cellParams` value from the aggregation cells (#20224) @arminmeh
46
+
47
+ ### Date and Time Pickers
48
+
49
+ #### `@mui/x-date-pickers@8.18.0`
50
+
51
+ - [pickers] Keep invalid date state consistent (#20040) @michelengelen
52
+ - [pickers] Adds new `source` property to `onChange` and `onAccept` context object (#20234) @michelengelen
53
+
54
+ #### `@mui/x-date-pickers-pro@8.18.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
55
+
56
+ Same changes as in `@mui/x-date-pickers@8.18.0`.
57
+
58
+ ### Charts
59
+
60
+ #### `@mui/x-charts@8.18.0`
61
+
62
+ - [charts] Add prop for positioning a bar label (#20194) @Sigdriv
63
+ - [charts] Fix applying dark mode styles in `ChartAxisZoomSliderThumb` (#20232) @sai6855
64
+
65
+ #### `@mui/x-charts-pro@8.18.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
66
+
67
+ Same changes as in `@mui/x-charts@8.18.0`, plus:
68
+
69
+ - [charts-pro] Allow specifying Content Security Policy nonce on export (#20053) @bernardobelchior
70
+ - [charts-pro] Fix applying dark mode styles to slider (#20220) @sai6855
71
+ - [charts-pro] Sankey should respect node order (#20065) @JCQuintas
72
+
73
+ #### `@mui/x-charts-premium@8.18.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
74
+
75
+ Same changes as in `@mui/x-charts-pro@8.18.0`.
76
+
77
+ ### Tree View
78
+
79
+ #### `@mui/x-tree-view@8.18.0`
80
+
81
+ - [tree view] Prepare tests for the new store structure (#20225) @flaviendelangle
82
+ - [tree view] Prepare the item plugin files for the store migration (#20240) @flaviendelangle
83
+ - [tree view] Use `TreeItemId` type instead of raw string (#20233) @flaviendelangle
84
+
85
+ #### `@mui/x-tree-view-pro@8.18.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
86
+
87
+ Same changes as in `@mui/x-tree-view@8.18.0`.
88
+
89
+ ### Codemod
90
+
91
+ #### `@mui/x-codemod@8.18.0`
92
+
93
+ Internal changes.
94
+
95
+ ### Docs
96
+
97
+ - [charts] Add a demo for a custom tick label (#20073) @prakhargupta1
98
+ - [charts] Create `useAxes()` hook documentation page (#20229) @JCQuintas
99
+ - [charts] Fix logo alignment (#20228) @JCQuintas
100
+ - [charts] Fixes typo in import example (#20236) @htollefsen
101
+ - [Data Grid] Add recipe for cursor pagination with data source (#19700) @siriwatknp
102
+ - [Data Grid] Add a demo for pinned rows aggregation (#20198) @cherniavskii
103
+
104
+ ### Core
105
+
106
+ - [docs-infra] Use deployment config from docs-infra package (#20243) @brijeshb42
107
+
108
+ ## 8.17.0
109
+
110
+ _Nov 5, 2025_
111
+
112
+ We'd like to extend a big thank you to the 13 contributors who made this release possible. Here are some highlights ✨:
113
+
114
+ - Add `colorGetter` prop to cartesian charts series
115
+
116
+ <img width="400" alt="Image" src="https://github.com/user-attachments/assets/d8b1263f-794e-4939-b17e-87350fdd1746" />
117
+
118
+ - 🌎 Add Catalan (ca-ES) locale on the Data Grid
119
+ - 🌎 Add Norwegian Bokmål (nb-NO) locale on the Charts
120
+ - 🐞 Bugfixes
121
+ - 📚 Documentation improvements
122
+
123
+ Special thanks go out to these community members for their valuable contributions:
124
+ @frncesc, @Methuselah96, @samuelwalk, @htollefsen
125
+
126
+ The following team members contributed to this release:
127
+ @alexfauquette, @bernardobelchior, @flaviendelangle, @Janpot, @JCQuintas, @mnajdova, @rita-codes, @arminmeh, @brijeshb42
128
+
129
+ ### Data Grid
130
+
131
+ #### `@mui/x-data-grid@8.17.0`
132
+
133
+ - [DataGrid] Stop event propagation on data grid action buttons (GridActionsCellItem) (#19513) @Copilot
134
+ - [DataGrid] Update cell editable state if `editable` prop is updated in the column definition (#20147) @arminmeh
135
+ - [DataGrid] Wait for external model updates before resetting pagination after sort/filter (#20162) @arminmeh
136
+ - [l10n] Add Catalan (ca-ES) locale (#20154) @frncesc
137
+ - [l10n] Improve Arabic (ar-SD) locale (#20185) @samuelwalk
138
+
139
+ #### `@mui/x-data-grid-pro@8.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
140
+
141
+ Same changes as in `@mui/x-data-grid@8.17.0`.
142
+
143
+ #### `@mui/x-data-grid-premium@8.17.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
144
+
145
+ Same changes as in `@mui/x-data-grid-pro@8.17.0`.
146
+
147
+ ### Date and Time Pickers
148
+
149
+ #### `@mui/x-date-pickers@8.17.0`
150
+
151
+ Internal changes.
152
+
153
+ #### `@mui/x-date-pickers-pro@8.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
154
+
155
+ Same changes as in `@mui/x-date-pickers@8.17.0`.
156
+
157
+ ### Charts
158
+
159
+ #### `@mui/x-charts@8.17.0`
160
+
161
+ - [charts] Add `barLabel` to bar series. Deprecate `barLabel` in `BarPlot`. (#20184) @bernardobelchior
162
+ - [charts] Add series color callback (#20084) @bernardobelchior
163
+ - [charts] Expose `ChartsSurface` classes (#20180) @bernardobelchior
164
+ - [charts] Fix chart cut off when inside `overflow: scroll` container (#20182) @bernardobelchior
165
+ - [charts] Fix tick label overflow on multiple axes and series demo (#20152) @bernardobelchior
166
+ - [charts] Organize series config (#20155) @bernardobelchior
167
+ - [charts] Use selectors from `@mui/x-internals` (#20052) @alexfauquette
168
+ - [charts] Use store from `@mui/x-internals` (#20121) @alexfauquette
169
+ - [charts] Add `useDataset` hook (#20205) @JCQuintas
170
+ - [l10n] Add Norwegian Bokmål (nb-NO) locale (#20197) @htollefsen
171
+
172
+ #### `@mui/x-charts-pro@8.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
173
+
174
+ Same changes as in `@mui/x-charts@8.17.0`, plus:
175
+
176
+ - [charts-pro] Fix zoom pan issue when controlled (#20163) @JCQuintas
177
+
178
+ #### `@mui/x-charts-premium@8.17.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
179
+
180
+ Same changes as in `@mui/x-charts-pro@8.17.0`.
181
+
182
+ ### Tree View
183
+
184
+ #### `@mui/x-tree-view@8.17.0`
185
+
186
+ - [tree view] Accept read only arrays in `expandedItems` prop (#20181) @Methuselah96
187
+ - [tree view] Use `aria-checked` instead of `aria-selected` on items (#19851) @flaviendelangle
188
+
189
+ #### `@mui/x-tree-view-pro@8.17.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
190
+
191
+ Same changes as in `@mui/x-tree-view@8.17.0`.
192
+
193
+ ### Codemod
194
+
195
+ #### `@mui/x-codemod@8.17.0`
196
+
197
+ Internal changes.
198
+
199
+ ### Docs
200
+
201
+ - [docs] Fix focus issues in the action column demo (#20178) @arminmeh
202
+ - [docs] Remove hidden Tree View headless page (#20119) @flaviendelangle
203
+ - [docs] Fix some external redirects (#20211) @Janpot
204
+
205
+ ### Core
206
+
207
+ - [code-infra] Fix cci job timeout due to buffered test output (#20193) @Janpot
208
+ - [code-infra] Fix publish workflow (#20140) @bernardobelchior
209
+ - [code-infra] Increase JSDOM test parallelism (#20179) @Janpot
210
+ - [code-infra] Remove React import requirement for jsx (#20144) @brijeshb42
211
+ - [code-infra] Replace `getInitialProps` with `getStaticProps` (#20192) @Janpot
212
+ - [code-infra] git-ignore next-env.d.ts (#20177) @Janpot
213
+ - [code-infra] Stabilize screenshot testing (#19868) @Janpot
214
+
8
215
  ## 8.16.0
9
216
 
10
217
  _Oct 29, 2025_
@@ -39,7 +246,7 @@ Same changes as in `@mui/x-data-grid@8.16.0`, plus:
39
246
  Same changes as in `@mui/x-data-grid-pro@8.16.0`, plus:
40
247
 
41
248
  - [DataGridPremium] Export and restore chart integration state (#20079) @arminmeh
42
- - [DataGridPremium] Fix grouping column `valueFormatter()` crash (#20070) @sai6855
249
+ - [DataGridPremium] Fix grouping column `valueFormatter()` crash (#20070) @sai6855
43
250
  - [DataGridPremium] Refetch aggregation data after row update with server-side aggregation (#20039) @arminmeh
44
251
 
45
252
  ### Date and Time Pickers
@@ -11,4 +11,4 @@ export declare const ToolbarContext: React.Context<ToolbarContextValue | undefin
11
11
  export declare function useToolbarContext(): ToolbarContextValue;
12
12
  export declare function ToolbarContextProvider({
13
13
  children
14
- }: React.PropsWithChildren): React.JSX.Element;
14
+ }: React.PropsWithChildren): import("react/jsx-runtime").JSX.Element;
@@ -11,4 +11,4 @@ export declare const ToolbarContext: React.Context<ToolbarContextValue | undefin
11
11
  export declare function useToolbarContext(): ToolbarContextValue;
12
12
  export declare function ToolbarContextProvider({
13
13
  children
14
- }: React.PropsWithChildren): React.JSX.Element;
14
+ }: React.PropsWithChildren): import("react/jsx-runtime").JSX.Element;
@@ -3,5 +3,6 @@
3
3
  * @returns an array of promises that resolve when each stylesheet is loaded
4
4
  * @param document Document to load stylesheets into
5
5
  * @param root Document or ShadowRoot to load stylesheets from
6
+ * @param nonce Optional nonce to set on style elements for CSP compliance
6
7
  */
7
- export declare function loadStyleSheets(document: Document, root: Document | ShadowRoot): Promise<void>[];
8
+ export declare function loadStyleSheets(document: Document, root: Document | ShadowRoot, nonce?: string): Promise<void>[];
@@ -3,14 +3,15 @@
3
3
  * @returns an array of promises that resolve when each stylesheet is loaded
4
4
  * @param document Document to load stylesheets into
5
5
  * @param root Document or ShadowRoot to load stylesheets from
6
+ * @param nonce Optional nonce to set on style elements for CSP compliance
6
7
  */
7
- export function loadStyleSheets(document, root) {
8
+ export function loadStyleSheets(document, root, nonce) {
8
9
  const stylesheetLoadPromises = [];
9
10
  const headStyleElements = root.querySelectorAll("style, link[rel='stylesheet']");
10
11
  for (let i = 0; i < headStyleElements.length; i += 1) {
11
12
  const node = headStyleElements[i];
13
+ const newHeadStyleElements = document.createElement(node.tagName);
12
14
  if (node.tagName === 'STYLE') {
13
- const newHeadStyleElements = document.createElement(node.tagName);
14
15
  const sheet = node.sheet;
15
16
  if (sheet) {
16
17
  let styleCSS = '';
@@ -20,12 +21,8 @@ export function loadStyleSheets(document, root) {
20
21
  }
21
22
  }
22
23
  newHeadStyleElements.appendChild(document.createTextNode(styleCSS));
23
- document.head.appendChild(newHeadStyleElements);
24
24
  }
25
25
  } else if (node.getAttribute('href')) {
26
- // If `href` tag is empty, avoid loading these links
27
-
28
- const newHeadStyleElements = document.createElement(node.tagName);
29
26
  for (let j = 0; j < node.attributes.length; j += 1) {
30
27
  const attr = node.attributes[j];
31
28
  if (attr) {
@@ -35,8 +32,11 @@ export function loadStyleSheets(document, root) {
35
32
  stylesheetLoadPromises.push(new Promise(resolve => {
36
33
  newHeadStyleElements.addEventListener('load', () => resolve());
37
34
  }));
38
- document.head.appendChild(newHeadStyleElements);
39
35
  }
36
+ if (nonce) {
37
+ newHeadStyleElements.nonce = nonce;
38
+ }
39
+ document.head.appendChild(newHeadStyleElements);
40
40
  }
41
41
  return stylesheetLoadPromises;
42
42
  }
@@ -1,4 +1,6 @@
1
+ import { OverrideMemoizeOptions, UnknownMemoizer } from 'reselect';
1
2
  import type { CreateSelectorFunction } from "./createSelectorType.js";
2
3
  export type { CreateSelectorFunction } from "./createSelectorType.js";
3
4
  export declare const createSelector: CreateSelectorFunction;
5
+ export declare const createSelectorMemoizedWithOptions: (options?: OverrideMemoizeOptions<UnknownMemoizer>) => CreateSelectorFunction;
4
6
  export declare const createSelectorMemoized: CreateSelectorFunction;
@@ -9,12 +9,33 @@ const reselectCreateSelector = createSelectorCreator({
9
9
  }
10
10
  });
11
11
  /* eslint-disable id-denylist */
12
- export const createSelector = (a, b, c, d, e, f, ...other) => {
12
+ export const createSelector = (a, b, c, d, e, f, g, h, ...other) => {
13
13
  if (other.length > 0) {
14
14
  throw new Error('Unsupported number of selectors');
15
15
  }
16
16
  let selector;
17
- if (a && b && c && d && e && f) {
17
+ if (a && b && c && d && e && f && g && h) {
18
+ selector = (state, a1, a2, a3) => {
19
+ const va = a(state, a1, a2, a3);
20
+ const vb = b(state, a1, a2, a3);
21
+ const vc = c(state, a1, a2, a3);
22
+ const vd = d(state, a1, a2, a3);
23
+ const ve = e(state, a1, a2, a3);
24
+ const vf = f(state, a1, a2, a3);
25
+ const vg = g(state, a1, a2, a3);
26
+ return h(va, vb, vc, vd, ve, vf, vg, a1, a2, a3);
27
+ };
28
+ } else if (a && b && c && d && e && f && g) {
29
+ selector = (state, a1, a2, a3) => {
30
+ const va = a(state, a1, a2, a3);
31
+ const vb = b(state, a1, a2, a3);
32
+ const vc = c(state, a1, a2, a3);
33
+ const vd = d(state, a1, a2, a3);
34
+ const ve = e(state, a1, a2, a3);
35
+ const vf = f(state, a1, a2, a3);
36
+ return g(va, vb, vc, vd, ve, vf, a1, a2, a3);
37
+ };
38
+ } else if (a && b && c && d && e && f) {
18
39
  selector = (state, a1, a2, a3) => {
19
40
  const va = a(state, a1, a2, a3);
20
41
  const vb = b(state, a1, a2, a3);
@@ -58,7 +79,7 @@ export const createSelector = (a, b, c, d, e, f, ...other) => {
58
79
  };
59
80
  /* eslint-enable id-denylist */
60
81
 
61
- export const createSelectorMemoized = (...inputs) => {
82
+ export const createSelectorMemoizedWithOptions = options => (...inputs) => {
62
83
  const cache = new WeakMap();
63
84
  let nextCacheId = 1;
64
85
  const combiner = inputs[inputs.length - 1];
@@ -105,6 +126,9 @@ export const createSelectorMemoized = (...inputs) => {
105
126
  default:
106
127
  throw new Error('Unsupported number of arguments');
107
128
  }
129
+ if (options) {
130
+ reselectArgs = [...reselectArgs, options];
131
+ }
108
132
  fn = reselectCreateSelector(...reselectArgs);
109
133
  fn.selectorArgs = selectorArgs;
110
134
  cache.set(cacheKey, fn);
@@ -136,4 +160,5 @@ export const createSelectorMemoized = (...inputs) => {
136
160
  }
137
161
  };
138
162
  return selector;
139
- };
163
+ };
164
+ export const createSelectorMemoized = createSelectorMemoizedWithOptions();
@@ -3,5 +3,6 @@
3
3
  * @returns an array of promises that resolve when each stylesheet is loaded
4
4
  * @param document Document to load stylesheets into
5
5
  * @param root Document or ShadowRoot to load stylesheets from
6
+ * @param nonce Optional nonce to set on style elements for CSP compliance
6
7
  */
7
- export declare function loadStyleSheets(document: Document, root: Document | ShadowRoot): Promise<void>[];
8
+ export declare function loadStyleSheets(document: Document, root: Document | ShadowRoot, nonce?: string): Promise<void>[];
@@ -9,14 +9,15 @@ exports.loadStyleSheets = loadStyleSheets;
9
9
  * @returns an array of promises that resolve when each stylesheet is loaded
10
10
  * @param document Document to load stylesheets into
11
11
  * @param root Document or ShadowRoot to load stylesheets from
12
+ * @param nonce Optional nonce to set on style elements for CSP compliance
12
13
  */
13
- function loadStyleSheets(document, root) {
14
+ function loadStyleSheets(document, root, nonce) {
14
15
  const stylesheetLoadPromises = [];
15
16
  const headStyleElements = root.querySelectorAll("style, link[rel='stylesheet']");
16
17
  for (let i = 0; i < headStyleElements.length; i += 1) {
17
18
  const node = headStyleElements[i];
19
+ const newHeadStyleElements = document.createElement(node.tagName);
18
20
  if (node.tagName === 'STYLE') {
19
- const newHeadStyleElements = document.createElement(node.tagName);
20
21
  const sheet = node.sheet;
21
22
  if (sheet) {
22
23
  let styleCSS = '';
@@ -26,12 +27,8 @@ function loadStyleSheets(document, root) {
26
27
  }
27
28
  }
28
29
  newHeadStyleElements.appendChild(document.createTextNode(styleCSS));
29
- document.head.appendChild(newHeadStyleElements);
30
30
  }
31
31
  } else if (node.getAttribute('href')) {
32
- // If `href` tag is empty, avoid loading these links
33
-
34
- const newHeadStyleElements = document.createElement(node.tagName);
35
32
  for (let j = 0; j < node.attributes.length; j += 1) {
36
33
  const attr = node.attributes[j];
37
34
  if (attr) {
@@ -41,8 +38,11 @@ function loadStyleSheets(document, root) {
41
38
  stylesheetLoadPromises.push(new Promise(resolve => {
42
39
  newHeadStyleElements.addEventListener('load', () => resolve());
43
40
  }));
44
- document.head.appendChild(newHeadStyleElements);
45
41
  }
42
+ if (nonce) {
43
+ newHeadStyleElements.nonce = nonce;
44
+ }
45
+ document.head.appendChild(newHeadStyleElements);
46
46
  }
47
47
  return stylesheetLoadPromises;
48
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-internals",
3
- "version": "8.16.0",
3
+ "version": "8.18.0",
4
4
  "author": "MUI Team",
5
5
  "description": "Utility functions for the MUI X packages (internal use only).",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@babel/runtime": "^7.28.4",
34
- "@mui/utils": "^7.3.3",
34
+ "@mui/utils": "^7.3.5",
35
35
  "reselect": "^5.1.1",
36
36
  "use-sync-external-store": "^1.6.0"
37
37
  },
@@ -1,4 +1,6 @@
1
+ import { OverrideMemoizeOptions, UnknownMemoizer } from 'reselect';
1
2
  import type { CreateSelectorFunction } from "./createSelectorType.js";
2
3
  export type { CreateSelectorFunction } from "./createSelectorType.js";
3
4
  export declare const createSelector: CreateSelectorFunction;
5
+ export declare const createSelectorMemoizedWithOptions: (options?: OverrideMemoizeOptions<UnknownMemoizer>) => CreateSelectorFunction;
4
6
  export declare const createSelectorMemoized: CreateSelectorFunction;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createSelectorMemoized = exports.createSelector = void 0;
6
+ exports.createSelectorMemoizedWithOptions = exports.createSelectorMemoized = exports.createSelector = void 0;
7
7
  var _reselect = require("reselect");
8
8
  /* eslint-disable no-underscore-dangle */ // __cacheKey__
9
9
 
@@ -15,12 +15,33 @@ const reselectCreateSelector = (0, _reselect.createSelectorCreator)({
15
15
  }
16
16
  });
17
17
  /* eslint-disable id-denylist */
18
- const createSelector = (a, b, c, d, e, f, ...other) => {
18
+ const createSelector = (a, b, c, d, e, f, g, h, ...other) => {
19
19
  if (other.length > 0) {
20
20
  throw new Error('Unsupported number of selectors');
21
21
  }
22
22
  let selector;
23
- if (a && b && c && d && e && f) {
23
+ if (a && b && c && d && e && f && g && h) {
24
+ selector = (state, a1, a2, a3) => {
25
+ const va = a(state, a1, a2, a3);
26
+ const vb = b(state, a1, a2, a3);
27
+ const vc = c(state, a1, a2, a3);
28
+ const vd = d(state, a1, a2, a3);
29
+ const ve = e(state, a1, a2, a3);
30
+ const vf = f(state, a1, a2, a3);
31
+ const vg = g(state, a1, a2, a3);
32
+ return h(va, vb, vc, vd, ve, vf, vg, a1, a2, a3);
33
+ };
34
+ } else if (a && b && c && d && e && f && g) {
35
+ selector = (state, a1, a2, a3) => {
36
+ const va = a(state, a1, a2, a3);
37
+ const vb = b(state, a1, a2, a3);
38
+ const vc = c(state, a1, a2, a3);
39
+ const vd = d(state, a1, a2, a3);
40
+ const ve = e(state, a1, a2, a3);
41
+ const vf = f(state, a1, a2, a3);
42
+ return g(va, vb, vc, vd, ve, vf, a1, a2, a3);
43
+ };
44
+ } else if (a && b && c && d && e && f) {
24
45
  selector = (state, a1, a2, a3) => {
25
46
  const va = a(state, a1, a2, a3);
26
47
  const vb = b(state, a1, a2, a3);
@@ -64,7 +85,7 @@ const createSelector = (a, b, c, d, e, f, ...other) => {
64
85
  };
65
86
  /* eslint-enable id-denylist */
66
87
  exports.createSelector = createSelector;
67
- const createSelectorMemoized = (...inputs) => {
88
+ const createSelectorMemoizedWithOptions = options => (...inputs) => {
68
89
  const cache = new WeakMap();
69
90
  let nextCacheId = 1;
70
91
  const combiner = inputs[inputs.length - 1];
@@ -111,6 +132,9 @@ const createSelectorMemoized = (...inputs) => {
111
132
  default:
112
133
  throw new Error('Unsupported number of arguments');
113
134
  }
135
+ if (options) {
136
+ reselectArgs = [...reselectArgs, options];
137
+ }
114
138
  fn = reselectCreateSelector(...reselectArgs);
115
139
  fn.selectorArgs = selectorArgs;
116
140
  cache.set(cacheKey, fn);
@@ -143,4 +167,5 @@ const createSelectorMemoized = (...inputs) => {
143
167
  };
144
168
  return selector;
145
169
  };
146
- exports.createSelectorMemoized = createSelectorMemoized;
170
+ exports.createSelectorMemoizedWithOptions = createSelectorMemoizedWithOptions;
171
+ const createSelectorMemoized = exports.createSelectorMemoized = createSelectorMemoizedWithOptions();