@talxis/base-controls 1.2410.6 → 1.2411.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DatasetControl/DatasetControl.js +5 -3
- package/dist/components/DatasetControl/DatasetControl.js.map +1 -1
- package/dist/components/Grid/Grid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/AgGrid.d.ts +2 -0
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js +141 -27
- package/dist/components/Grid/core/components/AgGrid/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js +3 -4
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/LoadingOverlay.js.map +1 -1
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js +19 -7
- package/dist/components/Grid/core/components/AgGrid/model/AgGrid.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.d.ts +3 -3
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js +32 -96
- package/dist/components/Grid/core/components/Cell/EditableCell/EditableCell.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js +23 -22
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/Notifications/Notifications.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js +41 -36
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/ReadOnlyCell.js.map +1 -1
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.d.ts +5 -0
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js +21 -3
- package/dist/components/Grid/core/components/Cell/ReadOnlyCell/styles.js.map +1 -1
- package/dist/components/Grid/core/components/Component/Component.d.ts +2 -2
- package/dist/components/Grid/core/components/Component/Component.js.map +1 -1
- package/dist/components/Grid/core/components/Component/model/Component.d.ts +1 -0
- package/dist/components/Grid/core/components/Component/model/Component.js +57 -20
- package/dist/components/Grid/core/components/Component/model/Component.js.map +1 -1
- package/dist/components/Grid/core/components/Save/Save.js +33 -20
- package/dist/components/Grid/core/components/Save/Save.js.map +1 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.d.ts +5 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js +46 -15
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/ChangeEditor.js.map +1 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.d.ts +10 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js +187 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/ChangeGrid.js.map +1 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.d.ts +39 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js +45 -0
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/ChangeGrid/styles.js.map +1 -0
- package/dist/components/Grid/core/components/Save/styles.d.ts +2 -4
- package/dist/components/Grid/core/components/Save/styles.js +2 -4
- package/dist/components/Grid/core/components/Save/styles.js.map +1 -1
- package/dist/components/Grid/core/model/Grid.d.ts +1 -2
- package/dist/components/Grid/core/model/Grid.js +11 -9
- package/dist/components/Grid/core/model/Grid.js.map +1 -1
- package/dist/components/Grid/core/services/KeyListener.d.ts +2 -0
- package/dist/components/Grid/core/services/KeyListener.js +6 -0
- package/dist/components/Grid/core/services/KeyListener.js.map +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js +0 -2
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionOperator/ConditionOperator.js.map +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js +45 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/ConditionValue.js.map +1 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js +4 -1
- package/dist/components/Grid/filtering/components/FilterCallout/components/ConditionValue/model/ConditionComponentValue.js.map +1 -1
- package/dist/components/Grid/filtering/model/Condition.js +19 -4
- package/dist/components/Grid/filtering/model/Condition.js.map +1 -1
- package/dist/components/Grid/interfaces.d.ts +4 -1
- package/dist/components/Grid/paging/components/Paging/Paging.js +6 -5
- package/dist/components/Grid/paging/components/Paging/Paging.js.map +1 -1
- package/dist/components/Grid/translations.d.ts +36 -0
- package/dist/components/Grid/translations.js +11 -2
- package/dist/components/Grid/translations.js.map +1 -1
- package/dist/components/TextField/TextField.js +14 -5
- package/dist/components/TextField/TextField.js.map +1 -1
- package/dist/hooks/useControl.js +3 -2
- package/dist/hooks/useControl.js.map +1 -1
- package/dist/hooks/useRerender.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/package.json +4 -4
- package/dist/components/DatasetControl/hooks/useRerender.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.d.ts +0 -44
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js +0 -82
- package/dist/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.js.map +0 -1
- package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.d.ts +0 -20
- package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js +0 -173
- package/dist/components/Grid/core/components/AgGrid/controllers/useAgGridController.js.map +0 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.d.ts +0 -7
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js +0 -144
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/RecordGrids.js.map +0 -1
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.d.ts +0 -48
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js +0 -54
- package/dist/components/Grid/core/components/Save/components/ChangeEditor/components/RecordGrids/styles.js.map +0 -1
- package/dist/components/Grid/core/components/Save/hooks/useSave.d.ts +0 -12
- package/dist/components/Grid/core/components/Save/hooks/useSave.js +0 -45
- package/dist/components/Grid/core/components/Save/hooks/useSave.js.map +0 -1
- package/dist/components/Grid/core/constants.d.ts +0 -1
- package/dist/components/Grid/core/constants.js +0 -4
- package/dist/components/Grid/core/constants.js.map +0 -1
- package/dist/components/Grid/core/hooks/useRerender.d.ts +0 -1
- package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.d.ts +0 -14
- package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js +0 -25
- package/dist/components/Grid/core/services/RecordUpdateService/controllers/useRecordUpdateServiceController.js.map +0 -1
- package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.d.ts +0 -30
- package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js +0 -186
- package/dist/components/Grid/core/services/RecordUpdateService/model/RecordUpdateService.js.map +0 -1
- package/dist/components/Grid/validation/controllers/useRecordValidationController.d.ts +0 -8
- package/dist/components/Grid/validation/controllers/useRecordValidationController.js +0 -25
- package/dist/components/Grid/validation/controllers/useRecordValidationController.js.map +0 -1
- package/dist/components/Grid/validation/model/ColumnValidation.d.ts +0 -11
- package/dist/components/Grid/validation/model/ColumnValidation.js +0 -90
- package/dist/components/Grid/validation/model/ColumnValidation.js.map +0 -1
- /package/dist/{components/DatasetControl/hooks → hooks}/useRerender.d.ts +0 -0
- /package/dist/{components/DatasetControl/hooks → hooks}/useRerender.js +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { TextField as TextField$1 } from '@talxis/react-components';
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
3
|
import { useInputBasedControl } from '../../hooks/useInputBasedControl.js';
|
|
5
4
|
import { ThemeProvider } from '@fluentui/react';
|
|
5
|
+
import { DataTypes } from '@talxis/client-libraries';
|
|
6
6
|
|
|
7
7
|
const TextField = (props) => {
|
|
8
8
|
const context = props.context;
|
|
@@ -64,11 +64,20 @@ const TextField = (props) => {
|
|
|
64
64
|
}
|
|
65
65
|
return undefined;
|
|
66
66
|
};
|
|
67
|
+
const isTextArea = (() => {
|
|
68
|
+
switch (parameters.value.type) {
|
|
69
|
+
case DataTypes.Multiple:
|
|
70
|
+
case DataTypes.SingleLineTextArea: {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
})();
|
|
67
76
|
const componentProps = onOverrideComponentProps({
|
|
68
77
|
readOnly: context.mode.isControlDisabled,
|
|
69
78
|
resizable: false,
|
|
70
|
-
type:
|
|
71
|
-
multiline:
|
|
79
|
+
type: getInputType(),
|
|
80
|
+
multiline: isTextArea,
|
|
72
81
|
autoFocus: parameters.AutoFocus?.raw,
|
|
73
82
|
styles: {
|
|
74
83
|
fieldGroup: {
|
|
@@ -78,7 +87,7 @@ const TextField = (props) => {
|
|
|
78
87
|
},
|
|
79
88
|
errorMessage: boundValue.errorMessage,
|
|
80
89
|
hideErrorMessage: !parameters.ShowErrorMessage?.raw,
|
|
81
|
-
suffixItems:
|
|
90
|
+
suffixItems: getSuffixItems(),
|
|
82
91
|
deleteButtonProps: parameters.EnableDeleteButton?.raw === true ? {
|
|
83
92
|
key: 'delete',
|
|
84
93
|
showOnlyOnHover: true,
|
|
@@ -104,7 +113,7 @@ const TextField = (props) => {
|
|
|
104
113
|
setValue(value);
|
|
105
114
|
}
|
|
106
115
|
});
|
|
107
|
-
return (jsx(ThemeProvider, { style:
|
|
116
|
+
return (jsx(ThemeProvider, { style: isTextArea ? { height: '100%' } : undefined, applyTo: "none", theme: theme, children: jsx(TextField$1, { ...componentProps }) }));
|
|
108
117
|
};
|
|
109
118
|
|
|
110
119
|
export { TextField };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.js","sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"TextField.js","sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import { TextField as TextFieldBase } from \"@talxis/react-components\";\nimport { useInputBasedControl } from '../../hooks/useInputBasedControl';\nimport { ITextField, ITextFieldOutputs, ITextFieldParameters } from './interfaces';\nimport React from 'react';\nimport { ICommandBarItemProps, ThemeProvider } from '@fluentui/react';\nimport { DataTypes } from \"@talxis/client-libraries\";\n\nexport const TextField = (props: ITextField) => {\n const context = props.context;\n const parameters = props.parameters;\n const boundValue = parameters.value;\n const onOverrideComponentProps = props.onOverrideComponentProps ?? ((props) => props);\n const { value, sizing, theme, setValue, onNotifyOutputChanged } = useInputBasedControl<string | undefined, ITextFieldParameters, ITextFieldOutputs, any>('TextField', props);\n\n const getInputType = () => {\n switch (boundValue.type) {\n case 'SingleLine.Email': {\n return 'email';\n }\n case 'SingleLine.URL': {\n return 'url';\n }\n case 'SingleLine.Phone': {\n return 'tel';\n }\n }\n return \"text\";\n }\n const getSuffixItems = (): ICommandBarItemProps[] | undefined => {\n if (parameters.EnableTypeSuffix?.raw === false) {\n return undefined;\n }\n const disabled = boundValue.error || !boundValue.raw\n switch (boundValue.type) {\n case 'SingleLine.Email': {\n return [{\n key: 'sendMail',\n disabled: disabled,\n iconProps: {\n iconName: 'Mail'\n },\n href: `mailto:${boundValue.raw}`\n }]\n }\n case 'SingleLine.Phone': {\n return [{\n key: 'call',\n disabled: disabled,\n iconProps: {\n iconName: 'Phone'\n },\n href: `tel:${boundValue.raw}`\n }]\n }\n case 'SingleLine.URL': {\n return [{\n key: 'goToPage',\n disabled: disabled,\n iconProps: {\n iconName: 'Globe'\n },\n target: '_blank',\n href: boundValue.raw!\n }]\n }\n }\n return undefined;\n }\n\n const isTextArea = (() => {\n switch(parameters.value.type) {\n case DataTypes.Multiple:\n case DataTypes.SingleLineTextArea: {\n return true;\n }\n }\n return false;\n })()\n\n const componentProps = onOverrideComponentProps({\n readOnly: context.mode.isControlDisabled,\n resizable: false,\n type: getInputType(),\n multiline: isTextArea,\n autoFocus: parameters.AutoFocus?.raw,\n styles: {\n fieldGroup: {\n height: sizing.height,\n width: sizing.width\n }\n },\n errorMessage: boundValue.errorMessage,\n hideErrorMessage: !parameters.ShowErrorMessage?.raw,\n suffixItems: getSuffixItems(),\n deleteButtonProps: parameters.EnableDeleteButton?.raw === true ? {\n key: 'delete',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Cancel'\n },\n onClick: () => setValue(undefined)\n } : undefined,\n clickToCopyProps: parameters.EnableCopyButton?.raw === true ? {\n key: 'copy',\n showOnlyOnHover: true,\n iconProps: {\n iconName: 'Copy'\n }\n } : undefined,\n value: value ?? \"\",\n onBlur: () => {\n onNotifyOutputChanged({\n value: value ?? undefined\n });\n },\n onChange: (e, value) => {\n setValue(value);\n }\n })\n return (\n <ThemeProvider style={isTextArea ? { height: '100%' } : undefined} applyTo=\"none\" theme={theme}>\n <TextFieldBase {...componentProps} />\n </ThemeProvider>\n );\n};"],"names":["_jsx","TextFieldBase"],"mappings":"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"}
|
package/dist/hooks/useControl.js
CHANGED
|
@@ -3,8 +3,8 @@ import { merge } from 'merge-anything';
|
|
|
3
3
|
import { Liquid } from 'liquidjs';
|
|
4
4
|
import { useControlTheme } from './useControlTheme.js';
|
|
5
5
|
import { useControlSizing } from './useControlSizing.js';
|
|
6
|
-
import equal from 'fast-deep-equal/es6';
|
|
7
6
|
|
|
7
|
+
const deepEqual = require('fast-deep-equal/es6');
|
|
8
8
|
/**
|
|
9
9
|
* Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want
|
|
10
10
|
* to notify the framework that you wish to write changes. The hook will notify the framework only if the provided output differs from the current inputs.
|
|
@@ -56,7 +56,8 @@ const useControl = (name, props, defaultTranslations) => {
|
|
|
56
56
|
let isDirty = false;
|
|
57
57
|
for (let [key, outputValue] of Object.entries(outputs)) {
|
|
58
58
|
let parameterValue = parametersRef.current[key]?.raw;
|
|
59
|
-
|
|
59
|
+
//@ts-ignore - types
|
|
60
|
+
if (!deepEqual(parameterValue, outputValue)) {
|
|
60
61
|
if (outputValue === null) {
|
|
61
62
|
outputValue = undefined;
|
|
62
63
|
//@ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControl.js","sources":["../../src/hooks/useControl.ts"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { IControl, IOutputs, IParameters } from \"../interfaces\";\nimport { merge } from 'merge-anything';\nimport { Liquid } from \"liquidjs\";\nimport { useControlTheme } from \"./useControlTheme\";\nimport { ITheme } from \"../interfaces/theme\";\nimport { useControlSizing } from \"./useControlSizing\";\
|
|
1
|
+
{"version":3,"file":"useControl.js","sources":["../../src/hooks/useControl.ts"],"sourcesContent":["import { useEffect, useMemo, useRef } from \"react\";\nimport { IControl, IOutputs, IParameters } from \"../interfaces\";\nimport { merge } from 'merge-anything';\nimport { Liquid } from \"liquidjs\";\nimport { useControlTheme } from \"./useControlTheme\";\nimport { ITheme } from \"../interfaces/theme\";\nimport { useControlSizing } from \"./useControlSizing\";\n\nconst deepEqual = require('fast-deep-equal/es6')\n\nexport type ITranslation<T> = {\n [Property in keyof Required<T>]: (variables?: any) => string\n};\n\nexport interface IDefaultTranslations {\n [LCID: number]: string | string[];\n [key: string]: any;\n}\n\n\nexport interface IControlController<TTranslations, TOutputs> {\n labels: Required<ITranslation<TTranslations>>,\n sizing: {\n width?: number,\n height?: number\n },\n theme: ITheme;\n onNotifyOutputChanged: (outputs: TOutputs) => void,\n}\n/**\n * Provides automatic checking if the given outputs are different from the provided inputs. Use the provided method any time you want\n * to notify the framework that you wish to write changes. The hook will notify the framework only if the provided output differs from the current inputs.\n */\nexport const useControl = <TParameters extends IParameters, TOutputs extends IOutputs, TTranslations>(name: string, props: IControl<TParameters, TOutputs, TTranslations, any>, defaultTranslations?: IDefaultTranslations): IControlController<TTranslations, TOutputs> => {\n const parametersRef = useRef<TParameters>(props.parameters);\n const sizing = useControlSizing(props.context.mode);\n const context = props.context;\n const liquid = useMemo(() => new Liquid(), []);\n const labels = useMemo(() => {\n const mergedTranslations = merge(defaultTranslations ?? {}, props.translations ?? {}) as TTranslations;\n return new Proxy(mergedTranslations as any, {\n get(target, key) {\n return (variables: any) => getLabel(key as string, mergedTranslations, variables)\n }\n }) as any;\n }, []);\n\n useEffect(() => {\n parametersRef.current = props.parameters;\n }, [props.parameters]);\n\n const getLabel = (key: string, translations: TTranslations, variables?: any): string | string[] => {\n const strigify = (value: string | string[]) => {\n if (typeof value === 'string') {\n return value;\n }\n return JSON.stringify(value);\n };\n //@ts-ignore\n const translation = translations[key];\n if (!translation) {\n console.error(`Translation for the ${key} label of the ${name} control has not been defined!`);\n return key;\n }\n if (typeof translation === 'string' || Array.isArray(translation)) {\n return strigify(translation);\n }\n let label = translation[props.context.userSettings.languageId];\n if (!label) {\n console.info(`Translation for the ${key} label of the ${name} control has not been found. Using default Czech label instead.`);\n label = translation[1029];\n }\n if (!label) {\n console.error(`Translation for the ${key} label of the ${name} control does not exists neither for Czech language and current LCID.`);\n label = key;\n }\n\n return liquid.parseAndRenderSync(strigify(label), variables);\n };\n\n const onNotifyOutputChanged = (outputs: TOutputs) => {\n let isDirty = false;\n for (let [key, outputValue] of Object.entries(outputs)) {\n let parameterValue = parametersRef.current[key]?.raw;\n //@ts-ignore - types\n if (!deepEqual(parameterValue, outputValue)) {\n if (outputValue === null) {\n outputValue = undefined;\n //@ts-ignore\n outputs[key] = undefined;\n }\n if (outputValue === \"\") {\n outputValue = undefined\n //@ts-ignore\n outputs[key] = undefined;\n }\n if (parameterValue === null) {\n parameterValue = undefined;\n }\n if (parameterValue === outputValue) {\n continue\n }\n isDirty = true;\n break;\n }\n }\n if (!isDirty) {\n return;\n }\n //console.log(`Change detected, triggering notifyOutputChanged on control ${name}.`);\n props.onNotifyOutputChanged?.(outputs);\n };\n return {\n labels,\n sizing,\n theme: useControlTheme(context.fluentDesignLanguage),\n onNotifyOutputChanged\n }\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRerender.js","sources":["../../src/hooks/useRerender.ts"],"sourcesContent":["import { useState } from \"react\"\n\nexport const useRerender = () => {\n const [_, toggle] = useState<boolean>(false);\n\n return () => toggle(!_);\n}"],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAG,MAAK;IAC5B,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7C,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -576,6 +576,10 @@ declare const gridTranslations: {
|
|
|
576
576
|
1029: string;
|
|
577
577
|
1033: string;
|
|
578
578
|
};
|
|
579
|
+
"saving-clickreview": {
|
|
580
|
+
1029: string;
|
|
581
|
+
1033: string;
|
|
582
|
+
};
|
|
579
583
|
"saving-save": {
|
|
580
584
|
1029: string;
|
|
581
585
|
1033: string;
|
|
@@ -592,6 +596,30 @@ declare const gridTranslations: {
|
|
|
592
596
|
1029: string;
|
|
593
597
|
1033: string;
|
|
594
598
|
};
|
|
599
|
+
"saving-save-all": {
|
|
600
|
+
1029: string;
|
|
601
|
+
1033: string;
|
|
602
|
+
};
|
|
603
|
+
"saving-discard-all": {
|
|
604
|
+
1029: string;
|
|
605
|
+
1033: string;
|
|
606
|
+
};
|
|
607
|
+
"saving-discard": {
|
|
608
|
+
1029: string;
|
|
609
|
+
1033: string;
|
|
610
|
+
};
|
|
611
|
+
"saving-discard-changes": {
|
|
612
|
+
1029: string;
|
|
613
|
+
1033: string;
|
|
614
|
+
};
|
|
615
|
+
"saving-save-changes": {
|
|
616
|
+
1029: string;
|
|
617
|
+
1033: string;
|
|
618
|
+
};
|
|
619
|
+
"saving-discard-all-confirmation": {
|
|
620
|
+
1029: string;
|
|
621
|
+
1033: string;
|
|
622
|
+
};
|
|
595
623
|
"validation-input-value": {
|
|
596
624
|
1029: string;
|
|
597
625
|
1033: string;
|
|
@@ -624,6 +652,14 @@ declare const gridTranslations: {
|
|
|
624
652
|
1029: string;
|
|
625
653
|
1033: string;
|
|
626
654
|
};
|
|
655
|
+
"original-value": {
|
|
656
|
+
1029: string;
|
|
657
|
+
1033: string;
|
|
658
|
+
};
|
|
659
|
+
"new-value": {
|
|
660
|
+
1029: string;
|
|
661
|
+
1033: string;
|
|
662
|
+
};
|
|
627
663
|
};
|
|
628
664
|
|
|
629
665
|
interface IGrid extends IControl<IGridParameters, IGridOutputs, Partial<ITranslation<typeof gridTranslations>>, AgGridReactProps> {
|
|
@@ -635,6 +671,9 @@ interface IGridParameters extends IParameters$1 {
|
|
|
635
671
|
EnableSorting?: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
636
672
|
EnableNavigation?: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
637
673
|
EnableOptionSetColors?: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
674
|
+
EnableChangeEditor?: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
675
|
+
EnableMultiEdit?: Omit<ITwoOptionsProperty, 'attributes'>;
|
|
676
|
+
RowHeight?: Omit<IWholeNumberProperty, 'attributes'>;
|
|
638
677
|
Height?: IStringProperty;
|
|
639
678
|
InlineRibbonButtonIds?: IStringProperty;
|
|
640
679
|
SelectableRows?: Omit<ComponentFramework.PropertyTypes.EnumProperty<"none" | "single" | "multiple">, 'type'>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@talxis/base-controls",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2411.2",
|
|
4
4
|
"description": "Set of React components that natively work with Power Apps Component Framework API's",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
"@ag-grid-community/core": "^31.3.2",
|
|
71
71
|
"@ag-grid-community/react": "^31.3.2",
|
|
72
72
|
"@ag-grid-community/styles": "^31.3.2",
|
|
73
|
-
"@fluentui/react": "
|
|
73
|
+
"@fluentui/react": "<=8.121.5",
|
|
74
74
|
"@fluentui/react-migration-v8-v9": "^9.6.20",
|
|
75
|
-
"@talxis/client-libraries": "1.
|
|
76
|
-
"@talxis/react-components": "^1.
|
|
75
|
+
"@talxis/client-libraries": "1.2411.1",
|
|
76
|
+
"@talxis/react-components": "^1.2411.2",
|
|
77
77
|
"color": "^4.2.3",
|
|
78
78
|
"dayjs": "^1.11.10",
|
|
79
79
|
"external-svg-loader": "^1.7.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRerender.js","sources":["../../../../src/components/DatasetControl/hooks/useRerender.ts"],"sourcesContent":["import { useState } from \"react\"\n\nexport const useRerender = () => {\n const [_, toggle] = useState<boolean>(false);\n\n return () => toggle(!_);\n}"],"names":[],"mappings":";;AAEO,MAAM,WAAW,GAAG,MAAK;IAC5B,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7C,OAAO,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B;;;;"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { ITheme } from "@fluentui/react";
|
|
2
|
-
export declare const getLoadingOverlayStyles: (theme: ITheme) => import("@fluentui/react").IProcessedStyleSet<{
|
|
3
|
-
root: {
|
|
4
|
-
borderWidth: string;
|
|
5
|
-
position: string;
|
|
6
|
-
border: string;
|
|
7
|
-
maskImage: string;
|
|
8
|
-
backgroundColor: string;
|
|
9
|
-
color: string;
|
|
10
|
-
width: number;
|
|
11
|
-
height: number;
|
|
12
|
-
animationName: string;
|
|
13
|
-
animationDuration: string;
|
|
14
|
-
animationIterationCount: string;
|
|
15
|
-
animationTimingFunction: string;
|
|
16
|
-
};
|
|
17
|
-
tail: {
|
|
18
|
-
position: string;
|
|
19
|
-
display: string;
|
|
20
|
-
width: string;
|
|
21
|
-
height: string;
|
|
22
|
-
maskImage: string;
|
|
23
|
-
animationDuration: string;
|
|
24
|
-
animationIterationCount: string;
|
|
25
|
-
animationTimingFunction: string;
|
|
26
|
-
animationName: string;
|
|
27
|
-
'::after, ::before': {
|
|
28
|
-
content: string;
|
|
29
|
-
position: string;
|
|
30
|
-
display: string;
|
|
31
|
-
width: string;
|
|
32
|
-
height: string;
|
|
33
|
-
animation: string;
|
|
34
|
-
backgroundImage: string;
|
|
35
|
-
};
|
|
36
|
-
'::after': {
|
|
37
|
-
animationName: string;
|
|
38
|
-
};
|
|
39
|
-
'::before': {
|
|
40
|
-
maskImage: string;
|
|
41
|
-
animationName: string;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
}>;
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { keyframes, mergeStyleSets } from '@fluentui/react';
|
|
2
|
-
|
|
3
|
-
const getSpinnerAnimation = (degValue) => {
|
|
4
|
-
return keyframes({
|
|
5
|
-
'0%': {
|
|
6
|
-
transform: 'rotate(0deg)'
|
|
7
|
-
},
|
|
8
|
-
'50%': {
|
|
9
|
-
transform: `rotate(${degValue}deg)`
|
|
10
|
-
},
|
|
11
|
-
'100%': {
|
|
12
|
-
transform: 'rotate(0deg)'
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
const counterSpinner = keyframes({
|
|
17
|
-
'0%': {
|
|
18
|
-
transform: 'rotate(-135deg)'
|
|
19
|
-
},
|
|
20
|
-
'50%': {
|
|
21
|
-
transform: `rotate(0deg)`
|
|
22
|
-
},
|
|
23
|
-
'100%': {
|
|
24
|
-
transform: 'rotate(225deg)'
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
const rotate = keyframes({
|
|
28
|
-
'0%': {
|
|
29
|
-
transform: 'rotate(0deg)'
|
|
30
|
-
},
|
|
31
|
-
'100%': {
|
|
32
|
-
transform: 'rotate(360deg)'
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
const getLoadingOverlayStyles = (theme) => {
|
|
36
|
-
return mergeStyleSets({
|
|
37
|
-
root: {
|
|
38
|
-
borderWidth: '3px',
|
|
39
|
-
position: 'relative',
|
|
40
|
-
border: 'none',
|
|
41
|
-
maskImage: 'radial-gradient(closest-side, transparent calc(100% - 3px), white calc(100% - 3px) calc(100% - 1px), transparent 100%)',
|
|
42
|
-
backgroundColor: theme.palette.themeLighter,
|
|
43
|
-
color: theme.palette.themePrimary,
|
|
44
|
-
width: 36,
|
|
45
|
-
height: 36,
|
|
46
|
-
animationName: rotate,
|
|
47
|
-
animationDuration: '1.5s',
|
|
48
|
-
animationIterationCount: 'infinite',
|
|
49
|
-
animationTimingFunction: 'linear'
|
|
50
|
-
},
|
|
51
|
-
tail: {
|
|
52
|
-
position: 'absolute',
|
|
53
|
-
display: 'block',
|
|
54
|
-
width: '100%',
|
|
55
|
-
height: '100%',
|
|
56
|
-
maskImage: 'conic-gradient(transparent 105deg, white 105deg)',
|
|
57
|
-
animationDuration: '1.5s',
|
|
58
|
-
animationIterationCount: 'infinite',
|
|
59
|
-
animationTimingFunction: 'cubic-bezier(0.33,0,0.67,1)',
|
|
60
|
-
animationName: counterSpinner,
|
|
61
|
-
'::after, ::before': {
|
|
62
|
-
content: "''",
|
|
63
|
-
position: 'absolute',
|
|
64
|
-
display: 'block',
|
|
65
|
-
width: '100%',
|
|
66
|
-
height: '100%',
|
|
67
|
-
animation: 'inherit',
|
|
68
|
-
backgroundImage: 'conic-gradient(currentcolor 135deg, transparent 135deg)',
|
|
69
|
-
},
|
|
70
|
-
'::after': {
|
|
71
|
-
animationName: getSpinnerAnimation(225),
|
|
72
|
-
},
|
|
73
|
-
'::before': {
|
|
74
|
-
maskImage: 'inherit',
|
|
75
|
-
animationName: getSpinnerAnimation(105)
|
|
76
|
-
},
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
export { getLoadingOverlayStyles };
|
|
82
|
-
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../../../../../src/components/Grid/core/components/AgGrid/components/LoadingOverlay/styles.ts"],"sourcesContent":["import { ITheme, keyframes, mergeStyleSets } from \"@fluentui/react\";\n\nconst getSpinnerAnimation = (degValue: number) => {\n return keyframes({\n '0%': {\n transform: 'rotate(0deg)'\n },\n '50%': {\n transform: `rotate(${degValue}deg)`\n },\n '100%': {\n transform: 'rotate(0deg)'\n }\n })\n}\n\nconst counterSpinner = keyframes({\n '0%': {\n transform: 'rotate(-135deg)'\n },\n '50%': {\n transform: `rotate(0deg)`\n },\n '100%': {\n transform: 'rotate(225deg)'\n }\n})\n\nconst rotate = keyframes({\n '0%': {\n transform: 'rotate(0deg)'\n },\n '100%': {\n transform: 'rotate(360deg)'\n }\n})\n\nexport const getLoadingOverlayStyles = (theme: ITheme) => {\n return mergeStyleSets({\n root: {\n borderWidth: '3px',\n position: 'relative',\n border: 'none',\n maskImage: 'radial-gradient(closest-side, transparent calc(100% - 3px), white calc(100% - 3px) calc(100% - 1px), transparent 100%)',\n backgroundColor: theme.palette.themeLighter,\n color: theme.palette.themePrimary,\n width: 36,\n height: 36,\n animationName: rotate,\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'linear'\n },\n tail: {\n position: 'absolute',\n display: 'block',\n width: '100%',\n height: '100%',\n maskImage: 'conic-gradient(transparent 105deg, white 105deg)',\n animationDuration: '1.5s',\n animationIterationCount: 'infinite',\n animationTimingFunction: 'cubic-bezier(0.33,0,0.67,1)',\n animationName: counterSpinner,\n '::after, ::before': {\n content: \"''\",\n position: 'absolute',\n display: 'block',\n width: '100%',\n height: '100%',\n animation: 'inherit',\n backgroundImage: 'conic-gradient(currentcolor 135deg, transparent 135deg)',\n },\n '::after': {\n animationName: getSpinnerAnimation(225),\n },\n '::before': {\n maskImage: 'inherit',\n animationName: getSpinnerAnimation(105)\n },\n }\n })\n}"],"names":[],"mappings":";;AAEA,MAAM,mBAAmB,GAAG,CAAC,QAAgB,KAAI;AAC7C,IAAA,OAAO,SAAS,CAAC;AACb,QAAA,IAAI,EAAE;AACF,YAAA,SAAS,EAAE,cAAc;AAC5B,SAAA;AACD,QAAA,KAAK,EAAE;YACH,SAAS,EAAE,CAAU,OAAA,EAAA,QAAQ,CAAM,IAAA,CAAA;AACtC,SAAA;AACD,QAAA,MAAM,EAAE;AACJ,YAAA,SAAS,EAAE,cAAc;AAC5B,SAAA;AACJ,KAAA,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,SAAS,CAAC;AAC7B,IAAA,IAAI,EAAE;AACF,QAAA,SAAS,EAAE,iBAAiB;AAC/B,KAAA;AACD,IAAA,KAAK,EAAE;AACH,QAAA,SAAS,EAAE,CAAc,YAAA,CAAA;AAC5B,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,SAAS,EAAE,gBAAgB;AAC9B,KAAA;AACJ,CAAA,CAAC,CAAA;AAEF,MAAM,MAAM,GAAG,SAAS,CAAC;AACrB,IAAA,IAAI,EAAE;AACF,QAAA,SAAS,EAAE,cAAc;AAC5B,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,SAAS,EAAE,gBAAgB;AAC9B,KAAA;AACJ,CAAA,CAAC,CAAA;AAEW,MAAA,uBAAuB,GAAG,CAAC,KAAa,KAAI;AACrD,IAAA,OAAO,cAAc,CAAC;AAClB,QAAA,IAAI,EAAE;AACF,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,wHAAwH;AACnI,YAAA,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;AAC3C,YAAA,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;AACjC,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,aAAa,EAAE,MAAM;AACrB,YAAA,iBAAiB,EAAE,MAAM;AACzB,YAAA,uBAAuB,EAAE,UAAU;AACnC,YAAA,uBAAuB,EAAE,QAAQ;AACpC,SAAA;AACD,QAAA,IAAI,EAAE;AACF,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,SAAS,EAAE,kDAAkD;AAC7D,YAAA,iBAAiB,EAAE,MAAM;AACzB,YAAA,uBAAuB,EAAE,UAAU;AACnC,YAAA,uBAAuB,EAAE,6BAA6B;AACtD,YAAA,aAAa,EAAE,cAAc;AAC7B,YAAA,mBAAmB,EAAE;AACjB,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,QAAQ,EAAE,UAAU;AACpB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,eAAe,EAAE,yDAAyD;AAC7E,aAAA;AACD,YAAA,SAAS,EAAE;AACP,gBAAA,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC;AAC1C,aAAA;AACD,YAAA,UAAU,EAAE;AACR,gBAAA,SAAS,EAAE,SAAS;AACpB,gBAAA,aAAa,EAAE,mBAAmB,CAAC,GAAG,CAAC;AAC1C,aAAA;AACJ,SAAA;AACJ,KAAA,CAAC,CAAA;AACN;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/// <reference types="powerapps-component-framework" />
|
|
2
|
-
/// <reference types="react" />
|
|
3
|
-
import { ColDef, GridApi, GridState } from "@ag-grid-community/core";
|
|
4
|
-
import "@ag-grid-community/styles/ag-grid.css";
|
|
5
|
-
import "@ag-grid-community/styles/ag-theme-balham.css";
|
|
6
|
-
import { IUpdatedRecord } from "../../../services/RecordUpdateService/model/RecordUpdateService";
|
|
7
|
-
import { IRecord } from "@talxis/client-libraries";
|
|
8
|
-
interface IAgGridController {
|
|
9
|
-
agColumns: ColDef[];
|
|
10
|
-
records: IRecord[];
|
|
11
|
-
stateRef: React.MutableRefObject<IAgGridState>;
|
|
12
|
-
getTotalColumnsWidth: () => number;
|
|
13
|
-
onGridReady: () => void;
|
|
14
|
-
}
|
|
15
|
-
interface IAgGridState extends GridState {
|
|
16
|
-
'__updatedRecords'?: IUpdatedRecord[];
|
|
17
|
-
initialPageSize?: number;
|
|
18
|
-
}
|
|
19
|
-
export declare const useAgGridController: (gridApiRef: React.MutableRefObject<GridApi<ComponentFramework.PropertyHelper.DataSetApi.EntityRecord> | undefined>) => IAgGridController;
|
|
20
|
-
export {};
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { useRef, useMemo, useState, useEffect } from 'react';
|
|
2
|
-
import { useGridController } from '../../../controllers/useGridController.js';
|
|
3
|
-
import { useGridInstance } from '../../../hooks/useGridInstance.js';
|
|
4
|
-
import { EditableCell } from '../../Cell/EditableCell/EditableCell.js';
|
|
5
|
-
import { ReadOnlyCell } from '../../Cell/ReadOnlyCell/ReadOnlyCell.js';
|
|
6
|
-
import { ColumnHeader } from '../../ColumnHeader/ColumnHeader.js';
|
|
7
|
-
import { GlobalCheckBox } from '../../ColumnHeader/components/GlobalCheckbox/GlobalCheckbox.js';
|
|
8
|
-
import { AgGrid } from '../model/AgGrid.js';
|
|
9
|
-
import { ModuleRegistry } from '@ag-grid-community/core';
|
|
10
|
-
import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
|
|
11
|
-
import { useDebounce } from 'use-debounce';
|
|
12
|
-
import '@ag-grid-community/styles/ag-grid.css';
|
|
13
|
-
import '@ag-grid-community/styles/ag-theme-balham.css';
|
|
14
|
-
import { usePagingController } from '../../../../paging/controllers/usePagingController.js';
|
|
15
|
-
import { useStateValues } from '@talxis/react-components';
|
|
16
|
-
import { CHECKBOX_COLUMN_KEY } from '../../../../constants.js';
|
|
17
|
-
|
|
18
|
-
ModuleRegistry.registerModules([ClientSideRowModelModule]);
|
|
19
|
-
const useAgGridController = (gridApiRef) => {
|
|
20
|
-
const grid = useGridInstance();
|
|
21
|
-
const pagingController = usePagingController();
|
|
22
|
-
const agGridReadyRef = useRef(false);
|
|
23
|
-
const agGrid = useMemo(() => new AgGrid(grid, gridApiRef), []);
|
|
24
|
-
const { columns } = useGridController();
|
|
25
|
-
const [agColumns, setAgColumns] = useState([]);
|
|
26
|
-
const [stateValuesRef, getNewStateValues, setDefaultStateValues] = useStateValues(grid.state);
|
|
27
|
-
//this is to prevent AgGrid from throwing errors in some rerender edge cases - https://github.com/ag-grid/ag-grid/issues/6013
|
|
28
|
-
const [agRecords] = useDebounce(grid.records, 0);
|
|
29
|
-
setTimeout(() => {
|
|
30
|
-
//set timeout to prevent ag grid from refreshing when another refresh is in progress
|
|
31
|
-
//debounce
|
|
32
|
-
gridApiRef.current?.refreshCells({
|
|
33
|
-
rowNodes: gridApiRef.current?.getRenderedNodes(),
|
|
34
|
-
force: true
|
|
35
|
-
});
|
|
36
|
-
}, 0);
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
if (!agGridReadyRef.current) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
agGrid.selectRows();
|
|
42
|
-
gridApiRef.current?.refreshHeader();
|
|
43
|
-
}, [grid.dataset.getSelectedRecordIds().join('')]);
|
|
44
|
-
useEffect(() => {
|
|
45
|
-
if (columns.length === 0) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const _agColumns = agGrid.columns;
|
|
49
|
-
for (const agColumn of _agColumns) {
|
|
50
|
-
agColumn.cellRenderer = ReadOnlyCell;
|
|
51
|
-
agColumn.cellEditor = EditableCell;
|
|
52
|
-
agColumn.headerComponent = ColumnHeader;
|
|
53
|
-
if (agColumn.field === CHECKBOX_COLUMN_KEY) {
|
|
54
|
-
agColumn.lockPosition = 'left';
|
|
55
|
-
agColumn.headerComponent = GlobalCheckBox;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
setAgColumns(_agColumns);
|
|
59
|
-
}, [columns]);
|
|
60
|
-
//this might be very Portal centric
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
if (!gridApiRef.current) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (grid.loading) {
|
|
66
|
-
gridApiRef.current.showLoadingOverlay();
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
gridApiRef.current.hideOverlay();
|
|
70
|
-
setTimeout(() => {
|
|
71
|
-
if (grid.records.length === 0) {
|
|
72
|
-
gridApiRef.current?.showNoRowsOverlay();
|
|
73
|
-
}
|
|
74
|
-
}, 0);
|
|
75
|
-
}, [grid.loading]);
|
|
76
|
-
useEffect(() => {
|
|
77
|
-
if (!gridApiRef.current) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
gridApiRef.current.ensureIndexVisible(0);
|
|
81
|
-
}, [pagingController.pageNumber]);
|
|
82
|
-
useEffect(() => {
|
|
83
|
-
const onBeforeUnload = (ev) => {
|
|
84
|
-
if (grid.recordUpdateService.isDirty) {
|
|
85
|
-
ev.preventDefault();
|
|
86
|
-
return 'Unsaved changes!';
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
window.addEventListener('beforeunload', onBeforeUnload);
|
|
90
|
-
return () => {
|
|
91
|
-
window.removeEventListener('beforeunload', onBeforeUnload);
|
|
92
|
-
if (!gridApiRef.current) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
stateValuesRef.current.__updatedRecords = grid.recordUpdateService.updatedRecords;
|
|
96
|
-
grid.pcfContext.mode.setControlState(getNewStateValues());
|
|
97
|
-
};
|
|
98
|
-
}, []);
|
|
99
|
-
//this can be replaced with native functionality if we decide to use ag grid enterprise
|
|
100
|
-
useEffect(() => {
|
|
101
|
-
const onKeyDownHandler = async (event) => {
|
|
102
|
-
// if control key(windows) or command key(iOS) + S key is clicked
|
|
103
|
-
if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === 'c') {
|
|
104
|
-
const cell = gridApiRef.current?.getFocusedCell();
|
|
105
|
-
if (!cell) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
const row = gridApiRef.current?.getDisplayedRowAtIndex(cell.rowIndex);
|
|
109
|
-
const formattedValue = gridApiRef.current?.getCellValue({
|
|
110
|
-
rowNode: row,
|
|
111
|
-
colKey: cell.column.getColId(),
|
|
112
|
-
useFormatter: true
|
|
113
|
-
});
|
|
114
|
-
navigator.clipboard.writeText(formattedValue ?? "");
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
window.addEventListener('keydown', onKeyDownHandler);
|
|
118
|
-
return () => {
|
|
119
|
-
window.removeEventListener('keydown', onKeyDownHandler);
|
|
120
|
-
};
|
|
121
|
-
}, []);
|
|
122
|
-
//TODO: find a better way to achieve this
|
|
123
|
-
useEffect(() => {
|
|
124
|
-
const globalClickHandler = (e) => {
|
|
125
|
-
const hasAncestorWithClass = (element, className) => {
|
|
126
|
-
let parent = element;
|
|
127
|
-
while (!parent.classList.contains('ag-theme-balham')) {
|
|
128
|
-
if (parent.classList.contains(className)) {
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
if (parent.tagName === 'HTML') {
|
|
132
|
-
return false;
|
|
133
|
-
}
|
|
134
|
-
parent = parent.parentElement;
|
|
135
|
-
if (!parent) {
|
|
136
|
-
return true;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return false;
|
|
140
|
-
};
|
|
141
|
-
try {
|
|
142
|
-
if (!hasAncestorWithClass(e.target, 'ag-cell')) {
|
|
143
|
-
gridApiRef.current?.stopEditing();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
catch (err) {
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
document.addEventListener('click', globalClickHandler);
|
|
150
|
-
return () => {
|
|
151
|
-
document.removeEventListener('click', globalClickHandler);
|
|
152
|
-
};
|
|
153
|
-
}, []);
|
|
154
|
-
const onGridReady = () => {
|
|
155
|
-
agGridReadyRef.current = true;
|
|
156
|
-
setDefaultStateValues({
|
|
157
|
-
...gridApiRef.current.getState(),
|
|
158
|
-
initialPageSize: undefined,
|
|
159
|
-
__updatedRecords: []
|
|
160
|
-
});
|
|
161
|
-
agGrid.selectRows();
|
|
162
|
-
};
|
|
163
|
-
return {
|
|
164
|
-
agColumns: agColumns,
|
|
165
|
-
records: agRecords,
|
|
166
|
-
stateRef: stateValuesRef,
|
|
167
|
-
getTotalColumnsWidth: () => agGrid.getTotalColumnsWidth(),
|
|
168
|
-
onGridReady: onGridReady
|
|
169
|
-
};
|
|
170
|
-
};
|
|
171
|
-
|
|
172
|
-
export { useAgGridController };
|
|
173
|
-
//# sourceMappingURL=useAgGridController.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAgGridController.js","sources":["../../../../../../../src/components/Grid/core/components/AgGrid/controllers/useAgGridController.ts"],"sourcesContent":["import { ColDef, GridApi, GridState } from \"@ag-grid-community/core\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { useGridController } from \"../../../controllers/useGridController\"\nimport { useGridInstance } from \"../../../hooks/useGridInstance\";\nimport { EditableCell } from \"../../Cell/EditableCell/EditableCell\";\nimport { ReadOnlyCell } from \"../../Cell/ReadOnlyCell/ReadOnlyCell\";\nimport { ColumnHeader } from \"../../ColumnHeader/ColumnHeader\";\nimport { GlobalCheckBox } from \"../../ColumnHeader/components/GlobalCheckbox/GlobalCheckbox\";\nimport { AgGrid } from \"../model/AgGrid\";\nimport { ModuleRegistry } from '@ag-grid-community/core';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { useDebounce } from 'use-debounce';\nimport \"@ag-grid-community/styles/ag-grid.css\";\nimport \"@ag-grid-community/styles/ag-theme-balham.css\";\nimport { usePagingController } from \"../../../../paging/controllers/usePagingController\";\nimport { useStateValues } from \"@talxis/react-components\";\nimport { IUpdatedRecord } from \"../../../services/RecordUpdateService/model/RecordUpdateService\";\nimport { IRecord } from \"@talxis/client-libraries\";\nimport { CHECKBOX_COLUMN_KEY } from \"../../../../constants\";\nModuleRegistry.registerModules([ClientSideRowModelModule]);\n\ninterface IAgGridController {\n agColumns: ColDef[],\n records: IRecord[],\n stateRef: React.MutableRefObject<IAgGridState>\n getTotalColumnsWidth: () => number,\n onGridReady: () => void;\n}\n\ninterface IAgGridState extends GridState {\n '__updatedRecords'?: IUpdatedRecord[];\n initialPageSize?: number;\n}\n\nexport const useAgGridController = (gridApiRef: React.MutableRefObject<GridApi<ComponentFramework.PropertyHelper.DataSetApi.EntityRecord> | undefined>): IAgGridController => {\n const grid = useGridInstance();\n const pagingController = usePagingController();\n const agGridReadyRef = useRef<boolean>(false);\n const agGrid = useMemo(() => new AgGrid(grid, gridApiRef), [])\n const { columns } = useGridController();\n const [agColumns, setAgColumns] = useState<ColDef[]>([]);\n const [stateValuesRef, getNewStateValues, setDefaultStateValues] = useStateValues<IAgGridState>(grid.state as IAgGridState);\n //this is to prevent AgGrid from throwing errors in some rerender edge cases - https://github.com/ag-grid/ag-grid/issues/6013\n const [agRecords] = useDebounce(grid.records, 0);\n\n setTimeout(() => {\n //set timeout to prevent ag grid from refreshing when another refresh is in progress\n //debounce\n gridApiRef.current?.refreshCells({\n rowNodes: gridApiRef.current?.getRenderedNodes(),\n force: true\n });\n }, 0);\n\n useEffect(() => {\n if (!agGridReadyRef.current) {\n return;\n }\n agGrid.selectRows();\n gridApiRef.current?.refreshHeader();\n }, [grid.dataset.getSelectedRecordIds().join('')]);\n\n useEffect(() => {\n if (columns.length === 0) {\n return;\n }\n const _agColumns = agGrid.columns;\n for (const agColumn of _agColumns) {\n agColumn.cellRenderer = ReadOnlyCell;\n agColumn.cellEditor = EditableCell;\n agColumn.headerComponent = ColumnHeader;\n\n if (agColumn.field === CHECKBOX_COLUMN_KEY) {\n agColumn.lockPosition = 'left';\n agColumn.headerComponent = GlobalCheckBox\n }\n }\n setAgColumns(_agColumns);\n }, [columns]);\n\n //this might be very Portal centric\n useEffect(() => {\n if (!gridApiRef.current) {\n return;\n }\n if (grid.loading) {\n gridApiRef.current.showLoadingOverlay();\n return;\n }\n gridApiRef.current.hideOverlay();\n setTimeout(() => {\n if (grid.records.length === 0) {\n gridApiRef.current?.showNoRowsOverlay();\n }\n }, 0);\n }, [grid.loading]);\n\n\n useEffect(() => {\n if (!gridApiRef.current) {\n return;\n }\n gridApiRef.current.ensureIndexVisible(0)\n }, [pagingController.pageNumber]);\n\n useEffect(() => {\n const onBeforeUnload = (ev: BeforeUnloadEvent) => {\n if (grid.recordUpdateService.isDirty) {\n ev.preventDefault();\n return 'Unsaved changes!'\n }\n }\n window.addEventListener('beforeunload', onBeforeUnload);\n return () => {\n window.removeEventListener('beforeunload', onBeforeUnload);\n if (!gridApiRef.current) {\n return;\n }\n stateValuesRef.current.__updatedRecords = grid.recordUpdateService.updatedRecords;\n grid.pcfContext.mode.setControlState(getNewStateValues());\n }\n }, []);\n\n //this can be replaced with native functionality if we decide to use ag grid enterprise\n useEffect(() => {\n const onKeyDownHandler = async (event: KeyboardEvent) => {\n // if control key(windows) or command key(iOS) + S key is clicked\n if ((event.ctrlKey || event.metaKey) && event.key.toLowerCase() === 'c') {\n const cell = gridApiRef.current?.getFocusedCell();\n if (!cell) {\n return;\n }\n const row = gridApiRef.current?.getDisplayedRowAtIndex(cell.rowIndex);\n const formattedValue = gridApiRef.current?.getCellValue({\n rowNode: row!,\n colKey: cell.column.getColId(),\n useFormatter: true\n })\n navigator.clipboard.writeText(formattedValue ?? \"\");\n }\n }\n window.addEventListener('keydown', onKeyDownHandler)\n return () => {\n window.removeEventListener('keydown', onKeyDownHandler);\n }\n }, []);\n\n //TODO: find a better way to achieve this\n useEffect(() => {\n const globalClickHandler = (e: MouseEvent) => {\n const hasAncestorWithClass = (element: HTMLElement, className: string): boolean => {\n let parent = element;\n while (!parent.classList.contains('ag-theme-balham')) {\n if (parent.classList.contains(className)) {\n return true;\n }\n if (parent.tagName === 'HTML') {\n return false;\n }\n parent = parent.parentElement!;\n if (!parent) {\n return true;\n }\n }\n return false;\n };\n try {\n if (!hasAncestorWithClass(e.target as HTMLElement, 'ag-cell')) {\n gridApiRef.current?.stopEditing();\n }\n }\n catch (err) {\n }\n }\n document.addEventListener('click', globalClickHandler)\n return () => {\n document.removeEventListener('click', globalClickHandler);\n }\n }, []);\n\n const onGridReady = () => {\n agGridReadyRef.current = true;\n setDefaultStateValues({\n ...gridApiRef.current!.getState(),\n initialPageSize: undefined,\n __updatedRecords: []\n });\n agGrid.selectRows();\n }\n\n return {\n agColumns: agColumns,\n records: agRecords,\n stateRef: stateValuesRef,\n getTotalColumnsWidth: () => agGrid.getTotalColumnsWidth(),\n onGridReady: onGridReady\n }\n}"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { IUpdatedRecord } from '../../../../../../services/RecordUpdateService/model/RecordUpdateService';
|
|
3
|
-
interface IRecordGrids {
|
|
4
|
-
record: IUpdatedRecord;
|
|
5
|
-
}
|
|
6
|
-
export declare const RecordGrids: (props: IRecordGrids) => JSX.Element;
|
|
7
|
-
export {};
|