@adaptabletools/adaptable 12.0.0 → 12.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/base.css +6 -19
  2. package/bundle.cjs.js +129 -129
  3. package/index.css +7 -23
  4. package/package.json +1 -1
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -2
  8. package/src/AdaptableOptions/ActionOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +1 -1
  10. package/src/AdaptableOptions/StateOptions.d.ts +9 -23
  11. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +34 -1
  12. package/src/Api/ChartingApi.d.ts +19 -2
  13. package/src/Api/FilterApi.d.ts +7 -2
  14. package/src/Api/FormatColumnApi.d.ts +6 -6
  15. package/src/Api/GridApi.d.ts +1 -1
  16. package/src/Api/Implementation/ChartingApiImpl.d.ts +6 -0
  17. package/src/Api/Implementation/ChartingApiImpl.js +17 -0
  18. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -0
  19. package/src/Api/Implementation/ConfigApiImpl.js +11 -0
  20. package/src/Api/Implementation/FilterApiImpl.d.ts +1 -0
  21. package/src/Api/Implementation/FilterApiImpl.js +5 -0
  22. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +3 -3
  23. package/src/Api/Implementation/FormatColumnApiImpl.js +13 -11
  24. package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
  25. package/src/Api/Implementation/GridApiImpl.js +2 -2
  26. package/src/Api/Implementation/InternalApiImpl.d.ts +4 -1
  27. package/src/Api/Implementation/InternalApiImpl.js +16 -3
  28. package/src/Api/Implementation/TeamSharingApiImpl.d.ts +1 -0
  29. package/src/Api/Implementation/TeamSharingApiImpl.js +5 -0
  30. package/src/Api/InternalApi.d.ts +4 -1
  31. package/src/Api/TeamSharingApi.d.ts +4 -0
  32. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  33. package/src/PredefinedConfig/CalculatedColumnState.d.ts +0 -5
  34. package/src/PredefinedConfig/ChartingState.d.ts +20 -0
  35. package/src/PredefinedConfig/ChartingState.js +2 -0
  36. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +27 -6
  37. package/src/PredefinedConfig/Common/AdaptablePredicate.js +2 -2
  38. package/src/PredefinedConfig/Common/Types.d.ts +1 -1
  39. package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
  40. package/src/PredefinedConfig/Selection/GridCellRange.d.ts +19 -0
  41. package/src/PredefinedConfig/StatusBarState.d.ts +1 -1
  42. package/src/Redux/ActionsReducers/ChartingRedux.d.ts +23 -0
  43. package/src/Redux/ActionsReducers/ChartingRedux.js +38 -0
  44. package/src/Redux/ActionsReducers/LayoutRedux.js +3 -0
  45. package/src/Redux/Store/AdaptableStore.js +2 -0
  46. package/src/Strategy/AdaptableModuleBase.d.ts +10 -5
  47. package/src/Strategy/AdaptableModuleBase.js +6 -0
  48. package/src/Strategy/AlertModule.d.ts +2 -8
  49. package/src/Strategy/AlertModule.js +6 -3
  50. package/src/Strategy/ChartingModule.js +1 -1
  51. package/src/Strategy/DashboardModule.js +1 -0
  52. package/src/Strategy/ExportModule.js +1 -0
  53. package/src/Strategy/FlashingCellModule.js +3 -3
  54. package/src/Strategy/FormatColumnModule.js +3 -3
  55. package/src/Strategy/GridInfoModule.js +2 -0
  56. package/src/Strategy/Interface/IModule.d.ts +16 -4
  57. package/src/Strategy/LayoutModule.js +2 -0
  58. package/src/Strategy/TeamSharingModule.d.ts +11 -1
  59. package/src/Strategy/TeamSharingModule.js +104 -0
  60. package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
  61. package/src/Utilities/Helpers/FormatHelper.js +6 -2
  62. package/src/Utilities/MenuItem.d.ts +4 -4
  63. package/src/Utilities/ObjectFactory.d.ts +5 -1
  64. package/src/Utilities/ObjectFactory.js +11 -1
  65. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -1
  66. package/src/Utilities/Services/ReportService.d.ts +1 -1
  67. package/src/Utilities/Services/ReportService.js +5 -5
  68. package/src/Utilities/Services/TeamSharingService.js +0 -2
  69. package/src/View/AdaptableViewFactory.js +0 -2
  70. package/src/View/Alert/ActiveAlertsPanelItemLabel.d.ts +5 -0
  71. package/src/View/Alert/ActiveAlertsPanelItemLabel.js +22 -0
  72. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +4 -11
  73. package/src/View/ColorPicker.d.ts +1 -1
  74. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  75. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +8 -4
  76. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +13 -1
  77. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +23 -15
  78. package/src/View/Components/Buttons/ButtonDelete.js +3 -3
  79. package/src/View/Components/Buttons/ButtonPause.js +11 -1
  80. package/src/View/Components/FilterForm/QuickFilterForm.js +23 -2
  81. package/src/View/Components/Panels/PanelWithButton.d.ts +2 -1
  82. package/src/View/Components/Panels/PanelWithImage.d.ts +3 -2
  83. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -0
  84. package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +1 -1
  85. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -11
  86. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -11
  87. package/src/View/Dashboard/CustomDashboardButton.js +2 -15
  88. package/src/View/Dashboard/CustomToolbarWrapper.js +2 -11
  89. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +13 -9
  90. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +6 -0
  91. package/src/View/GridInfo/GridInfoPopup.js +1 -1
  92. package/src/View/Layout/LayoutEditorStandalonePopup.js +3 -1
  93. package/src/View/Layout/LayoutPopup.d.ts +1 -1
  94. package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
  95. package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +2 -27
  96. package/src/View/TeamSharing/SharedEntityDependencies.d.ts +8 -0
  97. package/src/View/TeamSharing/SharedEntityDependencies.js +27 -0
  98. package/src/View/TeamSharing/SharedEntityObjectView.d.ts +9 -0
  99. package/src/View/TeamSharing/SharedEntityObjectView.js +84 -0
  100. package/src/View/TeamSharing/TeamSharingApplyButton.d.ts +6 -0
  101. package/src/View/TeamSharing/TeamSharingApplyButton.js +15 -0
  102. package/src/View/UIHelper.d.ts +2 -2
  103. package/src/agGrid/ActionColumnRenderer.js +5 -11
  104. package/src/agGrid/Adaptable.d.ts +5 -27
  105. package/src/agGrid/Adaptable.js +87 -72
  106. package/src/agGrid/agGridMenuHelper.d.ts +1 -0
  107. package/src/agGrid/agGridMenuHelper.js +15 -4
  108. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +6 -12
  109. package/src/components/AdaptableIconComponent/index.d.ts +2 -1
  110. package/src/components/AdaptableIconComponent/index.js +36 -3
  111. package/src/components/Datepicker/index.d.ts +1 -1
  112. package/src/components/Input/index.d.ts +1 -1
  113. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  114. package/src/components/PopupWithFooter.d.ts +1 -1
  115. package/src/components/SimpleButton/index.js +1 -1
  116. package/src/components/Textarea/index.d.ts +1 -1
  117. package/src/components/icons/{color-drop.d.ts → ends-with.d.ts} +0 -0
  118. package/src/components/icons/{format-letter-ends-with.js → ends-with.js} +0 -0
  119. package/src/components/icons/{filter-outline.d.ts → filter.d.ts} +0 -0
  120. package/src/components/icons/{filter-outline.js → filter.js} +0 -0
  121. package/src/components/icons/index.d.ts +5 -7
  122. package/src/components/icons/index.js +7 -21
  123. package/src/components/icons/{format-letter-ends-with.d.ts → starts-with.d.ts} +0 -0
  124. package/src/components/icons/{format-letter-starts-with.js → starts-with.js} +0 -0
  125. package/src/metamodel/adaptable.metamodel.d.ts +150 -1
  126. package/src/metamodel/adaptable.metamodel.js +1 -1
  127. package/src/types.d.ts +4 -2
  128. package/version.d.ts +1 -1
  129. package/version.js +1 -1
  130. package/src/View/Alert/AlertSharedEntity.d.ts +0 -5
  131. package/src/View/Alert/AlertSharedEntity.js +0 -19
  132. package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.d.ts +0 -5
  133. package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.js +0 -20
  134. package/src/View/ConditionalStyle/ConditionalStyleSharedEntity.d.ts +0 -5
  135. package/src/View/ConditionalStyle/ConditionalStyleSharedEntity.js +0 -23
  136. package/src/View/CustomSort/CustomSortSharedEntity.d.ts +0 -6
  137. package/src/View/CustomSort/CustomSortSharedEntity.js +0 -24
  138. package/src/View/Export/ExportSharedEntity.d.ts +0 -5
  139. package/src/View/Export/ExportSharedEntity.js +0 -16
  140. package/src/View/Filter/FilterSharedEntity.d.ts +0 -5
  141. package/src/View/Filter/FilterSharedEntity.js +0 -15
  142. package/src/View/FormatColumn/FormatColumnSharedEntity.d.ts +0 -5
  143. package/src/View/FormatColumn/FormatColumnSharedEntity.js +0 -18
  144. package/src/View/FreeTextColumn/FreeTextColumnSharedEntity.d.ts +0 -5
  145. package/src/View/FreeTextColumn/FreeTextColumnSharedEntity.js +0 -24
  146. package/src/View/Layout/LayoutSharedEntity.d.ts +0 -5
  147. package/src/View/Layout/LayoutSharedEntity.js +0 -15
  148. package/src/View/PlusMinus/PlusMinusSharedEntity.d.ts +0 -5
  149. package/src/View/PlusMinus/PlusMinusSharedEntity.js +0 -21
  150. package/src/View/Query/NamedQuerySharedEntity.d.ts +0 -5
  151. package/src/View/Query/NamedQuerySharedEntity.js +0 -19
  152. package/src/View/Shortcut/ShortcutSharedEntity.d.ts +0 -5
  153. package/src/View/Shortcut/ShortcutSharedEntity.js +0 -19
  154. package/src/View/TeamSharing/TeamSharingPopup.d.ts +0 -23
  155. package/src/View/TeamSharing/TeamSharingPopup.js +0 -163
  156. package/src/agGrid/rowEditIcons.d.ts +0 -5
  157. package/src/agGrid/rowEditIcons.js +0 -10
  158. package/src/components/icons/color-drop.js +0 -7
  159. package/src/components/icons/format-letter-starts-with.d.ts +0 -3
  160. package/src/components/icons/pause-red.d.ts +0 -3
  161. package/src/components/icons/pause-red.js +0 -7
@@ -15,6 +15,7 @@ const ButtonShare_1 = require("../Buttons/ButtonShare");
15
15
  const SuspendToggleButton_1 = require("../Buttons/SuspendToggleButton/SuspendToggleButton");
16
16
  const ValueSelector_1 = require("../ValueSelector");
17
17
  const ICON_SIZE = 26;
18
+ const baseClassName = 'ab-Adaptable-Object-List';
18
19
  const AdaptableObjectListItem = (props) => {
19
20
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
20
21
  const adaptable = AdaptableContext_1.useAdaptable();
@@ -24,15 +25,17 @@ const AdaptableObjectListItem = (props) => {
24
25
  const viewOptions = (_b = (_a = props.module) === null || _a === void 0 ? void 0 : _a.getViewProperties) === null || _b === void 0 ? void 0 : _b.call(_a);
25
26
  const EditWizard = (_c = viewOptions.getEditWizard) === null || _c === void 0 ? void 0 : _c.call(viewOptions, props.data.abObject);
26
27
  const deleteAction = (_d = viewOptions === null || viewOptions === void 0 ? void 0 : viewOptions.getDeleteAction) === null || _d === void 0 ? void 0 : _d.call(viewOptions, props.data.abObject);
27
- const teamSharingActivated = adaptable.api.teamSharingApi.isTeamSharingActivated() &&
28
+ const isObjectShareable = props.module.isModuleObjectsShareable();
29
+ const teamSharingActivated = isObjectShareable &&
30
+ adaptable.api.teamSharingApi.isTeamSharingActivated() &&
28
31
  adaptable.api.teamSharingApi.hasTeamSharingFullRights();
29
32
  const entityType = props.module.moduleInfo.FriendlyName;
30
33
  const moduleAccessLevel = adaptable.api.internalApi
31
34
  .getEntitlementService()
32
35
  .getEntitlementAccessLevelForModule(props.module.moduleInfo.ModuleName);
33
36
  const accessLevel = AdaptableHelper_1.default.getAppropriateAccessLevel(props.data.abObject, moduleAccessLevel);
34
- const baseClassName = `${props.baseClassName}__Item`;
35
- const itemClassName = join_1.default(baseClassName, props.data.abObject.IsSuspended && `${baseClassName}--is-suspended`);
37
+ const itemBaseClassName = `${baseClassName}__Item`;
38
+ const itemClassName = join_1.default(props.data.className, itemBaseClassName, props.data.abObject.IsSuspended && `${itemBaseClassName}--is-suspended`);
36
39
  const handleCloseWizard = React.useCallback(() => {
37
40
  setIsEditWizardVisible(false);
38
41
  setWizardStepName(null);
@@ -56,37 +59,42 @@ const AdaptableObjectListItem = (props) => {
56
59
  });
57
60
  });
58
61
  const isEditDisabled = !Boolean(EditWizard || viewOptions.onOpenEditPopup);
59
- return (React.createElement(rebass_1.Flex, { "data-name": "adaptable-object-list-item", "data-value": props.data.abObject.Uuid, as: "li", mb: 3, className: itemClassName },
60
- React.createElement(rebass_1.Box, { flex: 1, className: `${baseClassName}__rows` }, (_j = (_h = (_g = props.data.items).filter) === null || _h === void 0 ? void 0 : _h.call(_g, Boolean)) === null || _j === void 0 ? void 0 : _j.map((tag, index) => {
62
+ const showActions = !props.hideControls;
63
+ return (React.createElement(rebass_1.Flex, { "data-name": "adaptable-object-list-item", "data-value": props.data.abObject.Uuid, as: "li", mb: 3, className: itemClassName, style: props.data.style },
64
+ React.createElement(rebass_1.Box, { flex: 1, className: `${itemBaseClassName}__rows` }, (_j = (_h = (_g = props.data.items).filter) === null || _h === void 0 ? void 0 : _h.call(_g, Boolean)) === null || _j === void 0 ? void 0 : _j.map((tag, index) => {
61
65
  var _a;
62
- return (React.createElement(rebass_1.Flex, { "data-name": tag.name, key: index, mb: 2, className: `${baseClassName}__row` },
63
- React.createElement(rebass_1.Box, { className: `${baseClassName}__label`, mr: 3 },
64
- tag.label || tag.name,
65
- EditWizard && (React.createElement(SimpleButton_1.default, { accessLevel: accessLevel, className: `${baseClassName}__edit-property`, ml: 1, icon: "edit", tooltip: "edit", iconSize: 18, variant: "text", onClick: () => {
66
+ let labelEl = tag.label;
67
+ if (typeof tag.label === 'function') {
68
+ labelEl = React.createElement(tag.label, { data: props.data.abObject });
69
+ }
70
+ labelEl = labelEl !== null && labelEl !== void 0 ? labelEl : tag.name;
71
+ return (React.createElement(rebass_1.Flex, { "data-name": tag.name, key: index, mb: 2, className: `${itemBaseClassName}__row` },
72
+ React.createElement(rebass_1.Box, { className: `${itemBaseClassName}__label`, mr: 3 },
73
+ labelEl,
74
+ EditWizard && (React.createElement(SimpleButton_1.default, { accessLevel: accessLevel, className: `${itemBaseClassName}__edit-property`, ml: 1, icon: "edit", tooltip: "edit", iconSize: 18, variant: "text", onClick: () => {
66
75
  handleOnEdit(tag.name);
67
76
  } }))),
68
- React.createElement(rebass_1.Box, { flex: 1, className: `${baseClassName}__values` },
77
+ React.createElement(rebass_1.Box, { flex: 1, className: `${itemBaseClassName}__values` },
69
78
  tag.view &&
70
79
  React.createElement(tag.view, {
71
80
  data: props.data.abObject,
72
81
  }),
73
82
  Boolean((tag === null || tag === void 0 ? void 0 : tag.values) && ((_a = tag === null || tag === void 0 ? void 0 : tag.values) === null || _a === void 0 ? void 0 : _a.length)) && (React.createElement(ValueSelector_1.ValueOptionsTags, { style: { marginRight: 0 }, readOnly: true, options: tag.values, value: tag.values, allowWrap: true, toIdentifier: (c) => c, toLabel: (c) => React.createElement(React.Fragment, null, c) })))));
74
83
  })),
75
- React.createElement(rebass_1.Flex, { flexDirection: "column", className: `${baseClassName}__buttons` },
84
+ showActions && (React.createElement(rebass_1.Flex, { flexDirection: "column", className: `${itemBaseClassName}__buttons` },
76
85
  React.createElement(rebass_1.Flex, { justifyContent: "end" },
77
86
  actions,
78
87
  teamSharingActivated && (React.createElement(ButtonShare_1.ButtonShare, { iconSize: ICON_SIZE, Header: `TeamSharing ${entityType}`, accessLevel: accessLevel, onShare: (config) => adaptable.api.teamSharingApi.shareEntity(props.data.abObject, props.module.moduleInfo.ModuleName, config) })),
79
- deleteAction && (React.createElement(ButtonDelete_1.ButtonDelete, { iconSize: ICON_SIZE, ConfirmationMsg: `Are you sure you want to delete this ${entityType}?`, ConfirmationTitle: `Delete ${entityType}`, ConfirmAction: deleteAction, accessLevel: accessLevel })),
88
+ deleteAction && (React.createElement(ButtonDelete_1.ButtonDelete, { disabled: props.deleteDisabled, tooltip: props.deleteTooltip, iconSize: ICON_SIZE, ConfirmationMsg: `Are you sure you want to delete this ${entityType}?`, ConfirmationTitle: `Delete ${entityType}`, ConfirmAction: deleteAction, accessLevel: accessLevel })),
80
89
  React.createElement(ButtonEdit_1.ButtonEdit, { iconSize: ICON_SIZE, disabled: isEditDisabled, accessLevel: accessLevel, onClick: () => handleOnEdit() })),
81
90
  React.createElement(rebass_1.Box, { flex: 1 }),
82
91
  hasSuspend && (React.createElement(rebass_1.Flex, { justifyContent: "end" },
83
- React.createElement(SuspendToggleButton_1.SuspendToggleButton, { onSuspend: () => dispatch(viewOptions.getSuspendAction(props.data.abObject)), onUnSuspend: () => dispatch(viewOptions.getUnSuspendAction(props.data.abObject)), suspendableObject: props.data.abObject, accessLevel: accessLevel })))),
92
+ React.createElement(SuspendToggleButton_1.SuspendToggleButton, { onSuspend: () => dispatch(viewOptions.getSuspendAction(props.data.abObject)), onUnSuspend: () => dispatch(viewOptions.getUnSuspendAction(props.data.abObject)), suspendableObject: props.data.abObject, accessLevel: accessLevel }))))),
84
93
  isEditWizardVisible && EditWizard && (React.createElement(EditWizard, { defaultCurrentSectionName: wizardStepName, moduleInfo: props.module.moduleInfo, data: props.data.abObject, configEntities: null, onCloseWizard: handleCloseWizard, onFinishWizard: handleCloseWizard }))));
85
94
  };
86
95
  exports.AdaptableObjectListItem = AdaptableObjectListItem;
87
96
  const AdaptableObjectList = (props) => {
88
97
  var _a;
89
- const baseClassName = 'ab-Adaptable-Object-List';
90
- return (React.createElement("ul", { className: baseClassName }, (_a = props === null || props === void 0 ? void 0 : props.items) === null || _a === void 0 ? void 0 : _a.map((item) => (React.createElement(exports.AdaptableObjectListItem, { key: item.abObject.Uuid, baseClassName: baseClassName, data: item, module: props.module })))));
98
+ return (React.createElement("ul", { className: baseClassName }, (_a = props === null || props === void 0 ? void 0 : props.items) === null || _a === void 0 ? void 0 : _a.map((item) => (React.createElement(exports.AdaptableObjectListItem, { key: item.abObject.Uuid, data: item, module: props.module })))));
91
99
  };
92
100
  exports.AdaptableObjectList = AdaptableObjectList;
@@ -8,9 +8,9 @@ const PopupRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/
8
8
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
9
9
  class ButtonDeleteComponent extends React.Component {
10
10
  render() {
11
- var _a;
12
- const _b = this.props, { onConfirmWarning, ConfirmAction, ConfirmationMsg, ConfirmationTitle, onClickAction } = _b, props = tslib_1.__rest(_b, ["onConfirmWarning", "ConfirmAction", "ConfirmationMsg", "ConfirmationTitle", "onClickAction"]);
13
- return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "delete", tooltip: "Delete", variant: "text", icon: "trash", iconSize: (_a = props.iconSize) !== null && _a !== void 0 ? _a : 24 }, props, { onClick: () => this.onClick() })));
11
+ var _a, _b;
12
+ const _c = this.props, { onConfirmWarning, ConfirmAction, ConfirmationMsg, ConfirmationTitle, onClickAction } = _c, props = tslib_1.__rest(_c, ["onConfirmWarning", "ConfirmAction", "ConfirmationMsg", "ConfirmationTitle", "onClickAction"]);
13
+ return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "delete", tooltip: (_a = props.tooltip) !== null && _a !== void 0 ? _a : 'Delete', variant: "text", icon: "trash", iconSize: (_b = props.iconSize) !== null && _b !== void 0 ? _b : 24 }, props, { onClick: () => this.onClick() })));
14
14
  }
15
15
  onClick() {
16
16
  if (this.props.ConfirmAction) {
@@ -6,7 +6,17 @@ const React = tslib_1.__importStar(require("react"));
6
6
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
7
7
  class ButtonPause extends React.Component {
8
8
  render() {
9
- return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "pause", tooltip: "Pause", iconSize: 20, icon: this.props.fillColor === 'red' ? 'pause-red' : 'pause', variant: "text" }, this.props)));
9
+ const buttonIcon = this.props.fillColor === 'red'
10
+ ? {
11
+ name: 'pause',
12
+ style: {
13
+ fill: 'red',
14
+ },
15
+ }
16
+ : {
17
+ name: 'pause',
18
+ };
19
+ return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "pause", tooltip: "Pause", iconSize: 20, icon: buttonIcon, variant: "text" }, this.props)));
10
20
  }
11
21
  }
12
22
  exports.ButtonPause = ButtonPause;
@@ -44,6 +44,7 @@ class QuickFilterFormComponent extends React.Component {
44
44
  };
45
45
  this.debouncedAddFilter = debounce_1.default(() => this.props.onAddColumnFilter(this.state.filter), 250);
46
46
  this.debouncedEditFilter = debounce_1.default(() => this.props.onEditColumnFilter(this.state.filter), 250);
47
+ this.debouncedLoadPermittedValues = debounce_1.default(() => this.loadPermittedValues(), 500);
47
48
  const filter = this.getFilterFromProps();
48
49
  this._isMounted = true;
49
50
  this.state = {
@@ -58,9 +59,19 @@ class QuickFilterFormComponent extends React.Component {
58
59
  if (this.hasValuesPredicate((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate)) {
59
60
  this.loadPermittedValues();
60
61
  }
62
+ this.unsubscribeOnCellChanged = this.props.api.eventApi.on('CellChanged', (cellChangedInfo) => {
63
+ this.handleGridValueChange(cellChangedInfo.cellChange.column.columnId);
64
+ });
65
+ this.unsubscribeOnGridDataChanged = this.props.api.eventApi.on('GridDataChanged', () => {
66
+ // there is no way to find out if the changed rows are relevant for this filter, so we have to update it every time :/
67
+ this.handleGridValueChange();
68
+ });
61
69
  }
62
70
  componentWillUnmount() {
71
+ var _a, _b;
63
72
  this._isMounted = false;
73
+ (_a = this.unsubscribeOnCellChanged) === null || _a === void 0 ? void 0 : _a.call(this);
74
+ (_b = this.unsubscribeOnGridDataChanged) === null || _b === void 0 ? void 0 : _b.call(this);
64
75
  }
65
76
  UNSAFE_componentWillReceiveProps(nextProps) {
66
77
  const filter = this.getFilterFromProps(nextProps);
@@ -153,7 +164,7 @@ class QuickFilterFormComponent extends React.Component {
153
164
  }
154
165
  renderPredicateIcon(predicateDef) {
155
166
  if (!predicateDef || !predicateDef.icon) {
156
- return React.createElement(icons_1.Icon, { name: "filter-outline" });
167
+ return React.createElement(icons_1.Icon, { name: "filter" });
157
168
  }
158
169
  if ('text' in predicateDef.icon) {
159
170
  return React.createElement("span", null, predicateDef.icon.text);
@@ -239,7 +250,7 @@ class QuickFilterFormComponent extends React.Component {
239
250
  return (React.createElement(rebass_1.Flex, { onMouseEnter: () => {
240
251
  var _a;
241
252
  if (showEvent === 'click') {
242
- // For showEvent=mouseneter this is not needed.
253
+ // For showEvent=mousenter this is not needed.
243
254
  // When mouseenter is triggered on the overlay, onShowFn is called, the overlay is no longer hidden.
244
255
  // But in this case because the trigger is click, another show is not triggered.
245
256
  (_a = this.valuesDropdown) === null || _a === void 0 ? void 0 : _a.show();
@@ -295,6 +306,16 @@ class QuickFilterFormComponent extends React.Component {
295
306
  });
296
307
  }
297
308
  }
309
+ handleGridValueChange(changedColumnId) {
310
+ var _a, _b, _c, _d;
311
+ if (!this.hasValuesPredicate((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate)) {
312
+ return;
313
+ }
314
+ if (changedColumnId && changedColumnId !== ((_d = (_c = this.state) === null || _c === void 0 ? void 0 : _c.filter) === null || _d === void 0 ? void 0 : _d.ColumnId)) {
315
+ return;
316
+ }
317
+ this.debouncedLoadPermittedValues();
318
+ }
298
319
  updateFilter(filter) {
299
320
  this.setState({ filter });
300
321
  if (filter.Uuid) {
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { PanelProps } from '../../../components/Panel';
3
3
  import { BoxProps } from 'rebass';
4
+ import { AdaptableInternalIconName } from '../../../PredefinedConfig/Common/AdaptableIcon';
4
5
  export interface PanelWithButtonProps extends PanelProps {
5
6
  buttonContent?: React.ReactNode;
6
7
  buttonClick?: () => void;
@@ -10,7 +11,7 @@ export interface PanelWithButtonProps extends PanelProps {
10
11
  headerProps?: BoxProps & {
11
12
  'data-name': string;
12
13
  };
13
- glyphicon?: string;
14
+ glyphicon?: AdaptableInternalIconName;
14
15
  buttonDisabled?: boolean;
15
16
  buttonStyle?: string;
16
17
  borderRadius?: string;
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { PanelProps } from '../../../components/Panel';
3
3
  import { BoxProps } from 'rebass';
4
+ import { AdaptableInternalIconName } from '../../../PredefinedConfig/Common/AdaptableIcon';
4
5
  export interface PanelWithImageProps extends PanelProps {
5
- glyphicon?: string;
6
- icon?: string;
6
+ glyphicon?: AdaptableInternalIconName;
7
+ icon?: AdaptableInternalIconName;
7
8
  infoLink?: string;
8
9
  infoLinkDisabled?: boolean;
9
10
  borderRadius?: string;
@@ -37,6 +37,10 @@ const AdaptablePopupModuleView = (props) => {
37
37
  moduleViewProperties.onOpenEditPopup();
38
38
  }
39
39
  }, []);
40
+ React.useEffect(() => {
41
+ var _a;
42
+ (_a = moduleViewProperties === null || moduleViewProperties === void 0 ? void 0 : moduleViewProperties.onMount) === null || _a === void 0 ? void 0 : _a.call(moduleViewProperties);
43
+ }, []);
40
44
  React.useEffect(() => {
41
45
  var _a, _b;
42
46
  if (((_a = props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'New' || ((_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.action) === 'Edit') {
@@ -33,7 +33,7 @@ const AdaptablePopupTeamSharing = (props) => {
33
33
  React.createElement("strong", null, "Active"),
34
34
  ": a \"live\" share that is automatically updated with every local change"))),
35
35
  React.createElement(FormLayout_1.default, { padding: 2 },
36
- React.createElement(FormLayout_1.FormRow, { label: "Description: " },
36
+ React.createElement(FormLayout_1.FormRow, { label: "Name: " },
37
37
  React.createElement(Input_1.default, { autoFocus: true, value: config.description, type: "string", width: 300, placeholder: "Enter text", onChange: (e) => setConfig(Object.assign(Object.assign({}, config), { description: e.target.value })) })),
38
38
  React.createElement(FormLayout_1.FormRow, { label: "Share: " },
39
39
  React.createElement(rebass_1.Flex, { flexDirection: "row" },
@@ -148,19 +148,11 @@ const AdaptableToolPanelComponent = (props) => {
148
148
  return props.api.toolPanelApi.getCustomToolPanelButtons().map((button) => {
149
149
  // TODO: variants of this mapping are present in several places (just search for api.internalApi.getStyleForButton() usages)
150
150
  // with the next opportunity we should abstract it
151
- // the default size of AdapTable SVG ModuleButtons
152
- const defaultIconProps = {
153
- style: {
154
- height: 'var(--ab-cmp-simple-button__height)',
155
- width: 'var(--ab-cmp-simple-button__width)',
156
- },
157
- };
158
151
  const toolPanelContext = {
159
152
  adaptableApi: props.api,
160
153
  toolPanelState: props.api.toolPanelApi.getToolPanelState(),
161
154
  };
162
155
  const buttonIcon = props.api.internalApi.getIconForButton(button, toolPanelContext);
163
- const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
164
156
  let buttonStyle = props.api.internalApi.getStyleForButton(button, toolPanelContext);
165
157
  let buttonLabel = props.api.internalApi.getLabelForButton(button, toolPanelContext);
166
158
  let buttonTooltip = props.api.internalApi.getTooltipForButton(button, toolPanelContext);
@@ -171,9 +163,7 @@ const AdaptableToolPanelComponent = (props) => {
171
163
  const buttonVariant = buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text';
172
164
  const buttonTone = buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none';
173
165
  const uniqueKey = buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : uuid_1.createUuid();
174
- return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' },
175
- buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
176
- buttonLabel));
166
+ return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, icon: buttonIcon, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' }, buttonLabel));
177
167
  });
178
168
  };
179
169
  const onSetColumnVisibility = (name) => {
@@ -44,20 +44,12 @@ const CustomToolPanelContent = (props) => {
44
44
  ((_a = customToolPanel.buttons) === null || _a === void 0 ? void 0 : _a.length) && (React.createElement("div", { id: buttonsDivId, className: `ab-ToolPanel__custom-content__buttons ${buttonsDivId}` }, customToolPanel.buttons.map((button) => {
45
45
  // TODO: variants of this mapping are present in several places (just search for api.internalApi.getStyleForButton() usages)
46
46
  // with the next opportunity we should abstract it
47
- // the default size of AdapTable SVG ModuleButtons
48
- const defaultIconProps = {
49
- style: {
50
- height: 'var(--ab-cmp-simple-button__height)',
51
- width: 'var(--ab-cmp-simple-button__width)',
52
- },
53
- };
54
47
  const toolPanelContext = {
55
48
  adaptableApi: api,
56
49
  toolPanelState: api.toolPanelApi.getToolPanelState(),
57
50
  customToolPanel: customToolPanel,
58
51
  };
59
52
  const buttonIcon = api.internalApi.getIconForButton(button, toolPanelContext);
60
- const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
61
53
  let buttonStyle = api.internalApi.getStyleForButton(button, toolPanelContext);
62
54
  let buttonLabel = api.internalApi.getLabelForButton(button, toolPanelContext);
63
55
  let buttonTooltip = api.internalApi.getTooltipForButton(button, toolPanelContext);
@@ -68,9 +60,7 @@ const CustomToolPanelContent = (props) => {
68
60
  const buttonVariant = buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text';
69
61
  const buttonTone = buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none';
70
62
  const uniqueKey = buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : uuid_1.createUuid();
71
- return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' },
72
- buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
73
- buttonLabel));
63
+ return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, icon: buttonIcon, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' }, buttonLabel));
74
64
  })))));
75
65
  };
76
66
  exports.CustomToolPanelContent = CustomToolPanelContent;
@@ -15,18 +15,7 @@ const CustomDashboardButton = (props) => {
15
15
  adaptableApi: props.api,
16
16
  dashboardState: props.api.dashboardApi.getDashboardState(),
17
17
  };
18
- const defaultIconProps = {
19
- style: {
20
- height: 'var(--ab-cmp-simple-button__height)',
21
- width: 'var(--ab-cmp-simple-button__width)',
22
- },
23
- };
24
18
  const buttonIcon = props.api.internalApi.getIconForButton(button, dashboardContext);
25
- const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
26
- // const iconProps: any = button.icon ? { ...button.icon } : null;
27
- // if (iconProps) {
28
- // delete iconProps.Uuid;
29
- // }
30
19
  let buttonStyle = props.api.internalApi.getStyleForButton(button, dashboardContext);
31
20
  let buttonLabel = props.api.internalApi.getLabelForButton(button, dashboardContext);
32
21
  let buttonTooltip = props.api.internalApi.getTooltipForButton(button, dashboardContext);
@@ -34,15 +23,13 @@ const CustomDashboardButton = (props) => {
34
23
  return null;
35
24
  }
36
25
  const disabled = button.disabled && button.disabled(button, dashboardContext);
37
- return (React.createElement(SimpleButton_1.default, { key: buttonLabel, variant: buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text', tone: buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none', className: `ab-DashboardToolbar__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, disabled: disabled || props.accessLevel == 'ReadOnly', onClick: () => {
26
+ return (React.createElement(SimpleButton_1.default, { key: buttonLabel, variant: buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text', tone: buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none', className: `ab-DashboardToolbar__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, icon: buttonIcon, disabled: disabled || props.accessLevel == 'ReadOnly', onClick: () => {
38
27
  var _a;
39
28
  (_a = button.onClick) === null || _a === void 0 ? void 0 : _a.call(button, button, dashboardContext);
40
29
  setTimeout(() => {
41
30
  // mutate state to force a re-rendering
42
31
  setComponentRevision(componentRevision + 1);
43
32
  }, 16);
44
- }, accessLevel: 'Full' },
45
- buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
46
- buttonLabel));
33
+ }, accessLevel: 'Full' }, buttonLabel));
47
34
  };
48
35
  exports.CustomDashboardButton = CustomDashboardButton;
@@ -69,14 +69,7 @@ const CustomToolbarWrapper = (props) => {
69
69
  adaptableApi: api,
70
70
  dashboardState: api.dashboardApi.getDashboardState(),
71
71
  };
72
- const defaultIconProps = {
73
- style: {
74
- height: 'var(--ab-cmp-simple-button__height)',
75
- width: 'var(--ab-cmp-simple-button__width)',
76
- },
77
- };
78
72
  const buttonIcon = api.internalApi.getIconForButton(button, dashboardContext);
79
- const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
80
73
  let buttonStyle = api.internalApi.getStyleForButton(button, dashboardContext);
81
74
  let buttonLabel = api.internalApi.getLabelForButton(button, dashboardContext);
82
75
  let buttonTooltip = api.internalApi.getTooltipForButton(button, dashboardContext);
@@ -86,15 +79,13 @@ const CustomToolbarWrapper = (props) => {
86
79
  const disabled = button.disabled && button.disabled(button, dashboardContext);
87
80
  let buttonVariant = buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'outlined';
88
81
  let buttonTone = buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'neutral';
89
- return (React.createElement(SimpleButton_1.default, { style: { marginLeft: index ? 'var(--ab-space-1)' : 0 }, key: index, disabled: disabled, tooltip: buttonTooltip, variant: buttonVariant, tone: buttonTone, onClick: () => {
82
+ return (React.createElement(SimpleButton_1.default, { style: { marginLeft: index ? 'var(--ab-space-1)' : 0 }, key: index, disabled: disabled, tooltip: buttonTooltip, icon: buttonIcon, variant: buttonVariant, tone: buttonTone, onClick: () => {
90
83
  button.onClick ? button.onClick(button, dashboardContext) : null;
91
84
  setTimeout(() => {
92
85
  // mutate state to force a re-rendering
93
86
  setComponentRevision(componentRevision + 1);
94
87
  }, 16);
95
- } },
96
- buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
97
- buttonLabel));
88
+ } }, buttonLabel));
98
89
  }))));
99
90
  };
100
91
  exports.CustomToolbarWrapper = CustomToolbarWrapper;
@@ -18,6 +18,7 @@ const Tabs_1 = require("../../../components/Tabs");
18
18
  const StringExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/StringExtensions"));
19
19
  const Tag_1 = require("../../../components/Tag");
20
20
  const AdaptableContext_1 = require("../../AdaptableContext");
21
+ const FormatHelper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/FormatHelper"));
21
22
  const DOLLAR_OPTIONS = {
22
23
  FractionDigits: 2,
23
24
  FractionSeparator: '.',
@@ -84,13 +85,16 @@ const getFormatColumnFormatSummaryValue = (data, formattedColumnApi) => {
84
85
  }
85
86
  else {
86
87
  if (data.DisplayFormat.Formatter === 'NumberFormatter') {
87
- content = formattedColumnApi.getNumberFormattedValue(12345.6789, data.DisplayFormat.Options);
88
+ content = FormatHelper_1.default.NumberFormatter(12345.6789, data.DisplayFormat.Options);
89
+ //formattedColumnApi.getNumberFormattedValue(12345.6789, data.DisplayFormat.Options);
88
90
  }
89
91
  if (data.DisplayFormat.Formatter === 'DateFormatter') {
90
- content = formattedColumnApi.getDateFormattedValue(new Date(), data.DisplayFormat.Options);
92
+ content = FormatHelper_1.default.DateFormatter(new Date(), data.DisplayFormat.Options);
93
+ //formattedColumnApi.getDateFormattedValue(new Date(), data.DisplayFormat.Options);
91
94
  }
92
95
  if (data.DisplayFormat.Formatter === 'StringFormatter') {
93
- content = formattedColumnApi.getStringFormattedValue('Hello World ', data.DisplayFormat.Options);
96
+ content = FormatHelper_1.default.StringFormatter('Hello World ', data.DisplayFormat.Options);
97
+ //formattedColumnApi.getStringFormattedValue('Hello World ', data.DisplayFormat.Options);
94
98
  }
95
99
  }
96
100
  return content;
@@ -169,7 +173,7 @@ const renderDateFormat = (data, _onChange, setFormatOption, customFormatters, fo
169
173
  React.createElement(FormLayout_1.default, null,
170
174
  React.createElement(FormLayout_1.FormRow, { label: "Pattern" },
171
175
  React.createElement(Input_1.default, { value: data.DisplayFormat.Options.Pattern, onChange: (e) => setFormatOption('Pattern', e.currentTarget.value), mr: 2 }),
172
- React.createElement("span", null, formatColumnApi.getDateFormattedValue(new Date(), data.DisplayFormat.Options))),
176
+ React.createElement("span", null, FormatHelper_1.default.DateFormatter(new Date(), data.DisplayFormat.Options))),
173
177
  customFormatters.map((formatter) => renderCustomFormatter(data, formatter, setFormatOption))))),
174
178
  React.createElement(Tabs_1.Tabs, { marginTop: 2 },
175
179
  React.createElement(Tabs_1.Tabs.Tab, null, "Presets"),
@@ -182,7 +186,7 @@ const renderDateFormat = (data, _onChange, setFormatOption, customFormatters, fo
182
186
  DateFormatPresets.map((Pattern, index) => (React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: index, colItems: [
183
187
  { Content: Pattern, Size: 1 },
184
188
  {
185
- Content: formatColumnApi.getDateFormattedValue(new Date(), { Pattern }),
189
+ Content: FormatHelper_1.default.DateFormatter(new Date(), { Pattern }),
186
190
  Size: 1,
187
191
  },
188
192
  {
@@ -299,21 +303,21 @@ const renderNumberFormat = (data, onChange, setFormatOption, customFormatters, f
299
303
  React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
300
304
  { Content: '12345.6789', Size: 1 },
301
305
  {
302
- Content: formatColumnApi.getNumberFormattedValue(12345.6789, data.DisplayFormat.Options),
306
+ Content: FormatHelper_1.default.NumberFormatter(12345.6789, data.DisplayFormat.Options),
303
307
  Size: 1,
304
308
  },
305
309
  ] }),
306
310
  React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
307
311
  { Content: '-12345.6789', Size: 1 },
308
312
  {
309
- Content: formatColumnApi.getNumberFormattedValue(-12345.6789, data.DisplayFormat.Options),
313
+ Content: FormatHelper_1.default.NumberFormatter(-12345.6789, data.DisplayFormat.Options),
310
314
  Size: 1,
311
315
  },
312
316
  ] }),
313
317
  React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
314
318
  { Content: '0.123', Size: 1 },
315
319
  {
316
- Content: formatColumnApi.getNumberFormattedValue(0.123, data.DisplayFormat.Options),
320
+ Content: FormatHelper_1.default.NumberFormatter(0.123, data.DisplayFormat.Options),
317
321
  Size: 1,
318
322
  },
319
323
  ] })))));
@@ -350,7 +354,7 @@ const renderStringFormat = (data, _onChange, setFormatOption, customFormatters,
350
354
  { Content: '"Hello World "', Size: 1 },
351
355
  {
352
356
  Content: '"' +
353
- formatColumnApi.getStringFormattedValue('Hello World ', data.DisplayFormat.Options) +
357
+ FormatHelper_1.default.StringFormatter('Hello World ', data.DisplayFormat.Options) +
354
358
  '"',
355
359
  Size: 1,
356
360
  },
@@ -60,6 +60,7 @@ const isValidFreeTextColumn = (data, api) => {
60
60
  };
61
61
  exports.isValidFreeTextColumn = isValidFreeTextColumn;
62
62
  const FreeTextColumnSettingsWizardSection = (props) => {
63
+ var _a;
63
64
  const { data, api } = OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext();
64
65
  const Pattern = api.internalApi.getAdaptableOptions().userInterfaceOptions.dateInputOptions.dateFormat;
65
66
  const [ColumnNameFocused, setColumnNameFocused] = react_1.useState(false);
@@ -128,6 +129,11 @@ const FreeTextColumnSettingsWizardSection = (props) => {
128
129
  } })) : (React.createElement(AdaptableInput_1.default, { value: data.DataType === 'Date' && data.DefaultValue
129
130
  ? DateHelper_1.parseToISO(data.DefaultValue, Pattern) || ''
130
131
  : data.DefaultValue || '', style: { width: '100%', maxWidth: 500 }, type: data.DataType === 'Number' ? 'number' : data.DataType === 'Date' ? 'date' : 'text', placeholder: "Default Column Value (not required)", onChange: (e) => handleDefaultValueChange(e) }))),
132
+ React.createElement(FormLayout_1.FormRow, { label: "Header Tooltip" },
133
+ React.createElement(Input_1.default, { "data-name": "header-tooltip", type: "text", style: { width: '100%', maxWidth: 500 }, value: ((_a = data.FreeTextColumnSettings) === null || _a === void 0 ? void 0 : _a.HeaderToolTip) || '', onChange: (e) => handleSpecialColumnSettingsChange({
134
+ HeaderToolTip: e.target.value,
135
+ }) })),
136
+ ' ',
131
137
  data.DataType == 'String' && (React.createElement(FormLayout_1.FormRow, { label: "Editor Type" },
132
138
  React.createElement(Radio_1.default, { value: "Inline", checked: data.TextEditor == 'Inline', onChange: (_, e) => onDynamicSelectChanged(e), marginRight: 2 }, "Inline Editor"),
133
139
  React.createElement(Radio_1.default, { value: "Large", checked: data.TextEditor == 'Large', onChange: (_, e) => onDynamicSelectChanged(e) }, "Large Editor")))),
@@ -102,7 +102,7 @@ const GridInfoPopup = (props) => {
102
102
  return React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: index, colItems: x });
103
103
  });
104
104
  const showRadioButtons = [showGridSummary, showAdaptableOptions, showColumnInfo, showAdaptableObjects].filter((item) => item).length > 1;
105
- return (React.createElement(PopupPanel_1.PopupPanel, { headerText: 'Grid Info', glyphicon: 'info-sign' },
105
+ return (React.createElement(PopupPanel_1.PopupPanel, { headerText: 'Grid Info', glyphicon: 'info' },
106
106
  React.createElement(rebass_1.Flex, { marginBottom: 2, padding: 3 }, showRadioButtons && (React.createElement(React.Fragment, null,
107
107
  showGridSummary && (React.createElement(Radio_1.default, { "data-name": "radioButton-GridSummary", marginRight: 3, value: "GridSummary", checked: state.ActiveTab == 'GridSummary', onChange: (_, e) => onShowGridSummaryChanged('GridSummary') }, "Summary")),
108
108
  showAdaptableOptions && (React.createElement(Radio_1.default, { "data-name": "radioButton-AdaptableOptions", marginRight: 3, value: "AdaptableOptions", checked: state.ActiveTab == 'AdaptableOptions', onChange: (_, e) => onShowGridSummaryChanged('AdaptableOptions') }, "Options")),
@@ -70,7 +70,9 @@ const LayoutEditorStandalonePopup = (props) => {
70
70
  }, []);
71
71
  const finishDisabled = !layoutData.Name;
72
72
  return (React.createElement(rebass_1.Flex, { height: "100%", flexDirection: "column" },
73
- React.createElement(LayoutEditorWizard_1.LayoutEditorWizard, { data: layoutData, api: adaptable.api, Layouts: layouts, moduleInfo: layoutModule.moduleInfo, onLayoutChange: setStateLayout, updateGoBackState: () => null }),
73
+ React.createElement(LayoutEditorWizard_1.LayoutEditorWizard, { data: layoutData, api: adaptable.api, Layouts: layouts, moduleInfo: layoutModule.moduleInfo, onLayoutChange: setStateLayout,
74
+ // @ts-ignore
75
+ updateGoBackState: () => null }),
74
76
  React.createElement(PanelFooter_1.PanelFooter, { acceptDisabled: finishDisabled, onAccept: handleAccept, onCancel: handleCancel })));
75
77
  };
76
78
  exports.LayoutEditorStandalonePopup = LayoutEditorStandalonePopup;
@@ -28,5 +28,5 @@ declare class LayoutPopupComponent extends React.Component<LayoutPopupProps, Edi
28
28
  canFinishWizard(): boolean;
29
29
  private getCurrentLayout;
30
30
  }
31
- export declare let LayoutPopup: import("react-redux").ConnectedComponent<typeof LayoutPopupComponent, import("react-redux").Omit<React.ClassAttributes<LayoutPopupComponent> & LayoutPopupProps, "ref" | "key" | "api" | "onSuspend" | "accessLevel" | "popupParams" | "onClearPopupParams" | "teamSharingActivated" | "onClosePopup" | "moduleInfo" | "onUnSuspend" | "modalContainer" | "onShare" | "Layouts" | "onSelectLayout" | "onSaveLayout" | "CurrentLayoutName" | "CurrentLayoutDraft" | "onAddLayout">>;
31
+ export declare let LayoutPopup: import("react-redux").ConnectedComponent<typeof LayoutPopupComponent, import("react-redux").Omit<React.ClassAttributes<LayoutPopupComponent> & LayoutPopupProps, "ref" | "key" | "api" | "onSuspend" | "accessLevel" | "popupParams" | "onClearPopupParams" | "teamSharingActivated" | "onClosePopup" | "moduleInfo" | "onUnSuspend" | "modalContainer" | "onShare" | "onSelectLayout" | "onSaveLayout" | "Layouts" | "CurrentLayoutName" | "CurrentLayoutDraft" | "onAddLayout">>;
32
32
  export {};
@@ -15,5 +15,5 @@ declare class LayoutViewPanelComponent extends React.Component<LayoutViewPanelCo
15
15
  render(): any;
16
16
  private onSaveLayout;
17
17
  }
18
- export declare let LayoutViewPanelControl: import("react-redux").ConnectedComponent<typeof LayoutViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<LayoutViewPanelComponent> & LayoutViewPanelComponentProps, "api" | "accessLevel" | "moduleInfo" | "viewType" | "Layouts" | "onSelectLayout" | "onSaveLayout" | "CurrentDraftLayout" | "CanSave" | "CurrentLayoutName"> & LayoutViewPanelComponentProps>;
18
+ export declare let LayoutViewPanelControl: import("react-redux").ConnectedComponent<typeof LayoutViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<LayoutViewPanelComponent> & LayoutViewPanelComponentProps, "api" | "accessLevel" | "moduleInfo" | "viewType" | "onSelectLayout" | "onSaveLayout" | "Layouts" | "CurrentDraftLayout" | "CanSave" | "CurrentLayoutName"> & LayoutViewPanelComponentProps>;
19
19
  export {};
@@ -10,7 +10,7 @@ export interface LayoutEditorWizardState {
10
10
  layout: Layout;
11
11
  errorMessage: string;
12
12
  }
13
- export declare class LayoutEditorWizard extends React.Component<LayoutEditorWizardProps, LayoutEditorWizardState> implements AdaptableWizardStep {
13
+ export declare class LayoutEditorWizard extends React.Component<any, any> implements AdaptableWizardStep {
14
14
  constructor(props: LayoutEditorWizardProps);
15
15
  render(): any;
16
16
  onLayoutNameChange: (event: React.FormEvent<any>) => void;
@@ -20,32 +20,7 @@ export declare class LayoutEditorWizard extends React.Component<LayoutEditorWiza
20
20
  }) => string;
21
21
  updateLayout: (layout: Partial<Layout>) => void;
22
22
  onLayoutChange: (layout: Layout) => void;
23
- getLayout: () => {
24
- Name: string;
25
- Columns: string[];
26
- ColumnWidthMap?: {
27
- [columnId: string]: number;
28
- };
29
- ColumnSorts?: import("../../../types").ColumnSort[];
30
- ColumnFilters?: import("../../../types").ColumnFilter[];
31
- RowGroupedColumns?: string[];
32
- ExpandedRowGroupValues?: any[];
33
- AggregationColumns?: Record<string, string | true>;
34
- EnablePivot?: boolean;
35
- PivotColumns?: string[];
36
- PinnedColumnsMap?: {
37
- [columnId: string]: "left" | "right";
38
- };
39
- AutoSave?: boolean;
40
- ColumnHeadersMap?: {
41
- [columnId: string]: string;
42
- };
43
- SuppressAggFuncInHeader?: boolean;
44
- Uuid?: string;
45
- Source?: "Config" | "User";
46
- IsReadOnly?: boolean;
47
- Tags?: string[];
48
- };
23
+ getLayout: () => any;
49
24
  canNext(): boolean;
50
25
  canBack(): boolean;
51
26
  next(): void;
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { SharedEntity } from '../../../types';
3
+ export declare const Dependencies: React.FunctionComponent<{
4
+ sharedEntity: SharedEntity;
5
+ }>;
6
+ export declare const SharedEntityDependencies: React.FunctionComponent<{
7
+ data: SharedEntity;
8
+ }>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SharedEntityDependencies = exports.Dependencies = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const rebass_1 = require("rebass");
7
+ const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
8
+ const AdaptableContext_1 = require("../AdaptableContext");
9
+ const AdaptableObjectList_1 = require("../Components/AdaptableObjectList/AdaptableObjectList");
10
+ const Dependencies = (props) => {
11
+ const adaptable = AdaptableContext_1.useAdaptable();
12
+ const dependencies = adaptable.api.teamSharingApi.getSharedEntryDependencies(props.sharedEntity);
13
+ return (React.createElement(React.Fragment, null, dependencies.map((sharedEntity) => {
14
+ const module = adaptable.ModuleService.getModuleById('TeamSharing');
15
+ const itemView = module.toView(sharedEntity);
16
+ return (React.createElement(rebass_1.Box, { as: "ul", padding: 0, key: sharedEntity.Uuid, className: "ab-Shared-Entity-Shared-Object", mb: 2 },
17
+ React.createElement(AdaptableObjectList_1.AdaptableObjectListItem, { deleteTooltip: 'Cannot delete dependencies.', deleteDisabled: true, module: module, data: itemView })));
18
+ })));
19
+ };
20
+ exports.Dependencies = Dependencies;
21
+ const SharedEntityDependencies = (props) => {
22
+ const [isExpanded, setIsExpanded] = React.useState(false);
23
+ return (React.createElement(React.Fragment, null,
24
+ React.createElement(rebass_1.Box, { mb: 3, mt: 2 }, isExpanded ? (React.createElement(SimpleButton_1.default, { onClick: () => setIsExpanded(false), icon: "arrow-up" }, "Collapse")) : (React.createElement(SimpleButton_1.default, { onClick: () => setIsExpanded(true), icon: "arrow-down" }, "Expand"))),
25
+ isExpanded && React.createElement(exports.Dependencies, { sharedEntity: props.data })));
26
+ };
27
+ exports.SharedEntityDependencies = SharedEntityDependencies;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { SharedEntity } from '../../../types';
3
+ export declare const SharedEntityTypeItemView: React.FunctionComponent<{
4
+ data: SharedEntity;
5
+ }>;
6
+ export declare const getSharedEntityActiveStatusObjectView: (isDependency: boolean) => (props: {
7
+ data: SharedEntity;
8
+ }) => JSX.Element;
9
+ export declare const getSharedEntityStaleDepsItemView: (staleDependencies: SharedEntity[]) => () => JSX.Element;