awing-library 2.1.2-stable.39 → 2.1.2-stable.40

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":"PermissionTable.d.ts","sourceRoot":"","sources":["../../../../src/AWING/DirectoryPermission/components/PermissionTable.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,MAAM,MAAM,QAAQ,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,QAAQ,2CA2DtD"}
1
+ {"version":3,"file":"PermissionTable.d.ts","sourceRoot":"","sources":["../../../../src/AWING/DirectoryPermission/components/PermissionTable.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMnD,MAAM,MAAM,QAAQ,GAAG;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,mBAAmB,EAAE,kBAAkB,EAAE,CAAC;IAC1C,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,QAAQ,2CAoGtD"}
@@ -1,14 +1,52 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState } from "react";
2
3
  import { CircularProgress, Stack, Table, TableBody, TableCell, TableRow } from "@mui/material";
3
4
  import { schemasState, workflowStates } from "../Atoms.js";
4
5
  import { headCells } from "../utils/index.js";
5
6
  import TableHeader from "./TableHeader.js";
6
7
  import SchemaRow from "./SchemaRow.js";
7
8
  import { useAtomValue } from "jotai";
9
+ import { useGetDirectoryContext } from "../context.js";
10
+ import { OBJECT_TYPE_CODE_NONE } from "../constants.js";
8
11
  function PermissionTable(props) {
9
12
  const { disableSelectSchema, explicitPermissions, inheritedPermissions, onChangePermission, onDeleteSchema, onChangeStates, objectTypeCodeSelected, loading } = props;
10
13
  const schemas = useAtomValue(schemasState);
11
14
  const workflow = useAtomValue(workflowStates);
15
+ const { services } = useGetDirectoryContext();
16
+ const [typeDefinitions, setTypeDefinitions] = useState([]);
17
+ const [typeDefinitionsLoading, setTypeDefinitionsLoading] = useState(false);
18
+ const [hasLoadedSchemaDetails, setHasLoadedSchemaDetails] = useState(false);
19
+ useEffect(()=>{
20
+ setTypeDefinitions([]);
21
+ setHasLoadedSchemaDetails(false);
22
+ setTypeDefinitionsLoading(false);
23
+ }, [
24
+ objectTypeCodeSelected
25
+ ]);
26
+ const handleLoadSchemaDetails = useCallback(()=>{
27
+ if (hasLoadedSchemaDetails || typeDefinitionsLoading) return;
28
+ if (!objectTypeCodeSelected || objectTypeCodeSelected === OBJECT_TYPE_CODE_NONE) return;
29
+ if (!services?.getSchemaDetails) return;
30
+ setTypeDefinitionsLoading(true);
31
+ services.getSchemaDetails({
32
+ objectTypeCode: objectTypeCodeSelected
33
+ }).then((res)=>{
34
+ setTypeDefinitions(res.map((schema)=>({
35
+ schemaId: schema.id,
36
+ schemaObjectDefinitions: schema.schemaObjectDefinitions?.map((d)=>({
37
+ ...d.typeDefinition,
38
+ fieldPath: d.fieldPath,
39
+ isReadOnly: d.isReadOnly
40
+ }))
41
+ })));
42
+ setHasLoadedSchemaDetails(true);
43
+ }).finally(()=>setTypeDefinitionsLoading(false));
44
+ }, [
45
+ hasLoadedSchemaDetails,
46
+ typeDefinitionsLoading,
47
+ objectTypeCodeSelected,
48
+ services
49
+ ]);
12
50
  return /*#__PURE__*/ jsx(Stack, {
13
51
  sx: {
14
52
  width: '100%',
@@ -31,7 +69,7 @@ function PermissionTable(props) {
31
69
  })
32
70
  }) : explicitPermissions.map((item, idx)=>/*#__PURE__*/ jsx(SchemaRow, {
33
71
  index: idx,
34
- schemas: schemas,
72
+ schema: schemas.find((s)=>s.id === item.schemaId) ?? {},
35
73
  schemaId: item?.schemaId ?? null,
36
74
  onChangePermission: onChangePermission,
37
75
  disableSelectSchema: disableSelectSchema,
@@ -40,7 +78,10 @@ function PermissionTable(props) {
40
78
  explicitPermission: item,
41
79
  workflow: workflow,
42
80
  onChangeStates: onChangeStates,
43
- objectTypeCodeSelected: objectTypeCodeSelected
81
+ objectTypeCodeSelected: objectTypeCodeSelected,
82
+ typeDefinitions: typeDefinitions,
83
+ typeDefinitionsLoading: typeDefinitionsLoading,
84
+ onRequestSchemaDetails: handleLoadSchemaDetails
44
85
  }, `schemaRow_${item.schemaId}`))
45
86
  })
46
87
  ]
@@ -3,7 +3,7 @@ import { ChevronRight, ExpandMore } from "@mui/icons-material";
3
3
  import { Box } from "@mui/material";
4
4
  import { SimpleTreeView } from "@mui/x-tree-view";
5
5
  import { FieldView } from "../../../Features/SYSTEM/Schema/index.js";
6
- import { convertToDisplayData, convertToTreeData } from "../../../Features/SYSTEM/Schema/utils.js";
6
+ import { convertToDisplayData, convertToTreeWithMissingParents } from "../../../Features/SYSTEM/Schema/utils.js";
7
7
  import { useState } from "react";
8
8
  import { BORDER_LIGHTGRAY } from "../constants.js";
9
9
  function SchemaDetail(props) {
@@ -14,7 +14,7 @@ function SchemaDetail(props) {
14
14
  setExpanded(nodeIds);
15
15
  };
16
16
  const displayData = convertToDisplayData(objectDefinitions);
17
- const treeDatas = convertToTreeData(displayData);
17
+ const treeDatas = convertToTreeWithMissingParents(displayData);
18
18
  return /*#__PURE__*/ jsx(Box, {
19
19
  style: {
20
20
  borderBottom: BORDER_LIGHTGRAY
@@ -1,9 +1,10 @@
1
1
  import type { ExplicitPermission, Schema, Workflow } from '../types';
2
+ import type { TypeDefinitionCustom } from '../../../Features/SYSTEM/Schema';
2
3
  export type OwnProps = {
3
4
  index: number;
4
5
  explicitPermission: ExplicitPermission;
5
6
  inheritedPermissions: ExplicitPermission[];
6
- schemas: Schema[];
7
+ schema: Schema;
7
8
  schemaId: number | null;
8
9
  onChangePermission: (code: number, schemaId: number | null) => void;
9
10
  onDeleteSchema: (schemaId: number | null) => void;
@@ -11,6 +12,12 @@ export type OwnProps = {
11
12
  workflow: Workflow;
12
13
  onChangeStates: (stateId: string, schemaId: number | null) => void;
13
14
  objectTypeCodeSelected?: string;
15
+ typeDefinitions: {
16
+ schemaId?: number;
17
+ schemaObjectDefinitions?: TypeDefinitionCustom[];
18
+ }[];
19
+ typeDefinitionsLoading: boolean;
20
+ onRequestSchemaDetails: () => void;
14
21
  };
15
22
  export default function Container(props: OwnProps): import("react/jsx-runtime").JSX.Element;
16
23
  //# sourceMappingURL=SchemaRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaRow.d.ts","sourceRoot":"","sources":["../../../../src/AWING/DirectoryPermission/components/SchemaRow.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAMrE,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,QAAQ,2CA4LhD"}
1
+ {"version":3,"file":"SchemaRow.d.ts","sourceRoot":"","sources":["../../../../src/AWING/DirectoryPermission/components/SchemaRow.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACpE,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,oBAAoB,EAAE,CAAA;KAAE,EAAE,CAAC;IAC3F,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACtC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,QAAQ,2CAsKhD"}
@@ -2,37 +2,24 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
3
  import { Box, Checkbox, CircularProgress, IconButton, TableCell, TableRow, Typography } from "@mui/material";
4
4
  import { Clear, ExpandLess, ExpandMore } from "@mui/icons-material";
5
- import { Constants, OBJECT_TYPE_CODE_NONE } from "../constants.js";
6
- import { rootSchemasState } from "../Atoms.js";
5
+ import { Constants } from "../constants.js";
7
6
  import StatePicker from "./StatePicker.js";
8
- import { useAtomValue } from "jotai";
9
7
  import SchemaDetail from "./SchemaDetail.js";
10
8
  import { useGetDirectoryContext } from "../context.js";
11
9
  function Container(props) {
12
- const { index, schemas, schemaId, onChangePermission, disableSelectSchema, onDeleteSchema, inheritedPermissions, explicitPermission, workflow, onChangeStates, objectTypeCodeSelected } = props;
13
- const rootSchemas = useAtomValue(rootSchemasState);
10
+ const { index, schema, schemaId, onChangePermission, disableSelectSchema, onDeleteSchema, inheritedPermissions, explicitPermission, workflow, onChangeStates, typeDefinitions, typeDefinitionsLoading, onRequestSchemaDetails } = props;
14
11
  const inherit = inheritedPermissions?.find((i)=>i.schemaId === explicitPermission.schemaId);
15
12
  const iPermissions = inherit?.permissions || [];
16
13
  const iWorkflowStateIds = inherit?.workflowStateIds || [];
17
14
  const ePermissions = explicitPermission.permissions;
18
15
  const eWorkflowStateIds = explicitPermission.workflowStateIds;
19
- const { services, isCampaignPermissions } = useGetDirectoryContext();
20
- const [typeDefinitions, setTypeDefinitions] = useState([]);
21
- const [loading, setLoading] = useState(false);
16
+ const { isCampaignPermissions } = useGetDirectoryContext();
22
17
  const [open, setOpen] = useState(false);
23
18
  const handleOpen = ()=>{
24
- setOpen(!open);
25
- setLoading(true);
26
- schemaId && objectTypeCodeSelected && objectTypeCodeSelected !== OBJECT_TYPE_CODE_NONE && services?.getSchemaDetails && services.getSchemaDetails({
27
- objectTypeCode: objectTypeCodeSelected
28
- }).then((schemas)=>{
29
- const typeDefinitions = schemas.flatMap((s)=>s.schemaObjectDefinitions ?? []).map((d)=>({
30
- ...d.typeDefinition,
31
- fieldPath: d.fieldPath,
32
- isReadOnly: d.isReadOnly
33
- }));
34
- setTypeDefinitions(typeDefinitions);
35
- }).finally(()=>setLoading(false));
19
+ const nextOpen = !open;
20
+ setOpen(nextOpen);
21
+ if (!nextOpen) return;
22
+ onRequestSchemaDetails();
36
23
  };
37
24
  const handleChangeStates = (stateId)=>{
38
25
  onChangeStates(stateId, schemaId);
@@ -74,12 +61,7 @@ function Container(props) {
74
61
  sx: {
75
62
  fontWeight: 'bold'
76
63
  },
77
- children: ([
78
- ...rootSchemas,
79
- ...schemas
80
- ].find((s)=>s.id === schemaId) || {
81
- name: 'Default'
82
- }).name
64
+ children: schema?.name || 'Default'
83
65
  })
84
66
  ]
85
67
  })
@@ -149,21 +131,21 @@ function Container(props) {
149
131
  }, `state_${state.id}`))
150
132
  })
151
133
  }),
152
- open && schemas.map((schema)=>/*#__PURE__*/ jsx(TableRow, {
153
- children: loading ? /*#__PURE__*/ jsx(CircularProgress, {
154
- size: 20
155
- }) : /*#__PURE__*/ jsx(TableCell, {
156
- colSpan: 8,
157
- children: /*#__PURE__*/ jsx(SchemaDetail, {
158
- id: `SchemaView_${schema.id}`,
159
- objectDefinitions: typeDefinitions,
160
- schema: schema,
161
- selectedSchemaIds: [
162
- schemaId ?? 0
163
- ]
164
- })
134
+ open && /*#__PURE__*/ jsx(TableRow, {
135
+ children: typeDefinitionsLoading ? /*#__PURE__*/ jsx(CircularProgress, {
136
+ size: 20
137
+ }) : /*#__PURE__*/ jsx(TableCell, {
138
+ colSpan: 8,
139
+ children: /*#__PURE__*/ jsx(SchemaDetail, {
140
+ id: `SchemaView_${schema?.id}`,
141
+ objectDefinitions: typeDefinitions.find((t)=>t.schemaId === schema?.id)?.schemaObjectDefinitions ?? [],
142
+ schema: schema,
143
+ selectedSchemaIds: [
144
+ schemaId ?? 0
145
+ ]
165
146
  })
166
- }, `schema_view_row_${schema.id}`))
147
+ })
148
+ }, `schema_view_row_${schema?.id}`)
167
149
  ]
168
150
  });
169
151
  }
@@ -15,6 +15,7 @@ export declare const getRootSchema: (rootSchemas?: Schema[], schema?: Schema) =>
15
15
  export declare const getChilds: (fields: ConvertTypeDefinition[], fieldInfo: ConvertTypeDefinition) => ConvertTypeDefinition[];
16
16
  export declare const addChilds: (fields: ConvertTypeDefinition[], fieldInfo: ConvertTypeDefinition) => ConvertTypeDefinition;
17
17
  export declare const convertToTreeData: (fields: ConvertTypeDefinition[]) => ConvertTypeDefinition[];
18
+ export declare const convertToTreeWithMissingParents: (fields: ConvertTypeDefinition[]) => ConvertTypeDefinition[];
18
19
  /** Hàm này dùng cho hàm handleCheckBox để khi thêm phần tử tránh bị lặp (nếu có) */
19
20
  export declare const pushIfNotExists: (restFields: CurrentSchemaDetail[], newField?: {
20
21
  typeDefinitionId?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/Features/SYSTEM/Schema/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/Features/SYSTEM/Schema/utils.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,27 @@ const addChilds = (fields, fieldInfo)=>{
95
95
  return result;
96
96
  };
97
97
  const convertToTreeData = (fields)=>fields.filter((field)=>field.fieldPath?.split('.').length === 3).map((field)=>addChilds(fields, field));
98
+ const convertToTreeWithMissingParents = (fields)=>{
99
+ const allFields = [
100
+ ...fields
101
+ ];
102
+ const existingPaths = new Set(fields.map((f)=>f.fieldPath));
103
+ fields.forEach((field)=>{
104
+ const parts = field.fieldPath?.split('.').filter(Boolean) ?? [];
105
+ for(let depth = 1; depth < parts.length; depth++){
106
+ const ancestorPath = `.${parts.slice(0, depth).join('.')}.`;
107
+ if (!existingPaths.has(ancestorPath)) {
108
+ existingPaths.add(ancestorPath);
109
+ allFields.push({
110
+ fieldPath: ancestorPath,
111
+ fieldName: parts[depth - 1],
112
+ isEnable: true
113
+ });
114
+ }
115
+ }
116
+ });
117
+ return allFields.filter((field)=>field.fieldPath?.split('.').length === 3).map((field)=>addChilds(allFields, field));
118
+ };
98
119
  const pushIfNotExists = (restFields, newField)=>{
99
120
  const exists = restFields.some((field)=>field.typeDefinition?.id === newField?.typeDefinition?.id);
100
121
  if (!exists && newField) restFields.push(newField);
@@ -332,4 +353,4 @@ function convertDataSchemaToTreeView(fullField, schemaDetail, rootLabel = 'Root'
332
353
  rootNode
333
354
  ];
334
355
  }
335
- export { addChilds, addFieldChildsToRestFields, convertDataSchemaToTreeView, convertToDisplayData, convertToTreeData, countEnableFields, getAllIncluded, getAllNearestMatchingFields, getChilds, getCurrentSchemaFields, getCurrentSchemaFieldsWithChecked, getExpandedItems, getFieldChildrentObjectDefinitionIDs, getFieldChilds, getObjectTypeCodes, getParentNames, getRootSchema, getSchemaInput, pushIfNotExists, recursionFields, validateJsonString };
356
+ export { addChilds, addFieldChildsToRestFields, convertDataSchemaToTreeView, convertToDisplayData, convertToTreeData, convertToTreeWithMissingParents, countEnableFields, getAllIncluded, getAllNearestMatchingFields, getChilds, getCurrentSchemaFields, getCurrentSchemaFieldsWithChecked, getExpandedItems, getFieldChildrentObjectDefinitionIDs, getFieldChilds, getObjectTypeCodes, getParentNames, getRootSchema, getSchemaInput, pushIfNotExists, recursionFields, validateJsonString };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awing-library",
3
- "version": "2.1.2-stable.39",
3
+ "version": "2.1.2-stable.40",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": {