@c-rex/utils 0.0.7 → 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.
package/dist/index.d.mts CHANGED
@@ -9,8 +9,11 @@ declare const createParams: (fieldsList: string[], key?: string) => {
9
9
  declare const updateUrlWithParams: (router: any, params: QueryParams[]) => void;
10
10
  declare const generateQueryParams: (params: QueryParams[]) => string;
11
11
 
12
+ declare function saveInMemory(value: any, key: string): void;
13
+ declare function getFromMemory(key: string): any;
14
+
12
15
  declare const generateBreadcrumbItems: (treeOfContent: TreeOfContent[]) => TreeOfContent[];
13
16
 
14
17
  declare function cn(...inputs: ClassValue[]): string;
15
18
 
16
- export { cn, createParams, generateBreadcrumbItems, generateQueryParams, updateUrlWithParams };
19
+ export { cn, createParams, generateBreadcrumbItems, generateQueryParams, getFromMemory, saveInMemory, updateUrlWithParams };
package/dist/index.d.ts CHANGED
@@ -9,8 +9,11 @@ declare const createParams: (fieldsList: string[], key?: string) => {
9
9
  declare const updateUrlWithParams: (router: any, params: QueryParams[]) => void;
10
10
  declare const generateQueryParams: (params: QueryParams[]) => string;
11
11
 
12
+ declare function saveInMemory(value: any, key: string): void;
13
+ declare function getFromMemory(key: string): any;
14
+
12
15
  declare const generateBreadcrumbItems: (treeOfContent: TreeOfContent[]) => TreeOfContent[];
13
16
 
14
17
  declare function cn(...inputs: ClassValue[]): string;
15
18
 
16
- export { cn, createParams, generateBreadcrumbItems, generateQueryParams, updateUrlWithParams };
19
+ export { cn, createParams, generateBreadcrumbItems, generateQueryParams, getFromMemory, saveInMemory, updateUrlWithParams };
package/dist/index.js CHANGED
@@ -24,6 +24,8 @@ __export(index_exports, {
24
24
  createParams: () => createParams,
25
25
  generateBreadcrumbItems: () => generateBreadcrumbItems,
26
26
  generateQueryParams: () => generateQueryParams,
27
+ getFromMemory: () => getFromMemory,
28
+ saveInMemory: () => saveInMemory,
27
29
  updateUrlWithParams: () => updateUrlWithParams
28
30
  });
29
31
  module.exports = __toCommonJS(index_exports);
@@ -48,6 +50,60 @@ var generateQueryParams = (params) => {
48
50
  return queryParams;
49
51
  };
50
52
 
53
+ // src/memory.ts
54
+ function isBrowser() {
55
+ return typeof window !== "undefined" && typeof document !== "undefined";
56
+ }
57
+ function parseCookies() {
58
+ const cookies = {};
59
+ if (typeof document === "undefined") {
60
+ return cookies;
61
+ }
62
+ document.cookie.split(";").forEach((cookie) => {
63
+ const [key, value] = cookie.split("=");
64
+ if (key && value) {
65
+ cookies[key.trim()] = decodeURIComponent(value.trim());
66
+ }
67
+ });
68
+ return cookies;
69
+ }
70
+ function setCookie(name, value, days = 30) {
71
+ if (typeof document === "undefined") return;
72
+ const expires = new Date(Date.now() + days * 86400 * 1e3).toUTCString();
73
+ document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;
74
+ }
75
+ function saveInMemory(value, key) {
76
+ if (isBrowser()) {
77
+ setCookie(key, JSON.stringify(value));
78
+ } else {
79
+ if (typeof global !== "undefined" && !(key in global)) {
80
+ global[key] = null;
81
+ }
82
+ const globalConfig = global[key];
83
+ if (globalConfig === null) {
84
+ global[key] = value;
85
+ }
86
+ }
87
+ }
88
+ function getFromMemory(key) {
89
+ let returnValue;
90
+ if (isBrowser()) {
91
+ const cookies = parseCookies();
92
+ const configStr = cookies[key];
93
+ if (configStr) {
94
+ try {
95
+ return JSON.parse(configStr);
96
+ } catch {
97
+ return null;
98
+ }
99
+ }
100
+ return null;
101
+ } else {
102
+ returnValue = global[key];
103
+ }
104
+ return returnValue;
105
+ }
106
+
51
107
  // src/breadcrumbs.ts
52
108
  var generateBreadcrumbItems = (treeOfContent) => {
53
109
  const result = [];
@@ -72,6 +128,8 @@ function cn(...inputs) {
72
128
  createParams,
73
129
  generateBreadcrumbItems,
74
130
  generateQueryParams,
131
+ getFromMemory,
132
+ saveInMemory,
75
133
  updateUrlWithParams
76
134
  });
77
135
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils.ts","../src/breadcrumbs.ts","../src/classMerge.ts"],"sourcesContent":["export * from './utils';\n//export * from './treeOfContent';\nexport * from './breadcrumbs';\nexport * from './classMerge';","\nimport { QueryParams } from '@c-rex/types';\n//import * as Flags from 'country-flag-icons/react/3x2';\n//import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const updateUrlWithParams = (\n //router: AppRouterInstance,\n router: any,\n params: QueryParams[],\n) => {\n const searchParams = new URLSearchParams(window.location.search);\n\n params.forEach((param) => {\n searchParams.set(param.key, param.value.toString());\n });\n\n const queryString = searchParams.toString();\n router.push(`${window.location.pathname}?${queryString}`);\n};\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n\n/*\nexport const getFlagIcon = (countryCode: string): JSX.Element | null => {\n if (countryCode === undefined) return null;\n \n return Flags[countryCode] || null;\n};\n\n\n*/","import { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,eAAe,CAAC,YAAsB,MAAc,aAC7D,WAAW,IAAI,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,OAAO;AACX,EAAE;AAEC,IAAM,sBAAsB,CAE/B,QACA,WACC;AACD,QAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAE/D,SAAO,QAAQ,CAAC,UAAU;AACtB,iBAAa,IAAI,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,EACtD,CAAC;AAED,QAAM,cAAc,aAAa,SAAS;AAC1C,SAAO,KAAK,GAAG,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAE;AAC5D;AAEO,IAAM,sBAAsB,CAAC,WAAkC;AAClE,QAAM,cAAc,OACf;AAAA,IACG,CAAC,UACG,GAAG,mBAAmB,MAAM,GAAG,CAAC,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,EAC3E,EACC,KAAK,GAAG;AACb,SAAO;AACX;;;AChCO,IAAM,0BAA0B,CACnC,kBACkB;AAClB,QAAM,SAA0B,CAAC;AAEjC,gBAAc,QAAQ,CAAC,SAAS;AAC5B,QAAI,KAAK,QAAQ;AACb,YAAM,mBAAmB,wBAAwB,KAAK,QAAQ;AAC9D,aAAO,KAAK,MAAM,GAAG,gBAAgB;AAAA,IACzC;AAAA,EACJ,CAAC;AAED,SAAO;AACX;;;ACfA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AACxC,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC/B;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/utils.ts","../src/memory.ts","../src/breadcrumbs.ts","../src/classMerge.ts"],"sourcesContent":["export * from './utils';\nexport * from './memory';\nexport * from './breadcrumbs';\nexport * from './classMerge';","\nimport { QueryParams } from '@c-rex/types';\n//import * as Flags from 'country-flag-icons/react/3x2';\n//import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const updateUrlWithParams = (\n //router: AppRouterInstance,\n router: any,\n params: QueryParams[],\n) => {\n const searchParams = new URLSearchParams(window.location.search);\n\n params.forEach((param) => {\n searchParams.set(param.key, param.value.toString());\n });\n\n const queryString = searchParams.toString();\n router.push(`${window.location.pathname}?${queryString}`);\n};\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n\n/*\nexport const getFlagIcon = (countryCode: string): JSX.Element | null => {\n if (countryCode === undefined) return null;\n \n return Flags[countryCode] || null;\n};\n\n\n*/","//Manage global state from NODE.JS\n//If doesn't have access to global save values on cookies\n\nfunction isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction parseCookies(): Record<string, string> {\n const cookies: Record<string, string> = {};\n\n if (typeof document === 'undefined') {\n return cookies;\n }\n\n document.cookie.split(';').forEach(cookie => {\n const [key, value] = cookie.split('=');\n if (key && value) {\n cookies[key.trim()] = decodeURIComponent(value.trim());\n }\n });\n\n return cookies;\n}\n\nfunction setCookie(name: string, value: string, days = 30) {\n if (typeof document === 'undefined') return;\n\n const expires = new Date(Date.now() + days * 86400 * 1000).toUTCString();\n document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;\n}\n\nexport function saveInMemory(value: any, key: string) {\n\n if (isBrowser()) {\n setCookie(key, JSON.stringify(value));\n } else {\n if (typeof global !== 'undefined' && !(key in global)) {\n (global as any)[key] = null;\n }\n\n const globalConfig = (global as any)[key] as any;\n\n if (globalConfig === null) {\n (global as any)[key] = value;\n }\n }\n}\n\nexport function getFromMemory(key: string): any {\n let returnValue\n\n if (isBrowser()) {\n const cookies = parseCookies();\n const configStr = cookies[key];\n if (configStr) {\n try {\n return JSON.parse(configStr);\n } catch {\n return null;\n }\n }\n return null;\n\n } else {\n returnValue = (global as any)[key];\n }\n\n return returnValue\n}\n","import { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACKO,IAAM,eAAe,CAAC,YAAsB,MAAc,aAC7D,WAAW,IAAI,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,OAAO;AACX,EAAE;AAEC,IAAM,sBAAsB,CAE/B,QACA,WACC;AACD,QAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAE/D,SAAO,QAAQ,CAAC,UAAU;AACtB,iBAAa,IAAI,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,EACtD,CAAC;AAED,QAAM,cAAc,aAAa,SAAS;AAC1C,SAAO,KAAK,GAAG,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAE;AAC5D;AAEO,IAAM,sBAAsB,CAAC,WAAkC;AAClE,QAAM,cAAc,OACf;AAAA,IACG,CAAC,UACG,GAAG,mBAAmB,MAAM,GAAG,CAAC,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,EAC3E,EACC,KAAK,GAAG;AACb,SAAO;AACX;;;AC/BA,SAAS,YAAY;AACjB,SAAO,OAAO,WAAW,eAAe,OAAO,aAAa;AAChE;AAEA,SAAS,eAAuC;AAC5C,QAAM,UAAkC,CAAC;AAEzC,MAAI,OAAO,aAAa,aAAa;AACjC,WAAO;AAAA,EACX;AAEA,WAAS,OAAO,MAAM,GAAG,EAAE,QAAQ,YAAU;AACzC,UAAM,CAAC,KAAK,KAAK,IAAI,OAAO,MAAM,GAAG;AACrC,QAAI,OAAO,OAAO;AACd,cAAQ,IAAI,KAAK,CAAC,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,IACzD;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AAEA,SAAS,UAAU,MAAc,OAAe,OAAO,IAAI;AACvD,MAAI,OAAO,aAAa,YAAa;AAErC,QAAM,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,QAAQ,GAAI,EAAE,YAAY;AACvE,WAAS,SAAS,GAAG,IAAI,IAAI,mBAAmB,KAAK,CAAC,qBAAqB,OAAO;AACtF;AAEO,SAAS,aAAa,OAAY,KAAa;AAElD,MAAI,UAAU,GAAG;AACb,cAAU,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACxC,OAAO;AACH,QAAI,OAAO,WAAW,eAAe,EAAE,OAAO,SAAS;AACnD,MAAC,OAAe,GAAG,IAAI;AAAA,IAC3B;AAEA,UAAM,eAAgB,OAAe,GAAG;AAExC,QAAI,iBAAiB,MAAM;AACvB,MAAC,OAAe,GAAG,IAAI;AAAA,IAC3B;AAAA,EACJ;AACJ;AAEO,SAAS,cAAc,KAAkB;AAC5C,MAAI;AAEJ,MAAI,UAAU,GAAG;AACb,UAAM,UAAU,aAAa;AAC7B,UAAM,YAAY,QAAQ,GAAG;AAC7B,QAAI,WAAW;AACX,UAAI;AACA,eAAO,KAAK,MAAM,SAAS;AAAA,MAC/B,QAAQ;AACJ,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EAEX,OAAO;AACH,kBAAe,OAAe,GAAG;AAAA,EACrC;AAEA,SAAO;AACX;;;AClEO,IAAM,0BAA0B,CACnC,kBACkB;AAClB,QAAM,SAA0B,CAAC;AAEjC,gBAAc,QAAQ,CAAC,SAAS;AAC5B,QAAI,KAAK,QAAQ;AACb,YAAM,mBAAmB,wBAAwB,KAAK,QAAQ;AAC9D,aAAO,KAAK,MAAM,GAAG,gBAAgB;AAAA,IACzC;AAAA,EACJ,CAAC;AAED,SAAO;AACX;;;ACfA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AACxC,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC/B;","names":[]}
package/dist/index.mjs CHANGED
@@ -18,6 +18,60 @@ var generateQueryParams = (params) => {
18
18
  return queryParams;
19
19
  };
20
20
 
21
+ // src/memory.ts
22
+ function isBrowser() {
23
+ return typeof window !== "undefined" && typeof document !== "undefined";
24
+ }
25
+ function parseCookies() {
26
+ const cookies = {};
27
+ if (typeof document === "undefined") {
28
+ return cookies;
29
+ }
30
+ document.cookie.split(";").forEach((cookie) => {
31
+ const [key, value] = cookie.split("=");
32
+ if (key && value) {
33
+ cookies[key.trim()] = decodeURIComponent(value.trim());
34
+ }
35
+ });
36
+ return cookies;
37
+ }
38
+ function setCookie(name, value, days = 30) {
39
+ if (typeof document === "undefined") return;
40
+ const expires = new Date(Date.now() + days * 86400 * 1e3).toUTCString();
41
+ document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;
42
+ }
43
+ function saveInMemory(value, key) {
44
+ if (isBrowser()) {
45
+ setCookie(key, JSON.stringify(value));
46
+ } else {
47
+ if (typeof global !== "undefined" && !(key in global)) {
48
+ global[key] = null;
49
+ }
50
+ const globalConfig = global[key];
51
+ if (globalConfig === null) {
52
+ global[key] = value;
53
+ }
54
+ }
55
+ }
56
+ function getFromMemory(key) {
57
+ let returnValue;
58
+ if (isBrowser()) {
59
+ const cookies = parseCookies();
60
+ const configStr = cookies[key];
61
+ if (configStr) {
62
+ try {
63
+ return JSON.parse(configStr);
64
+ } catch {
65
+ return null;
66
+ }
67
+ }
68
+ return null;
69
+ } else {
70
+ returnValue = global[key];
71
+ }
72
+ return returnValue;
73
+ }
74
+
21
75
  // src/breadcrumbs.ts
22
76
  var generateBreadcrumbItems = (treeOfContent) => {
23
77
  const result = [];
@@ -41,6 +95,8 @@ export {
41
95
  createParams,
42
96
  generateBreadcrumbItems,
43
97
  generateQueryParams,
98
+ getFromMemory,
99
+ saveInMemory,
44
100
  updateUrlWithParams
45
101
  };
46
102
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/breadcrumbs.ts","../src/classMerge.ts"],"sourcesContent":["\nimport { QueryParams } from '@c-rex/types';\n//import * as Flags from 'country-flag-icons/react/3x2';\n//import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const updateUrlWithParams = (\n //router: AppRouterInstance,\n router: any,\n params: QueryParams[],\n) => {\n const searchParams = new URLSearchParams(window.location.search);\n\n params.forEach((param) => {\n searchParams.set(param.key, param.value.toString());\n });\n\n const queryString = searchParams.toString();\n router.push(`${window.location.pathname}?${queryString}`);\n};\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n\n/*\nexport const getFlagIcon = (countryCode: string): JSX.Element | null => {\n if (countryCode === undefined) return null;\n \n return Flags[countryCode] || null;\n};\n\n\n*/","import { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";AAKO,IAAM,eAAe,CAAC,YAAsB,MAAc,aAC7D,WAAW,IAAI,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,OAAO;AACX,EAAE;AAEC,IAAM,sBAAsB,CAE/B,QACA,WACC;AACD,QAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAE/D,SAAO,QAAQ,CAAC,UAAU;AACtB,iBAAa,IAAI,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,EACtD,CAAC;AAED,QAAM,cAAc,aAAa,SAAS;AAC1C,SAAO,KAAK,GAAG,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAE;AAC5D;AAEO,IAAM,sBAAsB,CAAC,WAAkC;AAClE,QAAM,cAAc,OACf;AAAA,IACG,CAAC,UACG,GAAG,mBAAmB,MAAM,GAAG,CAAC,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,EAC3E,EACC,KAAK,GAAG;AACb,SAAO;AACX;;;AChCO,IAAM,0BAA0B,CACnC,kBACkB;AAClB,QAAM,SAA0B,CAAC;AAEjC,gBAAc,QAAQ,CAAC,SAAS;AAC5B,QAAI,KAAK,QAAQ;AACb,YAAM,mBAAmB,wBAAwB,KAAK,QAAQ;AAC9D,aAAO,KAAK,MAAM,GAAG,gBAAgB;AAAA,IACzC;AAAA,EACJ,CAAC;AAED,SAAO;AACX;;;ACfA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AACxC,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC/B;","names":[]}
1
+ {"version":3,"sources":["../src/utils.ts","../src/memory.ts","../src/breadcrumbs.ts","../src/classMerge.ts"],"sourcesContent":["\nimport { QueryParams } from '@c-rex/types';\n//import * as Flags from 'country-flag-icons/react/3x2';\n//import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const updateUrlWithParams = (\n //router: AppRouterInstance,\n router: any,\n params: QueryParams[],\n) => {\n const searchParams = new URLSearchParams(window.location.search);\n\n params.forEach((param) => {\n searchParams.set(param.key, param.value.toString());\n });\n\n const queryString = searchParams.toString();\n router.push(`${window.location.pathname}?${queryString}`);\n};\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n\n/*\nexport const getFlagIcon = (countryCode: string): JSX.Element | null => {\n if (countryCode === undefined) return null;\n \n return Flags[countryCode] || null;\n};\n\n\n*/","//Manage global state from NODE.JS\n//If doesn't have access to global save values on cookies\n\nfunction isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nfunction parseCookies(): Record<string, string> {\n const cookies: Record<string, string> = {};\n\n if (typeof document === 'undefined') {\n return cookies;\n }\n\n document.cookie.split(';').forEach(cookie => {\n const [key, value] = cookie.split('=');\n if (key && value) {\n cookies[key.trim()] = decodeURIComponent(value.trim());\n }\n });\n\n return cookies;\n}\n\nfunction setCookie(name: string, value: string, days = 30) {\n if (typeof document === 'undefined') return;\n\n const expires = new Date(Date.now() + days * 86400 * 1000).toUTCString();\n document.cookie = `${name}=${encodeURIComponent(value)}; path=/; expires=${expires}; SameSite=Lax`;\n}\n\nexport function saveInMemory(value: any, key: string) {\n\n if (isBrowser()) {\n setCookie(key, JSON.stringify(value));\n } else {\n if (typeof global !== 'undefined' && !(key in global)) {\n (global as any)[key] = null;\n }\n\n const globalConfig = (global as any)[key] as any;\n\n if (globalConfig === null) {\n (global as any)[key] = value;\n }\n }\n}\n\nexport function getFromMemory(key: string): any {\n let returnValue\n\n if (isBrowser()) {\n const cookies = parseCookies();\n const configStr = cookies[key];\n if (configStr) {\n try {\n return JSON.parse(configStr);\n } catch {\n return null;\n }\n }\n return null;\n\n } else {\n returnValue = (global as any)[key];\n }\n\n return returnValue\n}\n","import { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\n};\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";AAKO,IAAM,eAAe,CAAC,YAAsB,MAAc,aAC7D,WAAW,IAAI,CAAC,UAAU;AAAA,EACtB;AAAA,EACA,OAAO;AACX,EAAE;AAEC,IAAM,sBAAsB,CAE/B,QACA,WACC;AACD,QAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAE/D,SAAO,QAAQ,CAAC,UAAU;AACtB,iBAAa,IAAI,MAAM,KAAK,MAAM,MAAM,SAAS,CAAC;AAAA,EACtD,CAAC;AAED,QAAM,cAAc,aAAa,SAAS;AAC1C,SAAO,KAAK,GAAG,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAE;AAC5D;AAEO,IAAM,sBAAsB,CAAC,WAAkC;AAClE,QAAM,cAAc,OACf;AAAA,IACG,CAAC,UACG,GAAG,mBAAmB,MAAM,GAAG,CAAC,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,EAC3E,EACC,KAAK,GAAG;AACb,SAAO;AACX;;;AC/BA,SAAS,YAAY;AACjB,SAAO,OAAO,WAAW,eAAe,OAAO,aAAa;AAChE;AAEA,SAAS,eAAuC;AAC5C,QAAM,UAAkC,CAAC;AAEzC,MAAI,OAAO,aAAa,aAAa;AACjC,WAAO;AAAA,EACX;AAEA,WAAS,OAAO,MAAM,GAAG,EAAE,QAAQ,YAAU;AACzC,UAAM,CAAC,KAAK,KAAK,IAAI,OAAO,MAAM,GAAG;AACrC,QAAI,OAAO,OAAO;AACd,cAAQ,IAAI,KAAK,CAAC,IAAI,mBAAmB,MAAM,KAAK,CAAC;AAAA,IACzD;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AAEA,SAAS,UAAU,MAAc,OAAe,OAAO,IAAI;AACvD,MAAI,OAAO,aAAa,YAAa;AAErC,QAAM,UAAU,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,QAAQ,GAAI,EAAE,YAAY;AACvE,WAAS,SAAS,GAAG,IAAI,IAAI,mBAAmB,KAAK,CAAC,qBAAqB,OAAO;AACtF;AAEO,SAAS,aAAa,OAAY,KAAa;AAElD,MAAI,UAAU,GAAG;AACb,cAAU,KAAK,KAAK,UAAU,KAAK,CAAC;AAAA,EACxC,OAAO;AACH,QAAI,OAAO,WAAW,eAAe,EAAE,OAAO,SAAS;AACnD,MAAC,OAAe,GAAG,IAAI;AAAA,IAC3B;AAEA,UAAM,eAAgB,OAAe,GAAG;AAExC,QAAI,iBAAiB,MAAM;AACvB,MAAC,OAAe,GAAG,IAAI;AAAA,IAC3B;AAAA,EACJ;AACJ;AAEO,SAAS,cAAc,KAAkB;AAC5C,MAAI;AAEJ,MAAI,UAAU,GAAG;AACb,UAAM,UAAU,aAAa;AAC7B,UAAM,YAAY,QAAQ,GAAG;AAC7B,QAAI,WAAW;AACX,UAAI;AACA,eAAO,KAAK,MAAM,SAAS;AAAA,MAC/B,QAAQ;AACJ,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EAEX,OAAO;AACH,kBAAe,OAAe,GAAG;AAAA,EACrC;AAEA,SAAO;AACX;;;AClEO,IAAM,0BAA0B,CACnC,kBACkB;AAClB,QAAM,SAA0B,CAAC;AAEjC,gBAAc,QAAQ,CAAC,SAAS;AAC5B,QAAI,KAAK,QAAQ;AACb,YAAM,mBAAmB,wBAAwB,KAAK,QAAQ;AAC9D,aAAO,KAAK,MAAM,GAAG,gBAAgB;AAAA,IACzC;AAAA,EACJ,CAAC;AAED,SAAO;AACX;;;ACfA,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AACxC,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC/B;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c-rex/utils",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "module": "./dist/index.mjs",