@solidxai/core-ui 0.1.13-beta.3 → 0.1.13-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.
Files changed (42) hide show
  1. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  2. package/dist/components/core/card/SolidCardView.js +6 -11
  3. package/dist/components/core/card/SolidCardView.js.map +1 -1
  4. package/dist/components/core/card/SolidCardView.tsx +6 -11
  5. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  6. package/dist/components/core/card/SolidCardViewConfigure.js +3 -7
  7. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  8. package/dist/components/core/card/SolidCardViewConfigure.tsx +3 -9
  9. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  10. package/dist/components/core/form/SolidFormView.js +2 -10
  11. package/dist/components/core/form/SolidFormView.js.map +1 -1
  12. package/dist/components/core/form/SolidFormView.tsx +2 -10
  13. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  14. package/dist/components/core/kanban/SolidKanbanView.js +6 -11
  15. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  16. package/dist/components/core/kanban/SolidKanbanView.tsx +6 -11
  17. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  18. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +3 -7
  19. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  20. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +3 -9
  21. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  22. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +2 -3
  23. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  24. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -3
  25. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  26. package/dist/components/core/list/SolidListView.js +2 -14
  27. package/dist/components/core/list/SolidListView.js.map +1 -1
  28. package/dist/components/core/list/SolidListView.tsx +2 -14
  29. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  30. package/dist/components/core/list/SolidListViewConfigure.js +7 -5
  31. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  32. package/dist/components/core/list/SolidListViewConfigure.tsx +7 -5
  33. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  34. package/dist/components/core/tree/SolidTreeView.js +2 -14
  35. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  36. package/dist/components/core/tree/SolidTreeView.tsx +2 -14
  37. package/dist/helpers/permissions.d.ts +13 -0
  38. package/dist/helpers/permissions.d.ts.map +1 -1
  39. package/dist/helpers/permissions.js +79 -0
  40. package/dist/helpers/permissions.js.map +1 -1
  41. package/dist/helpers/permissions.ts +92 -1
  42. package/package.json +1 -1
@@ -14,7 +14,7 @@ import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
14
14
  import qs from "qs";
15
15
  import { useSearchParams } from "../../../hooks/useSearchParams";
16
16
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
17
- import { permissionExpression } from "../../../helpers/permissions";
17
+ import { getCollectionViewPermissionNames, permissionExpression } from "../../../helpers/permissions";
18
18
  import { SolidCreateButton } from "../common/SolidCreateButton";
19
19
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
20
20
  import { AggregationRule, GroupingRule } from "../common/GroupingComponent";
@@ -282,19 +282,7 @@ export const SolidTreeView = forwardRef<SolidTreeViewHandle, SolidTreeViewParams
282
282
  useEffect(() => {
283
283
  const fetchPermissions = async () => {
284
284
  if (params.modelName) {
285
- const permissionNames = [
286
- permissionExpression(params.modelName, 'create'),
287
- permissionExpression(params.modelName, 'delete'),
288
- permissionExpression(params.modelName, 'update'),
289
- permissionExpression(params.modelName, 'deleteMany'),
290
- permissionExpression(params.modelName, 'findOne'),
291
- permissionExpression(params.modelName, 'findMany'),
292
- permissionExpression(params.modelName, 'insertMany'),
293
- permissionExpression('importTransaction', 'create'),
294
- permissionExpression('exportTransaction', 'create'),
295
- permissionExpression('userViewMetadata', 'create'),
296
- permissionExpression('savedFilters', 'create')
297
- ];
285
+ const permissionNames = getCollectionViewPermissionNames(params.modelName);
298
286
  const queryData = {
299
287
  permissionNames: permissionNames,
300
288
  };
@@ -1,2 +1,15 @@
1
1
  export declare const permissionExpression: (modelName: string, permissionName: string) => string;
2
+ export declare const importPermissionExpressions: string[];
3
+ export declare const exportPermissionExpressions: string[];
4
+ export declare const hasAllPermissions: (actionsAllowed?: string[], permissionNames?: string[]) => boolean;
5
+ type CollectionViewPermissionOptions = {
6
+ includeDeleteMany?: boolean;
7
+ includeFindOne?: boolean;
8
+ includeInsertMany?: boolean;
9
+ };
10
+ export declare const getCollectionViewPermissionNames: (modelName: string, options?: CollectionViewPermissionOptions) => string[];
11
+ export declare const getFormViewPermissionNames: (modelName: string) => string[];
12
+ export declare const canImportRecords: (actionsAllowed?: string[], modelName?: string) => boolean;
13
+ export declare const canExportRecords: (actionsAllowed?: string[], modelName?: string) => boolean;
14
+ export {};
2
15
  //# sourceMappingURL=permissions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,cAAe,MAAM,kBAAmB,MAAM,WAE9E,CAAC"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,cAAe,MAAM,kBAAmB,MAAM,WAE9E,CAAC;AAEF,eAAO,MAAM,2BAA2B,UASvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,UAMvC,CAAC;AAEF,eAAO,MAAM,iBAAiB,oBAAoB,MAAM,EAAE,oBAAwB,MAAM,EAAE,YAEzF,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,gCAAgC,cAC9B,MAAM,YACR,+BAA+B,aAgC3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,cAAe,MAAM,aAU3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,oBAAoB,MAAM,EAAE,cAAmB,MAAM,YAKjF,CAAC;AAEF,eAAO,MAAM,gBAAgB,oBAAoB,MAAM,EAAE,cAAmB,MAAM,YAKjF,CAAC"}
@@ -1,6 +1,85 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
1
10
  import { camelCase, upperFirst } from "lodash";
2
11
  //Dynamic permission expression
3
12
  export var permissionExpression = function (modelName, permissionName) {
4
13
  return "".concat(upperFirst(camelCase(modelName)), "Controller.").concat(permissionName);
5
14
  };
15
+ export var importPermissionExpressions = [
16
+ "ImportTransactionController.create",
17
+ "ImportTransactionController.getImportTemplate",
18
+ "ImportTransactionController.getImportInstructions",
19
+ "ImportTransactionController.getImportMappingInfo",
20
+ "ImportTransactionController.partialUpdate",
21
+ "ImportTransactionController.startImportSync",
22
+ "ImportTransactionController.startImportAsync",
23
+ "ImportTransactionController.exportFailedImportedImports",
24
+ ];
25
+ export var exportPermissionExpressions = [
26
+ "ExportTemplateController.create",
27
+ "ExportTemplateController.delete",
28
+ "ExportTemplateController.findMany",
29
+ "ExportTemplateController.startExportSync",
30
+ "ExportTemplateController.startExportAsync",
31
+ ];
32
+ export var hasAllPermissions = function (actionsAllowed, permissionNames) {
33
+ if (actionsAllowed === void 0) { actionsAllowed = []; }
34
+ if (permissionNames === void 0) { permissionNames = []; }
35
+ return permissionNames.every(function (permissionName) { return actionsAllowed.includes(permissionName); });
36
+ };
37
+ export var getCollectionViewPermissionNames = function (modelName, options) {
38
+ if (options === void 0) { options = {}; }
39
+ var _a = options.includeDeleteMany, includeDeleteMany = _a === void 0 ? true : _a, _b = options.includeFindOne, includeFindOne = _b === void 0 ? true : _b, _c = options.includeInsertMany, includeInsertMany = _c === void 0 ? true : _c;
40
+ var permissionNames = __spreadArray(__spreadArray(__spreadArray([
41
+ permissionExpression(modelName, "create"),
42
+ permissionExpression(modelName, "delete"),
43
+ permissionExpression(modelName, "update"),
44
+ permissionExpression(modelName, "findMany")
45
+ ], importPermissionExpressions, true), exportPermissionExpressions, true), [
46
+ permissionExpression("userViewMetadata", "create"),
47
+ permissionExpression("savedFilters", "create"),
48
+ ], false);
49
+ if (includeDeleteMany) {
50
+ permissionNames.push(permissionExpression(modelName, "deleteMany"));
51
+ }
52
+ if (includeFindOne) {
53
+ permissionNames.push(permissionExpression(modelName, "findOne"));
54
+ }
55
+ if (includeInsertMany) {
56
+ permissionNames.push(permissionExpression(modelName, "insertMany"));
57
+ }
58
+ return permissionNames;
59
+ };
60
+ export var getFormViewPermissionNames = function (modelName) {
61
+ return [
62
+ permissionExpression(modelName, "create"),
63
+ permissionExpression(modelName, "delete"),
64
+ permissionExpression(modelName, "update"),
65
+ permissionExpression(modelName, "findOne"),
66
+ permissionExpression(modelName, "publish"),
67
+ permissionExpression(modelName, "unpublish"),
68
+ permissionExpression("chatterMessage", "findMany"),
69
+ ];
70
+ };
71
+ export var canImportRecords = function (actionsAllowed, modelName) {
72
+ if (actionsAllowed === void 0) { actionsAllowed = []; }
73
+ if (!modelName)
74
+ return false;
75
+ return actionsAllowed.includes(permissionExpression(modelName, "create")) &&
76
+ hasAllPermissions(actionsAllowed, importPermissionExpressions);
77
+ };
78
+ export var canExportRecords = function (actionsAllowed, modelName) {
79
+ if (actionsAllowed === void 0) { actionsAllowed = []; }
80
+ if (!modelName)
81
+ return false;
82
+ return actionsAllowed.includes(permissionExpression(modelName, "findMany")) &&
83
+ hasAllPermissions(actionsAllowed, exportPermissionExpressions);
84
+ };
6
85
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE/C,+BAA+B;AAC/B,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,SAAiB,EAAE,cAAuB;IAC3E,OAAO,UAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,wBAAc,cAAc,CAAE,CAAA;AAC5E,CAAC,CAAC","sourcesContent":["\nimport { camelCase, upperFirst } from \"lodash\";\n\n//Dynamic permission expression\nexport const permissionExpression = (modelName: string, permissionName : string) => {\n return `${upperFirst(camelCase(modelName))}Controller.${permissionName}`\n};"]}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"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","sourcesContent":["\nimport { camelCase, upperFirst } from \"lodash\";\n\n//Dynamic permission expression\nexport const permissionExpression = (modelName: string, permissionName : string) => {\n return `${upperFirst(camelCase(modelName))}Controller.${permissionName}`\n};\n\nexport const importPermissionExpressions = [\n \"ImportTransactionController.create\",\n \"ImportTransactionController.getImportTemplate\",\n \"ImportTransactionController.getImportInstructions\",\n \"ImportTransactionController.getImportMappingInfo\",\n \"ImportTransactionController.partialUpdate\",\n \"ImportTransactionController.startImportSync\",\n \"ImportTransactionController.startImportAsync\",\n \"ImportTransactionController.exportFailedImportedImports\",\n];\n\nexport const exportPermissionExpressions = [\n \"ExportTemplateController.create\",\n \"ExportTemplateController.delete\",\n \"ExportTemplateController.findMany\",\n \"ExportTemplateController.startExportSync\",\n \"ExportTemplateController.startExportAsync\",\n];\n\nexport const hasAllPermissions = (actionsAllowed: string[] = [], permissionNames: string[] = []) => {\n return permissionNames.every((permissionName) => actionsAllowed.includes(permissionName));\n};\n\ntype CollectionViewPermissionOptions = {\n includeDeleteMany?: boolean;\n includeFindOne?: boolean;\n includeInsertMany?: boolean;\n};\n\nexport const getCollectionViewPermissionNames = (\n modelName: string,\n options: CollectionViewPermissionOptions = {},\n) => {\n const {\n includeDeleteMany = true,\n includeFindOne = true,\n includeInsertMany = true,\n } = options;\n\n const permissionNames = [\n permissionExpression(modelName, \"create\"),\n permissionExpression(modelName, \"delete\"),\n permissionExpression(modelName, \"update\"),\n permissionExpression(modelName, \"findMany\"),\n ...importPermissionExpressions,\n ...exportPermissionExpressions,\n permissionExpression(\"userViewMetadata\", \"create\"),\n permissionExpression(\"savedFilters\", \"create\"),\n ];\n\n if (includeDeleteMany) {\n permissionNames.push(permissionExpression(modelName, \"deleteMany\"));\n }\n\n if (includeFindOne) {\n permissionNames.push(permissionExpression(modelName, \"findOne\"));\n }\n\n if (includeInsertMany) {\n permissionNames.push(permissionExpression(modelName, \"insertMany\"));\n }\n\n return permissionNames;\n};\n\nexport const getFormViewPermissionNames = (modelName: string) => {\n return [\n permissionExpression(modelName, \"create\"),\n permissionExpression(modelName, \"delete\"),\n permissionExpression(modelName, \"update\"),\n permissionExpression(modelName, \"findOne\"),\n permissionExpression(modelName, \"publish\"),\n permissionExpression(modelName, \"unpublish\"),\n permissionExpression(\"chatterMessage\", \"findMany\"),\n ];\n};\n\nexport const canImportRecords = (actionsAllowed: string[] = [], modelName?: string) => {\n if (!modelName) return false;\n\n return actionsAllowed.includes(permissionExpression(modelName, \"create\")) &&\n hasAllPermissions(actionsAllowed, importPermissionExpressions);\n};\n\nexport const canExportRecords = (actionsAllowed: string[] = [], modelName?: string) => {\n if (!modelName) return false;\n\n return actionsAllowed.includes(permissionExpression(modelName, \"findMany\")) &&\n hasAllPermissions(actionsAllowed, exportPermissionExpressions);\n};\n"]}
@@ -4,4 +4,95 @@ import { camelCase, upperFirst } from "lodash";
4
4
  //Dynamic permission expression
5
5
  export const permissionExpression = (modelName: string, permissionName : string) => {
6
6
  return `${upperFirst(camelCase(modelName))}Controller.${permissionName}`
7
- };
7
+ };
8
+
9
+ export const importPermissionExpressions = [
10
+ "ImportTransactionController.create",
11
+ "ImportTransactionController.getImportTemplate",
12
+ "ImportTransactionController.getImportInstructions",
13
+ "ImportTransactionController.getImportMappingInfo",
14
+ "ImportTransactionController.partialUpdate",
15
+ "ImportTransactionController.startImportSync",
16
+ "ImportTransactionController.startImportAsync",
17
+ "ImportTransactionController.exportFailedImportedImports",
18
+ ];
19
+
20
+ export const exportPermissionExpressions = [
21
+ "ExportTemplateController.create",
22
+ "ExportTemplateController.delete",
23
+ "ExportTemplateController.findMany",
24
+ "ExportTemplateController.startExportSync",
25
+ "ExportTemplateController.startExportAsync",
26
+ ];
27
+
28
+ export const hasAllPermissions = (actionsAllowed: string[] = [], permissionNames: string[] = []) => {
29
+ return permissionNames.every((permissionName) => actionsAllowed.includes(permissionName));
30
+ };
31
+
32
+ type CollectionViewPermissionOptions = {
33
+ includeDeleteMany?: boolean;
34
+ includeFindOne?: boolean;
35
+ includeInsertMany?: boolean;
36
+ };
37
+
38
+ export const getCollectionViewPermissionNames = (
39
+ modelName: string,
40
+ options: CollectionViewPermissionOptions = {},
41
+ ) => {
42
+ const {
43
+ includeDeleteMany = true,
44
+ includeFindOne = true,
45
+ includeInsertMany = true,
46
+ } = options;
47
+
48
+ const permissionNames = [
49
+ permissionExpression(modelName, "create"),
50
+ permissionExpression(modelName, "delete"),
51
+ permissionExpression(modelName, "update"),
52
+ permissionExpression(modelName, "findMany"),
53
+ ...importPermissionExpressions,
54
+ ...exportPermissionExpressions,
55
+ permissionExpression("userViewMetadata", "create"),
56
+ permissionExpression("savedFilters", "create"),
57
+ ];
58
+
59
+ if (includeDeleteMany) {
60
+ permissionNames.push(permissionExpression(modelName, "deleteMany"));
61
+ }
62
+
63
+ if (includeFindOne) {
64
+ permissionNames.push(permissionExpression(modelName, "findOne"));
65
+ }
66
+
67
+ if (includeInsertMany) {
68
+ permissionNames.push(permissionExpression(modelName, "insertMany"));
69
+ }
70
+
71
+ return permissionNames;
72
+ };
73
+
74
+ export const getFormViewPermissionNames = (modelName: string) => {
75
+ return [
76
+ permissionExpression(modelName, "create"),
77
+ permissionExpression(modelName, "delete"),
78
+ permissionExpression(modelName, "update"),
79
+ permissionExpression(modelName, "findOne"),
80
+ permissionExpression(modelName, "publish"),
81
+ permissionExpression(modelName, "unpublish"),
82
+ permissionExpression("chatterMessage", "findMany"),
83
+ ];
84
+ };
85
+
86
+ export const canImportRecords = (actionsAllowed: string[] = [], modelName?: string) => {
87
+ if (!modelName) return false;
88
+
89
+ return actionsAllowed.includes(permissionExpression(modelName, "create")) &&
90
+ hasAllPermissions(actionsAllowed, importPermissionExpressions);
91
+ };
92
+
93
+ export const canExportRecords = (actionsAllowed: string[] = [], modelName?: string) => {
94
+ if (!modelName) return false;
95
+
96
+ return actionsAllowed.includes(permissionExpression(modelName, "findMany")) &&
97
+ hasAllPermissions(actionsAllowed, exportPermissionExpressions);
98
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidxai/core-ui",
3
- "version": "0.1.13-beta.3",
3
+ "version": "0.1.13-beta.4",
4
4
  "scripts": {
5
5
  "build:tailwind": "tailwindcss -i ./src/resources/solid-tailwind.css -o ./src/resources/solid-tailwind-generated.css -c ./tailwind.config.js --minify",
6
6
  "prebuild": "npm run build:tailwind && npm run copy-resources && npm run copy-styles",