@elementor/store 0.8.6 → 3.32.0-20

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,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 1a9c943: Subscribe only to the global classes slice
8
+
3
9
  ## 0.8.6
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _reduxjs_toolkit_dist_configureStore from '@reduxjs/toolkit/dist/configureStore';
2
2
  import * as redux from 'redux';
3
- import { Slice, Middleware, AnyAction, ThunkMiddleware, EnhancedStore, StoreEnhancer } from '@reduxjs/toolkit';
3
+ import { Slice, Middleware, EnhancedStore, AnyAction, ThunkMiddleware, StoreEnhancer } from '@reduxjs/toolkit';
4
4
  export { Action, AnyAction, CreateSliceOptions, Dispatch, Middleware, MiddlewareAPI, PayloadAction, Slice, Store, createAction as __createAction, createAsyncThunk as __createAsyncThunk, createSelector as __createSelector, createSlice as __createSlice } from '@reduxjs/toolkit';
5
5
  export { Provider as __StoreProvider, useDispatch as __useDispatch, useSelector as __useSelector } from 'react-redux';
6
6
 
@@ -26,8 +26,9 @@ declare const addMiddleware: (middleware: Middleware) => void;
26
26
  declare const dispatch: (action: any) => any;
27
27
  declare const getState: () => any;
28
28
  declare const subscribe: (listener: () => void) => redux.Unsubscribe;
29
+ declare const subscribeWithSelector: <T>(selector: (state: any) => T, listener: (selectedState: T) => void) => redux.Unsubscribe;
29
30
  declare const createStore: () => AnyStore;
30
31
  declare const getStore: () => _reduxjs_toolkit_dist_configureStore.ToolkitStore<any, AnyAction, [ThunkMiddleware<any, AnyAction>]> | null;
31
32
  declare const deleteStore: () => void;
32
33
 
33
- export { type SliceState, addMiddleware as __addMiddleware, createStore as __createStore, deleteStore as __deleteStore, dispatch as __dispatch, getState as __getState, getStore as __getStore, registerSlice as __registerSlice, subscribe as __subscribe };
34
+ export { type SliceState, addMiddleware as __addMiddleware, createStore as __createStore, deleteStore as __deleteStore, dispatch as __dispatch, getState as __getState, getStore as __getStore, registerSlice as __registerSlice, subscribe as __subscribe, subscribeWithSelector as __subscribeWithSelector };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as _reduxjs_toolkit_dist_configureStore from '@reduxjs/toolkit/dist/configureStore';
2
2
  import * as redux from 'redux';
3
- import { Slice, Middleware, AnyAction, ThunkMiddleware, EnhancedStore, StoreEnhancer } from '@reduxjs/toolkit';
3
+ import { Slice, Middleware, EnhancedStore, AnyAction, ThunkMiddleware, StoreEnhancer } from '@reduxjs/toolkit';
4
4
  export { Action, AnyAction, CreateSliceOptions, Dispatch, Middleware, MiddlewareAPI, PayloadAction, Slice, Store, createAction as __createAction, createAsyncThunk as __createAsyncThunk, createSelector as __createSelector, createSlice as __createSlice } from '@reduxjs/toolkit';
5
5
  export { Provider as __StoreProvider, useDispatch as __useDispatch, useSelector as __useSelector } from 'react-redux';
6
6
 
@@ -26,8 +26,9 @@ declare const addMiddleware: (middleware: Middleware) => void;
26
26
  declare const dispatch: (action: any) => any;
27
27
  declare const getState: () => any;
28
28
  declare const subscribe: (listener: () => void) => redux.Unsubscribe;
29
+ declare const subscribeWithSelector: <T>(selector: (state: any) => T, listener: (selectedState: T) => void) => redux.Unsubscribe;
29
30
  declare const createStore: () => AnyStore;
30
31
  declare const getStore: () => _reduxjs_toolkit_dist_configureStore.ToolkitStore<any, AnyAction, [ThunkMiddleware<any, AnyAction>]> | null;
31
32
  declare const deleteStore: () => void;
32
33
 
33
- export { type SliceState, addMiddleware as __addMiddleware, createStore as __createStore, deleteStore as __deleteStore, dispatch as __dispatch, getState as __getState, getStore as __getStore, registerSlice as __registerSlice, subscribe as __subscribe };
34
+ export { type SliceState, addMiddleware as __addMiddleware, createStore as __createStore, deleteStore as __deleteStore, dispatch as __dispatch, getState as __getState, getStore as __getStore, registerSlice as __registerSlice, subscribe as __subscribe, subscribeWithSelector as __subscribeWithSelector };
package/dist/index.js CHANGED
@@ -18,8 +18,8 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
20
  // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
23
  __StoreProvider: () => import_react_redux.Provider,
24
24
  __addMiddleware: () => addMiddleware,
25
25
  __createAction: () => import_toolkit2.createAction,
@@ -33,10 +33,11 @@ __export(src_exports, {
33
33
  __getStore: () => getStore,
34
34
  __registerSlice: () => registerSlice,
35
35
  __subscribe: () => subscribe,
36
+ __subscribeWithSelector: () => subscribeWithSelector,
36
37
  __useDispatch: () => import_react_redux.useDispatch,
37
38
  __useSelector: () => import_react_redux.useSelector
38
39
  });
39
- module.exports = __toCommonJS(src_exports);
40
+ module.exports = __toCommonJS(index_exports);
40
41
  var import_toolkit = require("@reduxjs/toolkit");
41
42
  var import_toolkit2 = require("@reduxjs/toolkit");
42
43
  var import_react_redux = require("react-redux");
@@ -79,6 +80,17 @@ var subscribe = (listener) => {
79
80
  }
80
81
  return instance.subscribe(listener);
81
82
  };
83
+ var subscribeWithSelector = (selector, listener) => {
84
+ let prevState = selector(getState());
85
+ return subscribe(() => {
86
+ const nextState = selector(getState());
87
+ if (prevState === nextState) {
88
+ return;
89
+ }
90
+ prevState = nextState;
91
+ listener(nextState);
92
+ });
93
+ };
82
94
  var createStore = () => {
83
95
  if (instance) {
84
96
  throw new Error("The store instance already exists.");
@@ -119,6 +131,7 @@ var deleteStore = () => {
119
131
  __getStore,
120
132
  __registerSlice,
121
133
  __subscribe,
134
+ __subscribeWithSelector,
122
135
  __useDispatch,
123
136
  __useSelector
124
137
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n\tReducersMapObject,\n\tconfigureStore,\n\tcombineReducers,\n\tMiddleware,\n\tSlice,\n\tAnyAction,\n\tEnhancedStore,\n\tStoreEnhancer,\n\tThunkMiddleware,\n} from '@reduxjs/toolkit';\n\nexport type {\n\tSlice,\n\tCreateSliceOptions,\n\tPayloadAction,\n\tStore,\n\tDispatch,\n\tAnyAction,\n\tAction,\n\tMiddlewareAPI,\n\tMiddleware,\n} from '@reduxjs/toolkit';\n\nexport {\n\tcreateSelector as __createSelector,\n\tcreateSlice as __createSlice,\n\tcreateAsyncThunk as __createAsyncThunk,\n\tcreateAction as __createAction,\n} from '@reduxjs/toolkit';\n\nexport { useSelector as __useSelector, useDispatch as __useDispatch, Provider as __StoreProvider } from 'react-redux';\n\n/**\n * Usage:\n *\n * const mySlice = addSlice( ... );\n *\n * type MySliceState = SliceState<typeof mySlice>;\n *\n * const value = useSelector( ( state: MySliceState ) => state.mySlice.value );\n */\nexport type SliceState< S extends Slice > = {\n\t[ key in S[ 'name' ] ]: ReturnType< S[ 'getInitialState' ] >;\n};\n\n// The `configureStore` function from Redux Toolkit infers its actions from the `reducers`\n// key of the initialization object. This is fine when creating the store statically, but\n// breaks in our case since we create the store dynamically, which means that TypeScript\n// can't infer the types. Therefore, we force the store to accept any actions using a\n// generic store type.\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyStore< State = any > = EnhancedStore<\n\tState,\n\tAnyAction,\n\t[ ThunkMiddleware< State, AnyAction > ],\n\t[ StoreEnhancer ]\n>;\n\ninterface SlicesMap {\n\t[ key: Slice[ 'name' ] ]: Slice;\n}\n\nlet instance: AnyStore | null = null;\nlet slices: SlicesMap = {};\nconst pendingActions: AnyAction[] = [];\nconst middlewares = new Set< Middleware >();\n\nconst getReducers = () => {\n\tconst reducers = Object.entries( slices ).reduce( ( reducersData: ReducersMapObject, [ name, slice ] ) => {\n\t\treducersData[ name ] = slice.reducer;\n\n\t\treturn reducersData;\n\t}, {} );\n\n\treturn combineReducers( reducers );\n};\n\nfunction registerSlice( slice: Slice ) {\n\tif ( slices[ slice.name ] ) {\n\t\tthrow new Error( `Slice with name \"${ slice.name }\" already exists.` );\n\t}\n\n\tslices[ slice.name ] = slice;\n}\n\nconst addMiddleware = ( middleware: Middleware ) => {\n\tmiddlewares.add( middleware );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See the comment above about `AnyStore`\nconst dispatch = ( action: any ) => {\n\tif ( ! instance ) {\n\t\tpendingActions.push( action );\n\n\t\treturn;\n\t}\n\n\treturn instance.dispatch( action );\n};\n\nconst getState = () => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.getState();\n};\n\nconst subscribe = ( listener: () => void ) => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.subscribe( listener );\n};\n\nconst createStore = () => {\n\tif ( instance ) {\n\t\tthrow new Error( 'The store instance already exists.' );\n\t}\n\n\tinstance = configureStore( {\n\t\treducer: getReducers(),\n\t\tmiddleware: ( getDefaultMiddleware ) => {\n\t\t\treturn [ ...getDefaultMiddleware(), ...Array.from( middlewares ) ];\n\t\t},\n\t} );\n\n\tif ( pendingActions.length ) {\n\t\tpendingActions.forEach( ( action ) => dispatch( action ) );\n\t\tpendingActions.length = 0;\n\t}\n\n\treturn instance as AnyStore;\n};\n\nconst getStore = () => {\n\treturn instance;\n};\n\nconst deleteStore = () => {\n\tinstance = null;\n\tslices = {};\n\tpendingActions.length = 0;\n\tmiddlewares.clear();\n};\n\nexport {\n\tregisterSlice as __registerSlice,\n\taddMiddleware as __addMiddleware,\n\tdispatch as __dispatch,\n\tgetState as __getState,\n\tsubscribe as __subscribe,\n\tcreateStore as __createStore,\n\tgetStore as __getStore,\n\tdeleteStore as __deleteStore,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAUO;AAcP,IAAAA,kBAKO;AAEP,yBAAwG;AAiCxG,IAAI,WAA4B;AAChC,IAAI,SAAoB,CAAC;AACzB,IAAM,iBAA8B,CAAC;AACrC,IAAM,cAAc,oBAAI,IAAkB;AAE1C,IAAM,cAAc,MAAM;AACzB,QAAM,WAAW,OAAO,QAAS,MAAO,EAAE,OAAQ,CAAE,cAAiC,CAAE,MAAM,KAAM,MAAO;AACzG,iBAAc,IAAK,IAAI,MAAM;AAE7B,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AAEN,aAAO,gCAAiB,QAAS;AAClC;AAEA,SAAS,cAAe,OAAe;AACtC,MAAK,OAAQ,MAAM,IAAK,GAAI;AAC3B,UAAM,IAAI,MAAO,oBAAqB,MAAM,IAAK,mBAAoB;AAAA,EACtE;AAEA,SAAQ,MAAM,IAAK,IAAI;AACxB;AAEA,IAAM,gBAAgB,CAAE,eAA4B;AACnD,cAAY,IAAK,UAAW;AAC7B;AAGA,IAAM,WAAW,CAAE,WAAiB;AACnC,MAAK,CAAE,UAAW;AACjB,mBAAe,KAAM,MAAO;AAE5B;AAAA,EACD;AAEA,SAAO,SAAS,SAAU,MAAO;AAClC;AAEA,IAAM,WAAW,MAAM;AACtB,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,SAAS;AAC1B;AAEA,IAAM,YAAY,CAAE,aAA0B;AAC7C,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,UAAW,QAAS;AACrC;AAEA,IAAM,cAAc,MAAM;AACzB,MAAK,UAAW;AACf,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,iBAAW,+BAAgB;AAAA,IAC1B,SAAS,YAAY;AAAA,IACrB,YAAY,CAAE,yBAA0B;AACvC,aAAO,CAAE,GAAG,qBAAqB,GAAG,GAAG,MAAM,KAAM,WAAY,CAAE;AAAA,IAClE;AAAA,EACD,CAAE;AAEF,MAAK,eAAe,QAAS;AAC5B,mBAAe,QAAS,CAAE,WAAY,SAAU,MAAO,CAAE;AACzD,mBAAe,SAAS;AAAA,EACzB;AAEA,SAAO;AACR;AAEA,IAAM,WAAW,MAAM;AACtB,SAAO;AACR;AAEA,IAAM,cAAc,MAAM;AACzB,aAAW;AACX,WAAS,CAAC;AACV,iBAAe,SAAS;AACxB,cAAY,MAAM;AACnB;","names":["import_toolkit"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n\ttype AnyAction,\n\tcombineReducers,\n\tconfigureStore,\n\ttype EnhancedStore,\n\ttype Middleware,\n\ttype ReducersMapObject,\n\ttype Slice,\n\ttype StoreEnhancer,\n\ttype ThunkMiddleware,\n} from '@reduxjs/toolkit';\n\nexport type {\n\tSlice,\n\tCreateSliceOptions,\n\tPayloadAction,\n\tStore,\n\tDispatch,\n\tAnyAction,\n\tAction,\n\tMiddlewareAPI,\n\tMiddleware,\n} from '@reduxjs/toolkit';\n\nexport {\n\tcreateSelector as __createSelector,\n\tcreateSlice as __createSlice,\n\tcreateAsyncThunk as __createAsyncThunk,\n\tcreateAction as __createAction,\n} from '@reduxjs/toolkit';\n\nexport { useSelector as __useSelector, useDispatch as __useDispatch, Provider as __StoreProvider } from 'react-redux';\n\n/**\n * Usage:\n *\n * const mySlice = addSlice( ... );\n *\n * type MySliceState = SliceState<typeof mySlice>;\n *\n * const value = useSelector( ( state: MySliceState ) => state.mySlice.value );\n */\nexport type SliceState< S extends Slice > = {\n\t[ key in S[ 'name' ] ]: ReturnType< S[ 'getInitialState' ] >;\n};\n\n// The `configureStore` function from Redux Toolkit infers its actions from the `reducers`\n// key of the initialization object. This is fine when creating the store statically, but\n// breaks in our case since we create the store dynamically, which means that TypeScript\n// can't infer the types. Therefore, we force the store to accept any actions using a\n// generic store type.\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyStore< State = any > = EnhancedStore<\n\tState,\n\tAnyAction,\n\t[ ThunkMiddleware< State, AnyAction > ],\n\t[ StoreEnhancer ]\n>;\n\ninterface SlicesMap {\n\t[ key: Slice[ 'name' ] ]: Slice;\n}\n\nlet instance: AnyStore | null = null;\nlet slices: SlicesMap = {};\nconst pendingActions: AnyAction[] = [];\nconst middlewares = new Set< Middleware >();\n\nconst getReducers = () => {\n\tconst reducers = Object.entries( slices ).reduce( ( reducersData: ReducersMapObject, [ name, slice ] ) => {\n\t\treducersData[ name ] = slice.reducer;\n\n\t\treturn reducersData;\n\t}, {} );\n\n\treturn combineReducers( reducers );\n};\n\nfunction registerSlice( slice: Slice ) {\n\tif ( slices[ slice.name ] ) {\n\t\tthrow new Error( `Slice with name \"${ slice.name }\" already exists.` );\n\t}\n\n\tslices[ slice.name ] = slice;\n}\n\nconst addMiddleware = ( middleware: Middleware ) => {\n\tmiddlewares.add( middleware );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See the comment above about `AnyStore`\nconst dispatch = ( action: any ) => {\n\tif ( ! instance ) {\n\t\tpendingActions.push( action );\n\n\t\treturn;\n\t}\n\n\treturn instance.dispatch( action );\n};\n\nconst getState = () => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.getState();\n};\n\nconst subscribe = ( listener: () => void ) => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.subscribe( listener );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst subscribeWithSelector = < T >( selector: ( state: any ) => T, listener: ( selectedState: T ) => void ) => {\n\tlet prevState = selector( getState() );\n\n\treturn subscribe( () => {\n\t\tconst nextState = selector( getState() );\n\n\t\tif ( prevState === nextState ) {\n\t\t\treturn;\n\t\t}\n\n\t\tprevState = nextState;\n\n\t\tlistener( nextState );\n\t} );\n};\n\nconst createStore = () => {\n\tif ( instance ) {\n\t\tthrow new Error( 'The store instance already exists.' );\n\t}\n\n\tinstance = configureStore( {\n\t\treducer: getReducers(),\n\t\tmiddleware: ( getDefaultMiddleware ) => {\n\t\t\treturn [ ...getDefaultMiddleware(), ...Array.from( middlewares ) ];\n\t\t},\n\t} );\n\n\tif ( pendingActions.length ) {\n\t\tpendingActions.forEach( ( action ) => dispatch( action ) );\n\t\tpendingActions.length = 0;\n\t}\n\n\treturn instance as AnyStore;\n};\n\nconst getStore = () => {\n\treturn instance;\n};\n\nconst deleteStore = () => {\n\tinstance = null;\n\tslices = {};\n\tpendingActions.length = 0;\n\tmiddlewares.clear();\n};\n\nexport {\n\tregisterSlice as __registerSlice,\n\taddMiddleware as __addMiddleware,\n\tdispatch as __dispatch,\n\tgetState as __getState,\n\tsubscribe as __subscribe,\n\tsubscribeWithSelector as __subscribeWithSelector,\n\tcreateStore as __createStore,\n\tgetStore as __getStore,\n\tdeleteStore as __deleteStore,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAUO;AAcP,IAAAA,kBAKO;AAEP,yBAAwG;AAiCxG,IAAI,WAA4B;AAChC,IAAI,SAAoB,CAAC;AACzB,IAAM,iBAA8B,CAAC;AACrC,IAAM,cAAc,oBAAI,IAAkB;AAE1C,IAAM,cAAc,MAAM;AACzB,QAAM,WAAW,OAAO,QAAS,MAAO,EAAE,OAAQ,CAAE,cAAiC,CAAE,MAAM,KAAM,MAAO;AACzG,iBAAc,IAAK,IAAI,MAAM;AAE7B,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AAEN,aAAO,gCAAiB,QAAS;AAClC;AAEA,SAAS,cAAe,OAAe;AACtC,MAAK,OAAQ,MAAM,IAAK,GAAI;AAC3B,UAAM,IAAI,MAAO,oBAAqB,MAAM,IAAK,mBAAoB;AAAA,EACtE;AAEA,SAAQ,MAAM,IAAK,IAAI;AACxB;AAEA,IAAM,gBAAgB,CAAE,eAA4B;AACnD,cAAY,IAAK,UAAW;AAC7B;AAGA,IAAM,WAAW,CAAE,WAAiB;AACnC,MAAK,CAAE,UAAW;AACjB,mBAAe,KAAM,MAAO;AAE5B;AAAA,EACD;AAEA,SAAO,SAAS,SAAU,MAAO;AAClC;AAEA,IAAM,WAAW,MAAM;AACtB,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,SAAS;AAC1B;AAEA,IAAM,YAAY,CAAE,aAA0B;AAC7C,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,UAAW,QAAS;AACrC;AAGA,IAAM,wBAAwB,CAAO,UAA+B,aAA4C;AAC/G,MAAI,YAAY,SAAU,SAAS,CAAE;AAErC,SAAO,UAAW,MAAM;AACvB,UAAM,YAAY,SAAU,SAAS,CAAE;AAEvC,QAAK,cAAc,WAAY;AAC9B;AAAA,IACD;AAEA,gBAAY;AAEZ,aAAU,SAAU;AAAA,EACrB,CAAE;AACH;AAEA,IAAM,cAAc,MAAM;AACzB,MAAK,UAAW;AACf,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,iBAAW,+BAAgB;AAAA,IAC1B,SAAS,YAAY;AAAA,IACrB,YAAY,CAAE,yBAA0B;AACvC,aAAO,CAAE,GAAG,qBAAqB,GAAG,GAAG,MAAM,KAAM,WAAY,CAAE;AAAA,IAClE;AAAA,EACD,CAAE;AAEF,MAAK,eAAe,QAAS;AAC5B,mBAAe,QAAS,CAAE,WAAY,SAAU,MAAO,CAAE;AACzD,mBAAe,SAAS;AAAA,EACzB;AAEA,SAAO;AACR;AAEA,IAAM,WAAW,MAAM;AACtB,SAAO;AACR;AAEA,IAAM,cAAc,MAAM;AACzB,aAAW;AACX,WAAS,CAAC;AACV,iBAAe,SAAS;AACxB,cAAY,MAAM;AACnB;","names":["import_toolkit"]}
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/index.ts
2
2
  import {
3
- configureStore,
4
- combineReducers
3
+ combineReducers,
4
+ configureStore
5
5
  } from "@reduxjs/toolkit";
6
6
  import {
7
7
  createSelector,
@@ -49,6 +49,17 @@ var subscribe = (listener) => {
49
49
  }
50
50
  return instance.subscribe(listener);
51
51
  };
52
+ var subscribeWithSelector = (selector, listener) => {
53
+ let prevState = selector(getState());
54
+ return subscribe(() => {
55
+ const nextState = selector(getState());
56
+ if (prevState === nextState) {
57
+ return;
58
+ }
59
+ prevState = nextState;
60
+ listener(nextState);
61
+ });
62
+ };
52
63
  var createStore = () => {
53
64
  if (instance) {
54
65
  throw new Error("The store instance already exists.");
@@ -88,6 +99,7 @@ export {
88
99
  getStore as __getStore,
89
100
  registerSlice as __registerSlice,
90
101
  subscribe as __subscribe,
102
+ subscribeWithSelector as __subscribeWithSelector,
91
103
  useDispatch as __useDispatch,
92
104
  useSelector as __useSelector
93
105
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n\tReducersMapObject,\n\tconfigureStore,\n\tcombineReducers,\n\tMiddleware,\n\tSlice,\n\tAnyAction,\n\tEnhancedStore,\n\tStoreEnhancer,\n\tThunkMiddleware,\n} from '@reduxjs/toolkit';\n\nexport type {\n\tSlice,\n\tCreateSliceOptions,\n\tPayloadAction,\n\tStore,\n\tDispatch,\n\tAnyAction,\n\tAction,\n\tMiddlewareAPI,\n\tMiddleware,\n} from '@reduxjs/toolkit';\n\nexport {\n\tcreateSelector as __createSelector,\n\tcreateSlice as __createSlice,\n\tcreateAsyncThunk as __createAsyncThunk,\n\tcreateAction as __createAction,\n} from '@reduxjs/toolkit';\n\nexport { useSelector as __useSelector, useDispatch as __useDispatch, Provider as __StoreProvider } from 'react-redux';\n\n/**\n * Usage:\n *\n * const mySlice = addSlice( ... );\n *\n * type MySliceState = SliceState<typeof mySlice>;\n *\n * const value = useSelector( ( state: MySliceState ) => state.mySlice.value );\n */\nexport type SliceState< S extends Slice > = {\n\t[ key in S[ 'name' ] ]: ReturnType< S[ 'getInitialState' ] >;\n};\n\n// The `configureStore` function from Redux Toolkit infers its actions from the `reducers`\n// key of the initialization object. This is fine when creating the store statically, but\n// breaks in our case since we create the store dynamically, which means that TypeScript\n// can't infer the types. Therefore, we force the store to accept any actions using a\n// generic store type.\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyStore< State = any > = EnhancedStore<\n\tState,\n\tAnyAction,\n\t[ ThunkMiddleware< State, AnyAction > ],\n\t[ StoreEnhancer ]\n>;\n\ninterface SlicesMap {\n\t[ key: Slice[ 'name' ] ]: Slice;\n}\n\nlet instance: AnyStore | null = null;\nlet slices: SlicesMap = {};\nconst pendingActions: AnyAction[] = [];\nconst middlewares = new Set< Middleware >();\n\nconst getReducers = () => {\n\tconst reducers = Object.entries( slices ).reduce( ( reducersData: ReducersMapObject, [ name, slice ] ) => {\n\t\treducersData[ name ] = slice.reducer;\n\n\t\treturn reducersData;\n\t}, {} );\n\n\treturn combineReducers( reducers );\n};\n\nfunction registerSlice( slice: Slice ) {\n\tif ( slices[ slice.name ] ) {\n\t\tthrow new Error( `Slice with name \"${ slice.name }\" already exists.` );\n\t}\n\n\tslices[ slice.name ] = slice;\n}\n\nconst addMiddleware = ( middleware: Middleware ) => {\n\tmiddlewares.add( middleware );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See the comment above about `AnyStore`\nconst dispatch = ( action: any ) => {\n\tif ( ! instance ) {\n\t\tpendingActions.push( action );\n\n\t\treturn;\n\t}\n\n\treturn instance.dispatch( action );\n};\n\nconst getState = () => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.getState();\n};\n\nconst subscribe = ( listener: () => void ) => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.subscribe( listener );\n};\n\nconst createStore = () => {\n\tif ( instance ) {\n\t\tthrow new Error( 'The store instance already exists.' );\n\t}\n\n\tinstance = configureStore( {\n\t\treducer: getReducers(),\n\t\tmiddleware: ( getDefaultMiddleware ) => {\n\t\t\treturn [ ...getDefaultMiddleware(), ...Array.from( middlewares ) ];\n\t\t},\n\t} );\n\n\tif ( pendingActions.length ) {\n\t\tpendingActions.forEach( ( action ) => dispatch( action ) );\n\t\tpendingActions.length = 0;\n\t}\n\n\treturn instance as AnyStore;\n};\n\nconst getStore = () => {\n\treturn instance;\n};\n\nconst deleteStore = () => {\n\tinstance = null;\n\tslices = {};\n\tpendingActions.length = 0;\n\tmiddlewares.clear();\n};\n\nexport {\n\tregisterSlice as __registerSlice,\n\taddMiddleware as __addMiddleware,\n\tdispatch as __dispatch,\n\tgetState as __getState,\n\tsubscribe as __subscribe,\n\tcreateStore as __createStore,\n\tgetStore as __getStore,\n\tdeleteStore as __deleteStore,\n};\n"],"mappings":";AAAA;AAAA,EAEC;AAAA,EACA;AAAA,OAOM;AAcP;AAAA,EACmB;AAAA,EACH;AAAA,EACK;AAAA,EACJ;AAAA,OACV;AAEP,SAAwB,aAA8B,aAA2B,gBAAuB;AAiCxG,IAAI,WAA4B;AAChC,IAAI,SAAoB,CAAC;AACzB,IAAM,iBAA8B,CAAC;AACrC,IAAM,cAAc,oBAAI,IAAkB;AAE1C,IAAM,cAAc,MAAM;AACzB,QAAM,WAAW,OAAO,QAAS,MAAO,EAAE,OAAQ,CAAE,cAAiC,CAAE,MAAM,KAAM,MAAO;AACzG,iBAAc,IAAK,IAAI,MAAM;AAE7B,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AAEN,SAAO,gBAAiB,QAAS;AAClC;AAEA,SAAS,cAAe,OAAe;AACtC,MAAK,OAAQ,MAAM,IAAK,GAAI;AAC3B,UAAM,IAAI,MAAO,oBAAqB,MAAM,IAAK,mBAAoB;AAAA,EACtE;AAEA,SAAQ,MAAM,IAAK,IAAI;AACxB;AAEA,IAAM,gBAAgB,CAAE,eAA4B;AACnD,cAAY,IAAK,UAAW;AAC7B;AAGA,IAAM,WAAW,CAAE,WAAiB;AACnC,MAAK,CAAE,UAAW;AACjB,mBAAe,KAAM,MAAO;AAE5B;AAAA,EACD;AAEA,SAAO,SAAS,SAAU,MAAO;AAClC;AAEA,IAAM,WAAW,MAAM;AACtB,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,SAAS;AAC1B;AAEA,IAAM,YAAY,CAAE,aAA0B;AAC7C,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,UAAW,QAAS;AACrC;AAEA,IAAM,cAAc,MAAM;AACzB,MAAK,UAAW;AACf,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,aAAW,eAAgB;AAAA,IAC1B,SAAS,YAAY;AAAA,IACrB,YAAY,CAAE,yBAA0B;AACvC,aAAO,CAAE,GAAG,qBAAqB,GAAG,GAAG,MAAM,KAAM,WAAY,CAAE;AAAA,IAClE;AAAA,EACD,CAAE;AAEF,MAAK,eAAe,QAAS;AAC5B,mBAAe,QAAS,CAAE,WAAY,SAAU,MAAO,CAAE;AACzD,mBAAe,SAAS;AAAA,EACzB;AAEA,SAAO;AACR;AAEA,IAAM,WAAW,MAAM;AACtB,SAAO;AACR;AAEA,IAAM,cAAc,MAAM;AACzB,aAAW;AACX,WAAS,CAAC;AACV,iBAAe,SAAS;AACxB,cAAY,MAAM;AACnB;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n\ttype AnyAction,\n\tcombineReducers,\n\tconfigureStore,\n\ttype EnhancedStore,\n\ttype Middleware,\n\ttype ReducersMapObject,\n\ttype Slice,\n\ttype StoreEnhancer,\n\ttype ThunkMiddleware,\n} from '@reduxjs/toolkit';\n\nexport type {\n\tSlice,\n\tCreateSliceOptions,\n\tPayloadAction,\n\tStore,\n\tDispatch,\n\tAnyAction,\n\tAction,\n\tMiddlewareAPI,\n\tMiddleware,\n} from '@reduxjs/toolkit';\n\nexport {\n\tcreateSelector as __createSelector,\n\tcreateSlice as __createSlice,\n\tcreateAsyncThunk as __createAsyncThunk,\n\tcreateAction as __createAction,\n} from '@reduxjs/toolkit';\n\nexport { useSelector as __useSelector, useDispatch as __useDispatch, Provider as __StoreProvider } from 'react-redux';\n\n/**\n * Usage:\n *\n * const mySlice = addSlice( ... );\n *\n * type MySliceState = SliceState<typeof mySlice>;\n *\n * const value = useSelector( ( state: MySliceState ) => state.mySlice.value );\n */\nexport type SliceState< S extends Slice > = {\n\t[ key in S[ 'name' ] ]: ReturnType< S[ 'getInitialState' ] >;\n};\n\n// The `configureStore` function from Redux Toolkit infers its actions from the `reducers`\n// key of the initialization object. This is fine when creating the store statically, but\n// breaks in our case since we create the store dynamically, which means that TypeScript\n// can't infer the types. Therefore, we force the store to accept any actions using a\n// generic store type.\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyStore< State = any > = EnhancedStore<\n\tState,\n\tAnyAction,\n\t[ ThunkMiddleware< State, AnyAction > ],\n\t[ StoreEnhancer ]\n>;\n\ninterface SlicesMap {\n\t[ key: Slice[ 'name' ] ]: Slice;\n}\n\nlet instance: AnyStore | null = null;\nlet slices: SlicesMap = {};\nconst pendingActions: AnyAction[] = [];\nconst middlewares = new Set< Middleware >();\n\nconst getReducers = () => {\n\tconst reducers = Object.entries( slices ).reduce( ( reducersData: ReducersMapObject, [ name, slice ] ) => {\n\t\treducersData[ name ] = slice.reducer;\n\n\t\treturn reducersData;\n\t}, {} );\n\n\treturn combineReducers( reducers );\n};\n\nfunction registerSlice( slice: Slice ) {\n\tif ( slices[ slice.name ] ) {\n\t\tthrow new Error( `Slice with name \"${ slice.name }\" already exists.` );\n\t}\n\n\tslices[ slice.name ] = slice;\n}\n\nconst addMiddleware = ( middleware: Middleware ) => {\n\tmiddlewares.add( middleware );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- See the comment above about `AnyStore`\nconst dispatch = ( action: any ) => {\n\tif ( ! instance ) {\n\t\tpendingActions.push( action );\n\n\t\treturn;\n\t}\n\n\treturn instance.dispatch( action );\n};\n\nconst getState = () => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.getState();\n};\n\nconst subscribe = ( listener: () => void ) => {\n\tif ( ! instance ) {\n\t\tthrow new Error( 'The store instance does not exist.' );\n\t}\n\n\treturn instance.subscribe( listener );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst subscribeWithSelector = < T >( selector: ( state: any ) => T, listener: ( selectedState: T ) => void ) => {\n\tlet prevState = selector( getState() );\n\n\treturn subscribe( () => {\n\t\tconst nextState = selector( getState() );\n\n\t\tif ( prevState === nextState ) {\n\t\t\treturn;\n\t\t}\n\n\t\tprevState = nextState;\n\n\t\tlistener( nextState );\n\t} );\n};\n\nconst createStore = () => {\n\tif ( instance ) {\n\t\tthrow new Error( 'The store instance already exists.' );\n\t}\n\n\tinstance = configureStore( {\n\t\treducer: getReducers(),\n\t\tmiddleware: ( getDefaultMiddleware ) => {\n\t\t\treturn [ ...getDefaultMiddleware(), ...Array.from( middlewares ) ];\n\t\t},\n\t} );\n\n\tif ( pendingActions.length ) {\n\t\tpendingActions.forEach( ( action ) => dispatch( action ) );\n\t\tpendingActions.length = 0;\n\t}\n\n\treturn instance as AnyStore;\n};\n\nconst getStore = () => {\n\treturn instance;\n};\n\nconst deleteStore = () => {\n\tinstance = null;\n\tslices = {};\n\tpendingActions.length = 0;\n\tmiddlewares.clear();\n};\n\nexport {\n\tregisterSlice as __registerSlice,\n\taddMiddleware as __addMiddleware,\n\tdispatch as __dispatch,\n\tgetState as __getState,\n\tsubscribe as __subscribe,\n\tsubscribeWithSelector as __subscribeWithSelector,\n\tcreateStore as __createStore,\n\tgetStore as __getStore,\n\tdeleteStore as __deleteStore,\n};\n"],"mappings":";AAAA;AAAA,EAEC;AAAA,EACA;AAAA,OAOM;AAcP;AAAA,EACmB;AAAA,EACH;AAAA,EACK;AAAA,EACJ;AAAA,OACV;AAEP,SAAwB,aAA8B,aAA2B,gBAAuB;AAiCxG,IAAI,WAA4B;AAChC,IAAI,SAAoB,CAAC;AACzB,IAAM,iBAA8B,CAAC;AACrC,IAAM,cAAc,oBAAI,IAAkB;AAE1C,IAAM,cAAc,MAAM;AACzB,QAAM,WAAW,OAAO,QAAS,MAAO,EAAE,OAAQ,CAAE,cAAiC,CAAE,MAAM,KAAM,MAAO;AACzG,iBAAc,IAAK,IAAI,MAAM;AAE7B,WAAO;AAAA,EACR,GAAG,CAAC,CAAE;AAEN,SAAO,gBAAiB,QAAS;AAClC;AAEA,SAAS,cAAe,OAAe;AACtC,MAAK,OAAQ,MAAM,IAAK,GAAI;AAC3B,UAAM,IAAI,MAAO,oBAAqB,MAAM,IAAK,mBAAoB;AAAA,EACtE;AAEA,SAAQ,MAAM,IAAK,IAAI;AACxB;AAEA,IAAM,gBAAgB,CAAE,eAA4B;AACnD,cAAY,IAAK,UAAW;AAC7B;AAGA,IAAM,WAAW,CAAE,WAAiB;AACnC,MAAK,CAAE,UAAW;AACjB,mBAAe,KAAM,MAAO;AAE5B;AAAA,EACD;AAEA,SAAO,SAAS,SAAU,MAAO;AAClC;AAEA,IAAM,WAAW,MAAM;AACtB,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,SAAS;AAC1B;AAEA,IAAM,YAAY,CAAE,aAA0B;AAC7C,MAAK,CAAE,UAAW;AACjB,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,SAAO,SAAS,UAAW,QAAS;AACrC;AAGA,IAAM,wBAAwB,CAAO,UAA+B,aAA4C;AAC/G,MAAI,YAAY,SAAU,SAAS,CAAE;AAErC,SAAO,UAAW,MAAM;AACvB,UAAM,YAAY,SAAU,SAAS,CAAE;AAEvC,QAAK,cAAc,WAAY;AAC9B;AAAA,IACD;AAEA,gBAAY;AAEZ,aAAU,SAAU;AAAA,EACrB,CAAE;AACH;AAEA,IAAM,cAAc,MAAM;AACzB,MAAK,UAAW;AACf,UAAM,IAAI,MAAO,oCAAqC;AAAA,EACvD;AAEA,aAAW,eAAgB;AAAA,IAC1B,SAAS,YAAY;AAAA,IACrB,YAAY,CAAE,yBAA0B;AACvC,aAAO,CAAE,GAAG,qBAAqB,GAAG,GAAG,MAAM,KAAM,WAAY,CAAE;AAAA,IAClE;AAAA,EACD,CAAE;AAEF,MAAK,eAAe,QAAS;AAC5B,mBAAe,QAAS,CAAE,WAAY,SAAU,MAAO,CAAE;AACzD,mBAAe,SAAS;AAAA,EACzB;AAEA,SAAO;AACR;AAEA,IAAM,WAAW,MAAM;AACtB,SAAO;AACR;AAEA,IAAM,cAAc,MAAM;AACzB,aAAW;AACX,WAAS,CAAC;AACV,iBAAe,SAAS;AACxB,cAAY,MAAM;AACnB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elementor/store",
3
- "version": "0.8.6",
3
+ "version": "3.32.0-20",
4
4
  "private": false,
5
5
  "author": "Elementor Team",
6
6
  "homepage": "https://elementor.com/",
@@ -18,11 +18,11 @@
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "git+https://github.com/elementor/elementor-packages.git",
21
+ "url": "git+https://github.com/elementor/elementor.git",
22
22
  "directory": "packages/libs/store"
23
23
  },
24
24
  "bugs": {
25
- "url": "https://github.com/elementor/elementor-packages/issues"
25
+ "url": "https://github.com/elementor/elementor/issues"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
@@ -44,5 +44,8 @@
44
44
  "dependencies": {
45
45
  "@reduxjs/toolkit": "^1.9.7",
46
46
  "react-redux": "^8.1.3"
47
+ },
48
+ "devDependencies": {
49
+ "tsup": "^8.3.5"
47
50
  }
48
51
  }
package/src/index.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
- ReducersMapObject,
3
- configureStore,
2
+ type AnyAction,
4
3
  combineReducers,
5
- Middleware,
6
- Slice,
7
- AnyAction,
8
- EnhancedStore,
9
- StoreEnhancer,
10
- ThunkMiddleware,
4
+ configureStore,
5
+ type EnhancedStore,
6
+ type Middleware,
7
+ type ReducersMapObject,
8
+ type Slice,
9
+ type StoreEnhancer,
10
+ type ThunkMiddleware,
11
11
  } from '@reduxjs/toolkit';
12
12
 
13
13
  export type {
@@ -116,6 +116,23 @@ const subscribe = ( listener: () => void ) => {
116
116
  return instance.subscribe( listener );
117
117
  };
118
118
 
119
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
120
+ const subscribeWithSelector = < T >( selector: ( state: any ) => T, listener: ( selectedState: T ) => void ) => {
121
+ let prevState = selector( getState() );
122
+
123
+ return subscribe( () => {
124
+ const nextState = selector( getState() );
125
+
126
+ if ( prevState === nextState ) {
127
+ return;
128
+ }
129
+
130
+ prevState = nextState;
131
+
132
+ listener( nextState );
133
+ } );
134
+ };
135
+
119
136
  const createStore = () => {
120
137
  if ( instance ) {
121
138
  throw new Error( 'The store instance already exists.' );
@@ -153,6 +170,7 @@ export {
153
170
  dispatch as __dispatch,
154
171
  getState as __getState,
155
172
  subscribe as __subscribe,
173
+ subscribeWithSelector as __subscribeWithSelector,
156
174
  createStore as __createStore,
157
175
  getStore as __getStore,
158
176
  deleteStore as __deleteStore,