@adaptabletools/adaptable 24.0.0-canary.4 → 24.0.0-canary.6

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 (104) hide show
  1. package/aql.d.ts +104 -0
  2. package/aql.js +212 -0
  3. package/devtools.d.ts +182 -1
  4. package/index.css +271 -102
  5. package/package.json +2 -1
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -4
  7. package/src/AdaptableOptions/DefaultAdaptableOptions.js +5 -5
  8. package/src/AdaptableOptions/FlashingCellOptions.d.ts +3 -3
  9. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +6 -4
  10. package/src/AdaptableOptions/StateOptions.d.ts +37 -13
  11. package/src/AdaptableState/AdaptableState.d.ts +2 -0
  12. package/src/AdaptableState/Common/AdaptableAlert.d.ts +15 -0
  13. package/src/AdaptableState/Common/AdaptableAlert.js +9 -0
  14. package/src/AdaptableState/QuickSearchState.d.ts +4 -0
  15. package/src/Api/Events/LayoutChanged.d.ts +5 -3
  16. package/src/Api/Implementation/AlertApiImpl.d.ts +5 -5
  17. package/src/Api/Implementation/AlertApiImpl.js +26 -19
  18. package/src/Api/Implementation/ColumnScopeApiImpl.js +3 -3
  19. package/src/Api/Implementation/StateApiImpl.d.ts +1 -1
  20. package/src/Api/Implementation/StateApiImpl.js +4 -3
  21. package/src/Api/Internal/AlertInternalApi.js +12 -7
  22. package/src/Api/Internal/CalculatedColumnInternalApi.js +1 -1
  23. package/src/Api/Internal/StateInternalApi.d.ts +1 -1
  24. package/src/Api/Internal/StateInternalApi.js +2 -2
  25. package/src/Api/StateApi.d.ts +2 -2
  26. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +3 -3
  27. package/src/Redux/ActionsReducers/QuickSearchRedux.d.ts +0 -4
  28. package/src/Redux/ActionsReducers/QuickSearchRedux.js +3 -7
  29. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.d.ts +8 -0
  30. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +12 -12
  31. package/src/Redux/Store/AdaptableStore.d.ts +8 -5
  32. package/src/Redux/Store/AdaptableStore.js +70 -38
  33. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +5 -5
  34. package/src/Redux/Store/Interface/IStorageEngine.d.ts +4 -4
  35. package/src/Redux/Store/StateOptionsGuards.d.ts +58 -0
  36. package/src/Redux/Store/StateOptionsGuards.js +112 -0
  37. package/src/Redux/Store/isTransientReduxAction.d.ts +5 -0
  38. package/src/Redux/Store/isTransientReduxAction.js +19 -0
  39. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
  40. package/src/Utilities/Constants/DocumentationLinkConstants.js +1 -0
  41. package/src/Utilities/Constants/ReduxConstants.d.ts +2 -2
  42. package/src/Utilities/Constants/ReduxConstants.js +5 -5
  43. package/src/Utilities/Helpers/AlertTypeHelper.d.ts +1 -1
  44. package/src/Utilities/Helpers/SettingsPanelHelper.d.ts +14 -0
  45. package/src/Utilities/Helpers/SettingsPanelHelper.js +37 -1
  46. package/src/Utilities/Helpers/UIHelper.d.ts +6 -3
  47. package/src/Utilities/Helpers/UIHelper.js +8 -4
  48. package/src/Utilities/ObjectFactory.js +3 -3
  49. package/src/View/Dashboard/DashboardPopupSections.js +1 -1
  50. package/src/View/GridInfo/GridInfoPopup.js +62 -25
  51. package/src/View/StyledColumn/RangesComponent.js +6 -6
  52. package/src/View/StyledColumn/Wizard/StyledColumnWizardBulletSection.js +2 -2
  53. package/src/View/StyledColumn/Wizard/StyledColumnWizardRangeBarSection.js +4 -4
  54. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardRangesSection.js +2 -2
  55. package/src/View/StyledColumn/Wizard/StyledColumnWizardStyleSection/StyledColumnWizardStyleSection.js +2 -2
  56. package/src/View/Wizard/CollapsibleWizardCard.d.ts +3 -1
  57. package/src/View/Wizard/CollapsibleWizardCard.js +17 -9
  58. package/src/agGrid/AdaptableAgGrid.d.ts +4 -4
  59. package/src/agGrid/AdaptableAgGrid.js +2 -0
  60. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -1
  61. package/src/agGrid/AgGridColumnAdapter.js +7 -5
  62. package/src/components/aql/QueryBuilder/QueryBuilderInputs.js +12 -2
  63. package/src/env.js +2 -2
  64. package/src/layout-manager/src/normalizeLayoutModel.d.ts +1 -1
  65. package/src/layout-manager/src/simplifyLayoutModel.d.ts +1 -1
  66. package/src/migration/AdaptableUpgradeHelper.d.ts +7 -2
  67. package/src/migration/VersionUpgrade17.js +13 -8
  68. package/src/setupDevTools.js +442 -103
  69. package/src/types.d.ts +1 -1
  70. package/tsconfig.esm.tsbuildinfo +1 -1
  71. package/upgrade.d.ts +1 -0
  72. package/upgrade.js +1 -0
  73. package/vendor/components/Button/index.d.ts +1 -1
  74. package/vendor/components/Button/index.d.ts.map +1 -1
  75. package/vendor/components/Button/index.js.map +1 -1
  76. package/vendor/components/CheckBox/index.d.ts +1 -1
  77. package/vendor/components/CheckBox/index.d.ts.map +1 -1
  78. package/vendor/components/CheckBox/index.js.map +1 -1
  79. package/vendor/components/ColorPicker/colorPickerTab.d.ts +4 -0
  80. package/vendor/components/ColorPicker/colorPickerTab.d.ts.map +1 -0
  81. package/vendor/components/ColorPicker/colorPickerTab.js +50 -0
  82. package/vendor/components/ColorPicker/colorPickerTab.js.map +1 -0
  83. package/vendor/components/ColorPicker/index.d.ts +31 -0
  84. package/vendor/components/ColorPicker/index.d.ts.map +1 -0
  85. package/vendor/components/ColorPicker/index.js +132 -0
  86. package/vendor/components/ColorPicker/index.js.map +1 -0
  87. package/vendor/components/ColorPicker/themeColors.d.ts +24 -0
  88. package/vendor/components/ColorPicker/themeColors.d.ts.map +1 -0
  89. package/vendor/components/ColorPicker/themeColors.js +52 -0
  90. package/vendor/components/ColorPicker/themeColors.js.map +1 -0
  91. package/vendor/components/Combobox/VirtualizedList.d.ts +1 -1
  92. package/vendor/components/Combobox/VirtualizedList.d.ts.map +1 -1
  93. package/vendor/components/Combobox/VirtualizedList.js.map +1 -1
  94. package/vendor/components/Combobox/index.d.ts +1 -1
  95. package/vendor/components/Combobox/index.d.ts.map +1 -1
  96. package/vendor/components/Combobox/index.js.map +1 -1
  97. package/vendor/components/index.css +213 -0
  98. package/vendor/components/index.d.ts +2 -0
  99. package/vendor/components/index.d.ts.map +1 -1
  100. package/vendor/components/index.js +1 -0
  101. package/vendor/components/index.js.map +1 -1
  102. package/vendor/components/ui/combobox.d.ts.map +1 -1
  103. package/vendor/components/ui/combobox.js +1 -1
  104. package/vendor/components/ui/combobox.js.map +1 -1
@@ -67,7 +67,7 @@ const STABLE_CALLBACK_COL_DEF_PROPERTIES = new Set([
67
67
  'pivotComparator',
68
68
  'getFindText',
69
69
  'getQuickFilterText',
70
- 'tooltipValueGetter',
70
+ 'tooltip',
71
71
  'cellEditorParams',
72
72
  'suppressNoteActions',
73
73
  ]);
@@ -333,7 +333,7 @@ export class AgGridColumnAdapter {
333
333
  this.setupColumnHeaderStyle(colSetupInfo);
334
334
  this.setupColumnHeaderClass(colSetupInfo);
335
335
  this.setupColumnValueGetter(colSetupInfo);
336
- this.setupColumnTooltipValueGetter(colSetupInfo);
336
+ this.setupColumnTooltip(colSetupInfo);
337
337
  if (!isAutoRowGroupColumn) {
338
338
  this.setupColumnFilter(colSetupInfo);
339
339
  this.setupColumnFloatingFilter(colSetupInfo);
@@ -676,9 +676,9 @@ export class AgGridColumnAdapter {
676
676
  }
677
677
  });
678
678
  }
679
- setupColumnTooltipValueGetter({ col, colId, abColumn }) {
679
+ setupColumnTooltip({ col, colId, abColumn }) {
680
680
  let hasTooptip = false;
681
- this.setColDefProperty(col, 'tooltipValueGetter', () => {
681
+ this.setColDefProperty(col, 'tooltip', () => {
682
682
  const styledColumn = this.adaptableApi.styledColumnApi.getStyledColumnForColumnId(colId);
683
683
  if (!styledColumn || styledColumn.IsSuspended) {
684
684
  return undefined;
@@ -928,6 +928,9 @@ export class AgGridColumnAdapter {
928
928
  return this.adaptableFloatingFilterComponent;
929
929
  }
930
930
  setupColumnFloatingFilter({ col, colDef }) {
931
+ if (!this.adaptableOptions.filterOptions.useAdaptableFiltering) {
932
+ return;
933
+ }
931
934
  const userProvidedFilterProp = this.getUserColDefProperty(col.getColId(), 'filter');
932
935
  const hasInvalidFilterProp = typeof userProvidedFilterProp !== 'boolean' &&
933
936
  typeof userProvidedFilterProp?.handler !== 'function' &&
@@ -938,7 +941,6 @@ export class AgGridColumnAdapter {
938
941
  }
939
942
  const isFloatingFilterDisabled = !colDef.filter ||
940
943
  !colDef.floatingFilter ||
941
- !this.adaptableOptions.filterOptions.useAdaptableFiltering ||
942
944
  !this.adaptableApi.filterApi.columnFilterApi.isQuickFilterVisible();
943
945
  if (this.adaptableApi.columnApi.isAutoRowGroupColumnForMulti(col.getColId())) {
944
946
  this.setColDefProperty(col, 'floatingFilter', (original_floatingFilter) => {
@@ -7,6 +7,7 @@ import * as ModuleConstants from '../../../Utilities/Constants/ModuleConstants';
7
7
  import { cn } from '../../../lib/utils';
8
8
  import { useAdaptable } from '../../../View/AdaptableContext';
9
9
  import AdaptableInput from '../../../View/Components/AdaptableInput';
10
+ import { AdaptableDateInlineInput } from '../../../View/Components/AdaptableInput/AdaptableDateInlineInput';
10
11
  import { FloatingFilterValues } from '../../../View/Filter/ColumnFilter/components/FloatingFilterValues';
11
12
  import { QueryBuilderColumnSelector } from './QueryBuilderColumnSelector';
12
13
  import { FieldSelector } from '../../../View/Components/Selectors/FieldSelector';
@@ -96,7 +97,7 @@ export const PrimitiveColumnOrFieldSelector = (props) => {
96
97
  input = (_jsx(Box, { "data-id": "query-input-row-display", "data-name": "qb2-whole-row", "data-slot": "select-trigger", className: subjectPillClassName, children: "Whole Row" }));
97
98
  }
98
99
  else {
99
- input = (_jsx(Box, { "data-id": "query-input-scope-display", "data-slot": "select-trigger", className: subjectPillClassName, children: scopeMeta?.description ?? '$SCOPE' }));
100
+ input = (_jsx(Box, { "data-id": "query-input-scope-display", "data-slot": "select-trigger", className: subjectPillClassName, children: "Scoped Columns" }));
100
101
  }
101
102
  const typeOptions = [
102
103
  {
@@ -155,8 +156,12 @@ export const PrimitiveColumnOrFieldSelector = (props) => {
155
156
  };
156
157
  export const PrimitiveValueInput = (props) => {
157
158
  const adaptable = useAdaptable();
158
- const { layout } = useQueryBuilder();
159
+ const { layout, module } = useQueryBuilder();
159
160
  const isStackedLayout = layout === 'stacked';
161
+ const showDatePicker = adaptable.api.optionsApi.getFilterOptions().showDatePicker;
162
+ const useInlineDateInput = !showDatePicker &&
163
+ (module === ModuleConstants.ColumnFilterModuleId ||
164
+ module === ModuleConstants.GridFilterModuleId);
160
165
  const allowedModes = props.allowedModes ?? DEFAULT_QUERY_BUILDER_INPUT_MODES;
161
166
  const hasFields = React.useMemo(() => {
162
167
  return adaptable.api.expressionApi.internalApi.getAvailableFields()?.length > 0;
@@ -218,6 +223,11 @@ export const PrimitiveValueInput = (props) => {
218
223
  } }));
219
224
  case 'date': {
220
225
  const dateStr = typeof currentLiteralValue === 'string' ? currentLiteralValue : '';
226
+ if (useInlineDateInput) {
227
+ return (_jsx(AdaptableDateInlineInput, { ...common, value: dateStr, onChange: (value) => {
228
+ props.onChange(value ? literalOf('date', value) : undefined);
229
+ } }));
230
+ }
221
231
  return (_jsx(AdaptableInput, { ...common, type: "date", value: dateStr, onChange: (event) => {
222
232
  const raw = event.target.value;
223
233
  props.onChange(literalOf('date', raw));
package/src/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
3
- PUBLISH_TIMESTAMP: 1791555579146 || Date.now(),
4
- VERSION: "24.0.0-canary.4" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1792067993639 || Date.now(),
4
+ VERSION: "24.0.0-canary.6" || '--current-version--',
5
5
  };
@@ -7,4 +7,4 @@ export declare function normalizeTableLayoutModel(layout: TableLayoutModel, opti
7
7
  export declare function normalizePivotLayoutModel(layout: PivotLayoutModel): PivotLayoutModel;
8
8
  export declare function normalizeLayoutModel(layout: TableLayoutModel | PivotLayoutModel, options?: {
9
9
  isTree: boolean;
10
- }): PivotLayoutModel | TableLayoutModel;
10
+ }): TableLayoutModel | PivotLayoutModel;
@@ -1,4 +1,4 @@
1
1
  import { PivotLayoutModel, TableLayoutModel } from './LayoutManagerModel';
2
2
  export declare function simplifyTableLayoutModel(layout: TableLayoutModel): TableLayoutModel;
3
3
  export declare function simplifyPivotLayoutModel(layout: PivotLayoutModel): PivotLayoutModel;
4
- export declare function simplifyLayoutModel(layout: TableLayoutModel | PivotLayoutModel): PivotLayoutModel | TableLayoutModel;
4
+ export declare function simplifyLayoutModel(layout: TableLayoutModel | PivotLayoutModel): TableLayoutModel | PivotLayoutModel;
@@ -1,5 +1,5 @@
1
1
  import { VersionUpgrade } from './VersionUpgrade';
2
- import { AdaptableState } from '../AdaptableState/AdaptableState';
2
+ import { AdaptablePersistentState } from '../AdaptableState/AdaptableState';
3
3
  import { LayoutTagOptions } from '../AdaptableOptions/LayoutOptions';
4
4
  /**
5
5
  * Config object used by State Auto-migration Wizard
@@ -38,7 +38,12 @@ export declare class AdaptableUpgradeHelper {
38
38
  protected versionUpgrades: Map<number, VersionUpgrade>;
39
39
  protected logger: MigrationLogger;
40
40
  private constructor();
41
- static migrateAdaptableState(state: AdaptableState, config: UpgradeConfig): AdaptableState;
41
+ /**
42
+ * Migrates the given Adaptable State from `config.fromVersion` to `config.toVersion`.
43
+ *
44
+ * Accepts both a full `AdaptableState` and a (partial) `AdaptablePersistentState` - e.g. as received in `StateOptions.applyState()` - and returns the same shape.
45
+ */
46
+ static migrateAdaptableState<T extends Partial<AdaptablePersistentState>>(state: T, config: UpgradeConfig): T;
42
47
  /**
43
48
  * Published major version. When `VERSION` is not a parseable semver (local
44
49
  * builds and tests) this is 24, matching the previous helper fallback.
@@ -91,7 +91,7 @@ export class VersionUpgrade17 extends VersionUpgrade {
91
91
  if (dashboardState?.VisibleButtons) {
92
92
  this.logger.warn(`Migrating deprecated DashboardState.VisibleButtons: [${dashboardState.VisibleButtons}].`);
93
93
  state.Dashboard.ModuleButtons = [
94
- ...state.Dashboard.ModuleButtons,
94
+ ...(state.Dashboard.ModuleButtons ?? []),
95
95
  ...dashboardState.VisibleButtons,
96
96
  ];
97
97
  delete state.Dashboard.VisibleButtons;
@@ -175,22 +175,24 @@ export class VersionUpgrade17 extends VersionUpgrade {
175
175
  return state;
176
176
  }
177
177
  const expression = oldQueryState.CurrentQuery;
178
- const currentLayout = state.Layout.Layouts?.find((l) => l.Name === state.Layout.CurrentLayout);
178
+ const currentLayout = state.Layout?.Layouts?.find((l) => l.Name === state.Layout?.CurrentLayout);
179
179
  const currentGridFilter = currentLayout?.GridFilter;
180
180
  const currentGridFilterExpression = currentGridFilter && !currentGridFilter.IsSuspended ? currentGridFilter.Expression || '' : '';
181
- if (expression && StringExtensions.IsNullOrEmpty(currentGridFilterExpression)) {
181
+ if (expression &&
182
+ currentLayout &&
183
+ StringExtensions.IsNullOrEmpty(currentGridFilterExpression)) {
182
184
  currentLayout.GridFilter = {
183
185
  ...currentGridFilter,
184
186
  Expression: expression,
185
187
  };
186
188
  }
187
- state.Dashboard.Tabs?.forEach((tab) => {
189
+ state.Dashboard?.Tabs?.forEach((tab) => {
188
190
  if (tab.Toolbars.includes('Query')) {
189
191
  tab.Toolbars = tab.Toolbars.map((t) => (t == 'Query' ? 'GridFilter' : t));
190
192
  }
191
193
  });
192
194
  let updatePinnedToolbars = false;
193
- if (state.Dashboard.PinnedToolbars) {
195
+ if (state.Dashboard?.PinnedToolbars) {
194
196
  state.Dashboard.PinnedToolbars = state.Dashboard.PinnedToolbars.map((pinnedToolbar) => {
195
197
  if (pinnedToolbar == 'Query') {
196
198
  return 'GridFilter';
@@ -204,11 +206,12 @@ export class VersionUpgrade17 extends VersionUpgrade {
204
206
  const oldQueryState = state.Query;
205
207
  const oldNamedQueries = oldQueryState?.NamedQueries;
206
208
  if (ArrayExtensions.IsNotNullOrEmpty(oldNamedQueries)) {
207
- const currentNamedQueries = state.NamedQuery.NamedQueries;
209
+ state.NamedQuery ??= {};
210
+ const currentNamedQueries = (state.NamedQuery.NamedQueries ??= []);
208
211
  oldNamedQueries.forEach((oldNamedQuery) => {
209
212
  const currentQuery = currentNamedQueries.find((q) => q.Name === oldNamedQuery.Name);
210
213
  if (!currentQuery) {
211
- state.NamedQuery?.NamedQueries?.push(oldNamedQuery);
214
+ currentNamedQueries.push(oldNamedQuery);
212
215
  }
213
216
  });
214
217
  }
@@ -236,6 +239,7 @@ export class VersionUpgrade17 extends VersionUpgrade {
236
239
  };
237
240
  })
238
241
  .filter(Boolean);
242
+ state.StyledColumn ??= {};
239
243
  state.StyledColumn.StyledColumns ??= [];
240
244
  styledColumns.forEach((styledColumn) => {
241
245
  state.StyledColumn.StyledColumns.push(styledColumn);
@@ -263,8 +267,9 @@ export class VersionUpgrade17 extends VersionUpgrade {
263
267
  }
264
268
  });
265
269
  const alertState = state.Alert;
266
- if (ArrayExtensions.IsEmpty(state.FlashingCell?.FlashingCellDefinitions) &&
270
+ if (ArrayExtensions.IsNullOrEmpty(state.FlashingCell?.FlashingCellDefinitions) &&
267
271
  ArrayExtensions.IsNotNullOrEmpty(alertState?.FlashingAlertDefinitions)) {
272
+ state.FlashingCell ??= {};
268
273
  state.FlashingCell.FlashingCellDefinitions = alertState.FlashingAlertDefinitions;
269
274
  delete state.Alert.FlashingAlertDefinitions;
270
275
  }