@j2inn/resolvable-ui-elements 0.0.2-beta.3 → 0.0.2-beta.4
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/resolvableElements/Resolver.d.ts +1 -4
- package/dist/resolvableElements/Resolver.js +2 -5
- package/dist/resolvableElements/Resolver.js.map +1 -1
- package/dist/resolvableElements/elements/UiElement.js +4 -4
- package/dist/resolvableElements/elements/UiElement.js.map +1 -1
- package/dist/resolvableElements/elements/function/FunctionElement.js +3 -1
- package/dist/resolvableElements/elements/function/FunctionElement.js.map +1 -1
- package/dist/resolvableElements/react/useResolverContext.d.ts +1 -5
- package/dist/resolvableElements/react/useResolverContext.jsx +4 -4
- package/dist/resolvableElements/react/useResolverContext.jsx.map +1 -1
- package/dist_es/resolvableElements/Resolver.d.ts +1 -4
- package/dist_es/resolvableElements/Resolver.js +1 -4
- package/dist_es/resolvableElements/Resolver.js.map +1 -1
- package/dist_es/resolvableElements/elements/UiElement.js +4 -4
- package/dist_es/resolvableElements/elements/UiElement.js.map +1 -1
- package/dist_es/resolvableElements/elements/function/FunctionElement.js +3 -1
- package/dist_es/resolvableElements/elements/function/FunctionElement.js.map +1 -1
- package/dist_es/resolvableElements/react/useResolverContext.d.ts +1 -5
- package/dist_es/resolvableElements/react/useResolverContext.jsx +4 -4
- package/dist_es/resolvableElements/react/useResolverContext.jsx.map +1 -1
- package/package.json +1 -1
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { HDict, HGrid } from 'haystack-core';
|
|
2
2
|
import { Client, Watch } from 'haystack-nclient';
|
|
3
|
-
export declare const DEFAULT_USER_ROLE_TAG_NAME = "uiElementPermissions";
|
|
4
3
|
export interface ResolverData {
|
|
5
4
|
client: Client;
|
|
6
5
|
user?: HDict;
|
|
7
|
-
userRoleTagName?: string;
|
|
8
6
|
}
|
|
9
7
|
/**
|
|
10
8
|
* Resolver is a mediator for the network interactions during the resolution process,
|
|
11
9
|
* in order to enable future optimizations.
|
|
12
10
|
*/
|
|
13
11
|
export declare class Resolver {
|
|
14
|
-
constructor({ client, user
|
|
12
|
+
constructor({ client, user }: ResolverData);
|
|
15
13
|
client: Client;
|
|
16
14
|
user?: HDict;
|
|
17
|
-
userRoleTagName?: string;
|
|
18
15
|
read(filter: string): Promise<HGrid<HDict>>;
|
|
19
16
|
makeWatch(dis: string, grid: HGrid<HDict>): Promise<Watch>;
|
|
20
17
|
eval(expr: string): Promise<HGrid<HDict>>;
|
|
@@ -3,21 +3,18 @@
|
|
|
3
3
|
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Resolver =
|
|
7
|
-
exports.DEFAULT_USER_ROLE_TAG_NAME = 'uiElementPermissions';
|
|
6
|
+
exports.Resolver = void 0;
|
|
8
7
|
/**
|
|
9
8
|
* Resolver is a mediator for the network interactions during the resolution process,
|
|
10
9
|
* in order to enable future optimizations.
|
|
11
10
|
*/
|
|
12
11
|
class Resolver {
|
|
13
|
-
constructor({ client, user
|
|
12
|
+
constructor({ client, user }) {
|
|
14
13
|
this.client = client;
|
|
15
14
|
this.user = user;
|
|
16
|
-
this.userRoleTagName = userRoleTagName;
|
|
17
15
|
}
|
|
18
16
|
client;
|
|
19
17
|
user;
|
|
20
|
-
userRoleTagName;
|
|
21
18
|
async read(filter) {
|
|
22
19
|
return this.client.ext.read(filter);
|
|
23
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/resolvableElements/Resolver.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/resolvableElements/Resolver.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAUH;;;GAGG;AACH,MAAa,QAAQ;IACpB,YAAY,EAAE,MAAM,EAAE,IAAI,EAAgB;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,MAAM,CAAQ;IACd,IAAI,CAAQ;IAEZ,KAAK,CAAC,IAAI,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,IAAkB;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACD;AApBD,4BAoBC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.UiElement = void 0;
|
|
7
|
-
const
|
|
7
|
+
const USER_ROLE_TAG_NAME = 'uiElementPermissions';
|
|
8
8
|
/**
|
|
9
9
|
* Base UiElement class
|
|
10
10
|
*/
|
|
@@ -25,7 +25,7 @@ class UiElement {
|
|
|
25
25
|
console.log(this);
|
|
26
26
|
}
|
|
27
27
|
isAccessAllowed(meta) {
|
|
28
|
-
return UiElement.#isElementAccessible(meta, this.resolver.user
|
|
28
|
+
return UiElement.#isElementAccessible(meta, this.resolver.user);
|
|
29
29
|
}
|
|
30
30
|
_value;
|
|
31
31
|
get value() {
|
|
@@ -36,11 +36,11 @@ class UiElement {
|
|
|
36
36
|
this.onUpdate(value);
|
|
37
37
|
}
|
|
38
38
|
onUpdate;
|
|
39
|
-
static #isElementAccessible(meta, user
|
|
39
|
+
static #isElementAccessible(meta, user) {
|
|
40
40
|
if (!meta || !meta.access || UiElement.#isSuperuser(user)) {
|
|
41
41
|
return true;
|
|
42
42
|
}
|
|
43
|
-
const userRole = user?.get(
|
|
43
|
+
const userRole = user?.get(USER_ROLE_TAG_NAME);
|
|
44
44
|
if (userRole && meta.access.includes(userRole.value)) {
|
|
45
45
|
return true;
|
|
46
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/UiElement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/UiElement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAKH,MAAM,kBAAkB,GAAG,sBAAsB,CAAA;AAiBjD;;GAEG;AACH,MAAsB,SAAS;IAC9B,YAAY,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACqB;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IACD,QAAQ,CAAU;IAElB,KAAK,CAAgB;IAErB,IAAI,CAAS;IAEb,MAAM;QACL,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;IACD,OAAO;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,eAAe,CAAC,IAAoB;QACnC,OAAO,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC;IAES,MAAM,CAAU;IAE1B,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,KAA0B;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACD,QAAQ,CAAsC;IAE9C,MAAM,CAAC,oBAAoB,CAAC,IAAoB,EAAE,IAAY;QAC7D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC1D,OAAO,IAAI,CAAA;SACX;QAED,MAAM,QAAQ,GAAG,IAAI,EAAE,GAAG,CAAO,kBAAkB,CAAC,CAAA;QACpD,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACrD,OAAO,IAAI,CAAA;SACX;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC/B,OAAO,IAAI,EAAE,GAAG,CAAO,UAAU,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAG,MAA8B;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;CACD;AA7DD,8BA6DC"}
|
|
@@ -13,7 +13,9 @@ const UiElement_1 = require("../UiElement");
|
|
|
13
13
|
class FunctionElement extends UiElement_1.UiElement {
|
|
14
14
|
constructor(data) {
|
|
15
15
|
super(data);
|
|
16
|
-
this.
|
|
16
|
+
if (this.isAccessAllowed(this._meta)) {
|
|
17
|
+
this.value = this.#buildFunction();
|
|
18
|
+
}
|
|
17
19
|
}
|
|
18
20
|
#buildFunction = () => {
|
|
19
21
|
const { expr } = this._meta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/function/FunctionElement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAAgF;AAChF,iFAA4E;AAE5E,4CAIqB;AAGrB;;GAEG;AACH,MAAa,eAAyC,SAAQ,qBAAY;IACzE,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"FunctionElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/function/FunctionElement.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAAgF;AAChF,iFAA4E;AAE5E,4CAIqB;AAGrB;;GAEG;AACH,MAAa,eAAyC,SAAQ,qBAAY;IACzE,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;SAClC;IACF,CAAC;IAED,cAAc,GAAG,GAAmB,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAA4B,CAAA;QAElD,OAAO,KAAK,EAAE,UAAU,EAAE,EAAE;YAC3B,MAAM,kBAAkB,GAAG,IAAA,sDAAyB,EACnD,IAAI,EACJ,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAC9B,CAAA;YAED,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACpD,CAAC,CAAA;IACF,CAAC,CAAA;CACD;AApBD,0CAoBC;AAUM,MAAM,kBAAkB,GAAG,CACjC,UAIY,EACJ,EAAE;IACV,IAAI,CAAC,UAAU,EAAE;QAChB,OAAO,qBAAK,CAAC,IAAI,EAAE,CAAA;KACnB;IACD,IAAI,UAAU,YAAY,qBAAK,EAAE;QAChC,OAAO,UAAU,CAAA;KACjB;IAED,OAAO,qBAAK,CAAC,IAAI,CAChB,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CACvD,CACD,CAAA;AACF,CAAC,CAAA;AAnBY,QAAA,kBAAkB,sBAmB9B"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import { Resolver } from '../Resolver';
|
|
3
3
|
export declare function useResolverContext(): Resolver;
|
|
4
|
-
|
|
5
|
-
userRoleTagName?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const ResolverProvider: React.FC<ResolverProviderProps>;
|
|
8
|
-
export {};
|
|
4
|
+
export declare const ResolverProvider: React.FC<PropsWithChildren>;
|
|
@@ -42,13 +42,13 @@ function useResolverContext() {
|
|
|
42
42
|
return (0, react_1.useContext)(ResolverContext);
|
|
43
43
|
}
|
|
44
44
|
exports.useResolverContext = useResolverContext;
|
|
45
|
-
const ResolverProvider = ({
|
|
45
|
+
const ResolverProvider = ({ children }) => {
|
|
46
46
|
const client = (0, haystack_react_1.useClient)();
|
|
47
47
|
const user = (0, useCurrentUser_1.useCurrentUser)();
|
|
48
|
-
const [resolver, setResolver] = (0, react_1.useState)(() => new Resolver_1.Resolver({ client, user
|
|
48
|
+
const [resolver, setResolver] = (0, react_1.useState)(() => new Resolver_1.Resolver({ client, user }));
|
|
49
49
|
(0, react_1.useEffect)(() => {
|
|
50
|
-
setResolver(new Resolver_1.Resolver({ client, user
|
|
51
|
-
}, [client, user
|
|
50
|
+
setResolver(new Resolver_1.Resolver({ client, user }));
|
|
51
|
+
}, [client, user]);
|
|
52
52
|
return (<ResolverContext.Provider value={resolver}>
|
|
53
53
|
{children}
|
|
54
54
|
</ResolverContext.Provider>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResolverContext.jsx","sourceRoot":"","sources":["../../../src/resolvableElements/react/useResolverContext.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,mDAA0C;AAC1C,+CAKc;AACd,yDAAqD;AACrD,0CAAsC;AAEtC,MAAM,eAAe,GAAG,eAAK,CAAC,aAAa,CAC1C,IAAI,mBAAQ,CAAC;IACZ,MAAM,EAAE,IAAI,yBAAM,CAAC;QAClB,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;CACF,CAAC,CACF,CAAA;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,SAAgB,kBAAkB;IACjC,OAAO,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAA;AACnC,CAAC;AAFD,gDAEC;
|
|
1
|
+
{"version":3,"file":"useResolverContext.jsx","sourceRoot":"","sources":["../../../src/resolvableElements/react/useResolverContext.tsx"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uDAAyC;AACzC,mDAA0C;AAC1C,+CAKc;AACd,yDAAqD;AACrD,0CAAsC;AAEtC,MAAM,eAAe,GAAG,eAAK,CAAC,aAAa,CAC1C,IAAI,mBAAQ,CAAC;IACZ,MAAM,EAAE,IAAI,yBAAM,CAAC;QAClB,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;CACF,CAAC,CACF,CAAA;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,SAAgB,kBAAkB;IACjC,OAAO,IAAA,kBAAU,EAAC,eAAe,CAAC,CAAA;AACnC,CAAC;AAFD,gDAEC;AAEM,MAAM,gBAAgB,GAAgC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,IAAA,0BAAS,GAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAA,+BAAc,GAAE,CAAA;IAE7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EACvC,GAAG,EAAE,CAAC,IAAI,mBAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACpC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,WAAW,CAAC,IAAI,mBAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAElB,OAAO,CACN,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CACzC;GAAA,CAAC,QAAQ,CACV;EAAA,EAAE,eAAe,CAAC,QAAQ,CAAC,CAC3B,CAAA;AACF,CAAC,CAAA;AAjBY,QAAA,gBAAgB,oBAiB5B"}
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { HDict, HGrid } from 'haystack-core';
|
|
2
2
|
import { Client, Watch } from 'haystack-nclient';
|
|
3
|
-
export declare const DEFAULT_USER_ROLE_TAG_NAME = "uiElementPermissions";
|
|
4
3
|
export interface ResolverData {
|
|
5
4
|
client: Client;
|
|
6
5
|
user?: HDict;
|
|
7
|
-
userRoleTagName?: string;
|
|
8
6
|
}
|
|
9
7
|
/**
|
|
10
8
|
* Resolver is a mediator for the network interactions during the resolution process,
|
|
11
9
|
* in order to enable future optimizations.
|
|
12
10
|
*/
|
|
13
11
|
export declare class Resolver {
|
|
14
|
-
constructor({ client, user
|
|
12
|
+
constructor({ client, user }: ResolverData);
|
|
15
13
|
client: Client;
|
|
16
14
|
user?: HDict;
|
|
17
|
-
userRoleTagName?: string;
|
|
18
15
|
read(filter: string): Promise<HGrid<HDict>>;
|
|
19
16
|
makeWatch(dis: string, grid: HGrid<HDict>): Promise<Watch>;
|
|
20
17
|
eval(expr: string): Promise<HGrid<HDict>>;
|
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
3
|
*/
|
|
4
|
-
export const DEFAULT_USER_ROLE_TAG_NAME = 'uiElementPermissions';
|
|
5
4
|
/**
|
|
6
5
|
* Resolver is a mediator for the network interactions during the resolution process,
|
|
7
6
|
* in order to enable future optimizations.
|
|
8
7
|
*/
|
|
9
8
|
export class Resolver {
|
|
10
|
-
constructor({ client, user
|
|
9
|
+
constructor({ client, user }) {
|
|
11
10
|
this.client = client;
|
|
12
11
|
this.user = user;
|
|
13
|
-
this.userRoleTagName = userRoleTagName;
|
|
14
12
|
}
|
|
15
13
|
client;
|
|
16
14
|
user;
|
|
17
|
-
userRoleTagName;
|
|
18
15
|
async read(filter) {
|
|
19
16
|
return this.client.ext.read(filter);
|
|
20
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/resolvableElements/Resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"Resolver.js","sourceRoot":"","sources":["../../src/resolvableElements/Resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACpB,YAAY,EAAE,MAAM,EAAE,IAAI,EAAgB;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,MAAM,CAAQ;IACd,IAAI,CAAQ;IAEZ,KAAK,CAAC,IAAI,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,IAAkB;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;CACD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
const USER_ROLE_TAG_NAME = 'uiElementPermissions';
|
|
5
5
|
/**
|
|
6
6
|
* Base UiElement class
|
|
7
7
|
*/
|
|
@@ -22,7 +22,7 @@ export class UiElement {
|
|
|
22
22
|
console.log(this);
|
|
23
23
|
}
|
|
24
24
|
isAccessAllowed(meta) {
|
|
25
|
-
return UiElement.#isElementAccessible(meta, this.resolver.user
|
|
25
|
+
return UiElement.#isElementAccessible(meta, this.resolver.user);
|
|
26
26
|
}
|
|
27
27
|
_value;
|
|
28
28
|
get value() {
|
|
@@ -33,11 +33,11 @@ export class UiElement {
|
|
|
33
33
|
this.onUpdate(value);
|
|
34
34
|
}
|
|
35
35
|
onUpdate;
|
|
36
|
-
static #isElementAccessible(meta, user
|
|
36
|
+
static #isElementAccessible(meta, user) {
|
|
37
37
|
if (!meta || !meta.access || UiElement.#isSuperuser(user)) {
|
|
38
38
|
return true;
|
|
39
39
|
}
|
|
40
|
-
const userRole = user?.get(
|
|
40
|
+
const userRole = user?.get(USER_ROLE_TAG_NAME);
|
|
41
41
|
if (userRole && meta.access.includes(userRole.value)) {
|
|
42
42
|
return true;
|
|
43
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/UiElement.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../../src/resolvableElements/elements/UiElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,kBAAkB,GAAG,sBAAsB,CAAA;AAiBjD;;GAEG;AACH,MAAM,OAAgB,SAAS;IAC9B,YAAY,EACX,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,QAAQ,GACqB;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IACD,QAAQ,CAAU;IAElB,KAAK,CAAgB;IAErB,IAAI,CAAS;IAEb,MAAM;QACL,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC;IACD,OAAO;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC;IAED,eAAe,CAAC,IAAoB;QACnC,OAAO,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC;IAES,MAAM,CAAU;IAE1B,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,MAAM,CAAA;IACnB,CAAC;IAED,IAAI,KAAK,CAAC,KAA0B;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrB,CAAC;IACD,QAAQ,CAAsC;IAE9C,MAAM,CAAC,oBAAoB,CAAC,IAAoB,EAAE,IAAY;QAC7D,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC1D,OAAO,IAAI,CAAA;SACX;QAED,MAAM,QAAQ,GAAG,IAAI,EAAE,GAAG,CAAO,kBAAkB,CAAC,CAAA;QACpD,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACrD,OAAO,IAAI,CAAA;SACX;QAED,OAAO,KAAK,CAAA;IACb,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY;QAC/B,OAAO,IAAI,EAAE,GAAG,CAAO,UAAU,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAG,MAA8B;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;CACD"}
|
|
@@ -10,7 +10,9 @@ import { UiElement, } from '../UiElement';
|
|
|
10
10
|
export class FunctionElement extends UiElement {
|
|
11
11
|
constructor(data) {
|
|
12
12
|
super(data);
|
|
13
|
-
this.
|
|
13
|
+
if (this.isAccessAllowed(this._meta)) {
|
|
14
|
+
this.value = this.#buildFunction();
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
17
|
#buildFunction = () => {
|
|
16
18
|
const { expr } = this._meta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/function/FunctionElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAwB,KAAK,EAAuB,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,OAAO,EACN,SAAS,GAGT,MAAM,cAAc,CAAA;AAGrB;;GAEG;AACH,MAAM,OAAO,eAAyC,SAAQ,SAAY;IACzE,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"FunctionElement.js","sourceRoot":"","sources":["../../../../src/resolvableElements/elements/function/FunctionElement.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAwB,KAAK,EAAuB,MAAM,eAAe,CAAA;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAE5E,OAAO,EACN,SAAS,GAGT,MAAM,cAAc,CAAA;AAGrB;;GAEG;AACH,MAAM,OAAO,eAAyC,SAAQ,SAAY;IACzE,YAAY,IAAiC;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAA;QACX,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;SAClC;IACF,CAAC;IAED,cAAc,GAAG,GAAmB,EAAE;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAA4B,CAAA;QAElD,OAAO,KAAK,EAAE,UAAU,EAAE,EAAE;YAC3B,MAAM,kBAAkB,GAAG,yBAAyB,CACnD,IAAI,EACJ,kBAAkB,CAAC,UAAU,CAAC,CAC9B,CAAA;YAED,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QACpD,CAAC,CAAA;IACF,CAAC,CAAA;CACD;AAUD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CACjC,UAIY,EACJ,EAAE;IACV,IAAI,CAAC,UAAU,EAAE;QAChB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;KACnB;IACD,IAAI,UAAU,YAAY,KAAK,EAAE;QAChC,OAAO,UAAU,CAAA;KACjB;IAED,OAAO,KAAK,CAAC,IAAI,CAChB,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CACvD,CACD,CAAA;AACF,CAAC,CAAA"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
2
|
import { Resolver } from '../Resolver';
|
|
3
3
|
export declare function useResolverContext(): Resolver;
|
|
4
|
-
|
|
5
|
-
userRoleTagName?: string;
|
|
6
|
-
}
|
|
7
|
-
export declare const ResolverProvider: React.FC<ResolverProviderProps>;
|
|
8
|
-
export {};
|
|
4
|
+
export declare const ResolverProvider: React.FC<PropsWithChildren>;
|
|
@@ -15,13 +15,13 @@ ResolverContext.displayName = 'ResolverContext';
|
|
|
15
15
|
export function useResolverContext() {
|
|
16
16
|
return useContext(ResolverContext);
|
|
17
17
|
}
|
|
18
|
-
export const ResolverProvider = ({
|
|
18
|
+
export const ResolverProvider = ({ children }) => {
|
|
19
19
|
const client = useClient();
|
|
20
20
|
const user = useCurrentUser();
|
|
21
|
-
const [resolver, setResolver] = useState(() => new Resolver({ client, user
|
|
21
|
+
const [resolver, setResolver] = useState(() => new Resolver({ client, user }));
|
|
22
22
|
useEffect(() => {
|
|
23
|
-
setResolver(new Resolver({ client, user
|
|
24
|
-
}, [client, user
|
|
23
|
+
setResolver(new Resolver({ client, user }));
|
|
24
|
+
}, [client, user]);
|
|
25
25
|
return (<ResolverContext.Provider value={resolver}>
|
|
26
26
|
{children}
|
|
27
27
|
</ResolverContext.Provider>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResolverContext.jsx","sourceRoot":"","sources":["../../../src/resolvableElements/react/useResolverContext.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,EAEb,UAAU,EACV,SAAS,EACT,QAAQ,GACR,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAC1C,IAAI,QAAQ,CAAC;IACZ,MAAM,EAAE,IAAI,MAAM,CAAC;QAClB,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;CACF,CAAC,CACF,CAAA;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,MAAM,UAAU,kBAAkB;IACjC,OAAO,UAAU,CAAC,eAAe,CAAC,CAAA;AACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"useResolverContext.jsx","sourceRoot":"","sources":["../../../src/resolvableElements/react/useResolverContext.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,EAEb,UAAU,EACV,SAAS,EACT,QAAQ,GACR,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAC1C,IAAI,QAAQ,CAAC;IACZ,MAAM,EAAE,IAAI,MAAM,CAAC;QAClB,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;CACF,CAAC,CACF,CAAA;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE/C,MAAM,UAAU,kBAAkB;IACjC,OAAO,UAAU,CAAC,eAAe,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAgC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;IAE7B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CACvC,GAAG,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACpC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACd,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;IAElB,OAAO,CACN,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CACzC;GAAA,CAAC,QAAQ,CACV;EAAA,EAAE,eAAe,CAAC,QAAQ,CAAC,CAC3B,CAAA;AACF,CAAC,CAAA"}
|