@adaptabletools/adaptable 18.0.0-canary.8 → 18.0.0-canary.9
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/base.css.map +1 -1
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +8 -1
- package/src/AdaptableOptions/AdaptableOptions.d.ts +1 -1
- package/src/Api/ConfigApi.d.ts +1 -1
- package/src/Api/GridApi.d.ts +4 -0
- package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -0
- package/src/Api/Implementation/CommentsApiImpl.js +5 -0
- package/src/Api/Implementation/ConfigApiImpl.js +6 -3
- package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
- package/src/Api/Implementation/GridApiImpl.js +13 -0
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -4
- package/src/Api/Implementation/LayoutApiImpl.js +15 -14
- package/src/Api/Implementation/NotesApiImpl.d.ts +4 -0
- package/src/Api/Implementation/NotesApiImpl.js +5 -0
- package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ScopeApiImpl.js +20 -7
- package/src/Api/Internal/CalculatedColumnInternalApi.js +1 -1
- package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
- package/src/Api/Internal/CommentsInternalApi.js +13 -0
- package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
- package/src/Api/Internal/FreeTextColumnInternalApi.js +1 -1
- package/src/Api/Internal/NotesInternalApi.d.ts +4 -0
- package/src/Api/Internal/NotesInternalApi.js +13 -0
- package/src/Api/LayoutApi.d.ts +11 -8
- package/src/Api/ScopeApi.d.ts +10 -0
- package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
- package/src/PredefinedConfig/Common/RowSummary.d.ts +7 -0
- package/src/PredefinedConfig/Common/RowSummary.js +1 -0
- package/src/PredefinedConfig/LayoutState.d.ts +5 -0
- package/src/PredefinedConfig/SystemState.d.ts +7 -0
- package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
- package/src/Redux/ActionsReducers/LayoutRedux.js +20 -0
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +13 -1
- package/src/Redux/Store/AdaptableStore.js +11 -0
- package/src/Redux/Store/Interface/IAdaptableStore.d.ts +2 -2
- package/src/Strategy/CellSummaryModule.d.ts +1 -0
- package/src/Strategy/CellSummaryModule.js +50 -21
- package/src/Strategy/CommentsModule.js +3 -0
- package/src/Strategy/LayoutModule.d.ts +7 -0
- package/src/Strategy/LayoutModule.js +102 -3
- package/src/Strategy/NotesModule.js +3 -4
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -1
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +294 -0
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
- package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/ArrayExtensions.js +4 -0
- package/src/Utilities/ObjectFactory.js +6 -6
- package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +3 -2
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +11 -8
- package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
- package/src/Utilities/Services/LicenseService/index.js +4 -1
- package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
- package/src/Utilities/Services/QueryLanguageService.js +2 -1
- package/src/Utilities/Services/SummaryService.d.ts +19 -0
- package/src/Utilities/Services/SummaryService.js +29 -0
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- package/src/View/Components/NewScopeComponent.js +32 -1
- package/src/View/Layout/TransposedPopup.js +7 -6
- package/src/agGrid/AdaptableAgGrid.d.ts +15 -1
- package/src/agGrid/AdaptableAgGrid.js +131 -23
- package/src/agGrid/AgGridAdapter.d.ts +1 -0
- package/src/agGrid/AgGridAdapter.js +8 -0
- package/src/agGrid/AgGridColumnAdapter.js +14 -3
- package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/Input/index.d.ts +1 -1
- package/src/components/List/ListGroupItem/index.d.ts +1 -1
- package/src/components/icons/index.js +2 -0
- package/src/components/icons/rows.d.ts +3 -0
- package/src/components/icons/rows.js +4 -0
- package/src/env.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +8 -0
- package/src/metamodel/adaptable.metamodel.js +18 -0
- package/src/parser/src/types.d.ts +5 -0
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/View/Components/ScopeComponent.d.ts +0 -24
- package/src/View/Components/ScopeComponent.js +0 -133
- package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
- package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { AdaptableInputProps } from '../AdaptableInput';
|
|
3
3
|
export type AdaptableDateInputProps = AdaptableInputProps;
|
|
4
|
-
declare const AdaptableDateInput: React.ForwardRefExoticComponent<Pick<import("../../../components/Input").InputProps, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "
|
|
4
|
+
declare const AdaptableDateInput: React.ForwardRefExoticComponent<Pick<import("../../../components/Input").InputProps, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode" | "placehoder"> & React.RefAttributes<HTMLInputElement>>;
|
|
5
5
|
export default AdaptableDateInput;
|
|
@@ -79,6 +79,9 @@ export const NewScopeComponent = (props) => {
|
|
|
79
79
|
if (scopeApi.scopeHasDataType(props.scope)) {
|
|
80
80
|
return 'DataType';
|
|
81
81
|
}
|
|
82
|
+
if (scopeApi.scopeHasColumnType(props.scope)) {
|
|
83
|
+
return 'ColumnType';
|
|
84
|
+
}
|
|
82
85
|
return undefined;
|
|
83
86
|
};
|
|
84
87
|
const onScopeSelectChanged = (value) => {
|
|
@@ -93,6 +96,11 @@ export const NewScopeComponent = (props) => {
|
|
|
93
96
|
DataTypes: [],
|
|
94
97
|
};
|
|
95
98
|
}
|
|
99
|
+
else if (value == 'ColumnType') {
|
|
100
|
+
newScope = {
|
|
101
|
+
ColumnTypes: [],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
96
104
|
else {
|
|
97
105
|
newScope = {
|
|
98
106
|
All: true,
|
|
@@ -128,6 +136,9 @@ export const NewScopeComponent = (props) => {
|
|
|
128
136
|
if (Array.isArray(props.availableDataTypes)) {
|
|
129
137
|
dataTypeOptions = props.availableDataTypes.map((dataType) => DATA_TYPES_MAP[dataType]);
|
|
130
138
|
}
|
|
139
|
+
const hasColumnTypes = React.useMemo(() => {
|
|
140
|
+
return api.optionsApi.getColumnOptions().columnTypes.length > 0;
|
|
141
|
+
}, []);
|
|
131
142
|
return (React.createElement(Tabs, { "data-name": 'scope-component', className: "ab-ScopeComponent", value: scopeChoice, style: Object.assign({ height: '100%' }, props.style), onValueChange: onScopeSelectChanged },
|
|
132
143
|
props.hideWholeRow ? null : (React.createElement(Tabs.Tab, { value: "Row" },
|
|
133
144
|
React.createElement(Radio, { margin: 0, checked: scopeChoice == 'All', tabIndex: -1 }, "All Columns"))),
|
|
@@ -135,6 +146,8 @@ export const NewScopeComponent = (props) => {
|
|
|
135
146
|
React.createElement(Radio, { margin: 0, value: "Column", checked: scopeChoice == 'Column', tabIndex: -1 }, "Selected Columns"))),
|
|
136
147
|
!props.disableDataTypes && (React.createElement(Tabs.Tab, { value: "DataType" },
|
|
137
148
|
React.createElement(Radio, { margin: 0, value: "DataType", checked: scopeChoice == 'DataType', tabIndex: -1 }, "Data Types"))),
|
|
149
|
+
hasColumnTypes && (React.createElement(Tabs.Tab, { value: "ColumnType" },
|
|
150
|
+
React.createElement(Radio, { margin: 0, value: "ColumnType", checked: scopeChoice == 'ColumnType', tabIndex: -1 }, "Column Types"))),
|
|
138
151
|
props.hideWholeRow ? null : (React.createElement(Tabs.Content, { value: "Row", style: { flex: 'none' }, "data-name": "row-scope" },
|
|
139
152
|
React.createElement(Text, { padding: 2, pl: 0, fontSize: 2 }, props.descriptions.rowScope))),
|
|
140
153
|
!props.disableColumns && (React.createElement(Tabs.Content, { value: "Column", style: { flex: 1, overflow: 'auto' }, "data-name": "column-scope", padding: 0 },
|
|
@@ -147,5 +160,23 @@ export const NewScopeComponent = (props) => {
|
|
|
147
160
|
!props.disableDataTypes && (React.createElement(Tabs.Content, { value: "DataType", style: { flex: 'none' }, "data-name": "datatype-scope" },
|
|
148
161
|
React.createElement(Box, null,
|
|
149
162
|
props.descriptions.dataTypeScope && (React.createElement(Text, { p: 2, pl: 0, mb: 2, fontSize: 2 }, props.descriptions.dataTypeScope)),
|
|
150
|
-
React.createElement(Flex, { flexDirection: "column" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox, { "data-name": "scope", "data-value": dataTypeOption.value, key: dataTypeOption.value, checked: dataTypesInScope && dataTypesInScope.includes(dataTypeOption.value), onChange: (checked) => onCheckBoxDataTypeChecked(checked, dataTypeOption.value) }, dataTypeOption.label)))))))
|
|
163
|
+
React.createElement(Flex, { flexDirection: "column" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox, { "data-name": "scope", "data-value": dataTypeOption.value, key: dataTypeOption.value, checked: dataTypesInScope && dataTypesInScope.includes(dataTypeOption.value), onChange: (checked) => onCheckBoxDataTypeChecked(checked, dataTypeOption.value) }, dataTypeOption.label))))))),
|
|
164
|
+
hasColumnTypes && (React.createElement(Tabs.Content, { value: "ColumnType", style: { flex: 'none' }, "data-name": "column-type-scope" },
|
|
165
|
+
React.createElement(Box, null,
|
|
166
|
+
React.createElement(Flex, { flexDirection: "column" }, api.optionsApi.getColumnOptions().columnTypes.map((columnType) => {
|
|
167
|
+
var _a;
|
|
168
|
+
return (React.createElement(CheckBox, { "data-name": "scope", "data-value": columnType, key: columnType, checked: 'ColumnTypes' in props.scope && ((_a = props.scope.ColumnTypes) === null || _a === void 0 ? void 0 : _a.includes(columnType)), onChange: (checked) => {
|
|
169
|
+
let columnTypes = [].concat(props.scope.ColumnTypes);
|
|
170
|
+
if (checked) {
|
|
171
|
+
columnTypes.push(columnType);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
columnTypes = columnTypes.filter((ct) => ct !== columnType);
|
|
175
|
+
}
|
|
176
|
+
let newScope = {
|
|
177
|
+
ColumnTypes: columnTypes,
|
|
178
|
+
};
|
|
179
|
+
props.updateScope(newScope);
|
|
180
|
+
} }, columnType));
|
|
181
|
+
})))))));
|
|
151
182
|
};
|
|
@@ -4,6 +4,7 @@ import FormLayout, { FormRow } from '../../components/FormLayout';
|
|
|
4
4
|
import Panel from '../../components/Panel';
|
|
5
5
|
import { useAdaptable } from '../AdaptableContext';
|
|
6
6
|
import { ColumnSelector } from '../Components/Selectors/ColumnSelector';
|
|
7
|
+
import { AdaptableAgGrid } from '../../agGrid/AdaptableAgGrid';
|
|
7
8
|
export const TransposedPopup = (props) => {
|
|
8
9
|
const adaptable = useAdaptable();
|
|
9
10
|
const rowNodes = React.useMemo(() => {
|
|
@@ -155,14 +156,14 @@ export const TransposedPopup = (props) => {
|
|
|
155
156
|
sideBar: false,
|
|
156
157
|
};
|
|
157
158
|
const modules = adaptable.getAgGridRegisteredModules();
|
|
158
|
-
const adaptableInitFn = Object.getPrototypeOf(adaptable).constructor.init;
|
|
159
|
-
const agGridConfig = {
|
|
160
|
-
gridOptions: agGridOptions,
|
|
161
|
-
modules: modules,
|
|
162
|
-
};
|
|
163
159
|
let transposedAdaptableApi;
|
|
164
160
|
(async () => {
|
|
165
|
-
transposedAdaptableApi = await
|
|
161
|
+
transposedAdaptableApi = await AdaptableAgGrid._initInternal({
|
|
162
|
+
variant: 'vanilla',
|
|
163
|
+
adaptableOptions,
|
|
164
|
+
gridOptions: agGridOptions,
|
|
165
|
+
modules,
|
|
166
|
+
});
|
|
166
167
|
adaptable.api.eventApi.on('ThemeChanged', (event) => {
|
|
167
168
|
transposedAdaptableApi.themeApi.loadTheme(typeof event.theme === 'object' ? event.theme.Name : event.theme);
|
|
168
169
|
});
|
|
@@ -26,6 +26,7 @@ import { RenderReactRootFn } from '../renderReactRoot';
|
|
|
26
26
|
import { AgGridOptionsService } from './AgGridOptionsService';
|
|
27
27
|
import { AgGridColumnAdapter } from './AgGridColumnAdapter';
|
|
28
28
|
import { RowEditService } from '../Utilities/Services/RowEditService';
|
|
29
|
+
import { SummaryService } from '../Utilities/Services/SummaryService';
|
|
29
30
|
export type AdaptableVariant = 'vanilla' | 'react' | 'angular';
|
|
30
31
|
export type AdaptableLifecycleState = 'initial' | 'preprocessOptions' | 'initAdaptableState' | 'setupAgGrid' | 'initAgGrid' | 'available' | 'ready' | 'preDestroyed';
|
|
31
32
|
type RenderAgGridFrameworkComponentResult = false | GridApi;
|
|
@@ -52,6 +53,11 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
52
53
|
hasAutogeneratedPrimaryKey: boolean;
|
|
53
54
|
hasAdaptableToolPanel: boolean;
|
|
54
55
|
private initWithLazyData;
|
|
56
|
+
/**
|
|
57
|
+
* once layouts are properly handled with the new aggrid methods & events
|
|
58
|
+
* we can remove this hack
|
|
59
|
+
*/
|
|
60
|
+
private previousAgGridColumnState;
|
|
55
61
|
_rawAdaptableOptions: AdaptableOptions;
|
|
56
62
|
adaptableOptions: AdaptableOptions;
|
|
57
63
|
agGridOptionsService: AgGridOptionsService;
|
|
@@ -76,6 +82,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
76
82
|
RowEditService: RowEditService;
|
|
77
83
|
Fdc3Service: Fdc3Service;
|
|
78
84
|
CellPopupService: CellPopupService;
|
|
85
|
+
SummaryService: SummaryService;
|
|
79
86
|
private LicenseService;
|
|
80
87
|
private ChartingService;
|
|
81
88
|
private ThemeService;
|
|
@@ -129,6 +136,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
129
136
|
private _initAdaptableAgGrid;
|
|
130
137
|
private normaliseLayoutState;
|
|
131
138
|
private normaliseToolPanelState;
|
|
139
|
+
refreshQuickFilter(): void;
|
|
132
140
|
applyColumnFiltering(): void;
|
|
133
141
|
applyGridFiltering(): void;
|
|
134
142
|
private refreshColDefs;
|
|
@@ -152,6 +160,8 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
152
160
|
private initAdaptableStore;
|
|
153
161
|
private mapAdaptableStateToAgGridState;
|
|
154
162
|
private addGridEventListeners;
|
|
163
|
+
private shouldAutoSizeLayout;
|
|
164
|
+
private autoSizeLayoutIfNeeded;
|
|
155
165
|
private performAudit;
|
|
156
166
|
forPlugins(callback: (plugin: AdaptablePlugin) => any): void;
|
|
157
167
|
getPluginProperty(pluginId: string, propertyName: string, ...args: any): any;
|
|
@@ -175,7 +185,9 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
175
185
|
getDisplayValueFromRawValue(rowNode: IRowNode, columnId: string, rawValue: any): string | undefined;
|
|
176
186
|
private getCleanValue;
|
|
177
187
|
getNormalisedValueFromRawValue(rawValue: any, column: AdaptableColumn): string | number | boolean | Date | unknown;
|
|
178
|
-
updateColumnModelAndRefreshGrid(
|
|
188
|
+
updateColumnModelAndRefreshGrid(config?: {
|
|
189
|
+
skipColDefsRefresh?: boolean;
|
|
190
|
+
}): void;
|
|
179
191
|
redrawBody(): void;
|
|
180
192
|
refreshHeader(): void;
|
|
181
193
|
redrawRows(rowNodes?: IRowNode[]): void;
|
|
@@ -333,5 +345,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
333
345
|
private restoreUnGroupColumnOrder;
|
|
334
346
|
private onSortChanged;
|
|
335
347
|
private getColumnSorts;
|
|
348
|
+
setPinnedRows(pinnedRows: any, location: 'top' | 'bottom'): void;
|
|
349
|
+
setupRowSummaries(): void;
|
|
336
350
|
}
|
|
337
351
|
export {};
|
|
@@ -95,6 +95,7 @@ import { AdaptableUpgradeHelper } from '../migration/AdaptableUpgradeHelper';
|
|
|
95
95
|
import { ensurePortalElement } from '../components/Modal';
|
|
96
96
|
import { AdaptableLoadingScreen } from '../View/Components/Popups/AdaptableLoadingScreen';
|
|
97
97
|
import { createElement } from 'react';
|
|
98
|
+
import { SummaryService } from '../Utilities/Services/SummaryService';
|
|
98
99
|
const RowNodeProto = RowNode.prototype;
|
|
99
100
|
const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
|
|
100
101
|
/**
|
|
@@ -138,6 +139,11 @@ const adaptableInstances = {};
|
|
|
138
139
|
const publishTimestamp = Number(ADAPTABLE_PUBLISH_TIMESTAMP);
|
|
139
140
|
export class AdaptableAgGrid {
|
|
140
141
|
constructor() {
|
|
142
|
+
/**
|
|
143
|
+
* once layouts are properly handled with the new aggrid methods & events
|
|
144
|
+
* we can remove this hack
|
|
145
|
+
*/
|
|
146
|
+
this.previousAgGridColumnState = '';
|
|
141
147
|
this.columnMinMaxValuesCache = {};
|
|
142
148
|
this.renderReactRoot = (node, container) => defaultRenderReactRoot(node, container);
|
|
143
149
|
/**
|
|
@@ -251,8 +257,7 @@ export class AdaptableAgGrid {
|
|
|
251
257
|
this.lifecycleState = 'preprocessOptions';
|
|
252
258
|
this._rawAdaptableOptions = config.adaptableOptions;
|
|
253
259
|
if (StringExtensions.IsNullOrEmptyOrWhiteSpace(this._rawAdaptableOptions.adaptableId)) {
|
|
254
|
-
|
|
255
|
-
this._rawAdaptableOptions.adaptableId = `AdapTable_${Date.now()}`;
|
|
260
|
+
this._rawAdaptableOptions.adaptableId = `adaptable_id_${Date.now()}`;
|
|
256
261
|
}
|
|
257
262
|
this.logger = (_a = this.logger) !== null && _a !== void 0 ? _a : new AdaptableLogger(this._rawAdaptableOptions.adaptableId);
|
|
258
263
|
const perfInitAdaptableAgGrid = this.logger.beginPerf(`Adaptable._initAdaptableAgGrid()`);
|
|
@@ -451,15 +456,21 @@ export class AdaptableAgGrid {
|
|
|
451
456
|
state.ToolPanel = toolPanelState;
|
|
452
457
|
return state;
|
|
453
458
|
}
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
else {
|
|
460
|
-
this.hideQuickFilter();
|
|
461
|
-
}
|
|
459
|
+
refreshQuickFilter() {
|
|
460
|
+
const isQuickFilterVisible = this.api.internalApi.getSystemState().IsQuickFilterVisible;
|
|
461
|
+
const isQuickFilterAvailable = this.isQuickFilterAvailable();
|
|
462
|
+
if (isQuickFilterVisible === isQuickFilterAvailable) {
|
|
463
|
+
return;
|
|
462
464
|
}
|
|
465
|
+
if (isQuickFilterAvailable) {
|
|
466
|
+
this.api.columnFilterApi.showQuickFilterBar();
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
this.api.columnFilterApi.hideQuickFilterBar();
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
applyColumnFiltering() {
|
|
473
|
+
this.refreshQuickFilter();
|
|
463
474
|
this.applyGridFiltering();
|
|
464
475
|
this.agGridAdapter.updateColumnFilterActiveState();
|
|
465
476
|
}
|
|
@@ -702,6 +713,20 @@ export class AdaptableAgGrid {
|
|
|
702
713
|
return nodeA.key < nodeB.key ? -1 : 1;
|
|
703
714
|
};
|
|
704
715
|
});
|
|
716
|
+
/**
|
|
717
|
+
* `autoSizeStrategy`
|
|
718
|
+
*
|
|
719
|
+
* This is needed here, even if we do auto sizing on FIRST_DATA_RENDERED.
|
|
720
|
+
* Sometimes FIRST_DATA_RENDERED is triggered too early and autoSizing doesn't work initially
|
|
721
|
+
* so we need this block
|
|
722
|
+
*/
|
|
723
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'autoSizeStrategy', (original_autoSizeStrategy) => {
|
|
724
|
+
return this.shouldAutoSizeLayout()
|
|
725
|
+
? {
|
|
726
|
+
type: 'fitCellContents',
|
|
727
|
+
}
|
|
728
|
+
: original_autoSizeStrategy;
|
|
729
|
+
});
|
|
705
730
|
}
|
|
706
731
|
/**
|
|
707
732
|
* `components`
|
|
@@ -850,6 +875,16 @@ export class AdaptableAgGrid {
|
|
|
850
875
|
return (returnValue === null || returnValue === void 0 ? void 0 : returnValue.length) ? returnValue : undefined;
|
|
851
876
|
};
|
|
852
877
|
});
|
|
878
|
+
/**
|
|
879
|
+
* `floatingFiltersHeight`
|
|
880
|
+
*/
|
|
881
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'floatingFiltersHeight', (original_floatingFiltersHeight) => {
|
|
882
|
+
if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
|
|
883
|
+
// if the default layout is a pivot on, hide the floating filters from the beginning, otherwise we get an annoying flicker
|
|
884
|
+
return 0;
|
|
885
|
+
}
|
|
886
|
+
return original_floatingFiltersHeight;
|
|
887
|
+
});
|
|
853
888
|
/**
|
|
854
889
|
* `columnTypes`
|
|
855
890
|
*/
|
|
@@ -1235,7 +1270,9 @@ export class AdaptableAgGrid {
|
|
|
1235
1270
|
if (this.initWithLazyData) {
|
|
1236
1271
|
this.updateColumnModelAndRefreshGrid();
|
|
1237
1272
|
this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
|
|
1273
|
+
this._emit('FirstDataRendered');
|
|
1238
1274
|
}
|
|
1275
|
+
this.autoSizeLayoutIfNeeded();
|
|
1239
1276
|
}));
|
|
1240
1277
|
/**
|
|
1241
1278
|
* Use Case: Entered or Left Pivot Mode
|
|
@@ -1437,6 +1474,25 @@ export class AdaptableAgGrid {
|
|
|
1437
1474
|
},
|
|
1438
1475
|
};
|
|
1439
1476
|
}
|
|
1477
|
+
shouldAutoSizeLayout() {
|
|
1478
|
+
const { layoutApi } = this.api;
|
|
1479
|
+
const { layoutOptions } = this.adaptableOptions;
|
|
1480
|
+
const currentLayout = layoutApi.getCurrentLayout();
|
|
1481
|
+
if (currentLayout.ColumnWidthMap && Object.keys(currentLayout.ColumnWidthMap).length > 0) {
|
|
1482
|
+
return;
|
|
1483
|
+
}
|
|
1484
|
+
const autoSize = currentLayout.EnablePivot
|
|
1485
|
+
? layoutOptions.autoSizeColumnsInPivotLayout
|
|
1486
|
+
: layoutOptions.autoSizeColumnsInLayout;
|
|
1487
|
+
return autoSize;
|
|
1488
|
+
}
|
|
1489
|
+
autoSizeLayoutIfNeeded() {
|
|
1490
|
+
if (this.shouldAutoSizeLayout()) {
|
|
1491
|
+
requestAnimationFrame(() => {
|
|
1492
|
+
this.autoSizeAllColumns();
|
|
1493
|
+
});
|
|
1494
|
+
}
|
|
1495
|
+
}
|
|
1440
1496
|
performAudit(action, oldState, newState) {
|
|
1441
1497
|
if (this.isReady) {
|
|
1442
1498
|
const adaptableStateChangedInfo = {
|
|
@@ -1492,6 +1548,7 @@ export class AdaptableAgGrid {
|
|
|
1492
1548
|
this.AlertService = new AlertService(this.api);
|
|
1493
1549
|
this.TeamSharingService = new TeamSharingService(this.api);
|
|
1494
1550
|
this.Fdc3Service = new Fdc3Service(this.api);
|
|
1551
|
+
this.SummaryService = new SummaryService(this.api);
|
|
1495
1552
|
this.CellPopupService = new CellPopupService(this.api);
|
|
1496
1553
|
this.RowEditService = new RowEditService(this.api);
|
|
1497
1554
|
this.MetamodelService = new MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
|
|
@@ -1752,7 +1809,10 @@ export class AdaptableAgGrid {
|
|
|
1752
1809
|
}
|
|
1753
1810
|
return rawValue;
|
|
1754
1811
|
}
|
|
1755
|
-
updateColumnModelAndRefreshGrid() {
|
|
1812
|
+
updateColumnModelAndRefreshGrid(config) {
|
|
1813
|
+
if (!(config === null || config === void 0 ? void 0 : config.skipColDefsRefresh)) {
|
|
1814
|
+
this.refreshColDefs();
|
|
1815
|
+
}
|
|
1756
1816
|
this.deriveAdaptableColumnStateFromAgGrid();
|
|
1757
1817
|
this.agGridColumnAdapter.setupColumns();
|
|
1758
1818
|
this.redrawBody();
|
|
@@ -2865,6 +2925,7 @@ export class AdaptableAgGrid {
|
|
|
2865
2925
|
else {
|
|
2866
2926
|
(_b = this.agGridAdapter.getAgGridApi()) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
2867
2927
|
}
|
|
2928
|
+
this.previousAgGridColumnState = '';
|
|
2868
2929
|
const gridContainerElement = this.getAgGridContainerElement();
|
|
2869
2930
|
if (gridContainerElement) {
|
|
2870
2931
|
gridContainerElement.removeEventListener('keydown', this.agGridListenerKeydown);
|
|
@@ -3030,6 +3091,10 @@ export class AdaptableAgGrid {
|
|
|
3030
3091
|
// });
|
|
3031
3092
|
}
|
|
3032
3093
|
isQuickFilterAvailable() {
|
|
3094
|
+
if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
|
|
3095
|
+
// hide completely the quick filter if pivot is enabled
|
|
3096
|
+
return false;
|
|
3097
|
+
}
|
|
3033
3098
|
return this.hasFloatingFilterOnAtLeastOneColumn(this.agGridAdapter.getAgGridApi().getColumnDefs());
|
|
3034
3099
|
}
|
|
3035
3100
|
hasFloatingFilterOnAtLeastOneColumn(columnDefs) {
|
|
@@ -3254,18 +3319,20 @@ export class AdaptableAgGrid {
|
|
|
3254
3319
|
requestAnimationFrame(() => {
|
|
3255
3320
|
this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
|
|
3256
3321
|
});
|
|
3257
|
-
//but if it's also the first time the grid is loading
|
|
3258
|
-
//it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
|
|
3259
|
-
setTimeout(() => {
|
|
3260
|
-
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
}, 100);
|
|
3322
|
+
// //but if it's also the first time the grid is loading
|
|
3323
|
+
// //it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
|
|
3324
|
+
// setTimeout(() => {
|
|
3325
|
+
// this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
|
|
3326
|
+
// setTimeout(() => {
|
|
3327
|
+
// this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
|
|
3328
|
+
// }, 200);
|
|
3329
|
+
// }, 100);
|
|
3265
3330
|
}
|
|
3266
|
-
else
|
|
3267
|
-
|
|
3268
|
-
|
|
3331
|
+
else {
|
|
3332
|
+
if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
|
|
3333
|
+
colsToAutoSizeArray.length) {
|
|
3334
|
+
this.agGridAdapter.getAgGridApi().autoSizeColumns(colsToAutoSizeArray);
|
|
3335
|
+
}
|
|
3269
3336
|
}
|
|
3270
3337
|
this.forPlugins((plugin) => {
|
|
3271
3338
|
if (plugin.afterSetLayout) {
|
|
@@ -3614,6 +3681,21 @@ export class AdaptableAgGrid {
|
|
|
3614
3681
|
*/
|
|
3615
3682
|
updateLayoutFromGrid() {
|
|
3616
3683
|
var _a, _b;
|
|
3684
|
+
const agGridApi = this.agGridAdapter.getAgGridApi();
|
|
3685
|
+
const columnState = agGridApi.getColumnState();
|
|
3686
|
+
try {
|
|
3687
|
+
const stringifiedState = JSON.stringify(columnState);
|
|
3688
|
+
if (stringifiedState === this.previousAgGridColumnState) {
|
|
3689
|
+
// same grid column state as a previous,
|
|
3690
|
+
// so no need to update, as the layout has already been updated
|
|
3691
|
+
// for this grid column state
|
|
3692
|
+
return;
|
|
3693
|
+
}
|
|
3694
|
+
this.previousAgGridColumnState = stringifiedState;
|
|
3695
|
+
}
|
|
3696
|
+
catch (ex) {
|
|
3697
|
+
this.logger.consoleError('Error stringifying column state', ex);
|
|
3698
|
+
}
|
|
3617
3699
|
const currentLayout = this.api.layoutApi.getCurrentLayout();
|
|
3618
3700
|
if (currentLayout.IsReadOnly) {
|
|
3619
3701
|
// reaply the layout so the grid is reverted
|
|
@@ -3625,7 +3707,6 @@ export class AdaptableAgGrid {
|
|
|
3625
3707
|
const columnFlexes = {};
|
|
3626
3708
|
const pinnedColumns = {};
|
|
3627
3709
|
const columnSorts = [];
|
|
3628
|
-
const columnState = this.agGridAdapter.getAgGridApi().getColumnState();
|
|
3629
3710
|
let groupedColumns = [...new Array(columnState.length)];
|
|
3630
3711
|
let pivotedColumns = [...new Array(columnState.length)];
|
|
3631
3712
|
const pivotColumns = [];
|
|
@@ -3818,4 +3899,31 @@ export class AdaptableAgGrid {
|
|
|
3818
3899
|
};
|
|
3819
3900
|
});
|
|
3820
3901
|
}
|
|
3902
|
+
setPinnedRows(pinnedRows, location) {
|
|
3903
|
+
const gridApi = this.agGridAdapter.getAgGridApi();
|
|
3904
|
+
switch (location) {
|
|
3905
|
+
case 'top':
|
|
3906
|
+
gridApi.setGridOption('pinnedTopRowData', pinnedRows);
|
|
3907
|
+
break;
|
|
3908
|
+
case 'bottom':
|
|
3909
|
+
gridApi.setGridOption('pinnedBottomRowData', pinnedRows);
|
|
3910
|
+
break;
|
|
3911
|
+
}
|
|
3912
|
+
}
|
|
3913
|
+
setupRowSummaries() {
|
|
3914
|
+
var _a;
|
|
3915
|
+
const rowSummaries = (_a = this.api.internalApi.getAdaptableState().System.RowSummary.rowSummaries) !== null && _a !== void 0 ? _a : [];
|
|
3916
|
+
const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
|
|
3917
|
+
const row = summaryRow.RowData;
|
|
3918
|
+
if (summaryRow.Position === 'Bottom' || !summaryRow.Position) {
|
|
3919
|
+
acc.bottom.push(row);
|
|
3920
|
+
}
|
|
3921
|
+
else {
|
|
3922
|
+
acc.top.push(row);
|
|
3923
|
+
}
|
|
3924
|
+
return acc;
|
|
3925
|
+
}, { top: [], bottom: [] });
|
|
3926
|
+
this.setPinnedRows(top, 'top');
|
|
3927
|
+
this.setPinnedRows(bottom, 'bottom');
|
|
3928
|
+
}
|
|
3821
3929
|
}
|
|
@@ -272,6 +272,7 @@ export class AgGridAdapter {
|
|
|
272
272
|
isGrouped: this.isColumnRowGrouped(colDef),
|
|
273
273
|
isFixed: this.isColumnFixed(colDef),
|
|
274
274
|
pinned: this.getColumnPinnedPosition(colDef),
|
|
275
|
+
columnTypes: this.getColumnTypes(colDef),
|
|
275
276
|
isExcludedFromQuickSearch: false,
|
|
276
277
|
isSparkline: this.isColumnSparkline(colDef),
|
|
277
278
|
};
|
|
@@ -490,6 +491,13 @@ export class AgGridAdapter {
|
|
|
490
491
|
}
|
|
491
492
|
return colDef != null && colDef.filter != null && colDef.filter != false;
|
|
492
493
|
}
|
|
494
|
+
getColumnTypes(colDef) {
|
|
495
|
+
if (!colDef.type) {
|
|
496
|
+
return [];
|
|
497
|
+
}
|
|
498
|
+
const allTypes = typeof colDef.type === 'string' ? [colDef.type] : colDef.type;
|
|
499
|
+
return allTypes;
|
|
500
|
+
}
|
|
493
501
|
getColumnPinnedPosition(colDef) {
|
|
494
502
|
return colDef.pinned
|
|
495
503
|
? colDef.pinned === 'left' || colDef.pinned === true
|
|
@@ -11,6 +11,7 @@ import UIHelper from '../View/UIHelper';
|
|
|
11
11
|
import { getPercentBarRendererForColumn } from './PercentBarRenderer';
|
|
12
12
|
import { getBadgeRendererForColumn } from './BadgeRenderer';
|
|
13
13
|
import Helper from '../Utilities/Helpers/Helper';
|
|
14
|
+
import { ROW_SUMMARY_ROW_ID } from '../PredefinedConfig/Common/RowSummary';
|
|
14
15
|
export class AgGridColumnAdapter {
|
|
15
16
|
constructor(adaptableInstance) {
|
|
16
17
|
this.adaptableInstance = adaptableInstance;
|
|
@@ -413,10 +414,14 @@ export class AgGridColumnAdapter {
|
|
|
413
414
|
return userValue;
|
|
414
415
|
}
|
|
415
416
|
const cellEditableFn = this.adaptableOptions.editOptions.isCellEditable;
|
|
416
|
-
if (!cellEditableFn) {
|
|
417
|
-
return userValue;
|
|
418
|
-
}
|
|
419
417
|
const editableCallback = (params) => {
|
|
418
|
+
// Adaptable Row Summarie rows are not editable
|
|
419
|
+
if (params.node.data[ROW_SUMMARY_ROW_ID]) {
|
|
420
|
+
return false;
|
|
421
|
+
}
|
|
422
|
+
if (!cellEditableFn) {
|
|
423
|
+
return typeof userValue === 'function' ? userValue(params) : userValue;
|
|
424
|
+
}
|
|
420
425
|
const gridCell = this.adaptableInstance.getGridCellFromRowNode(params.node, params.column.getColId());
|
|
421
426
|
const cellEditableContext = {
|
|
422
427
|
gridCell,
|
|
@@ -601,6 +606,9 @@ export class AgGridColumnAdapter {
|
|
|
601
606
|
if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Notes')) {
|
|
602
607
|
return;
|
|
603
608
|
}
|
|
609
|
+
if (!this.adaptableApi.notesApi.internalApi.areNotesAvailable()) {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
604
612
|
const cellPosition = {
|
|
605
613
|
PrimaryKeyValue: gridCell.primaryKeyValue,
|
|
606
614
|
ColumnId: gridCell.column.columnId,
|
|
@@ -615,6 +623,9 @@ export class AgGridColumnAdapter {
|
|
|
615
623
|
if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Comments')) {
|
|
616
624
|
return;
|
|
617
625
|
}
|
|
626
|
+
if (!this.adaptableApi.commentApi.internalApi.areCommentsAvailable()) {
|
|
627
|
+
return;
|
|
628
|
+
}
|
|
618
629
|
const position = {
|
|
619
630
|
PrimaryKeyValue: gridCell.primaryKeyValue,
|
|
620
631
|
ColumnId: gridCell.column.columnId,
|
|
@@ -8,4 +8,4 @@ export type ColorPickerProps = Omit<HTMLProps<HTMLInputElement>, 'onChange'> & {
|
|
|
8
8
|
value: string;
|
|
9
9
|
includeAlpha?: boolean;
|
|
10
10
|
} & Omit<BoxProps, 'onChange'>;
|
|
11
|
-
export declare const ColorPicker: React.ForwardRefExoticComponent<Pick<ColorPickerProps, "api" | "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "
|
|
11
|
+
export declare const ColorPicker: React.ForwardRefExoticComponent<Pick<ColorPickerProps, "api" | "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode" | "includeAlpha"> & React.RefAttributes<unknown>>;
|