@talxis/base-controls 1.2504.1 → 1.2504.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DatasetControl/DatasetControl.js +6 -10
- package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
- package/dist/components/DatasetControl/QuickFind/QuickFind.js +8 -2
- package/dist/components/DatasetControl/QuickFind/QuickFind.js.map +1 -1
- package/dist/components/DatasetControl/QuickFind/styles.d.ts +8 -0
- package/dist/components/DatasetControl/QuickFind/styles.js +15 -0
- package/dist/components/DatasetControl/QuickFind/styles.js.map +1 -0
- package/dist/components/DatasetControl/interfaces.d.ts +2 -1
- package/dist/components/DatasetControl/styles.d.ts +3 -0
- package/dist/components/DatasetControl/styles.js +3 -0
- package/dist/components/DatasetControl/styles.js.map +1 -1
- package/dist/components/Grid/Grid.js +1 -1
- package/dist/components/Grid/Grid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/AgGrid.d.ts +2 -1
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js +94 -58
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.d.ts +3 -1
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +68 -57
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/styles.d.ts +3 -3
- package/dist/components/Grid/core/components/AgGrid/styles.js +3 -9
- package/dist/components/Grid/core/components/AgGrid/styles.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/Cell.js +5 -13
- package/dist/components/Grid/core/components/Cell/Cell.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js +14 -2
- package/dist/components/Grid/core/components/Cell/CellContent/CellContent.js.map +1 -1
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js +9 -9
- package/dist/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js.map +1 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +16 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -1
- package/dist/components/Grid/core/model/Grid.d.ts +8 -4
- package/dist/components/Grid/core/model/Grid.js +32 -25
- package/dist/components/Grid/core/model/Grid.js.map +1 -1
- package/dist/components/Grid/filtering/model/Condition.d.ts +0 -1
- package/dist/components/Grid/filtering/model/Condition.js +5 -4
- package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
- package/dist/components/Grid/interfaces.d.ts +9 -1
- package/dist/components/Grid/paging/components/Paging/Paging.js +2 -2
- package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
- package/dist/components/Grid/sorting/Sorting.d.ts +1 -0
- package/dist/components/Grid/sorting/Sorting.js +5 -6
- package/dist/components/Grid/sorting/Sorting.js.map +1 -1
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js +12 -0
- package/dist/components/Grid/sorting/components/SortingContextualMenu/SortingContextualMenu.js.map +1 -1
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.d.ts +1 -0
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.js +2 -1
- package/dist/components/Grid/sorting/controllers/useColumnSortingController.js.map +1 -1
- package/dist/components/Grid/translations.d.ts +4 -0
- package/dist/components/Grid/translations.js +1 -0
- package/dist/components/Grid/translations.js.map +1 -1
- package/dist/components/GridCellRenderer/GridCellRenderer.js +4 -2
- package/dist/components/GridCellRenderer/GridCellRenderer.js.map +1 -1
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.js +8 -2
- package/dist/components/GridCellRenderer/OptionSet/OptionSet.js.map +1 -1
- package/dist/components/GridCellRenderer/interfaces.d.ts +1 -0
- package/dist/components/Lookup/Lookup.js +1 -1
- package/dist/components/Lookup/Lookup.js.map +1 -1
- package/dist/components/Lookup/hooks/useLookup.js +2 -1
- package/dist/components/Lookup/hooks/useLookup.js.map +1 -1
- package/dist/components/Lookup/interfaces.d.ts +8 -0
- package/dist/index.d.ts +24 -2
- package/package.json +4 -3
- package/dist/components/DatasetControl/ErrorBoundary.js +0 -33
- package/dist/components/DatasetControl/ErrorBoundary.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CellContent.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/CellContent/CellContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGridInstance } from '../../../hooks/useGridInstance';\nimport { ICellProps } from '../Cell';\nimport { getCellContentStyles } from './styles';\nimport { NestedControlRenderer } from '../../../../../NestedControlRenderer/NestedControlRenderer';\nimport { ControlTheme, IFluentDesignState } from '../../../../../../utils';\nimport { IComboBoxStyles, IDatePickerStyles, ITextFieldStyles, IToggleStyles, merge, useTheme } from '@fluentui/react';\nimport { useRerender } from '@talxis/react-components';\nimport { getJustifyContent } from '../styles';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { Client } from '@talxis/client-libraries';\nimport { AgGridContext } from '../../AgGrid/context';\n\nconst client = new Client();\n\nexport const CellContent = (props: ICellProps) => {\n const columnRef = React.useRef(props.baseColumn);\n const mountedRef = React.useRef(false);\n const valueRef = React.useRef(props.value);\n columnRef.current = props.baseColumn;\n valueRef.current = props.value;\n const rerender = useRerender();\n const grid = useGridInstance();\n const agGrid = React.useContext(AgGridContext);\n const record = props.data;\n const node = props.node;\n const themeRef = React.useRef(useTheme());\n themeRef.current = useTheme();\n const styles = React.useMemo(() => getCellContentStyles(valueRef.current.columnAlignment), [valueRef.current.columnAlignment]);\n //defer loading of the nested control to solve edge case where the changed values from onNotifyOutputChanged triggered by unmount would not be available straight away\n const [shouldRenderNestedControl, setShouldRenderNestedControl] = React.useState(false);\n const getColumn = () => {\n return columnRef.current;\n }\n\n const getFluentDesignLanguage = (fluentDesignLanguage?: IFluentDesignState) => {\n //@ts-ignore\n const formatting = agGrid.getCellFormatting(props);\n const mergedOverrides: any = merge({}, fluentDesignLanguage?.v8FluentOverrides ?? {}, formatting.themeOverride);\n const columnAlignment = valueRef.current.columnAlignment;\n const result = ControlTheme.GenerateFluentDesignLanguage(formatting.primaryColor, formatting.backgroundColor, formatting.textColor, {\n v8FluentOverrides: merge({},\n {\n semanticColors: {\n inputBorder: 'transparent',\n inputBorderHovered: 'transparent',\n inputBackground: formatting.backgroundColor,\n focusBorder: 'transparent',\n disabledBorder: 'transparent',\n inputFocusBorderAlt: 'transparent',\n errorText: 'transparent'\n\n },\n effects: {\n underlined: false\n },\n\n components: {\n 'TextField': {\n styles: {\n field: {\n textAlign: columnAlignment\n }\n \n } as ITextFieldStyles\n },\n 'ComboBox': {\n styles: {\n input: {\n textAlign: columnAlignment === 'right' ? 'right' : undefined,\n paddingRight: columnAlignment === 'right' ? 8 : undefined,\n }\n } as IComboBoxStyles\n },\n 'DatePicker': {\n styles: {\n root: {\n '.ms-TextField-field': {\n paddingRight: columnAlignment === 'right' ? 8 : undefined,\n textAlign: columnAlignment === 'right' ? 'right' : 'left'\n }\n } as any\n } as IDatePickerStyles\n },\n 'Toggle': {\n styles: {\n root: {\n justifyContent: getJustifyContent(columnAlignment)\n }\n } as IToggleStyles\n }\n }\n },\n mergedOverrides\n ),\n applicationTheme: fluentDesignLanguage?.applicationTheme\n })\n return result;\n }\n\n const onNotifyOutputChanged = (outputs: any) => {\n let isEditing = props.isCellEditor;\n //if we are not mounted, set editing to true so requestRender gets run\n //if this is not present, a PCF editor might trigger this too late and we would not see the current value in renderer until next\n if(!mountedRef.current) {\n isEditing = false;\n }\n grid.onNotifyOutputChanged(record, columnRef.current, isEditing, outputs.value, () => rerender())\n }\n const debouncedNotifyOutputChanged = useDebouncedCallback((outputs) => onNotifyOutputChanged(outputs), 100);\n\n React.useEffect(() => {\n mountedRef.current = true;\n setShouldRenderNestedControl(true);\n return () => {\n mountedRef.current = false;\n }\n }, []);\n if(!shouldRenderNestedControl) {\n return <></>\n }\n\n return <NestedControlRenderer\n context={grid.pcfContext}\n parameters={{\n ControlName: valueRef.current.customControl.name,\n LoadingType: 'shimmer',\n Bindings: grid.getBindings(record, getColumn(), valueRef.current.customControl),\n ControlStates: {\n isControlDisabled: !valueRef.current.editing\n },\n }}\n onNotifyOutputChanged={(outputs) => {\n //talxis portal does not have debounce for notifyoutput\n //Power Apps does a debounce of 100ms\n if(getColumn().oneClickEdit && client.isTalxisPortal()) {\n debouncedNotifyOutputChanged(outputs);\n }\n else {\n onNotifyOutputChanged(outputs);\n }\n }}\n onOverrideComponentProps={(componentProps) => {\n return {\n ...componentProps,\n rootContainerProps: {\n ...componentProps.rootContainerProps,\n className: styles.controlRoot\n },\n controlContainerProps: {\n className: styles.controlContainer\n },\n overridenControlContainerProps: {\n className: styles.overridenControlContainer\n },\n messageBarProps: {\n ...componentProps.messageBarProps,\n styles: {\n root: styles.errorMessageRoot,\n content: styles.errorMessageContent\n }\n },\n loadingProps: {\n ...componentProps.loadingProps,\n shimmerProps: {\n ...componentProps.loadingProps.shimmerProps,\n styles: {\n ...componentProps.loadingProps?.shimmerProps?.styles,\n shimmerWrapper: styles.shimmerWrapper\n }\n },\n containerProps: {\n ...componentProps.loadingProps?.containerProps,\n className: styles.loadingWrapper\n }\n },\n onOverrideRender: (control, isCustomPcfComponent, defaultRender) => {\n if(isCustomPcfComponent) {\n grid.setUsesNestedPcfs();\n }\n if(valueRef.current.customComponent) {\n return valueRef.current.customComponent.onRender(control.getProps(), themeRef.current, control.getContainer())\n }\n return defaultRender();\n },\n onOverrideUnmount: (control, defaultUnmount) => {\n if(valueRef.current.customComponent) {\n return valueRef.current.customComponent.onUnmount(control.getContainer());\n }\n //@ts-ignore - internal types\n //skip the unmounting for custom PCF's in Power Apps\n // PCF unmount in Power Apps causes other nested PCF's to reinitialize which causes flickering\n //umounting of nested PCF's happens on grid destroy to prevent memory leaks (currently done by refreshing the page as no better method was found)\n if(control.isMountedPcfComponent() && !grid.getClient().isTalxisPortal()) {\n return;\n }\n return defaultUnmount();\n },\n onOverrideControlProps: (controlProps) => {\n //here we always need to fetch the latest parameters\n //we still might have old one's cached in valueRef\n const columnInfo = record.getColumnInfo(getColumn().name);\n const parameters = columnInfo.ui.getControlParameters({\n ...controlProps.parameters,\n ...grid.getParameters(record, getColumn(), props.isCellEditor)\n })\n return { \n ...controlProps,\n context: {\n ...controlProps.context,\n mode: Object.create(controlProps.context.mode, {\n allocatedHeight: {\n value: node.rowHeight! - 1\n },\n\n }),\n parameters: parameters,\n fluentDesignLanguage: getFluentDesignLanguage(controlProps.context.fluentDesignLanguage)\n },\n parameters: parameters\n }\n }\n }\n }}\n />\n}\n"],"names":["_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CellContent.js","sources":["../../../../../../../src/components/Grid/core/components/Cell/CellContent/CellContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useGridInstance } from '../../../hooks/useGridInstance';\nimport { ICellProps } from '../Cell';\nimport { getCellContentStyles } from './styles';\nimport { NestedControlRenderer } from '../../../../../NestedControlRenderer/NestedControlRenderer';\nimport { ControlTheme, IFluentDesignState } from '../../../../../../utils';\nimport { IComboBoxStyles, IDatePickerStyles, ITextFieldStyles, IToggleStyles, merge, useTheme } from '@fluentui/react';\nimport { useRerender } from '@talxis/react-components';\nimport { getJustifyContent } from '../styles';\nimport { useDebouncedCallback } from 'use-debounce';\nimport { Client } from '@talxis/client-libraries';\nimport { AgGridContext } from '../../AgGrid/context';\n\nconst client = new Client();\n\nexport const CellContent = (props: ICellProps) => {\n const columnRef = React.useRef(props.baseColumn);\n const mountedRef = React.useRef(false);\n const valueRef = React.useRef(props.value);\n columnRef.current = props.baseColumn;\n valueRef.current = props.value;\n const rerender = useRerender();\n const grid = useGridInstance();\n const agGrid = React.useContext(AgGridContext);\n const record = props.data;\n const node = props.node;\n const themeRef = React.useRef(useTheme());\n themeRef.current = useTheme();\n const styles = React.useMemo(() => getCellContentStyles(valueRef.current.columnAlignment), [valueRef.current.columnAlignment]);\n //defer loading of the nested control to solve edge case where the changed values from onNotifyOutputChanged triggered by unmount would not be available straight away\n const [shouldRenderNestedControl, setShouldRenderNestedControl] = React.useState(false);\n const getColumn = () => {\n return columnRef.current;\n }\n\n const getFluentDesignLanguage = (fluentDesignLanguage?: IFluentDesignState) => {\n //@ts-ignore\n const formatting = agGrid.getCellFormatting(props);\n const mergedOverrides: any = merge({}, fluentDesignLanguage?.v8FluentOverrides ?? {}, formatting.themeOverride);\n const columnAlignment = valueRef.current.columnAlignment;\n const result = ControlTheme.GenerateFluentDesignLanguage(formatting.primaryColor, formatting.backgroundColor, formatting.textColor, {\n v8FluentOverrides: merge({},\n {\n semanticColors: {\n inputBorder: 'transparent',\n inputBorderHovered: 'transparent',\n inputBackground: formatting.backgroundColor,\n focusBorder: 'transparent',\n disabledBorder: 'transparent',\n inputFocusBorderAlt: 'transparent',\n errorText: 'transparent'\n\n },\n effects: {\n underlined: false\n },\n\n components: {\n 'TextField': {\n styles: {\n field: {\n textAlign: columnAlignment\n }\n\n } as ITextFieldStyles\n },\n 'ComboBox': {\n styles: {\n input: {\n textAlign: columnAlignment === 'right' ? 'right' : undefined,\n paddingRight: columnAlignment === 'right' ? 8 : undefined,\n }\n } as IComboBoxStyles\n },\n 'DatePicker': {\n styles: {\n root: {\n '.ms-TextField-field': {\n paddingRight: columnAlignment === 'right' ? 8 : undefined,\n textAlign: columnAlignment === 'right' ? 'right' : 'left'\n }\n } as any\n } as IDatePickerStyles\n },\n 'Toggle': {\n styles: {\n root: {\n justifyContent: getJustifyContent(columnAlignment)\n }\n } as IToggleStyles\n }\n }\n },\n mergedOverrides\n ),\n applicationTheme: fluentDesignLanguage?.applicationTheme\n })\n return result;\n }\n\n const onNotifyOutputChanged = (outputs: any) => {\n let isEditing = props.isCellEditor;\n //if we are not mounted, set editing to true so requestRender gets run\n //if this is not present, a PCF editor might trigger this too late and we would not see the current value in renderer until next\n if (!mountedRef.current) {\n isEditing = false;\n }\n grid.onNotifyOutputChanged(record, columnRef.current, isEditing, outputs.value, () => rerender())\n }\n const debouncedNotifyOutputChanged = useDebouncedCallback((outputs) => onNotifyOutputChanged(outputs), 100);\n\n React.useEffect(() => {\n mountedRef.current = true;\n setShouldRenderNestedControl(true);\n return () => {\n mountedRef.current = false;\n }\n }, []);\n\n if (!shouldRenderNestedControl) {\n return <></>\n }\n\n return <NestedControlRenderer\n context={grid.pcfContext}\n parameters={{\n ControlName: valueRef.current.customControl.name,\n LoadingType: 'shimmer',\n Bindings: grid.getBindings(record, getColumn(), valueRef.current.customControl),\n ControlStates: {\n isControlDisabled: !valueRef.current.editing\n },\n }}\n onNotifyOutputChanged={(outputs) => {\n //talxis portal does not have debounce for notifyoutput\n //Power Apps does a debounce of 100ms\n if (getColumn().oneClickEdit && client.isTalxisPortal()) {\n debouncedNotifyOutputChanged(outputs);\n }\n else {\n onNotifyOutputChanged(outputs);\n }\n }}\n onOverrideComponentProps={(componentProps) => {\n return {\n ...componentProps,\n rootContainerProps: {\n ...componentProps.rootContainerProps,\n className: styles.controlRoot\n },\n controlContainerProps: {\n className: styles.controlContainer\n },\n overridenControlContainerProps: {\n className: styles.overridenControlContainer\n },\n messageBarProps: {\n ...componentProps.messageBarProps,\n styles: {\n root: styles.errorMessageRoot,\n content: styles.errorMessageContent\n }\n },\n loadingProps: {\n ...componentProps.loadingProps,\n shimmerProps: {\n ...componentProps.loadingProps.shimmerProps,\n styles: {\n ...componentProps.loadingProps?.shimmerProps?.styles,\n shimmerWrapper: styles.shimmerWrapper\n }\n },\n containerProps: {\n ...componentProps.loadingProps?.containerProps,\n className: styles.loadingWrapper\n }\n },\n onOverrideRender: (control, isCustomPcfComponent, defaultRender) => {\n if (isCustomPcfComponent) {\n grid.setUsesNestedPcfs();\n }\n if (valueRef.current.customComponent) {\n const result = valueRef.current.customComponent.onRender(control.getProps(), themeRef.current, control.getContainer())\n //onRender can explicitly return null to force the grid to use native renderer\n //useful if the custom component is required only for renderer, but not for editor or vice versa\n if (result === null) {\n return defaultRender();\n }\n return result;\n }\n return defaultRender();\n },\n onOverrideUnmount: (control, defaultUnmount) => {\n if (valueRef.current.customComponent) {\n const result = valueRef.current.customComponent.onUnmount(control.getContainer());\n //onRender can explicitly return null to force the grid to use native renderer\n //useful if the custom component is required only for renderer, but not for editor or vice versa\n if (result === null) {\n return defaultUnmount();\n }\n return result;\n }\n //@ts-ignore - internal types\n //skip the unmounting for custom PCF's in Power Apps\n // PCF unmount in Power Apps causes other nested PCF's to reinitialize which causes flickering\n //umounting of nested PCF's happens on grid destroy to prevent memory leaks (currently done by refreshing the page as no better method was found)\n if (control.isMountedPcfComponent() && !grid.getClient().isTalxisPortal()) {\n return;\n }\n return defaultUnmount();\n },\n onOverrideControlProps: (controlProps) => {\n //here we always need to fetch the latest parameters\n //we still might have old one's cached in valueRef\n const columnInfo = record.getColumnInfo(getColumn().name);\n const parameters = columnInfo.ui.getControlParameters({\n ...controlProps.parameters,\n ...grid.getParameters(record, getColumn(), props.isCellEditor)\n })\n return {\n ...controlProps,\n context: {\n ...controlProps.context,\n mode: Object.create(controlProps.context.mode, {\n allocatedHeight: {\n value: node.rowHeight! - 1\n },\n\n }),\n parameters: parameters,\n fluentDesignLanguage: getFluentDesignLanguage(controlProps.context.fluentDesignLanguage)\n },\n parameters: parameters\n }\n }\n }\n }}\n />\n}\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -25,6 +25,14 @@ const GlobalCheckBox = () => {
|
|
|
25
25
|
}
|
|
26
26
|
return 'unchecked';
|
|
27
27
|
};
|
|
28
|
+
const onChange = (checked) => {
|
|
29
|
+
if (checked) {
|
|
30
|
+
selection.selectAll();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
selection.clear();
|
|
34
|
+
}
|
|
35
|
+
};
|
|
28
36
|
const checkboxState = getCheckBoxState();
|
|
29
37
|
useEffect(() => {
|
|
30
38
|
agGrid.setGlobalCheckBoxRenderer(() => rerender());
|
|
@@ -35,15 +43,7 @@ const GlobalCheckBox = () => {
|
|
|
35
43
|
return (jsx(ThemeProvider, { theme: theme, className: styles.root, children: selection.type === 'multiple' &&
|
|
36
44
|
jsx(Checkbox, { checked: checkboxState === 'checked', styles: {
|
|
37
45
|
checkbox: styles.checkbox
|
|
38
|
-
}, indeterminate: checkboxState === 'intermediate', onChange: (e, checked) =>
|
|
39
|
-
if (checked) {
|
|
40
|
-
selection.selectAll();
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
selection.clear();
|
|
44
|
-
}
|
|
45
|
-
agGrid.refreshRowSelection();
|
|
46
|
-
} }) }));
|
|
46
|
+
}, indeterminate: checkboxState === 'intermediate', onChange: (e, checked) => onChange(checked) }) }));
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
export { GlobalCheckBox };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalCheckbox.js","sources":["../../../../../../../../src/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.tsx"],"sourcesContent":["import { Checkbox, ThemeProvider, useTheme } from \"@fluentui/react\";\nimport { useContext, useEffect } from \"react\";\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport { getGlobalCheckboxStyles } from \"./styles\";\nimport { AgGridContext } from \"../../../AgGrid/context\";\nimport { Theming, useRerender, useThemeGenerator } from \"@talxis/react-components\";\n\n\nexport const GlobalCheckBox = () => {\n const grid = useGridInstance();\n const baseTheme = useTheme();\n const theme = useThemeGenerator(\n baseTheme.palette.themePrimary,\n baseTheme.semanticColors.bodyBackground,\n Theming.GetTextColorForBackground(baseTheme.semanticColors.bodyBackground),\n //@ts-ignore - typings\n grid.pcfContext.fluentDesignLanguage?.v8FluentOverrides\n )\n const styles = getGlobalCheckboxStyles(theme);\n const selection = grid.selection;\n const agGrid = useContext(AgGridContext);\n const rerender = useRerender();\n\n const getCheckBoxState = () => {\n if (grid.selection.allRecordsSelected) {\n return 'checked';\n }\n if (grid.dataset.getSelectedRecordIds().length > 0) {\n return 'intermediate';\n }\n return 'unchecked';\n }\n\n const checkboxState = getCheckBoxState();\n\n useEffect(() => {\n agGrid.setGlobalCheckBoxRenderer(() => rerender())\n }, []);\n\n if (grid.dataset.sortedRecordIds.length === 0) {\n return <></>\n }\n return (\n <ThemeProvider theme={theme} className={styles.root}>\n {selection.type === 'multiple' &&\n <Checkbox\n checked={checkboxState === 'checked'}\n styles={{\n checkbox: styles.checkbox\n }}\n indeterminate={checkboxState === 'intermediate'}\n onChange={(e, checked) =>
|
|
1
|
+
{"version":3,"file":"GlobalCheckbox.js","sources":["../../../../../../../../src/components/Grid/core/components/ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.tsx"],"sourcesContent":["import { Checkbox, ThemeProvider, useTheme } from \"@fluentui/react\";\nimport { useContext, useEffect } from \"react\";\nimport { useGridInstance } from \"../../../../hooks/useGridInstance\";\nimport { getGlobalCheckboxStyles } from \"./styles\";\nimport { AgGridContext } from \"../../../AgGrid/context\";\nimport { Theming, useRerender, useThemeGenerator } from \"@talxis/react-components\";\n\n\nexport const GlobalCheckBox = () => {\n const grid = useGridInstance();\n const baseTheme = useTheme();\n const theme = useThemeGenerator(\n baseTheme.palette.themePrimary,\n baseTheme.semanticColors.bodyBackground,\n Theming.GetTextColorForBackground(baseTheme.semanticColors.bodyBackground),\n //@ts-ignore - typings\n grid.pcfContext.fluentDesignLanguage?.v8FluentOverrides\n )\n const styles = getGlobalCheckboxStyles(theme);\n const selection = grid.selection;\n const agGrid = useContext(AgGridContext);\n const rerender = useRerender();\n\n const getCheckBoxState = () => {\n if (grid.selection.allRecordsSelected) {\n return 'checked';\n }\n if (grid.dataset.getSelectedRecordIds().length > 0) {\n return 'intermediate';\n }\n return 'unchecked';\n }\n\n const onChange = (checked?: boolean) => {\n if (checked) {\n selection.selectAll();\n }\n else {\n selection.clear();\n }\n }\n\n const checkboxState = getCheckBoxState();\n\n useEffect(() => {\n agGrid.setGlobalCheckBoxRenderer(() => rerender())\n }, []);\n\n if (grid.dataset.sortedRecordIds.length === 0) {\n return <></>\n }\n return (\n <ThemeProvider theme={theme} className={styles.root}>\n {selection.type === 'multiple' &&\n <Checkbox\n checked={checkboxState === 'checked'}\n styles={{\n checkbox: styles.checkbox\n }}\n indeterminate={checkboxState === 'intermediate'}\n onChange={(e, checked) => onChange(checked)} />\n }\n </ThemeProvider>\n )\n};"],"names":["_jsx"],"mappings":";;;;;;;;AAQO,MAAM,cAAc,GAAG,MAAK;AAC/B,IAAA,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,iBAAiB,CAC3B,SAAS,CAAC,OAAO,CAAC,YAAY,EAC9B,SAAS,CAAC,cAAc,CAAC,cAAc,EACvC,OAAO,CAAC,yBAAyB,CAAC,SAAS,CAAC,cAAc,CAAC,cAAc,CAAC;;AAE1E,IAAA,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,iBAAiB,CAC1D,CAAA;AACD,IAAA,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACjC,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AACzC,IAAA,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,gBAAgB,GAAG,MAAK;AAC1B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;AACnC,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChD,YAAA,OAAO,cAAc,CAAC;AACzB,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;AACvB,KAAC,CAAA;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,OAAiB,KAAI;AACnC,QAAA,IAAI,OAAO,EAAE;YACT,SAAS,CAAC,SAAS,EAAE,CAAC;AACzB,SAAA;AACI,aAAA;YACD,SAAS,CAAC,KAAK,EAAE,CAAC;AACrB,SAAA;AACL,KAAC,CAAA;AAED,IAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,SAAS,CAAC,MAAK;QACX,MAAM,CAAC,yBAAyB,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAA;KACrD,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3C,QAAA,OAAOA,iBAAK,CAAA;AACf,KAAA;AACD,IAAA,QACIA,GAAC,CAAA,aAAa,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAA,QAAA,EAC9C,SAAS,CAAC,IAAI,KAAK,UAAU;YAC1BA,GAAC,CAAA,QAAQ,IACL,OAAO,EAAE,aAAa,KAAK,SAAS,EACpC,MAAM,EAAE;oBACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC5B,EACD,aAAa,EAAE,aAAa,KAAK,cAAc,EAC/C,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAC,OAAO,CAAC,EAAA,CAAI,EAE3C,CAAA,EACnB;AACL;;;;"}
|
|
@@ -174,6 +174,19 @@ const ChangeGrid = (props) => {
|
|
|
174
174
|
...grid.pcfContext.parameters,
|
|
175
175
|
Grid: dataset,
|
|
176
176
|
},
|
|
177
|
+
}, onOverrideComponentProps: (props) => {
|
|
178
|
+
return {
|
|
179
|
+
...props,
|
|
180
|
+
headerProps: {
|
|
181
|
+
...props.headerProps,
|
|
182
|
+
headerContainerProps: {
|
|
183
|
+
...props.headerProps.headerContainerProps,
|
|
184
|
+
style: {
|
|
185
|
+
display: 'none'
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
};
|
|
177
190
|
}, parameters: {
|
|
178
191
|
Grid: dataset,
|
|
179
192
|
EnablePagination: {
|
|
@@ -198,6 +211,9 @@ const ChangeGrid = (props) => {
|
|
|
198
211
|
SelectableRows: {
|
|
199
212
|
raw: "none",
|
|
200
213
|
},
|
|
214
|
+
Height: {
|
|
215
|
+
raw: '160px'
|
|
216
|
+
}
|
|
201
217
|
} }) }));
|
|
202
218
|
};
|
|
203
219
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangeGrid.js","sources":["../../../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { useGridInstance } from \"../../../../../../hooks/useGridInstance\";\nimport {\n Dataset,\n DataTypes,\n IColumn,\n IDataset,\n IRecordChange,\n MemoryDataProvider,\n} from \"@talxis/client-libraries\";\nimport { DatasetControl } from \"../../../../../../../../DatasetControl\";\nimport { useTheme } from \"@fluentui/react\";\nimport { getChangeGridStyles } from \"./styles\";\nimport React from \"react\";\nimport { AgGridContext } from \"../../../../../AgGrid/context\";\n\ninterface IChangeGrid {\n recordChange: IRecordChange;\n onDatasetReady: (dataset: IDataset) => void;\n onDatasetDestroyed: (dataset: IDataset) => void;\n onIsSaving: (value: boolean) => void;\n onRequestRender: () => void;\n}\n\nexport const ChangeGrid = (props: IChangeGrid) => {\n const fieldChangesRef = useRef(props.recordChange.columns);\n fieldChangesRef.current = props.recordChange.columns;\n const baseRecord = props.recordChange.record;\n const grid = useGridInstance();\n const changedColumns = fieldChangesRef.current.map((change) => {\n return grid.dataset.columns.find((x) => change.columnName === x.name)!;\n });\n const agGridContext = React.useContext(AgGridContext);\n\n const recordPrimaryName = (() => {\n let result;\n const primaryColumn = grid.dataset.columns.find((col) => col.isPrimary);\n if (primaryColumn) {\n result = baseRecord.getFormattedValue(primaryColumn.name);\n } else {\n const firstTextColumn = grid.dataset.columns.find(\n (col) => col.dataType === DataTypes.SingleLineText\n );\n if (firstTextColumn) {\n result = baseRecord.getFormattedValue(firstTextColumn.name);\n }\n }\n return result ?? grid.labels[\"no-name\"]();\n })();\n\n const theme = useTheme();\n const styles = useMemo(() => getChangeGridStyles(theme, recordPrimaryName), [theme, recordPrimaryName]);\n\n useEffect(() => {\n props.onDatasetReady(dataset);\n return () => {\n props.onDatasetDestroyed(dataset);\n agGridContext.rerender();\n }\n }, []);\n\n const getColumns = (): IColumn[] => {\n const virtualColumns: IColumn[] = [\n {\n name: \"id__virtual\",\n alias: \"id__virtual\",\n visualSizeFactor: 0,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 0,\n isHidden: true,\n },\n {\n name: \"valueDesc__virtual\",\n alias: \"valueDesc__virtual\",\n visualSizeFactor: 150,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 1,\n },\n ];\n return [...virtualColumns, ...changedColumns];\n };\n\n const getDataset = () => {\n const memoryProvider = new MemoryDataProvider(\n [\n {\n id__virtual: \"original\",\n 'valueDesc__virtual': grid.labels[\"original-value\"](),\n },\n {\n id__virtual: \"new\",\n 'valueDesc__virtual': grid.labels[\"new-value\"](),\n },\n ], {\n PrimaryIdAttribute: \"id__virtual\"\n }\n );\n memoryProvider.setColumns(getColumns());\n const dataset = new Dataset(memoryProvider);\n dataset.isValid = () => {\n return baseRecord.isValid()\n }\n grid.dataset.linking.getLinkedEntities().map(x => dataset.linking.addLinkedEntity(x))\n\n dataset.addEventListener('onRecordLoaded', (record) => {\n const recordId = record.getRecordId();\n record.expressions.ui.setCustomFormattingExpression('valueDesc__virtual', (cellTheme) => {\n return {\n themeOverride: {\n fonts: {\n medium: {\n fontWeight: 600\n }\n }\n }\n }\n })\n changedColumns.map(col => {\n const change = fieldChangesRef.current.find(x => x.columnName === col.name);\n record.expressions?.setCurrencySymbolExpression(col.name, () => baseRecord.getCurrencySymbol?.(col.name) ?? \"\");\n //we need to store the previous values somewhere, in changes?\n //record.expressions?.ui.setCustomFormattingExpression(col.name, (cellTheme) => baseRecord.getColumnInfo(col.name).ui.getCustomFormatting(cellTheme));\n record.expressions?.ui.setControlParametersExpression(col.name, (parameters) => baseRecord.getColumnInfo(col.name).ui.getControlParameters(parameters));\n record.expressions?.ui.setCustomControlsExpression(col.name, (defaultCustomControls) => baseRecord.getColumnInfo(col.name).ui.getCustomControls(defaultCustomControls));\n record.expressions?.ui.setCustomControlComponentExpression(col.name, () => baseRecord.getColumnInfo(col.name).ui.getCustomControlComponent())\n if (recordId === 'new') {\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n if(!change) {\n record.setValue(col.name, record.getValue(col.name))\n }\n else {\n record.setValue(col.name, change.currentValue);\n }\n record.expressions?.ui.setNotificationsExpression?.(col.name, () => {\n return [\n {\n uniqueId: \"clear\",\n title: grid.labels[\"saving-discard\"](),\n iconName: \"EraseTool\",\n compact: true,\n messages: [],\n actions: [\n {\n actions: [\n () => {\n baseRecord.clearChanges?.(col.name);\n record.setValue(col.name, baseRecord.getValue(col.name))\n },\n ],\n },\n ],\n }\n ]\n })\n record.expressions?.setValidationExpression?.(col.name, () => baseRecord.getColumnInfo(col.name))\n }\n else if (recordId === 'original') {\n record.expressions?.setDisabledExpression?.(col.name, () => true);\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n }\n });\n })\n\n dataset.addEventListener('onRecordColumnValueChanged', (record, columnName) => {\n baseRecord.setValue(columnName, record.getValue(columnName)); \n props.onRequestRender(); \n })\n dataset.addEventListener('onChangesCleared', () => {\n baseRecord.clearChanges?.();\n props.onRequestRender();\n })\n dataset.addEventListener('onRecordSave', async () => {\n props.onIsSaving(true);\n await baseRecord.save();\n baseRecord.clearChanges?.();\n props.onIsSaving(false);\n props.onRequestRender();\n })\n return dataset;\n };\n const dataset = useMemo(() => getDataset(), []);\n return (\n <div className={styles.root}>\n <DatasetControl\n context={{\n ...grid.pcfContext,\n parameters: {\n ...grid.pcfContext.parameters,\n Grid: dataset,\n },\n }}\n parameters={{\n Grid: dataset,\n EnablePagination: {\n raw: false,\n },\n EnableFiltering: {\n raw: false,\n },\n EnableEditing: {\n raw: true,\n },\n EnableNavigation: {\n raw: false,\n },\n EnableOptionSetColors: grid.parameters.EnableOptionSetColors,\n EnableSorting: {\n raw: false,\n },\n EnableChangeEditor: {\n raw: false\n },\n SelectableRows: {\n raw: \"none\",\n },\n }}\n />\n </div>\n );\n};\n"],"names":["React","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChangeGrid.js","sources":["../../../../../../../../../../src/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { useGridInstance } from \"../../../../../../hooks/useGridInstance\";\nimport {\n Dataset,\n DataTypes,\n IColumn,\n IDataset,\n IRecordChange,\n MemoryDataProvider,\n} from \"@talxis/client-libraries\";\nimport { DatasetControl } from \"../../../../../../../../DatasetControl\";\nimport { useTheme } from \"@fluentui/react\";\nimport { getChangeGridStyles } from \"./styles\";\nimport React from \"react\";\nimport { AgGridContext } from \"../../../../../AgGrid/context\";\n\ninterface IChangeGrid {\n recordChange: IRecordChange;\n onDatasetReady: (dataset: IDataset) => void;\n onDatasetDestroyed: (dataset: IDataset) => void;\n onIsSaving: (value: boolean) => void;\n onRequestRender: () => void;\n}\n\nexport const ChangeGrid = (props: IChangeGrid) => {\n const fieldChangesRef = useRef(props.recordChange.columns);\n fieldChangesRef.current = props.recordChange.columns;\n const baseRecord = props.recordChange.record;\n const grid = useGridInstance();\n const changedColumns = fieldChangesRef.current.map((change) => {\n return grid.dataset.columns.find((x) => change.columnName === x.name)!;\n });\n const agGridContext = React.useContext(AgGridContext);\n\n const recordPrimaryName = (() => {\n let result;\n const primaryColumn = grid.dataset.columns.find((col) => col.isPrimary);\n if (primaryColumn) {\n result = baseRecord.getFormattedValue(primaryColumn.name);\n } else {\n const firstTextColumn = grid.dataset.columns.find(\n (col) => col.dataType === DataTypes.SingleLineText\n );\n if (firstTextColumn) {\n result = baseRecord.getFormattedValue(firstTextColumn.name);\n }\n }\n return result ?? grid.labels[\"no-name\"]();\n })();\n\n const theme = useTheme();\n const styles = useMemo(() => getChangeGridStyles(theme, recordPrimaryName), [theme, recordPrimaryName]);\n\n useEffect(() => {\n props.onDatasetReady(dataset);\n return () => {\n props.onDatasetDestroyed(dataset);\n agGridContext.rerender();\n }\n }, []);\n\n const getColumns = (): IColumn[] => {\n const virtualColumns: IColumn[] = [\n {\n name: \"id__virtual\",\n alias: \"id__virtual\",\n visualSizeFactor: 0,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 0,\n isHidden: true,\n },\n {\n name: \"valueDesc__virtual\",\n alias: \"valueDesc__virtual\",\n visualSizeFactor: 150,\n dataType: DataTypes.SingleLineText,\n displayName: \"\",\n order: 1,\n },\n ];\n return [...virtualColumns, ...changedColumns];\n };\n\n const getDataset = () => {\n const memoryProvider = new MemoryDataProvider(\n [\n {\n id__virtual: \"original\",\n 'valueDesc__virtual': grid.labels[\"original-value\"](),\n },\n {\n id__virtual: \"new\",\n 'valueDesc__virtual': grid.labels[\"new-value\"](),\n },\n ], {\n PrimaryIdAttribute: \"id__virtual\"\n }\n );\n memoryProvider.setColumns(getColumns());\n const dataset = new Dataset(memoryProvider);\n dataset.isValid = () => {\n return baseRecord.isValid()\n }\n grid.dataset.linking.getLinkedEntities().map(x => dataset.linking.addLinkedEntity(x))\n\n dataset.addEventListener('onRecordLoaded', (record) => {\n const recordId = record.getRecordId();\n record.expressions.ui.setCustomFormattingExpression('valueDesc__virtual', (cellTheme) => {\n return {\n themeOverride: {\n fonts: {\n medium: {\n fontWeight: 600\n }\n }\n }\n }\n })\n changedColumns.map(col => {\n const change = fieldChangesRef.current.find(x => x.columnName === col.name);\n record.expressions?.setCurrencySymbolExpression(col.name, () => baseRecord.getCurrencySymbol?.(col.name) ?? \"\");\n //we need to store the previous values somewhere, in changes?\n //record.expressions?.ui.setCustomFormattingExpression(col.name, (cellTheme) => baseRecord.getColumnInfo(col.name).ui.getCustomFormatting(cellTheme));\n record.expressions?.ui.setControlParametersExpression(col.name, (parameters) => baseRecord.getColumnInfo(col.name).ui.getControlParameters(parameters));\n record.expressions?.ui.setCustomControlsExpression(col.name, (defaultCustomControls) => baseRecord.getColumnInfo(col.name).ui.getCustomControls(defaultCustomControls));\n record.expressions?.ui.setCustomControlComponentExpression(col.name, () => baseRecord.getColumnInfo(col.name).ui.getCustomControlComponent())\n if (recordId === 'new') {\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n if(!change) {\n record.setValue(col.name, record.getValue(col.name))\n }\n else {\n record.setValue(col.name, change.currentValue);\n }\n record.expressions?.ui.setNotificationsExpression?.(col.name, () => {\n return [\n {\n uniqueId: \"clear\",\n title: grid.labels[\"saving-discard\"](),\n iconName: \"EraseTool\",\n compact: true,\n messages: [],\n actions: [\n {\n actions: [\n () => {\n baseRecord.clearChanges?.(col.name);\n record.setValue(col.name, baseRecord.getValue(col.name))\n },\n ],\n },\n ],\n }\n ]\n })\n record.expressions?.setValidationExpression?.(col.name, () => baseRecord.getColumnInfo(col.name))\n }\n else if (recordId === 'original') {\n record.expressions?.setDisabledExpression?.(col.name, () => true);\n record.expressions?.setValueExpression?.(col.name, () => {\n //this happens if we have removed a change\n if (!change) {\n return baseRecord.getValue(col.name);\n }\n return change.originalValue;\n })\n }\n });\n })\n\n dataset.addEventListener('onRecordColumnValueChanged', (record, columnName) => {\n baseRecord.setValue(columnName, record.getValue(columnName)); \n props.onRequestRender(); \n })\n dataset.addEventListener('onChangesCleared', () => {\n baseRecord.clearChanges?.();\n props.onRequestRender();\n })\n dataset.addEventListener('onRecordSave', async () => {\n props.onIsSaving(true);\n await baseRecord.save();\n baseRecord.clearChanges?.();\n props.onIsSaving(false);\n props.onRequestRender();\n })\n return dataset;\n };\n const dataset = useMemo(() => getDataset(), []);\n return (\n <div className={styles.root}>\n <DatasetControl\n context={{\n ...grid.pcfContext,\n parameters: {\n ...grid.pcfContext.parameters,\n Grid: dataset,\n },\n }}\n onOverrideComponentProps={(props) => {\n return {\n ...props,\n headerProps: {\n ...props.headerProps,\n headerContainerProps: {\n ...props.headerProps.headerContainerProps,\n style: {\n display: 'none'\n }\n }\n }\n }\n }}\n parameters={{\n Grid: dataset,\n EnablePagination: {\n raw: false,\n },\n EnableFiltering: {\n raw: false,\n },\n EnableEditing: {\n raw: true,\n },\n EnableNavigation: {\n raw: false,\n },\n EnableOptionSetColors: grid.parameters.EnableOptionSetColors,\n EnableSorting: {\n raw: false,\n },\n EnableChangeEditor: {\n raw: false\n },\n SelectableRows: {\n raw: \"none\",\n },\n Height: {\n raw: '160px'\n }\n }}\n />\n </div>\n );\n};\n"],"names":["React","_jsx"],"mappings":"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"}
|
|
@@ -8,6 +8,10 @@ import { Sorting } from "../../sorting/Sorting";
|
|
|
8
8
|
import { KeyHoldListener } from "../services/KeyListener";
|
|
9
9
|
import { IGridColumn } from "../interfaces/IGridColumn";
|
|
10
10
|
import { IBinding } from "../../../NestedControlRenderer/interfaces";
|
|
11
|
+
export interface IGridHeightSettings {
|
|
12
|
+
isAutoHeightEnabled: boolean;
|
|
13
|
+
height?: string;
|
|
14
|
+
}
|
|
11
15
|
export declare class Grid {
|
|
12
16
|
private _props;
|
|
13
17
|
private _dataset;
|
|
@@ -18,11 +22,10 @@ export declare class Grid {
|
|
|
18
22
|
private _shouldRerender;
|
|
19
23
|
private _records;
|
|
20
24
|
private _dependencies;
|
|
21
|
-
private _maxHeight;
|
|
22
|
-
private _minHeight;
|
|
23
25
|
private _initialPageSize;
|
|
24
26
|
private _usesNestedPcfs;
|
|
25
27
|
private _client;
|
|
28
|
+
private _isUpdateScheduled;
|
|
26
29
|
readonly keyHoldListener: KeyHoldListener;
|
|
27
30
|
constructor(props: IGrid, labels: any, keyHoldListener: KeyHoldListener);
|
|
28
31
|
get isNavigationEnabled(): boolean;
|
|
@@ -45,11 +48,13 @@ export declare class Grid {
|
|
|
45
48
|
get state(): ComponentFramework.Dictionary | undefined;
|
|
46
49
|
get enableOptionSetColors(): boolean;
|
|
47
50
|
get linking(): ComponentFramework.PropertyHelper.DataSetApi.Linking;
|
|
51
|
+
get isZebraEnabled(): boolean;
|
|
48
52
|
get inlineRibbonButtonIds(): string[] | undefined;
|
|
49
53
|
get rowHeight(): number;
|
|
50
|
-
|
|
54
|
+
getHeightSettings(): IGridHeightSettings;
|
|
51
55
|
getClient(): Client;
|
|
52
56
|
updateDependencies(props: IGrid): void;
|
|
57
|
+
isUpdateScheduled(): boolean;
|
|
53
58
|
refreshColumns(): Promise<IGridColumn[]>;
|
|
54
59
|
getTotalVisibleColumnsWidth(): number;
|
|
55
60
|
onNotifyOutputChanged(record: IRecord, column: IColumn, editing: boolean, newValue: any, rerenderCell: () => void): void;
|
|
@@ -66,6 +71,5 @@ export declare class Grid {
|
|
|
66
71
|
private _isColumnRequired;
|
|
67
72
|
private _isColumnSortable;
|
|
68
73
|
private _isColumnFilterable;
|
|
69
|
-
private _getMaxHeight;
|
|
70
74
|
private _getColumnEntityName;
|
|
71
75
|
}
|
|
@@ -15,9 +15,9 @@ class Grid {
|
|
|
15
15
|
this._previousRecordsReference = {};
|
|
16
16
|
this._shouldRerender = false;
|
|
17
17
|
this._records = [];
|
|
18
|
-
this._minHeight = 150;
|
|
19
18
|
this._usesNestedPcfs = false;
|
|
20
19
|
this._client = new Client();
|
|
20
|
+
this._isUpdateScheduled = false;
|
|
21
21
|
this._props = props;
|
|
22
22
|
this._dataset = props.parameters.Grid;
|
|
23
23
|
this._pcfContext = props.context;
|
|
@@ -30,7 +30,6 @@ class Grid {
|
|
|
30
30
|
paging: new Paging(this),
|
|
31
31
|
};
|
|
32
32
|
this._initialPageSize = this.paging.pageSize;
|
|
33
|
-
this._maxHeight = this._getMaxHeight();
|
|
34
33
|
}
|
|
35
34
|
;
|
|
36
35
|
get isNavigationEnabled() {
|
|
@@ -94,6 +93,9 @@ class Grid {
|
|
|
94
93
|
get linking() {
|
|
95
94
|
return this.dataset.linking;
|
|
96
95
|
}
|
|
96
|
+
get isZebraEnabled() {
|
|
97
|
+
return this.parameters.EnableZebra?.raw !== false;
|
|
98
|
+
}
|
|
97
99
|
get inlineRibbonButtonIds() {
|
|
98
100
|
const idString = this.parameters.InlineRibbonButtonIds?.raw;
|
|
99
101
|
if (!idString) {
|
|
@@ -108,21 +110,22 @@ class Grid {
|
|
|
108
110
|
}
|
|
109
111
|
return height;
|
|
110
112
|
}
|
|
111
|
-
|
|
112
|
-
let height = this._maxHeight;
|
|
113
|
+
getHeightSettings() {
|
|
113
114
|
if (this.parameters.Height?.raw) {
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
else if (this._records.length <= this._initialPageSize) {
|
|
120
|
-
height = this._records.length * this.rowHeight;
|
|
115
|
+
return {
|
|
116
|
+
isAutoHeightEnabled: false,
|
|
117
|
+
height: this.parameters.Height?.raw
|
|
118
|
+
};
|
|
121
119
|
}
|
|
122
|
-
if (
|
|
123
|
-
|
|
120
|
+
if (this._records.length <= 50) {
|
|
121
|
+
return {
|
|
122
|
+
isAutoHeightEnabled: true
|
|
123
|
+
};
|
|
124
124
|
}
|
|
125
|
-
return
|
|
125
|
+
return {
|
|
126
|
+
isAutoHeightEnabled: false,
|
|
127
|
+
height: `${this.rowHeight * 50}px`
|
|
128
|
+
};
|
|
126
129
|
}
|
|
127
130
|
getClient() {
|
|
128
131
|
return this._client;
|
|
@@ -134,12 +137,19 @@ class Grid {
|
|
|
134
137
|
if (this._previousRecordsReference !== this._dataset.records) {
|
|
135
138
|
this._records = Object.values(this._dataset.records);
|
|
136
139
|
this._previousRecordsReference = this._dataset.records;
|
|
140
|
+
this._isUpdateScheduled = true;
|
|
141
|
+
queueMicrotask(() => {
|
|
142
|
+
this._isUpdateScheduled = false;
|
|
143
|
+
});
|
|
137
144
|
}
|
|
138
145
|
Object.values(this._dependencies).map(dep => {
|
|
139
146
|
dep.onDependenciesUpdated();
|
|
140
147
|
});
|
|
141
148
|
this._shouldRerender = !this.shouldRerender;
|
|
142
149
|
}
|
|
150
|
+
isUpdateScheduled() {
|
|
151
|
+
return this._isUpdateScheduled;
|
|
152
|
+
}
|
|
143
153
|
async refreshColumns() {
|
|
144
154
|
const gridColumns = [];
|
|
145
155
|
for (const column of this._dataset.columns) {
|
|
@@ -356,7 +366,10 @@ class Grid {
|
|
|
356
366
|
this.keyHoldListener.destroy();
|
|
357
367
|
//@ts-ignore - internal types
|
|
358
368
|
//if any nested PCF has been loaded and we are in Power Apps, do a page refresh to prevent memory leaks
|
|
359
|
-
|
|
369
|
+
//this should be moved to dataset control
|
|
370
|
+
if (this._usesNestedPcfs && !this._client.isTalxisPortal()) {
|
|
371
|
+
location.reload();
|
|
372
|
+
}
|
|
360
373
|
}
|
|
361
374
|
_getBindingValue(record, column) {
|
|
362
375
|
let value = record.getValue(column.name);
|
|
@@ -440,23 +453,17 @@ class Grid {
|
|
|
440
453
|
return !column.disableSorting;
|
|
441
454
|
}
|
|
442
455
|
_isColumnFilterable(column) {
|
|
443
|
-
if (column.name.endsWith('__virtual')) {
|
|
444
|
-
return false;
|
|
445
|
-
}
|
|
446
456
|
if (this.props.parameters.EnableFiltering?.raw === false) {
|
|
447
457
|
return false;
|
|
448
458
|
}
|
|
449
459
|
if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {
|
|
450
460
|
return false;
|
|
451
461
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
let maxHeight = this._initialPageSize * this.rowHeight;
|
|
456
|
-
if (maxHeight > 600) {
|
|
457
|
-
maxHeight = 600;
|
|
462
|
+
//by default, do not make virtual columns filterable unless explicitly set
|
|
463
|
+
if (column.name.endsWith('__virtual')) {
|
|
464
|
+
return column.metadata?.isFilterable ?? false;
|
|
458
465
|
}
|
|
459
|
-
return
|
|
466
|
+
return column.metadata?.isFilterable ?? true;
|
|
460
467
|
}
|
|
461
468
|
_getColumnEntityName(columnName) {
|
|
462
469
|
const entityAliasName = Attribute.GetLinkedEntityAlias(columnName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sources":["../../../../../src/components/Grid/core/model/Grid.ts"],"sourcesContent":["import { Attribute, Client, Constants, DataType, DataTypes, IColumn, ICustomColumnControl, IDataset, IRecord, Sanitizer } from \"@talxis/client-libraries\";\nimport { Filtering } from \"../../filtering/model/Filtering\";\nimport { IGrid } from \"../../interfaces\";\nimport { Paging } from \"../../paging/model/Paging\";\nimport { Selection } from \"../../selection/model/Selection\";\nimport { Sorting } from \"../../sorting/Sorting\";\nimport { KeyHoldListener } from \"../services/KeyListener\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { BaseControls } from \"../../../../utils\";\nimport { IBinding } from \"../../../NestedControlRenderer/interfaces\";\nimport { merge } from \"merge-anything\";\n\nconst DEFAULT_ROW_HEIGHT = 42;\n\nexport class Grid {\n private _props: IGrid;\n private _dataset: IDataset\n private _pcfContext: ComponentFramework.Context<any>;\n private _columns: IGridColumn[] = [];\n //used for optimization\n private _previousRecordsReference: {\n [id: string]: IRecord;\n } = {};\n //TODO: fix types\n private _labels: any;\n private _shouldRerender: boolean = false;\n private _records: IRecord[] = [];\n //TODO: the dependencies might not have fully loaded grid\n //need to make sure that the grid is initialized before creating them\n private _dependencies: {\n filtering: Filtering,\n sorting: Sorting,\n selection: Selection,\n paging: Paging,\n };\n private _maxHeight: number;\n private _minHeight: number = 150;\n private _initialPageSize: number;\n private _usesNestedPcfs: boolean = false;\n private _client = new Client();\n\n public readonly keyHoldListener: KeyHoldListener;\n\n constructor(props: IGrid, labels: any, keyHoldListener: KeyHoldListener) {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n this._labels = labels;\n this.keyHoldListener = keyHoldListener;\n\n this._dependencies = {\n filtering: new Filtering(this),\n selection: new Selection(this),\n sorting: new Sorting(this),\n paging: new Paging(this),\n }\n this._initialPageSize = this.paging.pageSize;\n this._maxHeight = this._getMaxHeight();\n\n };\n public get isNavigationEnabled() {\n //enabled by default\n return this.parameters.EnableNavigation?.raw !== false;\n }\n public get isEditable() {\n return this._columns.find(x => x.isEditable) ? true : false;\n }\n public get parameters() {\n return this._props.parameters\n }\n public get error() {\n return this._dataset.error;\n }\n public get errorMessage() {\n return this._dataset.errorMessage\n }\n public get labels() {\n return this._labels;\n }\n public get dataset() {\n return this._dataset;\n }\n public get pcfContext() {\n return this._pcfContext;\n }\n public get props() {\n return this._props;\n }\n public get columns() {\n return this._columns;\n }\n public get records() {\n return this._records\n }\n public get sorting() {\n return this._dependencies.sorting;\n }\n public get filtering() {\n return this._dependencies.filtering;\n }\n public get selection() {\n return this._dependencies.selection;\n }\n public get paging() {\n return this._dependencies.paging;\n }\n public get shouldRerender() {\n return this._shouldRerender;\n }\n public get loading() {\n return this._dataset.loading;\n }\n public get state() {\n return this._props.state;\n }\n public get enableOptionSetColors() {\n return this.parameters.EnableOptionSetColors?.raw === true;\n }\n public get linking() {\n return this.dataset.linking;\n }\n public get inlineRibbonButtonIds() {\n const idString = this.parameters.InlineRibbonButtonIds?.raw;\n if (!idString) {\n return undefined;\n }\n return idString.split(',');\n }\n\n public get rowHeight() {\n let height = this.parameters.RowHeight?.raw;\n if (!height) {\n height = DEFAULT_ROW_HEIGHT;\n }\n return height;\n }\n\n public get height() {\n let height = this._maxHeight;\n if (this.parameters.Height?.raw) {\n return this.parameters.Height?.raw;\n }\n if (this._records.length === 0) {\n height = this._minHeight;\n }\n else if (this._records.length <= this._initialPageSize) {\n height = this._records.length * this.rowHeight;\n }\n if (height > this._maxHeight) {\n height = this._maxHeight;\n }\n return `${height}px`;\n\n }\n\n public getClient() {\n return this._client;\n }\n\n public updateDependencies(props: IGrid): void {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n if (this._previousRecordsReference !== this._dataset.records) {\n this._records = Object.values(this._dataset.records);\n this._previousRecordsReference = this._dataset.records;\n }\n Object.values(this._dependencies).map(dep => {\n dep.onDependenciesUpdated()\n })\n this._shouldRerender = !this.shouldRerender;\n }\n public async refreshColumns(): Promise<IGridColumn[]> {\n const gridColumns: IGridColumn[] = [];\n for (const column of this._dataset.columns) {\n const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);\n const gridColumn: IGridColumn = {\n ...column,\n alignment: this.getColumnAlignment(column),\n isEditable: this._isColumnEditable(column),\n isRequired: this._isColumnRequired(column),\n isFilterable: this._isColumnFilterable(column),\n disableSorting: !this._isColumnSortable(column),\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n isResizable: true,\n isSorted: sorted ? true : false,\n isFiltered: false,\n getEntityName: () => this._getColumnEntityName(column.name)\n }\n const condition = await this.filtering.condition(gridColumn);\n gridColumn.isFiltered = condition.isAppliedToDataset;\n gridColumns.push(gridColumn);\n }\n if (this.selection.type !== undefined) {\n gridColumns.unshift({\n name: CHECKBOX_COLUMN_KEY,\n alias: CHECKBOX_COLUMN_KEY,\n dataType: DataTypes.SingleLineText,\n alignment: 'center',\n displayName: '',\n isEditable: false,\n isFilterable: false,\n isFiltered: false,\n isRequired: false,\n isResizable: false,\n disableSorting: true,\n isSorted: false,\n isSortedDescending: false,\n order: 0,\n visualSizeFactor: 45,\n getEntityName: () => this._getColumnEntityName(CHECKBOX_COLUMN_KEY)\n });\n }\n this._columns = gridColumns;\n return gridColumns;\n }\n\n public getTotalVisibleColumnsWidth(): number {\n let totalWidth = 0;\n this._columns.filter(x => !x.isHidden).map(col => {\n totalWidth = totalWidth + (col.visualSizeFactor ?? 0);\n })\n return totalWidth;\n }\n\n public onNotifyOutputChanged(record: IRecord, column: IColumn, editing: boolean, newValue: any, rerenderCell: () => void) {\n record.setValue(column.name, newValue);\n if (!editing) {\n this.pcfContext.factory.requestRender();\n return;\n }\n setTimeout(() => {\n rerenderCell();\n }, 0);\n }\n\n public setUsesNestedPcfs() {\n this._usesNestedPcfs = true;\n }\n\n public getBindings(record: IRecord, column: IColumn, control: ICustomColumnControl) {\n const columnInfo = record.getColumnInfo(column.name);\n const bindings: { [name: string]: IBinding } = {\n 'value': {\n isStatic: false,\n type: column.dataType as any,\n value: this._getBindingValue(record, column),\n formattedValue: record.getFormattedValue(column.name),\n error: columnInfo.error,\n errorMessage: columnInfo.errorMessage,\n onNotifyOutputChanged: () => { },\n metadata: {\n onOverrideMetadata: () => column.metadata\n }\n },\n 'IsCellCustomizer': {\n isStatic: true,\n type: DataTypes.TwoOptions,\n value: true\n }\n }\n if (control.bindings) {\n Object.entries(control.bindings).map(([name, binding]) => {\n bindings[name] = {\n isStatic: true,\n type: binding.type!,\n value: binding.value\n }\n })\n }\n return bindings;\n }\n\n public getControl(column: IColumn, record: IRecord, editing: boolean): Required<ICustomColumnControl> {\n //file and image currently do not support editor, always force cell renderers\n switch (column.dataType) {\n case 'File':\n case 'Image': {\n return {\n name: 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n }\n }\n }\n const defaultControl: Required<ICustomColumnControl> = {\n name: editing ? BaseControls.GetControlNameForDataType(column.dataType as DataType) : 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n };\n const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);\n const appliesToValue = editing ? 'editor' : 'renderer';\n const customControl = customControls.find(\n control => control.appliesTo === 'both' || control.appliesTo === appliesToValue\n );\n if (customControl) {\n return merge(defaultControl, customControl) as Required<ICustomColumnControl>;\n }\n\n return defaultControl;\n }\n\n public getParameters(record: IRecord, column: IGridColumn, editing: boolean) {\n const parameters: any = {\n Dataset: {\n raw: this.dataset,\n type: DataTypes.Object\n },\n Record: {\n raw: record,\n type: DataTypes.Object\n },\n Column: {\n raw: column,\n type: DataTypes.Object\n }\n }\n parameters.EnableNavigation = {\n raw: this.isNavigationEnabled,\n type: DataTypes.TwoOptions\n }\n parameters.ColumnAlignment = {\n raw: column.alignment,\n type: DataTypes.SingleLineText\n }\n parameters.IsPrimaryColumn = {\n raw: column.isPrimary,\n type: DataTypes.TwoOptions\n }\n parameters.ShowErrorMessage = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.CellType = {\n raw: editing ? 'editor' : 'renderer',\n type: DataTypes.SingleLineText\n }\n if (editing) {\n parameters.AutoFocus = {\n raw: true,\n type: DataTypes.TwoOptions\n }\n }\n switch (column.dataType) {\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding':\n case 'Lookup.Simple': {\n parameters.IsInlineNewEnabled = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n break;\n }\n case 'SingleLine.Email':\n case 'SingleLine.Phone':\n case 'SingleLine.URL': {\n parameters.EnableTypeSuffix = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n break;\n }\n case 'OptionSet':\n case 'TwoOptions':\n case 'MultiSelectPicklist': {\n parameters.EnableOptionSetColors = {\n raw: this.enableOptionSetColors,\n type: DataTypes.TwoOptions\n }\n break;\n }\n }\n return parameters;\n }\n public getColumnAlignment(column: IColumn) {\n if (column.alignment) {\n return column.alignment;\n }\n switch (column.dataType) {\n case DataTypes.WholeNone:\n case DataTypes.Decimal:\n case DataTypes.Currency: {\n return 'right';\n }\n }\n if (column.type === 'action') {\n return 'right';\n }\n return 'left';\n }\n\n public destroy() {\n this._previousRecordsReference = {};\n this._records.length = 0;\n this.keyHoldListener.destroy();\n //@ts-ignore - internal types\n //if any nested PCF has been loaded and we are in Power Apps, do a page refresh to prevent memory leaks\n if (this._usesNestedPcfs && !this._client.isTalxisPortal()) {\n //location.reload();\n }\n }\n\n private _getBindingValue(record: IRecord, column: IColumn) {\n let value = record.getValue(column.name);\n switch (column.dataType) {\n //getValue always returns string for TwoOptions\n case 'TwoOptions': {\n value = value == '1' ? true : false\n break;\n }\n //getValue always returns string for OptionSet\n case 'OptionSet': {\n value = value ? parseInt(value) : null;\n break;\n }\n case 'MultiSelectPicklist': {\n value = value ? value.split(',').map((x: string) => parseInt(x)) : null;\n break;\n }\n case 'Lookup.Simple':\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding': {\n //our implementation returns array, Power Apps returns object\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: ComponentFramework.EntityReference) => Sanitizer.Lookup.getLookupValue(x))\n break;\n }\n }\n return value;\n }\n\n private _isColumnEditable(column: IColumn): boolean {\n //only allow editing if specifically allowed\n if (!this._props.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataTypes.File:\n case DataTypes.Image: {\n return false;\n }\n }\n return column.metadata?.IsValidForUpdate ?? false;\n }\n\n private _isColumnRequired(column: IColumn): boolean {\n if (!this.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n const requiredLevel = column.metadata?.RequiredLevel;\n if (requiredLevel === 1 || requiredLevel === 2) {\n return true;\n }\n return false;\n }\n private _isColumnSortable(column: IColumn): boolean {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this._props.parameters.EnableSorting?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n switch (column.dataType) {\n case DataTypes.Image: {\n return false;\n }\n }\n if (column.disableSorting === undefined) {\n return true;\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IColumn): boolean {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this.props.parameters.EnableFiltering?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n return column.metadata?.isFilterable ?? true;\n }\n private _getMaxHeight(): number {\n let maxHeight = this._initialPageSize * this.rowHeight;\n if (maxHeight > 600) {\n maxHeight = 600;\n }\n return maxHeight;\n }\n private _getColumnEntityName(columnName: string) {\n const entityAliasName = Attribute.GetLinkedEntityAlias(columnName);\n if (!entityAliasName) {\n return this.dataset.getTargetEntityType();\n }\n return this.dataset.linking.getLinkedEntities().find(x => x.alias === entityAliasName)!.name;\n }\n}"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Grid.js","sources":["../../../../../src/components/Grid/core/model/Grid.ts"],"sourcesContent":["import { Attribute, Client, Constants, DataType, DataTypes, IColumn, ICustomColumnControl, IDataset, IRecord, Sanitizer } from \"@talxis/client-libraries\";\nimport { Filtering } from \"../../filtering/model/Filtering\";\nimport { IGrid } from \"../../interfaces\";\nimport { Paging } from \"../../paging/model/Paging\";\nimport { Selection } from \"../../selection/model/Selection\";\nimport { Sorting } from \"../../sorting/Sorting\";\nimport { KeyHoldListener } from \"../services/KeyListener\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../constants\";\nimport { IGridColumn } from \"../interfaces/IGridColumn\";\nimport { BaseControls } from \"../../../../utils\";\nimport { IBinding } from \"../../../NestedControlRenderer/interfaces\";\nimport { merge } from \"merge-anything\";\n\nconst DEFAULT_ROW_HEIGHT = 42;\n\nexport interface IGridHeightSettings {\n isAutoHeightEnabled: boolean;\n height?: string;\n}\n\nexport class Grid {\n private _props: IGrid;\n private _dataset: IDataset\n private _pcfContext: ComponentFramework.Context<any>;\n private _columns: IGridColumn[] = [];\n //used for optimization\n private _previousRecordsReference: {\n [id: string]: IRecord;\n } = {};\n //TODO: fix types\n private _labels: any;\n private _shouldRerender: boolean = false;\n private _records: IRecord[] = [];\n //TODO: the dependencies might not have fully loaded grid\n //need to make sure that the grid is initialized before creating them\n private _dependencies: {\n filtering: Filtering,\n sorting: Sorting,\n selection: Selection,\n paging: Paging,\n };\n private _initialPageSize: number;\n private _usesNestedPcfs: boolean = false;\n private _client = new Client();\n private _isUpdateScheduled: boolean = false;\n\n public readonly keyHoldListener: KeyHoldListener;\n\n constructor(props: IGrid, labels: any, keyHoldListener: KeyHoldListener) {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n this._labels = labels;\n this.keyHoldListener = keyHoldListener;\n\n this._dependencies = {\n filtering: new Filtering(this),\n selection: new Selection(this),\n sorting: new Sorting(this),\n paging: new Paging(this),\n }\n this._initialPageSize = this.paging.pageSize;\n\n };\n public get isNavigationEnabled() {\n //enabled by default\n return this.parameters.EnableNavigation?.raw !== false;\n }\n public get isEditable() {\n return this._columns.find(x => x.isEditable) ? true : false;\n }\n public get parameters() {\n return this._props.parameters\n }\n public get error() {\n return this._dataset.error;\n }\n public get errorMessage() {\n return this._dataset.errorMessage\n }\n public get labels() {\n return this._labels;\n }\n public get dataset() {\n return this._dataset;\n }\n public get pcfContext() {\n return this._pcfContext;\n }\n public get props() {\n return this._props;\n }\n public get columns() {\n return this._columns;\n }\n public get records() {\n return this._records\n }\n public get sorting() {\n return this._dependencies.sorting;\n }\n public get filtering() {\n return this._dependencies.filtering;\n }\n public get selection() {\n return this._dependencies.selection;\n }\n public get paging() {\n return this._dependencies.paging;\n }\n public get shouldRerender() {\n return this._shouldRerender;\n }\n public get loading() {\n return this._dataset.loading;\n }\n public get state() {\n return this._props.state;\n }\n public get enableOptionSetColors() {\n return this.parameters.EnableOptionSetColors?.raw === true;\n }\n public get linking() {\n return this.dataset.linking;\n }\n\n public get isZebraEnabled() {\n return this.parameters.EnableZebra?.raw !== false;\n }\n\n public get inlineRibbonButtonIds() {\n const idString = this.parameters.InlineRibbonButtonIds?.raw;\n if (!idString) {\n return undefined;\n }\n return idString.split(',');\n }\n\n public get rowHeight() {\n let height = this.parameters.RowHeight?.raw;\n if (!height) {\n height = DEFAULT_ROW_HEIGHT;\n }\n return height;\n }\n\n public getHeightSettings(): IGridHeightSettings {\n if(this.parameters.Height?.raw) {\n return {\n isAutoHeightEnabled: false,\n height: this.parameters.Height?.raw\n }\n }\n if(this._records.length <= 50) {\n return {\n isAutoHeightEnabled: true\n }\n }\n return {\n isAutoHeightEnabled: false,\n height: `${this.rowHeight * 50}px`\n }\n\n\n }\n\n public getClient() {\n return this._client;\n }\n\n public updateDependencies(props: IGrid): void {\n this._props = props;\n this._dataset = props.parameters.Grid;\n this._pcfContext = props.context;\n if (this._previousRecordsReference !== this._dataset.records) {\n this._records = Object.values(this._dataset.records);\n this._previousRecordsReference = this._dataset.records;\n this._isUpdateScheduled = true;\n queueMicrotask(() => {\n this._isUpdateScheduled = false;\n })\n }\n Object.values(this._dependencies).map(dep => {\n dep.onDependenciesUpdated()\n })\n this._shouldRerender = !this.shouldRerender;\n }\n\n public isUpdateScheduled() {\n return this._isUpdateScheduled\n }\n public async refreshColumns(): Promise<IGridColumn[]> {\n const gridColumns: IGridColumn[] = [];\n for (const column of this._dataset.columns) {\n const sorted = this._dataset.sorting?.find(sort => sort.name === column.name);\n const gridColumn: IGridColumn = {\n ...column,\n alignment: this.getColumnAlignment(column),\n isEditable: this._isColumnEditable(column),\n isRequired: this._isColumnRequired(column),\n isFilterable: this._isColumnFilterable(column),\n disableSorting: !this._isColumnSortable(column),\n isSortedDescending: sorted?.sortDirection === 1 ? true : false,\n isResizable: true,\n isSorted: sorted ? true : false,\n isFiltered: false,\n getEntityName: () => this._getColumnEntityName(column.name)\n }\n const condition = await this.filtering.condition(gridColumn);\n gridColumn.isFiltered = condition.isAppliedToDataset;\n gridColumns.push(gridColumn);\n }\n if (this.selection.type !== undefined) {\n gridColumns.unshift({\n name: CHECKBOX_COLUMN_KEY,\n alias: CHECKBOX_COLUMN_KEY,\n dataType: DataTypes.SingleLineText,\n alignment: 'center',\n displayName: '',\n isEditable: false,\n isFilterable: false,\n isFiltered: false,\n isRequired: false,\n isResizable: false,\n disableSorting: true,\n isSorted: false,\n isSortedDescending: false,\n order: 0,\n visualSizeFactor: 45,\n getEntityName: () => this._getColumnEntityName(CHECKBOX_COLUMN_KEY)\n });\n }\n this._columns = gridColumns;\n return gridColumns;\n }\n\n public getTotalVisibleColumnsWidth(): number {\n let totalWidth = 0;\n this._columns.filter(x => !x.isHidden).map(col => {\n totalWidth = totalWidth + (col.visualSizeFactor ?? 0);\n })\n return totalWidth;\n }\n\n public onNotifyOutputChanged(record: IRecord, column: IColumn, editing: boolean, newValue: any, rerenderCell: () => void) {\n record.setValue(column.name, newValue);\n if (!editing) {\n this.pcfContext.factory.requestRender();\n return;\n }\n setTimeout(() => {\n rerenderCell();\n }, 0);\n }\n\n public setUsesNestedPcfs() {\n this._usesNestedPcfs = true;\n }\n\n public getBindings(record: IRecord, column: IColumn, control: ICustomColumnControl) {\n const columnInfo = record.getColumnInfo(column.name);\n const bindings: { [name: string]: IBinding } = {\n 'value': {\n isStatic: false,\n type: column.dataType as any,\n value: this._getBindingValue(record, column),\n formattedValue: record.getFormattedValue(column.name),\n error: columnInfo.error,\n errorMessage: columnInfo.errorMessage,\n onNotifyOutputChanged: () => { },\n metadata: {\n onOverrideMetadata: () => column.metadata\n }\n },\n 'IsCellCustomizer': {\n isStatic: true,\n type: DataTypes.TwoOptions,\n value: true\n }\n }\n if (control.bindings) {\n Object.entries(control.bindings).map(([name, binding]) => {\n bindings[name] = {\n isStatic: true,\n type: binding.type!,\n value: binding.value\n }\n })\n }\n return bindings;\n }\n\n public getControl(column: IColumn, record: IRecord, editing: boolean): Required<ICustomColumnControl> {\n //file and image currently do not support editor, always force cell renderers\n switch (column.dataType) {\n case 'File':\n case 'Image': {\n return {\n name: 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n }\n }\n }\n const defaultControl: Required<ICustomColumnControl> = {\n name: editing ? BaseControls.GetControlNameForDataType(column.dataType as DataType) : 'GridCellRenderer',\n appliesTo: 'both',\n bindings: {}\n };\n const customControls = record.getColumnInfo(column.name).ui.getCustomControls([defaultControl]);\n const appliesToValue = editing ? 'editor' : 'renderer';\n const customControl = customControls.find(\n control => control.appliesTo === 'both' || control.appliesTo === appliesToValue\n );\n if (customControl) {\n return merge(defaultControl, customControl) as Required<ICustomColumnControl>;\n }\n\n return defaultControl;\n }\n\n public getParameters(record: IRecord, column: IGridColumn, editing: boolean) {\n const parameters: any = {\n Dataset: {\n raw: this.dataset,\n type: DataTypes.Object\n },\n Record: {\n raw: record,\n type: DataTypes.Object\n },\n Column: {\n raw: column,\n type: DataTypes.Object\n }\n }\n parameters.EnableNavigation = {\n raw: this.isNavigationEnabled,\n type: DataTypes.TwoOptions\n }\n parameters.ColumnAlignment = {\n raw: column.alignment,\n type: DataTypes.SingleLineText\n }\n parameters.IsPrimaryColumn = {\n raw: column.isPrimary,\n type: DataTypes.TwoOptions\n }\n parameters.ShowErrorMessage = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n parameters.CellType = {\n raw: editing ? 'editor' : 'renderer',\n type: DataTypes.SingleLineText\n }\n if (editing) {\n parameters.AutoFocus = {\n raw: true,\n type: DataTypes.TwoOptions\n }\n }\n switch (column.dataType) {\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding':\n case 'Lookup.Simple': {\n parameters.IsInlineNewEnabled = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n break;\n }\n case 'SingleLine.Email':\n case 'SingleLine.Phone':\n case 'SingleLine.URL': {\n parameters.EnableTypeSuffix = {\n raw: false,\n type: DataTypes.TwoOptions\n }\n break;\n }\n case 'OptionSet':\n case 'TwoOptions':\n case 'MultiSelectPicklist': {\n parameters.EnableOptionSetColors = {\n raw: this.enableOptionSetColors,\n type: DataTypes.TwoOptions\n }\n break;\n }\n }\n return parameters;\n }\n public getColumnAlignment(column: IColumn) {\n if (column.alignment) {\n return column.alignment;\n }\n switch (column.dataType) {\n case DataTypes.WholeNone:\n case DataTypes.Decimal:\n case DataTypes.Currency: {\n return 'right';\n }\n }\n if (column.type === 'action') {\n return 'right';\n }\n return 'left';\n }\n\n public destroy() {\n this._previousRecordsReference = {};\n this._records.length = 0;\n this.keyHoldListener.destroy();\n //@ts-ignore - internal types\n //if any nested PCF has been loaded and we are in Power Apps, do a page refresh to prevent memory leaks\n //this should be moved to dataset control\n if (this._usesNestedPcfs && !this._client.isTalxisPortal()) {\n location.reload();\n }\n }\n\n private _getBindingValue(record: IRecord, column: IColumn) {\n let value = record.getValue(column.name);\n switch (column.dataType) {\n //getValue always returns string for TwoOptions\n case 'TwoOptions': {\n value = value == '1' ? true : false\n break;\n }\n //getValue always returns string for OptionSet\n case 'OptionSet': {\n value = value ? parseInt(value) : null;\n break;\n }\n case 'MultiSelectPicklist': {\n value = value ? value.split(',').map((x: string) => parseInt(x)) : null;\n break;\n }\n case 'Lookup.Simple':\n case 'Lookup.Customer':\n case 'Lookup.Owner':\n case 'Lookup.Regarding': {\n //our implementation returns array, Power Apps returns object\n if (value && !Array.isArray(value)) {\n value = [value];\n }\n value = value?.map((x: ComponentFramework.EntityReference) => Sanitizer.Lookup.getLookupValue(x))\n break;\n }\n }\n return value;\n }\n\n private _isColumnEditable(column: IColumn): boolean {\n //only allow editing if specifically allowed\n if (!this._props.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n //these field types do not support editing\n switch (column.dataType) {\n case DataTypes.File:\n case DataTypes.Image: {\n return false;\n }\n }\n return column.metadata?.IsValidForUpdate ?? false;\n }\n\n private _isColumnRequired(column: IColumn): boolean {\n if (!this.parameters.EnableEditing?.raw) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n const requiredLevel = column.metadata?.RequiredLevel;\n if (requiredLevel === 1 || requiredLevel === 2) {\n return true;\n }\n return false;\n }\n private _isColumnSortable(column: IColumn): boolean {\n if (column.name.endsWith('__virtual')) {\n return false;\n }\n if (this._props.parameters.EnableSorting?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n switch (column.dataType) {\n case DataTypes.Image: {\n return false;\n }\n }\n if (column.disableSorting === undefined) {\n return true;\n }\n return !column.disableSorting;\n }\n private _isColumnFilterable(column: IColumn): boolean {\n if (this.props.parameters.EnableFiltering?.raw === false) {\n return false;\n }\n if (column.name === Constants.RIBBON_BUTTONS_COLUMN_NAME) {\n return false;\n }\n //by default, do not make virtual columns filterable unless explicitly set\n if(column.name.endsWith('__virtual')) {\n return column.metadata?.isFilterable ?? false;\n }\n return column.metadata?.isFilterable ?? true;\n }\n private _getColumnEntityName(columnName: string) {\n const entityAliasName = Attribute.GetLinkedEntityAlias(columnName);\n if (!entityAliasName) {\n return this.dataset.getTargetEntityType();\n }\n return this.dataset.linking.getLinkedEntities().find(x => x.alias === entityAliasName)!.name;\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import { Grid } from "../../core/model/Grid";
|
|
|
5
5
|
import { GridDependency } from "../../core/model/GridDependency";
|
|
6
6
|
export declare class Condition extends GridDependency {
|
|
7
7
|
private _column;
|
|
8
|
-
private _isAppliedToDataset;
|
|
9
8
|
private _conditionExpression;
|
|
10
9
|
private _isRemoved?;
|
|
11
10
|
private _conditionUtils;
|
|
@@ -7,7 +7,6 @@ import { FilteringUtils } from '../utils/FilteringUtilts.js';
|
|
|
7
7
|
class Condition extends GridDependency {
|
|
8
8
|
constructor(grid, column) {
|
|
9
9
|
super(grid);
|
|
10
|
-
this._isAppliedToDataset = false;
|
|
11
10
|
this._conditionExpression = {};
|
|
12
11
|
this._conditionUtils = FilteringUtils.condition();
|
|
13
12
|
this._isValid = true;
|
|
@@ -45,7 +44,6 @@ class Condition extends GridDependency {
|
|
|
45
44
|
this._conditionExpression = this._getDefault();
|
|
46
45
|
}
|
|
47
46
|
else {
|
|
48
|
-
this._isAppliedToDataset = true;
|
|
49
47
|
this._conditionExpression = map.get(key);
|
|
50
48
|
}
|
|
51
49
|
this._conditionExpression.conditionOperator = this._operatorDecorator(this._conditionExpression.conditionOperator, this._conditionExpression.value, true);
|
|
@@ -64,7 +62,10 @@ class Condition extends GridDependency {
|
|
|
64
62
|
return this._column;
|
|
65
63
|
}
|
|
66
64
|
get isAppliedToDataset() {
|
|
67
|
-
return this.
|
|
65
|
+
return !!this._dataset.filtering.getFilter()?.conditions.find(cond => {
|
|
66
|
+
const attributeName = cond.entityAliasName ? `${cond.entityAliasName}.${cond.attributeName}` : cond.attributeName;
|
|
67
|
+
return attributeName === this._column.name;
|
|
68
|
+
});
|
|
68
69
|
}
|
|
69
70
|
get isValid() {
|
|
70
71
|
return this._isValid;
|
|
@@ -83,7 +84,7 @@ class Condition extends GridDependency {
|
|
|
83
84
|
return false;
|
|
84
85
|
}
|
|
85
86
|
const filterExpression = this._filterExpression;
|
|
86
|
-
if (this.
|
|
87
|
+
if (this.isAppliedToDataset || this._isRemoved) {
|
|
87
88
|
const [map, key] = await this._getConditionFromFilterExpression();
|
|
88
89
|
map.delete(key);
|
|
89
90
|
filterExpression.conditions = [...map.values()];
|