@admin-layout/client 10.1.1-alpha.0 → 10.1.1-alpha.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 +1 @@
1
- {"version":3,"file":"LayoutCookieProvider.d.ts","sourceRoot":"","sources":["../../src/components/LayoutCookieProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAQ1D,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAqBhG"}
1
+ {"version":3,"file":"LayoutCookieProvider.d.ts","sourceRoot":"","sources":["../../src/components/LayoutCookieProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqC,MAAM,OAAO,CAAC;AAQ1D,UAAU,yBAAyB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAsBhG"}
@@ -1,11 +1,11 @@
1
- import {jsx,Fragment}from'react/jsx-runtime';import {useLayoutEffect}from'react';import {useDispatch}from'react-redux';import {useLoaderData}from'@remix-run/react';import {CHANGE_SETTINGS_ACTION}from'../constants/constants.js';import {defaultSettings}from'../config/defaultSettings.js';import {merge}from'lodash-es';function LayoutCookieProvider({ children }) {
1
+ import {jsx,Fragment}from'react/jsx-runtime';import {useLayoutEffect}from'react';import {useDispatch}from'react-redux';import {useLoaderData}from'@remix-run/react';import {CHANGE_SETTINGS_ACTION}from'../constants/constants.js';function LayoutCookieProvider({ children }) {
2
2
  const { settings } = useLoaderData();
3
3
  const dispatch = useDispatch();
4
4
  const changeSettings = () => {
5
5
  if (settings) {
6
6
  dispatch({
7
7
  type: CHANGE_SETTINGS_ACTION,
8
- payload: merge({}, defaultSettings, settings),
8
+ payload: settings.settings,
9
9
  });
10
10
  }
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAW/C,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC;IACjF,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC,CA2BD;AAED,eAAO,MAAM,MAAM,GAAU,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,oEAqD7D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE;;GAkB7D,CAAC"}
1
+ {"version":3,"file":"UpdateSettings.server.d.ts","sourceRoot":"","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAY/C,wBAAsB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC;IACjF,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC,CA2BD;AAED,eAAO,MAAM,MAAM,GAAU,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,oEAkC7D,CAAC;AAEF,eAAO,MAAM,MAAM,GAAU,aAAa;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE;;GAqB7D,CAAC"}
@@ -1,4 +1,4 @@
1
- import {createCookie,json}from'@remix-run/node';import {merge}from'lodash-es';import {config}from'../../config/env-config.js';import {defaultSettings}from'../../config/defaultSettings.js';import'react';import'common';import'@cdm-logger/client';import {compareAndSaveSettingsDifferences}from'../../utils/settingsDifference.js';const settingsCookie = createCookie('settings', {
1
+ import {createCookie,json}from'@remix-run/node';import {merge}from'lodash-es';import {config}from'../../config/env-config.js';import {defaultSettings}from'../../config/defaultSettings.js';import'react';import'common';import'@cdm-logger/client';import {compareAndSaveSettingsDifferences}from'../../utils/settingsDifference.js';import {assignDefaults}from'../../utils/assignDefaults.js';const settingsCookie = createCookie('settings', {
2
2
  maxAge: 60 * 60 * 24 * 30, // 1 month
3
3
  httpOnly: false, // Allow client-side access
4
4
  sameSite: 'lax',
@@ -45,24 +45,6 @@ const action = async ({ request }) => {
45
45
  }
46
46
  // Compare payload and existingSettings, add missing keys from existingSettings to payload with default value
47
47
  if (existingSettings) {
48
- // Recursively assign default values for any missing nested keys in payload, based on existingSettings structure
49
- const assignDefaults = (target, source, defaults) => {
50
- Object.keys(source).forEach((key) => {
51
- if (!(key in target)) {
52
- // If the default exists, assign it; otherwise, assign undefined
53
- target[key] = defaults ? defaults[key] : undefined;
54
- }
55
- else if (typeof source[key] === 'object' &&
56
- source[key] !== null &&
57
- !Array.isArray(source[key]) &&
58
- typeof target[key] === 'object' &&
59
- target[key] !== null &&
60
- !Array.isArray(target[key])) {
61
- // Recursively assign for nested objects
62
- assignDefaults(target[key], source[key], defaults ? defaults[key] : undefined);
63
- }
64
- });
65
- };
66
48
  assignDefaults(payload, existingSettings, defaultSettings);
67
49
  }
68
50
  // Merge everything together
@@ -90,6 +72,9 @@ const loader = async ({ request }) => {
90
72
  if (setCookie) {
91
73
  headers['Set-Cookie'] = setCookie;
92
74
  }
75
+ if (settings) {
76
+ assignDefaults(settings, settings, defaultSettings);
77
+ }
93
78
  return json({ settings }, { headers });
94
79
  }
95
80
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":"4UAeY,6BAAc,CAAA,UAAA,EAAA;IACtB,MAAS,EAAA,EAAA,QAAS,EAAA,GAAA,EAAA;AACrB,IA2BA,QAAA,EAAA,KAAA;AAED,IAAO,QAAA,EAAA,KAAA;IAAqC,IAAO,EAAA,GAAE;AAAS,IAAA,MAAA,EAAA,MAAA,CAAA,MAAA,GAAA,MAAA,CAAA,UAAA,GAAA,SAAA;AAuD9D,CAAO,CAAA;AAA4C,eAAS,kBAAA,CAAA,EAAA,OAAA,EAAA,EAAA;AAAE,IAAA,MAAA,YAAA,GAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,QAAA,CAAA;;IAkB5D,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UpdateSettings.server.js","sources":["../../../src/components/UpdateSettings/UpdateSettings.server.ts"],"sourcesContent":[null],"names":[],"mappings":"uYAiBa,iBAAS,YAAA,CAAA,UAAA,EAAA;AACrB,IA2BA,MAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AAED,IAAO,QAAA,EAAA,KAAA;IAAqC,QAAO;AAAW,IAAA,IAAA,EAAA,GAAA;AAoC9D,IAAO,MAAA,EAAA,MAAA,CAAA,MAAY,GAAA,MAAuB,CAAA,UAAA,GAAA,SAAA;;AAAoB,eAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,EAAA;;IAqB5D,IAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,12 @@
1
+ export interface DefaultsObject {
2
+ [key: string]: any;
3
+ }
4
+ /**
5
+ * Recursively assigns default values for any missing nested keys in target object,
6
+ * based on source object structure and default values
7
+ * @param target - The target object to assign defaults to
8
+ * @param source - The source object containing the structure to follow
9
+ * @param defaults - The default values to use when a key is missing
10
+ */
11
+ export declare function assignDefaults(target: DefaultsObject, source: DefaultsObject, defaults?: DefaultsObject): void;
12
+ //# sourceMappingURL=assignDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignDefaults.d.ts","sourceRoot":"","sources":["../../src/utils/assignDefaults.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAoD9G"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Recursively assigns default values for any missing nested keys in target object,
3
+ * based on source object structure and default values
4
+ * @param target - The target object to assign defaults to
5
+ * @param source - The source object containing the structure to follow
6
+ * @param defaults - The default values to use when a key is missing
7
+ */
8
+ function assignDefaults(target, source, defaults) {
9
+ // Special handling for routeSettings to ensure all routes have complete structure
10
+ if (defaults?.routeSettings && target.routeSettings) {
11
+ const rootRoute = defaults.routeSettings['/'];
12
+ if (rootRoute) {
13
+ Object.keys(target.routeSettings).forEach((route) => {
14
+ // Deep merge the root route structure with the current route
15
+ const mergedLayout = {
16
+ desktop: { ...rootRoute.layout.desktop, ...target.routeSettings[route].layout?.desktop },
17
+ mobile: { ...rootRoute.layout.mobile, ...target.routeSettings[route].layout?.mobile },
18
+ };
19
+ const mergedRegions = {
20
+ desktop: {
21
+ header: {
22
+ ...rootRoute.regions.desktop.header,
23
+ ...target.routeSettings[route].regions?.desktop?.header,
24
+ },
25
+ background: { ...rootRoute.regions.desktop.background },
26
+ footer: { ...rootRoute.regions.desktop.footer },
27
+ },
28
+ mobile: {
29
+ header: { ...rootRoute.regions.mobile.header },
30
+ background: { ...rootRoute.regions.mobile.background },
31
+ footer: { ...rootRoute.regions.mobile.footer },
32
+ },
33
+ };
34
+ target.routeSettings[route] = {
35
+ ...target.routeSettings[route],
36
+ layout: mergedLayout,
37
+ regions: mergedRegions,
38
+ };
39
+ });
40
+ }
41
+ }
42
+ Object.keys(source).forEach((key) => {
43
+ if (!(key in target)) {
44
+ // If the default exists, assign it; otherwise, assign undefined
45
+ target[key] = defaults ? defaults[key] : undefined;
46
+ }
47
+ else if (typeof source[key] === 'object' &&
48
+ source[key] !== null &&
49
+ !Array.isArray(source[key]) &&
50
+ typeof target[key] === 'object' &&
51
+ target[key] !== null &&
52
+ !Array.isArray(target[key])) {
53
+ // Recursively assign for nested objects
54
+ assignDefaults(target[key], source[key], defaults ? defaults[key] : undefined);
55
+ }
56
+ });
57
+ }export{assignDefaults};//# sourceMappingURL=assignDefaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignDefaults.js","sources":["../../src/utils/assignDefaults.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACI;AACH;AAED;;;;;;AAMG,IAAA,IAAA,QAAA,EAAA,aAAA,IAAA,MAAA,CAAA,aAAA,EAAA;AACH,QAAA,MAAA,SAAA,yBAAuC,CAAA,GAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=assignDefaults.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignDefaults.test.d.ts","sourceRoot":"","sources":["../../src/utils/assignDefaults.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/client",
3
- "version": "10.1.1-alpha.0",
3
+ "version": "10.1.1-alpha.8",
4
4
  "description": "Sample client for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -40,5 +40,5 @@
40
40
  "typescript": {
41
41
  "definition": "lib/index.d.ts"
42
42
  },
43
- "gitHead": "98971c95912aaacc173916358a488b412f513d52"
43
+ "gitHead": "520a72ec4c8b0127be9a71f042c41aaff74f113b"
44
44
  }