@adaptabletools/adaptable-cjs 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 +17 -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 +17 -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 +4 -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 +22 -1
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +16 -3
- 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 +6 -1
- 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 +33 -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 +7 -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.cjs.tsbuildinfo +1 -1
- package/src/View/Components/ScopeComponent.d.ts +0 -24
- package/src/View/Components/ScopeComponent.js +0 -138
- package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
- package/src/View/Export/Wizard/ReportScopeWizard.js +0 -52
|
@@ -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;
|
|
@@ -85,6 +85,9 @@ const NewScopeComponent = (props) => {
|
|
|
85
85
|
if (scopeApi.scopeHasDataType(props.scope)) {
|
|
86
86
|
return 'DataType';
|
|
87
87
|
}
|
|
88
|
+
if (scopeApi.scopeHasColumnType(props.scope)) {
|
|
89
|
+
return 'ColumnType';
|
|
90
|
+
}
|
|
88
91
|
return undefined;
|
|
89
92
|
};
|
|
90
93
|
const onScopeSelectChanged = (value) => {
|
|
@@ -99,6 +102,11 @@ const NewScopeComponent = (props) => {
|
|
|
99
102
|
DataTypes: [],
|
|
100
103
|
};
|
|
101
104
|
}
|
|
105
|
+
else if (value == 'ColumnType') {
|
|
106
|
+
newScope = {
|
|
107
|
+
ColumnTypes: [],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
102
110
|
else {
|
|
103
111
|
newScope = {
|
|
104
112
|
All: true,
|
|
@@ -134,6 +142,9 @@ const NewScopeComponent = (props) => {
|
|
|
134
142
|
if (Array.isArray(props.availableDataTypes)) {
|
|
135
143
|
dataTypeOptions = props.availableDataTypes.map((dataType) => DATA_TYPES_MAP[dataType]);
|
|
136
144
|
}
|
|
145
|
+
const hasColumnTypes = React.useMemo(() => {
|
|
146
|
+
return api.optionsApi.getColumnOptions().columnTypes.length > 0;
|
|
147
|
+
}, []);
|
|
137
148
|
return (React.createElement(Tabs_1.Tabs, { "data-name": 'scope-component', className: "ab-ScopeComponent", value: scopeChoice, style: Object.assign({ height: '100%' }, props.style), onValueChange: onScopeSelectChanged },
|
|
138
149
|
props.hideWholeRow ? null : (React.createElement(Tabs_1.Tabs.Tab, { value: "Row" },
|
|
139
150
|
React.createElement(Radio_1.default, { margin: 0, checked: scopeChoice == 'All', tabIndex: -1 }, "All Columns"))),
|
|
@@ -141,6 +152,8 @@ const NewScopeComponent = (props) => {
|
|
|
141
152
|
React.createElement(Radio_1.default, { margin: 0, value: "Column", checked: scopeChoice == 'Column', tabIndex: -1 }, "Selected Columns"))),
|
|
142
153
|
!props.disableDataTypes && (React.createElement(Tabs_1.Tabs.Tab, { value: "DataType" },
|
|
143
154
|
React.createElement(Radio_1.default, { margin: 0, value: "DataType", checked: scopeChoice == 'DataType', tabIndex: -1 }, "Data Types"))),
|
|
155
|
+
hasColumnTypes && (React.createElement(Tabs_1.Tabs.Tab, { value: "ColumnType" },
|
|
156
|
+
React.createElement(Radio_1.default, { margin: 0, value: "ColumnType", checked: scopeChoice == 'ColumnType', tabIndex: -1 }, "Column Types"))),
|
|
144
157
|
props.hideWholeRow ? null : (React.createElement(Tabs_1.Tabs.Content, { value: "Row", style: { flex: 'none' }, "data-name": "row-scope" },
|
|
145
158
|
React.createElement(rebass_1.Text, { padding: 2, pl: 0, fontSize: 2 }, props.descriptions.rowScope))),
|
|
146
159
|
!props.disableColumns && (React.createElement(Tabs_1.Tabs.Content, { value: "Column", style: { flex: 1, overflow: 'auto' }, "data-name": "column-scope", padding: 0 },
|
|
@@ -153,6 +166,24 @@ const NewScopeComponent = (props) => {
|
|
|
153
166
|
!props.disableDataTypes && (React.createElement(Tabs_1.Tabs.Content, { value: "DataType", style: { flex: 'none' }, "data-name": "datatype-scope" },
|
|
154
167
|
React.createElement(rebass_1.Box, null,
|
|
155
168
|
props.descriptions.dataTypeScope && (React.createElement(rebass_1.Text, { p: 2, pl: 0, mb: 2, fontSize: 2 }, props.descriptions.dataTypeScope)),
|
|
156
|
-
React.createElement(rebass_1.Flex, { flexDirection: "column" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox_1.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)))))))
|
|
169
|
+
React.createElement(rebass_1.Flex, { flexDirection: "column" }, dataTypeOptions.map((dataTypeOption) => (React.createElement(CheckBox_1.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))))))),
|
|
170
|
+
hasColumnTypes && (React.createElement(Tabs_1.Tabs.Content, { value: "ColumnType", style: { flex: 'none' }, "data-name": "column-type-scope" },
|
|
171
|
+
React.createElement(rebass_1.Box, null,
|
|
172
|
+
React.createElement(rebass_1.Flex, { flexDirection: "column" }, api.optionsApi.getColumnOptions().columnTypes.map((columnType) => {
|
|
173
|
+
var _a;
|
|
174
|
+
return (React.createElement(CheckBox_1.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) => {
|
|
175
|
+
let columnTypes = [].concat(props.scope.ColumnTypes);
|
|
176
|
+
if (checked) {
|
|
177
|
+
columnTypes.push(columnType);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
columnTypes = columnTypes.filter((ct) => ct !== columnType);
|
|
181
|
+
}
|
|
182
|
+
let newScope = {
|
|
183
|
+
ColumnTypes: columnTypes,
|
|
184
|
+
};
|
|
185
|
+
props.updateScope(newScope);
|
|
186
|
+
} }, columnType));
|
|
187
|
+
})))))));
|
|
157
188
|
};
|
|
158
189
|
exports.NewScopeComponent = NewScopeComponent;
|
|
@@ -8,6 +8,7 @@ const FormLayout_1 = tslib_1.__importStar(require("../../components/FormLayout")
|
|
|
8
8
|
const Panel_1 = tslib_1.__importDefault(require("../../components/Panel"));
|
|
9
9
|
const AdaptableContext_1 = require("../AdaptableContext");
|
|
10
10
|
const ColumnSelector_1 = require("../Components/Selectors/ColumnSelector");
|
|
11
|
+
const AdaptableAgGrid_1 = require("../../agGrid/AdaptableAgGrid");
|
|
11
12
|
const TransposedPopup = (props) => {
|
|
12
13
|
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
13
14
|
const rowNodes = React.useMemo(() => {
|
|
@@ -159,14 +160,14 @@ const TransposedPopup = (props) => {
|
|
|
159
160
|
sideBar: false,
|
|
160
161
|
};
|
|
161
162
|
const modules = adaptable.getAgGridRegisteredModules();
|
|
162
|
-
const adaptableInitFn = Object.getPrototypeOf(adaptable).constructor.init;
|
|
163
|
-
const agGridConfig = {
|
|
164
|
-
gridOptions: agGridOptions,
|
|
165
|
-
modules: modules,
|
|
166
|
-
};
|
|
167
163
|
let transposedAdaptableApi;
|
|
168
164
|
(async () => {
|
|
169
|
-
transposedAdaptableApi = await
|
|
165
|
+
transposedAdaptableApi = await AdaptableAgGrid_1.AdaptableAgGrid._initInternal({
|
|
166
|
+
variant: 'vanilla',
|
|
167
|
+
adaptableOptions,
|
|
168
|
+
gridOptions: agGridOptions,
|
|
169
|
+
modules,
|
|
170
|
+
});
|
|
170
171
|
adaptable.api.eventApi.on('ThemeChanged', (event) => {
|
|
171
172
|
transposedAdaptableApi.themeApi.loadTheme(typeof event.theme === 'object' ? event.theme.Name : event.theme);
|
|
172
173
|
});
|
|
@@ -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 {};
|
|
@@ -99,6 +99,7 @@ const AdaptableUpgradeHelper_1 = require("../migration/AdaptableUpgradeHelper");
|
|
|
99
99
|
const Modal_1 = require("../components/Modal");
|
|
100
100
|
const AdaptableLoadingScreen_1 = require("../View/Components/Popups/AdaptableLoadingScreen");
|
|
101
101
|
const react_1 = require("react");
|
|
102
|
+
const SummaryService_1 = require("../Utilities/Services/SummaryService");
|
|
102
103
|
const RowNodeProto = core_1.RowNode.prototype;
|
|
103
104
|
const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
|
|
104
105
|
/**
|
|
@@ -142,6 +143,11 @@ const adaptableInstances = {};
|
|
|
142
143
|
const publishTimestamp = Number(EnvVars_1.ADAPTABLE_PUBLISH_TIMESTAMP);
|
|
143
144
|
class AdaptableAgGrid {
|
|
144
145
|
constructor() {
|
|
146
|
+
/**
|
|
147
|
+
* once layouts are properly handled with the new aggrid methods & events
|
|
148
|
+
* we can remove this hack
|
|
149
|
+
*/
|
|
150
|
+
this.previousAgGridColumnState = '';
|
|
145
151
|
this.columnMinMaxValuesCache = {};
|
|
146
152
|
this.renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container);
|
|
147
153
|
/**
|
|
@@ -255,8 +261,7 @@ class AdaptableAgGrid {
|
|
|
255
261
|
this.lifecycleState = 'preprocessOptions';
|
|
256
262
|
this._rawAdaptableOptions = config.adaptableOptions;
|
|
257
263
|
if (StringExtensions_1.default.IsNullOrEmptyOrWhiteSpace(this._rawAdaptableOptions.adaptableId)) {
|
|
258
|
-
|
|
259
|
-
this._rawAdaptableOptions.adaptableId = `AdapTable_${Date.now()}`;
|
|
264
|
+
this._rawAdaptableOptions.adaptableId = `adaptable_id_${Date.now()}`;
|
|
260
265
|
}
|
|
261
266
|
this.logger = (_a = this.logger) !== null && _a !== void 0 ? _a : new AdaptableLogger_1.AdaptableLogger(this._rawAdaptableOptions.adaptableId);
|
|
262
267
|
const perfInitAdaptableAgGrid = this.logger.beginPerf(`Adaptable._initAdaptableAgGrid()`);
|
|
@@ -455,15 +460,21 @@ class AdaptableAgGrid {
|
|
|
455
460
|
state.ToolPanel = toolPanelState;
|
|
456
461
|
return state;
|
|
457
462
|
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
else {
|
|
464
|
-
this.hideQuickFilter();
|
|
465
|
-
}
|
|
463
|
+
refreshQuickFilter() {
|
|
464
|
+
const isQuickFilterVisible = this.api.internalApi.getSystemState().IsQuickFilterVisible;
|
|
465
|
+
const isQuickFilterAvailable = this.isQuickFilterAvailable();
|
|
466
|
+
if (isQuickFilterVisible === isQuickFilterAvailable) {
|
|
467
|
+
return;
|
|
466
468
|
}
|
|
469
|
+
if (isQuickFilterAvailable) {
|
|
470
|
+
this.api.columnFilterApi.showQuickFilterBar();
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
this.api.columnFilterApi.hideQuickFilterBar();
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
applyColumnFiltering() {
|
|
477
|
+
this.refreshQuickFilter();
|
|
467
478
|
this.applyGridFiltering();
|
|
468
479
|
this.agGridAdapter.updateColumnFilterActiveState();
|
|
469
480
|
}
|
|
@@ -706,6 +717,20 @@ class AdaptableAgGrid {
|
|
|
706
717
|
return nodeA.key < nodeB.key ? -1 : 1;
|
|
707
718
|
};
|
|
708
719
|
});
|
|
720
|
+
/**
|
|
721
|
+
* `autoSizeStrategy`
|
|
722
|
+
*
|
|
723
|
+
* This is needed here, even if we do auto sizing on FIRST_DATA_RENDERED.
|
|
724
|
+
* Sometimes FIRST_DATA_RENDERED is triggered too early and autoSizing doesn't work initially
|
|
725
|
+
* so we need this block
|
|
726
|
+
*/
|
|
727
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'autoSizeStrategy', (original_autoSizeStrategy) => {
|
|
728
|
+
return this.shouldAutoSizeLayout()
|
|
729
|
+
? {
|
|
730
|
+
type: 'fitCellContents',
|
|
731
|
+
}
|
|
732
|
+
: original_autoSizeStrategy;
|
|
733
|
+
});
|
|
709
734
|
}
|
|
710
735
|
/**
|
|
711
736
|
* `components`
|
|
@@ -854,6 +879,16 @@ class AdaptableAgGrid {
|
|
|
854
879
|
return (returnValue === null || returnValue === void 0 ? void 0 : returnValue.length) ? returnValue : undefined;
|
|
855
880
|
};
|
|
856
881
|
});
|
|
882
|
+
/**
|
|
883
|
+
* `floatingFiltersHeight`
|
|
884
|
+
*/
|
|
885
|
+
this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'floatingFiltersHeight', (original_floatingFiltersHeight) => {
|
|
886
|
+
if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
|
|
887
|
+
// if the default layout is a pivot on, hide the floating filters from the beginning, otherwise we get an annoying flicker
|
|
888
|
+
return 0;
|
|
889
|
+
}
|
|
890
|
+
return original_floatingFiltersHeight;
|
|
891
|
+
});
|
|
857
892
|
/**
|
|
858
893
|
* `columnTypes`
|
|
859
894
|
*/
|
|
@@ -1239,7 +1274,9 @@ class AdaptableAgGrid {
|
|
|
1239
1274
|
if (this.initWithLazyData) {
|
|
1240
1275
|
this.updateColumnModelAndRefreshGrid();
|
|
1241
1276
|
this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
|
|
1277
|
+
this._emit('FirstDataRendered');
|
|
1242
1278
|
}
|
|
1279
|
+
this.autoSizeLayoutIfNeeded();
|
|
1243
1280
|
}));
|
|
1244
1281
|
/**
|
|
1245
1282
|
* Use Case: Entered or Left Pivot Mode
|
|
@@ -1441,6 +1478,25 @@ class AdaptableAgGrid {
|
|
|
1441
1478
|
},
|
|
1442
1479
|
};
|
|
1443
1480
|
}
|
|
1481
|
+
shouldAutoSizeLayout() {
|
|
1482
|
+
const { layoutApi } = this.api;
|
|
1483
|
+
const { layoutOptions } = this.adaptableOptions;
|
|
1484
|
+
const currentLayout = layoutApi.getCurrentLayout();
|
|
1485
|
+
if (currentLayout.ColumnWidthMap && Object.keys(currentLayout.ColumnWidthMap).length > 0) {
|
|
1486
|
+
return;
|
|
1487
|
+
}
|
|
1488
|
+
const autoSize = currentLayout.EnablePivot
|
|
1489
|
+
? layoutOptions.autoSizeColumnsInPivotLayout
|
|
1490
|
+
: layoutOptions.autoSizeColumnsInLayout;
|
|
1491
|
+
return autoSize;
|
|
1492
|
+
}
|
|
1493
|
+
autoSizeLayoutIfNeeded() {
|
|
1494
|
+
if (this.shouldAutoSizeLayout()) {
|
|
1495
|
+
requestAnimationFrame(() => {
|
|
1496
|
+
this.autoSizeAllColumns();
|
|
1497
|
+
});
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1444
1500
|
performAudit(action, oldState, newState) {
|
|
1445
1501
|
if (this.isReady) {
|
|
1446
1502
|
const adaptableStateChangedInfo = {
|
|
@@ -1496,6 +1552,7 @@ class AdaptableAgGrid {
|
|
|
1496
1552
|
this.AlertService = new AlertService_1.AlertService(this.api);
|
|
1497
1553
|
this.TeamSharingService = new TeamSharingService_1.TeamSharingService(this.api);
|
|
1498
1554
|
this.Fdc3Service = new Fdc3Service_1.Fdc3Service(this.api);
|
|
1555
|
+
this.SummaryService = new SummaryService_1.SummaryService(this.api);
|
|
1499
1556
|
this.CellPopupService = new CellPopupService_1.CellPopupService(this.api);
|
|
1500
1557
|
this.RowEditService = new RowEditService_1.RowEditService(this.api);
|
|
1501
1558
|
this.MetamodelService = new MetamodelService_1.MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
|
|
@@ -1756,7 +1813,10 @@ class AdaptableAgGrid {
|
|
|
1756
1813
|
}
|
|
1757
1814
|
return rawValue;
|
|
1758
1815
|
}
|
|
1759
|
-
updateColumnModelAndRefreshGrid() {
|
|
1816
|
+
updateColumnModelAndRefreshGrid(config) {
|
|
1817
|
+
if (!(config === null || config === void 0 ? void 0 : config.skipColDefsRefresh)) {
|
|
1818
|
+
this.refreshColDefs();
|
|
1819
|
+
}
|
|
1760
1820
|
this.deriveAdaptableColumnStateFromAgGrid();
|
|
1761
1821
|
this.agGridColumnAdapter.setupColumns();
|
|
1762
1822
|
this.redrawBody();
|
|
@@ -2869,6 +2929,7 @@ class AdaptableAgGrid {
|
|
|
2869
2929
|
else {
|
|
2870
2930
|
(_b = this.agGridAdapter.getAgGridApi()) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
2871
2931
|
}
|
|
2932
|
+
this.previousAgGridColumnState = '';
|
|
2872
2933
|
const gridContainerElement = this.getAgGridContainerElement();
|
|
2873
2934
|
if (gridContainerElement) {
|
|
2874
2935
|
gridContainerElement.removeEventListener('keydown', this.agGridListenerKeydown);
|
|
@@ -3034,6 +3095,10 @@ class AdaptableAgGrid {
|
|
|
3034
3095
|
// });
|
|
3035
3096
|
}
|
|
3036
3097
|
isQuickFilterAvailable() {
|
|
3098
|
+
if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
|
|
3099
|
+
// hide completely the quick filter if pivot is enabled
|
|
3100
|
+
return false;
|
|
3101
|
+
}
|
|
3037
3102
|
return this.hasFloatingFilterOnAtLeastOneColumn(this.agGridAdapter.getAgGridApi().getColumnDefs());
|
|
3038
3103
|
}
|
|
3039
3104
|
hasFloatingFilterOnAtLeastOneColumn(columnDefs) {
|
|
@@ -3258,18 +3323,20 @@ class AdaptableAgGrid {
|
|
|
3258
3323
|
requestAnimationFrame(() => {
|
|
3259
3324
|
this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
|
|
3260
3325
|
});
|
|
3261
|
-
//but if it's also the first time the grid is loading
|
|
3262
|
-
//it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
|
|
3263
|
-
setTimeout(() => {
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
}, 100);
|
|
3326
|
+
// //but if it's also the first time the grid is loading
|
|
3327
|
+
// //it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
|
|
3328
|
+
// setTimeout(() => {
|
|
3329
|
+
// this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
|
|
3330
|
+
// setTimeout(() => {
|
|
3331
|
+
// this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
|
|
3332
|
+
// }, 200);
|
|
3333
|
+
// }, 100);
|
|
3269
3334
|
}
|
|
3270
|
-
else
|
|
3271
|
-
|
|
3272
|
-
|
|
3335
|
+
else {
|
|
3336
|
+
if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
|
|
3337
|
+
colsToAutoSizeArray.length) {
|
|
3338
|
+
this.agGridAdapter.getAgGridApi().autoSizeColumns(colsToAutoSizeArray);
|
|
3339
|
+
}
|
|
3273
3340
|
}
|
|
3274
3341
|
this.forPlugins((plugin) => {
|
|
3275
3342
|
if (plugin.afterSetLayout) {
|
|
@@ -3618,6 +3685,21 @@ class AdaptableAgGrid {
|
|
|
3618
3685
|
*/
|
|
3619
3686
|
updateLayoutFromGrid() {
|
|
3620
3687
|
var _a, _b;
|
|
3688
|
+
const agGridApi = this.agGridAdapter.getAgGridApi();
|
|
3689
|
+
const columnState = agGridApi.getColumnState();
|
|
3690
|
+
try {
|
|
3691
|
+
const stringifiedState = JSON.stringify(columnState);
|
|
3692
|
+
if (stringifiedState === this.previousAgGridColumnState) {
|
|
3693
|
+
// same grid column state as a previous,
|
|
3694
|
+
// so no need to update, as the layout has already been updated
|
|
3695
|
+
// for this grid column state
|
|
3696
|
+
return;
|
|
3697
|
+
}
|
|
3698
|
+
this.previousAgGridColumnState = stringifiedState;
|
|
3699
|
+
}
|
|
3700
|
+
catch (ex) {
|
|
3701
|
+
this.logger.consoleError('Error stringifying column state', ex);
|
|
3702
|
+
}
|
|
3621
3703
|
const currentLayout = this.api.layoutApi.getCurrentLayout();
|
|
3622
3704
|
if (currentLayout.IsReadOnly) {
|
|
3623
3705
|
// reaply the layout so the grid is reverted
|
|
@@ -3629,7 +3711,6 @@ class AdaptableAgGrid {
|
|
|
3629
3711
|
const columnFlexes = {};
|
|
3630
3712
|
const pinnedColumns = {};
|
|
3631
3713
|
const columnSorts = [];
|
|
3632
|
-
const columnState = this.agGridAdapter.getAgGridApi().getColumnState();
|
|
3633
3714
|
let groupedColumns = [...new Array(columnState.length)];
|
|
3634
3715
|
let pivotedColumns = [...new Array(columnState.length)];
|
|
3635
3716
|
const pivotColumns = [];
|
|
@@ -3822,5 +3903,32 @@ class AdaptableAgGrid {
|
|
|
3822
3903
|
};
|
|
3823
3904
|
});
|
|
3824
3905
|
}
|
|
3906
|
+
setPinnedRows(pinnedRows, location) {
|
|
3907
|
+
const gridApi = this.agGridAdapter.getAgGridApi();
|
|
3908
|
+
switch (location) {
|
|
3909
|
+
case 'top':
|
|
3910
|
+
gridApi.setGridOption('pinnedTopRowData', pinnedRows);
|
|
3911
|
+
break;
|
|
3912
|
+
case 'bottom':
|
|
3913
|
+
gridApi.setGridOption('pinnedBottomRowData', pinnedRows);
|
|
3914
|
+
break;
|
|
3915
|
+
}
|
|
3916
|
+
}
|
|
3917
|
+
setupRowSummaries() {
|
|
3918
|
+
var _a;
|
|
3919
|
+
const rowSummaries = (_a = this.api.internalApi.getAdaptableState().System.RowSummary.rowSummaries) !== null && _a !== void 0 ? _a : [];
|
|
3920
|
+
const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
|
|
3921
|
+
const row = summaryRow.RowData;
|
|
3922
|
+
if (summaryRow.Position === 'Bottom' || !summaryRow.Position) {
|
|
3923
|
+
acc.bottom.push(row);
|
|
3924
|
+
}
|
|
3925
|
+
else {
|
|
3926
|
+
acc.top.push(row);
|
|
3927
|
+
}
|
|
3928
|
+
return acc;
|
|
3929
|
+
}, { top: [], bottom: [] });
|
|
3930
|
+
this.setPinnedRows(top, 'top');
|
|
3931
|
+
this.setPinnedRows(bottom, 'bottom');
|
|
3932
|
+
}
|
|
3825
3933
|
}
|
|
3826
3934
|
exports.AdaptableAgGrid = AdaptableAgGrid;
|
|
@@ -276,6 +276,7 @@ class AgGridAdapter {
|
|
|
276
276
|
isGrouped: this.isColumnRowGrouped(colDef),
|
|
277
277
|
isFixed: this.isColumnFixed(colDef),
|
|
278
278
|
pinned: this.getColumnPinnedPosition(colDef),
|
|
279
|
+
columnTypes: this.getColumnTypes(colDef),
|
|
279
280
|
isExcludedFromQuickSearch: false,
|
|
280
281
|
isSparkline: this.isColumnSparkline(colDef),
|
|
281
282
|
};
|
|
@@ -494,6 +495,13 @@ class AgGridAdapter {
|
|
|
494
495
|
}
|
|
495
496
|
return colDef != null && colDef.filter != null && colDef.filter != false;
|
|
496
497
|
}
|
|
498
|
+
getColumnTypes(colDef) {
|
|
499
|
+
if (!colDef.type) {
|
|
500
|
+
return [];
|
|
501
|
+
}
|
|
502
|
+
const allTypes = typeof colDef.type === 'string' ? [colDef.type] : colDef.type;
|
|
503
|
+
return allTypes;
|
|
504
|
+
}
|
|
497
505
|
getColumnPinnedPosition(colDef) {
|
|
498
506
|
return colDef.pinned
|
|
499
507
|
? colDef.pinned === 'left' || colDef.pinned === true
|
|
@@ -15,6 +15,7 @@ const UIHelper_1 = tslib_1.__importDefault(require("../View/UIHelper"));
|
|
|
15
15
|
const PercentBarRenderer_1 = require("./PercentBarRenderer");
|
|
16
16
|
const BadgeRenderer_1 = require("./BadgeRenderer");
|
|
17
17
|
const Helper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/Helper"));
|
|
18
|
+
const RowSummary_1 = require("../PredefinedConfig/Common/RowSummary");
|
|
18
19
|
class AgGridColumnAdapter {
|
|
19
20
|
constructor(adaptableInstance) {
|
|
20
21
|
this.adaptableInstance = adaptableInstance;
|
|
@@ -417,10 +418,14 @@ class AgGridColumnAdapter {
|
|
|
417
418
|
return userValue;
|
|
418
419
|
}
|
|
419
420
|
const cellEditableFn = this.adaptableOptions.editOptions.isCellEditable;
|
|
420
|
-
if (!cellEditableFn) {
|
|
421
|
-
return userValue;
|
|
422
|
-
}
|
|
423
421
|
const editableCallback = (params) => {
|
|
422
|
+
// Adaptable Row Summarie rows are not editable
|
|
423
|
+
if (params.node.data[RowSummary_1.ROW_SUMMARY_ROW_ID]) {
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
426
|
+
if (!cellEditableFn) {
|
|
427
|
+
return typeof userValue === 'function' ? userValue(params) : userValue;
|
|
428
|
+
}
|
|
424
429
|
const gridCell = this.adaptableInstance.getGridCellFromRowNode(params.node, params.column.getColId());
|
|
425
430
|
const cellEditableContext = {
|
|
426
431
|
gridCell,
|
|
@@ -605,6 +610,9 @@ class AgGridColumnAdapter {
|
|
|
605
610
|
if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Notes')) {
|
|
606
611
|
return;
|
|
607
612
|
}
|
|
613
|
+
if (!this.adaptableApi.notesApi.internalApi.areNotesAvailable()) {
|
|
614
|
+
return;
|
|
615
|
+
}
|
|
608
616
|
const cellPosition = {
|
|
609
617
|
PrimaryKeyValue: gridCell.primaryKeyValue,
|
|
610
618
|
ColumnId: gridCell.column.columnId,
|
|
@@ -619,6 +627,9 @@ class AgGridColumnAdapter {
|
|
|
619
627
|
if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Comments')) {
|
|
620
628
|
return;
|
|
621
629
|
}
|
|
630
|
+
if (!this.adaptableApi.commentApi.internalApi.areCommentsAvailable()) {
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
622
633
|
const position = {
|
|
623
634
|
PrimaryKeyValue: gridCell.primaryKeyValue,
|
|
624
635
|
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>>;
|