@admin-layout/tailwind-design-pro 12.0.16-alpha.57 → 12.0.16-alpha.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/components/LanguageMenu/LanguageMenu.d.ts.map +1 -1
  2. package/lib/components/LanguageMenu/LanguageMenu.js +20 -8
  3. package/lib/components/LanguageMenu/LanguageMenu.js.map +1 -1
  4. package/lib/components/Layout/BasicLayout/index.d.ts +1 -0
  5. package/lib/components/Layout/BasicLayout/index.d.ts.map +1 -1
  6. package/lib/components/Layout/BasicLayout/index.js +25 -17
  7. package/lib/components/Layout/BasicLayout/index.js.map +1 -1
  8. package/lib/components/Layout/TailwindLayout.d.ts.map +1 -1
  9. package/lib/components/Layout/TailwindLayout.js +27 -22
  10. package/lib/components/Layout/TailwindLayout.js.map +1 -1
  11. package/lib/components/SettingDrawer/CheckBoxTheme.js +2 -1
  12. package/lib/components/SettingDrawer/CheckBoxTheme.js.map +1 -1
  13. package/lib/components/SettingDrawer/InvitationSettings.js +2 -1
  14. package/lib/components/SettingDrawer/InvitationSettings.js.map +1 -1
  15. package/lib/components/SettingDrawer/LayoutChange.js +2 -1
  16. package/lib/components/SettingDrawer/LayoutChange.js.map +1 -1
  17. package/lib/components/SettingDrawer/NavigationsModes.d.ts +1 -1
  18. package/lib/components/SettingDrawer/NavigationsModes.d.ts.map +1 -1
  19. package/lib/components/SettingDrawer/NavigationsModes.js +2 -1
  20. package/lib/components/SettingDrawer/NavigationsModes.js.map +1 -1
  21. package/lib/components/SettingDrawer/RegionalSettings.js +2 -1
  22. package/lib/components/SettingDrawer/RegionalSettings.js.map +1 -1
  23. package/lib/components/SettingDrawer/SettingDrawer.d.ts.map +1 -1
  24. package/lib/components/SettingDrawer/SettingDrawer.js +149 -31
  25. package/lib/components/SettingDrawer/SettingDrawer.js.map +1 -1
  26. package/lib/components/SettingDrawer/ThemeColor.js +2 -1
  27. package/lib/components/SettingDrawer/ThemeColor.js.map +1 -1
  28. package/lib/components/SettingDrawer/types.d.ts +6 -0
  29. package/lib/components/SettingDrawer/types.d.ts.map +1 -1
  30. package/lib/components/UpdateSettingsResource/UpdateSettingsResource.server.d.ts.map +1 -1
  31. package/lib/components/UpdateSettingsResource/UpdateSettingsResource.server.js +29 -1
  32. package/lib/components/UpdateSettingsResource/UpdateSettingsResource.server.js.map +1 -1
  33. package/lib/machines/selectors.d.ts +118 -0
  34. package/lib/machines/selectors.d.ts.map +1 -0
  35. package/lib/machines/settingsMachine.d.ts +24 -5
  36. package/lib/machines/settingsMachine.d.ts.map +1 -1
  37. package/lib/machines/settingsMachine.js +117 -82
  38. package/lib/machines/settingsMachine.js.map +1 -1
  39. package/lib/machines/types.d.ts +32 -3
  40. package/lib/machines/types.d.ts.map +1 -1
  41. package/lib/utils/settingsUtils.d.ts +2 -2
  42. package/lib/utils/settingsUtils.js +2 -2
  43. package/package.json +5 -5
@@ -0,0 +1,118 @@
1
+ import { UISettings } from './types';
2
+ /**
3
+ * XSTATE SELECTORS
4
+ *
5
+ * These selector functions provide STABLE references to state values,
6
+ * preventing unnecessary re-renders and eliminating infinite loop possibilities.
7
+ *
8
+ * IMPORTANT RULES:
9
+ * 1. Components should ONLY use these selectors to access state
10
+ * 2. NEVER access state.context directly
11
+ * 3. Selectors only return PUBLIC settings - internal state is never exposed
12
+ * 4. XState's useSelector hook memoizes these, ensuring stable references
13
+ *
14
+ * WHY THIS WORKS:
15
+ * - Even if context.internal.configModel changes (new reference),
16
+ * context.public remains stable (same values = same reference after JSON comparison)
17
+ * - useSelector only triggers re-render if the RETURNED value changes
18
+ * - No manual filtering needed - separation is built into the structure
19
+ */
20
+ /**
21
+ * Select all UI settings (excludes internal machine state)
22
+ *
23
+ * This is the primary selector for getting user-facing settings.
24
+ * XState's useSelector will automatically memoize this, so it only
25
+ * re-renders when the UI settings actually change.
26
+ *
27
+ * @example
28
+ * const settings = useSelector(actor, selectPublicSettings);
29
+ */
30
+ export declare const selectPublicSettings: (state: any) => UISettings;
31
+ /**
32
+ * Select only changed settings (for save button state).
33
+ * Use this to check if there are unsaved changes.
34
+ *
35
+ * @example
36
+ * const changedSettings = useSelector(actor, selectChangedSettings);
37
+ * const hasChanges = Object.keys(changedSettings).length > 0;
38
+ */
39
+ export declare const selectChangedSettings: (state: any) => Record<string, any>;
40
+ /**
41
+ * Select current device type (desktop/mobile).
42
+ * Use this to check which device mode is active.
43
+ *
44
+ * @example
45
+ * const deviceType = useSelector(actor, selectDeviceType);
46
+ */
47
+ export declare const selectDeviceType: (state: any) => "desktop" | "mobile";
48
+ /**
49
+ * Select current route path.
50
+ * Use this to check which route is active.
51
+ *
52
+ * @example
53
+ * const currentRoute = useSelector(actor, selectCurrentRoute);
54
+ */
55
+ export declare const selectCurrentRoute: (state: any) => string;
56
+ /**
57
+ * Select a specific setting by key.
58
+ * Returns a selector function that extracts a specific setting value.
59
+ *
60
+ * @example
61
+ * const navTheme = useSelector(actor, selectSetting('navTheme'));
62
+ * const primaryColor = useSelector(actor, selectSetting('primaryColor'));
63
+ */
64
+ export declare const selectSetting: (key: keyof UISettings) => (state: any) => any;
65
+ /**
66
+ * Select navigation theme specifically.
67
+ * Commonly used setting, provided as convenience.
68
+ *
69
+ * @example
70
+ * const navTheme = useSelector(actor, selectNavTheme);
71
+ */
72
+ export declare const selectNavTheme: (state: any) => "light" | "dark" | "realDark";
73
+ /**
74
+ * Select primary color specifically.
75
+ * Commonly used setting, provided as convenience.
76
+ *
77
+ * @example
78
+ * const primaryColor = useSelector(actor, selectPrimaryColor);
79
+ */
80
+ export declare const selectPrimaryColor: (state: any) => string;
81
+ /**
82
+ * Select whether settings panel should be shown.
83
+ * Use this to control settings drawer visibility.
84
+ *
85
+ * @example
86
+ * const showSettingPanel = useSelector(actor, selectShowSettingPanel);
87
+ */
88
+ export declare const selectShowSettingPanel: (state: any) => boolean;
89
+ /**
90
+ * Select menu visibility settings.
91
+ * Returns both hiddenMenuKeys and hiddenMenuCategories.
92
+ *
93
+ * @example
94
+ * const { hiddenMenuKeys, hiddenMenuCategories } = useSelector(actor, selectMenuVisibility);
95
+ */
96
+ export declare const selectMenuVisibility: (state: any) => {
97
+ hiddenMenuKeys: string[];
98
+ hiddenMenuCategories: string[];
99
+ };
100
+ /**
101
+ * Check if there are unsaved changes.
102
+ * Use this for save button disabled state.
103
+ *
104
+ * @example
105
+ * const hasUnsavedChanges = useSelector(actor, selectHasUnsavedChanges);
106
+ */
107
+ export declare const selectHasUnsavedChanges: (state: any) => boolean;
108
+ /**
109
+ * COMPARISON HELPER
110
+ *
111
+ * Use this to compare settings between renders without triggering infinite loops.
112
+ * This performs a deep comparison of UI settings only.
113
+ *
114
+ * @example
115
+ * const settingsChanged = !areUISettingsEqual(prevSettings, currentSettings);
116
+ */
117
+ export declare const areUISettingsEqual: (a: UISettings, b: UISettings) => boolean;
118
+ //# sourceMappingURL=selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectors.d.ts","sourceRoot":"","sources":["../../src/machines/selectors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAwB,MAAM,SAAS,CAAC;AAE5E;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAAI,OAAO,GAAG,KAAG,UAGjD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,GAAG,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAGpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,GAAG,KAAG,SAAS,GAAG,QAGzD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,GAAG,KAAG,MAG/C,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GACrB,KAAK,MAAM,UAAU,MACrB,OAAO,GAAG,KAAG,GAGb,CAAC;AAEN;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,GAAG,KAAG,OAAO,GAAG,MAAM,GAAG,UAG9D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,GAAG,KAAG,MAG/C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,GAAG,KAAG,OAGnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC7B,OAAO,GAAG,KACX;IACC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;CAOlC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,GAAG,KAAG,OAGpD,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,UAAU,EAAE,GAAG,UAAU,KAAG,OASjE,CAAC"}
@@ -1,10 +1,29 @@
1
- import { ConfigurationModel } from '@adminide-stack/core';
2
1
  import { MachineEvent, SettingsContext } from './types';
3
- export declare const settingsMachine: import("xstate").StateMachine<SettingsContext & {
4
- configModel: ConfigurationModel;
5
- deviceType: string;
6
- }, MachineEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, {
2
+ /**
3
+ * SETTINGS MACHINE - COMPLETELY REFACTORED
4
+ *
5
+ * DESIGN PHILOSOPHY:
6
+ * This machine has been completely rewritten to eliminate any possibility of infinite loops
7
+ * by enforcing a strict separation between:
8
+ * 1. PUBLIC STATE: User-facing settings (stable, exposed to consumers)
9
+ * 2. INTERNAL STATE: Machine logic state (may have reference changes, never exposed)
10
+ *
11
+ * ARCHITECTURE:
12
+ * - Context is split into `public` and `internal` namespaces
13
+ * - Components ONLY access `context.public` via selectors
14
+ * - NO filtering is needed - separation is built into the structure
15
+ * - ConfigurationModel reference changes are isolated to `context.internal`
16
+ * - Redux receives ONLY `context.public` - no manual filtering required
17
+ *
18
+ * WHY THIS WORKS:
19
+ * - Reference changes in `context.internal.configModel` don't affect `context.public`
20
+ * - Components using selectors get stable references to `context.public`
21
+ * - No manual filtering means no chance of accidentally exposing internal state
22
+ * - Type system enforces the separation at compile time
23
+ */
24
+ export declare const settingsMachine: import("xstate").StateMachine<SettingsContext, MachineEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, {
7
25
  settings: any;
8
26
  currentRoute?: string;
27
+ routePattern?: string;
9
28
  }, {}, import("xstate").EventObject, import("xstate").MetaObject, any>;
10
29
  //# sourceMappingURL=settingsMachine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settingsMachine.d.ts","sourceRoot":"","sources":["../../src/machines/settingsMachine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,eAAe;iBAIH,kBAAkB;gBACnB,MAAM;;cAIR,GAAG;mBACE,MAAM;sEAgQ/B,CAAC"}
1
+ {"version":3,"file":"settingsMachine.d.ts","sourceRoot":"","sources":["../../src/machines/settingsMachine.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAoC,MAAM,SAAS,CAAC;AAE1F;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,eAAe;cAMN,GAAG;mBACE,MAAM;mBACN,MAAM;sEA6R/B,CAAC"}
@@ -1,4 +1,26 @@
1
- import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';import {ConfigurationModel}from'@adminide-stack/core';const settingsMachine = createMachine({
1
+ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';import {ConfigurationModel}from'@adminide-stack/core';/**
2
+ * SETTINGS MACHINE - COMPLETELY REFACTORED
3
+ *
4
+ * DESIGN PHILOSOPHY:
5
+ * This machine has been completely rewritten to eliminate any possibility of infinite loops
6
+ * by enforcing a strict separation between:
7
+ * 1. PUBLIC STATE: User-facing settings (stable, exposed to consumers)
8
+ * 2. INTERNAL STATE: Machine logic state (may have reference changes, never exposed)
9
+ *
10
+ * ARCHITECTURE:
11
+ * - Context is split into `public` and `internal` namespaces
12
+ * - Components ONLY access `context.public` via selectors
13
+ * - NO filtering is needed - separation is built into the structure
14
+ * - ConfigurationModel reference changes are isolated to `context.internal`
15
+ * - Redux receives ONLY `context.public` - no manual filtering required
16
+ *
17
+ * WHY THIS WORKS:
18
+ * - Reference changes in `context.internal.configModel` don't affect `context.public`
19
+ * - Components using selectors get stable references to `context.public`
20
+ * - No manual filtering means no chance of accidentally exposing internal state
21
+ * - Type system enforces the separation at compile time
22
+ */
23
+ const settingsMachine = createMachine({
2
24
  id: 'settings',
3
25
  types: {},
4
26
  initial: 'idle',
@@ -45,9 +67,11 @@ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';
45
67
  const configModel = new ConfigurationModel(baseContents, [], overrides);
46
68
  // Get current route from input (passed from component) or default to '/'
47
69
  const currentRoute = input?.currentRoute || '/';
70
+ const routePattern = input?.routePattern;
48
71
  const deviceType = 'desktop'; // Default, will be updated by component
49
- // Build override keys with fallback logic
50
- const routeDeviceKey = `[${currentRoute}][${deviceType}]`;
72
+ // Build override keys with fallback logic - use route pattern if available
73
+ const routeForBracket = routePattern || currentRoute;
74
+ const routeDeviceKey = `[${routeForBracket}][${deviceType}]`;
51
75
  const deviceKey = `[${deviceType}]`;
52
76
  // Apply overrides by chaining: base -> global -> route-specific
53
77
  // First apply global override to base
@@ -57,21 +81,35 @@ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';
57
81
  // Extract final merged settings (already flat, no uilayout wrapper)
58
82
  const mergedContents = routeOverride?.contents;
59
83
  const effectiveSettings = mergedContents;
60
- // Context = flat settings + machine internal state
61
- // Note: configModel is kept for machine operations but filtered out before sending to Redux
62
- const contextToReturn = {
84
+ // Build PUBLIC settings (exposed to consumers)
85
+ // Build the UI settings object from all potential sources
86
+ const publicSettings = {
63
87
  // Apply merged settings first
64
88
  ...effectiveSettings,
65
- // Then set defaults for anything that's missing (won't override existing values)
66
- navTheme: effectiveSettings.navTheme || 'light',
67
- // Machine internal state (not sent to Redux)
89
+ components: effectiveSettings.components || [],
90
+ hiddenMenuKeys: effectiveSettings.hiddenMenuKeys || [],
91
+ hiddenMenuCategories: effectiveSettings.hiddenMenuCategories || []
92
+ };
93
+ // Build INTERNAL state (machine only, never exposed)
94
+ const internalState = {
68
95
  configModel,
69
96
  deviceType,
70
97
  currentRoute,
71
- changedSettings: {}
98
+ changedSettings: {},
99
+ routePattern: input?.routePattern
100
+ };
101
+ // Return context with EXPLICIT separation
102
+ const context = {
103
+ public: publicSettings,
104
+ internal: internalState
72
105
  };
73
- console.log('🔍 Context Init - Final context:', contextToReturn);
74
- return contextToReturn;
106
+ console.log('🔍 Context Init - Final structure:', {
107
+ hasPublic: !!context.public,
108
+ hasInternal: !!context.internal,
109
+ publicKeys: Object.keys(context.public).slice(0, 10),
110
+ internalKeys: Object.keys(context.internal)
111
+ });
112
+ return context;
75
113
  },
76
114
  states: {
77
115
  idle: {
@@ -84,40 +122,37 @@ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';
84
122
  }) => {
85
123
  if (!event.value) return context;
86
124
  console.log('🔧 Machine UPDATE event:', event);
87
- const newContext = cloneDeep({
88
- ...context
89
- });
90
- const changedSettings = {
91
- ...newContext.changedSettings
92
- };
125
+ // Clone context to avoid mutations
126
+ const newContext = cloneDeep(context);
93
127
  // Process each changed setting
94
128
  Object.keys(event.value).forEach(key => {
95
129
  const newValue = event.value[key];
96
130
  console.log('🔧 Processing key:', key, 'value:', newValue);
97
- // Use ConfigurationModel's setValue to update settings
98
- newContext.configModel.setValue(key, newValue);
131
+ // Update ConfigurationModel
132
+ newContext.internal.configModel.setValue(key, newValue);
99
133
  // Track in changedSettings
100
- changedSettings[key] = newValue;
134
+ newContext.internal.changedSettings[key] = newValue;
101
135
  // If it's a bracket key, check if it applies to current context
102
136
  if (key.startsWith('[')) {
103
137
  const bracketPattern = key.match(/^(\[[^\]]+\])+/);
104
138
  if (bracketPattern) {
105
139
  const identifier = bracketPattern[0];
106
- const currentIdentifier = `[${newContext.currentRoute}][${newContext.deviceType}]`;
107
- const deviceOnlyIdentifier = `[${newContext.deviceType}]`;
108
- // If this override applies to current route/device, update context immediately
140
+ // Use route pattern if available, otherwise fall back to current route
141
+ const routeForBracket = newContext.internal.routePattern || newContext.internal.currentRoute;
142
+ const currentIdentifier = `[${routeForBracket}][${newContext.internal.deviceType}]`;
143
+ const deviceOnlyIdentifier = `[${newContext.internal.deviceType}]`;
144
+ // If this override applies to current route/device, update public settings
109
145
  if (identifier === currentIdentifier || identifier === deviceOnlyIdentifier) {
110
146
  const remainingKey = key.substring(identifier.length);
111
147
  const path = remainingKey.startsWith('.') ? remainingKey.substring(1) : remainingKey;
112
- set(newContext, path, newValue);
148
+ set(newContext.public, path, newValue);
113
149
  }
114
150
  }
115
151
  } else {
116
- // Regular setting - update context directly
117
- set(newContext, key, newValue);
152
+ // Regular setting - update public settings directly
153
+ set(newContext.public, key, newValue);
118
154
  }
119
155
  });
120
- newContext.changedSettings = changedSettings;
121
156
  return newContext;
122
157
  }), 'updateReduxSettings']
123
158
  },
@@ -126,35 +161,34 @@ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';
126
161
  context,
127
162
  event
128
163
  }) => {
129
- cloneDeep({
130
- ...context
131
- });
132
164
  const routePath = event.pathname || '/';
133
- console.log('🔧 ROUTE_CHANGE to:', routePath);
134
- // Build override keys
135
- const routeDeviceKey = `[${routePath}][${context.deviceType}]`;
136
- const deviceKey = `[${context.deviceType}]`;
137
- // Apply overrides by chaining: base -> global -> route-specific
138
- // First apply global override to base
139
- const globalOverride = context.configModel.override(deviceKey);
140
- // Then apply route-specific override on top of global
165
+ const routePattern = event.routePattern;
166
+ console.log('🔧 ROUTE_CHANGE to:', routePath, 'pattern:', routePattern);
167
+ // Clone context to avoid mutations
168
+ const newContext = cloneDeep(context);
169
+ // Update internal route and route pattern
170
+ newContext.internal.currentRoute = routePath;
171
+ if (routePattern) {
172
+ newContext.internal.routePattern = routePattern;
173
+ }
174
+ // Build override keys using route pattern if available
175
+ const routeForBracket = routePattern || routePath;
176
+ const routeDeviceKey = `[${routeForBracket}][${context.internal.deviceType}]`;
177
+ const deviceKey = `[${context.internal.deviceType}]`;
178
+ // Apply overrides by chaining: base -> device -> route+device
179
+ const globalOverride = context.internal.configModel.override(deviceKey);
141
180
  const routeOverride = globalOverride.override(routeDeviceKey);
142
- // Extract final merged settings (already flat, no uilayout wrapper)
143
- const mergedContents = routeOverride?.contents || context.configModel.contents;
181
+ // Extract final merged settings
182
+ const mergedContents = routeOverride?.contents || context.internal.configModel.contents;
144
183
  const effectiveSettings = mergedContents;
145
- // Build NEW context from scratch with only the merged settings
146
- // This ensures no old route-specific settings leak through
147
- return {
148
- // Apply merged settings first
184
+ // Rebuild PUBLIC settings from scratch (no leakage from old route)
185
+ newContext.public = {
149
186
  ...effectiveSettings,
150
- // Then set defaults for anything that's missing (won't override existing values)
151
- navTheme: effectiveSettings.navTheme || 'light',
152
- // Keep machine internal state
153
- configModel: context.configModel,
154
- deviceType: context.deviceType,
155
- currentRoute: routePath,
156
- changedSettings: context.changedSettings
187
+ components: effectiveSettings.components || [],
188
+ hiddenMenuKeys: effectiveSettings.hiddenMenuKeys || [],
189
+ hiddenMenuCategories: effectiveSettings.hiddenMenuCategories || []
157
190
  };
191
+ return newContext;
158
192
  }), 'updateReduxSettings']
159
193
  },
160
194
  UISETTING_UPDATE_ROUTE_SETTINGS: {
@@ -169,22 +203,24 @@ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';
169
203
  UISETTING_RESET: {
170
204
  actions: [assign(({
171
205
  context
172
- }) => ({
173
- // Reset to initial input settings by clearing runtime changes
174
- // Keep the base settings from input but reset runtime state
175
- ...context,
176
- components: [],
177
- activeComponent: null,
178
- changedSettings: {}
179
- })), 'updateReduxSettings']
206
+ }) => {
207
+ const newContext = cloneDeep(context);
208
+ // Reset public state
209
+ newContext.public.components = [];
210
+ newContext.public.activeComponent = undefined;
211
+ // Reset internal tracking
212
+ newContext.internal.changedSettings = {};
213
+ return newContext;
214
+ }), 'updateReduxSettings']
180
215
  },
181
216
  UISETTING_RESET_CHANGED_SETTINGS: {
182
217
  actions: [assign(({
183
218
  context
184
- }) => ({
185
- ...context,
186
- changedSettings: {}
187
- }))]
219
+ }) => {
220
+ const newContext = cloneDeep(context);
221
+ newContext.internal.changedSettings = {};
222
+ return newContext;
223
+ })]
188
224
  },
189
225
  UISETTING_UPDATE_DEVICE_TYPE: {
190
226
  actions: [assign(({
@@ -193,29 +229,28 @@ import {cloneDeep,set}from'lodash-es';import {createMachine,assign}from'xstate';
193
229
  }) => {
194
230
  const deviceType = event.deviceType || 'desktop';
195
231
  console.log('🔧 UPDATE_DEVICE_TYPE to:', deviceType);
196
- // Build override keys
197
- const routeDeviceKey = `[${context.currentRoute}][${deviceType}]`;
232
+ // Clone context to avoid mutations
233
+ const newContext = cloneDeep(context);
234
+ // Update internal device type
235
+ newContext.internal.deviceType = deviceType;
236
+ // Build override keys using route pattern if available
237
+ const routeForBracket = context.internal.routePattern || context.internal.currentRoute;
238
+ const routeDeviceKey = `[${routeForBracket}][${deviceType}]`;
198
239
  const deviceKey = `[${deviceType}]`;
199
- // Apply overrides by chaining: base -> global -> route-specific
200
- // First apply global override to base
201
- const globalOverride = context.configModel.override(deviceKey);
202
- // Then apply route-specific override on top of global
240
+ // Apply overrides by chaining: base -> device -> route+device
241
+ const globalOverride = context.internal.configModel.override(deviceKey);
203
242
  const routeOverride = globalOverride.override(routeDeviceKey);
204
- // Extract final merged settings (already flat, no uilayout wrapper)
205
- const mergedContents = routeOverride?.contents || context.configModel.contents;
243
+ // Extract final merged settings
244
+ const mergedContents = routeOverride?.contents || context.internal.configModel.contents;
206
245
  const effectiveSettings = mergedContents;
207
- // Replace context with flat settings + machine internal state
208
- return {
209
- // Apply merged settings first
246
+ // Rebuild PUBLIC settings with new device overrides
247
+ newContext.public = {
210
248
  ...effectiveSettings,
211
- // Then set defaults for anything that's missing (won't override existing values)
212
- navTheme: effectiveSettings.navTheme || 'light',
213
- // Keep machine internal state
214
- configModel: context.configModel,
215
- deviceType: deviceType,
216
- currentRoute: context.currentRoute,
217
- changedSettings: context.changedSettings
249
+ components: effectiveSettings.components || [],
250
+ hiddenMenuKeys: effectiveSettings.hiddenMenuKeys || [],
251
+ hiddenMenuCategories: effectiveSettings.hiddenMenuCategories || []
218
252
  };
253
+ return newContext;
219
254
  }), 'updateReduxSettings']
220
255
  }
221
256
  // SAVE: {
@@ -1 +1 @@
1
- {"version":3,"file":"settingsMachine.js","sources":["../../src/machines/settingsMachine.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settingsMachine.js","sources":["../../src/machines/settingsMachine.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -148,7 +148,11 @@ export type RouteSettings = {
148
148
  };
149
149
  };
150
150
  };
151
- export interface SettingsContext {
151
+ /**
152
+ * UI Settings - User-facing settings that control the visual appearance and layout.
153
+ * This includes all visual/layout settings but excludes internal machine state.
154
+ */
155
+ export interface UISettings {
152
156
  navTheme: 'light' | 'dark' | 'realDark';
153
157
  primaryColor: string;
154
158
  secondaryColor: string;
@@ -178,10 +182,8 @@ export interface SettingsContext {
178
182
  verifyFormShowSkipButton: boolean;
179
183
  components: ComponentSettings[];
180
184
  activeComponent?: string;
181
- currentRoute?: string;
182
185
  hiddenMenuKeys?: string[];
183
186
  hiddenMenuCategories?: string[];
184
- changedSettings?: Record<string, any>;
185
187
  uiSettings?: {
186
188
  uilayout?: {
187
189
  layout?: any;
@@ -191,6 +193,32 @@ export interface SettingsContext {
191
193
  };
192
194
  overrides?: Record<string, any>;
193
195
  }
196
+ /**
197
+ * Machine-internal state used for XState machine logic only.
198
+ * These values are NEVER exposed to consumers or synced to Redux.
199
+ *
200
+ * IMPORTANT: This interface contains ONLY machine-internal state.
201
+ * NO user-facing settings should be added here.
202
+ */
203
+ export interface MachineInternalState {
204
+ configModel: any;
205
+ deviceType: 'desktop' | 'mobile';
206
+ currentRoute: string;
207
+ changedSettings: Record<string, any>;
208
+ routePattern?: string;
209
+ }
210
+ /**
211
+ * Settings Context - Complete state with separated UI and internal concerns.
212
+ */
213
+ export interface SettingsContext {
214
+ public: UISettings;
215
+ internal: MachineInternalState;
216
+ }
217
+ /**
218
+ * Legacy type for backward compatibility
219
+ * @deprecated Use UISettings instead
220
+ */
221
+ export type SettingsContextLegacy = UISettings;
194
222
  export type UpdateEvent = {
195
223
  type: 'UISETTING_UPDATE';
196
224
  value?: Partial<SettingsContext>;
@@ -232,6 +260,7 @@ export type MachineEvent = {
232
260
  } | {
233
261
  type: 'UISETTING_ROUTE_CHANGE';
234
262
  pathname: string;
263
+ routePattern?: string;
235
264
  } | {
236
265
  type: 'UISETTING_UPDATE_ROUTE_SETTINGS';
237
266
  settings: Record<string, Partial<SettingsContext>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/machines/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAChH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7C,oBAAY,iBAAiB;IACzB,SAAS,cAAc;IACvB,SAAS,cAAc;CAC1B;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,CAAC,EAAE;QACL,OAAO,EAAE;YACL,cAAc,EAAE,cAAc,CAAC;YAC/B,YAAY,EAAE,YAAY,CAAC;YAC3B,YAAY,EAAE,YAAY,CAAC;YAC3B,WAAW,EAAE,OAAO,CAAC;YACrB,YAAY,EAAE,OAAO,CAAC;YACtB,UAAU,EAAE,OAAO,CAAC;YACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;YAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;QACF,MAAM,EAAE;YACJ,cAAc,EAAE,cAAc,CAAC;YAC/B,YAAY,EAAE,YAAY,CAAC;YAC3B,YAAY,EAAE,YAAY,CAAC;YAC3B,WAAW,EAAE,OAAO,CAAC;YACrB,YAAY,EAAE,OAAO,CAAC;YACtB,UAAU,EAAE,OAAO,CAAC;YACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;YAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;KACL,CAAC;IACF,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE;YACN,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;YAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;YAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;YACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;QACF,MAAM,CAAC,EAAE;YACL,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;YAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;YAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;YACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;YACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;YAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;SAC5B,CAAC;KACL,CAAC;IACF,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE;YACN,UAAU,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;QACF,MAAM,CAAC,EAAE;YACL,UAAU,CAAC,EAAE,OAAO,CAAC;SACxB,CAAC;KACL,CAAC;IACF,UAAU,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,kBAAkB,CAAC;QAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAC;KAC/B,CAAC;IAEF,OAAO,CAAC,EAAE;QACN,OAAO,CAAC,EAAE;YACN,UAAU,CAAC,EAAE,kBAAkB,CAAC;YAChC,MAAM,CAAC,EAAE;gBACL,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,cAAc,CAAC,EAAE,OAAO,CAAC;gBACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;gBACzB,cAAc,CAAC,EAAE,OAAO,CAAC;gBACzB,aAAa,CAAC,EAAE,OAAO,CAAC;gBACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;gBAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;gBAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,UAAU,CAAC,EAAE,OAAO,CAAC;gBACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;gBAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;gBACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;aAC5B,CAAC;YACF,MAAM,CAAC,EAAE;gBACL,UAAU,CAAC,EAAE,OAAO,CAAC;aACxB,CAAC;SACL,CAAC;QACF,MAAM,CAAC,EAAE;YACL,UAAU,CAAC,EAAE,kBAAkB,CAAC;YAChC,MAAM,CAAC,EAAE;gBACL,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,cAAc,CAAC,EAAE,OAAO,CAAC;gBACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;gBACzB,cAAc,CAAC,EAAE,OAAO,CAAC;gBACzB,aAAa,CAAC,EAAE,OAAO,CAAC;gBACxB,iBAAiB,CAAC,EAAE,OAAO,CAAC;gBAC5B,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;gBAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,UAAU,CAAC,EAAE,OAAO,CAAC;gBACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;gBACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;gBAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;gBACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;aAC5B,CAAC;YACF,MAAM,CAAC,EAAE;gBACL,UAAU,CAAC,EAAE,OAAO,CAAC;aACxB,CAAC;SACL,CAAC;KACL,CAAC;CACL,CAAC;AAEF,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,EAAE,MAAM,CAAC;IAClC,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAAC;IAClC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,GAAG,CAAC;YACb,OAAO,CAAC,EAAE,GAAG,CAAC;SACjB,CAAC;QAEF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACnC,CAAC;IAGF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,cAAc,GACpB;IACI,IAAI,EAAE,oBAAoB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;CAChC,GACD;IACI,IAAI,EAAE,2BAA2B,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC,GACD;IACI,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACvB,GACD;IACI,IAAI,EAAE,2BAA2B,CAAC;CACrC,CAAC;AAER,MAAM,MAAM,YAAY,GAClB;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,2BAA2B,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAA;CAAE,GACzE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,2BAA2B,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,kCAAkC,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,iCAAiC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,8BAA8B,CAAC;IAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/machines/types.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * @param machineSettings - The settings object from XState machine
4
4
  * @param settingName - The setting key to retrieve (e.g., 'fixedHeader', 'organization.members.invitations')
5
5
  * @param applyToAllRoutes - Whether to use global or route-specific overrides
6
- * @param currentRoute - Current route path
6
+ * @param currentRoute - Current route path or route pattern
7
7
  * @param deviceType - Current device type ('desktop' or 'mobile')
8
8
  * @param defaultValue - Default value if setting not found
9
9
  * @returns The setting value from the appropriate scope
@@ -12,7 +12,7 @@ export declare const getSettingValue: (machineSettings: any, settingName: string
12
12
  /**
13
13
  * Calculate the default value for applyToAllRoutes based on what overrides exist
14
14
  * @param settings - The full settings object with ConfigurationModel
15
- * @param currentRoute - Current route path
15
+ * @param currentRoute - Current route path or route pattern
16
16
  * @param deviceType - Current device type ('desktop' or 'mobile')
17
17
  * @returns The default value for applyToAllRoutes
18
18
  */
@@ -3,7 +3,7 @@ import {getNestedValue}from'./configOverrides.js';/**
3
3
  * @param machineSettings - The settings object from XState machine
4
4
  * @param settingName - The setting key to retrieve (e.g., 'fixedHeader', 'organization.members.invitations')
5
5
  * @param applyToAllRoutes - Whether to use global or route-specific overrides
6
- * @param currentRoute - Current route path
6
+ * @param currentRoute - Current route path or route pattern
7
7
  * @param deviceType - Current device type ('desktop' or 'mobile')
8
8
  * @param defaultValue - Default value if setting not found
9
9
  * @returns The setting value from the appropriate scope
@@ -46,7 +46,7 @@ const getSettingValue = (machineSettings, settingName, applyToAllRoutes, current
46
46
  /**
47
47
  * Calculate the default value for applyToAllRoutes based on what overrides exist
48
48
  * @param settings - The full settings object with ConfigurationModel
49
- * @param currentRoute - Current route path
49
+ * @param currentRoute - Current route path or route pattern
50
50
  * @param deviceType - Current device type ('desktop' or 'mobile')
51
51
  * @returns The default value for applyToAllRoutes
52
52
  */