@adaptabletools/adaptable-cjs 18.0.0-canary.32 → 18.0.0-canary.33

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 (45) hide show
  1. package/package.json +1 -1
  2. package/src/AdaptableOptions/QuickSearchOptions.d.ts +1 -1
  3. package/src/Api/GridApi.d.ts +1 -1
  4. package/src/Api/Implementation/NoteApiImpl.d.ts +1 -1
  5. package/src/Api/Implementation/NoteApiImpl.js +2 -2
  6. package/src/Api/Internal/FormatColumnInternalApi.js +1 -1
  7. package/src/Api/NoteApi.d.ts +1 -1
  8. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  9. package/src/PredefinedConfig/Common/RowScope.d.ts +2 -2
  10. package/src/PredefinedConfig/FormatColumnState.d.ts +1 -1
  11. package/src/PredefinedConfig/LayoutState.d.ts +1 -1
  12. package/src/Redux/ActionsReducers/NoteRedux.d.ts +1 -1
  13. package/src/Redux/ActionsReducers/NoteRedux.js +5 -5
  14. package/src/Strategy/ExportModule.js +19 -2
  15. package/src/Strategy/NoteModule.js +3 -3
  16. package/src/Strategy/StyledColumnModule.js +1 -1
  17. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +1 -1
  18. package/src/Utilities/Services/CellPopupService.js +4 -4
  19. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +2 -5
  20. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -1
  21. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +5 -5
  22. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +1 -1
  23. package/src/View/StyledColumn/Wizard/StyledColumnBadgeSection.js +5 -7
  24. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.js +5 -5
  25. package/src/agGrid/ActionColumnRenderer.js +2 -2
  26. package/src/agGrid/AgGridColumnAdapter.js +2 -2
  27. package/src/agGrid/AgGridMenuAdapter.js +5 -5
  28. package/src/agGrid/BadgeRenderer.js +1 -1
  29. package/src/agGrid/PercentBarRenderer.js +1 -1
  30. package/src/components/Accordion.d.ts +7 -0
  31. package/src/components/Accordion.js +41 -0
  32. package/src/components/icons/collapse-all.d.ts +3 -0
  33. package/src/components/icons/collapse-all.js +7 -0
  34. package/src/components/icons/csv.d.ts +3 -0
  35. package/src/components/icons/csv.js +7 -0
  36. package/src/components/icons/data-object.d.ts +3 -0
  37. package/src/components/icons/data-object.js +7 -0
  38. package/src/components/icons/excel.d.ts +3 -0
  39. package/src/components/icons/excel.js +8 -0
  40. package/src/components/icons/expand-all.d.ts +3 -0
  41. package/src/components/icons/expand-all.js +7 -0
  42. package/src/components/icons/index.js +10 -0
  43. package/src/env.js +2 -2
  44. package/src/metamodel/adaptable.metamodel.js +1 -1
  45. package/tsconfig.cjs.tsbuildinfo +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable-cjs",
3
- "version": "18.0.0-canary.32",
3
+ "version": "18.0.0-canary.33",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -33,7 +33,7 @@ export interface QuickSearchOptions<TData = any> {
33
33
  */
34
34
  filterResultsAfterQuickSearch?: boolean;
35
35
  /**
36
- * Include Aggregrated Columns in Grouped Rows when Quick Searching (highlight only)
36
+ * Include Aggregrated Columns in Group Rows when Quick Searching (highlight only)
37
37
  *
38
38
  * @defaultValue false
39
39
  * @gridInfoItem
@@ -485,7 +485,7 @@ export interface GridApi {
485
485
  */
486
486
  refreshRowNodes(rowNodes: IRowNode[]): void;
487
487
  /**
488
- * Forces a re-render of all Grouped rows (including aggregations)
488
+ * Forces a re-render of all Group Rows (including aggregations)
489
489
  */
490
490
  refreshGroupRowNodes(): void;
491
491
  /**
@@ -13,6 +13,6 @@ export declare class NoteApiImpl extends ApiBase implements NoteApi {
13
13
  deleteNote(note: AdaptableNote): void;
14
14
  getNoteState(): NoteState;
15
15
  getAllNotes(): AdaptableNotes;
16
- getNotesForCell(address: CellAddress): AdaptableNote[];
16
+ getNoteForCell(address: CellAddress): AdaptableNote;
17
17
  getNoteByUuid(uuid: string): AdaptableNote | undefined;
18
18
  }
@@ -35,8 +35,8 @@ class NoteApiImpl extends ApiBase_1.ApiBase {
35
35
  getAllNotes() {
36
36
  return this.getNoteState().Notes;
37
37
  }
38
- getNotesForCell(address) {
39
- return NoteRedux.GetNotesSelector(this.getAdaptableState().Note, address);
38
+ getNoteForCell(address) {
39
+ return NoteRedux.GetNoteSelector(this.getAdaptableState().Note, address);
40
40
  }
41
41
  getNoteByUuid(uuid) {
42
42
  return this.getAllNotes().find((note) => note.Uuid === uuid);
@@ -172,7 +172,7 @@ class FormatColumnInternalApi extends ApiBase_1.ApiBase {
172
172
  }
173
173
  }
174
174
  else if (isGroupedRowNode) {
175
- if ((_b = formatColumn.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows) {
175
+ if ((_b = formatColumn.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupRows) {
176
176
  return false;
177
177
  }
178
178
  }
@@ -39,7 +39,7 @@ export interface NoteApi {
39
39
  * Gets all Notes for a cell
40
40
  * @param CellAddress note position
41
41
  */
42
- getNotesForCell(CellAddress: CellAddress): AdaptableNote[];
42
+ getNoteForCell(CellAddress: CellAddress): AdaptableNote;
43
43
  /**
44
44
  * Returns a Note by uuid
45
45
  * @param uuid note uuid
@@ -54,4 +54,4 @@ export interface AdaptableBaseIcon {
54
54
  /**
55
55
  * All AdapTable System Icon names
56
56
  */
57
- export type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'copy' | 'comment' | 'comments' | 'contains' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'filter-off' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'select-all' | 'select-off' | 'select-fwd' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'resume' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold' | 'note' | 'import' | 'grid-filter' | 'grid-info' | 'rows';
57
+ export type AdaptableSystemIconName = 'add' | 'alert' | 'building' | 'laptop' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrow-expand' | 'paperclip' | 'unfilled-circle' | 'boolean-list' | 'broadcast' | 'brush' | 'spanner' | 'edit-table' | 'chart-and-grid' | 'calendar' | 'call' | 'cells' | 'fdc3' | 'flag' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'columns' | 'filter-list' | 'copy' | 'comment' | 'comments' | 'contains' | 'dashboard' | 'json' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'dollar' | 'drag' | 'edit' | 'ends-with' | 'equals' | 'equation' | 'error' | 'excel' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'filter-off' | 'lightning' | 'folder' | 'folder-open' | 'folder-shared' | 'color-palette' | 'horizontal-lines' | 'function' | 'greater-than' | 'greater-than-or-equal' | 'history' | 'home' | 'import-export' | 'info' | 'brain' | 'download' | 'grid' | 'interactions' | 'less-than' | 'less-than-or-equal' | 'list' | 'logout' | 'mail' | 'menu' | 'minus' | 'multiplication' | 'money' | 'newpage' | 'news' | 'filled-circle' | 'not-contains' | 'not-equal' | 'open-in-new' | 'order' | 'organisation' | 'pause' | 'percent' | 'percent-tag' | 'person' | 'contact' | 'pie-chart' | 'play' | 'plus' | 'add-circle' | 'search' | 'search-table' | 'select-all' | 'select-off' | 'select-fwd' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'science' | 'settings' | 'link' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'resume' | 'starts-with' | 'assignment' | 'statusbar' | 'stop' | 'traffic-lights' | 'tab-unselected' | 'theme' | 'clipboard' | 'target' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'downloaded' | 'upload' | 'warning' | 'gradient' | 'badge' | 'italic' | 'bold' | 'align-left' | 'align-right' | 'align-center' | 'align-justify' | 'underline' | 'strikethrough' | 'overline' | 'case-upper' | 'case-lower' | 'case-sentence' | 'visibility-on' | 'visibility-off' | 'visibility-off-bold' | 'visibility-on-bold' | 'note' | 'import' | 'grid-filter' | 'grid-info' | 'csv' | 'rows' | 'expand-all' | 'collapse-all';
@@ -7,9 +7,9 @@ export type RowScope = {
7
7
  */
8
8
  ExcludeDataRows?: boolean;
9
9
  /**
10
- * Exclude Grouped Rows
10
+ * Exclude Group Rows
11
11
  */
12
- ExcludeGroupedRows?: boolean;
12
+ ExcludeGroupRows?: boolean;
13
13
  /**
14
14
  * Exclude Summary Rows (used in Row Summaries)
15
15
  */
@@ -46,7 +46,7 @@ export interface FormatColumn extends SuspendableObject {
46
46
  */
47
47
  RowScope?: RowScope;
48
48
  /**
49
- * @deprecated FormatColumns now apply to grouped rows by default; use RowScope for more control
49
+ * @deprecated FormatColumns now apply to Group Rows by default; use RowScope for more control
50
50
  */
51
51
  IncludeGroupedRows?: never;
52
52
  }
@@ -56,7 +56,7 @@ export interface Layout extends AdaptableObject {
56
56
  */
57
57
  ExpandedRowGroupValues?: any[];
58
58
  /**
59
- * Columns showing aggregated values in grouped rows; 1st value in record is Column name, 2nd is either aggfunc (e.g. sum, avg etc.) or 'true' (to use default aggfunc)
59
+ * Columns showing aggregated values in Group Rows; 1st value in record is Column name, 2nd is either aggfunc (e.g. sum, avg etc.) or 'true' (to use default aggfunc)
60
60
  */
61
61
  AggregationColumns?: AggregationColumns;
62
62
  /**
@@ -34,5 +34,5 @@ export declare const NoteEdit: (note: AdaptableNote) => AdaptableNoteEditAction;
34
34
  export declare const NoteDelete: (note: AdaptableNote) => AdaptableNoteDeleteAction;
35
35
  export declare const NoteReady: (note: NoteState) => NoteReadyAction;
36
36
  export declare const GetAllNotesSelector: (state: NoteState) => AdaptableNote[];
37
- export declare const GetNotesSelector: (state: NoteState, address: CellAddress) => AdaptableNote[];
37
+ export declare const GetNoteSelector: (state: NoteState, address: CellAddress) => AdaptableNote;
38
38
  export declare const NoteReducer: Redux.Reducer<NoteState>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NoteReducer = exports.GetNotesSelector = exports.GetAllNotesSelector = exports.NoteReady = exports.NoteDelete = exports.NoteEdit = exports.NoteAdd = exports.NOTE_READY = exports.NOTE_DELETE = exports.NOTE_EDIT = exports.NOTE_ADD = void 0;
3
+ exports.NoteReducer = exports.GetNoteSelector = exports.GetAllNotesSelector = exports.NoteReady = exports.NoteDelete = exports.NoteEdit = exports.NoteAdd = exports.NOTE_READY = exports.NOTE_DELETE = exports.NOTE_EDIT = exports.NOTE_ADD = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper"));
6
6
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
@@ -42,12 +42,12 @@ const NoteReady = (note) => ({
42
42
  exports.NoteReady = NoteReady;
43
43
  const GetAllNotesSelector = (state) => state.Notes;
44
44
  exports.GetAllNotesSelector = GetAllNotesSelector;
45
- const GetNotesSelector = (state, address) => {
45
+ const GetNoteSelector = (state, address) => {
46
46
  var _a;
47
47
  if (!address) {
48
- return [];
48
+ return null;
49
49
  }
50
- return ((_a = state === null || state === void 0 ? void 0 : state.Notes) !== null && _a !== void 0 ? _a : []).filter((note) => {
50
+ return ((_a = state === null || state === void 0 ? void 0 : state.Notes) !== null && _a !== void 0 ? _a : []).find((note) => {
51
51
  if (note.PrimaryKeyValue === address.PrimaryKeyValue && note.ColumnId === address.ColumnId) {
52
52
  // happy check
53
53
  return true;
@@ -61,7 +61,7 @@ const GetNotesSelector = (state, address) => {
61
61
  return false;
62
62
  });
63
63
  };
64
- exports.GetNotesSelector = GetNotesSelector;
64
+ exports.GetNoteSelector = GetNoteSelector;
65
65
  const initialState = {
66
66
  Notes: GeneralConstants_1.EMPTY_ARRAY,
67
67
  };
@@ -52,7 +52,7 @@ class ExportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
52
52
  let returnMenuItems = [];
53
53
  const availableSystemReports = this.api.exportApi.getAvailableSystemReports();
54
54
  if (availableSystemReports.includes(GeneralConstants_1.VISUAL_DATA_REPORT)) {
55
- returnMenuItems.push(this.createMenuItemClickFunction('export-visual-data-excel', 'Excel', this.moduleInfo.Glyph, () => this.export(this.api.exportApi.getReportByName(GeneralConstants_1.VISUAL_DATA_REPORT), Enums_1.ExportDestination.Excel)));
55
+ returnMenuItems.push(this.createMenuItemClickFunction('export-visual-data-excel', 'Excel', 'excel', () => this.export(this.api.exportApi.getReportByName(GeneralConstants_1.VISUAL_DATA_REPORT), Enums_1.ExportDestination.Excel)));
56
56
  }
57
57
  if (availableSystemReports.includes(GeneralConstants_1.ALL_DATA_REPORT)) {
58
58
  const allDataReport = this.api.exportApi.getReportByName(GeneralConstants_1.ALL_DATA_REPORT);
@@ -92,9 +92,26 @@ class ExportModule extends AdaptableModuleBase_1.AdaptableModuleBase {
92
92
  const getMenuItemName = (reportName, destination) => {
93
93
  return `export-${adjustName(reportName)}-${adjustName(destination)}`;
94
94
  };
95
+ const getMenuItemIcon = (exportDestination) => {
96
+ // once we have icons for csv, clipboard etc then i would like to add them here one by one and use moduleinfo for custom
97
+ switch (exportDestination) {
98
+ case Enums_1.ExportDestination.Excel:
99
+ return 'excel';
100
+ case Enums_1.ExportDestination.Clipboard:
101
+ return 'clipboard';
102
+ case Enums_1.ExportDestination.CSV:
103
+ return 'csv';
104
+ case Enums_1.ExportDestination.JSON:
105
+ return 'json';
106
+ case Enums_1.ExportDestination.Table:
107
+ return 'grid';
108
+ }
109
+ return this.moduleInfo.Glyph;
110
+ };
95
111
  const menuItems = [];
96
112
  for (const destination of this.api.exportApi.getAvailableExportDestinations()) {
97
- menuItems.push(this.createMenuItemClickFunction(getMenuItemName(report.Name, destination), destination, this.moduleInfo.Glyph, () => this.export(report, destination)));
113
+ menuItems.push(this.createMenuItemClickFunction(getMenuItemName(report.Name, destination), destination, getMenuItemIcon(destination), // 'filter', // this.moduleInfo.Glyph,
114
+ () => this.export(report, destination)));
98
115
  }
99
116
  for (const customDestination of this.api.exportApi.getCustomDestinations()) {
100
117
  menuItems.push(this.createMenuItemClickFunction(getMenuItemName(report.Name, customDestination.name), customDestination.name, this.moduleInfo.Glyph, () => this.export(report, customDestination.name)));
@@ -15,7 +15,7 @@ class NoteModule extends AdaptableModuleBase_1.AdaptableModuleBase {
15
15
  return super.isModuleAvailable() && !this.api.optionsApi.getAutogeneratePrimaryKey();
16
16
  }
17
17
  createContextMenuItems(menuContext) {
18
- var _a, _b, _c;
18
+ var _a, _b;
19
19
  if (!this.isModuleAvailable()) {
20
20
  return;
21
21
  }
@@ -32,10 +32,10 @@ class NoteModule extends AdaptableModuleBase_1.AdaptableModuleBase {
32
32
  if (!isCellNotable) {
33
33
  return;
34
34
  }
35
- const [note] = (_c = this.adaptable.api.noteApi.getNotesForCell({
35
+ const note = this.adaptable.api.noteApi.getNoteForCell({
36
36
  PrimaryKeyValue: menuContext.primaryKeyValue,
37
37
  ColumnId: menuContext.adaptableColumn.columnId,
38
- })) !== null && _c !== void 0 ? _c : [];
38
+ });
39
39
  if (note) {
40
40
  return [
41
41
  this.createMenuItemClickFunction('note-remove', 'Remove Note', this.moduleInfo.Glyph, () => {
@@ -181,7 +181,7 @@ class StyledColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
181
181
  name: 'Settings',
182
182
  values: [
183
183
  `Data Rows: ${((_b = (_a = styledColumn.BadgeStyle) === null || _a === void 0 ? void 0 : _a.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeDataRows) ? 'No' : 'Yes'}`,
184
- `Grouped Rows: ${((_d = (_c = styledColumn.BadgeStyle) === null || _c === void 0 ? void 0 : _c.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeGroupedRows) ? 'No' : 'Yes'}`,
184
+ `Group Rows: ${((_d = (_c = styledColumn.BadgeStyle) === null || _c === void 0 ? void 0 : _c.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeGroupRows) ? 'No' : 'Yes'}`,
185
185
  `Summary Rows: ${((_f = (_e = styledColumn.BadgeStyle) === null || _e === void 0 ? void 0 : _e.RowScope) === null || _f === void 0 ? void 0 : _f.ExcludeSummaryRows) ? 'No' : 'Yes'}`,
186
186
  ],
187
187
  });
@@ -6,7 +6,7 @@ const getFormatColumnSettingsViewItems = (formatColumn) => {
6
6
  const values = [
7
7
  `Cell alignment: ${(_a = formatColumn.CellAlignment) !== null && _a !== void 0 ? _a : 'default'}`,
8
8
  `Data Rows: ${((_b = formatColumn.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeDataRows) ? 'Yes' : 'No'}`,
9
- `Grouped Rows: ${((_c = formatColumn.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupedRows) ? 'Yes' : 'No'}`,
9
+ `Group Rows: ${((_c = formatColumn.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupRows) ? 'Yes' : 'No'}`,
10
10
  `Row Summaries: ${((_d = formatColumn.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeSummaryRows) ? 'Yes' : 'No'}`,
11
11
  ].filter(Boolean);
12
12
  return {
@@ -78,9 +78,9 @@ class CellPopupService {
78
78
  this.hidePopup();
79
79
  return;
80
80
  }
81
- const cellNotes = this.adaptable.api.noteApi.getNotesForCell(cellPosition);
81
+ const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellPosition);
82
82
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellPosition);
83
- const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
83
+ const hasNotesOrComments = cellNote || cellComments;
84
84
  // call only if it is different
85
85
  if (CellPopupService.isSameAddress(openCellAddress, cellPosition)) {
86
86
  return;
@@ -96,9 +96,9 @@ class CellPopupService {
96
96
  return;
97
97
  }
98
98
  // if open but this has no note, close
99
- const cellNotes = this.adaptable.api.noteApi.getNotesForCell(cellAddress);
99
+ const cellNote = this.adaptable.api.noteApi.getNoteForCell(cellAddress);
100
100
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellAddress);
101
- const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
101
+ const hasNotesOrComments = cellNote || cellComments;
102
102
  if (openCellAddress && !hasNotesOrComments) {
103
103
  // hide only if in edit mode
104
104
  // because if you select a cell and move the mouse fast over another cell
@@ -17,11 +17,8 @@ const ConnectedNoteEditor = ({ enableEditMode }) => {
17
17
  const editMode = (0, react_redux_1.useSelector)((state) => (0, SystemRedux_1.SystemCommentsAndNotesEditModeSelector)(state.System));
18
18
  const cellPopupService = api.internalApi.getCellPopupService();
19
19
  const cellAddress = (0, react_redux_1.useSelector)((state) => (0, SystemRedux_1.SystemCommentsAndNotesSelector)(state.System));
20
- const [
21
- // Only handle first note for now
22
- // Later we can handle multiple notes
23
- note,] = (0, react_redux_1.useSelector)((state) => {
24
- return cellAddress ? (0, NoteRedux_1.GetNotesSelector)(state.Note, cellAddress) : [];
20
+ const note = (0, react_redux_1.useSelector)((state) => {
21
+ return cellAddress ? (0, NoteRedux_1.GetNoteSelector)(state.Note, cellAddress) : null;
25
22
  });
26
23
  const handleNoteChange = React.useCallback((value) => {
27
24
  api.noteApi.updateNoteText(value, note);
@@ -100,7 +100,7 @@ const buildAdaptableOptions = (mainAdaptableInstance, gridOptions, adaptableCont
100
100
  columnId: 'undoActionColumn',
101
101
  friendlyName: ' ',
102
102
  rowScope: {
103
- ExcludeGroupedRows: true,
103
+ ExcludeGroupRows: true,
104
104
  ExcludeSummaryRows: true,
105
105
  },
106
106
  actionColumnSettings: { suppressMenu: true, suppressMovable: true },
@@ -22,8 +22,8 @@ const renderFormatColumnSettingsSummary = (data) => {
22
22
  React.createElement(Tag_1.Tag, null, ((_b = data.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeDataRows) ? 'no' : 'yes')),
23
23
  ' ',
24
24
  React.createElement(rebass_1.Text, { mt: 3 },
25
- "Grouped Rows ",
26
- React.createElement(Tag_1.Tag, null, ((_c = data.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupedRows) ? 'no' : 'yes')),
25
+ "Group Rows ",
26
+ React.createElement(Tag_1.Tag, null, ((_c = data.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeGroupRows) ? 'no' : 'yes')),
27
27
  React.createElement(rebass_1.Text, { mt: 3 },
28
28
  "Summary Rows ",
29
29
  React.createElement(Tag_1.Tag, null, ((_d = data.RowScope) === null || _d === void 0 ? void 0 : _d.ExcludeSummaryRows) ? 'no' : 'yes'))));
@@ -43,7 +43,7 @@ const FormatColumnSettingsWizardSection = (props) => {
43
43
  props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeDataRows }) }));
44
44
  };
45
45
  const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
46
- props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeGroupedRows }) }));
46
+ props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeGroupRows: ExcludeGroupedRows }) }));
47
47
  };
48
48
  const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
49
49
  props.onChange(Object.assign(Object.assign({}, data), { RowScope: Object.assign(Object.assign({}, data.RowScope), { ExcludeSummaryRows }) }));
@@ -67,9 +67,9 @@ const FormatColumnSettingsWizardSection = (props) => {
67
67
  React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
68
68
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
69
69
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: (_a = data.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
70
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Grouped Rows:" },
70
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
71
71
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
72
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: (_b = data.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
72
+ React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: (_b = data.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
73
73
  React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
74
74
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
75
75
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: (_c = data.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, mr: 2 }))))))));
@@ -48,7 +48,7 @@ const RowGroupingSection = (props) => {
48
48
  props.onChange(Object.assign(Object.assign({}, layout), { RowGroupedColumns: columnIds }));
49
49
  };
50
50
  return (React.createElement(Tabs_1.Tabs, { style: { height: '100%' } },
51
- React.createElement(Tabs_1.Tabs.Tab, null, "Grouped Rows"),
51
+ React.createElement(Tabs_1.Tabs.Tab, null, "Group Rows"),
52
52
  ((_a = layout.ExpandedRowGroupValues) === null || _a === void 0 ? void 0 : _a.length) && React.createElement(Tabs_1.Tabs.Tab, null, "Expanded Rows"),
53
53
  React.createElement(Tabs_1.Tabs.Content, null,
54
54
  React.createElement(ValueSelector_1.ValueSelector, { showFilterInput: true, showSelectedOnlyPosition: "top", filter: Utilities_1.columnFilter, toIdentifier: (option) => `${option.columnId}`, toLabel: (option) => { var _a; return (_a = option.friendlyName) !== null && _a !== void 0 ? _a : option.columnId; }, options: sortedGroupableColumns, value: (_b = layout.RowGroupedColumns) !== null && _b !== void 0 ? _b : [], allowReorder: true, xSelectedLabel: () => {
@@ -11,7 +11,6 @@ const HelpBlock_1 = tslib_1.__importDefault(require("../../../components/HelpBlo
11
11
  const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
12
12
  const Tabs_1 = require("../../../components/Tabs");
13
13
  const ObjectFactory_1 = tslib_1.__importDefault(require("../../../Utilities/ObjectFactory"));
14
- const AdaptablePopover_1 = require("../../AdaptablePopover");
15
14
  const AdaptableIconSelector_1 = require("../../Components/AdaptableIconSelector");
16
15
  const PredicateEditor_1 = require("../../Components/PredicateEditor/PredicateEditor");
17
16
  const StyleComponent_1 = require("../../Components/StyleComponent");
@@ -20,6 +19,7 @@ const StyledColumnBadgePreview_1 = require("./StyledColumnWizardStyleSection/Com
20
19
  const Badge_1 = require("../../Components/Badge");
21
20
  const AdaptableIconComponent_1 = require("../../Components/AdaptableIconComponent");
22
21
  const GeneralConstants_1 = require("../../../Utilities/Constants/GeneralConstants");
22
+ const Accordion_1 = require("../../../components/Accordion");
23
23
  const BadgeEditor = (props) => {
24
24
  var _a, _b;
25
25
  const { api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
@@ -40,12 +40,10 @@ const BadgeEditor = (props) => {
40
40
  React.createElement(FormLayout_1.FormRow, { label: "Style" },
41
41
  React.createElement(HelpBlock_1.default, { fontSize: 2, mb: 1, mt: 2 }, "Select the Style for the Badge"),
42
42
  ' ',
43
- React.createElement(AdaptablePopover_1.AdaptablePopover, { showEvent: "mouseenter", hideEvent: "mouseleave", showIcon: false, useButton: false, popoverMaxWidth: 700, bodyText: [
44
- React.createElement(StyleComponent_1.StyleComponent, { showFontSizeAs: "radio", headless: true, hidePreview: true, api: api, Style: (_a = badge.Style) !== null && _a !== void 0 ? _a : {}, UpdateStyle: (Style) => {
45
- onChange(Object.assign(Object.assign({}, badge), { Style }));
46
- } }),
47
- ] },
48
- React.createElement(SimpleButton_1.default, { variant: "raised" }, "Edit Badge Style"))),
43
+ React.createElement(Accordion_1.Accordion, { title: "Edit Badge Style" },
44
+ React.createElement(StyleComponent_1.StyleComponent, { showFontSizeAs: "radio", headless: true, hidePreview: true, api: api, Style: (_a = badge.Style) !== null && _a !== void 0 ? _a : {}, UpdateStyle: (Style) => {
45
+ onChange(Object.assign(Object.assign({}, badge), { Style }));
46
+ } }))),
49
47
  !api.columnApi.hasArrayDataType(columnId) && ( // dont show predicates for arrays
50
48
  (React.createElement(
51
49
  FormLayout_1.FormRow,
@@ -18,8 +18,8 @@ const renderStyledColumnWizardSettingsSummary = (data) => {
18
18
  React.createElement(Tag_1.Tag, null, ((_a = badgeStyle.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeDataRows) ? 'no' : 'yes')),
19
19
  ' ',
20
20
  React.createElement(rebass_1.Text, { mt: 3 },
21
- "Grouped Rows ",
22
- React.createElement(Tag_1.Tag, null, ((_b = badgeStyle.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows) ? 'no' : 'yes')),
21
+ "Group Rows ",
22
+ React.createElement(Tag_1.Tag, null, ((_b = badgeStyle.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupRows) ? 'no' : 'yes')),
23
23
  React.createElement(rebass_1.Text, { mt: 3 },
24
24
  "Summary Rows ",
25
25
  React.createElement(Tag_1.Tag, null, ((_c = badgeStyle.RowScope) === null || _c === void 0 ? void 0 : _c.ExcludeSummaryRows) ? 'no' : 'yes'))));
@@ -32,7 +32,7 @@ const StyledColumnWizardSettingsSection = (props) => {
32
32
  props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeDataRows }) }) }));
33
33
  };
34
34
  const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
35
- props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeGroupedRows }) }) }));
35
+ props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeGroupRows: ExcludeGroupedRows }) }) }));
36
36
  };
37
37
  const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
38
38
  props.onChange(Object.assign(Object.assign({}, data), { BadgeStyle: Object.assign(Object.assign({}, data.BadgeStyle), { RowScope: Object.assign(Object.assign({}, data.BadgeStyle.RowScope), { ExcludeSummaryRows }) }) }));
@@ -47,11 +47,11 @@ const StyledColumnWizardSettingsSection = (props) => {
47
47
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked:
48
48
  // @ts-ignore
49
49
  (_a = data.BadgeStyle.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeDataRows, onChange: onExcludeDataRowsChanged, mr: 2 }))),
50
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Grouped Rows:" },
50
+ React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
51
51
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
52
52
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked:
53
53
  // @ts-ignore
54
- (_b = data.BadgeStyle.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupedRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
54
+ (_b = data.BadgeStyle.RowScope) === null || _b === void 0 ? void 0 : _b.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, mr: 2 }))),
55
55
  React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
56
56
  React.createElement(rebass_1.Flex, { alignItems: "center", marginLeft: 2 },
57
57
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked:
@@ -47,7 +47,7 @@ const ReactActionColumnRenderer = (props) => {
47
47
  const isSummaryRow = adaptable.api.gridApi.isSummaryNode(props.node);
48
48
  let shouldRender = true;
49
49
  if (isGroupedRow) {
50
- if ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupedRows) {
50
+ if ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupRows) {
51
51
  shouldRender = false;
52
52
  }
53
53
  }
@@ -94,7 +94,7 @@ class ActionColumnRenderer {
94
94
  const isSummaryRow = adaptable.api.gridApi.isSummaryNode(params.node);
95
95
  let shouldRender = true;
96
96
  if (isGroupedRow) {
97
- if ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupedRows) {
97
+ if ((_a = actionColumn.rowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupRows) {
98
98
  shouldRender = false;
99
99
  }
100
100
  }
@@ -580,8 +580,8 @@ class AgGridColumnAdapter {
580
580
  PrimaryKeyValue: gridCell.primaryKeyValue,
581
581
  ColumnId: gridCell.column.columnId,
582
582
  };
583
- const cellNotes = this.adaptableApi.noteApi.getNotesForCell(cellPosition);
584
- if (!(cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length)) {
583
+ const cellNote = this.adaptableApi.noteApi.getNoteForCell(cellPosition);
584
+ if (!cellNote) {
585
585
  return undefined;
586
586
  }
587
587
  return 'ab-Cell-Note';
@@ -356,25 +356,25 @@ class AgGridMenuAdapter {
356
356
  ? [
357
357
  this.buildMenuGroupParent('Export', exportMenuItems.filter((item) => item.name.startsWith('export-visual-data-excel')), {
358
358
  label: 'Visual Data',
359
- icon: false,
359
+ icon: 'export-data',
360
360
  }),
361
361
  ]
362
362
  : [];
363
363
  const allDataExportItems = this.normalizeMenuGroup(this.buildMenuGroupParent('Export', exportMenuItems.filter((item) => item.name.startsWith('export-all-data')), {
364
364
  label: 'All Data',
365
- icon: false,
365
+ icon: 'export-data',
366
366
  }));
367
367
  const currentDataExportItems = this.normalizeMenuGroup(this.buildMenuGroupParent('Export', exportMenuItems.filter((item) => item.name.startsWith('export-current-data')), {
368
368
  label: 'Current Data',
369
- icon: false,
369
+ icon: 'export-data',
370
370
  }));
371
371
  const selectedCellsExportItems = this.normalizeMenuGroup(this.buildMenuGroupParent('Export', exportMenuItems.filter((item) => item.name.startsWith('export-selected-cells')), {
372
372
  label: 'Selected Cells',
373
- icon: false,
373
+ icon: 'export-data',
374
374
  }));
375
375
  const selectedRowsExportItems = this.normalizeMenuGroup(this.buildMenuGroupParent('Export', exportMenuItems.filter((item) => item.name.startsWith('export-selected-rows')), {
376
376
  label: 'Selected Rows',
377
- icon: false,
377
+ icon: 'export-data',
378
378
  }));
379
379
  return this.normalizeMenuGroup(this.buildMenuGroupParent('Export', [
380
380
  ...visualDataExportItems,
@@ -21,7 +21,7 @@ const getBadgeRendererForColumn = (badgeStyle, abColumn, api) => {
21
21
  const isSummaryRow = adapatableApi.gridApi.isSummaryNode(params.node);
22
22
  let shouldRender = true;
23
23
  if (isGroupedRow) {
24
- if ((_a = badgeStyle.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupedRows) {
24
+ if ((_a = badgeStyle.RowScope) === null || _a === void 0 ? void 0 : _a.ExcludeGroupRows) {
25
25
  shouldRender = false;
26
26
  }
27
27
  }
@@ -17,7 +17,7 @@ const getPercentBarRendererForColumn = (styledColumn, abColumn, api) => {
17
17
  if (Helper_1.default.objectNotExists(value)) {
18
18
  value = 0;
19
19
  }
20
- // No longer support showing Percent Bar in Grouped Rows
20
+ // We no longer support showing Percent Bar in Group Rows as it only made sense for Min / Max
21
21
  if (api.gridApi.isGroupRowNode(params.node)) {
22
22
  if (params.value) {
23
23
  this.eGui = document.createElement('div');
@@ -0,0 +1,7 @@
1
+ import React, { ReactElement } from 'react';
2
+ interface AccordionProps {
3
+ title: string | ReactElement;
4
+ children: ReactElement;
5
+ }
6
+ export declare const Accordion: React.FC<AccordionProps>;
7
+ export default Accordion;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Accordion = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const SimpleButton_1 = tslib_1.__importDefault(require("./SimpleButton"));
7
+ const Panel_1 = tslib_1.__importDefault(require("./Panel"));
8
+ const Accordion = ({ title, children }) => {
9
+ const [isOpen, setIsOpen] = (0, react_1.useState)(false);
10
+ const [height, setHeight] = (0, react_1.useState)('0px');
11
+ const content = (0, react_1.useRef)(null);
12
+ const observer = (0, react_1.useRef)(null);
13
+ (0, react_1.useEffect)(() => {
14
+ setHeight(isOpen && content.current ? `${content.current.scrollHeight}px` : '0px');
15
+ }, [isOpen, content]);
16
+ (0, react_1.useEffect)(() => {
17
+ if (content.current) {
18
+ observer.current = new MutationObserver(() => {
19
+ var _a;
20
+ setHeight(`${(_a = content.current) === null || _a === void 0 ? void 0 : _a.scrollHeight}px`);
21
+ });
22
+ observer.current.observe(content.current, { childList: true, subtree: true });
23
+ }
24
+ return () => {
25
+ var _a;
26
+ (_a = observer.current) === null || _a === void 0 ? void 0 : _a.disconnect();
27
+ };
28
+ }, []);
29
+ const toggleAccordion = () => {
30
+ setIsOpen(!isOpen);
31
+ };
32
+ return (react_1.default.createElement(Panel_1.default, { className: "ab-Accordion" },
33
+ react_1.default.createElement(SimpleButton_1.default, { iconPosition: 'end', icon: isOpen ? 'expand-all' : 'collapse-all', variant: "text", onClick: toggleAccordion, style: { width: '100%', textAlign: 'left' } }, title),
34
+ react_1.default.createElement("div", { ref: content, style: {
35
+ maxHeight: `${height}`,
36
+ overflow: 'hidden',
37
+ transition: 'max-height 0.6s ease',
38
+ } }, children)));
39
+ };
40
+ exports.Accordion = Accordion;
41
+ exports.default = exports.Accordion;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "m296-80-56-56 240-240 240 240-56 56-184-184L296-80Zm184-504L240-824l56-56 184 184 184-184 56 56-240 240Z" })));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M230-360h120v-60H250v-120h100v-60H230q-17 0-28.5 11.5T190-560v160q0 17 11.5 28.5T230-360Zm156 0h120q17 0 28.5-11.5T546-400v-60q0-17-11.5-31.5T506-506h-60v-34h100v-60H426q-17 0-28.5 11.5T386-560v60q0 17 11.5 30.5T426-456h60v36H386v60Zm264 0h60l70-240h-60l-40 138-40-138h-60l70 240ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-480H160v480Zm0 0v-480 480Z" })));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M560-160v-80h120q17 0 28.5-11.5T720-280v-80q0-38 22-69t58-44v-14q-36-13-58-44t-22-69v-80q0-17-11.5-28.5T680-720H560v-80h120q50 0 85 35t35 85v80q0 17 11.5 28.5T840-560h40v160h-40q-17 0-28.5 11.5T800-360v80q0 50-35 85t-85 35H560Zm-280 0q-50 0-85-35t-35-85v-80q0-17-11.5-28.5T120-400H80v-160h40q17 0 28.5-11.5T160-600v-80q0-50 35-85t85-35h120v80H280q-17 0-28.5 11.5T240-680v80q0 38-22 69t-58 44v14q36 13 58 44t22 69v80q0 17 11.5 28.5T280-240h120v80H280Z" })));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props, { viewBox: "0 -960 960 960" }),
7
+ React.createElement("path", { d: "M200-200h80v-80h-80v80Zm160 0h80v-80h-80v80Zm160 0h80v-80h-80v80Zm160 0h80v-80h-80v80ZM200-680h80v-80h-80v80Zm0 160h80v-80h-80v80Zm0 160h80v-80h-80v80Zm160-320h80v-80h-80v80Zm0 160h80v-80h-80v80Zm0 160h80v-80h-80v80Zm160-320h80v-80h-80v80Zm0 160h80v-80h-80v80Zm0 160h80v-80h-80v80Zm160-320h80v-80h-80v80Zm0 160h80v-80h-80v80Zm0 160h80v-80h-80v80ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z" }),
8
+ ' '));