@talxis/base-controls 1.2410.4 → 1.2410.5

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 (86) hide show
  1. package/dist/components/DatasetControl/DatasetControl.js +3 -8
  2. package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
  3. package/dist/components/Grid/constants.d.ts +1 -2
  4. package/dist/components/Grid/constants.js +2 -2
  5. package/dist/components/Grid/constants.js.map +1 -1
  6. package/dist/components/Grid/core/components/AgGrid/AgGrid.js +2 -3
  7. package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
  8. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +2 -2
  9. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +8 -4
  10. package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +1 -1
  11. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +1 -0
  12. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +20 -9
  13. package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
  14. package/dist/components/Grid/core/components/Cell/Commands/Commands.d.ts +2 -2
  15. package/dist/components/Grid/core/components/Cell/Commands/Commands.js.map +1 -1
  16. package/dist/components/Grid/core/components/Cell/Commands/Icon.d.ts +2 -2
  17. package/dist/components/Grid/core/components/Cell/Commands/Icon.js.map +1 -1
  18. package/dist/components/Grid/core/components/Cell/Commands/useCommands.d.ts +2 -2
  19. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js +2 -0
  20. package/dist/components/Grid/core/components/Cell/Commands/useCommands.js.map +1 -1
  21. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +4 -4
  22. package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
  23. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.d.ts +11 -0
  24. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +93 -0
  25. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -0
  26. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.d.ts +36 -0
  27. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js +42 -0
  28. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/styles.js.map +1 -0
  29. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.d.ts +2 -2
  30. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +106 -41
  31. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
  32. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.d.ts +2 -2
  33. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js +3 -3
  34. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyOptionSet/ReadOnlyOptionSet.js.map +1 -1
  35. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +49 -2
  36. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +51 -4
  37. package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
  38. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js +1 -1
  39. package/dist/components/Grid/core/components/ColumnHeader/ColumnHeader.js.map +1 -1
  40. package/dist/components/Grid/core/components/Component/model/Component.js +11 -9
  41. package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
  42. package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
  43. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +5 -0
  44. package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +1 -1
  45. package/dist/components/Grid/core/controllers/useGridController.js.map +1 -1
  46. package/dist/components/Grid/core/interfaces/IGridColumn.d.ts +9 -18
  47. package/dist/components/Grid/core/model/Grid.d.ts +7 -7
  48. package/dist/components/Grid/core/model/Grid.js +52 -62
  49. package/dist/components/Grid/core/model/Grid.js.map +1 -1
  50. package/dist/components/Grid/core/model/GridDependency.d.ts +1 -1
  51. package/dist/components/Grid/core/model/Metadata.d.ts +2 -3
  52. package/dist/components/Grid/core/model/Metadata.js +13 -9
  53. package/dist/components/Grid/core/model/Metadata.js.map +1 -1
  54. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +8 -8
  55. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +21 -25
  56. package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +1 -1
  57. package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.d.ts +16 -16
  58. package/dist/components/Grid/filtering/model/Condition.js +7 -3
  59. package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
  60. package/dist/components/Grid/filtering/model/Filtering.js +4 -4
  61. package/dist/components/Grid/filtering/model/Filtering.js.map +1 -1
  62. package/dist/components/Grid/interfaces.d.ts +3 -12
  63. package/dist/components/Grid/selection/controllers/useSelectionController.d.ts +2 -2
  64. package/dist/components/Grid/selection/controllers/useSelectionController.js.map +1 -1
  65. package/dist/components/Grid/selection/model/Selection.d.ts +3 -3
  66. package/dist/components/Grid/selection/model/Selection.js.map +1 -1
  67. package/dist/components/Grid/sorting/Sorting.js +3 -3
  68. package/dist/components/Grid/sorting/Sorting.js.map +1 -1
  69. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +3 -3
  70. package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
  71. package/dist/components/Grid/translations.d.ts +4 -0
  72. package/dist/components/Grid/translations.js +1 -0
  73. package/dist/components/Grid/translations.js.map +1 -1
  74. package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +2 -2
  75. package/dist/components/Grid/validation/controllers/useRecordValidationController.js +2 -2
  76. package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +1 -1
  77. package/dist/hooks/useControl.js +1 -1
  78. package/dist/hooks/useControl.js.map +1 -1
  79. package/dist/hooks/useThemeOverride.d.ts +1 -0
  80. package/dist/hooks/useThemeOverride.js +23 -0
  81. package/dist/hooks/useThemeOverride.js.map +1 -0
  82. package/dist/index.d.ts +313 -346
  83. package/dist/interfaces/property.d.ts +0 -29
  84. package/dist/utils/Theme.js +26 -0
  85. package/dist/utils/Theme.js.map +1 -1
  86. package/package.json +3 -2
@@ -1,10 +1,17 @@
1
1
  import { ITheme } from "@fluentui/react";
2
2
  export declare const getReadOnlyCellStyles: (theme: ITheme) => import("@fluentui/react").IProcessedStyleSet<{
3
+ loading: {
4
+ height: string;
5
+ alignItems: string;
6
+ display: string;
7
+ '.ms-Shimmer-shimmerWrapper': {
8
+ height: number;
9
+ };
10
+ };
3
11
  root: {
4
12
  display: string;
5
13
  height: string;
6
14
  alignItems: string;
7
- gap: number;
8
15
  };
9
16
  text: {
10
17
  fontSize: number;
@@ -27,13 +34,53 @@ export declare const getReadOnlyCellStyles: (theme: ITheme) => import("@fluentui
27
34
  };
28
35
  };
29
36
  cellContent: {
37
+ flex: number;
38
+ display: string;
39
+ overflow: string;
40
+ alignItems: string;
41
+ height: string;
42
+ };
43
+ cellContentWrapper: {
30
44
  display: string;
31
45
  height: string;
32
46
  alignItems: string;
47
+ overflow: string;
48
+ flexShrink: number;
33
49
  flexGrow: number;
50
+ ':global(.talxis-cell-align-right &)': {
51
+ order: number;
52
+ };
53
+ ':only-child': {
54
+ flexGrow: number;
55
+ };
56
+ };
57
+ uneditableNotification: {
58
+ i: {
59
+ color: string;
60
+ };
61
+ };
62
+ notificationsWrapper: {
63
+ display: string;
64
+ flexGrow: number;
65
+ flexShrink: number;
66
+ flexBasis: number;
67
+ justifyContent: string;
68
+ minWidth: string;
69
+ alignItems: string;
34
70
  overflow: string;
35
- ':has([data-align="right"])': {
71
+ ':global(.talxis-cell-align-right &)': {
72
+ order: number;
36
73
  justifyContent: string;
74
+ '.ms-CommandBar .ms-CommandBar-primaryCommand': {
75
+ justifyContent: string;
76
+ };
77
+ };
78
+ };
79
+ notifications: {
80
+ minWidth: number;
81
+ flex: number;
82
+ ':global(.talxis-cell-align-right &)': {
83
+ order: number;
37
84
  };
38
85
  };
39
86
  loadingLine: {
@@ -7,11 +7,18 @@ const shimmer = keyframes({
7
7
  });
8
8
  const getReadOnlyCellStyles = (theme) => {
9
9
  return mergeStyleSets({
10
+ loading: {
11
+ height: '100%',
12
+ alignItems: 'center',
13
+ display: 'flex',
14
+ '.ms-Shimmer-shimmerWrapper': {
15
+ height: 10
16
+ }
17
+ },
10
18
  root: {
11
19
  display: 'flex',
12
20
  height: '100%',
13
21
  alignItems: 'center',
14
- gap: 10
15
22
  },
16
23
  text: {
17
24
  fontSize: 14,
@@ -34,13 +41,53 @@ const getReadOnlyCellStyles = (theme) => {
34
41
  }
35
42
  },
36
43
  cellContent: {
44
+ flex: 1,
45
+ display: 'flex',
46
+ overflow: 'hidden',
47
+ alignItems: 'center',
48
+ height: '100%',
49
+ },
50
+ cellContentWrapper: {
37
51
  display: 'flex',
38
52
  height: '100%',
39
53
  alignItems: 'center',
54
+ overflow: 'hidden',
55
+ flexShrink: 1,
56
+ flexGrow: 0,
57
+ ':global(.talxis-cell-align-right &)': {
58
+ order: 2
59
+ },
60
+ ':only-child': {
61
+ flexGrow: 1
62
+ }
63
+ },
64
+ uneditableNotification: {
65
+ 'i': {
66
+ color: `${theme.semanticColors.infoIcon} !important`
67
+ }
68
+ },
69
+ notificationsWrapper: {
70
+ display: 'flex',
40
71
  flexGrow: 1,
72
+ flexShrink: 0,
73
+ flexBasis: 0,
74
+ justifyContent: 'flex-end',
75
+ minWidth: 'var(--test, 0px)',
76
+ alignItems: 'center',
41
77
  overflow: 'hidden',
42
- ':has([data-align="right"])': {
43
- justifyContent: 'flex-end',
78
+ ':global(.talxis-cell-align-right &)': {
79
+ order: 1,
80
+ justifyContent: 'flex-start',
81
+ '.ms-CommandBar .ms-CommandBar-primaryCommand': {
82
+ justifyContent: 'flex-start'
83
+ }
84
+ }
85
+ },
86
+ notifications: {
87
+ minWidth: 0,
88
+ flex: 1,
89
+ ':global(.talxis-cell-align-right &)': {
90
+ order: 2
44
91
  }
45
92
  },
46
93
  loadingLine: {
@@ -50,7 +97,7 @@ const getReadOnlyCellStyles = (theme) => {
50
97
  animation: `${shimmer} 2s infinite`,
51
98
  backgroundSize: '1000px 100%',
52
99
  background: `linear-gradient(to right, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 4%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 5%) 25%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 36%)`
53
- }
100
+ },
54
101
  });
55
102
  };
56
103
 
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/ReadOnlyCell/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets, keyframes } from \"@fluentui/react\";\n\nconst shimmer = keyframes({\n '100%': {\n backgroundPosition: '150px 0'\n },\n });\n\nexport const getReadOnlyCellStyles = (theme: ITheme) => {\n return mergeStyleSets({\n root: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n gap: 10\n },\n text: {\n fontSize: 14,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n link: {\n fontSize: 14,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n fileWrapper: {\n display: 'flex',\n gap: 3\n },\n image: {\n marginRight: 5,\n 'img': {\n width: 32\n }\n },\n cellContent: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n flexGrow: 1,\n overflow: 'hidden',\n ':has([data-align=\"right\"])': {\n justifyContent: 'flex-end',\n }\n },\n loadingLine: {\n height: 7,\n borderRadius: 5,\n width: '100%',\n animation: `${shimmer} 2s infinite`,\n backgroundSize: '1000px 100%',\n background: `linear-gradient(to right, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 4%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 5%) 25%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 36%)`\n }\n })\n}"],"names":[],"mappings":";;AAEA,MAAM,OAAO,GAAG,SAAS,CAAC;AACtB,IAAA,MAAM,EAAE;AACN,QAAA,kBAAkB,EAAE,SAAS;AAC9B,KAAA;AACF,CAAA,CAAC,CAAC;AAEQ,MAAA,qBAAqB,GAAG,CAAC,KAAa,KAAI;AACnD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,GAAG,EAAE,EAAE;AACV,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AAC3B,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,YAAY,EAAE,UAAU;AAC3B,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,GAAG,EAAE,CAAC;AACT,SAAA;AACD,QAAA,KAAK,EAAE;AACH,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,KAAK,EAAE;AACH,gBAAA,KAAK,EAAE,EAAE;AACZ,aAAA;AACJ,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,4BAA4B,EAAE;AAC1B,gBAAA,cAAc,EAAE,UAAU;AAC7B,aAAA;AACJ,SAAA;AACD,QAAA,WAAW,EAAE;AACT,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,YAAY,EAAE,CAAC;AACf,YAAA,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,CAAG,EAAA,OAAO,CAAc,YAAA,CAAA;AACnC,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,UAAU,EAAE,CAAiD,8CAAA,EAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAgC,6BAAA,EAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAA,EAAA,EAAK,KAAK,CAAC,OAAO,CAAC,KAAK,iCAAiC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAK,EAAA,EAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAW,SAAA,CAAA;AAC7Q,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/ReadOnlyCell/styles.ts"],"sourcesContent":["import { ITheme, mergeStyleSets, keyframes } from \"@fluentui/react\";\n\nconst shimmer = keyframes({\n '100%': {\n backgroundPosition: '150px 0'\n },\n});\n\n\n\nexport const getReadOnlyCellStyles = (theme: ITheme) => {\n return mergeStyleSets({\n loading: {\n height: '100%',\n alignItems: 'center',\n display: 'flex',\n '.ms-Shimmer-shimmerWrapper': {\n height: 10\n }\n },\n root: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n },\n text: {\n fontSize: 14,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n link: {\n fontSize: 14,\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n fileWrapper: {\n display: 'flex',\n gap: 3\n },\n image: {\n marginRight: 5,\n 'img': {\n width: 32\n }\n },\n cellContent: {\n flex: 1,\n display: 'flex',\n overflow: 'hidden',\n alignItems: 'center',\n height: '100%',\n },\n cellContentWrapper: {\n display: 'flex',\n height: '100%',\n alignItems: 'center',\n overflow: 'hidden',\n flexShrink: 1,\n flexGrow: 0,\n ':global(.talxis-cell-align-right &)': {\n order: 2\n },\n ':only-child': {\n flexGrow: 1\n }\n },\n uneditableNotification: {\n 'i': {\n color: `${theme.semanticColors.infoIcon} !important`\n }\n },\n notificationsWrapper: {\n display: 'flex',\n flexGrow: 1,\n flexShrink: 0,\n flexBasis: 0,\n justifyContent: 'flex-end',\n minWidth: 'var(--test, 0px)',\n alignItems: 'center',\n overflow: 'hidden',\n ':global(.talxis-cell-align-right &)': {\n order: 1,\n justifyContent: 'flex-start',\n '.ms-CommandBar .ms-CommandBar-primaryCommand': {\n justifyContent: 'flex-start'\n }\n }\n },\n notifications: {\n minWidth: 0,\n flex: 1,\n ':global(.talxis-cell-align-right &)': {\n order: 2\n }\n },\n loadingLine: {\n height: 7,\n borderRadius: 5,\n width: '100%',\n animation: `${shimmer} 2s infinite`,\n backgroundSize: '1000px 100%',\n background: `linear-gradient(to right, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 4%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 5%) 25%, color-mix(in oklab, ${theme.palette.white}, ${theme.palette.black} 8%) 36%)`\n },\n })\n}"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ const ColumnHeader = (props) => {
14
14
  const columnHeaderStyles = getColumnHeaderStyles(useTheme());
15
15
  const buttonRef = useRef(null);
16
16
  const onClick = () => {
17
- if ((column.isFilterable === false && column.isSortable === false)) {
17
+ if ((column.isFilterable === false && column.disableSorting)) {
18
18
  return;
19
19
  }
20
20
  setColumnHeaderContextualMenuProps({
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeader.js","sources":["../../../../../../src/components/Grid/core/components/ColumnHeader/ColumnHeader.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { CommandBarButton, Icon, Label, useTheme } from '@fluentui/react';\nimport { FilterCallout, IFilterCallout } from '../../../filtering/components/FilterCallout/FilterCallout';\nimport { IGridColumn } from '../../interfaces/IGridColumn';\nimport { ISortingContextualMenu, SortingContextualMenu } from '../../../sorting/components/SortingContextualMenu/SortingContextualMenu';\nimport { getColumnHeaderStyles } from './styles';\nimport { useGridInstance } from '../../hooks/useGridInstance';\nimport React from 'react';\n\nexport interface IColumnHeader {\n baseColumn: IGridColumn;\n}\n\nexport const ColumnHeader = (props: IColumnHeader) => {\n const grid = useGridInstance();\n const column = props.baseColumn;\n const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState<ISortingContextualMenu | null>(null);\n const [filterCalloutProps, setFilterCalloutProps] = useState<IFilterCallout | null>(null);\n const columnHeaderStyles = getColumnHeaderStyles(useTheme());\n const buttonRef = useRef<HTMLElement>(null);\n\n const onClick = () => {\n if ((column.isFilterable === false && column.isSortable === false)) {\n return;\n }\n setColumnHeaderContextualMenuProps({\n column: column,\n onDismiss: (e, dismissAll, showFilterCallout) => {\n setColumnHeaderContextualMenuProps(null);\n if (!showFilterCallout) {\n return;\n }\n setFilterCalloutProps({\n column: column,\n onDismiss: () => {\n setFilterCalloutProps(null)\n }\n })\n }\n });\n }\n const preventDismissOnEvent = (e: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element> | React.FocusEvent<Element, Element>) => {\n if(e.type !== 'scroll') {\n return false;\n }\n const target = e.target as HTMLElement;\n //check for vertical scroll\n if (target?.classList?.contains('ag-body-viewport') || target?.classList?.contains('ag-body-vertical-scroll-viewport')) {\n return true;\n }\n //ios outputs horizontal scroll if focused in callout btn which would result in dismiss of callout\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\n return true;\n }\n return false;\n }\n return (\n <>\n <CommandBarButton\n elementRef={buttonRef}\n title={column.displayName}\n className={columnHeaderStyles.root}\n onClick={onClick}\n >\n {grid.isEditable && !column.isEditable && <Icon className={columnHeaderStyles.editIcon} iconName='Uneditable' />}\n <div className={columnHeaderStyles.labelWrapper}>\n <Label className={columnHeaderStyles.label}>{column.displayName}</Label>\n {column.isRequired &&\n <span className={columnHeaderStyles.requiredSymbol}>*</span>\n }\n </div>\n <div className={columnHeaderStyles.filterSortIcons}>\n {column.isSorted && <Icon iconName={column.isSortedDescending ? 'SortDown' : 'SortUp'} />}\n {column.isFiltered && <Icon iconName='Filter' />}\n </div>\n </CommandBarButton>\n {columnHeaderContextualMenuProps &&\n <SortingContextualMenu \n target={buttonRef}\n calloutProps={{\n preventDismissOnEvent: preventDismissOnEvent\n }} \n {...columnHeaderContextualMenuProps} />\n }\n {filterCalloutProps &&\n <FilterCallout preventDismissOnEvent={preventDismissOnEvent} target={buttonRef} {...filterCalloutProps} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnHeader.js","sources":["../../../../../../src/components/Grid/core/components/ColumnHeader/ColumnHeader.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { CommandBarButton, Icon, Label, useTheme } from '@fluentui/react';\nimport { FilterCallout, IFilterCallout } from '../../../filtering/components/FilterCallout/FilterCallout';\nimport { IGridColumn } from '../../interfaces/IGridColumn';\nimport { ISortingContextualMenu, SortingContextualMenu } from '../../../sorting/components/SortingContextualMenu/SortingContextualMenu';\nimport { getColumnHeaderStyles } from './styles';\nimport { useGridInstance } from '../../hooks/useGridInstance';\nimport React from 'react';\n\nexport interface IColumnHeader {\n baseColumn: IGridColumn;\n}\n\nexport const ColumnHeader = (props: IColumnHeader) => {\n const grid = useGridInstance();\n const column = props.baseColumn;\n const [columnHeaderContextualMenuProps, setColumnHeaderContextualMenuProps] = useState<ISortingContextualMenu | null>(null);\n const [filterCalloutProps, setFilterCalloutProps] = useState<IFilterCallout | null>(null);\n const columnHeaderStyles = getColumnHeaderStyles(useTheme());\n const buttonRef = useRef<HTMLElement>(null);\n\n const onClick = () => {\n if ((column.isFilterable === false && column.disableSorting)) {\n return;\n }\n setColumnHeaderContextualMenuProps({\n column: column,\n onDismiss: (e, dismissAll, showFilterCallout) => {\n setColumnHeaderContextualMenuProps(null);\n if (!showFilterCallout) {\n return;\n }\n setFilterCalloutProps({\n column: column,\n onDismiss: () => {\n setFilterCalloutProps(null)\n }\n })\n }\n });\n }\n const preventDismissOnEvent = (e: Event | React.MouseEvent<Element, MouseEvent> | React.KeyboardEvent<Element> | React.FocusEvent<Element, Element>) => {\n if(e.type !== 'scroll') {\n return false;\n }\n const target = e.target as HTMLElement;\n //check for vertical scroll\n if (target?.classList?.contains('ag-body-viewport') || target?.classList?.contains('ag-body-vertical-scroll-viewport')) {\n return true;\n }\n //ios outputs horizontal scroll if focused in callout btn which would result in dismiss of callout\n if (/iPad|iPhone|iPod/.test(navigator.userAgent)) {\n return true;\n }\n return false;\n }\n return (\n <>\n <CommandBarButton\n elementRef={buttonRef}\n title={column.displayName}\n className={columnHeaderStyles.root}\n onClick={onClick}\n >\n {grid.isEditable && !column.isEditable && <Icon className={columnHeaderStyles.editIcon} iconName='Uneditable' />}\n <div className={columnHeaderStyles.labelWrapper}>\n <Label className={columnHeaderStyles.label}>{column.displayName}</Label>\n {column.isRequired &&\n <span className={columnHeaderStyles.requiredSymbol}>*</span>\n }\n </div>\n <div className={columnHeaderStyles.filterSortIcons}>\n {column.isSorted && <Icon iconName={column.isSortedDescending ? 'SortDown' : 'SortUp'} />}\n {column.isFiltered && <Icon iconName='Filter' />}\n </div>\n </CommandBarButton>\n {columnHeaderContextualMenuProps &&\n <SortingContextualMenu \n target={buttonRef}\n calloutProps={{\n preventDismissOnEvent: preventDismissOnEvent\n }} \n {...columnHeaderContextualMenuProps} />\n }\n {filterCalloutProps &&\n <FilterCallout preventDismissOnEvent={preventDismissOnEvent} target={buttonRef} {...filterCalloutProps} />\n }\n </>\n )\n};"],"names":["_jsxs","_Fragment","_jsx"],"mappings":"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"}
@@ -2,6 +2,7 @@ import dayjs from 'dayjs';
2
2
  import { ColumnValidation } from '../../../../validation/model/ColumnValidation.js';
3
3
  import { DataType } from '../../../enums/DataType.js';
4
4
  import { GridDependency } from '../../../model/GridDependency.js';
5
+ import { Attribute } from '@talxis/client-libraries';
5
6
 
6
7
  const debounce = (func, wait) => {
7
8
  let timeout = null;
@@ -27,12 +28,13 @@ class Component extends GridDependency {
27
28
  const { column, value, onNotifyOutputChanged, formattedValue } = { ...props };
28
29
  const [isValid, validationErrorMessage] = new ColumnValidation(this._grid, props.column).validate(value);
29
30
  const onOverrideControlProps = props?.onOverrideControlProps ?? ((props) => props);
31
+ const attributeName = Attribute.GetNameFromAlias(column.name);
30
32
  switch (column.dataType) {
31
33
  case DataType.LOOKUP_SIMPLE:
32
34
  case DataType.LOOKUP_OWNER:
33
35
  case DataType.LOOKUP_CUSTOMER: {
34
- const columnMetadata = await this._grid.metadata.get(column);
35
- const targets = columnMetadata.Attributes.get(column.attributeName).attributeDescriptor.Targets ?? [];
36
+ const columnMetadata = await this._grid.metadata.get(column.name);
37
+ const targets = columnMetadata.Attributes.get(attributeName).attributeDescriptor.Targets ?? [];
36
38
  //@ts-ignore - typings
37
39
  if (column.dataType === DataType.LOOKUP_OWNER && window.TALXIS.Portal) {
38
40
  targets.push('systemuser', 'team');
@@ -78,7 +80,7 @@ class Component extends GridDependency {
78
80
  }
79
81
  case DataType.TWO_OPTIONS: {
80
82
  const twoOptionsValue = value;
81
- const [defaultValue, options] = await this._grid.metadata.getOptions(column);
83
+ const [defaultValue, options] = await this._grid.metadata.getOptions(column.name);
82
84
  return onOverrideControlProps({
83
85
  context: this._pcfContext,
84
86
  parameters: {
@@ -96,7 +98,7 @@ class Component extends GridDependency {
96
98
  }
97
99
  case DataType.OPTIONSET: {
98
100
  const optionSetValue = value;
99
- const [defaultValue, options] = await this._grid.metadata.getOptions(column);
101
+ const [defaultValue, options] = await this._grid.metadata.getOptions(column.name);
100
102
  return onOverrideControlProps({
101
103
  context: this._pcfContext,
102
104
  parameters: {
@@ -113,7 +115,7 @@ class Component extends GridDependency {
113
115
  });
114
116
  }
115
117
  case DataType.MULTI_SELECT_OPTIONSET: {
116
- const [defaultValue, options] = await this._grid.metadata.getOptions(column);
118
+ const [defaultValue, options] = await this._grid.metadata.getOptions(column.name);
117
119
  const optionSetValue = value;
118
120
  return onOverrideControlProps({
119
121
  context: this._pcfContext,
@@ -133,7 +135,7 @@ class Component extends GridDependency {
133
135
  case DataType.DATE_AND_TIME_DATE_AND_TIME:
134
136
  case DataType.DATE_AND_TIME_DATE_ONLY: {
135
137
  const dateTimeValue = value;
136
- const metadata = await this._grid.metadata.get(column);
138
+ const metadata = await this._grid.metadata.get(column.name);
137
139
  const date = dayjs(dateTimeValue);
138
140
  return onOverrideControlProps({
139
141
  context: this._pcfContext,
@@ -143,7 +145,7 @@ class Component extends GridDependency {
143
145
  error: !isValid,
144
146
  errorMessage: validationErrorMessage,
145
147
  attributes: {
146
- Behavior: metadata.Attributes.get(column.attributeName).Behavior,
148
+ Behavior: metadata.Attributes.get(attributeName).Behavior,
147
149
  Format: column.dataType
148
150
  }
149
151
  }
@@ -156,8 +158,8 @@ class Component extends GridDependency {
156
158
  case DataType.CURRENCY:
157
159
  case DataType.WHOLE_DURATION: {
158
160
  const decimalValue = value;
159
- const metadata = await this._grid.metadata.get(column);
160
- const precision = metadata.Attributes.get(column.attributeName).Precision;
161
+ const metadata = await this._grid.metadata.get(column.name);
162
+ const precision = metadata.Attributes.get(attributeName).Precision;
161
163
  return onOverrideControlProps({
162
164
  context: this._pcfContext,
163
165
  parameters: {
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../../../../../src/components/Grid/core/components/Component/model/Component.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport { IControl } from \"../../../../../../interfaces/context\";\nimport { IDateTime } from \"../../../../../DateTime/interfaces\";\nimport { IDecimal } from \"../../../../../Decimal/interfaces\";\nimport { ILookup } from \"../../../../../Lookup/interfaces\";\nimport { IMultiSelectOptionSet } from \"../../../../../MultiSelectOptionSet/interfaces\";\nimport { IOptionSet } from \"../../../../../OptionSet/interfaces\";\nimport { ITextField } from \"../../../../../TextField/interfaces\";\nimport { ITwoOptions } from \"../../../../../TwoOptions/interfaces\";\nimport { ColumnValidation } from \"../../../../validation/model/ColumnValidation\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { GridDependency } from \"../../../model/GridDependency\";\nimport { IControlProps } from \"../Component\";\n\nconst debounce = (func: (...args: any[]) => Promise<any>, wait: number) => {\n let timeout: NodeJS.Timeout | null = null;\n let promiseCache: Promise<any> | null = null;\n\n return async (...args: any[]) => {\n if (!promiseCache) {\n promiseCache = func(...args);\n }\n\n if (timeout) clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n promiseCache = null;\n }, wait);\n\n return promiseCache;\n };\n};\n\nexport class Component extends GridDependency {\n private _debouncedGetLookupValue = debounce(this._getLookupValue.bind(this), 50);\n private static _lookupSavedQueriesCache = new Map<string, Promise<ComponentFramework.WebApi.Entity>>;\n\n public async getControlProps(props: IControlProps): Promise<IControl<any, any, any, any>> {\n const { column, value, onNotifyOutputChanged, formattedValue } = { ...props };\n const [isValid, validationErrorMessage] = new ColumnValidation(this._grid, props.column).validate(value);\n const onOverrideControlProps = props?.onOverrideControlProps ?? ((props: IControl<any, any, any, any>) => props);\n switch (column.dataType) {\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_CUSTOMER: {\n const columnMetadata = await this._grid.metadata.get(column);\n const targets = columnMetadata.Attributes.get(column.attributeName).attributeDescriptor.Targets ?? [];\n //@ts-ignore - typings\n if (column.dataType === DataType.LOOKUP_OWNER && window.TALXIS.Portal) {\n targets.push('systemuser', 'team')\n }\n let displayName = \"\";\n if(targets.length === 1) {\n displayName = (await this._pcfContext.utils.getEntityMetadata(targets[0])).DisplayName;\n }\n const result = {\n context: this._pcfContext,\n parameters: {\n value: {\n getAllViews: async (entityName: string, __queryType: number = 64) => {\n const cacheKey = `${entityName}_${__queryType}`\n if (!Component._lookupSavedQueriesCache.get(cacheKey)) {\n Component._lookupSavedQueriesCache.set(cacheKey, new Promise(async (resolve) => {\n const response = await this._pcfContext.webAPI.retrieveMultipleRecords('savedquery', `?$filter=returnedtypecode eq '${entityName}' and querytype eq ${__queryType} and isdefault eq true&$select=name,savedqueryid,fetchxml`);\n resolve(response.entities[0])\n }))\n }\n const result = await Component._lookupSavedQueriesCache.get(cacheKey)!;\n return [\n {\n isDefault: true,\n viewName: result.name,\n viewId: result.savedqueryid,\n fetchXml: result.fetchxml\n }\n ]\n },\n raw: await this._debouncedGetLookupValue(targets, value),\n attributes: {\n Targets: targets,\n DisplayName: displayName\n },\n error: !isValid,\n errorMessage: validationErrorMessage,\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n\n } as ILookup;\n return onOverrideControlProps(result);\n }\n case DataType.TWO_OPTIONS: {\n const twoOptionsValue = value as boolean | undefined | null;\n const [defaultValue, options] = await this._grid.metadata.getOptions(column)\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: twoOptionsValue === true ? true : false,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Options: options\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as ITwoOptions)\n }\n case DataType.OPTIONSET: {\n const optionSetValue = value as number | null | undefined;\n const [defaultValue, options] = await this._grid.metadata.getOptions(column)\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: optionSetValue ?? null,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Options: options\n }\n },\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IOptionSet);\n }\n case DataType.MULTI_SELECT_OPTIONSET: {\n const [defaultValue, options] = await this._grid.metadata.getOptions(column)\n const optionSetValue = value as number[] | null | undefined;\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: optionSetValue ?? null,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Options: options\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IMultiSelectOptionSet);\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n const dateTimeValue = value as Date | null | undefined;\n const metadata = await this._grid.metadata.get(column);\n const date = dayjs(dateTimeValue);\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: date.isValid() ? date.toDate() : dateTimeValue,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Behavior: metadata.Attributes.get(column.attributeName).Behavior,\n Format: column.dataType\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IDateTime);\n }\n case DataType.WHOLE_NONE:\n case DataType.DECIMAL:\n case DataType.CURRENCY:\n case DataType.WHOLE_DURATION: {\n const decimalValue = value as number | null | undefined\n const metadata = await this._grid.metadata.get(column);\n const precision = metadata.Attributes.get(column.attributeName).Precision;\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: decimalValue ?? null,\n error: !isValid,\n //formatted value is only used for currency => there is no way to get the currency symbol so the formatCurrency method is useless\n formatted: formattedValue,\n errorMessage: validationErrorMessage,\n type: column.dataType,\n attributes: {\n Precision: precision\n }\n },\n NotifyOutputChangedOnUnmount: {\n raw: true,\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n\n } as IDecimal);\n }\n default: {\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n isResizable: {\n raw: false\n },\n NotifyOutputChangedOnUnmount: {\n raw: true,\n },\n value: {\n raw: value,\n error: !isValid,\n errorMessage: validationErrorMessage\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as ITextField);\n }\n }\n }\n private async _getLookupValue(targets: string[], value: ComponentFramework.LookupValue[] | null | undefined): Promise<ComponentFramework.LookupValue[]> {\n if (!value || value.length === 0) {\n return [];\n }\n //this is case from filters where we only have the id to work it => we need to go through targets and search for the records\n if (!value[0].entityType) {\n for (const lookup of value) {\n for (const target of targets) {\n try {\n const lookupEntityMetadata = await this._pcfContext.utils.getEntityMetadata(target, []);\n const response = await this._pcfContext.webAPI.retrieveRecord(target, lookup.id, `?$select=${lookupEntityMetadata.PrimaryNameAttribute}`);\n lookup.entityType = target;\n lookup.name = response[lookupEntityMetadata.PrimaryNameAttribute];\n break;\n }\n catch (err) {\n continue;\n }\n }\n }\n }\n return value;\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../../../../../src/components/Grid/core/components/Component/model/Component.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport { IControl } from \"../../../../../../interfaces/context\";\nimport { IDateTime } from \"../../../../../DateTime/interfaces\";\nimport { IDecimal } from \"../../../../../Decimal/interfaces\";\nimport { ILookup } from \"../../../../../Lookup/interfaces\";\nimport { IMultiSelectOptionSet } from \"../../../../../MultiSelectOptionSet/interfaces\";\nimport { IOptionSet } from \"../../../../../OptionSet/interfaces\";\nimport { ITextField } from \"../../../../../TextField/interfaces\";\nimport { ITwoOptions } from \"../../../../../TwoOptions/interfaces\";\nimport { ColumnValidation } from \"../../../../validation/model/ColumnValidation\";\nimport { DataType } from \"../../../enums/DataType\";\nimport { GridDependency } from \"../../../model/GridDependency\";\nimport { IControlProps } from \"../Component\";\nimport { Attribute } from \"@talxis/client-libraries\";\n\nconst debounce = (func: (...args: any[]) => Promise<any>, wait: number) => {\n let timeout: NodeJS.Timeout | null = null;\n let promiseCache: Promise<any> | null = null;\n\n return async (...args: any[]) => {\n if (!promiseCache) {\n promiseCache = func(...args);\n }\n\n if (timeout) clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n promiseCache = null;\n }, wait);\n\n return promiseCache;\n };\n};\n\nexport class Component extends GridDependency {\n private _debouncedGetLookupValue = debounce(this._getLookupValue.bind(this), 50);\n private static _lookupSavedQueriesCache = new Map<string, Promise<ComponentFramework.WebApi.Entity>>;\n\n public async getControlProps(props: IControlProps): Promise<IControl<any, any, any, any>> {\n const { column, value, onNotifyOutputChanged, formattedValue } = { ...props };\n const [isValid, validationErrorMessage] = new ColumnValidation(this._grid, props.column).validate(value);\n const onOverrideControlProps = props?.onOverrideControlProps ?? ((props: IControl<any, any, any, any>) => props);\n const attributeName = Attribute.GetNameFromAlias(column.name);\n switch (column.dataType) {\n case DataType.LOOKUP_SIMPLE:\n case DataType.LOOKUP_OWNER:\n case DataType.LOOKUP_CUSTOMER: {\n const columnMetadata = await this._grid.metadata.get(column.name);\n const targets = columnMetadata.Attributes.get(attributeName).attributeDescriptor.Targets ?? [];\n //@ts-ignore - typings\n if (column.dataType === DataType.LOOKUP_OWNER && window.TALXIS.Portal) {\n targets.push('systemuser', 'team')\n }\n let displayName = \"\";\n if(targets.length === 1) {\n displayName = (await this._pcfContext.utils.getEntityMetadata(targets[0])).DisplayName;\n }\n const result = {\n context: this._pcfContext,\n parameters: {\n value: {\n getAllViews: async (entityName: string, __queryType: number = 64) => {\n const cacheKey = `${entityName}_${__queryType}`\n if (!Component._lookupSavedQueriesCache.get(cacheKey)) {\n Component._lookupSavedQueriesCache.set(cacheKey, new Promise(async (resolve) => {\n const response = await this._pcfContext.webAPI.retrieveMultipleRecords('savedquery', `?$filter=returnedtypecode eq '${entityName}' and querytype eq ${__queryType} and isdefault eq true&$select=name,savedqueryid,fetchxml`);\n resolve(response.entities[0])\n }))\n }\n const result = await Component._lookupSavedQueriesCache.get(cacheKey)!;\n return [\n {\n isDefault: true,\n viewName: result.name,\n viewId: result.savedqueryid,\n fetchXml: result.fetchxml\n }\n ]\n },\n raw: await this._debouncedGetLookupValue(targets, value),\n attributes: {\n Targets: targets,\n DisplayName: displayName\n },\n error: !isValid,\n errorMessage: validationErrorMessage,\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n\n } as ILookup;\n return onOverrideControlProps(result);\n }\n case DataType.TWO_OPTIONS: {\n const twoOptionsValue = value as boolean | undefined | null;\n const [defaultValue, options] = await this._grid.metadata.getOptions(column.name)\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: twoOptionsValue === true ? true : false,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Options: options\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as ITwoOptions)\n }\n case DataType.OPTIONSET: {\n const optionSetValue = value as number | null | undefined;\n const [defaultValue, options] = await this._grid.metadata.getOptions(column.name)\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: optionSetValue ?? null,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Options: options\n }\n },\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IOptionSet);\n }\n case DataType.MULTI_SELECT_OPTIONSET: {\n const [defaultValue, options] = await this._grid.metadata.getOptions(column.name)\n const optionSetValue = value as number[] | null | undefined;\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: optionSetValue ?? null,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Options: options\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IMultiSelectOptionSet);\n }\n case DataType.DATE_AND_TIME_DATE_AND_TIME:\n case DataType.DATE_AND_TIME_DATE_ONLY: {\n const dateTimeValue = value as Date | null | undefined;\n const metadata = await this._grid.metadata.get(column.name);\n const date = dayjs(dateTimeValue);\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: date.isValid() ? date.toDate() : dateTimeValue,\n error: !isValid,\n errorMessage: validationErrorMessage,\n attributes: {\n Behavior: metadata.Attributes.get(attributeName).Behavior,\n Format: column.dataType\n }\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as IDateTime);\n }\n case DataType.WHOLE_NONE:\n case DataType.DECIMAL:\n case DataType.CURRENCY:\n case DataType.WHOLE_DURATION: {\n const decimalValue = value as number | null | undefined\n const metadata = await this._grid.metadata.get(column.name);\n const precision = metadata.Attributes.get(attributeName).Precision;\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n value: {\n raw: decimalValue ?? null,\n error: !isValid,\n //formatted value is only used for currency => there is no way to get the currency symbol so the formatCurrency method is useless\n formatted: formattedValue,\n errorMessage: validationErrorMessage,\n type: column.dataType,\n attributes: {\n Precision: precision\n }\n },\n NotifyOutputChangedOnUnmount: {\n raw: true,\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n\n } as IDecimal);\n }\n default: {\n return onOverrideControlProps({\n context: this._pcfContext,\n parameters: {\n isResizable: {\n raw: false\n },\n NotifyOutputChangedOnUnmount: {\n raw: true,\n },\n value: {\n raw: value,\n error: !isValid,\n errorMessage: validationErrorMessage\n }\n },\n onNotifyOutputChanged: (outputs) => onNotifyOutputChanged(outputs.value)\n } as ITextField);\n }\n }\n }\n private async _getLookupValue(targets: string[], value: ComponentFramework.LookupValue[] | null | undefined): Promise<ComponentFramework.LookupValue[]> {\n if (!value || value.length === 0) {\n return [];\n }\n //this is case from filters where we only have the id to work it => we need to go through targets and search for the records\n if (!value[0].entityType) {\n for (const lookup of value) {\n for (const target of targets) {\n try {\n const lookupEntityMetadata = await this._pcfContext.utils.getEntityMetadata(target, []);\n const response = await this._pcfContext.webAPI.retrieveRecord(target, lookup.id, `?$select=${lookupEntityMetadata.PrimaryNameAttribute}`);\n lookup.entityType = target;\n lookup.name = response[lookupEntityMetadata.PrimaryNameAttribute];\n break;\n }\n catch (err) {\n continue;\n }\n }\n }\n }\n return value;\n }\n}"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeEditor.js","sources":["../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.tsx"],"sourcesContent":["import { DialogFooter, FocusTrapZone, ICommandBarItemProps, IDialogProps, PrimaryButton, Spinner, SpinnerSize, useTheme } from \"@fluentui/react\";\nimport { useEffect } from 'react';\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport { useRecordUpdateServiceController } from \"../../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController\";\nimport { IUpdatedRecord } from \"../../../../services/RecordUpdateService/model/RecordUpdateService\";\nimport { IEntityColumn, IEntityRecord } from \"../../../../../interfaces\";\nimport Dialog from \"../../../Dialog\";\nimport { RecordGrids } from \"./components/RecordGrids/RecordGrids\";\nimport { DataType } from \"../../../../enums/DataType\";\nimport { getChangeEditorStyles } from \"./styles\";\nimport { useSave } from \"../../hooks/useSave\";\nimport React from 'react';\n\nexport const ChangeEditor = (props: IDialogProps) => {\n const grid = useGridInstance();\n const labels = grid.labels;\n const controller = useRecordUpdateServiceController();\n const { isSaving, saveBtnProps, save } = useSave();\n const updatedRecords = controller.updatedRecords;\n\n const styles = getChangeEditorStyles(useTheme());\n useEffect(() => {\n if (updatedRecords.length === 0) {\n props.onDismiss?.();\n }\n }, [updatedRecords]);\n\n\n return <Dialog\n {...props}\n width={1000}\n minWidth={'80%'}\n modalProps={{\n isBlocking: true,\n className: styles.root,\n layerProps: {\n eventBubblingEnabled: true\n }\n }}\n dialogContentProps={{\n showCloseButton: true,\n title: labels[\"saving-changepreview-title\"]({\n numOfChanges: updatedRecords.length\n })\n }}\n hidden={false}>\n <div className={styles.recordGrids}>\n {updatedRecords.map(record => <RecordGrids key={record.getRecordId()} record={record} />)}\n </div>\n <DialogFooter>\n <PrimaryButton\n className={styles.saveBtn}\n text={saveBtnProps.text}\n disabled={saveBtnProps.disabled}\n onClick={() => save()}\n >\n {isSaving &&\n <Spinner size={SpinnerSize.small} />\n }\n </PrimaryButton>\n </DialogFooter>\n </Dialog>\n}"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;AAaa,MAAA,YAAY,GAAG,CAAC,KAAmB,KAAI;AAChD,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,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;AAEjD,IAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,KAAK,CAAC,SAAS,IAAI,CAAC;AACvB,SAAA;AACL,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAGrB,IAAA,OAAOA,IAAC,CAAA,MAAM,EACN,EAAA,GAAA,KAAK,EACT,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE;AACR,YAAA,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,MAAM,CAAC,IAAI;AACtB,YAAA,UAAU,EAAE;AACR,gBAAA,oBAAoB,EAAE,IAAI;AAC7B,aAAA;AACJ,SAAA,EACD,kBAAkB,EAAE;AAChB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,KAAK,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACxC,YAAY,EAAE,cAAc,CAAC,MAAM;aACtC,CAAC;AACL,SAAA,EACD,MAAM,EAAE,KAAK,EAAA,QAAA,EAAA,CACTC,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,QAAA,EAAA,cAAc,CAAC,GAAG,CAAC,MAAM,IAAIA,GAAC,CAAA,WAAW,IAA4B,MAAM,EAAE,MAAM,EAAA,EAApC,MAAM,CAAC,WAAW,EAAE,CAAoB,CAAC,EAAA,CACvF,EACVA,GAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EACTA,GAAC,CAAA,aAAa,EACV,EAAA,SAAS,EAAE,MAAM,CAAC,OAAO,EACzB,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,OAAO,EAAE,MAAM,IAAI,EAAE,YAEpB,QAAQ;wBACLA,GAAC,CAAA,OAAO,EAAC,EAAA,IAAI,EAAE,WAAW,CAAC,KAAK,EAAI,CAAA,EAAA,CAE5B,EACL,CAAA,CAAA,EAAA,CACV,CAAA;AACb;;;;"}
1
+ {"version":3,"file":"ChangeEditor.js","sources":["../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.tsx"],"sourcesContent":["import { DialogFooter, IDialogProps, PrimaryButton, Spinner, SpinnerSize, useTheme } from \"@fluentui/react\";\nimport { useEffect } from 'react';\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport { useRecordUpdateServiceController } from \"../../../../services/RecordUpdateService/controllers/useRecordUpdateServiceController\";\nimport Dialog from \"../../../Dialog\";\nimport { RecordGrids } from \"./components/RecordGrids/RecordGrids\";\nimport { getChangeEditorStyles } from \"./styles\";\nimport { useSave } from \"../../hooks/useSave\";\n\nexport const ChangeEditor = (props: IDialogProps) => {\n const grid = useGridInstance();\n const labels = grid.labels;\n const controller = useRecordUpdateServiceController();\n const { isSaving, saveBtnProps, save } = useSave();\n const updatedRecords = controller.updatedRecords;\n\n const styles = getChangeEditorStyles(useTheme());\n useEffect(() => {\n if (updatedRecords.length === 0) {\n props.onDismiss?.();\n }\n }, [updatedRecords]);\n\n\n return <Dialog\n {...props}\n width={1000}\n minWidth={'80%'}\n modalProps={{\n isBlocking: true,\n className: styles.root,\n layerProps: {\n eventBubblingEnabled: true\n }\n }}\n dialogContentProps={{\n showCloseButton: true,\n title: labels[\"saving-changepreview-title\"]({\n numOfChanges: updatedRecords.length\n })\n }}\n hidden={false}>\n <div className={styles.recordGrids}>\n {updatedRecords.map(record => <RecordGrids key={record.getRecordId()} record={record} />)}\n </div>\n <DialogFooter>\n <PrimaryButton\n className={styles.saveBtn}\n text={saveBtnProps.text}\n disabled={saveBtnProps.disabled}\n onClick={() => save()}\n >\n {isSaving &&\n <Spinner size={SpinnerSize.small} />\n }\n </PrimaryButton>\n </DialogFooter>\n </Dialog>\n}"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;AASa,MAAA,YAAY,GAAG,CAAC,KAAmB,KAAI;AAChD,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,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACnD,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC;AAEjD,IAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,MAAK;AACX,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,YAAA,KAAK,CAAC,SAAS,IAAI,CAAC;AACvB,SAAA;AACL,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AAGrB,IAAA,OAAOA,IAAC,CAAA,MAAM,EACN,EAAA,GAAA,KAAK,EACT,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,KAAK,EACf,UAAU,EAAE;AACR,YAAA,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,MAAM,CAAC,IAAI;AACtB,YAAA,UAAU,EAAE;AACR,gBAAA,oBAAoB,EAAE,IAAI;AAC7B,aAAA;AACJ,SAAA,EACD,kBAAkB,EAAE;AAChB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,KAAK,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBACxC,YAAY,EAAE,cAAc,CAAC,MAAM;aACtC,CAAC;AACL,SAAA,EACD,MAAM,EAAE,KAAK,EAAA,QAAA,EAAA,CACTC,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,QAAA,EAAA,cAAc,CAAC,GAAG,CAAC,MAAM,IAAIA,GAAC,CAAA,WAAW,IAA4B,MAAM,EAAE,MAAM,EAAA,EAApC,MAAM,CAAC,WAAW,EAAE,CAAoB,CAAC,EAAA,CACvF,EACVA,GAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EACTA,GAAC,CAAA,aAAa,EACV,EAAA,SAAS,EAAE,MAAM,CAAC,OAAO,EACzB,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAC/B,OAAO,EAAE,MAAM,IAAI,EAAE,YAEpB,QAAQ;wBACLA,GAAC,CAAA,OAAO,EAAC,EAAA,IAAI,EAAE,WAAW,CAAC,KAAK,EAAI,CAAA,EAAA,CAE5B,EACL,CAAA,CAAA,EAAA,CACV,CAAA;AACb;;;;"}
@@ -35,6 +35,9 @@ const RecordGrids = (props) => {
35
35
  type: 'static',
36
36
  raw: 'none'
37
37
  },
38
+ EnableOptionSetColors: {
39
+ raw: grid.parameters.EnableOptionSetColors?.raw ?? false
40
+ },
38
41
  Grid: {
39
42
  ...grid.dataset,
40
43
  sorting: [],
@@ -70,6 +73,7 @@ const RecordGrids = (props) => {
70
73
  })();
71
74
  const hasInvalidColumn = invalidColumns.length > 0;
72
75
  const getOriginalRecord = (record) => {
76
+ //@ts-ignore
73
77
  return {
74
78
  getFormattedValue: (columnKey) => record.getOriginalFormattedValue(columnKey),
75
79
  getRecordId: () => record.getRecordId(),
@@ -90,6 +94,7 @@ const RecordGrids = (props) => {
90
94
  };
91
95
  };
92
96
  const getUpdatedRecord = (record) => {
97
+ //@ts-ignore
93
98
  return {
94
99
  getFormattedValue: (columnKey) => record.getFormattedValue(columnKey),
95
100
  getRecordId: () => record.getRecordId(),
@@ -1 +1 @@
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 { IEntityColumn, IEntityRecord, IGrid, IGridParameters } from '../../../../../../../interfaces';\nimport { Icon } from '@fluentui/react';\nimport { getRecordGridStyles } from './styles';\nimport { useTheme } from '@fluentui/react';\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 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: IEntityColumn[] = [];\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): IEntityRecord => {\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): IEntityRecord => {\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
+ {"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 +1 @@
1
- {"version":3,"file":"useGridController.js","sources":["../../../../../src/components/Grid/core/controllers/useGridController.ts"],"sourcesContent":["import { useContext, useEffect, useState } from \"react\"\nimport equal from 'fast-deep-equal/es6';\nimport { IEntityRecord } from \"../../interfaces\";\nimport { Grid } from \"../model/Grid\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { GridContext } from \"../../GridContext\";\n\ninterface IGridController {\n columns: IGridColumn[]\n}\n\nexport const useGridController = (gridInstance?: Grid): IGridController => {\n const grid = gridInstance ?? useContext(GridContext).gridInstance;\n const [columns, setColumns] = useState<IGridColumn[]>(grid.columns);\n\n\n //only change columns and records reference if there is a change\n useEffect(() => {\n (async () => {\n const newColumns = await grid.refreshColumns();\n if(!equal(newColumns, columns)) {\n setColumns(newColumns);\n }\n })();\n }, [grid.shouldRerender]);\n return {\n columns\n }\n}"],"names":[],"mappings":";;;;AAWa,MAAA,iBAAiB,GAAG,CAAC,YAAmB,KAAqB;IACtE,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AAClE,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,OAAO,CAAC,CAAC;;IAIpE,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/C,YAAA,IAAG,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC5B,UAAU,CAAC,UAAU,CAAC,CAAC;AAC1B,aAAA;SACJ,GAAG,CAAC;AACT,KAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1B,OAAO;QACH,OAAO;KACV,CAAA;AACL;;;;"}
1
+ {"version":3,"file":"useGridController.js","sources":["../../../../../src/components/Grid/core/controllers/useGridController.ts"],"sourcesContent":["import { useContext, useEffect, useState } from \"react\"\nimport equal from 'fast-deep-equal/es6';\nimport { Grid } from \"../model/Grid\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { GridContext } from \"../../GridContext\";\n\ninterface IGridController {\n columns: IGridColumn[]\n}\n\nexport const useGridController = (gridInstance?: Grid): IGridController => {\n const grid = gridInstance ?? useContext(GridContext).gridInstance;\n const [columns, setColumns] = useState<IGridColumn[]>(grid.columns);\n\n\n //only change columns and records reference if there is a change\n useEffect(() => {\n (async () => {\n const newColumns = await grid.refreshColumns();\n if(!equal(newColumns, columns)) {\n setColumns(newColumns);\n }\n })();\n }, [grid.shouldRerender]);\n return {\n columns\n }\n}"],"names":[],"mappings":";;;;AAUa,MAAA,iBAAiB,GAAG,CAAC,YAAmB,KAAqB;IACtE,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC;AAClE,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,OAAO,CAAC,CAAC;;IAIpE,SAAS,CAAC,MAAK;QACX,CAAC,YAAW;AACR,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC/C,YAAA,IAAG,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;gBAC5B,UAAU,CAAC,UAAU,CAAC,CAAC;AAC1B,aAAA;SACJ,GAAG,CAAC;AACT,KAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1B,OAAO;QACH,OAAO;KACV,CAAA;AACL;;;;"}
@@ -1,19 +1,10 @@
1
- import { DataType } from "../enums/DataType";
2
- export interface IGridColumn {
3
- key: string;
4
- attributeName: string;
5
- isPrimary?: boolean;
6
- dataType?: DataType;
7
- displayName?: string;
8
- entityAliasName?: string;
9
- isFilterable?: boolean;
10
- isSortable?: boolean;
11
- isSorted?: boolean;
12
- isFiltered?: boolean;
13
- isSortedDescending?: boolean;
14
- isEditable?: boolean;
15
- isResizable?: boolean;
16
- isRequired?: boolean;
17
- isHidden?: boolean;
18
- width?: number;
1
+ import { IColumn } from "@talxis/client-libraries";
2
+ export interface IGridColumn extends IColumn {
3
+ isRequired: boolean;
4
+ isEditable: boolean;
5
+ isFilterable: boolean;
6
+ isSorted: boolean;
7
+ isFiltered: boolean;
8
+ isSortedDescending: boolean;
9
+ isResizable: boolean;
19
10
  }
@@ -1,14 +1,14 @@
1
1
  /// <reference types="powerapps-component-framework" />
2
- import { IDatasetProperty } from "../../../../interfaces";
2
+ import { IDataset, IRecord } from "@talxis/client-libraries";
3
3
  import { Filtering } from "../../filtering/model/Filtering";
4
- import { IEntityRecord, IGrid } from "../../interfaces";
4
+ import { IGrid } from "../../interfaces";
5
5
  import { Paging } from "../../paging/model/Paging";
6
6
  import { Selection } from "../../selection/model/Selection";
7
7
  import { Sorting } from "../../sorting/Sorting";
8
- import { IGridColumn } from "../interfaces/IGridColumn";
9
8
  import { KeyHoldListener } from "../services/KeyListener";
10
9
  import { RecordUpdateService } from "../services/RecordUpdateService/model/RecordUpdateService";
11
10
  import { Metadata } from "./Metadata";
11
+ import { IGridColumn } from "../interfaces/IGridColumn";
12
12
  export declare class Grid {
13
13
  private _props;
14
14
  private _dataset;
@@ -27,14 +27,14 @@ export declare class Grid {
27
27
  get isNavigationEnabled(): boolean;
28
28
  get isEditable(): boolean;
29
29
  get parameters(): import("../../interfaces").IGridParameters;
30
- get error(): boolean | undefined;
31
- get errorMessage(): string | undefined;
30
+ get error(): boolean;
31
+ get errorMessage(): string;
32
32
  get labels(): any;
33
- get dataset(): IDatasetProperty;
33
+ get dataset(): IDataset;
34
34
  get pcfContext(): ComponentFramework.Context<any, ComponentFramework.IEventBag>;
35
35
  get props(): IGrid;
36
36
  get columns(): IGridColumn[];
37
- get records(): IEntityRecord[];
37
+ get records(): IRecord[];
38
38
  get recordUpdateService(): RecordUpdateService;
39
39
  get sorting(): Sorting;
40
40
  get metadata(): Metadata;