@oscarpalmer/tabela 0.4.0 → 0.6.0

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 (79) hide show
  1. package/dist/components/body.component.js +33 -55
  2. package/dist/components/column.component.js +20 -25
  3. package/dist/components/footer.component.js +33 -34
  4. package/dist/components/header.component.js +21 -26
  5. package/dist/components/row.component.js +34 -36
  6. package/dist/helpers/dom.helpers.js +35 -30
  7. package/dist/index.js +5 -5
  8. package/dist/managers/column.manager.js +32 -0
  9. package/dist/managers/data.manager.js +30 -0
  10. package/dist/managers/row.manager.js +21 -0
  11. package/dist/managers/virtualization.manager.js +89 -85
  12. package/dist/models/body.model.js +0 -0
  13. package/dist/models/column.model.js +0 -1
  14. package/dist/models/data.model.js +0 -0
  15. package/dist/models/footer.model.js +0 -0
  16. package/dist/models/header.model.js +0 -0
  17. package/dist/models/tabela.options.js +0 -1
  18. package/dist/models/virtualization.model.js +0 -0
  19. package/dist/tabela.full.js +645 -0
  20. package/dist/tabela.js +45 -43
  21. package/package.json +22 -24
  22. package/src/components/body.component.ts +22 -51
  23. package/src/components/column.component.ts +14 -8
  24. package/src/components/footer.component.ts +18 -16
  25. package/src/components/header.component.ts +9 -15
  26. package/src/components/row.component.ts +39 -32
  27. package/src/helpers/dom.helpers.ts +50 -15
  28. package/src/index.ts +8 -1
  29. package/src/managers/column.manager.ts +65 -0
  30. package/src/managers/data.manager.ts +45 -0
  31. package/src/managers/row.manager.ts +32 -0
  32. package/src/managers/virtualization.manager.ts +101 -72
  33. package/src/models/body.model.ts +4 -0
  34. package/src/models/column.model.ts +1 -7
  35. package/src/models/data.model.ts +16 -0
  36. package/src/models/footer.model.ts +5 -0
  37. package/src/models/header.model.ts +4 -0
  38. package/src/models/tabela.options.ts +2 -0
  39. package/src/models/virtualization.model.ts +14 -0
  40. package/src/tabela.ts +65 -36
  41. package/types/components/body.component.d.ts +2 -13
  42. package/types/components/footer.component.d.ts +4 -7
  43. package/types/components/header.component.d.ts +4 -8
  44. package/types/components/row.component.d.ts +7 -7
  45. package/types/helpers/dom.helpers.d.ts +1 -0
  46. package/types/index.d.ts +4 -1
  47. package/types/managers/column.manager.d.ts +12 -0
  48. package/types/managers/data.manager.d.ts +11 -0
  49. package/types/managers/row.manager.d.ts +11 -0
  50. package/types/managers/virtualization.manager.d.ts +12 -12
  51. package/types/models/body.model.d.ts +4 -0
  52. package/types/models/data.model.d.ts +14 -0
  53. package/types/models/footer.model.d.ts +5 -0
  54. package/types/models/header.model.d.ts +4 -0
  55. package/types/models/tabela.options.d.ts +2 -0
  56. package/types/models/virtualization.model.d.ts +12 -0
  57. package/types/tabela.d.ts +19 -5
  58. package/dist/components/body.component.cjs +0 -58
  59. package/dist/components/column.component.cjs +0 -27
  60. package/dist/components/footer.component.cjs +0 -35
  61. package/dist/components/header.component.cjs +0 -28
  62. package/dist/components/row.component.cjs +0 -38
  63. package/dist/helpers/dom.helpers.cjs +0 -36
  64. package/dist/index.cjs +0 -5
  65. package/dist/managers/virtualization.manager.cjs +0 -88
  66. package/dist/models/column.model.cjs +0 -1
  67. package/dist/models/tabela.options.cjs +0 -1
  68. package/dist/tabela.cjs +0 -47
  69. package/types/components/body.component.d.cts +0 -98
  70. package/types/components/column.component.d.cts +0 -98
  71. package/types/components/footer.component.d.cts +0 -98
  72. package/types/components/header.component.d.cts +0 -98
  73. package/types/components/row.component.d.cts +0 -98
  74. package/types/helpers/dom.helpers.d.cts +0 -12
  75. package/types/index.d.cts +0 -99
  76. package/types/managers/virtualization.manager.d.cts +0 -98
  77. package/types/models/column.model.d.cts +0 -17
  78. package/types/models/tabela.options.d.cts +0 -18
  79. package/types/tabela.d.cts +0 -99
@@ -0,0 +1,14 @@
1
+ import type { Key, PlainObject } from '@oscarpalmer/atoms/models';
2
+ export type DataValues = {
3
+ keys: DataValuesKeys;
4
+ objects: DataValuesObjects;
5
+ };
6
+ type DataValuesKeys = {
7
+ active?: Key[];
8
+ original: Key[];
9
+ };
10
+ type DataValuesObjects = {
11
+ array: PlainObject[];
12
+ mapped: Map<Key, PlainObject>;
13
+ };
14
+ export {};
@@ -0,0 +1,5 @@
1
+ export type FooterElements = {
2
+ cells: HTMLDivElement[];
3
+ group: HTMLDivElement;
4
+ row: HTMLDivElement;
5
+ };
@@ -0,0 +1,4 @@
1
+ export type HeaderElements = {
2
+ group: HTMLDivElement;
3
+ row: HTMLDivElement;
4
+ };
@@ -3,5 +3,7 @@ import type { TabelaColumnOptions } from './column.model';
3
3
  export type TabelaOptions = {
4
4
  columns: TabelaColumnOptions[];
5
5
  data: PlainObject[];
6
+ key: string;
6
7
  label: string;
8
+ rowHeight: number;
7
9
  };
@@ -0,0 +1,12 @@
1
+ export type VirtualizationPool = {
2
+ cells: Record<string, HTMLDivElement[]>;
3
+ rows: HTMLDivElement[];
4
+ };
5
+ export type VirtualizationRange = {
6
+ end: number;
7
+ start: number;
8
+ };
9
+ export type VirtualizationState = {
10
+ active: boolean;
11
+ top: number;
12
+ };
package/types/tabela.d.ts CHANGED
@@ -1,14 +1,28 @@
1
1
  import { BodyComponent } from './components/body.component';
2
2
  import { FooterComponent } from './components/footer.component';
3
3
  import { HeaderComponent } from './components/header.component';
4
+ import { ColumnManager } from './managers/column.manager';
5
+ import { DataManager } from './managers/data.manager';
6
+ import { RowManager } from './managers/row.manager';
7
+ import { VirtualizationManager } from './managers/virtualization.manager';
4
8
  import type { TabelaOptions } from './models/tabela.options';
9
+ type Components = {
10
+ body: BodyComponent;
11
+ footer: FooterComponent;
12
+ header: HeaderComponent;
13
+ };
14
+ type Managers = {
15
+ columns: ColumnManager;
16
+ data: DataManager;
17
+ rows: RowManager;
18
+ virtualization: VirtualizationManager;
19
+ };
5
20
  export declare class Tabela {
6
21
  element: HTMLElement;
7
- readonly options: TabelaOptions;
8
- readonly body: BodyComponent;
9
- readonly footer: FooterComponent;
10
- readonly header: HeaderComponent;
22
+ readonly components: Components;
23
+ readonly key: string;
24
+ readonly managers: Managers;
11
25
  constructor(element: HTMLElement, options: TabelaOptions);
12
26
  destroy(): void;
13
27
  }
14
- export declare function tabela(element: HTMLElement, options: TabelaOptions): Tabela;
28
+ export {};
@@ -1,58 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const helpers_dom_helpers = require("../helpers/dom.helpers.cjs");
7
- const managers_virtualization_manager = require("../managers/virtualization.manager.cjs");
8
- const components_row_component = require("./row.component.cjs");
9
- function createFaker() {
10
- const element = document.createElement("div");
11
- element.style.height = "0";
12
- element.style.inset = "0 auto auto 0";
13
- element.style.opacity = "0";
14
- element.style.pointerEvents = "none";
15
- element.style.position = "absolute";
16
- element.style.width = "1px";
17
- return element;
18
- }
19
- class BodyComponent {
20
- constructor(tabela) {
21
- __publicField(this, "elements", {
22
- faker: createFaker(),
23
- group: void 0
24
- });
25
- __publicField(this, "rows", []);
26
- __publicField(this, "virtualization");
27
- this.tabela = tabela;
28
- const group = helpers_dom_helpers.createRowGroup(false);
29
- this.elements.group = group;
30
- this.virtualization = new managers_virtualization_manager.VirtualizationManager(this);
31
- group.className += " tabela__rowgroup-body";
32
- group.style.height = "100%";
33
- group.style.overflow = "auto";
34
- group.style.position = "relative";
35
- group.append(this.elements.faker);
36
- void this.addData(tabela.options.data).then(() => {
37
- this.virtualization.update(true);
38
- });
39
- }
40
- async addData(data) {
41
- const { length } = data;
42
- for (let index = 0; index < length; index += 1) {
43
- this.rows.push(new components_row_component.RowComponent(this.tabela, data[index]));
44
- }
45
- this.updateVirtualization();
46
- }
47
- destroy() {
48
- this.virtualization.destroy();
49
- this.elements.faker = void 0;
50
- this.elements.group = void 0;
51
- this.rows.length = 0;
52
- }
53
- updateVirtualization() {
54
- this.elements.faker.style.height = `${this.rows.length * 32}px`;
55
- this.virtualization.update(true);
56
- }
57
- }
58
- exports.BodyComponent = BodyComponent;
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- function createElement(title, width) {
7
- const cell = document.createElement("div");
8
- cell.className = "tabela__heading";
9
- cell.role = "columnheader";
10
- cell.style.width = `${width}px`;
11
- cell.textContent = title;
12
- return cell;
13
- }
14
- class ColumnComponent {
15
- constructor(tabela, options) {
16
- __publicField(this, "element");
17
- __publicField(this, "options");
18
- this.tabela = tabela;
19
- const width = Number.parseInt(getComputedStyle(tabela.element).fontSize, 10) * (options.width ?? options.title.length * 1.5);
20
- this.options = {
21
- ...options,
22
- width
23
- };
24
- this.element = createElement(options.title, width);
25
- }
26
- }
27
- exports.ColumnComponent = ColumnComponent;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const helpers_dom_helpers = require("../helpers/dom.helpers.cjs");
7
- class FooterComponent {
8
- constructor(tabela) {
9
- __publicField(this, "elements");
10
- this.tabela = tabela;
11
- const { group, row } = helpers_dom_helpers.createRowGroup();
12
- this.elements = {
13
- group,
14
- row,
15
- cells: []
16
- };
17
- group.className += " tabela__rowgroup-footer";
18
- row.className += " tabela__row-footer";
19
- const { columns } = tabela.header;
20
- const { length } = columns;
21
- for (let index = 0; index < length; index += 1) {
22
- const cell = helpers_dom_helpers.createCell(columns[index].options.width ?? 4, false);
23
- cell.className += " tabela__cell-footer";
24
- cell.innerHTML = "&nbsp;";
25
- this.elements.cells.push(cell);
26
- row.append(cell);
27
- }
28
- }
29
- destroy() {
30
- this.elements.cells = [];
31
- this.elements.group = void 0;
32
- this.elements.row = void 0;
33
- }
34
- }
35
- exports.FooterComponent = FooterComponent;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const helpers_dom_helpers = require("../helpers/dom.helpers.cjs");
7
- const components_column_component = require("./column.component.cjs");
8
- class HeaderComponent {
9
- constructor(tabela) {
10
- __publicField(this, "columns");
11
- __publicField(this, "elements");
12
- this.tabela = tabela;
13
- this.columns = tabela.options.columns.map(
14
- (column) => new components_column_component.ColumnComponent(tabela, column)
15
- );
16
- const { group, row } = helpers_dom_helpers.createRowGroup();
17
- this.elements = { group, row };
18
- group.className += " tabela__rowgroup-header";
19
- row.className += " tabela__row-header";
20
- row.append(...this.columns.map((column) => column.element));
21
- }
22
- destroy() {
23
- this.columns.length = 0;
24
- this.elements.group = void 0;
25
- this.elements.row = void 0;
26
- }
27
- }
28
- exports.HeaderComponent = HeaderComponent;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const helpers_dom_helpers = require("../helpers/dom.helpers.cjs");
7
- class RowComponent {
8
- constructor(tabela, data) {
9
- __publicField(this, "element");
10
- this.tabela = tabela;
11
- this.data = data;
12
- }
13
- remove(pool) {
14
- if (this.element != null) {
15
- this.element.innerHTML = "";
16
- pool.rows.push(this.element);
17
- this.element.remove();
18
- this.element = void 0;
19
- }
20
- }
21
- render(pool) {
22
- var _a, _b;
23
- const element = this.element ?? pool.rows.shift() ?? helpers_dom_helpers.createRow();
24
- this.element = element;
25
- element.innerHTML = "";
26
- const { tabela } = this;
27
- const { columns } = tabela.header;
28
- const { length } = columns;
29
- for (let index = 0; index < length; index += 1) {
30
- const { options } = columns[index];
31
- (_a = pool.cells)[_b = options.field] ?? (_a[_b] = []);
32
- const cell = pool.cells[columns[index].options.field].shift() ?? helpers_dom_helpers.createCell(options.width);
33
- cell.textContent = String(this.data[options.field]);
34
- element.append(cell);
35
- }
36
- }
37
- }
38
- exports.RowComponent = RowComponent;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- function createCell(width, body) {
4
- const cell = document.createElement("div");
5
- cell.className = "tabela__cell";
6
- cell.role = "cell";
7
- cell.style.width = `${width}px`;
8
- if (body ?? true) {
9
- cell.classList.add("tabela__cell-body");
10
- }
11
- return cell;
12
- }
13
- function createRowGroup(withRow) {
14
- const group = document.createElement("div");
15
- group.className = "tabela__rowgroup";
16
- group.role = "rowgroup";
17
- if (!(withRow ?? true)) {
18
- return group;
19
- }
20
- const row = createRow(false);
21
- group.append(row);
22
- return { group, row };
23
- }
24
- function createRow(withStyle) {
25
- const row = document.createElement("div");
26
- row.className = "tabela__row";
27
- row.role = "row";
28
- if (withStyle ?? true) {
29
- row.style.inset = "0 auto auto 0";
30
- row.style.position = "absolute";
31
- }
32
- return row;
33
- }
34
- exports.createCell = createCell;
35
- exports.createRow = createRow;
36
- exports.createRowGroup = createRowGroup;
package/dist/index.cjs DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const tabela = require("./tabela.cjs");
4
- exports.Tabela = tabela.Tabela;
5
- exports.tabela = tabela.tabela;
@@ -1,88 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- function getRange(body, down) {
7
- const { elements, rows } = body;
8
- const { clientHeight, scrollTop } = elements.group;
9
- const first = Math.floor(scrollTop / 32);
10
- const last = Math.min(
11
- rows.length - 1,
12
- Math.ceil((scrollTop + clientHeight) / 32) - 1
13
- );
14
- const before = Math.ceil(clientHeight / 32) * (down ? 1 : 2);
15
- const after = Math.ceil(clientHeight / 32) * (down ? 2 : 1);
16
- const start = Math.max(0, first - before);
17
- const end = Math.min(rows.length - 1, last + after);
18
- return { end, start };
19
- }
20
- class VirtualizationManager {
21
- constructor(body) {
22
- __publicField(this, "active", false);
23
- __publicField(this, "pool", {
24
- cells: {},
25
- rows: []
26
- });
27
- __publicField(this, "top", 0);
28
- __publicField(this, "visible", /* @__PURE__ */ new Map());
29
- this.body = body;
30
- this.body.elements.group.addEventListener(
31
- "scroll",
32
- () => {
33
- this.onScroll();
34
- },
35
- {
36
- passive: true
37
- }
38
- );
39
- }
40
- destroy() {
41
- const { visible, pool } = this;
42
- for (const [index, row] of visible) {
43
- row.remove(pool);
44
- visible.delete(index);
45
- }
46
- pool.cells = {};
47
- pool.rows = [];
48
- }
49
- update(down) {
50
- const { body, pool, visible } = this;
51
- const indices = /* @__PURE__ */ new Set();
52
- const range = getRange(body, down);
53
- for (let index = range.start; index <= range.end; index += 1) {
54
- indices.add(index);
55
- }
56
- for (const [index, row] of visible) {
57
- if (!indices.has(index)) {
58
- visible.delete(index);
59
- row.remove(pool);
60
- }
61
- }
62
- const fragment = document.createDocumentFragment();
63
- for (let index = range.start; index <= range.end; index += 1) {
64
- if (!visible.has(index)) {
65
- const row = body.rows[index];
66
- row.render(pool);
67
- visible.set(index, row);
68
- if (row.element != null) {
69
- row.element.style.transform = `translateY(${index * 32}px)`;
70
- fragment.append(row.element);
71
- }
72
- }
73
- body.elements.group.append(fragment);
74
- }
75
- }
76
- onScroll() {
77
- if (!this.active) {
78
- requestAnimationFrame(() => {
79
- const top = this.body.elements.group.scrollTop;
80
- this.update(top > this.top);
81
- this.active = false;
82
- this.top = top;
83
- });
84
- this.active = true;
85
- }
86
- }
87
- }
88
- exports.VirtualizationManager = VirtualizationManager;
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +0,0 @@
1
- "use strict";
package/dist/tabela.cjs DELETED
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const components_body_component = require("./components/body.component.cjs");
7
- const components_footer_component = require("./components/footer.component.cjs");
8
- const components_header_component = require("./components/header.component.cjs");
9
- class Tabela {
10
- constructor(element, options) {
11
- __publicField(this, "body");
12
- __publicField(this, "footer");
13
- __publicField(this, "header");
14
- this.element = element;
15
- this.options = options;
16
- element.innerHTML = "";
17
- element.role = "table";
18
- element.classList.add("tabela");
19
- element.setAttribute("aria-label", options.label);
20
- this.header = new components_header_component.HeaderComponent(this);
21
- this.body = new components_body_component.BodyComponent(this);
22
- this.footer = new components_footer_component.FooterComponent(this);
23
- element.append(
24
- this.header.elements.group,
25
- this.body.elements.group,
26
- this.footer.elements.group
27
- );
28
- }
29
- destroy() {
30
- this.body.destroy();
31
- this.footer.destroy();
32
- this.header.destroy();
33
- this.options.columns = [];
34
- this.options.data = [];
35
- this.element.innerHTML = "";
36
- this.element.role = "";
37
- this.element.classList.remove("tabela");
38
- this.element.removeAttribute("aria-label");
39
- this.element.removeAttribute("role");
40
- this.element = void 0;
41
- }
42
- }
43
- function tabela(element, options) {
44
- return new Tabela(element, options);
45
- }
46
- exports.Tabela = Tabela;
47
- exports.tabela = tabela;
@@ -1,98 +0,0 @@
1
- // Generated by dts-bundle-generator v9.5.1
2
-
3
- import { PlainObject } from '@oscarpalmer/atoms/models';
4
-
5
- export type ElementPool = {
6
- cells: Record<string, HTMLDivElement[]>;
7
- rows: HTMLDivElement[];
8
- };
9
- declare class VirtualizationManager {
10
- private readonly body;
11
- private active;
12
- private readonly pool;
13
- private top;
14
- private readonly visible;
15
- constructor(body: BodyComponent);
16
- destroy(): void;
17
- update(down: boolean): void;
18
- private onScroll;
19
- }
20
- declare class RowComponent {
21
- readonly tabela: Tabela;
22
- readonly data: PlainObject;
23
- element: HTMLDivElement | undefined;
24
- constructor(tabela: Tabela, data: PlainObject);
25
- remove(pool: ElementPool): void;
26
- render(pool: ElementPool): void;
27
- }
28
- export type Elements = {
29
- faker: HTMLDivElement;
30
- group: HTMLDivElement;
31
- };
32
- export declare class BodyComponent {
33
- readonly tabela: Tabela;
34
- readonly elements: Elements;
35
- readonly rows: RowComponent[];
36
- readonly virtualization: VirtualizationManager;
37
- constructor(tabela: Tabela);
38
- addData(data: PlainObject[]): Promise<void>;
39
- destroy(): void;
40
- private updateVirtualization;
41
- }
42
- type Elements$1 = {
43
- cells: HTMLDivElement[];
44
- group: HTMLDivElement;
45
- row: HTMLDivElement;
46
- };
47
- declare class FooterComponent {
48
- readonly tabela: Tabela;
49
- readonly elements: Elements$1;
50
- constructor(tabela: Tabela);
51
- destroy(): void;
52
- }
53
- export type TabelaColumn = {
54
- field: string;
55
- title: string;
56
- type: TabelaColumnType;
57
- width: number;
58
- };
59
- export type TabelaColumnOptions = {
60
- field: string;
61
- title: string;
62
- type: TabelaColumnType;
63
- width?: number;
64
- };
65
- export type TabelaColumnType = "boolean" | "date" | "date-time" | "number" | "string" | "time";
66
- declare class ColumnComponent {
67
- readonly tabela: Tabela;
68
- readonly element: HTMLDivElement;
69
- readonly options: TabelaColumn;
70
- constructor(tabela: Tabela, options: TabelaColumnOptions);
71
- }
72
- type Elements$2 = {
73
- group: HTMLDivElement;
74
- row: HTMLDivElement;
75
- };
76
- declare class HeaderComponent {
77
- readonly tabela: Tabela;
78
- readonly columns: ColumnComponent[];
79
- readonly elements: Elements$2;
80
- constructor(tabela: Tabela);
81
- destroy(): void;
82
- }
83
- export type TabelaOptions = {
84
- columns: TabelaColumnOptions[];
85
- data: PlainObject[];
86
- label: string;
87
- };
88
- declare class Tabela {
89
- element: HTMLElement;
90
- readonly options: TabelaOptions;
91
- readonly body: BodyComponent;
92
- readonly footer: FooterComponent;
93
- readonly header: HeaderComponent;
94
- constructor(element: HTMLElement, options: TabelaOptions);
95
- destroy(): void;
96
- }
97
-
98
- export {};
@@ -1,98 +0,0 @@
1
- // Generated by dts-bundle-generator v9.5.1
2
-
3
- import { PlainObject } from '@oscarpalmer/atoms/models';
4
-
5
- export type ElementPool = {
6
- cells: Record<string, HTMLDivElement[]>;
7
- rows: HTMLDivElement[];
8
- };
9
- declare class VirtualizationManager {
10
- private readonly body;
11
- private active;
12
- private readonly pool;
13
- private top;
14
- private readonly visible;
15
- constructor(body: BodyComponent);
16
- destroy(): void;
17
- update(down: boolean): void;
18
- private onScroll;
19
- }
20
- declare class RowComponent {
21
- readonly tabela: Tabela;
22
- readonly data: PlainObject;
23
- element: HTMLDivElement | undefined;
24
- constructor(tabela: Tabela, data: PlainObject);
25
- remove(pool: ElementPool): void;
26
- render(pool: ElementPool): void;
27
- }
28
- export type Elements = {
29
- faker: HTMLDivElement;
30
- group: HTMLDivElement;
31
- };
32
- declare class BodyComponent {
33
- readonly tabela: Tabela;
34
- readonly elements: Elements;
35
- readonly rows: RowComponent[];
36
- readonly virtualization: VirtualizationManager;
37
- constructor(tabela: Tabela);
38
- addData(data: PlainObject[]): Promise<void>;
39
- destroy(): void;
40
- private updateVirtualization;
41
- }
42
- type Elements$1 = {
43
- cells: HTMLDivElement[];
44
- group: HTMLDivElement;
45
- row: HTMLDivElement;
46
- };
47
- declare class FooterComponent {
48
- readonly tabela: Tabela;
49
- readonly elements: Elements$1;
50
- constructor(tabela: Tabela);
51
- destroy(): void;
52
- }
53
- export type TabelaColumn = {
54
- field: string;
55
- title: string;
56
- type: TabelaColumnType;
57
- width: number;
58
- };
59
- export type TabelaColumnOptions = {
60
- field: string;
61
- title: string;
62
- type: TabelaColumnType;
63
- width?: number;
64
- };
65
- export type TabelaColumnType = "boolean" | "date" | "date-time" | "number" | "string" | "time";
66
- export declare class ColumnComponent {
67
- readonly tabela: Tabela;
68
- readonly element: HTMLDivElement;
69
- readonly options: TabelaColumn;
70
- constructor(tabela: Tabela, options: TabelaColumnOptions);
71
- }
72
- type Elements$2 = {
73
- group: HTMLDivElement;
74
- row: HTMLDivElement;
75
- };
76
- declare class HeaderComponent {
77
- readonly tabela: Tabela;
78
- readonly columns: ColumnComponent[];
79
- readonly elements: Elements$2;
80
- constructor(tabela: Tabela);
81
- destroy(): void;
82
- }
83
- export type TabelaOptions = {
84
- columns: TabelaColumnOptions[];
85
- data: PlainObject[];
86
- label: string;
87
- };
88
- declare class Tabela {
89
- element: HTMLElement;
90
- readonly options: TabelaOptions;
91
- readonly body: BodyComponent;
92
- readonly footer: FooterComponent;
93
- readonly header: HeaderComponent;
94
- constructor(element: HTMLElement, options: TabelaOptions);
95
- destroy(): void;
96
- }
97
-
98
- export {};