@adaptabletools/adaptable 22.0.0-canary.10 → 22.0.0-canary.12

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 (109) hide show
  1. package/index.css +0 -12
  2. package/index.css.map +1 -1
  3. package/package.json +1 -4
  4. package/src/AdaptableState/Common/AdaptableForm.d.ts +1 -1
  5. package/src/AdaptableState/UserInterfaceState.d.ts +1 -1
  6. package/src/Api/GridApi.d.ts +4 -0
  7. package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
  8. package/src/Api/Implementation/GridApiImpl.js +3 -0
  9. package/src/Api/Implementation/LayoutHelpers.js +1 -1
  10. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  11. package/src/Api/Internal/EventInternalApi.js +1 -1
  12. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +1 -1
  13. package/src/Redux/Store/AdaptableReduxMerger.js +5 -6
  14. package/src/Strategy/LayoutModule.js +1 -1
  15. package/src/Strategy/TeamSharingModule.js +2 -2
  16. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
  17. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
  18. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -1
  19. package/src/Utilities/Extensions/StringExtensions.js +1 -1
  20. package/src/Utilities/Helpers/AdaptableHelper.js +2 -2
  21. package/src/Utilities/Helpers/FormatHelper.js +1 -1
  22. package/src/Utilities/Services/LicenseService/index.js +1 -1
  23. package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
  24. package/src/Utilities/Services/RowSummaryService.js +2 -2
  25. package/src/Utilities/utils/chunk.d.ts +6 -0
  26. package/src/Utilities/utils/chunk.js +17 -0
  27. package/src/Utilities/utils/clamp.d.ts +5 -0
  28. package/src/Utilities/utils/clamp.js +7 -0
  29. package/src/Utilities/utils/cloneDeepWith.d.ts +9 -0
  30. package/src/Utilities/utils/cloneDeepWith.js +67 -0
  31. package/src/Utilities/utils/debounce.d.ts +20 -0
  32. package/src/Utilities/utils/debounce.js +121 -0
  33. package/src/Utilities/utils/flatten.d.ts +5 -0
  34. package/src/Utilities/utils/flatten.js +7 -0
  35. package/src/Utilities/utils/flattenDeep.d.ts +5 -0
  36. package/src/Utilities/utils/flattenDeep.js +7 -0
  37. package/src/Utilities/utils/get.d.ts +6 -0
  38. package/src/Utilities/utils/get.js +35 -0
  39. package/src/Utilities/utils/index.d.ts +22 -0
  40. package/src/Utilities/utils/index.js +22 -0
  41. package/src/Utilities/utils/isArray.d.ts +6 -0
  42. package/src/Utilities/utils/isArray.js +6 -0
  43. package/src/Utilities/utils/isEqual.d.ts +5 -0
  44. package/src/Utilities/utils/isEqual.js +124 -0
  45. package/src/Utilities/utils/isObject.d.ts +6 -0
  46. package/src/Utilities/utils/isObject.js +9 -0
  47. package/src/Utilities/utils/isPlainObject.d.ts +6 -0
  48. package/src/Utilities/utils/isPlainObject.js +17 -0
  49. package/src/Utilities/utils/kebabCase.d.ts +5 -0
  50. package/src/Utilities/utils/kebabCase.js +8 -0
  51. package/src/Utilities/utils/merge.d.ts +11 -0
  52. package/src/Utilities/utils/merge.js +40 -0
  53. package/src/Utilities/utils/mergeWith.d.ts +7 -0
  54. package/src/Utilities/utils/mergeWith.js +46 -0
  55. package/src/Utilities/utils/orderBy.d.ts +8 -0
  56. package/src/Utilities/utils/orderBy.js +30 -0
  57. package/src/Utilities/utils/parseInt.d.ts +6 -0
  58. package/src/Utilities/utils/parseInt.js +9 -0
  59. package/src/Utilities/utils/sentenceCase.d.ts +6 -0
  60. package/src/Utilities/utils/sentenceCase.js +15 -0
  61. package/src/Utilities/utils/startCase.d.ts +5 -0
  62. package/src/Utilities/utils/startCase.js +11 -0
  63. package/src/Utilities/utils/throttle.d.ts +17 -0
  64. package/src/Utilities/utils/throttle.js +19 -0
  65. package/src/Utilities/utils/toNumber.d.ts +5 -0
  66. package/src/Utilities/utils/toNumber.js +39 -0
  67. package/src/Utilities/utils/uniq.d.ts +7 -0
  68. package/src/Utilities/utils/uniq.js +9 -0
  69. package/src/Utilities/utils/uniqBy.d.ts +8 -0
  70. package/src/Utilities/utils/uniqBy.js +22 -0
  71. package/src/Utilities/utils/words.d.ts +7 -0
  72. package/src/Utilities/utils/words.js +10 -0
  73. package/src/Utilities/weightedAverage.js +1 -1
  74. package/src/View/AdaptableComputedCSSVarsContext.js +1 -1
  75. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -1
  76. package/src/View/Alert/Wizard/AlertButtonsEditor.js +1 -1
  77. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  78. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  79. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
  80. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -1
  81. package/src/View/Components/RangesComponent.js +1 -1
  82. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
  83. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  84. package/src/View/Dashboard/CustomDashboardButton.js +1 -1
  85. package/src/View/Dashboard/Dashboard.js +1 -1
  86. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  87. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  88. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  89. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +2 -2
  90. package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
  91. package/src/View/Layout/LayoutViewPanel.js +1 -1
  92. package/src/View/Note/NoteEditor.js +1 -1
  93. package/src/View/QuickSearch/useQuickSearchDebounced.js +1 -1
  94. package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
  95. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  96. package/src/View/Theme/ThemeEditor.js +1 -1
  97. package/src/View/Theme/ThemeField.js +1 -1
  98. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
  99. package/src/agGrid/AdaptableAgGrid.js +2 -2
  100. package/src/agGrid/AgGridColumnAdapter.js +2 -2
  101. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -1
  102. package/src/components/ColorPicker/ColorPicker.js +1 -1
  103. package/src/components/DropdownButton/renderItem.js +1 -1
  104. package/src/components/FormLayout/index.js +1 -1
  105. package/src/components/OverlayTrigger/index.js +1 -1
  106. package/src/env.js +2 -2
  107. package/src/layout-manager/src/isLayoutEqual.js +1 -1
  108. package/src/migration/VersionUpgrade22.js +1 -0
  109. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Recursively merges own enumerable string keyed properties of source objects into
3
+ * the destination object. Source properties that resolve to undefined are skipped if
4
+ * a destination value exists. Array and plain object properties are merged recursively.
5
+ * Other objects and value types are overridden by assignment.
6
+ * Drop-in replacement for lodash/merge.
7
+ */
8
+ import isPlainObject from './isPlainObject';
9
+ function baseMerge(target, source) {
10
+ if (source == null) {
11
+ return target;
12
+ }
13
+ const keys = Object.keys(source);
14
+ for (const key of keys) {
15
+ const srcValue = source[key];
16
+ const tgtValue = target[key];
17
+ if (Array.isArray(srcValue)) {
18
+ if (!Array.isArray(tgtValue)) {
19
+ target[key] = [];
20
+ }
21
+ baseMerge(target[key], srcValue);
22
+ }
23
+ else if (isPlainObject(srcValue)) {
24
+ if (!isPlainObject(tgtValue)) {
25
+ target[key] = {};
26
+ }
27
+ baseMerge(target[key], srcValue);
28
+ }
29
+ else if (srcValue !== undefined) {
30
+ target[key] = srcValue;
31
+ }
32
+ }
33
+ return target;
34
+ }
35
+ export default function merge(target, ...sources) {
36
+ for (const source of sources) {
37
+ baseMerge(target, source);
38
+ }
39
+ return target;
40
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This method is like `merge` except that it accepts customizer which is
3
+ * invoked to produce the merged values of the destination and source properties.
4
+ * If customizer returns undefined, merging is handled by the method instead.
5
+ * Drop-in replacement for lodash/mergeWith.
6
+ */
7
+ export default function mergeWith<T extends object>(target: T, ...args: any[]): T;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * This method is like `merge` except that it accepts customizer which is
3
+ * invoked to produce the merged values of the destination and source properties.
4
+ * If customizer returns undefined, merging is handled by the method instead.
5
+ * Drop-in replacement for lodash/mergeWith.
6
+ */
7
+ import isPlainObject from './isPlainObject';
8
+ function baseMergeWith(target, source, customizer) {
9
+ if (source == null) {
10
+ return target;
11
+ }
12
+ const keys = Object.keys(source);
13
+ for (const key of keys) {
14
+ const srcValue = source[key];
15
+ const tgtValue = target[key];
16
+ const customResult = customizer(tgtValue, srcValue, key, target, source);
17
+ if (customResult !== undefined) {
18
+ target[key] = customResult;
19
+ }
20
+ else if (Array.isArray(srcValue)) {
21
+ if (!Array.isArray(tgtValue)) {
22
+ target[key] = [];
23
+ }
24
+ baseMergeWith(target[key], srcValue, customizer);
25
+ }
26
+ else if (isPlainObject(srcValue)) {
27
+ if (!isPlainObject(tgtValue)) {
28
+ target[key] = {};
29
+ }
30
+ baseMergeWith(target[key], srcValue, customizer);
31
+ }
32
+ else if (srcValue !== undefined) {
33
+ target[key] = srcValue;
34
+ }
35
+ }
36
+ return target;
37
+ }
38
+ export default function mergeWith(target, ...args) {
39
+ // The last argument is the customizer function
40
+ const customizer = args[args.length - 1];
41
+ const sources = args.slice(0, -1);
42
+ for (const source of sources) {
43
+ baseMergeWith(target, source, customizer);
44
+ }
45
+ return target;
46
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This method is like `sortBy` except that it allows specifying the sort
3
+ * orders of the iteratees to sort by. If orders is unspecified, all values
4
+ * are sorted in ascending order. Otherwise, specify an order of "desc" for
5
+ * descending or "asc" for ascending sort order of corresponding values.
6
+ * Drop-in replacement for lodash/orderBy.
7
+ */
8
+ export default function orderBy<T>(collection: T[], iteratees: ((item: T) => any)[] | string[], orders?: ('asc' | 'desc')[]): T[];
@@ -0,0 +1,30 @@
1
+ /**
2
+ * This method is like `sortBy` except that it allows specifying the sort
3
+ * orders of the iteratees to sort by. If orders is unspecified, all values
4
+ * are sorted in ascending order. Otherwise, specify an order of "desc" for
5
+ * descending or "asc" for ascending sort order of corresponding values.
6
+ * Drop-in replacement for lodash/orderBy.
7
+ */
8
+ export default function orderBy(collection, iteratees, orders) {
9
+ const result = [...collection];
10
+ const fns = iteratees.map((iteratee) => typeof iteratee === 'function' ? iteratee : (item) => item?.[iteratee]);
11
+ result.sort((a, b) => {
12
+ for (let i = 0; i < fns.length; i++) {
13
+ const valA = fns[i](a);
14
+ const valB = fns[i](b);
15
+ if (valA !== valB) {
16
+ const order = orders?.[i] === 'desc' ? -1 : 1;
17
+ if (valA == null)
18
+ return 1;
19
+ if (valB == null)
20
+ return -1;
21
+ if (valA < valB)
22
+ return -order;
23
+ if (valA > valB)
24
+ return order;
25
+ }
26
+ }
27
+ return 0;
28
+ });
29
+ return result;
30
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Converts string to an integer of the specified radix.
3
+ * If radix is undefined or 0, a radix of 10 is used (unlike native parseInt which auto-detects).
4
+ * Drop-in replacement for lodash/parseInt.
5
+ */
6
+ export default function parseIntFn(string: string, radix?: number): number;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Converts string to an integer of the specified radix.
3
+ * If radix is undefined or 0, a radix of 10 is used (unlike native parseInt which auto-detects).
4
+ * Drop-in replacement for lodash/parseInt.
5
+ */
6
+ export default function parseIntFn(string, radix) {
7
+ const str = typeof string === 'string' ? string.trim() : String(string);
8
+ return globalThis.parseInt(str, radix || 10);
9
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Converts string to Sentence case.
3
+ * Splits on camelCase, PascalCase, dots, underscores, hyphens, and non-alphanumeric characters.
4
+ * Drop-in replacement for the sentence-case package.
5
+ */
6
+ export default function sentenceCase(input: string): string;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Converts string to Sentence case.
3
+ * Splits on camelCase, PascalCase, dots, underscores, hyphens, and non-alphanumeric characters.
4
+ * Drop-in replacement for the sentence-case package.
5
+ */
6
+ import words from './words';
7
+ export default function sentenceCase(input) {
8
+ const parts = words(input);
9
+ if (parts.length === 0) {
10
+ return '';
11
+ }
12
+ return parts
13
+ .map((w, i) => (i === 0 ? w.charAt(0).toUpperCase() + w.slice(1).toLowerCase() : w.toLowerCase()))
14
+ .join(' ');
15
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Converts string to Start Case.
3
+ * Drop-in replacement for lodash/startCase.
4
+ */
5
+ export default function startCase(string: string): string;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Converts string to Start Case.
3
+ * Drop-in replacement for lodash/startCase.
4
+ */
5
+ import words from './words';
6
+ function capitalize(word) {
7
+ return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
8
+ }
9
+ export default function startCase(string) {
10
+ return words(string).map(capitalize).join(' ');
11
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Creates a throttled function that only invokes func at most once per
3
+ * every wait milliseconds. The throttled function comes with a cancel
4
+ * method to cancel delayed func invocations and a flush method to
5
+ * immediately invoke them.
6
+ *
7
+ * Supports options: { leading, trailing }
8
+ * Drop-in replacement for lodash/throttle.
9
+ *
10
+ * Implemented using debounce with maxWait (same approach as lodash).
11
+ */
12
+ import { DebouncedFunction } from './debounce';
13
+ export interface ThrottleOptions {
14
+ leading?: boolean;
15
+ trailing?: boolean;
16
+ }
17
+ export default function throttle<T extends (...args: any[]) => any>(func: T, wait?: number, options?: ThrottleOptions): DebouncedFunction<T>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Creates a throttled function that only invokes func at most once per
3
+ * every wait milliseconds. The throttled function comes with a cancel
4
+ * method to cancel delayed func invocations and a flush method to
5
+ * immediately invoke them.
6
+ *
7
+ * Supports options: { leading, trailing }
8
+ * Drop-in replacement for lodash/throttle.
9
+ *
10
+ * Implemented using debounce with maxWait (same approach as lodash).
11
+ */
12
+ import debounce from './debounce';
13
+ export default function throttle(func, wait = 0, options) {
14
+ return debounce(func, wait, {
15
+ leading: options?.leading ?? true,
16
+ trailing: options?.trailing ?? true,
17
+ maxWait: wait,
18
+ });
19
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Converts value to a number.
3
+ * Drop-in replacement for lodash/toNumber.
4
+ */
5
+ export default function toNumber(value: any): number;
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Converts value to a number.
3
+ * Drop-in replacement for lodash/toNumber.
4
+ */
5
+ const reTrimStart = /^\s+/;
6
+ const reTrimEnd = /\s+$/;
7
+ const reIsBinary = /^0b[01]+$/i;
8
+ const reIsOctal = /^0o[0-7]+$/i;
9
+ const reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
10
+ export default function toNumber(value) {
11
+ if (typeof value === 'number') {
12
+ return value;
13
+ }
14
+ if (typeof value === 'symbol') {
15
+ return NaN;
16
+ }
17
+ if (typeof value === 'boolean') {
18
+ return value ? 1 : 0;
19
+ }
20
+ if (value == null) {
21
+ return value === undefined ? NaN : 0;
22
+ }
23
+ if (typeof value === 'string') {
24
+ const trimmed = value.replace(reTrimStart, '').replace(reTrimEnd, '');
25
+ if (reIsBinary.test(trimmed)) {
26
+ return globalThis.parseInt(trimmed.slice(2), 2);
27
+ }
28
+ if (reIsOctal.test(trimmed)) {
29
+ return globalThis.parseInt(trimmed.slice(2), 8);
30
+ }
31
+ if (reIsBadHex.test(trimmed)) {
32
+ return NaN;
33
+ }
34
+ return +trimmed;
35
+ }
36
+ // Objects: try valueOf
37
+ const other = typeof value.valueOf === 'function' ? value.valueOf() : value;
38
+ return +other;
39
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Creates a duplicate-free version of an array, using SameValueZero for equality comparisons,
3
+ * in which only the first occurrence of each element is kept. The order of result values is
4
+ * determined by the order they occur in the array.
5
+ * Drop-in replacement for lodash/uniq.
6
+ */
7
+ export default function uniq<T>(array: T[]): T[];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Creates a duplicate-free version of an array, using SameValueZero for equality comparisons,
3
+ * in which only the first occurrence of each element is kept. The order of result values is
4
+ * determined by the order they occur in the array.
5
+ * Drop-in replacement for lodash/uniq.
6
+ */
7
+ export default function uniq(array) {
8
+ return [...new Set(array)];
9
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This method is like `uniq` except that it accepts iteratee which is
3
+ * invoked for each element in array to generate the criterion by which
4
+ * uniqueness is computed. The order of result values is determined by the
5
+ * order they occur in the array. The iteratee is invoked with one argument: (value).
6
+ * Drop-in replacement for lodash/uniqBy.
7
+ */
8
+ export default function uniqBy<T>(array: T[], iteratee: ((value: T) => any) | string): T[];
@@ -0,0 +1,22 @@
1
+ /**
2
+ * This method is like `uniq` except that it accepts iteratee which is
3
+ * invoked for each element in array to generate the criterion by which
4
+ * uniqueness is computed. The order of result values is determined by the
5
+ * order they occur in the array. The iteratee is invoked with one argument: (value).
6
+ * Drop-in replacement for lodash/uniqBy.
7
+ */
8
+ export default function uniqBy(array, iteratee) {
9
+ const seen = new Set();
10
+ const result = [];
11
+ const fn = typeof iteratee === 'function'
12
+ ? iteratee
13
+ : (value) => value?.[iteratee];
14
+ for (const item of array) {
15
+ const key = fn(item);
16
+ if (!seen.has(key)) {
17
+ seen.add(key);
18
+ result.push(item);
19
+ }
20
+ }
21
+ return result;
22
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Split a string into words: handles camelCase, PascalCase, UPPER_CASE,
3
+ * UPPER_SNAKE_CASE, snake_case, kebab-case, spaces, and dot.notation.
4
+ *
5
+ * Shared helper used by kebabCase, startCase, and sentenceCase.
6
+ */
7
+ export default function words(str: string): string[];
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Split a string into words: handles camelCase, PascalCase, UPPER_CASE,
3
+ * UPPER_SNAKE_CASE, snake_case, kebab-case, spaces, and dot.notation.
4
+ *
5
+ * Shared helper used by kebabCase, startCase, and sentenceCase.
6
+ */
7
+ export default function words(str) {
8
+ const matches = str.match(/[A-Z]?[a-z]+|[A-Z]+(?=[A-Z][a-z]|\d|$|[^a-zA-Z0-9])|[A-Z]|[0-9]+/g);
9
+ return matches || [];
10
+ }
@@ -1,4 +1,4 @@
1
- import toNumber from 'lodash/toNumber';
1
+ import toNumber from './utils/toNumber';
2
2
  export const getNumericValue = (input) => {
3
3
  if (typeof input === 'number') {
4
4
  return input;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { CSSNumericVariableWatch } from '../components/Select/CSSNumericVariableWatch';
3
- import debounce from 'lodash/debounce';
3
+ import debounce from '../Utilities/utils/debounce';
4
4
  import { useMemo } from 'react';
5
5
  const computedCSSVarNames = [
6
6
  '--ab-cmp-select-menu__max-width',
@@ -8,7 +8,7 @@ import { useRef, useState } from 'react';
8
8
  import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
9
9
  import { DataSource, InfiniteTableGrid, } from '../../../components/InfiniteTable';
10
10
  import { Box, Flex } from '../../../components/Flex';
11
- import throttle from 'lodash/throttle';
11
+ import throttle from '../../../Utilities/utils/throttle';
12
12
  import { twMerge } from '../../../twMerge';
13
13
  const dataTypes = [
14
14
  {
@@ -8,7 +8,7 @@ import StringExtensions from '../../../Utilities/Extensions/StringExtensions';
8
8
  import { AdaptableIconSelector } from '../../Components/AdaptableIconSelector';
9
9
  import { Select } from '../../../components/Select';
10
10
  import { Box, Flex } from '../../../components/Flex';
11
- import { sentenceCase } from 'sentence-case';
11
+ import sentenceCase from '../../../Utilities/utils/sentenceCase';
12
12
  function renderCommand(command) {
13
13
  switch (command) {
14
14
  case 'highlight-cell':
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useSelector } from 'react-redux';
3
- import isEqual from 'lodash/isEqual';
3
+ import isEqual from '../../../../Utilities/utils/isEqual';
4
4
  import * as InternalRedux from '../../../../Redux/ActionsReducers/InternalRedux';
5
5
  import { useAdaptable } from '../../../AdaptableContext';
6
6
  export const PreviewChartSection = (props) => {
@@ -4,7 +4,7 @@ import AdaptableInput from '../../AdaptableInput';
4
4
  import { AdaptableDateInlineInput } from '../../AdaptableInput/AdaptableDateInlineInput';
5
5
  import { PermittedValuesSelector } from '../../Selectors/PermittedValuesSelector';
6
6
  import { useAdaptable } from '../../../AdaptableContext';
7
- import debounce from 'lodash/debounce';
7
+ import debounce from '../../../../Utilities/utils/debounce';
8
8
  import { useCallback } from 'react';
9
9
  function debounceOrImmediate(fn, time) {
10
10
  return time && time > 0 ? debounce(fn, time) : fn;
@@ -1,4 +1,4 @@
1
- import { debounce } from 'lodash';
1
+ import debounce from '../../../../Utilities/utils/debounce';
2
2
  import * as React from 'react';
3
3
  import { getOperatorMatchingInputs } from '../../../../components/ExpressionEditor/QueryBuilder/utils';
4
4
  import Panel from '../../../../components/Panel';
@@ -1,4 +1,4 @@
1
- import { debounce } from 'lodash';
1
+ import debounce from '../../../../Utilities/utils/debounce';
2
2
  import * as React from 'react';
3
3
  import { getOperatorMatchingInputs } from '../../../../components/ExpressionEditor/QueryBuilder/utils';
4
4
  import { mapColumnDataTypeToExpressionFunctionType } from '../../../../Utilities/adaptableQlUtils';
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { ColorPicker } from '../../components/ColorPicker';
3
- import clamp from 'lodash/clamp';
3
+ import clamp from '../../Utilities/utils/clamp';
4
4
  import { CheckBox } from '../../components/CheckBox';
5
5
  import FormLayout, { FormRow } from '../../components/FormLayout';
6
6
  import { NumberInput } from '../../components/Input/NumberInput';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import kebabCase from 'lodash/kebabCase';
2
+ import kebabCase from '../../../Utilities/utils/kebabCase';
3
3
  import * as ToolPanelRedux from '../../../Redux/ActionsReducers/ToolPanelRedux';
4
4
  import { connect } from 'react-redux';
5
5
  import ArrayExtensions from '../../../Utilities/Extensions/ArrayExtensions';
@@ -3,7 +3,7 @@ import { useLayoutEffect, useRef, useState } from 'react';
3
3
  import { useAdaptable } from '../../AdaptableContext';
4
4
  import { createUuid } from '../../../components/utils/uuid';
5
5
  import SimpleButton from '../../../components/SimpleButton';
6
- import kebabCase from 'lodash/kebabCase';
6
+ import kebabCase from '../../../Utilities/utils/kebabCase';
7
7
  export const CustomToolPanelContent = (props) => {
8
8
  const { customToolPanel } = props;
9
9
  const { api } = useAdaptable();
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { useState } from 'react';
3
3
  import SimpleButton from '../../components/SimpleButton';
4
- import kebabCase from 'lodash/kebabCase';
4
+ import kebabCase from '../../Utilities/utils/kebabCase';
5
5
  export const CustomDashboardButton = (props) => {
6
6
  const { button } = props;
7
7
  const [componentRevision, setComponentRevision] = useState(1);
@@ -1,4 +1,4 @@
1
- import kebabCase from 'lodash/kebabCase';
1
+ import kebabCase from '../../Utilities/utils/kebabCase';
2
2
  import * as React from 'react';
3
3
  import { connect } from 'react-redux';
4
4
  import { Dashboard as DashboardUI, DashboardTab as DashboardTabUI, } from '../../components/Dashboard';
@@ -1,4 +1,4 @@
1
- import flatten from 'lodash/flatten';
1
+ import flatten from '../../../../Utilities/utils/flatten';
2
2
  import * as React from 'react';
3
3
  import HelpBlock from '../../../../components/HelpBlock';
4
4
  import { Icon } from '../../../../components/icons';
@@ -16,8 +16,8 @@ declare class DataSetViewPanelComponent extends React.Component<DataSetViewPanel
16
16
  onSelectedDataSetChanged(dataSetName: string): void;
17
17
  }
18
18
  export declare let DataSetViewPanelControl: import("react-redux").ConnectedComponent<typeof DataSetViewPanelComponent, {
19
- ref?: React.Ref<DataSetViewPanelComponent>;
20
19
  key?: React.Key | null | undefined;
20
+ ref?: React.Ref<DataSetViewPanelComponent>;
21
21
  context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction>>;
22
22
  store?: import("redux").Store;
23
23
  }>;
@@ -18,8 +18,8 @@ declare class FilterViewPanelComponent extends React.Component<FilterViewPanelCo
18
18
  private onClearFilters;
19
19
  }
20
20
  export declare const FilterViewPanelControl: import("react-redux").ConnectedComponent<typeof FilterViewPanelComponent, {
21
- ref?: React.Ref<FilterViewPanelComponent>;
22
21
  key?: React.Key | null | undefined;
22
+ ref?: React.Ref<FilterViewPanelComponent>;
23
23
  context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction>>;
24
24
  store?: import("redux").Store;
25
25
  }>;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import uniq from 'lodash/uniq';
3
- import clamp from 'lodash/clamp';
2
+ import uniq from '../../../Utilities/utils/uniq';
3
+ import clamp from '../../../Utilities/utils/clamp';
4
4
  import HelpBlock from '../../../components/HelpBlock';
5
5
  import Input from '../../../components/Input';
6
6
  import SimpleButton from '../../../components/SimpleButton';
@@ -21,14 +21,14 @@ const QueryViewPanelComponent = (props) => {
21
21
  const disabled = isReadOnly || isSuspended || gridFilterAccessLevel === 'ReadOnly';
22
22
  const buttonExpand = (React.createElement(ButtonExpand, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }));
23
23
  const renderExpressionLabel = () => {
24
- const baseClasses = 'twa:font-mono twa:text-xs twa:py-1.5 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-white twa:rounded twa:cursor-pointer twa:h-7 twa:leading-4';
24
+ const baseClasses = 'twa:font-mono twa:text-s twa:py-2 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-defaultbackground twa:text-text-on-defaultbackground twa:rounded twa:cursor-pointer twa:leading-4 twa:flex twa:items-center';
25
25
  const placeholderClasses = 'twa:text-gray-400 twa:italic';
26
26
  const labelClassName = clsx(baseClasses, {
27
27
  [placeholderClasses]: !expression,
28
28
  });
29
29
  const expressionLabel = (React.createElement(Tooltip, { label: expression || 'Click to edit Grid Filter' },
30
- React.createElement(Box, { className: clsx('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter')));
31
- return (React.createElement(FieldWrap, { className: "twa:flex-1 twa:min-w-0 twa:overflow-visible" },
30
+ React.createElement(Box, { className: clsx('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter...')));
31
+ return (React.createElement(FieldWrap, { className: "twa:flex-1 twa:min-w-0 twa:min-h-input twa:overflow-visible" },
32
32
  buttonExpand,
33
33
  expressionLabel,
34
34
  gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter" }))));
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as PopupRedux from '../../Redux/ActionsReducers/PopupRedux';
3
3
  import { connect } from 'react-redux';
4
- import isEqual from 'lodash/isEqual';
4
+ import isEqual from '../../Utilities/utils/isEqual';
5
5
  import { Select } from '../../components/Select';
6
6
  import join from '../../components/utils/join';
7
7
  import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
@@ -1,4 +1,4 @@
1
- import throttle from 'lodash/throttle';
1
+ import throttle from '../../Utilities/utils/throttle';
2
2
  import * as React from 'react';
3
3
  import Textarea from '../../components/Textarea';
4
4
  import SimpleButton from '../../components/SimpleButton';
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState, useMemo } from 'react';
2
- import debounce from 'lodash/debounce';
2
+ import debounce from '../../Utilities/utils/debounce';
3
3
  import { QUICK_SEARCH_DEBOUNCE_TIME } from '../../Utilities/Constants/GeneralConstants';
4
4
  export const useQuickSearchDebounced = (props) => {
5
5
  const [searchText, setSearchText] = useState(props.QuickSearchText ?? '');
@@ -1,4 +1,4 @@
1
- import chunk from 'lodash/chunk';
1
+ import chunk from '../Utilities/utils/chunk';
2
2
  import * as React from 'react';
3
3
  import { CheckBox } from '../components/CheckBox';
4
4
  import FormLayout, { FormRow } from '../components/FormLayout';
@@ -9,8 +9,8 @@ declare class SystemStatusViewPanelComponent extends React.Component<SystemStatu
9
9
  render(): React.JSX.Element;
10
10
  }
11
11
  export declare let SystemStatusViewPanel: import("react-redux").ConnectedComponent<typeof SystemStatusViewPanelComponent, {
12
- ref?: React.Ref<SystemStatusViewPanelComponent>;
13
12
  key?: React.Key | null | undefined;
13
+ ref?: React.Ref<SystemStatusViewPanelComponent>;
14
14
  context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction>>;
15
15
  store?: import("redux").Store;
16
16
  }>;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import FormLayout, { FormRow } from '../../components/FormLayout';
3
3
  import { useAdaptable } from '../AdaptableContext';
4
4
  import AdaptableInput from '../Components/AdaptableInput';
5
- import throttle from 'lodash/throttle';
5
+ import throttle from '../../Utilities/utils/throttle';
6
6
  import SimpleButton from '../../components/SimpleButton';
7
7
  import Panel from '../../components/Panel';
8
8
  import { Field } from './ThemeField';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import throttle from 'lodash/throttle';
2
+ import throttle from '../../Utilities/utils/throttle';
3
3
  import { useAdaptable } from '../AdaptableContext';
4
4
  import { getVariableColor } from '../../Utilities/Helpers/StyleHelper';
5
5
  import { FormRow } from '../../components/FormLayout';
@@ -7,7 +7,7 @@ import { useAdaptable } from '../AdaptableContext';
7
7
  import { Tabs } from '../../components/Tabs';
8
8
  import { NamedQueryContext, } from '../../components/ExpressionEditor/NamedQueryContext';
9
9
  import { OnePageWizard, useOnePageWizardContext } from './OnePageWizards';
10
- import kebabCase from 'lodash/kebabCase';
10
+ import kebabCase from '../../Utilities/utils/kebabCase';
11
11
  import { Box } from '../../components/Flex';
12
12
  import { twMerge } from '../../twMerge';
13
13
  export const SummaryTag = (props) => (React.createElement(Box, { ...props }));
@@ -1,5 +1,5 @@
1
- import throttle from 'lodash/throttle';
2
- import debounce from 'lodash/debounce';
1
+ import throttle from '../Utilities/utils/throttle';
2
+ import debounce from '../Utilities/utils/debounce';
3
3
  import { createGrid, LocalEventService, } from 'ag-grid-enterprise';
4
4
  import { AdaptableLogger } from './AdaptableLogger';
5
5
  import { PrimaryKeyDocsLink } from '../Utilities/Constants/DocumentationLinkConstants';
@@ -1,5 +1,5 @@
1
- import kebabCase from 'lodash/kebabCase';
2
- import merge from 'lodash/merge';
1
+ import kebabCase from '../Utilities/utils/kebabCase';
2
+ import merge from '../Utilities/utils/merge';
3
3
  import { convertAdaptableStyleToCSS, getVariableColor, normalizeStyleForAgGrid, } from '../Utilities/Helpers/StyleHelper';
4
4
  import StringExtensions from '../Utilities/Extensions/StringExtensions';
5
5
  import { ACTION_COLUMN_TYPE, CALCULATED_COLUMN_TYPE, FDC3_COLUMN_TYPE, FREE_TEXT_COLUMN_TYPE, } from '../AdaptableState/Common/AdaptableColumn';