@plurid/plurid-ui-state-react 0.0.0-5 → 0.0.0-8

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.
@@ -1,7 +1,10 @@
1
+ import { ActionCreatorWithPayload, ActionCreatorWithoutPayload } from '@reduxjs/toolkit';
1
2
  export interface StateOfAny {
2
3
  [key: string]: any;
3
4
  }
4
5
  export declare type StateWithSlice<Key extends string, State = any> = StateOfAny & Record<Key, State>;
6
+ export declare type DispatchAction<A> = A extends ActionCreatorWithPayload<infer P, infer T> ? P extends void ? () => ReturnType<ActionCreatorWithoutPayload<T>> : (payload: P) => ReturnType<ActionCreatorWithPayload<P, T>> : A extends ActionCreatorWithoutPayload<infer T> ? () => ReturnType<ActionCreatorWithoutPayload<T>> : void;
7
+ export declare type DispatchActionWithoutPayload<A> = A extends ActionCreatorWithoutPayload<infer T> ? () => ReturnType<ActionCreatorWithoutPayload<T>> : void;
5
8
  export interface Notification {
6
9
  id: string;
7
10
  text: string;
@@ -10,3 +13,6 @@ export interface Notification {
10
13
  timeout?: number;
11
14
  wordBreak?: boolean;
12
15
  }
16
+ export declare type AddNotificationPayload = Partial<Notification> & {
17
+ text: string;
18
+ };
@@ -16,8 +16,10 @@ const initialState$4 = {
16
16
  scripts: []
17
17
  };
18
18
 
19
+ const name$4 = "head";
20
+
19
21
  const factory$4 = (state = initialState$4) => createSlice({
20
- name: "head",
22
+ name: name$4,
21
23
  initialState: state,
22
24
  reducers: {
23
25
  setHead: (state, action) => {
@@ -40,6 +42,8 @@ const reducer$4 = slice$4.reducer;
40
42
 
41
43
  var index$4 = Object.freeze({
42
44
  __proto__: null,
45
+ initialState: initialState$4,
46
+ name: name$4,
43
47
  factory: factory$4,
44
48
  slice: slice$4,
45
49
  actions: actions$4,
@@ -50,35 +54,51 @@ var index$4 = Object.freeze({
50
54
 
51
55
  const initialState$3 = [];
52
56
 
57
+ const name$3 = "notifications";
58
+
53
59
  const factory$3 = (state = initialState$3) => createSlice({
54
- name: "notifications",
60
+ name: name$3,
55
61
  initialState: state,
56
62
  reducers: {
57
- addNotification: (state, action) => {
58
- const newNotification = Object.assign({}, action.payload);
63
+ new: (state, action) => {
64
+ const id = Math.random() + "";
65
+ const text = action.payload;
66
+ const newNotification = {
67
+ id: id,
68
+ text: text
69
+ };
70
+ return [ ...state, newNotification ];
71
+ },
72
+ add: (state, action) => {
73
+ const id = action.payload.id || Math.random() + "";
74
+ const newNotification = Object.assign(Object.assign({}, action.payload), {
75
+ id: id
76
+ });
59
77
  const existingNotification = state.find((notification => notification.id === newNotification.id));
60
78
  if (existingNotification) {
61
- state = state.map((notification => {
79
+ const newState = state.map((notification => {
62
80
  if (notification.id === newNotification.id) {
63
81
  return newNotification;
64
82
  }
65
83
  return notification;
66
84
  }));
67
- return;
85
+ return newState;
68
86
  }
69
- state = [ ...state, newNotification ];
87
+ return [ ...state, newNotification ];
70
88
  },
71
- updateNotification: (state, action) => {
72
- state = state.map((message => {
89
+ update: (state, action) => {
90
+ const newState = state.map((message => {
73
91
  if (message.id === action.payload.id) {
74
92
  const newNotification = Object.assign({}, action.payload);
75
93
  return newNotification;
76
94
  }
77
95
  return Object.assign({}, message);
78
96
  }));
97
+ return newState;
79
98
  },
80
- removeNotification: (state, action) => {
81
- state = state.filter((message => message.id !== action.payload));
99
+ remove: (state, action) => {
100
+ const newState = state.filter((message => message.id !== action.payload));
101
+ return newState;
82
102
  }
83
103
  }
84
104
  });
@@ -97,6 +117,8 @@ const reducer$3 = slice$3.reducer;
97
117
 
98
118
  var index$3 = Object.freeze({
99
119
  __proto__: null,
120
+ initialState: initialState$3,
121
+ name: name$3,
100
122
  factory: factory$3,
101
123
  slice: slice$3,
102
124
  actions: actions$3,
@@ -108,12 +130,17 @@ const initialState$2 = {
108
130
  global: true
109
131
  };
110
132
 
133
+ const name$2 = "shortcuts";
134
+
111
135
  const factory$2 = (state = initialState$2) => createSlice({
112
- name: "shortcuts",
136
+ name: name$2,
113
137
  initialState: state,
114
138
  reducers: {
115
- toggleGlobalShortcuts: (state, action) => {
116
- state.global = typeof action.payload === "boolean" ? action.payload : !state.global;
139
+ setGlobalShortcuts: (state, action) => {
140
+ state.global = action.payload;
141
+ },
142
+ toggleGlobalShortcuts: (state, _action) => {
143
+ state.global = !state.global;
117
144
  }
118
145
  }
119
146
  });
@@ -132,6 +159,8 @@ const reducer$2 = slice$2.reducer;
132
159
 
133
160
  var index$2 = Object.freeze({
134
161
  __proto__: null,
162
+ initialState: initialState$2,
163
+ name: name$2,
135
164
  factory: factory$2,
136
165
  slice: slice$2,
137
166
  actions: actions$2,
@@ -144,8 +173,10 @@ const initialState$1 = {
144
173
  tray: false
145
174
  };
146
175
 
176
+ const name$1 = "sitting";
177
+
147
178
  const factory$1 = (state = initialState$1) => createSlice({
148
- name: "sitting",
179
+ name: name$1,
149
180
  initialState: state,
150
181
  reducers: {
151
182
  setSittingCurrentLink: (state, action) => {
@@ -154,8 +185,11 @@ const factory$1 = (state = initialState$1) => createSlice({
154
185
  currentLink: currentLink
155
186
  });
156
187
  },
157
- toggleSittingTray: (state, action) => {
158
- state.tray = typeof action.payload === "boolean" ? action.payload : !state.tray;
188
+ setSittingTray: (state, action) => {
189
+ state.tray = action.payload;
190
+ },
191
+ toggleSittingTray: (state, _action) => {
192
+ state.tray = !state.tray;
159
193
  }
160
194
  }
161
195
  });
@@ -177,6 +211,8 @@ const reducer$1 = slice$1.reducer;
177
211
 
178
212
  var index$1 = Object.freeze({
179
213
  __proto__: null,
214
+ initialState: initialState$1,
215
+ name: name$1,
180
216
  factory: factory$1,
181
217
  slice: slice$1,
182
218
  actions: actions$1,
@@ -189,8 +225,10 @@ const initialState = {
189
225
  interaction: Object.assign({}, plurid)
190
226
  };
191
227
 
228
+ const name = "themes";
229
+
192
230
  const factory = (state = initialState) => createSlice({
193
- name: "themes",
231
+ name: name,
194
232
  initialState: state,
195
233
  reducers: {
196
234
  setTheme: (state, action) => {
@@ -223,6 +261,8 @@ const reducer = slice.reducer;
223
261
 
224
262
  var index = Object.freeze({
225
263
  __proto__: null,
264
+ initialState: initialState,
265
+ name: name,
226
266
  factory: factory,
227
267
  slice: slice,
228
268
  actions: actions,
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../source/modules/head/index.ts","../source/modules/notifications/index.ts","../source/modules/shortcuts/index.ts","../source/modules/sitting/index.ts","../source/modules/themes/index.ts"],"sourcesContent":["// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface HeadState {\n title: string;\n description: string;\n canonicalURL: string;\n ogTitle: string;\n ogImage: string;\n ogURL: string;\n ogDescription: string;\n styles: string[];\n scripts: string[];\n}\n\n\nconst initialState: HeadState = {\n title: '',\n description: '',\n ogTitle: '',\n ogImage: '',\n ogURL: '',\n ogDescription: '',\n canonicalURL: '',\n styles: [],\n scripts: [],\n};\n\n\nexport const factory = (\n state: HeadState = initialState,\n) => createSlice({\n name: 'head',\n initialState: state,\n reducers: {\n setHead: (\n state,\n action: PayloadAction<Partial<HeadState>>,\n ) => {\n state = {\n ...state,\n ...action,\n };\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nexport const getHead = (\n state: StateWithSlice<'head', HeadState>,\n): HeadState => state.head;\n\nexport const selectors = {\n getHead,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n Notification,\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport type NotificationsState = Notification[];\n\n\nconst initialState: NotificationsState = [];\n\n\nexport const factory = (\n state: NotificationsState = initialState,\n) => createSlice({\n name: 'notifications',\n initialState: state,\n reducers: {\n addNotification: (\n state,\n action: PayloadAction<Notification>,\n ) => {\n const newNotification: Notification = {\n ...action.payload,\n };\n\n const existingNotification = state.find(\n notification => notification.id === newNotification.id,\n );\n\n if (existingNotification) {\n state = state.map(notification => {\n if (notification.id === newNotification.id) {\n return newNotification;\n }\n\n return notification;\n });\n\n return;\n }\n\n state = [\n ...state,\n newNotification,\n ];\n },\n updateNotification: (\n state,\n action: PayloadAction<Notification>,\n ) => {\n state = state.map(message => {\n if (message.id === action.payload.id) {\n const newNotification: Notification = {\n ...action.payload,\n };\n return newNotification;\n }\n\n return {\n ...message,\n };\n });\n },\n removeNotification: (\n state,\n action: PayloadAction<string>,\n ) => {\n state = state.filter(\n message => message.id !== action.payload,\n );\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getAll = (\n state: StateWithSlice<'notifications', NotificationsState>,\n) => state.notifications;\n\nexport const selectors = {\n getAll,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ShortcutsState {\n global: boolean;\n}\n\n\nconst initialState: ShortcutsState = {\n global: true,\n};\n\n\nexport const factory = (\n state: ShortcutsState = initialState,\n) => createSlice({\n name: 'shortcuts',\n initialState: state,\n reducers: {\n toggleGlobalShortcuts: (\n state,\n action: PayloadAction<boolean> | PayloadAction<void>,\n ) => {\n state.global = typeof action.payload === 'boolean'\n ? action.payload\n : !state.global;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGlobal = (\n state: StateWithSlice<'shortcuts', ShortcutsState>,\n) => state.shortcuts.global;\n\nexport const selectors = {\n getGlobal,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface SittingState {\n currentLink: string;\n tray: boolean;\n}\n\n\nconst initialState: SittingState = {\n currentLink: '',\n tray: false,\n};\n\n\nexport const factory = (\n state: SittingState = initialState,\n) => createSlice({\n name: 'sitting',\n initialState: state,\n reducers: {\n setSittingCurrentLink: (\n state,\n action: PayloadAction<string>,\n ) => {\n const currentLink = action.payload;\n\n return {\n ...state,\n currentLink,\n };\n },\n toggleSittingTray: (\n state,\n action: PayloadAction<boolean> | PayloadAction<void>,\n ) => {\n state.tray = typeof action.payload === 'boolean'\n ? action.payload\n : !state.tray;\n }\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getCurrentLink = (\n state: StateWithSlice<'sitting', SittingState>,\n) => state.sitting.currentLink;\nconst getTray = (\n state: StateWithSlice<'sitting', SittingState>,\n) => state.sitting.tray;\n\nexport const selectors = {\n getCurrentLink,\n getTray,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n\n\n import {\n Theme,\n plurid,\n } from '@plurid/plurid-themes';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ThemesState {\n general: Theme;\n interaction: Theme;\n}\n\n\nconst initialState: ThemesState = {\n general: {\n ...plurid,\n },\n interaction: {\n ...plurid,\n },\n};\n\n\nexport interface SetThemePayload {\n type: 'general' | 'interaction';\n theme: Theme;\n}\n\n\nexport const factory = (\n state: ThemesState = initialState,\n) => createSlice({\n name: 'themes',\n initialState: state,\n reducers: {\n setTheme: (\n state,\n action: PayloadAction<SetThemePayload>,\n ) => {\n const {\n type,\n theme,\n } = action.payload;\n\n state[type] = theme;\n },\n setGeneralTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.general = action.payload;\n },\n setInteractionTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.interaction = action.payload;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGeneralTheme = (\n state: StateWithSlice<'themes', ThemesState>,\n) => state.themes.general;\nconst getInteractionTheme = (\n state: StateWithSlice<'themes', ThemesState>,\n) => state.themes.interaction;\n\nexport const selectors = {\n getGeneralTheme,\n getInteractionTheme,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n"],"names":["initialState","title","description","ogTitle","ogImage","ogURL","ogDescription","canonicalURL","styles","scripts","factory","state","createSlice","name","reducers","setHead","action","Object","assign","slice","actions","getHead","head","selectors","reducer","addNotification","newNotification","payload","existingNotification","find","notification","id","map","updateNotification","message","removeNotification","filter","getAll","notifications","global","toggleGlobalShortcuts","getGlobal","shortcuts","currentLink","tray","setSittingCurrentLink","toggleSittingTray","getCurrentLink","sitting","getTray","general","plurid","interaction","setTheme","type","theme","setGeneralTheme","setInteractionTheme","getGeneralTheme","themes","getInteractionTheme"],"mappings":";;;;;;AAgCA,MAAMA,iBAA0B;IAC5BC,OAAO;IACPC,aAAa;IACbC,SAAS;IACTC,SAAS;IACTC,OAAO;IACPC,eAAe;IACfC,cAAc;IACdC,QAAQ;IACRC,SAAS;;;AAIN,MAAMC,YAAU,CACnBC,QAAmBX,mBAClBY,YAAY;IACbC,MAAM;IACNb,cAAcW;IACdG,UAAU;QACNC,SAAS,CACLJ,OACAK;YAEAL,QACOM,OAAAC,OAAAD,OAAAC,OAAA,IAAAP,QACAK;;;;;AAMZ,MAAMG,UAAQT;;AAMd,MAAMU,YAAUD,QAAMC;;AAGtB,MAAMC,UACTV,SACYA,MAAMW;;AAEf,MAAMC,cAAY;IACrBF,SAAAA;;;AAIG,MAAMG,YAAUL,QAAMK;;;;;;;;;;;;AC1D7B,MAAMxB,iBAAmC;;AAGlC,MAAMU,YAAU,CACnBC,QAA4BX,mBAC3BY,YAAY;IACbC,MAAM;IACNb,cAAcW;IACdG,UAAU;QACNW,iBAAiB,CACbd,OACAK;YAEA,MAAMU,kBACCT,OAAAC,OAAA,IAAAF,OAAOW;YAGd,MAAMC,uBAAuBjB,MAAMkB,MAC/BC,gBAAgBA,aAAaC,OAAOL,gBAAgBK;YAGxD,IAAIH,sBAAsB;gBACtBjB,QAAQA,MAAMqB,KAAIF;oBACd,IAAIA,aAAaC,OAAOL,gBAAgBK,IAAI;wBACxC,OAAOL;;oBAGX,OAAOI;;gBAGX;;YAGJnB,QAAQ,KACDA,OACHe;;QAGRO,oBAAoB,CAChBtB,OACAK;YAEAL,QAAQA,MAAMqB,KAAIE;gBACd,IAAIA,QAAQH,OAAOf,OAAOW,QAAQI,IAAI;oBAClC,MAAML,kBACCT,OAAAC,OAAA,IAAAF,OAAOW;oBAEd,OAAOD;;gBAGX,OAAAT,OAAAC,OAAA,IACOgB;;;QAIfC,oBAAoB,CAChBxB,OACAK;YAEAL,QAAQA,MAAMyB,QACVF,WAAWA,QAAQH,OAAOf,OAAOW;;;;;AAM1C,MAAMR,UAAQT;;AAMd,MAAMU,YAAUD,QAAMC;;AAG7B,MAAMiB,SACF1B,SACCA,MAAM2B;;AAEJ,MAAMf,cAAY;IACrBc,QAAAA;;;AAIG,MAAMb,YAAUL,QAAMK;;;;;;;;;;;ACnF7B,MAAMxB,iBAA+B;IACjCuC,QAAQ;;;AAIL,MAAM7B,YAAU,CACnBC,QAAwBX,mBACvBY,YAAY;IACbC,MAAM;IACNb,cAAcW;IACdG,UAAU;QACN0B,uBAAuB,CACnB7B,OACAK;YAEAL,MAAM4B,gBAAgBvB,OAAOW,YAAY,YACnCX,OAAOW,WACNhB,MAAM4B;;;;;AAKlB,MAAMpB,UAAQT;;AAMd,MAAMU,YAAUD,QAAMC;;AAG7B,MAAMqB,YACF9B,SACCA,MAAM+B,UAAUH;;AAEd,MAAMhB,cAAY;IACrBkB,WAAAA;;;AAIG,MAAMjB,YAAUL,QAAMK;;;;;;;;;;;ACvC7B,MAAMxB,iBAA6B;IAC/B2C,aAAa;IACbC,MAAM;;;AAIH,MAAMlC,YAAU,CACnBC,QAAsBX,mBACrBY,YAAY;IACbC,MAAM;IACNb,cAAcW;IACdG,UAAU;QACN+B,uBAAuB,CACnBlC,OACAK;YAEA,MAAM2B,cAAc3B,OAAOW;YAE3B,OACOV,OAAAC,OAAAD,OAAAC,OAAA,IAAAP,QACH;gBAAAgC,aAAAA;;;QAGRG,mBAAmB,CACfnC,OACAK;YAEAL,MAAMiC,cAAc5B,OAAOW,YAAY,YACjCX,OAAOW,WACNhB,MAAMiC;;;;;AAKlB,MAAMzB,UAAQT;;AAMd,MAAMU,YAAUD,QAAMC;;AAG7B,MAAM2B,iBACFpC,SACCA,MAAMqC,QAAQL;;AACnB,MAAMM,UACFtC,SACCA,MAAMqC,QAAQJ;;AAEZ,MAAMrB,cAAY;IACrBwB,gBAAAA;IACAE,SAAAA;;;AAIG,MAAMzB,YAAUL,QAAMK;;;;;;;;;;;AClD7B,MAAMxB,eAA4B;IAC9BkD,SAAOjC,OAAAC,OAAA,IACAiC;IAEPC,aAAWnC,OAAAC,OAAA,IACJiC;;;AAWJ,MAAMzC,UAAU,CACnBC,QAAqBX,iBACpBY,YAAY;IACbC,MAAM;IACNb,cAAcW;IACdG,UAAU;QACNuC,UAAU,CACN1C,OACAK;YAEA,OAAMsC,MACFA,MAAIC,OACJA,SACAvC,OAAOW;YAEXhB,MAAM2C,QAAQC;;QAElBC,iBAAiB,CACb7C,OACAK;YAEAL,MAAMuC,UAAUlC,OAAOW;;QAE3B8B,qBAAqB,CACjB9C,OACAK;YAEAL,MAAMyC,cAAcpC,OAAOW;;;;;AAKhC,MAAMR,QAAQT;;AAMd,MAAMU,UAAUD,MAAMC;;AAG7B,MAAMsC,kBACF/C,SACCA,MAAMgD,OAAOT;;AAClB,MAAMU,sBACFjD,SACCA,MAAMgD,OAAOP;;AAEX,MAAM7B,YAAY;IACrBmC,iBAAAA;IACAE,qBAAAA;;;AAIG,MAAMpC,UAAUL,MAAMK;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../source/modules/head/index.ts","../source/modules/notifications/index.ts","../source/modules/shortcuts/index.ts","../source/modules/sitting/index.ts","../source/modules/themes/index.ts"],"sourcesContent":["// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface HeadState {\n title: string;\n description: string;\n canonicalURL: string;\n ogTitle: string;\n ogImage: string;\n ogURL: string;\n ogDescription: string;\n styles: string[];\n scripts: string[];\n}\n\n\nexport const initialState: HeadState = {\n title: '',\n description: '',\n ogTitle: '',\n ogImage: '',\n ogURL: '',\n ogDescription: '',\n canonicalURL: '',\n styles: [],\n scripts: [],\n};\n\nexport const name = 'head' as const;\n\n\nexport const factory = (\n state: HeadState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setHead: (\n state,\n action: PayloadAction<Partial<HeadState>>,\n ) => {\n state = {\n ...state,\n ...action,\n };\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nexport const getHead = (\n state: StateWithSlice<typeof name, HeadState>,\n): HeadState => state.head;\n\nexport const selectors = {\n getHead,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n Notification,\n AddNotificationPayload,\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport type NotificationsState = Notification[];\n\n\nexport const initialState: NotificationsState = [];\n\nexport const name = 'notifications' as const;\n\n\nexport const factory = (\n state: NotificationsState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n new: (\n state,\n action: PayloadAction<string>,\n ) => {\n const id = Math.random() + '';\n const text = action.payload;\n\n const newNotification: Notification = {\n id,\n text,\n };\n\n return [\n ...state,\n newNotification,\n ];\n },\n add: (\n state,\n action: PayloadAction<AddNotificationPayload>,\n ) => {\n const id = action.payload.id || Math.random() + '';\n\n const newNotification: Notification = {\n ...action.payload,\n id,\n };\n\n const existingNotification = state.find(\n notification => notification.id === newNotification.id,\n );\n\n if (existingNotification) {\n const newState = state.map(notification => {\n if (notification.id === newNotification.id) {\n return newNotification;\n }\n\n return notification;\n });\n\n return newState;\n }\n\n return [\n ...state,\n newNotification,\n ];\n },\n update: (\n state,\n action: PayloadAction<Notification>,\n ) => {\n const newState = state.map(message => {\n if (message.id === action.payload.id) {\n const newNotification: Notification = {\n ...action.payload,\n };\n return newNotification;\n }\n\n return {\n ...message,\n };\n });\n\n return newState;\n },\n remove: (\n state,\n action: PayloadAction<string>,\n ) => {\n const newState = state.filter(\n message => message.id !== action.payload,\n );\n\n return newState;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getAll = (\n state: StateWithSlice<typeof name, NotificationsState>,\n) => state.notifications;\n\nexport const selectors = {\n getAll,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ShortcutsState {\n global: boolean;\n}\n\n\nexport const initialState: ShortcutsState = {\n global: true,\n};\n\nexport const name = 'shortcuts' as const;\n\n\nexport const factory = (\n state: ShortcutsState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setGlobalShortcuts: (\n state,\n action: PayloadAction<boolean>,\n ) => {\n state.global = action.payload;\n },\n toggleGlobalShortcuts: (\n state,\n _action: PayloadAction<void>,\n ) => {\n state.global = !state.global;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGlobal = (\n state: StateWithSlice<typeof name, ShortcutsState>,\n) => state.shortcuts.global;\n\nexport const selectors = {\n getGlobal,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface SittingState {\n currentLink: string;\n tray: boolean;\n}\n\n\nexport const initialState: SittingState = {\n currentLink: '',\n tray: false,\n};\n\nexport const name = 'sitting' as const;\n\n\nexport const factory = (\n state: SittingState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setSittingCurrentLink: (\n state,\n action: PayloadAction<string>,\n ) => {\n const currentLink = action.payload;\n\n return {\n ...state,\n currentLink,\n };\n },\n setSittingTray: (\n state,\n action: PayloadAction<boolean>,\n ) => {\n state.tray = action.payload;\n },\n toggleSittingTray: (\n state,\n _action: PayloadAction<void>,\n ) => {\n state.tray = !state.tray;\n }\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getCurrentLink = (\n state: StateWithSlice<typeof name, SittingState>,\n) => state.sitting.currentLink;\nconst getTray = (\n state: StateWithSlice<typeof name, SittingState>,\n) => state.sitting.tray;\n\nexport const selectors = {\n getCurrentLink,\n getTray,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n\n\n import {\n Theme,\n plurid,\n } from '@plurid/plurid-themes';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ThemesState {\n general: Theme;\n interaction: Theme;\n}\n\n\nexport const initialState: ThemesState = {\n general: {\n ...plurid,\n },\n interaction: {\n ...plurid,\n },\n};\n\nexport const name = 'themes' as const;\n\n\nexport interface SetThemePayload {\n type: 'general' | 'interaction';\n theme: Theme;\n}\n\n\nexport const factory = (\n state: ThemesState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setTheme: (\n state,\n action: PayloadAction<SetThemePayload>,\n ) => {\n const {\n type,\n theme,\n } = action.payload;\n\n state[type] = theme;\n },\n setGeneralTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.general = action.payload;\n },\n setInteractionTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.interaction = action.payload;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGeneralTheme = (\n state: StateWithSlice<typeof name, ThemesState>,\n) => state.themes.general;\nconst getInteractionTheme = (\n state: StateWithSlice<typeof name, ThemesState>,\n) => state.themes.interaction;\n\nexport const selectors = {\n getGeneralTheme,\n getInteractionTheme,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n"],"names":["initialState","title","description","ogTitle","ogImage","ogURL","ogDescription","canonicalURL","styles","scripts","name","factory","state","createSlice","reducers","setHead","action","Object","assign","slice","actions","getHead","head","selectors","reducer","new","id","Math","random","text","payload","newNotification","add","existingNotification","find","notification","newState","map","update","message","remove","filter","getAll","notifications","global","setGlobalShortcuts","toggleGlobalShortcuts","_action","getGlobal","shortcuts","currentLink","tray","setSittingCurrentLink","setSittingTray","toggleSittingTray","getCurrentLink","sitting","getTray","general","plurid","interaction","setTheme","type","theme","setGeneralTheme","setInteractionTheme","getGeneralTheme","themes","getInteractionTheme"],"mappings":";;;;;;AAgCO,MAAMA,iBAA0B;IACnCC,OAAO;IACPC,aAAa;IACbC,SAAS;IACTC,SAAS;IACTC,OAAO;IACPC,eAAe;IACfC,cAAc;IACdC,QAAQ;IACRC,SAAS;;;AAGN,MAAMC,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAAmBZ,mBAClBa,YAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACNC,SAAS,CACLH,OACAI;YAEAJ,QACOK,OAAAC,OAAAD,OAAAC,OAAA,IAAAN,QACAI;;;;;AAMZ,MAAMG,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAGtB,MAAMC,UACTT,SACYA,MAAMU;;AAEf,MAAMC,cAAY;IACrBF,SAAAA;;;AAIG,MAAMG,YAAUL,QAAMK;;;;;;;;;;;;;;AC3DtB,MAAMxB,iBAAmC;;AAEzC,MAAMU,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAA4BZ,mBAC3Ba,YAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACNW,KAAK,CACDb,OACAI;YAEA,MAAMU,KAAKC,KAAKC,WAAW;YAC3B,MAAMC,OAAOb,OAAOc;YAEpB,MAAMC,kBAAgC;gBAClCL,IAAAA;gBACAG,MAAAA;;YAGJ,OAAO,KACAjB,OACHmB;;QAGRC,KAAK,CACDpB,OACAI;YAEA,MAAMU,KAAKV,OAAOc,QAAQJ,MAAMC,KAAKC,WAAW;YAEhD,MAAMG,kDACCf,OAAOc,UACV;gBAAAJ,IAAAA;;YAGJ,MAAMO,uBAAuBrB,MAAMsB,MAC/BC,gBAAgBA,aAAaT,OAAOK,gBAAgBL;YAGxD,IAAIO,sBAAsB;gBACtB,MAAMG,WAAWxB,MAAMyB,KAAIF;oBACvB,IAAIA,aAAaT,OAAOK,gBAAgBL,IAAI;wBACxC,OAAOK;;oBAGX,OAAOI;;gBAGX,OAAOC;;YAGX,OAAO,KACAxB,OACHmB;;QAGRO,QAAQ,CACJ1B,OACAI;YAEA,MAAMoB,WAAWxB,MAAMyB,KAAIE;gBACvB,IAAIA,QAAQb,OAAOV,OAAOc,QAAQJ,IAAI;oBAClC,MAAMK,kBACCd,OAAAC,OAAA,IAAAF,OAAOc;oBAEd,OAAOC;;gBAGX,OAAAd,OAAAC,OAAA,IACOqB;;YAIX,OAAOH;;QAEXI,QAAQ,CACJ5B,OACAI;YAEA,MAAMoB,WAAWxB,MAAM6B,QACnBF,WAAWA,QAAQb,OAAOV,OAAOc;YAGrC,OAAOM;;;;;AAKZ,MAAMjB,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAG7B,MAAMsB,SACF9B,SACCA,MAAM+B;;AAEJ,MAAMpB,cAAY;IACrBmB,QAAAA;;;AAIG,MAAMlB,YAAUL,QAAMK;;;;;;;;;;;;;AC9GtB,MAAMxB,iBAA+B;IACxC4C,QAAQ;;;AAGL,MAAMlC,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAAwBZ,mBACvBa,YAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACN+B,oBAAoB,CAChBjC,OACAI;YAEAJ,MAAMgC,SAAS5B,OAAOc;;QAE1BgB,uBAAuB,CACnBlC,OACAmC;YAEAnC,MAAMgC,UAAUhC,MAAMgC;;;;;AAK3B,MAAMzB,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAG7B,MAAM4B,YACFpC,SACCA,MAAMqC,UAAUL;;AAEd,MAAMrB,cAAY;IACrByB,WAAAA;;;AAIG,MAAMxB,YAAUL,QAAMK;;;;;;;;;;;;;AC7CtB,MAAMxB,iBAA6B;IACtCkD,aAAa;IACbC,MAAM;;;AAGH,MAAMzC,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAAsBZ,mBACrBa,YAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACNsC,uBAAuB,CACnBxC,OACAI;YAEA,MAAMkC,cAAclC,OAAOc;YAE3B,OACOb,OAAAC,OAAAD,OAAAC,OAAA,IAAAN,QACH;gBAAAsC,aAAAA;;;QAGRG,gBAAgB,CACZzC,OACAI;YAEAJ,MAAMuC,OAAOnC,OAAOc;;QAExBwB,mBAAmB,CACf1C,OACAmC;YAEAnC,MAAMuC,QAAQvC,MAAMuC;;;;;AAKzB,MAAMhC,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAG7B,MAAMmC,iBACF3C,SACCA,MAAM4C,QAAQN;;AACnB,MAAMO,UACF7C,SACCA,MAAM4C,QAAQL;;AAEZ,MAAM5B,cAAY;IACrBgC,gBAAAA;IACAE,SAAAA;;;AAIG,MAAMjC,YAAUL,QAAMK;;;;;;;;;;;;;ACxDtB,MAAMxB,eAA4B;IACrC0D,SAAOzC,OAAAC,OAAA,IACAyC;IAEPC,aAAW3C,OAAAC,OAAA,IACJyC;;;AAIJ,MAAMjD,OAAO;;AASb,MAAMC,UAAU,CACnBC,QAAqBZ,iBACpBa,YAAY;IACbH,MAAAA;IACAV,cAAcY;IACdE,UAAU;QACN+C,UAAU,CACNjD,OACAI;YAEA,OAAM8C,MACFA,MAAIC,OACJA,SACA/C,OAAOc;YAEXlB,MAAMkD,QAAQC;;QAElBC,iBAAiB,CACbpD,OACAI;YAEAJ,MAAM8C,UAAU1C,OAAOc;;QAE3BmC,qBAAqB,CACjBrD,OACAI;YAEAJ,MAAMgD,cAAc5C,OAAOc;;;;;AAKhC,MAAMX,QAAQR;;AAMd,MAAMS,UAAUD,MAAMC;;AAG7B,MAAM8C,kBACFtD,SACCA,MAAMuD,OAAOT;;AAClB,MAAMU,sBACFxD,SACCA,MAAMuD,OAAOP;;AAEX,MAAMrC,YAAY;IACrB2C,iBAAAA;IACAE,qBAAAA;;;AAIG,MAAM5C,UAAUL,MAAMK;;;;;;;;;;;;;"}
@@ -22,8 +22,10 @@ const initialState$4 = {
22
22
  scripts: []
23
23
  };
24
24
 
25
+ const name$4 = "head";
26
+
25
27
  const factory$4 = (state = initialState$4) => toolkit.createSlice({
26
- name: "head",
28
+ name: name$4,
27
29
  initialState: state,
28
30
  reducers: {
29
31
  setHead: (state, action) => {
@@ -46,6 +48,8 @@ const reducer$4 = slice$4.reducer;
46
48
 
47
49
  var index$4 = Object.freeze({
48
50
  __proto__: null,
51
+ initialState: initialState$4,
52
+ name: name$4,
49
53
  factory: factory$4,
50
54
  slice: slice$4,
51
55
  actions: actions$4,
@@ -56,35 +60,51 @@ var index$4 = Object.freeze({
56
60
 
57
61
  const initialState$3 = [];
58
62
 
63
+ const name$3 = "notifications";
64
+
59
65
  const factory$3 = (state = initialState$3) => toolkit.createSlice({
60
- name: "notifications",
66
+ name: name$3,
61
67
  initialState: state,
62
68
  reducers: {
63
- addNotification: (state, action) => {
64
- const newNotification = Object.assign({}, action.payload);
69
+ new: (state, action) => {
70
+ const id = Math.random() + "";
71
+ const text = action.payload;
72
+ const newNotification = {
73
+ id: id,
74
+ text: text
75
+ };
76
+ return [ ...state, newNotification ];
77
+ },
78
+ add: (state, action) => {
79
+ const id = action.payload.id || Math.random() + "";
80
+ const newNotification = Object.assign(Object.assign({}, action.payload), {
81
+ id: id
82
+ });
65
83
  const existingNotification = state.find((notification => notification.id === newNotification.id));
66
84
  if (existingNotification) {
67
- state = state.map((notification => {
85
+ const newState = state.map((notification => {
68
86
  if (notification.id === newNotification.id) {
69
87
  return newNotification;
70
88
  }
71
89
  return notification;
72
90
  }));
73
- return;
91
+ return newState;
74
92
  }
75
- state = [ ...state, newNotification ];
93
+ return [ ...state, newNotification ];
76
94
  },
77
- updateNotification: (state, action) => {
78
- state = state.map((message => {
95
+ update: (state, action) => {
96
+ const newState = state.map((message => {
79
97
  if (message.id === action.payload.id) {
80
98
  const newNotification = Object.assign({}, action.payload);
81
99
  return newNotification;
82
100
  }
83
101
  return Object.assign({}, message);
84
102
  }));
103
+ return newState;
85
104
  },
86
- removeNotification: (state, action) => {
87
- state = state.filter((message => message.id !== action.payload));
105
+ remove: (state, action) => {
106
+ const newState = state.filter((message => message.id !== action.payload));
107
+ return newState;
88
108
  }
89
109
  }
90
110
  });
@@ -103,6 +123,8 @@ const reducer$3 = slice$3.reducer;
103
123
 
104
124
  var index$3 = Object.freeze({
105
125
  __proto__: null,
126
+ initialState: initialState$3,
127
+ name: name$3,
106
128
  factory: factory$3,
107
129
  slice: slice$3,
108
130
  actions: actions$3,
@@ -114,12 +136,17 @@ const initialState$2 = {
114
136
  global: true
115
137
  };
116
138
 
139
+ const name$2 = "shortcuts";
140
+
117
141
  const factory$2 = (state = initialState$2) => toolkit.createSlice({
118
- name: "shortcuts",
142
+ name: name$2,
119
143
  initialState: state,
120
144
  reducers: {
121
- toggleGlobalShortcuts: (state, action) => {
122
- state.global = typeof action.payload === "boolean" ? action.payload : !state.global;
145
+ setGlobalShortcuts: (state, action) => {
146
+ state.global = action.payload;
147
+ },
148
+ toggleGlobalShortcuts: (state, _action) => {
149
+ state.global = !state.global;
123
150
  }
124
151
  }
125
152
  });
@@ -138,6 +165,8 @@ const reducer$2 = slice$2.reducer;
138
165
 
139
166
  var index$2 = Object.freeze({
140
167
  __proto__: null,
168
+ initialState: initialState$2,
169
+ name: name$2,
141
170
  factory: factory$2,
142
171
  slice: slice$2,
143
172
  actions: actions$2,
@@ -150,8 +179,10 @@ const initialState$1 = {
150
179
  tray: false
151
180
  };
152
181
 
182
+ const name$1 = "sitting";
183
+
153
184
  const factory$1 = (state = initialState$1) => toolkit.createSlice({
154
- name: "sitting",
185
+ name: name$1,
155
186
  initialState: state,
156
187
  reducers: {
157
188
  setSittingCurrentLink: (state, action) => {
@@ -160,8 +191,11 @@ const factory$1 = (state = initialState$1) => toolkit.createSlice({
160
191
  currentLink: currentLink
161
192
  });
162
193
  },
163
- toggleSittingTray: (state, action) => {
164
- state.tray = typeof action.payload === "boolean" ? action.payload : !state.tray;
194
+ setSittingTray: (state, action) => {
195
+ state.tray = action.payload;
196
+ },
197
+ toggleSittingTray: (state, _action) => {
198
+ state.tray = !state.tray;
165
199
  }
166
200
  }
167
201
  });
@@ -183,6 +217,8 @@ const reducer$1 = slice$1.reducer;
183
217
 
184
218
  var index$1 = Object.freeze({
185
219
  __proto__: null,
220
+ initialState: initialState$1,
221
+ name: name$1,
186
222
  factory: factory$1,
187
223
  slice: slice$1,
188
224
  actions: actions$1,
@@ -195,8 +231,10 @@ const initialState = {
195
231
  interaction: Object.assign({}, pluridThemes.plurid)
196
232
  };
197
233
 
234
+ const name = "themes";
235
+
198
236
  const factory = (state = initialState) => toolkit.createSlice({
199
- name: "themes",
237
+ name: name,
200
238
  initialState: state,
201
239
  reducers: {
202
240
  setTheme: (state, action) => {
@@ -229,6 +267,8 @@ const reducer = slice.reducer;
229
267
 
230
268
  var index = Object.freeze({
231
269
  __proto__: null,
270
+ initialState: initialState,
271
+ name: name,
232
272
  factory: factory,
233
273
  slice: slice,
234
274
  actions: actions,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../source/modules/head/index.ts","../source/modules/notifications/index.ts","../source/modules/shortcuts/index.ts","../source/modules/sitting/index.ts","../source/modules/themes/index.ts"],"sourcesContent":["// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface HeadState {\n title: string;\n description: string;\n canonicalURL: string;\n ogTitle: string;\n ogImage: string;\n ogURL: string;\n ogDescription: string;\n styles: string[];\n scripts: string[];\n}\n\n\nconst initialState: HeadState = {\n title: '',\n description: '',\n ogTitle: '',\n ogImage: '',\n ogURL: '',\n ogDescription: '',\n canonicalURL: '',\n styles: [],\n scripts: [],\n};\n\n\nexport const factory = (\n state: HeadState = initialState,\n) => createSlice({\n name: 'head',\n initialState: state,\n reducers: {\n setHead: (\n state,\n action: PayloadAction<Partial<HeadState>>,\n ) => {\n state = {\n ...state,\n ...action,\n };\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nexport const getHead = (\n state: StateWithSlice<'head', HeadState>,\n): HeadState => state.head;\n\nexport const selectors = {\n getHead,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n Notification,\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport type NotificationsState = Notification[];\n\n\nconst initialState: NotificationsState = [];\n\n\nexport const factory = (\n state: NotificationsState = initialState,\n) => createSlice({\n name: 'notifications',\n initialState: state,\n reducers: {\n addNotification: (\n state,\n action: PayloadAction<Notification>,\n ) => {\n const newNotification: Notification = {\n ...action.payload,\n };\n\n const existingNotification = state.find(\n notification => notification.id === newNotification.id,\n );\n\n if (existingNotification) {\n state = state.map(notification => {\n if (notification.id === newNotification.id) {\n return newNotification;\n }\n\n return notification;\n });\n\n return;\n }\n\n state = [\n ...state,\n newNotification,\n ];\n },\n updateNotification: (\n state,\n action: PayloadAction<Notification>,\n ) => {\n state = state.map(message => {\n if (message.id === action.payload.id) {\n const newNotification: Notification = {\n ...action.payload,\n };\n return newNotification;\n }\n\n return {\n ...message,\n };\n });\n },\n removeNotification: (\n state,\n action: PayloadAction<string>,\n ) => {\n state = state.filter(\n message => message.id !== action.payload,\n );\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getAll = (\n state: StateWithSlice<'notifications', NotificationsState>,\n) => state.notifications;\n\nexport const selectors = {\n getAll,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ShortcutsState {\n global: boolean;\n}\n\n\nconst initialState: ShortcutsState = {\n global: true,\n};\n\n\nexport const factory = (\n state: ShortcutsState = initialState,\n) => createSlice({\n name: 'shortcuts',\n initialState: state,\n reducers: {\n toggleGlobalShortcuts: (\n state,\n action: PayloadAction<boolean> | PayloadAction<void>,\n ) => {\n state.global = typeof action.payload === 'boolean'\n ? action.payload\n : !state.global;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGlobal = (\n state: StateWithSlice<'shortcuts', ShortcutsState>,\n) => state.shortcuts.global;\n\nexport const selectors = {\n getGlobal,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface SittingState {\n currentLink: string;\n tray: boolean;\n}\n\n\nconst initialState: SittingState = {\n currentLink: '',\n tray: false,\n};\n\n\nexport const factory = (\n state: SittingState = initialState,\n) => createSlice({\n name: 'sitting',\n initialState: state,\n reducers: {\n setSittingCurrentLink: (\n state,\n action: PayloadAction<string>,\n ) => {\n const currentLink = action.payload;\n\n return {\n ...state,\n currentLink,\n };\n },\n toggleSittingTray: (\n state,\n action: PayloadAction<boolean> | PayloadAction<void>,\n ) => {\n state.tray = typeof action.payload === 'boolean'\n ? action.payload\n : !state.tray;\n }\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getCurrentLink = (\n state: StateWithSlice<'sitting', SittingState>,\n) => state.sitting.currentLink;\nconst getTray = (\n state: StateWithSlice<'sitting', SittingState>,\n) => state.sitting.tray;\n\nexport const selectors = {\n getCurrentLink,\n getTray,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n\n\n import {\n Theme,\n plurid,\n } from '@plurid/plurid-themes';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ThemesState {\n general: Theme;\n interaction: Theme;\n}\n\n\nconst initialState: ThemesState = {\n general: {\n ...plurid,\n },\n interaction: {\n ...plurid,\n },\n};\n\n\nexport interface SetThemePayload {\n type: 'general' | 'interaction';\n theme: Theme;\n}\n\n\nexport const factory = (\n state: ThemesState = initialState,\n) => createSlice({\n name: 'themes',\n initialState: state,\n reducers: {\n setTheme: (\n state,\n action: PayloadAction<SetThemePayload>,\n ) => {\n const {\n type,\n theme,\n } = action.payload;\n\n state[type] = theme;\n },\n setGeneralTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.general = action.payload;\n },\n setInteractionTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.interaction = action.payload;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGeneralTheme = (\n state: StateWithSlice<'themes', ThemesState>,\n) => state.themes.general;\nconst getInteractionTheme = (\n state: StateWithSlice<'themes', ThemesState>,\n) => state.themes.interaction;\n\nexport const selectors = {\n getGeneralTheme,\n getInteractionTheme,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n"],"names":["initialState","title","description","ogTitle","ogImage","ogURL","ogDescription","canonicalURL","styles","scripts","factory","state","createSlice","name","reducers","setHead","action","Object","assign","slice","actions","getHead","head","selectors","reducer","addNotification","newNotification","payload","existingNotification","find","notification","id","map","updateNotification","message","removeNotification","filter","getAll","notifications","global","toggleGlobalShortcuts","getGlobal","shortcuts","currentLink","tray","setSittingCurrentLink","toggleSittingTray","getCurrentLink","sitting","getTray","general","plurid","interaction","setTheme","type","theme","setGeneralTheme","setInteractionTheme","getGeneralTheme","themes","getInteractionTheme"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../source/modules/head/index.ts","../source/modules/notifications/index.ts","../source/modules/shortcuts/index.ts","../source/modules/sitting/index.ts","../source/modules/themes/index.ts"],"sourcesContent":["// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface HeadState {\n title: string;\n description: string;\n canonicalURL: string;\n ogTitle: string;\n ogImage: string;\n ogURL: string;\n ogDescription: string;\n styles: string[];\n scripts: string[];\n}\n\n\nexport const initialState: HeadState = {\n title: '',\n description: '',\n ogTitle: '',\n ogImage: '',\n ogURL: '',\n ogDescription: '',\n canonicalURL: '',\n styles: [],\n scripts: [],\n};\n\nexport const name = 'head' as const;\n\n\nexport const factory = (\n state: HeadState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setHead: (\n state,\n action: PayloadAction<Partial<HeadState>>,\n ) => {\n state = {\n ...state,\n ...action,\n };\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nexport const getHead = (\n state: StateWithSlice<typeof name, HeadState>,\n): HeadState => state.head;\n\nexport const selectors = {\n getHead,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n Notification,\n AddNotificationPayload,\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport type NotificationsState = Notification[];\n\n\nexport const initialState: NotificationsState = [];\n\nexport const name = 'notifications' as const;\n\n\nexport const factory = (\n state: NotificationsState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n new: (\n state,\n action: PayloadAction<string>,\n ) => {\n const id = Math.random() + '';\n const text = action.payload;\n\n const newNotification: Notification = {\n id,\n text,\n };\n\n return [\n ...state,\n newNotification,\n ];\n },\n add: (\n state,\n action: PayloadAction<AddNotificationPayload>,\n ) => {\n const id = action.payload.id || Math.random() + '';\n\n const newNotification: Notification = {\n ...action.payload,\n id,\n };\n\n const existingNotification = state.find(\n notification => notification.id === newNotification.id,\n );\n\n if (existingNotification) {\n const newState = state.map(notification => {\n if (notification.id === newNotification.id) {\n return newNotification;\n }\n\n return notification;\n });\n\n return newState;\n }\n\n return [\n ...state,\n newNotification,\n ];\n },\n update: (\n state,\n action: PayloadAction<Notification>,\n ) => {\n const newState = state.map(message => {\n if (message.id === action.payload.id) {\n const newNotification: Notification = {\n ...action.payload,\n };\n return newNotification;\n }\n\n return {\n ...message,\n };\n });\n\n return newState;\n },\n remove: (\n state,\n action: PayloadAction<string>,\n ) => {\n const newState = state.filter(\n message => message.id !== action.payload,\n );\n\n return newState;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getAll = (\n state: StateWithSlice<typeof name, NotificationsState>,\n) => state.notifications;\n\nexport const selectors = {\n getAll,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ShortcutsState {\n global: boolean;\n}\n\n\nexport const initialState: ShortcutsState = {\n global: true,\n};\n\nexport const name = 'shortcuts' as const;\n\n\nexport const factory = (\n state: ShortcutsState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setGlobalShortcuts: (\n state,\n action: PayloadAction<boolean>,\n ) => {\n state.global = action.payload;\n },\n toggleGlobalShortcuts: (\n state,\n _action: PayloadAction<void>,\n ) => {\n state.global = !state.global;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGlobal = (\n state: StateWithSlice<typeof name, ShortcutsState>,\n) => state.shortcuts.global;\n\nexport const selectors = {\n getGlobal,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface SittingState {\n currentLink: string;\n tray: boolean;\n}\n\n\nexport const initialState: SittingState = {\n currentLink: '',\n tray: false,\n};\n\nexport const name = 'sitting' as const;\n\n\nexport const factory = (\n state: SittingState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setSittingCurrentLink: (\n state,\n action: PayloadAction<string>,\n ) => {\n const currentLink = action.payload;\n\n return {\n ...state,\n currentLink,\n };\n },\n setSittingTray: (\n state,\n action: PayloadAction<boolean>,\n ) => {\n state.tray = action.payload;\n },\n toggleSittingTray: (\n state,\n _action: PayloadAction<void>,\n ) => {\n state.tray = !state.tray;\n }\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getCurrentLink = (\n state: StateWithSlice<typeof name, SittingState>,\n) => state.sitting.currentLink;\nconst getTray = (\n state: StateWithSlice<typeof name, SittingState>,\n) => state.sitting.tray;\n\nexport const selectors = {\n getCurrentLink,\n getTray,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n","// #region imports\n // #region libraries\n import {\n createSlice,\n PayloadAction,\n } from '@reduxjs/toolkit';\n\n\n import {\n Theme,\n plurid,\n } from '@plurid/plurid-themes';\n // #endregion libraries\n\n\n // #region external\n import {\n StateWithSlice,\n } from '~data/interfaces';\n // #endregion external\n// #endregion imports\n\n\n\n// #region module\nexport interface ThemesState {\n general: Theme;\n interaction: Theme;\n}\n\n\nexport const initialState: ThemesState = {\n general: {\n ...plurid,\n },\n interaction: {\n ...plurid,\n },\n};\n\nexport const name = 'themes' as const;\n\n\nexport interface SetThemePayload {\n type: 'general' | 'interaction';\n theme: Theme;\n}\n\n\nexport const factory = (\n state: ThemesState = initialState,\n) => createSlice({\n name,\n initialState: state,\n reducers: {\n setTheme: (\n state,\n action: PayloadAction<SetThemePayload>,\n ) => {\n const {\n type,\n theme,\n } = action.payload;\n\n state[type] = theme;\n },\n setGeneralTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.general = action.payload;\n },\n setInteractionTheme: (\n state,\n action: PayloadAction<Theme>,\n ) => {\n state.interaction = action.payload;\n },\n },\n});\n\nexport const slice = factory();\n// #endregion module\n\n\n\n// #region exports\nexport const actions = slice.actions;\n\n\nconst getGeneralTheme = (\n state: StateWithSlice<typeof name, ThemesState>,\n) => state.themes.general;\nconst getInteractionTheme = (\n state: StateWithSlice<typeof name, ThemesState>,\n) => state.themes.interaction;\n\nexport const selectors = {\n getGeneralTheme,\n getInteractionTheme,\n};\n\n\nexport const reducer = slice.reducer;\n// #endregion exports\n"],"names":["initialState","title","description","ogTitle","ogImage","ogURL","ogDescription","canonicalURL","styles","scripts","name","factory","state","createSlice","reducers","setHead","action","Object","assign","slice","actions","getHead","head","selectors","reducer","new","id","Math","random","text","payload","newNotification","add","existingNotification","find","notification","newState","map","update","message","remove","filter","getAll","notifications","global","setGlobalShortcuts","toggleGlobalShortcuts","_action","getGlobal","shortcuts","currentLink","tray","setSittingCurrentLink","setSittingTray","toggleSittingTray","getCurrentLink","sitting","getTray","general","plurid","interaction","setTheme","type","theme","setGeneralTheme","setInteractionTheme","getGeneralTheme","themes","getInteractionTheme"],"mappings":";;;;;;;;;;;;AAgCO,MAAMA,iBAA0B;IACnCC,OAAO;IACPC,aAAa;IACbC,SAAS;IACTC,SAAS;IACTC,OAAO;IACPC,eAAe;IACfC,cAAc;IACdC,QAAQ;IACRC,SAAS;;;AAGN,MAAMC,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAAmBZ,mBAClBa,oBAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACNC,SAAS,CACLH,OACAI;YAEAJ,QACOK,OAAAC,OAAAD,OAAAC,OAAA,IAAAN,QACAI;;;;;AAMZ,MAAMG,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAGtB,MAAMC,UACTT,SACYA,MAAMU;;AAEf,MAAMC,cAAY;IACrBF,SAAAA;;;AAIG,MAAMG,YAAUL,QAAMK;;;;;;;;;;;;;;AC3DtB,MAAMxB,iBAAmC;;AAEzC,MAAMU,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAA4BZ,mBAC3Ba,oBAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACNW,KAAK,CACDb,OACAI;YAEA,MAAMU,KAAKC,KAAKC,WAAW;YAC3B,MAAMC,OAAOb,OAAOc;YAEpB,MAAMC,kBAAgC;gBAClCL,IAAAA;gBACAG,MAAAA;;YAGJ,OAAO,KACAjB,OACHmB;;QAGRC,KAAK,CACDpB,OACAI;YAEA,MAAMU,KAAKV,OAAOc,QAAQJ,MAAMC,KAAKC,WAAW;YAEhD,MAAMG,kDACCf,OAAOc,UACV;gBAAAJ,IAAAA;;YAGJ,MAAMO,uBAAuBrB,MAAMsB,MAC/BC,gBAAgBA,aAAaT,OAAOK,gBAAgBL;YAGxD,IAAIO,sBAAsB;gBACtB,MAAMG,WAAWxB,MAAMyB,KAAIF;oBACvB,IAAIA,aAAaT,OAAOK,gBAAgBL,IAAI;wBACxC,OAAOK;;oBAGX,OAAOI;;gBAGX,OAAOC;;YAGX,OAAO,KACAxB,OACHmB;;QAGRO,QAAQ,CACJ1B,OACAI;YAEA,MAAMoB,WAAWxB,MAAMyB,KAAIE;gBACvB,IAAIA,QAAQb,OAAOV,OAAOc,QAAQJ,IAAI;oBAClC,MAAMK,kBACCd,OAAAC,OAAA,IAAAF,OAAOc;oBAEd,OAAOC;;gBAGX,OAAAd,OAAAC,OAAA,IACOqB;;YAIX,OAAOH;;QAEXI,QAAQ,CACJ5B,OACAI;YAEA,MAAMoB,WAAWxB,MAAM6B,QACnBF,WAAWA,QAAQb,OAAOV,OAAOc;YAGrC,OAAOM;;;;;AAKZ,MAAMjB,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAG7B,MAAMsB,SACF9B,SACCA,MAAM+B;;AAEJ,MAAMpB,cAAY;IACrBmB,QAAAA;;;AAIG,MAAMlB,YAAUL,QAAMK;;;;;;;;;;;;;AC9GtB,MAAMxB,iBAA+B;IACxC4C,QAAQ;;;AAGL,MAAMlC,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAAwBZ,mBACvBa,oBAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACN+B,oBAAoB,CAChBjC,OACAI;YAEAJ,MAAMgC,SAAS5B,OAAOc;;QAE1BgB,uBAAuB,CACnBlC,OACAmC;YAEAnC,MAAMgC,UAAUhC,MAAMgC;;;;;AAK3B,MAAMzB,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAG7B,MAAM4B,YACFpC,SACCA,MAAMqC,UAAUL;;AAEd,MAAMrB,cAAY;IACrByB,WAAAA;;;AAIG,MAAMxB,YAAUL,QAAMK;;;;;;;;;;;;;AC7CtB,MAAMxB,iBAA6B;IACtCkD,aAAa;IACbC,MAAM;;;AAGH,MAAMzC,SAAO;;AAGb,MAAMC,YAAU,CACnBC,QAAsBZ,mBACrBa,oBAAY;UACbH;IACAV,cAAcY;IACdE,UAAU;QACNsC,uBAAuB,CACnBxC,OACAI;YAEA,MAAMkC,cAAclC,OAAOc;YAE3B,OACOb,OAAAC,OAAAD,OAAAC,OAAA,IAAAN,QACH;gBAAAsC,aAAAA;;;QAGRG,gBAAgB,CACZzC,OACAI;YAEAJ,MAAMuC,OAAOnC,OAAOc;;QAExBwB,mBAAmB,CACf1C,OACAmC;YAEAnC,MAAMuC,QAAQvC,MAAMuC;;;;;AAKzB,MAAMhC,UAAQR;;AAMd,MAAMS,YAAUD,QAAMC;;AAG7B,MAAMmC,iBACF3C,SACCA,MAAM4C,QAAQN;;AACnB,MAAMO,UACF7C,SACCA,MAAM4C,QAAQL;;AAEZ,MAAM5B,cAAY;IACrBgC,gBAAAA;IACAE,SAAAA;;;AAIG,MAAMjC,YAAUL,QAAMK;;;;;;;;;;;;;ACxDtB,MAAMxB,eAA4B;IACrC0D,SAAOzC,OAAAC,OAAA,IACAyC,aAAAA;IAEPC,aAAW3C,OAAAC,OAAA,IACJyC,aAAAA;;;AAIJ,MAAMjD,OAAO;;AASb,MAAMC,UAAU,CACnBC,QAAqBZ,iBACpBa,oBAAY;IACbH,MAAAA;IACAV,cAAcY;IACdE,UAAU;QACN+C,UAAU,CACNjD,OACAI;YAEA,OAAM8C,MACFA,MAAIC,OACJA,SACA/C,OAAOc;YAEXlB,MAAMkD,QAAQC;;QAElBC,iBAAiB,CACbpD,OACAI;YAEAJ,MAAM8C,UAAU1C,OAAOc;;QAE3BmC,qBAAqB,CACjBrD,OACAI;YAEAJ,MAAMgD,cAAc5C,OAAOc;;;;;AAKhC,MAAMX,QAAQR;;AAMd,MAAMS,UAAUD,MAAMC;;AAG7B,MAAM8C,kBACFtD,SACCA,MAAMuD,OAAOT;;AAClB,MAAMU,sBACFxD,SACCA,MAAMuD,OAAOP;;AAEX,MAAMrC,YAAY;IACrB2C,iBAAAA;IACAE,qBAAAA;;;AAIG,MAAM5C,UAAUL,MAAMK;;;;;;;;;;;;;;;;;;;;;"}
@@ -11,6 +11,8 @@ export interface HeadState {
11
11
  styles: string[];
12
12
  scripts: string[];
13
13
  }
14
+ export declare const initialState: HeadState;
15
+ export declare const name: "head";
14
16
  export declare const factory: (state?: HeadState) => import("@reduxjs/toolkit").Slice<HeadState, {
15
17
  setHead: (state: import("immer/dist/internal").WritableDraft<HeadState>, action: PayloadAction<Partial<HeadState>>) => void;
16
18
  }, "head">;
@@ -20,8 +22,8 @@ export declare const slice: import("@reduxjs/toolkit").Slice<HeadState, {
20
22
  export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
21
23
  setHead: (state: import("immer/dist/internal").WritableDraft<HeadState>, action: PayloadAction<Partial<HeadState>>) => void;
22
24
  }>;
23
- export declare const getHead: (state: StateWithSlice<'head', HeadState>) => HeadState;
25
+ export declare const getHead: (state: StateWithSlice<typeof name, HeadState>) => HeadState;
24
26
  export declare const selectors: {
25
- getHead: (state: StateWithSlice<'head', HeadState>) => HeadState;
27
+ getHead: (state: StateWithSlice<typeof name, HeadState>) => HeadState;
26
28
  };
27
29
  export declare const reducer: import("@reduxjs/toolkit").Reducer<HeadState, import("@reduxjs/toolkit").AnyAction>;
@@ -1,22 +1,27 @@
1
1
  import { PayloadAction } from '@reduxjs/toolkit';
2
- import { Notification, StateWithSlice } from "../../data/interfaces";
2
+ import { Notification, AddNotificationPayload, StateWithSlice } from "../../data/interfaces";
3
3
  export declare type NotificationsState = Notification[];
4
+ export declare const initialState: NotificationsState;
5
+ export declare const name: "notifications";
4
6
  export declare const factory: (state?: NotificationsState) => import("@reduxjs/toolkit").Slice<NotificationsState, {
5
- addNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => void;
6
- updateNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => void;
7
- removeNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => void;
7
+ new: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => Notification[];
8
+ add: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<AddNotificationPayload>) => Notification[];
9
+ update: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => Notification[];
10
+ remove: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => import("immer/dist/internal").WritableDraft<Notification>[];
8
11
  }, "notifications">;
9
12
  export declare const slice: import("@reduxjs/toolkit").Slice<NotificationsState, {
10
- addNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => void;
11
- updateNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => void;
12
- removeNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => void;
13
+ new: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => Notification[];
14
+ add: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<AddNotificationPayload>) => Notification[];
15
+ update: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => Notification[];
16
+ remove: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => import("immer/dist/internal").WritableDraft<Notification>[];
13
17
  }, "notifications">;
14
18
  export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
15
- addNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => void;
16
- updateNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => void;
17
- removeNotification: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => void;
19
+ new: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => Notification[];
20
+ add: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<AddNotificationPayload>) => Notification[];
21
+ update: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<Notification>) => Notification[];
22
+ remove: (state: import("immer/dist/internal").WritableDraft<Notification>[], action: PayloadAction<string>) => import("immer/dist/internal").WritableDraft<Notification>[];
18
23
  }>;
19
24
  export declare const selectors: {
20
- getAll: (state: StateWithSlice<'notifications', NotificationsState>) => NotificationsState;
25
+ getAll: (state: StateWithSlice<typeof name, NotificationsState>) => NotificationsState;
21
26
  };
22
27
  export declare const reducer: import("@reduxjs/toolkit").Reducer<NotificationsState, import("@reduxjs/toolkit").AnyAction>;
@@ -3,16 +3,21 @@ import { StateWithSlice } from "../../data/interfaces";
3
3
  export interface ShortcutsState {
4
4
  global: boolean;
5
5
  }
6
+ export declare const initialState: ShortcutsState;
7
+ export declare const name: "shortcuts";
6
8
  export declare const factory: (state?: ShortcutsState) => import("@reduxjs/toolkit").Slice<ShortcutsState, {
7
- toggleGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, action: PayloadAction<boolean> | PayloadAction<void>) => void;
9
+ setGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, action: PayloadAction<boolean>) => void;
10
+ toggleGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, _action: PayloadAction<void>) => void;
8
11
  }, "shortcuts">;
9
12
  export declare const slice: import("@reduxjs/toolkit").Slice<ShortcutsState, {
10
- toggleGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, action: PayloadAction<boolean> | PayloadAction<void>) => void;
13
+ setGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, action: PayloadAction<boolean>) => void;
14
+ toggleGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, _action: PayloadAction<void>) => void;
11
15
  }, "shortcuts">;
12
16
  export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
13
- toggleGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, action: PayloadAction<boolean> | PayloadAction<void>) => void;
17
+ setGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, action: PayloadAction<boolean>) => void;
18
+ toggleGlobalShortcuts: (state: import("immer/dist/internal").WritableDraft<ShortcutsState>, _action: PayloadAction<void>) => void;
14
19
  }>;
15
20
  export declare const selectors: {
16
- getGlobal: (state: StateWithSlice<'shortcuts', ShortcutsState>) => boolean;
21
+ getGlobal: (state: StateWithSlice<typeof name, ShortcutsState>) => boolean;
17
22
  };
18
23
  export declare const reducer: import("@reduxjs/toolkit").Reducer<ShortcutsState, import("@reduxjs/toolkit").AnyAction>;
@@ -4,29 +4,34 @@ export interface SittingState {
4
4
  currentLink: string;
5
5
  tray: boolean;
6
6
  }
7
+ export declare const initialState: SittingState;
8
+ export declare const name: "sitting";
7
9
  export declare const factory: (state?: SittingState) => import("@reduxjs/toolkit").Slice<SittingState, {
8
10
  setSittingCurrentLink: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<string>) => {
9
11
  currentLink: string;
10
12
  tray: boolean;
11
13
  };
12
- toggleSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<boolean> | PayloadAction<void>) => void;
14
+ setSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<boolean>) => void;
15
+ toggleSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, _action: PayloadAction<void>) => void;
13
16
  }, "sitting">;
14
17
  export declare const slice: import("@reduxjs/toolkit").Slice<SittingState, {
15
18
  setSittingCurrentLink: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<string>) => {
16
19
  currentLink: string;
17
20
  tray: boolean;
18
21
  };
19
- toggleSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<boolean> | PayloadAction<void>) => void;
22
+ setSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<boolean>) => void;
23
+ toggleSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, _action: PayloadAction<void>) => void;
20
24
  }, "sitting">;
21
25
  export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
22
26
  setSittingCurrentLink: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<string>) => {
23
27
  currentLink: string;
24
28
  tray: boolean;
25
29
  };
26
- toggleSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<boolean> | PayloadAction<void>) => void;
30
+ setSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, action: PayloadAction<boolean>) => void;
31
+ toggleSittingTray: (state: import("immer/dist/internal").WritableDraft<SittingState>, _action: PayloadAction<void>) => void;
27
32
  }>;
28
33
  export declare const selectors: {
29
- getCurrentLink: (state: StateWithSlice<'sitting', SittingState>) => string;
30
- getTray: (state: StateWithSlice<'sitting', SittingState>) => boolean;
34
+ getCurrentLink: (state: StateWithSlice<typeof name, SittingState>) => string;
35
+ getTray: (state: StateWithSlice<typeof name, SittingState>) => boolean;
31
36
  };
32
37
  export declare const reducer: import("@reduxjs/toolkit").Reducer<SittingState, import("@reduxjs/toolkit").AnyAction>;
@@ -5,6 +5,8 @@ export interface ThemesState {
5
5
  general: Theme;
6
6
  interaction: Theme;
7
7
  }
8
+ export declare const initialState: ThemesState;
9
+ export declare const name: "themes";
8
10
  export interface SetThemePayload {
9
11
  type: 'general' | 'interaction';
10
12
  theme: Theme;
@@ -25,7 +27,7 @@ export declare const actions: import("@reduxjs/toolkit").CaseReducerActions<{
25
27
  setInteractionTheme: (state: import("immer/dist/internal").WritableDraft<ThemesState>, action: PayloadAction<Theme>) => void;
26
28
  }>;
27
29
  export declare const selectors: {
28
- getGeneralTheme: (state: StateWithSlice<'themes', ThemesState>) => Theme;
29
- getInteractionTheme: (state: StateWithSlice<'themes', ThemesState>) => Theme;
30
+ getGeneralTheme: (state: StateWithSlice<typeof name, ThemesState>) => Theme;
31
+ getInteractionTheme: (state: StateWithSlice<typeof name, ThemesState>) => Theme;
30
32
  };
31
33
  export declare const reducer: import("@reduxjs/toolkit").Reducer<ThemesState, import("@reduxjs/toolkit").AnyAction>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plurid/plurid-ui-state-react",
3
- "version": "0.0.0-5",
3
+ "version": "0.0.0-8",
4
4
  "description": "Plurid User Interface State for React",
5
5
  "keywords": [
6
6
  "plurid",
@@ -48,21 +48,21 @@
48
48
  },
49
49
  "devDependencies": {
50
50
  "@plurid/plurid-themes": "^0.0.0-2",
51
- "@reduxjs/toolkit": "^1.8.4",
52
- "@types/jest": "^28.1.6",
53
- "@types/node": "^18.7.2",
54
- "@typescript-eslint/eslint-plugin": "^5.33.0",
55
- "@typescript-eslint/parser": "^5.33.0",
51
+ "@reduxjs/toolkit": "^1.8.5",
52
+ "@types/jest": "^29.0.0",
53
+ "@types/node": "^18.7.16",
54
+ "@typescript-eslint/eslint-plugin": "^5.36.2",
55
+ "@typescript-eslint/parser": "^5.36.2",
56
56
  "@zerollup/ts-transform-paths": "^1.7.18",
57
- "eslint": "^8.21.0",
57
+ "eslint": "^8.23.0",
58
58
  "immer": "^9.0.15",
59
- "jest": "^28.1.3",
60
- "rollup": "^2.77.3",
59
+ "jest": "^29.0.3",
60
+ "rollup": "^2.79.0",
61
61
  "rollup-plugin-terser": "^7.0.2",
62
- "rollup-plugin-typescript2": "^0.32.1",
63
- "ts-jest": "^28.0.7",
62
+ "rollup-plugin-typescript2": "^0.33.0",
63
+ "ts-jest": "^29.0.0",
64
64
  "ts-node": "^10.9.1",
65
65
  "ttypescript": "^1.5.13",
66
- "typescript": "^4.7.4"
66
+ "typescript": "^4.7.3"
67
67
  }
68
68
  }