@admin-layout/client 12.2.4-alpha.67 → 12.2.4-alpha.71

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.
@@ -57,6 +57,10 @@ export interface MenuDataItem {
57
57
  * @author @sri
58
58
  */
59
59
  modal?: boolean;
60
+ /**
61
+ * Policy paths that must all resolve to boolean true for the menu item to be visible.
62
+ */
63
+ requiredFeatures?: string[];
60
64
  [key: string]: any;
61
65
  }
62
66
  export interface Route extends MenuDataItem {
@@ -1 +1 @@
1
- {"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../src/interfaces/typings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,mBAAmB,IAAI,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC5E,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,KAAM,SAAQ,YAAY;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAErC,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IACrE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,GAAG,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"typings.d.ts","sourceRoot":"","sources":["../../src/interfaces/typings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,mBAAmB,IAAI,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,SAAU,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC5E,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,KAAM,SAAQ,YAAY;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAErC,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC;IACrE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjE;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,GAAG,CAAC;IACR,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -10,7 +10,7 @@ import { type IMenuData } from '@common-stack/client-react/lib/interfaces/menu';
10
10
  * @param authorities
11
11
  * @param isTopLevel - Internal flag to prevent logging during recursion
12
12
  */
13
- export declare const menuDataRender: (menuList: IMenuData[], authorities: any, isTopLevel?: boolean) => IMenuData[];
13
+ export declare const menuDataRender: (menuList: IMenuData[], authorities: any, policiesOrIsTopLevel?: Record<string, unknown> | null | boolean, isTopLevel?: boolean) => IMenuData[];
14
14
  export declare function transformData(data: any): any;
15
15
  export declare function setLocale(obj: any, parentName?: string): void;
16
16
  export declare const addProLayoutParentKeys: (menuData?: any[], parentKeys?: string[]) => any[];
@@ -1 +1 @@
1
- {"version":3,"file":"menuUtils.d.ts","sourceRoot":"","sources":["../../src/utils/menuUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAChF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,SAAS,EAAE,EAAE,gBAAW,EAAE,oBAAiB,KAAG,SAAS,EAuB/F,CAAC;AAMF,wBAAgB,aAAa,CAAC,IAAI,KAAA,OAcjC;AACD,wBAAgB,SAAS,CAAC,GAAG,KAAA,EAAE,UAAU,SAAK,QAO7C;AAED,eAAO,MAAM,sBAAsB,GAAI,WAAW,GAAG,EAAE,EAAE,aAAY,MAAM,EAAO,UASjF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,WAAM,UAgB5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,KAAA,QAY9C"}
1
+ {"version":3,"file":"menuUtils.d.ts","sourceRoot":"","sources":["../../src/utils/menuUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAChF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,GACvB,UAAU,SAAS,EAAE,EACrB,gBAAW,EACX,uBAAuB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,EAC/D,oBAAiB,KAClB,SAAS,EAgCX,CAAC;AAMF,wBAAgB,aAAa,CAAC,IAAI,KAAA,OAcjC;AACD,wBAAgB,SAAS,CAAC,GAAG,KAAA,EAAE,UAAU,SAAK,QAO7C;AAED,eAAO,MAAM,sBAAsB,GAAI,WAAW,GAAG,EAAE,EAAE,aAAY,MAAM,EAAO,UASjF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,WAAM,UAgB5C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,KAAA,QAY9C"}
@@ -9,8 +9,10 @@ import {get,cloneDeep,sortBy}from'lodash-es';import {PermissionType}from'common'
9
9
  * @param authorities
10
10
  * @param isTopLevel - Internal flag to prevent logging during recursion
11
11
  */
12
- const menuDataRender = (menuList, authorities, isTopLevel = true) => {
13
- if (isTopLevel) {
12
+ const menuDataRender = (menuList, authorities, policiesOrIsTopLevel, isTopLevel = true) => {
13
+ const policies = typeof policiesOrIsTopLevel === 'boolean' ? undefined : policiesOrIsTopLevel;
14
+ const shouldLog = typeof policiesOrIsTopLevel === 'boolean' ? policiesOrIsTopLevel : isTopLevel;
15
+ if (shouldLog) {
14
16
  logger.trace('menuDataRender execution started');
15
17
  }
16
18
  const sortedMenuList = sortMenusByPriority(menuList);
@@ -22,12 +24,19 @@ const menuDataRender = (menuList, authorities, isTopLevel = true) => {
22
24
  return authority.some((key) => PermissionType.Allow === get(authorities, key));
23
25
  }
24
26
  return true;
27
+ })
28
+ .filter((item) => {
29
+ const requiredFeatures = item.requiredFeatures;
30
+ if (Array.isArray(requiredFeatures) && requiredFeatures.length) {
31
+ return requiredFeatures.every((key) => get(policies, key) === true);
32
+ }
33
+ return true;
25
34
  })
26
35
  .map((item) => {
27
36
  // return Authorized.check(item.authority, localItem, null) as MenuDataItem;
28
37
  return {
29
38
  ...item,
30
- children: item.children ? menuDataRender(item.children, authorities, false) : undefined,
39
+ children: item.children ? menuDataRender(item.children, authorities, policies, false) : undefined,
31
40
  };
32
41
  }));
33
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"menuUtils.js","sources":["../../src/utils/menuUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAcG;AACH;AA6BA;AAeA,MAAA,uCAA+B,EAAU,UAAK,GAAA,IAO7C,KAAA;AAED,IAAA,IAAA,UAAO,EAAA;AAWP,QAAA,MAAA,CAAO,KAAA,CAAM,kCAA0B,CAAA;AAkBvC,IAAA;;;AAGG;AACH,SAAA,MAAA,CAAA,CAAA,IAAA,KAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"menuUtils.js","sources":["../../src/utils/menuUtils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAcG;AACH;AA2CA;AAeA,MAAA,uCAA+B,EAAU,oBAOxC,EAAA,UAAA,GAAA,IAAA,KAAA;AAED,IAAA,MAAA,QAAO,GAAM,OAAA,oBAA0B,KAAA,SAAgB,GAAE,SAAA,GAAY,oBASnE;AAEF,IAAA,MAAA,SAAO,GAAM,OAAA,oBAA0B,KAAA,gCAgBrC,GAAA,UAAA;AAEF,IAAA,IAAA,SAAA,EAAA;;;AAGG,IAAA,MAAA,cAAA,GAAA,mBAAA,CAAA,QAAA,CAAA;AACH,IAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=menuUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuUtils.test.d.ts","sourceRoot":"","sources":["../../src/utils/menuUtils.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/client",
3
- "version": "12.2.4-alpha.67",
3
+ "version": "12.2.4-alpha.71",
4
4
  "description": "Sample client for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -41,7 +41,7 @@
41
41
  "publishConfig": {
42
42
  "access": "public"
43
43
  },
44
- "gitHead": "0c533449fa9f8434fec542020899b51bff506a9b",
44
+ "gitHead": "850c24caa93c81b18c540cc1552f69ad69d137d7",
45
45
  "typescript": {
46
46
  "definition": "lib/index.d.ts"
47
47
  }