@adaptabletools/adaptable 11.1.15 → 11.2.0
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 +2 -0
- package/bundle.cjs.js +98 -98
- package/index.css +3 -0
- package/package.json +2 -2
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableOptions/AlertOptions.d.ts +8 -2
- package/src/AdaptableOptions/DashboardOptions.d.ts +4 -3
- package/src/AdaptableOptions/ExportOptions.d.ts +2 -2
- package/src/AdaptableOptions/FilterOptions.d.ts +5 -4
- package/src/AdaptableOptions/LayoutOptions.d.ts +56 -10
- package/src/AdaptableOptions/ToolPanelOptions.d.ts +4 -3
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +18 -16
- package/src/Api/AdaptableApi.d.ts +10 -0
- package/src/Api/AlertApi.d.ts +3 -1
- package/src/Api/ConditionalStyleApi.d.ts +3 -1
- package/src/Api/ConfigApi.d.ts +3 -3
- package/src/Api/CustomSortApi.d.ts +3 -1
- package/src/Api/EventApi.d.ts +14 -0
- package/src/Api/Events/LayoutChanged.d.ts +1 -1
- package/src/Api/ExportApi.d.ts +16 -0
- package/src/Api/FinanceApi.d.ts +104 -3
- package/src/Api/FlashingCellApi.d.ts +3 -1
- package/src/Api/FormatColumnApi.d.ts +3 -1
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +6 -0
- package/src/Api/Implementation/AdaptableApiImpl.js +53 -0
- package/src/Api/Implementation/AlertApiImpl.d.ts +3 -1
- package/src/Api/Implementation/AlertApiImpl.js +7 -6
- package/src/Api/Implementation/ApiBase.d.ts +1 -1
- package/src/Api/Implementation/ApiBase.js +5 -2
- package/src/Api/Implementation/ConditionalStyleApiImpl.d.ts +3 -1
- package/src/Api/Implementation/ConditionalStyleApiImpl.js +5 -4
- package/src/Api/Implementation/ConfigApiImpl.js +5 -1
- package/src/Api/Implementation/CustomSortApiImpl.d.ts +3 -1
- package/src/Api/Implementation/CustomSortApiImpl.js +6 -5
- package/src/Api/Implementation/EventApiImpl.d.ts +1 -0
- package/src/Api/Implementation/EventApiImpl.js +4 -0
- package/src/Api/Implementation/ExportApiImpl.d.ts +3 -0
- package/src/Api/Implementation/ExportApiImpl.js +10 -0
- package/src/Api/Implementation/FlashingCellApiImpl.d.ts +3 -1
- package/src/Api/Implementation/FlashingCellApiImpl.js +8 -6
- package/src/Api/Implementation/FormatColumnApiImpl.d.ts +3 -1
- package/src/Api/Implementation/FormatColumnApiImpl.js +7 -6
- package/src/Api/Implementation/InternalApiImpl.d.ts +14 -5
- package/src/Api/Implementation/InternalApiImpl.js +75 -3
- package/src/Api/Implementation/PlusMinusApiImpl.d.ts +3 -1
- package/src/Api/Implementation/PlusMinusApiImpl.js +6 -8
- package/src/Api/Implementation/ScheduleApiImpl.d.ts +17 -6
- package/src/Api/Implementation/ScheduleApiImpl.js +25 -12
- package/src/Api/Implementation/ShortcutApiImpl.d.ts +3 -1
- package/src/Api/Implementation/ShortcutApiImpl.js +5 -4
- package/src/Api/Implementation/ToolPanelApiImpl.d.ts +1 -2
- package/src/Api/Implementation/ToolPanelApiImpl.js +2 -2
- package/src/Api/Implementation/UserInterfaceApiImpl.js +2 -2
- package/src/Api/InternalApi.d.ts +14 -7
- package/src/Api/LayoutApi.d.ts +4 -6
- package/src/Api/PlusMinusApi.d.ts +3 -1
- package/src/Api/ScheduleApi.d.ts +20 -6
- package/src/Api/ShortcutApi.d.ts +3 -1
- package/src/Api/ToolPanelApi.d.ts +1 -2
- package/src/PredefinedConfig/AlertState.d.ts +3 -3
- package/src/PredefinedConfig/Common/AdaptableButton.d.ts +2 -5
- package/src/PredefinedConfig/Common/AdaptableComparerFunction.d.ts +2 -1
- package/src/PredefinedConfig/Common/AdaptableForm.d.ts +4 -3
- package/src/PredefinedConfig/Common/AdaptableObject.d.ts +18 -1
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +9 -0
- package/src/PredefinedConfig/Common/BaseContext.d.ts +10 -0
- package/src/PredefinedConfig/Common/BaseContext.js +2 -0
- package/src/PredefinedConfig/Common/CellSummary.d.ts +3 -3
- package/src/PredefinedConfig/Common/FDC3Context.d.ts +9 -9
- package/src/PredefinedConfig/Common/Menu.d.ts +4 -13
- package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +4 -0
- package/src/PredefinedConfig/DataSourceState.d.ts +2 -2
- package/src/PredefinedConfig/FilterState.d.ts +1 -1
- package/src/PredefinedConfig/SystemState.d.ts +1 -0
- package/src/Redux/ActionsReducers/PopupRedux.d.ts +5 -5
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +11 -1
- package/src/Redux/Store/AdaptableStore.d.ts +1 -0
- package/src/Redux/Store/AdaptableStore.js +6 -1
- package/src/Redux/Store/Interface/IAdaptableStore.d.ts +1 -0
- package/src/Strategy/AdaptableModuleBase.d.ts +5 -0
- package/src/Strategy/AdaptableModuleBase.js +9 -0
- package/src/Strategy/AlertModule.d.ts +4 -1
- package/src/Strategy/AlertModule.js +12 -4
- package/src/Strategy/CalculatedColumnModule.d.ts +3 -17
- package/src/Strategy/CalculatedColumnModule.js +2 -0
- package/src/Strategy/ConditionalStyleModule.d.ts +4 -1
- package/src/Strategy/ConditionalStyleModule.js +12 -4
- package/src/Strategy/CustomSortModule.d.ts +4 -1
- package/src/Strategy/CustomSortModule.js +10 -3
- package/src/Strategy/DataSourceModule.js +2 -0
- package/src/Strategy/ExportModule.d.ts +5 -3
- package/src/Strategy/ExportModule.js +10 -0
- package/src/Strategy/FlashingCellModule.d.ts +4 -1
- package/src/Strategy/FlashingCellModule.js +10 -5
- package/src/Strategy/FormatColumnModule.d.ts +4 -1
- package/src/Strategy/FormatColumnModule.js +10 -3
- package/src/Strategy/FreeTextColumnModule.js +2 -0
- package/src/Strategy/Interface/IModule.d.ts +6 -3
- package/src/Strategy/Interface/IScheduleModule.d.ts +1 -1
- package/src/Strategy/LayoutModule.d.ts +2 -1
- package/src/Strategy/LayoutModule.js +35 -2
- package/src/Strategy/PlusMinusModule.d.ts +4 -1
- package/src/Strategy/PlusMinusModule.js +15 -7
- package/src/Strategy/QueryModule.d.ts +2 -8
- package/src/Strategy/QueryModule.js +2 -0
- package/src/Strategy/ScheduleModule.d.ts +8 -4
- package/src/Strategy/ScheduleModule.js +16 -9
- package/src/Strategy/ShortcutModule.d.ts +4 -1
- package/src/Strategy/ShortcutModule.js +14 -4
- package/src/Strategy/StatusBarModule.d.ts +2 -1
- package/src/Strategy/StatusBarModule.js +2 -3
- package/src/Strategy/Utilities/getAlertBehaviourViewItems.d.ts +2 -2
- package/src/Strategy/Utilities/getAlertBehaviourViewItems.js +2 -2
- package/src/Strategy/Utilities/getObjectTagsViewItems.d.ts +4 -0
- package/src/Strategy/Utilities/getObjectTagsViewItems.js +13 -0
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +2 -1
- package/src/Utilities/Emitter.d.ts +1 -0
- package/src/Utilities/Emitter.js +14 -0
- package/src/Utilities/Extensions/TypeExtensions.d.ts +2 -0
- package/src/Utilities/Interface/MessagePopups.d.ts +3 -3
- package/src/Utilities/ObjectFactory.d.ts +2 -2
- package/src/Utilities/Services/AlertService.js +1 -1
- package/src/Utilities/Services/DataService.js +1 -1
- package/src/Utilities/Services/Interface/IModuleService.d.ts +1 -1
- package/src/Utilities/Services/ModuleService.d.ts +1 -1
- package/src/Utilities/Services/ModuleService.js +1 -0
- package/src/View/Alert/AlertStatusSubPanel.js +2 -1
- package/src/View/Alert/Wizard/AlertWizard.js +9 -0
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +9 -4
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +9 -0
- package/src/View/ColorPicker.d.ts +1 -1
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -0
- package/src/View/Components/Buttons/ButtonDelete.d.ts +1 -1
- package/src/View/Components/FilterForm/FilterForm.js +1 -1
- package/src/View/Components/FilterForm/QuickFilterForm.js +11 -7
- package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +1 -1
- package/src/View/Components/Forms/AdaptableFormControlTextClear.d.ts +1 -1
- package/src/View/Components/Panels/PanelWithImage.d.ts +3 -3
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +22 -0
- package/src/View/Components/Popups/AdaptableToaster.js +12 -1
- package/src/View/Components/Popups/FormPopups/FormPopups.d.ts +3 -3
- package/src/View/Components/TagValueSelector/index.d.ts +13 -0
- package/src/View/Components/TagValueSelector/index.js +22 -0
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -2
- package/src/View/ConditionalStyle/Wizard/ConditionalStyleWizard.js +9 -0
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +9 -0
- package/src/View/DataSource/Wizard/DataSourceSettingsWizard.js +1 -1
- package/src/View/DataSource/Wizard/DataSourceWizard.js +10 -0
- package/src/View/Export/ExportSelector.d.ts +4 -0
- package/src/View/Export/ExportSelector.js +75 -0
- package/src/View/Export/ExportViewPanel.js +6 -7
- package/src/View/Export/ReportExportDropdown.d.ts +2 -5
- package/src/View/Export/Wizard/NewReportWizard.js +9 -0
- package/src/View/Export/constants.d.ts +2 -0
- package/src/View/Export/constants.js +5 -0
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +9 -0
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +9 -0
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +9 -0
- package/src/View/GridInfo/GridOptionsComponent.d.ts +0 -1
- package/src/View/GridInfo/GridOptionsComponent.js +0 -1
- package/src/View/Layout/LayoutCloneButton.d.ts +6 -0
- package/src/View/Layout/LayoutCloneButton.js +15 -0
- package/src/View/Layout/LayoutRadioSelector.d.ts +2 -1
- package/src/View/Layout/LayoutRadioSelector.js +1 -1
- package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +6 -1
- package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +1 -0
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +9 -0
- package/src/View/Query/Wizard/NamedQueryWizard.js +9 -0
- package/src/View/Schedule/Wizard/ScheduleWizard.js +10 -0
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +10 -0
- package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
- package/src/View/StatusBar/StatusBarPopup.js +1 -1
- package/src/View/Wizard/ObjectTagsWizardSection.d.ts +8 -0
- package/src/View/Wizard/ObjectTagsWizardSection.js +22 -0
- package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -0
- package/src/View/Wizard/OnePageAdaptableWizard.js +12 -5
- package/src/agGrid/Adaptable.d.ts +14 -1
- package/src/agGrid/Adaptable.js +103 -68
- package/src/agGrid/agGridHelper.js +2 -1
- package/src/agGrid/createAgStatusPanelComponent.js +1 -0
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.d.ts +8 -7
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/ExpressionEditor/index.js +5 -2
- package/src/components/Input/index.d.ts +1 -1
- package/src/components/List/ListGroupItem/index.d.ts +1 -1
- package/src/components/PopupWithFooter.d.ts +1 -1
- package/src/components/Textarea/index.d.ts +1 -1
- package/src/metamodel/adaptable.metamodel.d.ts +44 -2
- package/src/metamodel/adaptable.metamodel.js +235 -21
- package/src/types.d.ts +6 -5
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -52,7 +52,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
52
52
|
}
|
|
53
53
|
componentDidMount() {
|
|
54
54
|
var _a, _b;
|
|
55
|
-
if (((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate
|
|
55
|
+
if (this.hasValuesPredicate((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate)) {
|
|
56
56
|
this.loadPermittedValues();
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -65,7 +65,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
67
|
this.setState({ filter });
|
|
68
|
-
if ((filter === null || filter === void 0 ? void 0 : filter.Predicate)
|
|
68
|
+
if (this.hasValuesPredicate(filter === null || filter === void 0 ? void 0 : filter.Predicate)) {
|
|
69
69
|
this.setState({ isDistinctColumnValuesLoading: true });
|
|
70
70
|
this.loadPermittedValues();
|
|
71
71
|
}
|
|
@@ -138,7 +138,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
138
138
|
showQuickFilterInput && this.renderPredicateInput(activePredicateDef, filter)));
|
|
139
139
|
}
|
|
140
140
|
renderLabel(filter, activePredicateDef) {
|
|
141
|
-
if ((filter === null || filter === void 0 ? void 0 : filter.Predicate
|
|
141
|
+
if (this.hasValuesPredicate(filter === null || filter === void 0 ? void 0 : filter.Predicate)) {
|
|
142
142
|
if (ArrayExtensions_1.default.IsNullOrEmpty(filter.Predicate.Inputs) &&
|
|
143
143
|
ArrayExtensions_1.default.IsNullOrEmptyOrContainsSingleEmptyValue(this.state.distinctColumnValues)) {
|
|
144
144
|
return this.renderNoValuesDropdown(filter);
|
|
@@ -238,7 +238,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
238
238
|
React.createElement(SimpleButton_1.default, { onClick: () => this.clearFilter() }, "Clear Filter"),
|
|
239
239
|
((_a = this.props.api.internalApi.getAdaptableOptions().filterOptions) === null || _a === void 0 ? void 0 : _a.autoApplyFilter) ==
|
|
240
240
|
false && (React.createElement(SimpleButton_1.default, { ml: 2, onClick: () => this.updateFilter(this.state.filter) }, "Apply Filter"))),
|
|
241
|
-
React.createElement(ListBoxFilterForm_1.ListBoxFilterForm, { suppressClientSideFilter: this.state.suppressClientSideFilter, isLoading: this.state.isDistinctColumnValuesLoading, onFilterChange: this.handleFilterChange, currentColumn: this.props.currentColumn, columns: [], columnDistinctValues: this.state.distinctColumnValues, dataType: this.props.currentColumn.dataType, uiSelectedColumnValues: this.state.filter.Predicate.Inputs, useAgGridStyle: true, onColumnValueSelectedChange: (list) => this.onColumnValuesChange(list) })));
|
|
241
|
+
React.createElement(ListBoxFilterForm_1.ListBoxFilterForm, { suppressClientSideFilter: this.state.suppressClientSideFilter, isLoading: this.state.isDistinctColumnValuesLoading, onFilterChange: this.handleFilterChange, currentColumn: this.props.currentColumn, columns: [], columnDistinctValues: this.state.distinctColumnValues, dataType: this.props.currentColumn.dataType, uiSelectedColumnValues: this.state.filter.Predicate.Inputs.filter((input) => input !== ''), useAgGridStyle: true, onColumnValueSelectedChange: (list) => this.onColumnValuesChange(list) })));
|
|
242
242
|
} },
|
|
243
243
|
React.createElement(SimpleButton_1.default, { style: {
|
|
244
244
|
flex: 1,
|
|
@@ -248,12 +248,13 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
248
248
|
borderRadius: 0,
|
|
249
249
|
borderLeftWidth: 0,
|
|
250
250
|
borderColor: 'var(--ab-color-primarydark)',
|
|
251
|
-
}, disabled: ArrayExtensions_1.default.IsNullOrEmptyOrContainsSingleEmptyValue(this.state.distinctColumnValues) }, filter.Predicate.Inputs.join(', ') ||
|
|
251
|
+
}, disabled: ArrayExtensions_1.default.IsNullOrEmptyOrContainsSingleEmptyValue(this.state.distinctColumnValues) }, filter.Predicate.Inputs.join(', ') ||
|
|
252
|
+
(filter.Predicate.PredicateId === 'Values' ? 'Select Values' : 'Exclude Values'))));
|
|
252
253
|
}
|
|
253
254
|
onColumnValuesChange(columnValues) {
|
|
254
255
|
var _a;
|
|
255
256
|
const { filter } = this.state;
|
|
256
|
-
filter.Predicate = { PredicateId:
|
|
257
|
+
filter.Predicate = { PredicateId: filter.Predicate.PredicateId, Inputs: columnValues };
|
|
257
258
|
if ((_a = this.props.api.internalApi.getAdaptableOptions().filterOptions) === null || _a === void 0 ? void 0 : _a.autoApplyFilter) {
|
|
258
259
|
this.updateFilter(filter);
|
|
259
260
|
}
|
|
@@ -270,7 +271,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
270
271
|
Inputs: ((_a = predicateDef.inputs) !== null && _a !== void 0 ? _a : []).map((i) => { var _a; return (_a = i.defaultValue) !== null && _a !== void 0 ? _a : ''; }),
|
|
271
272
|
};
|
|
272
273
|
this.updateFilter(filter);
|
|
273
|
-
if (predicateId === 'Values') {
|
|
274
|
+
if (predicateId === 'Values' || predicateId === 'ExcludeValues') {
|
|
274
275
|
this.loadPermittedValues();
|
|
275
276
|
requestAnimationFrame(() => {
|
|
276
277
|
if (this.valuesDropdown) {
|
|
@@ -308,6 +309,9 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
308
309
|
const { filter } = this.state;
|
|
309
310
|
this.props.api.filterApi.clearColumnFilterByColumn(filter.ColumnId);
|
|
310
311
|
}
|
|
312
|
+
hasValuesPredicate(predicate) {
|
|
313
|
+
return (predicate === null || predicate === void 0 ? void 0 : predicate.PredicateId) === 'Values' || (predicate === null || predicate === void 0 ? void 0 : predicate.PredicateId) === 'ExcludeValues';
|
|
314
|
+
}
|
|
311
315
|
}
|
|
312
316
|
function mapStateToProps(state, ownProps) {
|
|
313
317
|
return {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AdaptableColumn } from '../../../PredefinedConfig/Common/AdaptableColumn';
|
|
2
2
|
import { SystemFilterPredicateId } from '../../../PredefinedConfig/FilterState';
|
|
3
|
-
export declare const getDefaultColumnFilterPredicate: (column: AdaptableColumn, defaultColumnFilter: "Before" | "After" | "
|
|
3
|
+
export declare const getDefaultColumnFilterPredicate: (column: AdaptableColumn, defaultColumnFilter: "Before" | "After" | "Blanks" | "NonBlanks" | "Equals" | "NotEquals" | "GreaterThan" | "LessThan" | "Positive" | "Negative" | "Zero" | "Between" | "NotBetween" | "Is" | "IsNot" | "Contains" | "NotContains" | "StartsWith" | "EndsWith" | "Regex" | "Today" | "Yesterday" | "Tomorrow" | "ThisWeek" | "ThisMonth" | "ThisQuarter" | "ThisYear" | "InPast" | "InFuture" | "On" | "NotOn" | "NextWorkDay" | "LastWorkDay" | "True" | "False" | "Values" | "ExcludeValues" | "InRange" | "BooleanToggle" | ((column: AdaptableColumn) => SystemFilterPredicateId)) => SystemFilterPredicateId;
|
|
@@ -7,4 +7,4 @@ export declare type AdaptableFormControlTextClearProps = {
|
|
|
7
7
|
autoFocus?: boolean;
|
|
8
8
|
inputStyle?: CSSProperties;
|
|
9
9
|
} & InputProps;
|
|
10
|
-
export declare const AdaptableFormControlTextClear: React.ForwardRefExoticComponent<Pick<AdaptableFormControlTextClearProps, "max" | "required" | "default" | "high" | "low" | "disabled" | "start" | "open" | "media" | "hidden" | "cite" | "data" | "dir" | "form" | "label" | "p" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "async" | "defer" | "manifest" | "m" | "color" | "content" | "size" | "flex" | "wrap" | "padding" | "multiple" | "alignSelf" | "backgroundColor" | "fontSize" | "height" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "opacity" | "order" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "translate" | "width" | "margin" | "children" | "key" | "list" | "step" | "
|
|
10
|
+
export declare const AdaptableFormControlTextClear: React.ForwardRefExoticComponent<Pick<AdaptableFormControlTextClearProps, "max" | "required" | "default" | "high" | "low" | "disabled" | "start" | "open" | "media" | "hidden" | "cite" | "data" | "dir" | "form" | "label" | "p" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "async" | "defer" | "manifest" | "m" | "color" | "content" | "size" | "flex" | "wrap" | "padding" | "multiple" | "alignSelf" | "backgroundColor" | "fontSize" | "height" | "marginBottom" | "marginLeft" | "marginRight" | "marginTop" | "opacity" | "order" | "paddingBottom" | "paddingLeft" | "paddingRight" | "paddingTop" | "translate" | "width" | "margin" | "children" | "key" | "list" | "step" | "type" | "min" | "contextMenu" | "value" | "onKeyDown" | "rows" | "name" | "className" | "id" | "lang" | "method" | "target" | "role" | "tabIndex" | "crossOrigin" | "href" | "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" | "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" | "onTransitionEnd" | "onTransitionEndCapture" | "classID" | "useMap" | "wmode" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "as" | "hrefLang" | "integrity" | "rel" | "sizes" | "charSet" | "kind" | "src" | "srcLang" | "download" | "alt" | "coords" | "shape" | "autoPlay" | "controls" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "dateTime" | "acceptCharset" | "action" | "autoComplete" | "encType" | "noValidate" | "allowFullScreen" | "allowTransparency" | "frameBorder" | "marginHeight" | "marginWidth" | "sandbox" | "scrolling" | "seamless" | "srcDoc" | "srcSet" | "accept" | "capture" | "checked" | "maxLength" | "minLength" | "readOnly" | "htmlFor" | "httpEquiv" | "optimum" | "reversed" | "selected" | "nonce" | "scoped" | "cellPadding" | "cellSpacing" | "colSpan" | "headers" | "rowSpan" | "scope" | "cols" | "poster" | "challenge" | "keyType" | "keyParams" | "mt" | "mb" | "ml" | "mr" | "my" | "marginY" | "mx" | "marginX" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "css" | "bg" | "focusOnClear" | "placehoder" | "OnTextChange" | "inputStyle"> & React.RefAttributes<any>>;
|
|
@@ -85,12 +85,13 @@ export declare const PanelWithImage: React.ForwardRefExoticComponent<{
|
|
|
85
85
|
key?: string | number;
|
|
86
86
|
list?: string;
|
|
87
87
|
step?: string | number;
|
|
88
|
-
contextMenu?: string;
|
|
89
88
|
type?: string;
|
|
90
89
|
min?: string | number;
|
|
90
|
+
contextMenu?: string;
|
|
91
|
+
value?: string | number | readonly string[];
|
|
92
|
+
onKeyDown?: ((event: React.KeyboardEvent<HTMLElement>) => void) & ((event: React.KeyboardEvent<HTMLDivElement>) => void);
|
|
91
93
|
rows?: number;
|
|
92
94
|
name?: string;
|
|
93
|
-
value?: string | number | readonly string[];
|
|
94
95
|
className?: string;
|
|
95
96
|
id?: string;
|
|
96
97
|
lang?: string;
|
|
@@ -183,7 +184,6 @@ export declare const PanelWithImage: React.ForwardRefExoticComponent<{
|
|
|
183
184
|
onLoadCapture?: ((event: React.SyntheticEvent<HTMLElement, Event>) => void) & ((event: React.SyntheticEvent<HTMLDivElement, Event>) => void);
|
|
184
185
|
onError?: ((event: React.SyntheticEvent<HTMLElement, Event>) => void) & ((event: React.SyntheticEvent<HTMLDivElement, Event>) => void);
|
|
185
186
|
onErrorCapture?: ((event: React.SyntheticEvent<HTMLElement, Event>) => void) & ((event: React.SyntheticEvent<HTMLDivElement, Event>) => void);
|
|
186
|
-
onKeyDown?: ((event: React.KeyboardEvent<HTMLElement>) => void) & ((event: React.KeyboardEvent<HTMLDivElement>) => void);
|
|
187
187
|
onKeyDownCapture?: ((event: React.KeyboardEvent<HTMLElement>) => void) & ((event: React.KeyboardEvent<HTMLDivElement>) => void);
|
|
188
188
|
onKeyPress?: ((event: React.KeyboardEvent<HTMLElement>) => void) & ((event: React.KeyboardEvent<HTMLDivElement>) => void);
|
|
189
189
|
onKeyPressCapture?: ((event: React.KeyboardEvent<HTMLElement>) => void) & ((event: React.KeyboardEvent<HTMLDivElement>) => void);
|
|
@@ -10,6 +10,9 @@ const icons_1 = require("../../../../components/icons");
|
|
|
10
10
|
const AdaptableObjectList_1 = require("../../AdaptableObjectList");
|
|
11
11
|
const ButtonNew_1 = require("../../Buttons/ButtonNew");
|
|
12
12
|
const PopupPanel_1 = require("./PopupPanel");
|
|
13
|
+
const rebass_1 = require("rebass");
|
|
14
|
+
const CheckBox_1 = require("../../../../components/CheckBox");
|
|
15
|
+
const SystemRedux_1 = require("../../../../Redux/ActionsReducers/SystemRedux");
|
|
13
16
|
exports.AdaptablePopupModuleView = (props) => {
|
|
14
17
|
var _a, _b, _c, _d, _e;
|
|
15
18
|
/**
|
|
@@ -83,7 +86,26 @@ exports.AdaptablePopupModuleView = (props) => {
|
|
|
83
86
|
props.onClosePopup();
|
|
84
87
|
}
|
|
85
88
|
};
|
|
89
|
+
const adaptableModule = props.api.internalApi
|
|
90
|
+
.getModuleService()
|
|
91
|
+
.getModuleById(props.module.moduleInfo.ModuleName);
|
|
92
|
+
const dispatch = react_redux_1.useDispatch();
|
|
93
|
+
const showLayoutNotAssociatedObjects = react_redux_1.useSelector((state) => state.System.ShowLayoutNotAssociatedObjects);
|
|
94
|
+
const toggleButtonShowLayoutAssociatedObjects = () => {
|
|
95
|
+
if (!(adaptableModule === null || adaptableModule === void 0 ? void 0 : adaptableModule.canBeAssociatedWithLayouts())) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (!props.api.internalApi.hasLayoutSpecificObjects()) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
return (React.createElement(rebass_1.Flex, { justifyContent: "flex-start" },
|
|
102
|
+
React.createElement(CheckBox_1.CheckBox, { padding: 0, margin: 0, checked: showLayoutNotAssociatedObjects, onChange: (checked) => dispatch(SystemRedux_1.SystemLayoutShowNotAssociatedObjects(checked)) },
|
|
103
|
+
"Show ",
|
|
104
|
+
moduleInfo.FriendlyName,
|
|
105
|
+
"s not available in current Layout")));
|
|
106
|
+
};
|
|
86
107
|
return (React.createElement(PopupPanel_1.PopupPanel, { glyphicon: moduleInfo.Glyph, infoLink: moduleInfo.HelpPage, headerText: moduleInfo.FriendlyName, button: newButton, infoLinkDisabled: !props.api.internalApi.isDocumentationLinksDisplayed() },
|
|
108
|
+
!!(items === null || items === void 0 ? void 0 : items.length) && toggleButtonShowLayoutAssociatedObjects(),
|
|
87
109
|
(items === null || items === void 0 ? void 0 : items.length) ? (React.createElement(AdaptableObjectList_1.AdaptableObjectList, { module: props.module, items: items })) : (React.createElement(EmptyContent_1.default, null, emptyContent !== null && emptyContent !== void 0 ? emptyContent : `Click 'New' to create a new ${moduleInfo.FriendlyName}`)),
|
|
88
110
|
isWizardOpen && EditWizard && (React.createElement(EditWizard, { abObjectType: abObjectType, moduleInfo: moduleInfo, data: null, popupParams: props.popupParams, configEntities: null, onCloseWizard: handleWizardClose, onFinishWizard: handleWizardClose }))));
|
|
89
111
|
};
|
|
@@ -7,9 +7,20 @@ const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/Obje
|
|
|
7
7
|
const AdaptablePopupAlert_1 = require("./AdaptablePopupAlert");
|
|
8
8
|
const react_toastify_1 = require("react-toastify");
|
|
9
9
|
exports.showToast = (props) => {
|
|
10
|
+
// we're doing this hack and not simply using props.api in order not to have a memory
|
|
11
|
+
// leak where the api is still kept around in memory by the toaster
|
|
12
|
+
let api = props.api;
|
|
13
|
+
const off = api.eventApi.on('AdaptableDestroy', () => {
|
|
14
|
+
api = null;
|
|
15
|
+
});
|
|
10
16
|
const toastProps = ObjectFactory_1.default.CreateToastOptions(props.api.internalApi.getAdaptableOptions().notificationsOptions, {
|
|
11
17
|
onClose: () => {
|
|
12
|
-
|
|
18
|
+
if (api) {
|
|
19
|
+
off();
|
|
20
|
+
if (!api.isDestroyed()) {
|
|
21
|
+
api.internalApi.hidePopupAlert();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
13
24
|
},
|
|
14
25
|
});
|
|
15
26
|
const content = (React.createElement(AdaptablePopupAlert_1.AdaptablePopupAlert, Object.assign({ headless: true }, props, { onClose: () => {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { AdaptableForm,
|
|
2
|
+
import { AdaptableForm, BaseContext } from '../../../../../types';
|
|
3
3
|
export interface FormDialogProps {
|
|
4
4
|
id: string;
|
|
5
5
|
formProps: any;
|
|
6
|
-
prepareContext: (context:
|
|
7
|
-
form: AdaptableForm<
|
|
6
|
+
prepareContext: (context: BaseContext) => Promise<BaseContext> | BaseContext;
|
|
7
|
+
form: AdaptableForm<BaseContext>;
|
|
8
8
|
}
|
|
9
9
|
export declare const FormDialog: React.FunctionComponent<FormDialogProps>;
|
|
10
10
|
export declare const FormPopups: React.FunctionComponent;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ValueSelectorProps } from '../ValueSelector';
|
|
3
|
+
import { AdaptableObjectTag } from '../../../PredefinedConfig/Common/AdaptableObject';
|
|
4
|
+
export interface TagsSelectorProps extends Omit<ValueSelectorProps<AdaptableObjectTag, string | number>, 'options' | 'value' | 'onChange' | 'allowReorder' | 'toIdentifier' | 'toLabel' | 'selectionBoxPosition' | 'noSelectionLabel' | 'xSelectedLabel'> {
|
|
5
|
+
availableTags?: AdaptableObjectTag[];
|
|
6
|
+
selectedTags?: AdaptableObjectTag[];
|
|
7
|
+
onChange: (selectedTags: AdaptableObjectTag[]) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const TagValueSelector: (props: TagsSelectorProps) => JSX.Element;
|
|
10
|
+
export interface TagValueOptionsTagsProps {
|
|
11
|
+
tags?: AdaptableObjectTag[];
|
|
12
|
+
}
|
|
13
|
+
export declare const TagValueOptionsTags: (props: TagValueOptionsTagsProps) => JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagValueOptionsTags = exports.TagValueSelector = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const ValueSelector_1 = require("../ValueSelector");
|
|
7
|
+
const AdaptableContext_1 = require("../../AdaptableContext");
|
|
8
|
+
exports.TagValueSelector = (props) => {
|
|
9
|
+
const { api } = AdaptableContext_1.useAdaptable();
|
|
10
|
+
const getDefaultTags = () => {
|
|
11
|
+
var _a;
|
|
12
|
+
return (_a = api.internalApi.getAvailableTags()) !== null && _a !== void 0 ? _a : [];
|
|
13
|
+
};
|
|
14
|
+
const { availableTags = getDefaultTags(), selectedTags = [], onChange, singleSelect } = props;
|
|
15
|
+
return (React.createElement(ValueSelector_1.ValueSelector, { options: availableTags, value: selectedTags.map((tag) => tag.value), singleSelect: singleSelect, allowReorder: false, onChange: (selectedTagsIds, selectedTagsMap) => {
|
|
16
|
+
onChange(selectedTagsIds.map((id) => selectedTagsMap.get(id)));
|
|
17
|
+
}, selectionBoxPosition: 'top', toIdentifier: (tag) => tag.value, toLabel: (tag) => tag.label, noSelectionLabel: singleSelect ? 'Select a tag' : 'You have not selected any tags.', xSelectedLabel: singleSelect ? () => 'Selected tag:' : () => 'Selected tags:' }));
|
|
18
|
+
};
|
|
19
|
+
exports.TagValueOptionsTags = (props) => {
|
|
20
|
+
const { tags = [] } = props;
|
|
21
|
+
return (React.createElement(ValueSelector_1.ValueOptionsTags, { options: tags, value: tags.map((tag) => tag.value), toIdentifier: (tag) => tag.value, toLabel: (tag) => tag.label, allowWrap: true, readOnly: true }));
|
|
22
|
+
};
|
|
@@ -194,11 +194,11 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
196
|
const renderToolPanelConfigureButton = (initialTab) => {
|
|
197
|
-
const
|
|
197
|
+
const moduleParams = initialTab
|
|
198
198
|
? { source: 'Other', config: { initialTab } }
|
|
199
199
|
: undefined;
|
|
200
200
|
return (React.createElement(ButtonConfigure_1.ButtonConfigure, { iconSize: 16, tone: "none", marginLeft: 2, className: "ab-ToolPanel__configure-button", tooltip: 'Configure ToolPanels', onClick: () => {
|
|
201
|
-
props.api.
|
|
201
|
+
props.api.internalApi.showSettingsPanel('ToolPanel', moduleParams);
|
|
202
202
|
} }));
|
|
203
203
|
};
|
|
204
204
|
const toolPanelButtons = renderToolPanelButtons();
|
|
@@ -18,6 +18,7 @@ const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/Obje
|
|
|
18
18
|
const react_redux_1 = require("react-redux");
|
|
19
19
|
const ConditionalStyleRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/ConditionalStyleRedux"));
|
|
20
20
|
const ConditionalStyleSettingsWizardSettings_1 = require("./ConditionalStyleSettingsWizardSettings");
|
|
21
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
21
22
|
exports.ConditionalStyleWizard = (props) => {
|
|
22
23
|
var _a;
|
|
23
24
|
const data = (_a = props.data) !== null && _a !== void 0 ? _a : props.popupParams.value;
|
|
@@ -91,6 +92,14 @@ exports.ConditionalStyleWizard = (props) => {
|
|
|
91
92
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
92
93
|
React.createElement(ConditionalStyleSettingsWizardSettings_1.ConditionalStyleSettingsWizardSettings, { onChange: setConditionalStyle }))),
|
|
93
94
|
},
|
|
95
|
+
{
|
|
96
|
+
details: 'Select Conditional Style tags',
|
|
97
|
+
title: 'Tags',
|
|
98
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
99
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
100
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setConditionalStyle }))),
|
|
101
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
102
|
+
},
|
|
94
103
|
'-',
|
|
95
104
|
{
|
|
96
105
|
details: 'Review the Conditional Style',
|
|
@@ -12,6 +12,7 @@ const CustomSortValuesWizardSection_1 = require("./CustomSortValuesWizardSection
|
|
|
12
12
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
|
|
13
13
|
const react_redux_1 = require("react-redux");
|
|
14
14
|
const CustomSortRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/CustomSortRedux"));
|
|
15
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
15
16
|
exports.CustomSortWizard = (props) => {
|
|
16
17
|
var _a, _b;
|
|
17
18
|
let data = props.data;
|
|
@@ -59,6 +60,14 @@ exports.CustomSortWizard = (props) => {
|
|
|
59
60
|
render: () => (React.createElement(rebass_1.Box, { padding: 2, style: { height: '100%' } },
|
|
60
61
|
React.createElement(CustomSortValuesWizardSection_1.CustomSortValuesWizardSection, { onChange: setCustomSort }))),
|
|
61
62
|
},
|
|
63
|
+
{
|
|
64
|
+
details: 'Select Custom Sort tags',
|
|
65
|
+
title: 'Tags',
|
|
66
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
67
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
68
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setCustomSort }))),
|
|
69
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
70
|
+
},
|
|
62
71
|
'-',
|
|
63
72
|
{
|
|
64
73
|
title: 'Summary',
|
|
@@ -32,7 +32,7 @@ exports.DataSourceSettingsWizard = (props) => {
|
|
|
32
32
|
};
|
|
33
33
|
return (React.createElement(rebass_1.Box, { "data-name": "data-soruce-settings" },
|
|
34
34
|
React.createElement(Tabs_1.Tabs, { autoFocus: false },
|
|
35
|
-
React.createElement(Tabs_1.Tabs.Tab, null, "Data
|
|
35
|
+
React.createElement(Tabs_1.Tabs.Tab, null, "Data Source Settings"),
|
|
36
36
|
React.createElement(Tabs_1.Tabs.Content, null,
|
|
37
37
|
React.createElement(FormLayout_1.default, null,
|
|
38
38
|
React.createElement(FormLayout_1.FormRow, { label: "Name" },
|
|
@@ -10,6 +10,7 @@ const DataSourceSettingsSummary_1 = require("./DataSourceSettingsSummary");
|
|
|
10
10
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
|
|
11
11
|
const react_redux_1 = require("react-redux");
|
|
12
12
|
const DataSourceRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/DataSourceRedux"));
|
|
13
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
13
14
|
exports.DataSourceWizard = (props) => {
|
|
14
15
|
const [dataSource, setDataSource] = React.useState(() => {
|
|
15
16
|
return props.data ? props.data : ObjectFactory_1.default.CreateEmptyDataSource();
|
|
@@ -32,6 +33,15 @@ exports.DataSourceWizard = (props) => {
|
|
|
32
33
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
33
34
|
React.createElement(DataSourceSettingsWizard_1.DataSourceSettingsWizard, { onChange: setDataSource }))),
|
|
34
35
|
},
|
|
36
|
+
{
|
|
37
|
+
details: 'Select Data Source tags',
|
|
38
|
+
title: 'Tags',
|
|
39
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
40
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
41
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setDataSource }))),
|
|
42
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
43
|
+
},
|
|
44
|
+
'-',
|
|
35
45
|
{
|
|
36
46
|
render: () => {
|
|
37
47
|
return (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExportSelector = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const DropdownButton_1 = tslib_1.__importDefault(require("../../components/DropdownButton"));
|
|
7
|
+
const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
|
|
8
|
+
const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
|
|
9
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
const dropdownStyle = {
|
|
12
|
+
padding: 2,
|
|
13
|
+
fontSize: 'small',
|
|
14
|
+
};
|
|
15
|
+
const isCustomDestination = (destination) => {
|
|
16
|
+
return !!destination.name;
|
|
17
|
+
};
|
|
18
|
+
exports.ExportSelector = () => {
|
|
19
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
20
|
+
// reports
|
|
21
|
+
const handleReportChange = (report) => {
|
|
22
|
+
adaptable.api.exportApi.selectReport(report);
|
|
23
|
+
};
|
|
24
|
+
const allReports = adaptable.api.exportApi.getAllReports();
|
|
25
|
+
const allReportNames = allReports.map((report) => report.Name);
|
|
26
|
+
const reportItems = allReportNames.map((report) => {
|
|
27
|
+
return {
|
|
28
|
+
label: report,
|
|
29
|
+
value: report,
|
|
30
|
+
onClick: () => handleReportChange(report),
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
const currentReport = adaptable.api.exportApi.getCurrentReport();
|
|
34
|
+
const currentReportId = StringExtensions_1.default.IsNullOrEmpty(currentReport === null || currentReport === void 0 ? void 0 : currentReport.Name)
|
|
35
|
+
? currentReport
|
|
36
|
+
: currentReport.Name;
|
|
37
|
+
// destinations
|
|
38
|
+
const handleDestinationChange = (destination) => {
|
|
39
|
+
adaptable.api.exportApi.selectDestination(destination);
|
|
40
|
+
};
|
|
41
|
+
const destinationItems = [
|
|
42
|
+
...adaptable.api.exportApi.getAvailableExportDestinations().map((destination) => ({
|
|
43
|
+
label: destination,
|
|
44
|
+
onClick: () => handleDestinationChange(destination),
|
|
45
|
+
})),
|
|
46
|
+
...adaptable.api.exportApi.getAllCustomDestination().map((destination) => ({
|
|
47
|
+
label: destination.name,
|
|
48
|
+
onClick: () => handleDestinationChange(destination.name),
|
|
49
|
+
})),
|
|
50
|
+
];
|
|
51
|
+
const currentDestination = adaptable.api.exportApi.getCurrentDestination();
|
|
52
|
+
let currentDestinationId = null;
|
|
53
|
+
if (typeof currentDestination === 'string') {
|
|
54
|
+
currentDestinationId = currentDestination;
|
|
55
|
+
}
|
|
56
|
+
else if (currentDestination && 'name' in currentDestination) {
|
|
57
|
+
currentDestinationId = currentDestination.name;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
currentDestinationId = constants_1.SELECT_DESTINATION_STRING;
|
|
61
|
+
}
|
|
62
|
+
// export
|
|
63
|
+
const handleExport = () => {
|
|
64
|
+
if (isCustomDestination(currentDestination)) {
|
|
65
|
+
adaptable.api.exportApi.sendReport(currentReport.Name, currentDestination.name);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
adaptable.api.exportApi.sendReport(currentReport.Name, currentDestination);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return (React.createElement(React.Fragment, null,
|
|
72
|
+
React.createElement(DropdownButton_1.default, { disabled: allReportNames.length == 0, style: dropdownStyle, items: reportItems, columns: ['label'], onClear: () => handleReportChange(null), showClearButton: !!currentReport, variant: "outlined", marginRight: 2 }, currentReportId !== null && currentReportId !== void 0 ? currentReportId : constants_1.SELECT_REPORT_STRING),
|
|
73
|
+
React.createElement(DropdownButton_1.default, { disabled: currentReportId === constants_1.SELECT_REPORT_STRING, style: dropdownStyle, items: destinationItems, columns: ['label'], onClear: () => handleDestinationChange(null), showClearButton: !!currentDestination, variant: "outlined", marginRight: 2 }, currentDestinationId),
|
|
74
|
+
React.createElement(SimpleButton_1.default, { disabled: currentDestinationId === constants_1.SELECT_DESTINATION_STRING, iconSize: 15, icon: "export", variant: "text", onClick: handleExport })));
|
|
75
|
+
};
|
|
@@ -21,13 +21,12 @@ const ButtonSchedule_1 = require("../Components/Buttons/ButtonSchedule");
|
|
|
21
21
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../Utilities/ObjectFactory"));
|
|
22
22
|
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
23
23
|
const react_redux_1 = require("react-redux");
|
|
24
|
-
const
|
|
25
|
-
const SELECT_DESTINATION_STRING = 'Select Destination';
|
|
24
|
+
const constants_1 = require("./constants");
|
|
26
25
|
class ExportViewPanelComponent extends React.Component {
|
|
27
26
|
render() {
|
|
28
27
|
let currentReport = this.props.api.exportApi.getReportByName(this.props.CurrentReport);
|
|
29
28
|
let currentReportId = StringExtensions_1.StringExtensions.IsNullOrEmpty(this.props.CurrentReport)
|
|
30
|
-
? SELECT_REPORT_STRING
|
|
29
|
+
? constants_1.SELECT_REPORT_STRING
|
|
31
30
|
: this.props.CurrentReport;
|
|
32
31
|
const allReportNames = this.getAllReportNames();
|
|
33
32
|
let reportItems = allReportNames.map((report) => {
|
|
@@ -40,11 +39,11 @@ class ExportViewPanelComponent extends React.Component {
|
|
|
40
39
|
if (currentReport && !allReportNames.includes(currentReport.Name)) {
|
|
41
40
|
// current report is not available
|
|
42
41
|
currentReport = undefined;
|
|
43
|
-
currentReportId = SELECT_REPORT_STRING;
|
|
42
|
+
currentReportId = constants_1.SELECT_REPORT_STRING;
|
|
44
43
|
}
|
|
45
44
|
let currentDestination = this.props.api.exportApi.getDestinationByName(this.props.CurrentDestination);
|
|
46
45
|
let currentDestinationId = StringExtensions_1.StringExtensions.IsNullOrEmpty(this.props.CurrentDestination)
|
|
47
|
-
? SELECT_DESTINATION_STRING
|
|
46
|
+
? constants_1.SELECT_DESTINATION_STRING
|
|
48
47
|
: this.props.CurrentDestination;
|
|
49
48
|
const destinationItems = [
|
|
50
49
|
...this.props.api.exportApi.getAvailableExportDestinations().map((destination) => ({
|
|
@@ -66,7 +65,7 @@ class ExportViewPanelComponent extends React.Component {
|
|
|
66
65
|
.includes(this.props.CurrentDestination)) {
|
|
67
66
|
// current destination is not available
|
|
68
67
|
currentDestination = undefined;
|
|
69
|
-
currentDestinationId = SELECT_DESTINATION_STRING;
|
|
68
|
+
currentDestinationId = constants_1.SELECT_DESTINATION_STRING;
|
|
70
69
|
}
|
|
71
70
|
let accessLevel = AdaptableHelper_1.default.getAppropriateAccessLevel(currentReport, this.props.accessLevel);
|
|
72
71
|
let deleteMessage = "Are you sure you want to delete '";
|
|
@@ -81,7 +80,7 @@ class ExportViewPanelComponent extends React.Component {
|
|
|
81
80
|
React.createElement(rebass_1.Flex, { flex: 1 },
|
|
82
81
|
React.createElement(DropdownButton_1.default, { disabled: allReportNames.length == 0, style: { width: '100%', fontSize: 'small' }, items: reportItems, columns: ['label'], className: `ab-${elementType}__Export__select`, onClear: () => this.onSelectedReportChanged(null), showClearButton: !!currentReport, variant: "outlined", marginRight: 2 }, currentReportId)),
|
|
83
82
|
React.createElement(rebass_1.Flex, { flex: 1 },
|
|
84
|
-
React.createElement(DropdownButton_1.default, { disabled: currentReportId === SELECT_REPORT_STRING, style: { width: '100%', fontSize: 'small' }, items: destinationItems, columns: ['label'], className: `ab-${elementType}__Export__export`, onClear: () => this.onSelectedDestinationChanged(null), showClearButton: !!currentDestination, variant: "outlined", marginRight: 2 }, currentDestinationId)),
|
|
83
|
+
React.createElement(DropdownButton_1.default, { disabled: currentReportId === constants_1.SELECT_REPORT_STRING, style: { width: '100%', fontSize: 'small' }, items: destinationItems, columns: ['label'], className: `ab-${elementType}__Export__export`, onClear: () => this.onSelectedDestinationChanged(null), showClearButton: !!currentDestination, variant: "outlined", marginRight: 2 }, currentDestinationId)),
|
|
85
84
|
React.createElement(rebass_1.Flex, { className: join_1.default(accessLevel == 'ReadOnly' ? GeneralConstants.READ_ONLY_STYLE : '', `ab-${elementType}__Export__controls`), style: { width: '100%' } },
|
|
86
85
|
React.createElement(ButtonExport_1.ButtonExport, { onClick: () => onApplyExport(), tooltip: "Export Report", className: `ab-${elementType}__Export__export`, disabled: currentReport == null || currentDestination == null }),
|
|
87
86
|
React.createElement(ButtonEdit_1.ButtonEdit, { onClick: () => this.props.onEditReport(this.props.moduleInfo.Popup), tooltip: "Edit Report", className: `ab-${elementType}__Export__edit`, disabled: currentReport == null || currentReport.ReportColumnScope == 'CustomColumns', accessLevel: accessLevel }),
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export declare const ReportExportDropdown: React.FunctionComponent<{
|
|
4
|
-
data: Report;
|
|
5
|
-
}>;
|
|
1
|
+
import { AdaptableModuleViewAction } from '../../Strategy/Interface/IModule';
|
|
2
|
+
export declare const ReportExportDropdown: AdaptableModuleViewAction;
|
|
@@ -13,6 +13,7 @@ const ReportNameWizardSection_1 = require("./ReportNameWizardSection");
|
|
|
13
13
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
|
|
14
14
|
const react_redux_1 = require("react-redux");
|
|
15
15
|
const ExportRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/ExportRedux"));
|
|
16
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
16
17
|
exports.NewReportWizard = (props) => {
|
|
17
18
|
var _a, _b;
|
|
18
19
|
const isEdit = ((_a = props.popupParams) === null || _a === void 0 ? void 0 : _a.action) ? props.popupParams.action === 'Edit'
|
|
@@ -59,6 +60,14 @@ exports.NewReportWizard = (props) => {
|
|
|
59
60
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
60
61
|
React.createElement(ReportNameWizardSection_1.ReportNameWizardSection, { onChange: setReport }))),
|
|
61
62
|
},
|
|
63
|
+
{
|
|
64
|
+
details: 'Select Report tags',
|
|
65
|
+
title: 'Tags',
|
|
66
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
67
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
68
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setReport }))),
|
|
69
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
70
|
+
},
|
|
62
71
|
'-',
|
|
63
72
|
{
|
|
64
73
|
title: 'Summary',
|
|
@@ -18,6 +18,7 @@ const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/Obje
|
|
|
18
18
|
const react_redux_1 = require("react-redux");
|
|
19
19
|
const isValidFlashingCellRules_1 = require("./isValidFlashingCellRules");
|
|
20
20
|
const FlashingCellRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/FlashingCellRedux"));
|
|
21
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
21
22
|
exports.FlashingCellWizard = (props) => {
|
|
22
23
|
const { api } = AdaptableContext_1.useAdaptable();
|
|
23
24
|
const [flashingCell, setFlashingCell] = react_1.useState(() => {
|
|
@@ -84,6 +85,14 @@ exports.FlashingCellWizard = (props) => {
|
|
|
84
85
|
renderSummary: FlashingCellStyleWizardSection_1.renderFlashingAlertStyleSummary,
|
|
85
86
|
title: 'Flash Styles',
|
|
86
87
|
},
|
|
88
|
+
{
|
|
89
|
+
details: 'Select Flashing Cell tags',
|
|
90
|
+
title: 'Tags',
|
|
91
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
92
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
93
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setFlashingCell }))),
|
|
94
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
95
|
+
},
|
|
87
96
|
'-',
|
|
88
97
|
{
|
|
89
98
|
details: 'Review the Flashing Cell Rule',
|
|
@@ -16,6 +16,7 @@ const NewScopeComponent_1 = require("../../Components/NewScopeComponent");
|
|
|
16
16
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
|
|
17
17
|
const react_redux_1 = require("react-redux");
|
|
18
18
|
const FormatColumnRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/FormatColumnRedux"));
|
|
19
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
19
20
|
const adjustDisplayFormat = (formatColumn, api) => {
|
|
20
21
|
formatColumn = Object.assign({}, formatColumn);
|
|
21
22
|
const formatDataType = FormatColumnFormatWizardSection_1.getFormatDisplayTypeForScope(formatColumn.Scope, api);
|
|
@@ -137,6 +138,14 @@ function FormatColumnWizard(props) {
|
|
|
137
138
|
React.createElement(FormatColumnSettingsWizardSection_1.FormatColumnSettingsWizardSection, { onChange: setFormatColumn })));
|
|
138
139
|
},
|
|
139
140
|
},
|
|
141
|
+
{
|
|
142
|
+
details: 'Select Format Column tags',
|
|
143
|
+
title: 'Tags',
|
|
144
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
145
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
146
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setFormatColumn }))),
|
|
147
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
148
|
+
},
|
|
140
149
|
'-',
|
|
141
150
|
{
|
|
142
151
|
details: 'Review the Format Column',
|
|
@@ -11,6 +11,7 @@ const FreeTextColumnSettingsWizardSection_1 = require("./FreeTextColumnSettingsW
|
|
|
11
11
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
|
|
12
12
|
const FreeTextColumnRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/FreeTextColumnRedux"));
|
|
13
13
|
const react_redux_1 = require("react-redux");
|
|
14
|
+
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
14
15
|
exports.FreeTextColumnWizard = (props) => {
|
|
15
16
|
var _a;
|
|
16
17
|
const allFreeTextColumns = react_redux_1.useSelector((state) => state.FreeTextColumn.FreeTextColumns);
|
|
@@ -45,6 +46,14 @@ exports.FreeTextColumnWizard = (props) => {
|
|
|
45
46
|
React.createElement(FreeTextColumnSettingsWizardSection_1.FreeTextColumnSettingsWizardSection, { isEdit: Boolean(props.data), onChange: setFreeTextColumn })));
|
|
46
47
|
},
|
|
47
48
|
},
|
|
49
|
+
{
|
|
50
|
+
details: 'Select Free Text Column tags',
|
|
51
|
+
title: 'Tags',
|
|
52
|
+
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
53
|
+
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
54
|
+
React.createElement(ObjectTagsWizardSection_1.ObjectTagsWizardSection, { onChange: setFreeTextColumn }))),
|
|
55
|
+
renderSummary: ObjectTagsWizardSection_1.renderObjectTagsSummary,
|
|
56
|
+
},
|
|
48
57
|
'-',
|
|
49
58
|
{
|
|
50
59
|
details: 'Review the Free Text Column',
|