globuswebcomponents 2.8.12 → 2.9.1

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 (75) hide show
  1. package/dist/cjs/gb-action-panel_75.cjs.entry.js +167 -85
  2. package/dist/cjs/globuscomponents.cjs.js +1 -1
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/reusableModels-_LRAKnsh.js.map +1 -1
  5. package/dist/collection/assets/pencil-edit-01.svg +3 -0
  6. package/dist/collection/components/gb-button/readme.md +13 -0
  7. package/dist/collection/components/gb-date-picker/gb-date-picker.css +4 -0
  8. package/dist/collection/components/gb-date-picker/gb-date-picker.js +5 -7
  9. package/dist/collection/components/gb-date-picker/gb-date-picker.js.map +1 -1
  10. package/dist/collection/components/gb-input-dropdown/gb-input-dropdown.js +6 -6
  11. package/dist/collection/components/gb-input-dropdown/gb-input-dropdown.js.map +1 -1
  12. package/dist/collection/components/gb-pagination/gb-pagination.css +1 -0
  13. package/dist/collection/components/gb-portal/gb-portal.css +1 -2
  14. package/dist/collection/components/gb-portal/gb-portal.js +16 -10
  15. package/dist/collection/components/gb-portal/gb-portal.js.map +1 -1
  16. package/dist/collection/components/gb-table/gb-table.css +70 -23
  17. package/dist/collection/components/gb-table/gb-table.js +193 -132
  18. package/dist/collection/components/gb-table/gb-table.js.map +1 -1
  19. package/dist/collection/components/gb-table-header/gb-table-header.css +10 -9
  20. package/dist/collection/components/gb-table-header/gb-table-header.js +7 -5
  21. package/dist/collection/components/gb-table-header/gb-table-header.js.map +1 -1
  22. package/dist/collection/components/gb-textarea-input-field/gb-textarea-input-field.js +3 -4
  23. package/dist/collection/components/gb-textarea-input-field/gb-textarea-input-field.js.map +1 -1
  24. package/dist/collection/models/reusableModels.js.map +1 -1
  25. package/dist/collection/utils/tableColumnBuilder.js +125 -0
  26. package/dist/collection/utils/tableColumnBuilder.js.map +1 -0
  27. package/dist/components/gb-approval-modal.js +1 -1
  28. package/dist/components/gb-date-picker.js +1 -1
  29. package/dist/components/gb-empty-state.js +1 -145
  30. package/dist/components/gb-empty-state.js.map +1 -1
  31. package/dist/components/gb-input-dropdown.js +1 -1
  32. package/dist/components/gb-pagination.js +1 -1
  33. package/dist/components/gb-portal.js +1 -1
  34. package/dist/components/gb-table-header.js +1 -1
  35. package/dist/components/gb-table.js +221 -108
  36. package/dist/components/gb-table.js.map +1 -1
  37. package/dist/components/gb-textarea-input-field.js +1 -1
  38. package/dist/components/p-ByjJN3cS.js +150 -0
  39. package/dist/components/p-ByjJN3cS.js.map +1 -0
  40. package/dist/components/{p-B9vWIoWs.js → p-C--0Sicf.js} +8 -8
  41. package/dist/components/p-C--0Sicf.js.map +1 -0
  42. package/dist/components/{p-CSka0gDO.js → p-CJelLNTb.js} +5 -6
  43. package/dist/components/p-CJelLNTb.js.map +1 -0
  44. package/dist/components/p-cHn6O-Kf.js.map +1 -1
  45. package/dist/components/{p-BTHdpYQl.js → p-dgGYVBLp.js} +19 -13
  46. package/dist/components/p-dgGYVBLp.js.map +1 -0
  47. package/dist/components/{p-CIk9ZD0b.js → p-jEUDScnD.js} +4 -4
  48. package/dist/components/p-jEUDScnD.js.map +1 -0
  49. package/dist/components/{p-BHOJKe6j.js → p-q16C1y-8.js} +11 -9
  50. package/dist/components/p-q16C1y-8.js.map +1 -0
  51. package/dist/components/{p-BWx-o392.js → p-rzRgniQd.js} +7 -9
  52. package/dist/components/p-rzRgniQd.js.map +1 -0
  53. package/dist/docs.json +104 -115
  54. package/dist/esm/gb-action-panel_75.entry.js +167 -85
  55. package/dist/esm/globuscomponents.js +1 -1
  56. package/dist/esm/loader.js +1 -1
  57. package/dist/esm/reusableModels-cHn6O-Kf.js.map +1 -1
  58. package/dist/globuscomponents/assets/pencil-edit-01.svg +3 -0
  59. package/dist/globuscomponents/globuscomponents.esm.js +1 -1
  60. package/dist/globuscomponents/{p-7024cc46.entry.js → p-c3549c89.entry.js} +2 -2
  61. package/dist/globuscomponents/p-c3549c89.entry.js.map +1 -0
  62. package/dist/globuscomponents/p-cHn6O-Kf.js.map +1 -1
  63. package/dist/globuscomponents/readme.md +13 -0
  64. package/dist/types/components/gb-table/gb-table.d.ts +28 -11
  65. package/dist/types/components.d.ts +44 -40
  66. package/dist/types/models/reusableModels.d.ts +22 -3
  67. package/dist/types/utils/tableColumnBuilder.d.ts +88 -0
  68. package/package.json +1 -1
  69. package/dist/components/p-B9vWIoWs.js.map +0 -1
  70. package/dist/components/p-BHOJKe6j.js.map +0 -1
  71. package/dist/components/p-BTHdpYQl.js.map +0 -1
  72. package/dist/components/p-BWx-o392.js.map +0 -1
  73. package/dist/components/p-CIk9ZD0b.js.map +0 -1
  74. package/dist/components/p-CSka0gDO.js.map +0 -1
  75. package/dist/globuscomponents/p-7024cc46.entry.js.map +0 -1
@@ -12,13 +12,13 @@ export class GbTable {
12
12
  key: 'status',
13
13
  label: 'Status',
14
14
  cellComponent: 'gb-badge',
15
- cellProps: row => ({
16
- color: row.status === 'Completed' ? 'success' : 'error',
17
- type: 'badge_modern',
18
- size: 'sm',
19
- icon: 'dot',
20
- }),
21
- cellSlots: row => h("p", null, row.status),
15
+ cellProps: row => ({ color: row.status === 'Completed' ? 'success' : 'error', type: 'badge_modern', size: 'sm', icon: 'dot' }),
16
+ cellSlots: {
17
+ default: {
18
+ tag: 'p',
19
+ content: row => row.status, // Get status value from row
20
+ },
21
+ },
22
22
  mobile: { position: 'bottom_right' },
23
23
  },
24
24
  // {
@@ -36,7 +36,16 @@ export class GbTable {
36
36
  // },
37
37
  ];
38
38
  this.data = [
39
- { id: '#3001', date: 'Jan 1, 2022', name: 'Emma Johnson', role: 'Frontend Developer', level: 'Today', customer: 'John Doe', amount: '$120.00', status: 'Completed' },
39
+ {
40
+ id: '#3001',
41
+ date: 'Jan 1, 2022',
42
+ name: 'Emma Johnson',
43
+ role: 'Frontend Developer',
44
+ level: 'Today',
45
+ customer: 'John Doe',
46
+ amount: '$120.00',
47
+ status: 'Completed',
48
+ },
40
49
  { id: '#3002', date: 'Jan 2, 2022', name: 'Liam Smith', role: 'Backend Developer', level: 'Today', customer: 'Sarah Wilson', amount: '$85.50', status: 'Pending' },
41
50
  { id: '#3003', date: 'Jan 3, 2022', name: 'Olivia Brown', role: 'UI Designer', level: 'Today', customer: 'Michael Lee', amount: '$230.75', status: 'Cancelled' },
42
51
  { id: '#3004', date: 'Jan 4, 2022', name: 'Noah Davis', role: 'DevOps Engineer', level: 'Today', customer: 'Emily Clark', amount: '$59.99', status: 'Completed' },
@@ -76,45 +85,108 @@ export class GbTable {
76
85
  showSearch: true,
77
86
  showExport: true,
78
87
  showRefreshButton: true,
88
+ datePickerMode: 'single',
79
89
  };
80
90
  this.paginationConfig = {
91
+ paginationMode: 'internal',
81
92
  entriesDropdownMenuPosition: 'top',
93
+ currentPage: 1,
94
+ pageSize: 10,
95
+ totalItems: null,
96
+ };
97
+ this.emptyStateConfig = {
98
+ mainText: 'No data available',
99
+ supportingText: 'Try adjusting your filters or check back later.',
100
+ color: 'gray',
101
+ illustrationIcon: 'assets/alert-circle.svg',
102
+ theme: 'light',
82
103
  };
83
104
  this.showActionsColumn = true;
84
- this.rowActions = [{ label: 'View', action: 'view', disabled: true }];
105
+ this.rowActions = [
106
+ { label: '', action: '', icon: 'assets/more-horizontal.svg', type: 'dropdown' },
107
+ // { label: 'View Details', action: 'view_details', icon: 'assets/view.svg', type: 'button' },
108
+ // { label: 'Edit', action: 'edit', icon: 'assets/pencil-edit-01.svg', type: 'button' },
109
+ ];
110
+ this.dropdownOptions = [
111
+ { label: 'View', action: 'view', icon: 'assets/view.svg', disabled: false },
112
+ { label: 'Edit', action: 'edit', icon: 'assets/pencil-edit-01.svg', disabled: false },
113
+ { label: 'Delete', action: 'delete', icon: 'assets/delete-02.svg', disabled: true },
114
+ ];
85
115
  this.stickyFirstColumn = true;
86
116
  this.stickyLastColumn = true;
87
117
  this.actionsType = 'none';
88
- this.showCheckbox = true;
89
- this.paginationMode = 'internal';
90
- this.currentPage = 1;
91
- this.pageSize = 10;
118
+ this.showCheckbox = false;
119
+ // @Prop({ mutable: true }) currentPage?: number = 1;
120
+ // @Prop() pageSize: number = 10;
121
+ // @Prop() totalItems?: number;
92
122
  this.internalCurrentPage = 1;
123
+ this.internalPageSize = 10;
93
124
  this.openRowIndex = null;
94
125
  this.sortDirection = 'asc';
95
126
  this.selectedRowIds = new Set();
96
127
  this.breakpoint = 'desktop';
97
128
  this.isMobile = false;
129
+ this.isScrollable = false;
98
130
  this.actionButtonRefs = [];
131
+ this.handlePageChange = ({ detail }) => {
132
+ const { pageNumber, pageSize } = detail;
133
+ if (this.paginationConfig.paginationMode === 'internal') {
134
+ this.internalCurrentPage = pageNumber;
135
+ this.internalPageSize = pageSize;
136
+ }
137
+ else {
138
+ this.pageItemSelected.emit(detail);
139
+ }
140
+ };
99
141
  }
100
- componentWillLoad() {
142
+ componentWillRender() {
101
143
  this.checkViewport();
102
- window.addEventListener('resize', this.checkViewport);
144
+ window.addEventListener('resize', this.checkViewport.bind(this));
145
+ }
146
+ componentDidRender() {
147
+ requestAnimationFrame(() => this.checkScrollability());
103
148
  }
104
149
  checkViewport() {
105
150
  this.isMobile = window.innerWidth <= 768;
151
+ this.checkScrollability();
152
+ }
153
+ checkScrollability() {
154
+ if (!this.scrollContainer)
155
+ return;
156
+ const { scrollWidth, clientWidth } = this.scrollContainer;
157
+ const newScrollable = scrollWidth > clientWidth;
158
+ if (newScrollable !== this.isScrollable) {
159
+ this.isScrollable = newScrollable; // only update if different
160
+ }
106
161
  }
107
162
  handleAction(action, row) {
108
163
  this.rowActionClick.emit({ action, row });
109
164
  }
110
165
  renderCell(col, row) {
166
+ var _a, _b, _c;
111
167
  if (col.cellComponent) {
112
168
  const Tag = col.cellComponent;
113
169
  // resolve props
114
170
  const props = typeof col.cellProps === 'function' ? col.cellProps(row) : col.cellProps || {};
115
- // resolve slots
116
- const slots = typeof col.cellSlots === 'function' ? col.cellSlots(row) : row.status;
117
- return h(Tag, props, slots);
171
+ // resolve default slot content
172
+ let defaultSlotContent = null;
173
+ if ((_b = (_a = col.cellSlots) === null || _a === void 0 ? void 0 : _a.default) === null || _b === void 0 ? void 0 : _b.content) {
174
+ const content = col.cellSlots.default.content(row);
175
+ const slotTag = col.cellSlots.default.tag;
176
+ defaultSlotContent = slotTag ? h(slotTag, {}, content) : content;
177
+ }
178
+ // resolve named slots
179
+ const namedSlotElements = [];
180
+ if ((_c = col.cellSlots) === null || _c === void 0 ? void 0 : _c.named) {
181
+ for (const [slotName, slotConfig] of Object.entries(col.cellSlots.named)) {
182
+ const content = slotConfig.content(row);
183
+ const element = h(slotConfig.tag, { slot: slotName }, content);
184
+ namedSlotElements.push(element);
185
+ }
186
+ }
187
+ // render component with slots
188
+ const allChildren = [defaultSlotContent, ...namedSlotElements].filter(child => child != null);
189
+ return h(Tag, props, allChildren.length > 0 ? allChildren : undefined);
118
190
  }
119
191
  return h("p", { class: "body_text text-sm-regular" }, row[col.key]);
120
192
  }
@@ -212,21 +284,22 @@ export class GbTable {
212
284
  this.selectionChanged.emit(selected);
213
285
  }
214
286
  get displayedData() {
215
- if (this.paginationMode === 'external') {
287
+ if (!this.paginationConfig) {
216
288
  return this.sortedData;
217
289
  }
218
- const start = (this.currentPage - 1) * this.pageSize;
219
- const end = start + this.pageSize;
290
+ if (this.paginationConfig.paginationMode === 'external') {
291
+ return this.sortedData; // parent already paginated it
292
+ }
293
+ const start = (this.internalCurrentPage - 1) * this.internalPageSize;
294
+ const end = start + this.internalPageSize;
220
295
  return this.sortedData.slice(start, end);
221
296
  }
222
- handlePageChange({ detail }) {
223
- if (this.paginationMode === 'internal') {
224
- this.currentPage = detail.pageNumber;
225
- this.pageSize = detail.pageSize;
226
- }
227
- else {
228
- this.pageItemSelected.emit(detail);
229
- }
297
+ get totalPages() {
298
+ if (!this.paginationConfig)
299
+ return 1;
300
+ const pageSize = this.paginationConfig.paginationMode === 'internal' ? this.internalPageSize : this.paginationConfig.pageSize;
301
+ const totalItems = this.paginationConfig.paginationMode === 'external' ? this.paginationConfig.totalItems : this.sortedData.length;
302
+ return Math.ceil(totalItems / pageSize);
230
303
  }
231
304
  onDataChange(newValue, _oldValue) {
232
305
  if (!newValue)
@@ -236,7 +309,7 @@ export class GbTable {
236
309
  onTotalItemsChange(newValue, _oldValue) {
237
310
  if (!newValue || newValue < 1)
238
311
  return;
239
- this.totalItems = Number(newValue);
312
+ this.paginationConfig.totalItems = Number(newValue);
240
313
  }
241
314
  renderHeaderIcons(col) {
242
315
  return (h(Fragment, null, col.sortable && (h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", style: {
@@ -258,8 +331,8 @@ export class GbTable {
258
331
  totalWidth += defaultColWidth;
259
332
  }
260
333
  });
261
- const tableStyle = this.columns.length > 5 ? { minWidth: `${totalWidth}px` } : {};
262
- return (h("div", { class: `table_scroll` }, h("table", { style: tableStyle }, h("thead", null, h("tr", { class: "table_head_row" }, this.showCheckbox && (h("th", { style: { width: '15px' }, class: {
334
+ // const tableStyle = this.columns.length > 5 ? { minWidth: `${totalWidth}px` } : {};
335
+ return (h("div", { class: `table_scroll`, ref: el => (this.scrollContainer = el) }, h("table", null, h("thead", null, h("tr", { class: "table_head_row" }, this.showCheckbox && (h("th", { style: { width: '15px' }, class: {
263
336
  sticky_left: this.stickyFirstColumn,
264
337
  } }, h("gb-checkbox", { type: "checkbox", checked: this.allSelected, indeterminate: this.isIndeterminate, size: "sm", onClick: () => this.toggleAll() }))), this.columns.map((col, index) => {
265
338
  var _a;
@@ -268,13 +341,25 @@ export class GbTable {
268
341
  table_header: true,
269
342
  sticky_left: this.stickyFirstColumn && index === 0,
270
343
  sortable: col.sortable,
344
+ has_border: this.isScrollable,
271
345
  } }, h("div", { class: `table_head_content align-${align}` }, align === 'right' && h("div", { class: "table_head_icons" }, this.renderHeaderIcons(col)), h("p", { class: `head_text text-xs-medium` }, col.label), align === 'left' && h("div", { class: "table_head_icons" }, this.renderHeaderIcons(col)))));
272
346
  }), this.showActionsColumn && (h("th", { class: {
347
+ actions_cell: true,
273
348
  sticky_right: this.stickyLastColumn,
274
- }, style: { width: '50px' } }, h("div", { class: "empty_div" }))))), h("tbody", null, this.displayedData.map((row, rowIndex) => (h("tr", { class: "table_body" }, h("td", { class: "table_detail", style: { width: '50px' } }, h("gb-checkbox", { type: "checkbox", checked: this.selectedRowIds.has(row.id), indeterminate: false, size: "sm", onClick: () => this.toggleRow(row) })), this.columns.map((col, index) => (h("td", { style: { textAlign: col.align || 'left' }, class: `table_detail ${this.stickyFirstColumn && index === 0 ? 'sticky_left' : ''}` }, this.renderCell(col, row)))), this.showActionsColumn && (h("td", { style: { width: '50px' }, class: `table_detail actions-cell ${this.stickyLastColumn ? 'sticky_right' : ''}` }, h(Fragment, null, h("gb-button", { id: `gb-table-trigger-${rowIndex}`, ref: el => (this.actionButtonRefs[rowIndex] = el), class: "dropdown_button", hierarchy: "tertiary_gray", size: "sm", icon: "only", iconLeading: true, iconLeadingSwap: "assets/more-horizontal.svg", onClick: () => this.toggleDropdown(rowIndex) }), this.openRowIndex === rowIndex && (h("gb-portal", { "anchor-id": `gb-table-trigger-${rowIndex}`, placement: "bottom-end", anchorEl: this.currentAnchorEl, open: true }, h("div", { class: "dropdown_wrapper" }, this.rowActions.map(action => (h("gb-input-dropdown-menu-item", { type: "default", state: action.disabled ? StateEnum.Disabled : StateEnum.Default, "icon-leading": action.icon ? true : false, "icon-leading-swap": action.icon, onClick: () => {
349
+ has_border: this.isScrollable,
350
+ } }, h("div", { class: "empty_div" }))))), h("tbody", null, this.displayedData.map((row, rowIndex) => (h("tr", { class: "table_body" }, this.showCheckbox && (h("td", { class: "table_detail", style: { width: '50px' } }, h("gb-checkbox", { type: "checkbox", checked: this.selectedRowIds.has(row.id), indeterminate: false, size: "sm", onClick: () => this.toggleRow(row) }))), this.columns.map((col, index) => (h(Fragment, null, h("td", { style: { textAlign: col.align || 'left' }, class: `table_detail ${this.stickyFirstColumn && index === 0 ? 'sticky_left' : ''} ${this.isScrollable ? 'has_border' : ''}` }, this.renderCell(col, row))))), this.showActionsColumn && (h("td", { class: { table_detail: true, actions_cell: true, sticky_right: this.stickyLastColumn, has_border: this.isScrollable }, style: { width: '50px' } }, h(Fragment, null, h("div", { class: "action_buttons" }, this.rowActions.map(action => (h(Fragment, null, action.type === 'dropdown' ? (h("gb-button", { id: `gb-table-trigger-${rowIndex}`, ref: el => (this.actionButtonRefs[rowIndex] = el), class: "dropdown_button", hierarchy: "tertiary_gray", size: "sm", icon: "only", iconLeading: true, iconLeadingSwap: "assets/more-horizontal.svg", onClick: () => this.toggleDropdown(rowIndex) })) : (h("gb-button", { hierarchy: "tertiary_gray", size: "sm", icon: "only", iconLeading: true, iconLeadingSwap: action.icon, onClick: () => this.handleAction(action.action, row) })))))), h(Fragment, null, this.openRowIndex === rowIndex && (h("gb-portal", { "anchor-id": `gb-table-trigger-${rowIndex}`, placement: "bottom-end", anchorEl: this.currentAnchorEl, open: true }, h("div", { class: "dropdown_wrapper" }, this.dropdownOptions.map(action => (
351
+ // <gb-input-dropdown-menu-item
352
+ // type="default"
353
+ // state={action.disabled ? StateEnum.Disabled : StateEnum.Default}
354
+ // icon-leading={action.icon ? true : false}
355
+ // icon-leading-swap={action.icon}
356
+ // >
357
+ // <p slot="name">{action.label}</p>
358
+ // </gb-input-dropdown-menu-item>
359
+ h("gb-dropdown-items-with-shortcut", { icon: action.icon ? true : false, state: action.disabled ? StateEnum.Disabled : StateEnum.Default, label: action.label, "icon-src": action.icon, onClick: () => {
275
360
  this.handleAction(action.action, row);
276
361
  this.openRowIndex = null;
277
- } }, h("p", { slot: "name" }, action.label)))))))))))))))));
362
+ } })))))))))))))))));
278
363
  }
279
364
  validateMobilePositions() {
280
365
  const positions = this.columns.map(c => { var _a; return (_a = c.mobile) === null || _a === void 0 ? void 0 : _a.position; }).filter(Boolean);
@@ -289,18 +374,20 @@ export class GbTable {
289
374
  const topRight = this.columns.find(c => { var _a; return ((_a = c.mobile) === null || _a === void 0 ? void 0 : _a.position) === 'top_right'; });
290
375
  const bottomLeft = this.columns.find(c => { var _a; return ((_a = c.mobile) === null || _a === void 0 ? void 0 : _a.position) === 'bottom_left'; });
291
376
  const bottomRight = this.columns.find(c => { var _a; return ((_a = c.mobile) === null || _a === void 0 ? void 0 : _a.position) === 'bottom_right'; });
292
- return (h("div", { class: "mobile-card" }, h("div", { class: "mobile-row mobile-top" }, h("div", { class: "mobile-cell" }, topLeft && this.renderCell(topLeft, row)), h("div", { class: "mobile-cell right" }, topRight && this.renderCell(topRight, row))), h("div", { class: "mobile-row mobile-bottom" }, h("div", { class: "mobile-cell" }, bottomLeft && this.renderCell(bottomLeft, row)), bottomRight && this.renderCell(bottomRight, row))));
377
+ return (h("div", { class: "mobile_card_wrapper", style: { paddingLeft: this.showCheckbox ? 'var(--spacing-4)' : '' } }, this.showCheckbox && (h("gb-checkbox", { style: { paddingTop: 'var(--spacing-6)' }, type: "checkbox", checked: this.selectedRowIds.has(row.id), indeterminate: false, size: "sm", onClick: () => this.toggleRow(row) })), h("div", { class: "mobile-card" }, h("div", { class: "mobile-row mobile-top" }, h("div", { class: "mobile-cell" }, h("p", { class: "top_left_text text-md-regular" }, topLeft && row[topLeft.key])), h("div", { class: "mobile-cell right" }, h("p", { class: "top_right_text text-md-semi-bold" }, topRight && row[topRight.key]))), h("div", { class: "mobile-row mobile-bottom" }, h("div", { class: "mobile-cell" }, h("p", { class: "bottom_left_text text-sm-regular" }, bottomLeft && row[bottomLeft.key])), h("div", { class: "mobile-cell right" }, bottomRight && this.renderCell(bottomRight, row))))));
293
378
  })));
294
379
  }
295
- emitSearchValue({ detail }) {
296
- this.inputValueChanged.emit(detail);
380
+ emitSearchValue(detail) {
381
+ this.inputValueChanged.emit(detail.detail);
382
+ }
383
+ emitDateChange(detail) {
384
+ this.dateChange.emit(detail.detail);
297
385
  }
298
386
  disconnectedCallback() {
299
387
  window.removeEventListener('resize', this.checkViewport);
300
388
  }
301
389
  render() {
302
- const totalPages = this.paginationMode === 'internal' ? Math.ceil(this.sortedData.length / this.pageSize) : Math.ceil((this.totalItems || 0) / this.pageSize);
303
- return (h("div", { key: '499bac31da3885b57d9469666f921c78978ec8ff', class: `table_wrapper` }, h("gb-table-header", { key: 'e629b21f83e27889f453f77cf0e2402eb5f552df', "table-heading": this.tableHeaderConfig.tableHeading, "table-heading-label": this.tableHeaderConfig.tableHeadingLabel, "show-search": this.tableHeaderConfig.showSearch, "show-date-filter": this.tableHeaderConfig.showDateFilter, "show-filter": this.tableHeaderConfig.showFilter, "show-export": this.tableHeaderConfig.showExport, "show-column-options": this.tableHeaderConfig.showColumnOptions, "show-refresh-button": this.tableHeaderConfig.showRefreshButton, onInputValueChanged: this.emitSearchValue.bind(this) }), h(Fragment, null, this.isMobile ? this.renderMobileView() : this.renderDesktopView()), h("gb-pagination", { key: 'e808a7c942fefd7b1c70707315a50926b841aee5', "entries-dropdown-menu-position": this.paginationConfig.entriesDropdownMenuPosition, "page-size": this.pageSize, "current-page": this.paginationMode === 'internal' ? this.internalCurrentPage : this.currentPage, "total-pages": totalPages, onPageItemSelected: this.handlePageChange.bind(this) })));
390
+ return (h("div", { key: '4cce79da07cb105881c3ced72db8b67f8a3fde37', class: `table_wrapper` }, h("gb-table-header", { key: '936913895c8103d32047aa6a4c9084fc5fd40516', mode: this.tableHeaderConfig.datePickerMode, "table-heading": this.tableHeaderConfig.tableHeading, "table-heading-label": this.tableHeaderConfig.tableHeadingLabel, "show-search": this.tableHeaderConfig.showSearch, "show-date-filter": this.tableHeaderConfig.showDateFilter, "show-filter": this.tableHeaderConfig.showFilter, "show-export": this.tableHeaderConfig.showExport, "show-column-options": this.tableHeaderConfig.showColumnOptions, "show-refresh-button": this.tableHeaderConfig.showRefreshButton, onInputValueChanged: this.emitSearchValue.bind(this), onDateChange: this.emitDateChange.bind(this) }), this.data.length === 0 ? (h("div", { class: "empty_state_wrapper" }, h("gb-empty-state", { size: "sm", "main-text": this.emptyStateConfig.mainText, "supporting-text": this.emptyStateConfig.supportingText, color: this.emptyStateConfig.color, theme: this.emptyStateConfig.theme, "primary-button-icon-leading-swap": "assets/plus.svg", "illustration-icon": this.emptyStateConfig.illustrationIcon, background: true, "background-type": "grid", icon: "illustration", "illustration-style": "cloud" }))) : (h(Fragment, null, this.isMobile ? this.renderMobileView() : this.renderDesktopView())), this.paginationConfig && this.data.length > 0 && (h("gb-pagination", { key: '49889c14f6f7d649fda7ec0356f892c1e003d50f', "entries-dropdown-menu-position": this.paginationConfig.entriesDropdownMenuPosition, "page-size": this.paginationConfig.pageSize, "current-page": this.paginationConfig.paginationMode === 'internal' ? this.internalCurrentPage : this.paginationConfig.currentPage, "total-pages": this.totalPages, onPageItemSelected: this.handlePageChange.bind(this) }))));
304
391
  }
305
392
  static get is() { return "gb-table"; }
306
393
  static get encapsulation() { return "shadow"; }
@@ -338,7 +425,7 @@ export class GbTable {
338
425
  },
339
426
  "getter": false,
340
427
  "setter": false,
341
- "defaultValue": "[\r\n { key: 'id', label: '#', width: '70px', sortable: true, sortType: 'string', mobile: { position: 'top_left' } },\r\n { key: 'date', label: 'Date', mobile: { position: 'bottom_left' } },\r\n { key: 'name', label: 'Name', sortable: true, sortType: 'string', helpIcon: true, mobile: { position: 'top_right' } },\r\n { key: 'role', label: 'Role' },\r\n { key: 'amount', label: 'Amount', align: 'right', sortable: true, sortType: 'number' },\r\n {\r\n key: 'status',\r\n label: 'Status',\r\n cellComponent: 'gb-badge',\r\n cellProps: row => ({\r\n color: row.status === 'Completed' ? 'success' : 'error',\r\n type: 'badge_modern',\r\n size: 'sm',\r\n icon: 'dot',\r\n }),\r\n cellSlots: row => <p>{row.status}</p>,\r\n mobile: { position: 'bottom_right' },\r\n },\r\n // {\r\n // key: '',\r\n // label: '',\r\n // cellComponent: 'gb-button',\r\n // width: '50px',\r\n // cellProps: () => ({\r\n // hierarchy: 'tertiary_gray',\r\n // size: 'sm',\r\n // icon: 'only',\r\n // iconLeading: true,\r\n // iconLeadingSwap: 'assets/more-horizontal.svg',\r\n // }),\r\n // },\r\n ]"
428
+ "defaultValue": "[\r\n { key: 'id', label: '#', width: '70px', sortable: true, sortType: 'string', mobile: { position: 'top_left' } },\r\n { key: 'date', label: 'Date', mobile: { position: 'bottom_left' } },\r\n { key: 'name', label: 'Name', sortable: true, sortType: 'string', helpIcon: true, mobile: { position: 'top_right' } },\r\n { key: 'role', label: 'Role' },\r\n { key: 'amount', label: 'Amount', align: 'right', sortable: true, sortType: 'number' },\r\n {\r\n key: 'status',\r\n label: 'Status',\r\n cellComponent: 'gb-badge',\r\n cellProps: row => ({ color: row.status === 'Completed' ? 'success' : 'error', type: 'badge_modern', size: 'sm', icon: 'dot' }),\r\n cellSlots: {\r\n default: {\r\n tag: 'p',\r\n content: row => row.status, // Get status value from row\r\n },\r\n },\r\n mobile: { position: 'bottom_right' },\r\n },\r\n // {\r\n // key: '',\r\n // label: '',\r\n // cellComponent: 'gb-button',\r\n // width: '50px',\r\n // cellProps: () => ({\r\n // hierarchy: 'tertiary_gray',\r\n // size: 'sm',\r\n // icon: 'only',\r\n // iconLeading: true,\r\n // iconLeadingSwap: 'assets/more-horizontal.svg',\r\n // }),\r\n // },\r\n ]"
342
429
  },
343
430
  "data": {
344
431
  "type": "unknown",
@@ -356,14 +443,14 @@ export class GbTable {
356
443
  },
357
444
  "getter": false,
358
445
  "setter": false,
359
- "defaultValue": "[\r\n { id: '#3001', date: 'Jan 1, 2022', name: 'Emma Johnson', role: 'Frontend Developer', level: 'Today', customer: 'John Doe', amount: '$120.00', status: 'Completed' },\r\n { id: '#3002', date: 'Jan 2, 2022', name: 'Liam Smith', role: 'Backend Developer', level: 'Today', customer: 'Sarah Wilson', amount: '$85.50', status: 'Pending' },\r\n { id: '#3003', date: 'Jan 3, 2022', name: 'Olivia Brown', role: 'UI Designer', level: 'Today', customer: 'Michael Lee', amount: '$230.75', status: 'Cancelled' },\r\n { id: '#3004', date: 'Jan 4, 2022', name: 'Noah Davis', role: 'DevOps Engineer', level: 'Today', customer: 'Emily Clark', amount: '$59.99', status: 'Completed' },\r\n { id: '#3005', date: 'Jan 5, 2022', name: 'Ava Martinez', role: 'Product Manager', level: 'Today', customer: 'Daniel Harris', amount: '$410.00', status: 'Pending' },\r\n { id: '#3006', date: 'Jan 6, 2022', name: 'William Garcia', role: 'QA Engineer', level: 'Today', customer: 'Sophia Lewis', amount: '$150.20', status: 'Completed' },\r\n { id: '#3007', date: 'Jan 7, 2022', name: 'Isabella Rodriguez', role: 'Business Analyst', level: 'Today', customer: 'James Walker', amount: '$78.40', status: 'Pending' },\r\n { id: '#3008', date: 'Jan 8, 2022', name: 'James Wilson', role: 'Fullstack Developer', level: 'Today', customer: 'Mia Hall', amount: '$300.00', status: 'Completed' },\r\n { id: '#3009', date: 'Jan 9, 2022', name: 'Sophia Anderson', role: 'UX Researcher', level: 'Today', customer: 'Benjamin Allen', amount: '$95.60', status: 'Cancelled' },\r\n { id: '#3010', date: 'Jan 10, 2022', name: 'Benjamin Thomas', role: 'Mobile Developer', level: 'Today', customer: 'Charlotte Young', amount: '$210.10', status: 'Completed' },\r\n { id: '#3011', date: 'Jan 11, 2022', name: 'Mia Taylor', role: 'Data Analyst', level: 'Today', customer: 'Lucas King', amount: '$180.00', status: 'Pending' },\r\n { id: '#3012', date: 'Jan 12, 2022', name: 'Lucas Moore', role: 'Cloud Engineer', level: 'Today', customer: 'Amelia Scott', amount: '$420.75', status: 'Completed' },\r\n { id: '#3013', date: 'Jan 13, 2022', name: 'Charlotte Jackson', role: 'Security Engineer', level: 'Today', customer: 'Elijah Green', amount: '$65.90', status: 'Cancelled' },\r\n { id: '#3014', date: 'Jan 14, 2022', name: 'Elijah Martin', role: 'Technical Lead', level: 'Today', customer: 'Harper Adams', amount: '$510.30', status: 'Completed' },\r\n { id: '#3015', date: 'Jan 15, 2022', name: 'Amelia Lee', role: 'Scrum Master', level: 'Today', customer: 'Alexander Baker', amount: '$99.99', status: 'Pending' },\r\n { id: '#3016', date: 'Jan 16, 2022', name: 'Harper Perez', role: 'Frontend Developer', level: 'Today', customer: 'Ella Nelson', amount: '$275.45', status: 'Completed' },\r\n { id: '#3017', date: 'Jan 17, 2022', name: 'Alexander White', role: 'Backend Developer', level: 'Today', customer: 'Matthew Carter', amount: '$340.00', status: 'Pending' },\r\n { id: '#3018', date: 'Jan 18, 2022', name: 'Ella Harris', role: 'UI Designer', level: 'Today', customer: 'Avery Mitchell', amount: '$88.80', status: 'Completed' },\r\n { id: '#3019', date: 'Jan 19, 2022', name: 'Matthew Clark', role: 'DevOps Engineer', level: 'Today', customer: 'Evelyn Perez', amount: '$190.25', status: 'Cancelled' },\r\n { id: '#3020', date: 'Jan 20, 2022', name: 'Avery Lewis', role: 'Product Manager', level: 'Today', customer: 'Henry Roberts', amount: '$600.00', status: 'Completed' },\r\n { id: '#3021', date: 'Jan 21, 2022', name: 'Evelyn Walker', role: 'QA Engineer', level: 'Today', customer: 'Luna Turner', amount: '$72.30', status: 'Pending' },\r\n { id: '#3022', date: 'Jan 22, 2022', name: 'Henry Hall', role: 'Business Analyst', level: 'Today', customer: 'Jack Phillips', amount: '$310.40', status: 'Completed' },\r\n { id: '#3023', date: 'Jan 23, 2022', name: 'Luna Allen', role: 'Fullstack Developer', level: 'Today', customer: 'Sofia Campbell', amount: '$145.00', status: 'Cancelled' },\r\n { id: '#3024', date: 'Jan 24, 2022', name: 'Jack Young', role: 'UX Researcher', level: 'Today', customer: 'David Parker', amount: '$260.70', status: 'Completed' },\r\n { id: '#3025', date: 'Jan 25, 2022', name: 'Sofia Hernandez', role: 'Mobile Developer', level: 'Today', customer: 'Grace Evans', amount: '$89.10', status: 'Pending' },\r\n { id: '#3026', date: 'Jan 26, 2022', name: 'David King', role: 'Data Analyst', level: 'Today', customer: 'Samuel Edwards', amount: '$410.90', status: 'Completed' },\r\n { id: '#3027', date: 'Jan 27, 2022', name: 'Grace Wright', role: 'Cloud Engineer', level: 'Today', customer: 'Chloe Collins', amount: '$130.55', status: 'Cancelled' },\r\n { id: '#3028', date: 'Jan 28, 2022', name: 'Samuel Scott', role: 'Security Engineer', level: 'Today', customer: 'Victoria Stewart', amount: '$555.00', status: 'Completed' },\r\n { id: '#3029', date: 'Jan 29, 2022', name: 'Chloe Green', role: 'Technical Lead', level: 'Today', customer: 'Nathan Morris', amount: '$205.25', status: 'Pending' },\r\n { id: '#3030', date: 'Jan 30, 2022', name: 'Nathan Adams', role: 'Scrum Master', level: 'Today', customer: 'Zoe Rogers', amount: '$320.80', status: 'Completed' },\r\n ]"
446
+ "defaultValue": "[\r\n {\r\n id: '#3001',\r\n date: 'Jan 1, 2022',\r\n name: 'Emma Johnson',\r\n role: 'Frontend Developer',\r\n level: 'Today',\r\n customer: 'John Doe',\r\n amount: '$120.00',\r\n status: 'Completed',\r\n },\r\n { id: '#3002', date: 'Jan 2, 2022', name: 'Liam Smith', role: 'Backend Developer', level: 'Today', customer: 'Sarah Wilson', amount: '$85.50', status: 'Pending' },\r\n { id: '#3003', date: 'Jan 3, 2022', name: 'Olivia Brown', role: 'UI Designer', level: 'Today', customer: 'Michael Lee', amount: '$230.75', status: 'Cancelled' },\r\n { id: '#3004', date: 'Jan 4, 2022', name: 'Noah Davis', role: 'DevOps Engineer', level: 'Today', customer: 'Emily Clark', amount: '$59.99', status: 'Completed' },\r\n { id: '#3005', date: 'Jan 5, 2022', name: 'Ava Martinez', role: 'Product Manager', level: 'Today', customer: 'Daniel Harris', amount: '$410.00', status: 'Pending' },\r\n { id: '#3006', date: 'Jan 6, 2022', name: 'William Garcia', role: 'QA Engineer', level: 'Today', customer: 'Sophia Lewis', amount: '$150.20', status: 'Completed' },\r\n { id: '#3007', date: 'Jan 7, 2022', name: 'Isabella Rodriguez', role: 'Business Analyst', level: 'Today', customer: 'James Walker', amount: '$78.40', status: 'Pending' },\r\n { id: '#3008', date: 'Jan 8, 2022', name: 'James Wilson', role: 'Fullstack Developer', level: 'Today', customer: 'Mia Hall', amount: '$300.00', status: 'Completed' },\r\n { id: '#3009', date: 'Jan 9, 2022', name: 'Sophia Anderson', role: 'UX Researcher', level: 'Today', customer: 'Benjamin Allen', amount: '$95.60', status: 'Cancelled' },\r\n { id: '#3010', date: 'Jan 10, 2022', name: 'Benjamin Thomas', role: 'Mobile Developer', level: 'Today', customer: 'Charlotte Young', amount: '$210.10', status: 'Completed' },\r\n { id: '#3011', date: 'Jan 11, 2022', name: 'Mia Taylor', role: 'Data Analyst', level: 'Today', customer: 'Lucas King', amount: '$180.00', status: 'Pending' },\r\n { id: '#3012', date: 'Jan 12, 2022', name: 'Lucas Moore', role: 'Cloud Engineer', level: 'Today', customer: 'Amelia Scott', amount: '$420.75', status: 'Completed' },\r\n { id: '#3013', date: 'Jan 13, 2022', name: 'Charlotte Jackson', role: 'Security Engineer', level: 'Today', customer: 'Elijah Green', amount: '$65.90', status: 'Cancelled' },\r\n { id: '#3014', date: 'Jan 14, 2022', name: 'Elijah Martin', role: 'Technical Lead', level: 'Today', customer: 'Harper Adams', amount: '$510.30', status: 'Completed' },\r\n { id: '#3015', date: 'Jan 15, 2022', name: 'Amelia Lee', role: 'Scrum Master', level: 'Today', customer: 'Alexander Baker', amount: '$99.99', status: 'Pending' },\r\n { id: '#3016', date: 'Jan 16, 2022', name: 'Harper Perez', role: 'Frontend Developer', level: 'Today', customer: 'Ella Nelson', amount: '$275.45', status: 'Completed' },\r\n { id: '#3017', date: 'Jan 17, 2022', name: 'Alexander White', role: 'Backend Developer', level: 'Today', customer: 'Matthew Carter', amount: '$340.00', status: 'Pending' },\r\n { id: '#3018', date: 'Jan 18, 2022', name: 'Ella Harris', role: 'UI Designer', level: 'Today', customer: 'Avery Mitchell', amount: '$88.80', status: 'Completed' },\r\n { id: '#3019', date: 'Jan 19, 2022', name: 'Matthew Clark', role: 'DevOps Engineer', level: 'Today', customer: 'Evelyn Perez', amount: '$190.25', status: 'Cancelled' },\r\n { id: '#3020', date: 'Jan 20, 2022', name: 'Avery Lewis', role: 'Product Manager', level: 'Today', customer: 'Henry Roberts', amount: '$600.00', status: 'Completed' },\r\n { id: '#3021', date: 'Jan 21, 2022', name: 'Evelyn Walker', role: 'QA Engineer', level: 'Today', customer: 'Luna Turner', amount: '$72.30', status: 'Pending' },\r\n { id: '#3022', date: 'Jan 22, 2022', name: 'Henry Hall', role: 'Business Analyst', level: 'Today', customer: 'Jack Phillips', amount: '$310.40', status: 'Completed' },\r\n { id: '#3023', date: 'Jan 23, 2022', name: 'Luna Allen', role: 'Fullstack Developer', level: 'Today', customer: 'Sofia Campbell', amount: '$145.00', status: 'Cancelled' },\r\n { id: '#3024', date: 'Jan 24, 2022', name: 'Jack Young', role: 'UX Researcher', level: 'Today', customer: 'David Parker', amount: '$260.70', status: 'Completed' },\r\n { id: '#3025', date: 'Jan 25, 2022', name: 'Sofia Hernandez', role: 'Mobile Developer', level: 'Today', customer: 'Grace Evans', amount: '$89.10', status: 'Pending' },\r\n { id: '#3026', date: 'Jan 26, 2022', name: 'David King', role: 'Data Analyst', level: 'Today', customer: 'Samuel Edwards', amount: '$410.90', status: 'Completed' },\r\n { id: '#3027', date: 'Jan 27, 2022', name: 'Grace Wright', role: 'Cloud Engineer', level: 'Today', customer: 'Chloe Collins', amount: '$130.55', status: 'Cancelled' },\r\n { id: '#3028', date: 'Jan 28, 2022', name: 'Samuel Scott', role: 'Security Engineer', level: 'Today', customer: 'Victoria Stewart', amount: '$555.00', status: 'Completed' },\r\n { id: '#3029', date: 'Jan 29, 2022', name: 'Chloe Green', role: 'Technical Lead', level: 'Today', customer: 'Nathan Morris', amount: '$205.25', status: 'Pending' },\r\n { id: '#3030', date: 'Jan 30, 2022', name: 'Nathan Adams', role: 'Scrum Master', level: 'Today', customer: 'Zoe Rogers', amount: '$320.80', status: 'Completed' },\r\n ]"
360
447
  },
361
448
  "tableHeaderConfig": {
362
449
  "type": "unknown",
363
450
  "mutable": false,
364
451
  "complexType": {
365
- "original": "{\r\n tableHeading: boolean;\r\n tableHeadingLabel: string;\r\n showDateFilter: boolean;\r\n showFilter: boolean;\r\n showColumnOptions: boolean;\r\n showSearch: boolean;\r\n showExport: boolean;\r\n showRefreshButton: boolean;\r\n }",
366
- "resolved": "{ tableHeading: boolean; tableHeadingLabel: string; showDateFilter: boolean; showFilter: boolean; showColumnOptions: boolean; showSearch: boolean; showExport: boolean; showRefreshButton: boolean; }",
452
+ "original": "{\r\n tableHeading: boolean;\r\n tableHeadingLabel: string;\r\n showDateFilter: boolean;\r\n showFilter: boolean;\r\n showColumnOptions: boolean;\r\n showSearch: boolean;\r\n showExport: boolean;\r\n showRefreshButton: boolean;\r\n datePickerMode: 'single' | 'range';\r\n }",
453
+ "resolved": "{ tableHeading: boolean; tableHeadingLabel: string; showDateFilter: boolean; showFilter: boolean; showColumnOptions: boolean; showSearch: boolean; showExport: boolean; showRefreshButton: boolean; datePickerMode: \"single\" | \"range\"; }",
367
454
  "references": {}
368
455
  },
369
456
  "required": false,
@@ -374,14 +461,14 @@ export class GbTable {
374
461
  },
375
462
  "getter": false,
376
463
  "setter": false,
377
- "defaultValue": "{\r\n tableHeading: false,\r\n tableHeadingLabel: 'Suspicious outflows',\r\n showDateFilter: true,\r\n showFilter: true,\r\n showColumnOptions: true,\r\n showSearch: true,\r\n showExport: true,\r\n showRefreshButton: true,\r\n }"
464
+ "defaultValue": "{\r\n tableHeading: false,\r\n tableHeadingLabel: 'Suspicious outflows',\r\n showDateFilter: true,\r\n showFilter: true,\r\n showColumnOptions: true,\r\n showSearch: true,\r\n showExport: true,\r\n showRefreshButton: true,\r\n datePickerMode: 'single',\r\n }"
378
465
  },
379
466
  "paginationConfig": {
380
- "type": "any",
467
+ "type": "unknown",
381
468
  "mutable": false,
382
469
  "complexType": {
383
- "original": "any",
384
- "resolved": "any",
470
+ "original": "{\r\n paginationMode: 'internal' | 'external';\r\n entriesDropdownMenuPosition: 'top' | 'bottom';\r\n currentPage?: number;\r\n pageSize?: number;\r\n totalItems?: number;\r\n }",
471
+ "resolved": "{ paginationMode: \"external\" | \"internal\"; entriesDropdownMenuPosition: \"top\" | \"bottom\"; currentPage?: number; pageSize?: number; totalItems?: number; }",
385
472
  "references": {}
386
473
  },
387
474
  "required": false,
@@ -392,9 +479,36 @@ export class GbTable {
392
479
  },
393
480
  "getter": false,
394
481
  "setter": false,
395
- "reflect": false,
396
- "attribute": "pagination-config",
397
- "defaultValue": "{\r\n entriesDropdownMenuPosition: 'top',\r\n }"
482
+ "defaultValue": "{\r\n paginationMode: 'internal',\r\n entriesDropdownMenuPosition: 'top',\r\n currentPage: 1,\r\n pageSize: 10,\r\n totalItems: null,\r\n }"
483
+ },
484
+ "emptyStateConfig": {
485
+ "type": "unknown",
486
+ "mutable": false,
487
+ "complexType": {
488
+ "original": "{ mainText: string; supportingText?: string; color?: GeneralColors; illustrationIcon?: string; theme?: ThemeTypes; primaryButtonIcon?: string }",
489
+ "resolved": "{ mainText: string; supportingText?: string; color?: GeneralColors; illustrationIcon?: string; theme?: ThemeTypes; primaryButtonIcon?: string; }",
490
+ "references": {
491
+ "GeneralColors": {
492
+ "location": "import",
493
+ "path": "../../models/reusableModels",
494
+ "id": "src/models/reusableModels.ts::GeneralColors"
495
+ },
496
+ "ThemeTypes": {
497
+ "location": "import",
498
+ "path": "../../models/reusableModels",
499
+ "id": "src/models/reusableModels.ts::ThemeTypes"
500
+ }
501
+ }
502
+ },
503
+ "required": false,
504
+ "optional": false,
505
+ "docs": {
506
+ "tags": [],
507
+ "text": ""
508
+ },
509
+ "getter": false,
510
+ "setter": false,
511
+ "defaultValue": "{\r\n mainText: 'No data available',\r\n supportingText: 'Try adjusting your filters or check back later.',\r\n color: 'gray',\r\n illustrationIcon: 'assets/alert-circle.svg',\r\n theme: 'light',\r\n }"
398
512
  },
399
513
  "showActionsColumn": {
400
514
  "type": "boolean",
@@ -431,6 +545,30 @@ export class GbTable {
431
545
  }
432
546
  },
433
547
  "required": false,
548
+ "optional": false,
549
+ "docs": {
550
+ "tags": [],
551
+ "text": ""
552
+ },
553
+ "getter": false,
554
+ "setter": false,
555
+ "defaultValue": "[\r\n { label: '', action: '', icon: 'assets/more-horizontal.svg', type: 'dropdown' },\r\n // { label: 'View Details', action: 'view_details', icon: 'assets/view.svg', type: 'button' },\r\n // { label: 'Edit', action: 'edit', icon: 'assets/pencil-edit-01.svg', type: 'button' },\r\n ]"
556
+ },
557
+ "dropdownOptions": {
558
+ "type": "unknown",
559
+ "mutable": false,
560
+ "complexType": {
561
+ "original": "DropdownOption[]",
562
+ "resolved": "DropdownOption[]",
563
+ "references": {
564
+ "DropdownOption": {
565
+ "location": "import",
566
+ "path": "../../models/reusableModels",
567
+ "id": "src/models/reusableModels.ts::DropdownOption"
568
+ }
569
+ }
570
+ },
571
+ "required": false,
434
572
  "optional": true,
435
573
  "docs": {
436
574
  "tags": [],
@@ -438,7 +576,7 @@ export class GbTable {
438
576
  },
439
577
  "getter": false,
440
578
  "setter": false,
441
- "defaultValue": "[{ label: 'View', action: 'view', disabled: true }]"
579
+ "defaultValue": "[\r\n { label: 'View', action: 'view', icon: 'assets/view.svg', disabled: false },\r\n { label: 'Edit', action: 'edit', icon: 'assets/pencil-edit-01.svg', disabled: false },\r\n { label: 'Delete', action: 'delete', icon: 'assets/delete-02.svg', disabled: true },\r\n ]"
442
580
  },
443
581
  "stickyFirstColumn": {
444
582
  "type": "boolean",
@@ -518,98 +656,21 @@ export class GbTable {
518
656
  "setter": false,
519
657
  "reflect": false,
520
658
  "attribute": "show-checkbox",
521
- "defaultValue": "true"
522
- },
523
- "paginationMode": {
524
- "type": "string",
525
- "mutable": false,
526
- "complexType": {
527
- "original": "'internal' | 'external'",
528
- "resolved": "\"external\" | \"internal\"",
529
- "references": {}
530
- },
531
- "required": false,
532
- "optional": false,
533
- "docs": {
534
- "tags": [],
535
- "text": ""
536
- },
537
- "getter": false,
538
- "setter": false,
539
- "reflect": false,
540
- "attribute": "pagination-mode",
541
- "defaultValue": "'internal'"
542
- },
543
- "currentPage": {
544
- "type": "number",
545
- "mutable": true,
546
- "complexType": {
547
- "original": "number",
548
- "resolved": "number",
549
- "references": {}
550
- },
551
- "required": false,
552
- "optional": true,
553
- "docs": {
554
- "tags": [],
555
- "text": ""
556
- },
557
- "getter": false,
558
- "setter": false,
559
- "reflect": false,
560
- "attribute": "current-page",
561
- "defaultValue": "1"
562
- },
563
- "pageSize": {
564
- "type": "number",
565
- "mutable": false,
566
- "complexType": {
567
- "original": "number",
568
- "resolved": "number",
569
- "references": {}
570
- },
571
- "required": false,
572
- "optional": false,
573
- "docs": {
574
- "tags": [],
575
- "text": ""
576
- },
577
- "getter": false,
578
- "setter": false,
579
- "reflect": false,
580
- "attribute": "page-size",
581
- "defaultValue": "10"
582
- },
583
- "totalItems": {
584
- "type": "number",
585
- "mutable": false,
586
- "complexType": {
587
- "original": "number",
588
- "resolved": "number",
589
- "references": {}
590
- },
591
- "required": false,
592
- "optional": true,
593
- "docs": {
594
- "tags": [],
595
- "text": ""
596
- },
597
- "getter": false,
598
- "setter": false,
599
- "reflect": false,
600
- "attribute": "total-items"
659
+ "defaultValue": "false"
601
660
  }
602
661
  };
603
662
  }
604
663
  static get states() {
605
664
  return {
606
665
  "internalCurrentPage": {},
666
+ "internalPageSize": {},
607
667
  "openRowIndex": {},
608
668
  "sortKey": {},
609
669
  "sortDirection": {},
610
670
  "selectedRowIds": {},
611
671
  "breakpoint": {},
612
- "isMobile": {}
672
+ "isMobile": {},
673
+ "isScrollable": {}
613
674
  };
614
675
  }
615
676
  static get events() {