@talxis/base-controls 1.2410.6 → 1.2411.2

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 (100) hide show
  1. package/dist/components/DatasetControl/DatasetControl.js +5 -3
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/Grid/Grid.js.map +1 -1
  4. package/dist/components/Grid/core/components/AgGrid/AgGrid.d.ts +2 -0
  5. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +141 -27
  6. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  7. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +3 -4
  8. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -1
  9. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +19 -7
  10. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  11. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +3 -3
  12. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +32 -96
  13. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  14. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +23 -22
  15. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -1
  16. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +41 -36
  17. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  18. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +5 -0
  19. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +21 -3
  20. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
  21. package/dist/components/Grid/core/components/Component/Component.d.ts +2 -2
  22. package/dist/components/Grid/core/components/Component/Component.js.map +1 -1
  23. package/dist/components/Grid/core/components/Component/model/Component.d.ts +1 -0
  24. package/dist/components/Grid/core/components/Component/model/Component.js +57 -20
  25. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  26. package/dist/components/Grid/core/components/Save/Save.js +33 -20
  27. package/dist/components/Grid/core/components/Save/Save.js.map +1 -1
  28. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +5 -1
  29. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +46 -15
  30. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  31. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +10 -0
  32. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +187 -0
  33. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -0
  34. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +39 -0
  35. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +45 -0
  36. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +1 -0
  37. package/dist/components/Grid/core/components/Save/styles.d.ts +2 -4
  38. package/dist/components/Grid/core/components/Save/styles.js +2 -4
  39. package/dist/components/Grid/core/components/Save/styles.js.map +1 -1
  40. package/dist/components/Grid/core/model/Grid.d.ts +1 -2
  41. package/dist/components/Grid/core/model/Grid.js +11 -9
  42. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  43. package/dist/components/Grid/core/services/KeyListener.d.ts +2 -0
  44. package/dist/components/Grid/core/services/KeyListener.js +6 -0
  45. package/dist/components/Grid/core/services/KeyListener.js.map +1 -1
  46. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +0 -2
  47. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -1
  48. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +45 -1
  49. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -1
  50. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +4 -1
  51. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -1
  52. package/dist/components/Grid/filtering/model/Condition.js +19 -4
  53. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  54. package/dist/components/Grid/interfaces.d.ts +4 -1
  55. package/dist/components/Grid/paging/components/Paging/Paging.js +6 -5
  56. package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
  57. package/dist/components/Grid/translations.d.ts +36 -0
  58. package/dist/components/Grid/translations.js +11 -2
  59. package/dist/components/Grid/translations.js.map +1 -1
  60. package/dist/components/TextField/TextField.js +14 -5
  61. package/dist/components/TextField/TextField.js.map +1 -1
  62. package/dist/hooks/useControl.js +3 -2
  63. package/dist/hooks/useControl.js.map +1 -1
  64. package/dist/hooks/useRerender.js.map +1 -0
  65. package/dist/index.d.ts +39 -0
  66. package/package.json +4 -4
  67. package/dist/components/DatasetControl/hooks/useRerender.js.map +0 -1
  68. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.d.ts +0 -44
  69. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +0 -82
  70. package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js.map +0 -1
  71. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +0 -20
  72. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +0 -173
  73. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +0 -1
  74. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.d.ts +0 -7
  75. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +0 -144
  76. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +0 -1
  77. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.d.ts +0 -48
  78. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +0 -54
  79. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js.map +0 -1
  80. package/dist/components/Grid/core/components/Save/hooks/useSave.d.ts +0 -12
  81. package/dist/components/Grid/core/components/Save/hooks/useSave.js +0 -45
  82. package/dist/components/Grid/core/components/Save/hooks/useSave.js.map +0 -1
  83. package/dist/components/Grid/core/constants.d.ts +0 -1
  84. package/dist/components/Grid/core/constants.js +0 -4
  85. package/dist/components/Grid/core/constants.js.map +0 -1
  86. package/dist/components/Grid/core/hooks/useRerender.d.ts +0 -1
  87. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.d.ts +0 -14
  88. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +0 -25
  89. package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js.map +0 -1
  90. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +0 -30
  91. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +0 -186
  92. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +0 -1
  93. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +0 -8
  94. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +0 -25
  95. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +0 -1
  96. package/dist/components/Grid/validation/model/ColumnValidation.d.ts +0 -11
  97. package/dist/components/Grid/validation/model/ColumnValidation.js +0 -90
  98. package/dist/components/Grid/validation/model/ColumnValidation.js.map +0 -1
  99. /package/dist/{components/DatasetControl/hooks → hooks}/useRerender.d.ts +0 -0
  100. /package/dist/{components/DatasetControl/hooks → hooks}/useRerender.js +0 -0
@@ -1,144 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Grid } from '../../../../../../../Grid.js';
3
- import { useGridInstance } from '../../../../../../hooks/useGridInstance.js';
4
- import { useTheme, Text, Icon } from '@fluentui/react';
5
- import { getRecordGridStyles } from './styles.js';
6
-
7
- const RecordGrids = (props) => {
8
- const grid = useGridInstance();
9
- const record = { ...props.record };
10
- const styles = getRecordGridStyles(useTheme());
11
- const sharedProps = {
12
- context: {
13
- ...grid.pcfContext,
14
- mode: {
15
- ...grid.pcfContext.mode,
16
- //needed so the nested grids to do not interfere with the state of parent grid
17
- setControlState: (state) => false
18
- }
19
- },
20
- state: {},
21
- parameters: {
22
- EnableFiltering: {
23
- raw: false
24
- },
25
- EnablePagination: {
26
- raw: false
27
- },
28
- EnableSorting: {
29
- raw: false
30
- },
31
- EnableNavigation: {
32
- raw: false
33
- },
34
- SelectableRows: {
35
- type: 'static',
36
- raw: 'none'
37
- },
38
- EnableOptionSetColors: {
39
- raw: grid.parameters.EnableOptionSetColors?.raw ?? false
40
- },
41
- Grid: {
42
- ...grid.dataset,
43
- sorting: [],
44
- linking: grid.dataset.linking,
45
- columns: [...record.columns.values()],
46
- sortedRecordIds: [record.getRecordId()],
47
- getTargetEntityType: () => grid.dataset.getTargetEntityType(),
48
- filtering: {
49
- ...grid.dataset.filtering,
50
- getFilter: () => {
51
- return {
52
- conditions: [],
53
- filterOperator: 0,
54
- };
55
- }
56
- },
57
- getSelectedRecordIds: () => [],
58
- paging: {
59
- ...grid.dataset.paging,
60
- pageSize: 1
61
- }
62
- }
63
- }
64
- };
65
- const invalidColumns = (() => {
66
- const columns = [];
67
- for (const column of record.columns.values()) {
68
- if (!record.isValid(column.name)) {
69
- columns.push(column);
70
- }
71
- }
72
- return columns;
73
- })();
74
- const hasInvalidColumn = invalidColumns.length > 0;
75
- const getOriginalRecord = (record) => {
76
- //@ts-ignore
77
- return {
78
- getFormattedValue: (columnKey) => record.getOriginalFormattedValue(columnKey),
79
- getRecordId: () => record.getRecordId(),
80
- getNamedReference: () => record.getNamedReference(),
81
- getValue: (columnKey) => record.getOriginalValue(columnKey),
82
- save: async () => {
83
- await record.save();
84
- grid.pcfContext.factory.requestRender();
85
- },
86
- //only comes when clear is called to return to the original value
87
- setValue: (columnKey, value) => {
88
- record.clear();
89
- //TODO: the internal record id map wont get updated
90
- //with the references to updated records until they appear
91
- //in the grid => you cant see the changes
92
- grid.pcfContext.factory.requestRender();
93
- }
94
- };
95
- };
96
- const getUpdatedRecord = (record) => {
97
- //@ts-ignore
98
- return {
99
- getFormattedValue: (columnKey) => record.getFormattedValue(columnKey),
100
- getRecordId: () => record.getRecordId(),
101
- getNamedReference: () => record.getNamedReference(),
102
- getValue: (columnKey) => record.getValue(columnKey),
103
- save: () => { throw new Error('Should not be called!'); },
104
- setValue: (columnKey, value) => {
105
- record.setValue(columnKey, value);
106
- grid.pcfContext.factory.requestRender();
107
- }
108
- };
109
- };
110
- return (jsxs("div", { className: styles.root, children: [jsxs("div", { className: styles.readOnlyGrid, children: [jsx("div", { className: styles.gridTitleWrapper, children: jsx(Text, { title: record.getOriginalFormattedPrimaryNameValue(), variant: 'large', children: record.getOriginalFormattedPrimaryNameValue() }) }), jsx(Grid, { ...sharedProps, parameters: {
111
- ...sharedProps.parameters,
112
- ChangeEditorMode: {
113
- raw: "read",
114
- error: hasInvalidColumn,
115
- },
116
- Grid: {
117
- ...sharedProps.parameters.Grid,
118
- error: hasInvalidColumn,
119
- errorMessage: hasInvalidColumn ? grid.labels['saving-validation-error']({
120
- columnDisplayNames: invalidColumns.map(x => x.displayName).join(', ')
121
- }) : undefined,
122
- records: {
123
- [record.getRecordId()]: getOriginalRecord(record)
124
- }
125
- },
126
- } })] }), jsx(Icon, { iconName: "DoubleChevronDown8" }), jsx("div", { className: styles.editableGrid, children: jsx(Grid, { ...sharedProps, parameters: {
127
- ...sharedProps.parameters,
128
- ChangeEditorMode: {
129
- raw: "edit"
130
- },
131
- EnableEditing: {
132
- raw: true
133
- },
134
- Grid: {
135
- ...sharedProps.parameters.Grid,
136
- records: {
137
- [record.getRecordId()]: getUpdatedRecord(record)
138
- }
139
- }
140
- } }) })] }));
141
- };
142
-
143
- export { RecordGrids };
144
- //# sourceMappingURL=RecordGrids.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecordGrids.js","sources":["../../../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.tsx"],"sourcesContent":["import React from 'react';\nimport { Grid } from '../../../../../../../Grid';\nimport { useGridInstance } from '../../../../../../hooks/useGridInstance';\nimport { IUpdatedRecord } from '../../../../../../services/RecordUpdateService/model/RecordUpdateService';\nimport { Text } from '@fluentui/react';\nimport { IGrid, IGridParameters } from '../../../../../../../interfaces';\nimport { Icon } from '@fluentui/react';\nimport { getRecordGridStyles } from './styles';\nimport { useTheme } from '@fluentui/react';\nimport { IColumn, IRecord } from '@talxis/client-libraries';\n\ninterface IRecordGrids {\n record: IUpdatedRecord;\n}\nexport const RecordGrids = (props: IRecordGrids) => {\n const grid = useGridInstance();\n const record = { ...props.record };\n const styles = getRecordGridStyles(useTheme());\n const sharedProps: IGrid = {\n context: {\n ...grid.pcfContext,\n mode: {\n ...grid.pcfContext.mode,\n //needed so the nested grids to do not interfere with the state of parent grid\n setControlState: (state: ComponentFramework.Dictionary) => false\n }\n },\n state: {},\n parameters: {\n EnableFiltering: {\n raw: false\n },\n EnablePagination: {\n raw: false\n },\n EnableSorting: {\n raw: false\n },\n EnableNavigation: {\n raw: false\n },\n SelectableRows: {\n type: 'static',\n raw: 'none'\n },\n EnableOptionSetColors: {\n raw: grid.parameters.EnableOptionSetColors?.raw ?? false\n },\n Grid: {\n ...grid.dataset,\n sorting: [],\n linking: grid.dataset.linking,\n columns: [...record.columns.values()],\n sortedRecordIds: [record.getRecordId()],\n getTargetEntityType: () => grid.dataset.getTargetEntityType(),\n filtering: {\n ...grid.dataset.filtering,\n getFilter: () => {\n return {\n conditions: [],\n filterOperator: 0,\n }\n }\n },\n getSelectedRecordIds: () => [],\n paging: {\n ...grid.dataset.paging,\n pageSize: 1\n }\n }\n } as IGridParameters\n }\n\n const invalidColumns = (() => {\n const columns: IColumn[] = [];\n for(const column of record.columns.values()) {\n if(!record.isValid(column.name)) {\n columns.push(column);\n }\n }\n return columns;\n })();\n\n const hasInvalidColumn = invalidColumns.length > 0;\n\n const getOriginalRecord = (record: IUpdatedRecord): IRecord => {\n //@ts-ignore\n return {\n getFormattedValue: (columnKey: string) => record.getOriginalFormattedValue(columnKey),\n getRecordId: () => record.getRecordId(),\n getNamedReference: () => record.getNamedReference(),\n getValue: (columnKey: string) => record.getOriginalValue(columnKey),\n save: async () => {\n const result = await record.save();\n grid.pcfContext.factory.requestRender();\n },\n //only comes when clear is called to return to the original value\n setValue: (columnKey: string, value: any) => {\n record.clear();\n //TODO: the internal record id map wont get updated\n //with the references to updated records until they appear \n //in the grid => you cant see the changes \n grid.pcfContext.factory.requestRender();\n }\n }\n }\n const getUpdatedRecord = (record: IUpdatedRecord): IRecord => {\n //@ts-ignore\n return {\n getFormattedValue: (columnKey: string) => record.getFormattedValue(columnKey),\n getRecordId: () => record.getRecordId(),\n getNamedReference: () => record.getNamedReference(),\n getValue: (columnKey: string) => record.getValue(columnKey),\n save: () => { throw new Error('Should not be called!') },\n setValue: (columnKey: string, value: any) => {\n record.setValue(columnKey, value)\n grid.pcfContext.factory.requestRender();\n }\n }\n }\n\n return (\n <div className={styles.root}>\n <div className={styles.readOnlyGrid}>\n <div className={styles.gridTitleWrapper}>\n <Text title={record.getOriginalFormattedPrimaryNameValue()} variant='large'>{record.getOriginalFormattedPrimaryNameValue()}</Text>\n </div>\n <Grid\n {...sharedProps}\n parameters={{\n ...sharedProps.parameters,\n ChangeEditorMode: {\n raw: \"read\",\n error: hasInvalidColumn,\n },\n Grid: {\n ...sharedProps.parameters.Grid,\n error: hasInvalidColumn,\n errorMessage: hasInvalidColumn ? grid.labels['saving-validation-error']({\n columnDisplayNames: invalidColumns.map( x => x.displayName).join(', ')\n }): undefined,\n records: {\n [record.getRecordId()]: getOriginalRecord(record)\n }\n },\n\n } as IGridParameters} />\n </div>\n <Icon iconName=\"DoubleChevronDown8\" />\n <div className={styles.editableGrid}>\n <Grid\n {...sharedProps}\n parameters={{\n ...sharedProps.parameters,\n ChangeEditorMode: {\n raw: \"edit\"\n },\n EnableEditing: {\n raw: true\n },\n Grid: {\n ...sharedProps.parameters.Grid,\n records: {\n [record.getRecordId()]: getUpdatedRecord(record)\n }\n }\n } as IGridParameters} />\n </div>\n </div>\n )\n}"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { ITheme } from "@fluentui/react";
2
- export declare const getRecordGridStyles: (theme: ITheme) => import("@fluentui/react").IProcessedStyleSet<{
3
- root: {
4
- borderRadius: number;
5
- padding: number;
6
- paddingTop: number;
7
- gap: number;
8
- display: string;
9
- flexDirection: string;
10
- justifyContent: string;
11
- backgroundColor: string;
12
- boxShadow: string;
13
- '>span': {
14
- fontWeight: number;
15
- };
16
- '>i': {
17
- alignSelf: string;
18
- fontSize: number;
19
- };
20
- };
21
- readOnlyGrid: {
22
- '.ag-theme-balham > div > .ms-MessageBar': {
23
- minHeight: number;
24
- height: number;
25
- '.ms-MessageBar-actionsSingleLine': {
26
- position: string;
27
- top: number;
28
- };
29
- };
30
- };
31
- gridTitleWrapper: {
32
- borderBottom: string;
33
- paddingBottom: number;
34
- '>span': {
35
- fontWeight: number;
36
- fontSize: number;
37
- overflow: string;
38
- whiteSpace: string;
39
- textOverflow: string;
40
- display: string;
41
- maxWidth: string;
42
- };
43
- };
44
- editableGrid: {
45
- position: string;
46
- top: number;
47
- };
48
- }>;
@@ -1,54 +0,0 @@
1
- import { mergeStyleSets } from '@fluentui/react';
2
-
3
- const getRecordGridStyles = (theme) => {
4
- return mergeStyleSets({
5
- root: {
6
- borderRadius: 5,
7
- padding: 8,
8
- paddingTop: 10,
9
- gap: 25,
10
- display: 'flex',
11
- flexDirection: 'column',
12
- justifyContent: 'center',
13
- backgroundColor: theme.semanticColors.bodyBackground,
14
- boxShadow: theme.semanticColors.cardShadow,
15
- '>span': {
16
- fontWeight: 600
17
- },
18
- '>i': {
19
- alignSelf: 'center',
20
- fontSize: 22,
21
- }
22
- },
23
- readOnlyGrid: {
24
- '.ag-theme-balham > div > .ms-MessageBar': {
25
- minHeight: 0,
26
- height: 0,
27
- '.ms-MessageBar-actionsSingleLine': {
28
- position: 'relative',
29
- top: -28
30
- }
31
- }
32
- },
33
- gridTitleWrapper: {
34
- borderBottom: `1px solid ${theme.semanticColors.bodyDivider}`,
35
- paddingBottom: 10,
36
- '>span': {
37
- fontWeight: 600,
38
- fontSize: 15,
39
- overflow: 'hidden',
40
- whiteSpace: 'nowrap',
41
- textOverflow: 'ellipsis',
42
- display: 'block',
43
- maxWidth: 'calc(100% - 130px)'
44
- },
45
- },
46
- editableGrid: {
47
- position: 'relative',
48
- top: -5
49
- }
50
- });
51
- };
52
-
53
- export { getRecordGridStyles };
54
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets } from \"@fluentui/react\";\n\nexport const getRecordGridStyles = (theme: ITheme) => {\n return mergeStyleSets({\n root: {\n borderRadius: 5,\n padding: 8,\n paddingTop: 10,\n gap: 25,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backgroundColor: theme.semanticColors.bodyBackground,\n boxShadow: theme.semanticColors.cardShadow,\n '>span': {\n fontWeight: 600\n },\n '>i': {\n alignSelf: 'center',\n fontSize: 22,\n }\n\n },\n readOnlyGrid: {\n '.ag-theme-balham > div > .ms-MessageBar': {\n minHeight: 0,\n height: 0,\n '.ms-MessageBar-actionsSingleLine': {\n position: 'relative',\n top: -28\n }\n }\n },\n gridTitleWrapper: {\n borderBottom: `1px solid ${theme.semanticColors.bodyDivider}`,\n paddingBottom: 10,\n '>span': {\n fontWeight: 600,\n fontSize: 15,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n display: 'block',\n maxWidth: 'calc(100% - 130px)'\n },\n },\n editableGrid: {\n position: 'relative',\n top: -5\n }\n })\n}"],"names":[],"mappings":";;AAEa,MAAA,mBAAmB,GAAG,CAAC,KAAa,KAAI;AACjD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,UAAU,EAAE,EAAE;AACd,YAAA,GAAG,EAAE,EAAE;AACP,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,cAAc,EAAE,QAAQ;AACxB,YAAA,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc;AACpD,YAAA,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU;AAC1C,YAAA,OAAO,EAAE;AACL,gBAAA,UAAU,EAAE,GAAG;AAClB,aAAA;AACD,YAAA,IAAI,EAAE;AACF,gBAAA,SAAS,EAAE,QAAQ;AACnB,gBAAA,QAAQ,EAAE,EAAE;AACf,aAAA;AAEJ,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,yCAAyC,EAAE;AACvC,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,kCAAkC,EAAE;AAChC,oBAAA,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC,EAAE;AACX,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,gBAAgB,EAAE;AACd,YAAA,YAAY,EAAE,CAAa,UAAA,EAAA,KAAK,CAAC,cAAc,CAAC,WAAW,CAAE,CAAA;AAC7D,YAAA,aAAa,EAAE,EAAE;AACjB,YAAA,OAAO,EAAE;AACL,gBAAA,UAAU,EAAE,GAAG;AACf,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,UAAU,EAAE,QAAQ;AACpB,gBAAA,YAAY,EAAE,UAAU;AACxB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,QAAQ,EAAE,oBAAoB;AACjC,aAAA;AACJ,SAAA;AACD,QAAA,YAAY,EAAE;AACV,YAAA,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC,CAAC;AACV,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
@@ -1,12 +0,0 @@
1
- interface ISaveBtnProps {
2
- disabled: boolean;
3
- text: string;
4
- iconName: string;
5
- }
6
- interface ISave {
7
- isSaving: boolean;
8
- saveBtnProps: ISaveBtnProps;
9
- save: () => Promise<boolean>;
10
- }
11
- export declare const useSave: () => ISave;
12
- export {};
@@ -1,45 +0,0 @@
1
- import { useState } from 'react';
2
- import { useGridInstance } from '../../../hooks/useGridInstance.js';
3
- import { useRecordUpdateServiceController } from '../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController.js';
4
-
5
- const useSave = () => {
6
- const grid = useGridInstance();
7
- const labels = grid.labels;
8
- const controller = useRecordUpdateServiceController();
9
- const [isSaving, setIsSaving] = useState(false);
10
- const save = async () => {
11
- setIsSaving(true);
12
- const result = await controller.saveAll();
13
- setIsSaving(false);
14
- return result;
15
- };
16
- const getSaveBtnProps = () => {
17
- if (isSaving) {
18
- return {
19
- disabled: true,
20
- iconName: 'SaveInPropgre',
21
- text: labels["saving-saving"](),
22
- };
23
- }
24
- if (controller.isDirty) {
25
- return {
26
- disabled: (controller.hasInvalidRecords || grid.props.parameters.ChangeEditorMode?.error) ? true : false,
27
- iconName: 'Save',
28
- text: labels["saving-save"]()
29
- };
30
- }
31
- return {
32
- disabled: true,
33
- iconName: 'Save',
34
- text: labels["saving-save"]()
35
- };
36
- };
37
- return {
38
- isSaving: isSaving,
39
- saveBtnProps: getSaveBtnProps(),
40
- save: save
41
- };
42
- };
43
-
44
- export { useSave };
45
- //# sourceMappingURL=useSave.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSave.js","sources":["../../../../../../../src/components/Grid/core/components/Save/hooks/useSave.ts"],"sourcesContent":["import { useState } from \"react\";\nimport { useGridInstance } from \"../../../hooks/useGridInstance\";\nimport { useRecordUpdateServiceController } from \"../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController\";\n\ninterface ISaveBtnProps {\n disabled: boolean,\n text: string,\n iconName: string\n}\n\ninterface ISave {\n isSaving: boolean,\n saveBtnProps: ISaveBtnProps,\n save: () => Promise<boolean>\n}\n\nexport const useSave = (): ISave => {\n const grid = useGridInstance();\n const labels = grid.labels;\n const controller = useRecordUpdateServiceController();\n const [isSaving, setIsSaving] = useState<boolean>(false);\n\n const save = async (): Promise<boolean> => {\n setIsSaving(true);\n const result = await controller.saveAll();\n setIsSaving(false);\n return result;\n }\n\n const getSaveBtnProps = (): ISaveBtnProps => {\n if (isSaving) {\n return {\n disabled: true,\n iconName: 'SaveInPropgre',\n text: labels[\"saving-saving\"](),\n }\n }\n if (controller.isDirty) {\n return {\n disabled: (controller.hasInvalidRecords || grid.props.parameters.ChangeEditorMode?.error) ? true : false,\n iconName: 'Save',\n text: labels[\"saving-save\"]()\n\n }\n }\n return {\n disabled: true,\n iconName: 'Save',\n text: labels[\"saving-save\"]()\n }\n }\n\n return {\n isSaving: isSaving,\n saveBtnProps: getSaveBtnProps(),\n save: save\n }\n\n}"],"names":[],"mappings":";;;;AAgBO,MAAM,OAAO,GAAG,MAAY;AAC/B,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,MAAM,UAAU,GAAG,gCAAgC,EAAE,CAAC;IACtD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;AAEzD,IAAA,MAAM,IAAI,GAAG,YAA6B;QACtC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClB,QAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;QAC1C,WAAW,CAAC,KAAK,CAAC,CAAC;AACnB,QAAA,OAAO,MAAM,CAAC;AAClB,KAAC,CAAA;IAED,MAAM,eAAe,GAAG,MAAoB;AACxC,QAAA,IAAI,QAAQ,EAAE;YACV,OAAO;AACH,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,QAAQ,EAAE,eAAe;AACzB,gBAAA,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;aAClC,CAAA;AACJ,SAAA;QACD,IAAI,UAAU,CAAC,OAAO,EAAE;YACpB,OAAO;gBACH,QAAQ,EAAE,CAAC,UAAU,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,IAAI,IAAI,GAAG,KAAK;AACxG,gBAAA,QAAQ,EAAE,MAAM;AAChB,gBAAA,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE;aAEhC,CAAA;AACJ,SAAA;QACD,OAAO;AACH,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE;SAChC,CAAA;AACL,KAAC,CAAA;IAED,OAAO;AACH,QAAA,QAAQ,EAAE,QAAQ;QAClB,YAAY,EAAE,eAAe,EAAE;AAC/B,QAAA,IAAI,EAAE,IAAI;KACb,CAAA;AAEL;;;;"}
@@ -1 +0,0 @@
1
- export declare const ROW_HEIGHT = 42;
@@ -1,4 +0,0 @@
1
- const ROW_HEIGHT = 42;
2
-
3
- export { ROW_HEIGHT };
4
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/components/Grid/core/constants.ts"],"sourcesContent":["export const ROW_HEIGHT = 42;"],"names":[],"mappings":"AAAO,MAAM,UAAU,GAAG;;;;"}
@@ -1 +0,0 @@
1
- export declare const useRerender: () => [number, (fn?: () => any | Promise<any>) => void];
@@ -1,14 +0,0 @@
1
- import { IUpdatedRecord } from "../model/RecordUpdateService";
2
- interface IRecordUpdateServiceController {
3
- isDirty: boolean;
4
- hasInvalidRecords: boolean;
5
- updatedRecords: IUpdatedRecord[];
6
- saveAll: () => Promise<boolean>;
7
- clearAll: () => void;
8
- record(recordId: string): {
9
- get: () => IUpdatedRecord | undefined;
10
- setValue: (columnName: string, value: any) => void;
11
- };
12
- }
13
- export declare const useRecordUpdateServiceController: () => IRecordUpdateServiceController;
14
- export {};
@@ -1,25 +0,0 @@
1
- import { useGridInstance } from '../../../hooks/useGridInstance.js';
2
-
3
- const useRecordUpdateServiceController = () => {
4
- const grid = useGridInstance();
5
- const recordUpdateService = grid.recordUpdateService;
6
- return {
7
- isDirty: recordUpdateService.isDirty,
8
- hasInvalidRecords: recordUpdateService.hasInvalidRecords,
9
- updatedRecords: [...recordUpdateService.updatedRecords.values()],
10
- saveAll: () => recordUpdateService.saveAll(),
11
- clearAll: () => recordUpdateService.clearAll(),
12
- record: (recordId) => {
13
- const record = recordUpdateService.record(recordId);
14
- return {
15
- get: () => record.get(),
16
- setValue: (columnName, value) => {
17
- record.setValue(columnName, value);
18
- }
19
- };
20
- }
21
- };
22
- };
23
-
24
- export { useRecordUpdateServiceController };
25
- //# sourceMappingURL=useRecordUpdateServiceController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRecordUpdateServiceController.js","sources":["../../../../../../../src/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.ts"],"sourcesContent":["import { useGridInstance } from \"../../../hooks/useGridInstance\";\nimport { IUpdatedRecord } from \"../model/RecordUpdateService\";\n\ninterface IRecordUpdateServiceController {\n isDirty: boolean,\n hasInvalidRecords: boolean\n updatedRecords: IUpdatedRecord[];\n saveAll: () => Promise<boolean>;\n clearAll: () => void,\n record(recordId: string): {\n get: () => IUpdatedRecord | undefined\n setValue: (columnName: string, value: any) => void\n }\n}\n\nexport const useRecordUpdateServiceController = (): IRecordUpdateServiceController => {\n const grid = useGridInstance();\n const recordUpdateService = grid.recordUpdateService;\n \n return {\n isDirty: recordUpdateService.isDirty,\n hasInvalidRecords: recordUpdateService.hasInvalidRecords,\n updatedRecords: [...recordUpdateService.updatedRecords.values()],\n saveAll: () => recordUpdateService.saveAll(),\n clearAll: () => recordUpdateService.clearAll(),\n record: (recordId: string) => {\n const record = recordUpdateService.record(recordId);\n return {\n get: () => record.get(),\n setValue: (columnName: string, value: any) => {\n record.setValue(columnName, value)\n } \n }\n }\n }\n}"],"names":[],"mappings":";;AAeO,MAAM,gCAAgC,GAAG,MAAqC;AACjF,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAErD,OAAO;QACH,OAAO,EAAE,mBAAmB,CAAC,OAAO;QACpC,iBAAiB,EAAE,mBAAmB,CAAC,iBAAiB;QACxD,cAAc,EAAE,CAAC,GAAG,mBAAmB,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AAChE,QAAA,OAAO,EAAE,MAAM,mBAAmB,CAAC,OAAO,EAAE;AAC5C,QAAA,QAAQ,EAAE,MAAM,mBAAmB,CAAC,QAAQ,EAAE;AAC9C,QAAA,MAAM,EAAE,CAAC,QAAgB,KAAI;YACzB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO;AACH,gBAAA,GAAG,EAAE,MAAM,MAAM,CAAC,GAAG,EAAE;AACvB,gBAAA,QAAQ,EAAE,CAAC,UAAkB,EAAE,KAAU,KAAI;AACzC,oBAAA,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;iBACrC;aACJ,CAAA;SACJ;KACJ,CAAA;AACL;;;;"}
@@ -1,30 +0,0 @@
1
- import { Grid } from "../../../model/Grid";
2
- import { GridDependency } from "../../../model/GridDependency";
3
- import { IColumn, IRecord } from "@talxis/client-libraries";
4
- export interface IUpdatedRecord extends Omit<IRecord, 'save'> {
5
- columns: Map<string, IColumn>;
6
- isValid: (columnName: string) => boolean;
7
- getOriginalValue: (columnName: string) => any;
8
- getOriginalFormattedValue: (columnName: string) => any;
9
- getOriginalFormattedPrimaryNameValue: () => any;
10
- save: () => Promise<boolean>;
11
- clear: () => void;
12
- }
13
- export declare class RecordUpdateService extends GridDependency {
14
- private _updatedRecords;
15
- private _internalRecordMap;
16
- constructor(grid: Grid);
17
- get updatedRecords(): IUpdatedRecord[];
18
- get isDirty(): boolean;
19
- get hasInvalidRecords(): boolean;
20
- record(recordId: string): {
21
- get: () => IUpdatedRecord | undefined;
22
- setValue: (columnName: string, value: any, doNotPropagateToDatasetRecord?: boolean) => void;
23
- };
24
- saveAll(): Promise<boolean>;
25
- clearAll(): Promise<void>;
26
- onDependenciesUpdated(): void;
27
- private _getColumnByName;
28
- private _isReadOnlyChangeEditor;
29
- private _isEqual;
30
- }
@@ -1,186 +0,0 @@
1
- import equal from 'fast-deep-equal/es6';
2
- import { cloneDeep } from 'lodash';
3
- import numeral from 'numeral';
4
- import { ColumnValidation } from '../../../../validation/model/ColumnValidation.js';
5
- import { DataType } from '../../../enums/DataType.js';
6
- import { GridDependency } from '../../../model/GridDependency.js';
7
- import { Numeral } from '@talxis/client-libraries';
8
-
9
- class RecordUpdateService extends GridDependency {
10
- constructor(grid) {
11
- super(grid);
12
- this._updatedRecords = new Map();
13
- this._internalRecordMap = new Map();
14
- const updatedRecordsFromState = this._grid.state?.['__updatedRecords'];
15
- //@ts-ignore - getRecordId could be undefined if it comes from serialized state
16
- if (updatedRecordsFromState && updatedRecordsFromState?.length > 0 && updatedRecordsFromState[0].getRecordId) {
17
- this._updatedRecords = new Map(updatedRecordsFromState.map(x => {
18
- const originalClear = x.clear;
19
- const originalSetValue = x.setValue;
20
- const originalSave = x.save;
21
- x.clear = () => {
22
- this._updatedRecords.delete(x.getRecordId());
23
- originalClear();
24
- this._pcfContext.factory.requestRender();
25
- };
26
- x.save = async () => {
27
- const result = await originalSave();
28
- if (result) {
29
- this._updatedRecords.delete(x.getRecordId());
30
- }
31
- [...x.columns.values()].map(col => {
32
- this._internalRecordMap.get(x.getRecordId())?.setValue(col.name, x.getValue(col.name));
33
- });
34
- return result;
35
- };
36
- x.setValue = (columnName, value) => {
37
- originalSetValue(columnName, value);
38
- this._pcfContext.factory.requestRender();
39
- };
40
- return [x.getRecordId(), x];
41
- }));
42
- }
43
- }
44
- get updatedRecords() {
45
- if (this._isReadOnlyChangeEditor() && this._updatedRecords.size === 0) {
46
- const record = this._grid.records[0];
47
- for (const column of this._grid.columns) {
48
- this.record(record.getRecordId()).setValue(column.name, record.getValue(column.name), true);
49
- }
50
- }
51
- return [...this._updatedRecords.values()];
52
- }
53
- get isDirty() {
54
- return this._updatedRecords.size > 0;
55
- }
56
- get hasInvalidRecords() {
57
- return [...this._updatedRecords.values()].find(x => {
58
- for (const column of x.columns.values()) {
59
- if (!x.isValid(column.name)) {
60
- return true;
61
- }
62
- }
63
- return false;
64
- }) ? true : false;
65
- }
66
- record(recordId) {
67
- return {
68
- get: () => this._updatedRecords.get(recordId),
69
- setValue: (columnName, value, doNotPropagateToDatasetRecord) => {
70
- if (!doNotPropagateToDatasetRecord && this._isEqual(columnName, this._internalRecordMap.get(recordId).getValue(columnName), value)) {
71
- return;
72
- }
73
- const updatedRecord = this._updatedRecords.get(recordId);
74
- if (!updatedRecord) {
75
- const deepCopiedRecord = cloneDeep(this._internalRecordMap.get(recordId));
76
- this._updatedRecords.set(recordId, {
77
- columns: new Map([[columnName, this._getColumnByName(columnName)]]),
78
- getRecordId: () => recordId,
79
- getValue: (columnName) => this._internalRecordMap.get(recordId)?.getValue(columnName),
80
- getFormattedValue: (columnName) => this._internalRecordMap.get(recordId)?.getFormattedValue(columnName),
81
- getNamedReference: () => deepCopiedRecord.getNamedReference(),
82
- getOriginalValue: (columnName) => deepCopiedRecord.getValue(columnName),
83
- getOriginalFormattedValue: (columnName) => deepCopiedRecord.getFormattedValue(columnName),
84
- getOriginalFormattedPrimaryNameValue: () => {
85
- let primaryColumn = this._dataset.columns.find(x => x.isPrimary);
86
- if (!primaryColumn) {
87
- primaryColumn = this._dataset.columns[0];
88
- }
89
- let value = deepCopiedRecord.getFormattedValue(primaryColumn.name);
90
- if (!value) {
91
- value = this._grid.labels["no-name"]();
92
- }
93
- return value;
94
- },
95
- setValue: (columnName, value) => {
96
- this._internalRecordMap.get(recordId)?.setValue(columnName, value);
97
- this._pcfContext.factory.requestRender();
98
- },
99
- isValid: (columnName) => {
100
- const column = this._grid.columns.find(x => x.name === columnName);
101
- if (!column) {
102
- return true;
103
- }
104
- const [result, message] = new ColumnValidation(this._grid, column).validate(this._internalRecordMap.get(recordId)?.getValue(columnName));
105
- return result;
106
- },
107
- clear: () => {
108
- const updatedRecord = this._updatedRecords.get(recordId);
109
- const columns = [...updatedRecord.columns.values()];
110
- this._updatedRecords.delete(recordId);
111
- for (const column of columns) {
112
- this._internalRecordMap.get(recordId)?.setValue(column.name, deepCopiedRecord.getValue(column.name));
113
- }
114
- },
115
- save: async () => {
116
- try {
117
- await this._internalRecordMap.get(recordId)?.save();
118
- this._updatedRecords.delete(recordId);
119
- }
120
- catch (err) {
121
- this._grid.pcfContext.navigation.openErrorDialog({
122
- message: 'An error occurred during saving. Some of you changes might now have been saved.',
123
- //@ts-ignore
124
- details: err.message
125
- });
126
- return false;
127
- }
128
- return true;
129
- }
130
- });
131
- }
132
- else {
133
- updatedRecord.columns.set(columnName, this._getColumnByName(columnName));
134
- }
135
- if (!doNotPropagateToDatasetRecord) {
136
- const updatedRecord = this._updatedRecords.get(recordId);
137
- updatedRecord?.setValue(columnName, value);
138
- }
139
- }
140
- };
141
- }
142
- async saveAll() {
143
- const savePromises = [];
144
- for (const record of this._updatedRecords.values()) {
145
- savePromises.push(record.save());
146
- }
147
- const result = await Promise.all(savePromises);
148
- return !result.find(x => x === false);
149
- }
150
- async clearAll() {
151
- for (const record of this._updatedRecords.values()) {
152
- record.clear();
153
- }
154
- this._pcfContext.factory.requestRender();
155
- }
156
- onDependenciesUpdated() {
157
- for (const [recordId, record] of Object.entries(this._grid.dataset.records)) {
158
- this._internalRecordMap.set(recordId, record);
159
- }
160
- }
161
- _getColumnByName(columnName) {
162
- return this._grid.columns.find(x => x.name === columnName);
163
- }
164
- _isReadOnlyChangeEditor() {
165
- return this._grid.props.parameters.ChangeEditorMode?.raw === 'read';
166
- }
167
- _isEqual(columnName, oldValue, newValue) {
168
- const column = this._grid.columns.find(x => x.name === columnName);
169
- //skip in special case for currency
170
- //PCF has no info about the currency, which sometimes make it to ouput change
171
- if (column?.dataType === DataType.CURRENCY) {
172
- Numeral.currency(this._grid.pcfContext.userSettings.numberFormattingInfo);
173
- newValue = numeral(newValue).value();
174
- if (newValue === oldValue) {
175
- return true;
176
- }
177
- }
178
- if (oldValue == newValue) {
179
- return true;
180
- }
181
- return equal(oldValue, newValue);
182
- }
183
- }
184
-
185
- export { RecordUpdateService };
186
- //# sourceMappingURL=RecordUpdateService.js.map