@oscarpalmer/tabela 0.13.0 → 0.14.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 (131) hide show
  1. package/dist/components/{body.component.mjs → body.component.js} +3 -6
  2. package/dist/components/{column.component.mjs → column.component.js} +5 -8
  3. package/dist/components/{footer.component.mjs → footer.component.js} +4 -7
  4. package/dist/components/group.component.js +28 -0
  5. package/dist/components/{header.component.mjs → header.component.js} +3 -6
  6. package/dist/components/{row.component.mjs → row.component.js} +7 -11
  7. package/dist/helpers/{dom.helpers.mjs → dom.helpers.js} +9 -13
  8. package/dist/helpers/{misc.helpers.mjs → misc.helpers.js} +1 -3
  9. package/dist/helpers/style.helper.js +6 -0
  10. package/dist/{index.mjs → index.js} +1 -3
  11. package/dist/managers/{column.manager.mjs → column.manager.js} +1 -6
  12. package/dist/managers/data.manager.js +181 -0
  13. package/dist/managers/{event.manager.mjs → event.manager.js} +8 -9
  14. package/dist/managers/{filter.manager.mjs → filter.manager.js} +14 -23
  15. package/dist/managers/group.manager.js +46 -0
  16. package/dist/managers/{navigation.manager.mjs → navigation.manager.js} +24 -27
  17. package/dist/managers/{render.manager.mjs → render.manager.js} +26 -35
  18. package/dist/managers/{row.manager.mjs → row.manager.js} +11 -18
  19. package/dist/managers/{selection.manager.mjs → selection.manager.js} +28 -32
  20. package/dist/managers/{sort.manager.mjs → sort.manager.js} +9 -12
  21. package/dist/models/body.model.js +0 -0
  22. package/dist/models/column.model.js +0 -0
  23. package/dist/models/data.model.js +0 -0
  24. package/dist/models/filter.model.js +0 -0
  25. package/dist/models/footer.model.js +0 -0
  26. package/dist/models/group.model.js +0 -0
  27. package/dist/models/header.model.js +0 -0
  28. package/dist/models/render.model.js +0 -0
  29. package/dist/models/selection.model.js +0 -0
  30. package/dist/models/sort.model.js +0 -0
  31. package/dist/models/tabela.model.js +0 -0
  32. package/dist/models/tabela.options.js +0 -0
  33. package/dist/{tabela.full.mjs → tabela.full.js} +860 -1049
  34. package/dist/tabela.js +105 -0
  35. package/package.json +1 -1
  36. package/src/components/body.component.ts +10 -7
  37. package/src/components/column.component.ts +19 -15
  38. package/src/components/footer.component.ts +7 -10
  39. package/src/components/group.component.ts +34 -12
  40. package/src/components/header.component.ts +6 -5
  41. package/src/components/row.component.ts +27 -19
  42. package/src/helpers/dom.helpers.ts +18 -22
  43. package/src/helpers/misc.helpers.ts +5 -0
  44. package/src/managers/data.manager.ts +80 -77
  45. package/src/managers/event.manager.ts +21 -10
  46. package/src/managers/filter.manager.ts +34 -21
  47. package/src/managers/group.manager.ts +18 -9
  48. package/src/managers/navigation.manager.ts +46 -49
  49. package/src/managers/render.manager.ts +34 -21
  50. package/src/managers/row.manager.ts +1 -1
  51. package/src/managers/selection.manager.ts +37 -35
  52. package/src/managers/sort.manager.ts +47 -34
  53. package/src/managers/style.manager.ts +40 -25
  54. package/src/models/column.model.ts +2 -6
  55. package/src/models/data.model.ts +7 -8
  56. package/src/models/dom.model.ts +33 -0
  57. package/src/models/event.model.ts +7 -0
  58. package/src/models/filter.model.ts +20 -0
  59. package/src/models/group.model.ts +4 -0
  60. package/src/models/sort.model.ts +4 -0
  61. package/src/models/style.model.ts +32 -20
  62. package/src/models/tabela.model.ts +1 -0
  63. package/src/tabela.ts +20 -22
  64. package/dist/body.component-_VDOpJhV.d.mts +0 -10
  65. package/dist/body.model-2iwsovAV.d.mts +0 -7
  66. package/dist/column.component-Bx46r3JI.d.mts +0 -16
  67. package/dist/column.model-D-aw4EU4.d.mts +0 -16
  68. package/dist/components/body.component.d.mts +0 -2
  69. package/dist/components/column.component.d.mts +0 -2
  70. package/dist/components/footer.component.d.mts +0 -2
  71. package/dist/components/group.component.d.mts +0 -2
  72. package/dist/components/group.component.mjs +0 -51
  73. package/dist/components/header.component.d.mts +0 -2
  74. package/dist/components/row.component.d.mts +0 -2
  75. package/dist/filter.model-7ukJrtil.d.mts +0 -16
  76. package/dist/footer.component-Curiab8j.d.mts +0 -12
  77. package/dist/footer.model-DhqoS6ds.d.mts +0 -8
  78. package/dist/group.component-Cq1YYbfJ.d.mts +0 -285
  79. package/dist/group.model-BsKFwHbt.d.mts +0 -10
  80. package/dist/header.component-BjjlpZIg.d.mts +0 -12
  81. package/dist/header.model-DN_KzUCV.d.mts +0 -7
  82. package/dist/helpers/dom.helpers.d.mts +0 -12
  83. package/dist/helpers/misc.helpers.d.mts +0 -6
  84. package/dist/helpers/style.helper.d.mts +0 -6
  85. package/dist/helpers/style.helper.mjs +0 -8
  86. package/dist/index.d.mts +0 -7
  87. package/dist/managers/column.manager.d.mts +0 -2
  88. package/dist/managers/data.manager.d.mts +0 -2
  89. package/dist/managers/data.manager.mjs +0 -222
  90. package/dist/managers/event.manager.d.mts +0 -2
  91. package/dist/managers/filter.manager.d.mts +0 -2
  92. package/dist/managers/group.manager.d.mts +0 -2
  93. package/dist/managers/group.manager.mjs +0 -73
  94. package/dist/managers/navigation.manager.d.mts +0 -2
  95. package/dist/managers/render.manager.d.mts +0 -2
  96. package/dist/managers/row.manager.d.mts +0 -2
  97. package/dist/managers/selection.manager.d.mts +0 -2
  98. package/dist/managers/sort.manager.d.mts +0 -2
  99. package/dist/managers/style.manager.d.mts +0 -2
  100. package/dist/managers/style.manager.mjs +0 -149
  101. package/dist/models/body.model.d.mts +0 -2
  102. package/dist/models/body.model.mjs +0 -1
  103. package/dist/models/column.model.d.mts +0 -2
  104. package/dist/models/column.model.mjs +0 -1
  105. package/dist/models/data.model.d.mts +0 -2
  106. package/dist/models/data.model.mjs +0 -1
  107. package/dist/models/filter.model.d.mts +0 -2
  108. package/dist/models/filter.model.mjs +0 -1
  109. package/dist/models/footer.model.d.mts +0 -2
  110. package/dist/models/footer.model.mjs +0 -1
  111. package/dist/models/group.model.d.mts +0 -2
  112. package/dist/models/group.model.mjs +0 -1
  113. package/dist/models/header.model.d.mts +0 -2
  114. package/dist/models/header.model.mjs +0 -1
  115. package/dist/models/render.model.d.mts +0 -2
  116. package/dist/models/render.model.mjs +0 -1
  117. package/dist/models/selection.model.d.mts +0 -2
  118. package/dist/models/selection.model.mjs +0 -1
  119. package/dist/models/sort.model.d.mts +0 -2
  120. package/dist/models/sort.model.mjs +0 -1
  121. package/dist/models/style.model.d.mts +0 -23
  122. package/dist/models/style.model.mjs +0 -23
  123. package/dist/models/tabela.model.d.mts +0 -2
  124. package/dist/models/tabela.model.mjs +0 -1
  125. package/dist/models/tabela.options.d.mts +0 -2
  126. package/dist/models/tabela.options.mjs +0 -1
  127. package/dist/selection.model-rwQe9fco.d.mts +0 -12
  128. package/dist/sort.model-CauImaLu.d.mts +0 -15
  129. package/dist/tabela.d.mts +0 -21
  130. package/dist/tabela.mjs +0 -126
  131. package/dist/tabela.options-RkZvfptB.d.mts +0 -14
@@ -1,2 +0,0 @@
1
- import { f as RowManager } from "../group.component-Cq1YYbfJ.mjs";
2
- export { RowManager };
@@ -1,2 +0,0 @@
1
- import { d as SelectionManager } from "../group.component-Cq1YYbfJ.mjs";
2
- export { SelectionManager };
@@ -1,2 +0,0 @@
1
- import { l as SortManager, u as sortWithGroups } from "../group.component-Cq1YYbfJ.mjs";
2
- export { SortManager, sortWithGroups };
@@ -1,2 +0,0 @@
1
- import { c as StyleManager } from "../group.component-Cq1YYbfJ.mjs";
2
- export { StyleManager };
@@ -1,149 +0,0 @@
1
- //#region src/managers/style.manager.ts
2
- var StyleManager = class {
3
- constructor(state) {
4
- this.state = state;
5
- if (appended) return;
6
- appended = true;
7
- const style = document.createElement("style");
8
- style.textContent = styling;
9
- document.head.appendChild(style);
10
- }
11
- };
12
- const styling = `/** Table */
13
-
14
- :where(.tabela) {
15
- flex: 1;
16
- position: relative;
17
- background-color: var(--oui-absolute);
18
- border: 1px solid grey;
19
- }
20
-
21
- :where(.tabela__table) {
22
- min-height: 24em;
23
- display: flex;
24
- flex-flow: column nowrap;
25
- flex: 1;
26
- overflow: auto;
27
- position: absolute;
28
- inset: 0;
29
- }
30
-
31
- /** Row group */
32
-
33
- :where(.tabela__rowgroup--header),
34
- :where(.tabela__rowgroup--footer) {
35
- background-color: white;
36
- position: sticky;
37
- left: 0;
38
- z-index: 10;
39
- }
40
-
41
- :where(.tabela__rowgroup--header) {
42
- top: 0;
43
- }
44
-
45
- :where(.tabela__rowgroup--footer) {
46
- bottom: 0;
47
- }
48
-
49
- :where(.tabela__rowgroup--body) {
50
- display: flex;
51
- flex-flow: column nowrap;
52
- flex: 1;
53
- }
54
-
55
- :where(.tabela__rowgroup--body:focus) {
56
- outline: none;
57
- }
58
-
59
- :where(.tabela:has(.tabela__rowgroup--body:focus-visible)) {
60
- outline: 2px solid var(--oui-blue-6);
61
- outline-offset: 2px;
62
- }
63
-
64
- /** Row */
65
-
66
- :where(.tabela__row) {
67
- width: 100%;
68
- display: flex;
69
- flex-flow: row nowrap;
70
- }
71
-
72
- :where(.tabela__row:last-child .tabela__cell) {
73
- border-bottom-width: 0;
74
- }
75
-
76
- :where(.tabela__row--body),
77
- :where(.tabela__row--group) {
78
- flex: 1;
79
- position: absolute;
80
- }
81
-
82
- :where(.tabela__row--selected) {
83
- background-color: var(--oui-blue-1);
84
- color: var(--oui-blue-9);
85
- }
86
-
87
- :where(.tabela:has(.tabela__rowgroup--body:focus-visible) .tabela__row[data-active="true"]) {
88
- outline: 2px solid var(--oui-blue-6);
89
- outline-offset: 2px;
90
- }
91
-
92
- /** Cells */
93
-
94
- :where(.tabela__cell),
95
- :where(.tabela__heading) {
96
- padding: 0.5em;
97
- border-color: gray;
98
- border-style: solid;
99
- border-width: 0 1px 1px 0;
100
- line-height: 1;
101
- }
102
-
103
- :where(.tabela__row .tabela__cell:last-child),
104
- :where(.tabela__row .tabela__heading:last-child) {
105
- flex: 1;
106
- border-right-width: 0;
107
- }
108
-
109
- :where(.tabela__cell) {
110
- overflow: hidden;
111
- text-overflow: ellipsis;
112
- white-space: nowrap;
113
- }
114
-
115
- :where(.tabela__cell--footer) {
116
- border-top-width: 1px;
117
- border-bottom-width: 0;
118
- }
119
-
120
- :where(.tabela__cell--group) {
121
- padding: 0;
122
- display: flex;
123
- flex-flow: row nowrap;
124
- align-items: center;
125
- gap: 0.5em;
126
- }
127
-
128
- :where(.tabela__cell--group .tabela__button) {
129
- margin: 0 0 0 .25rem;
130
- }
131
-
132
- /** Misc. */
133
-
134
- :where(.tabela__button) {
135
- font-size: .75rem;
136
- font-weight: bold;
137
- }
138
-
139
- :where(.tabela__selection) {
140
- background-color: color-mix(in oklch, var(--oui-blue-6), transparent);
141
- border: 1px solid var(--oui-blue-6);
142
- border-radius: .25rem;
143
- position: fixed;
144
- z-index: 1000;
145
- }
146
- `.replace(/^\s+|\s+|\s+$/g, " ");
147
- let appended = false;
148
- //#endregion
149
- export { StyleManager };
@@ -1,2 +0,0 @@
1
- import { t as BodyElements } from "../body.model-2iwsovAV.mjs";
2
- export { BodyElements };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { n as TabelaColumn, r as TabelaColumnType, t as Column } from "../column.model-D-aw4EU4.mjs";
2
- export { Column, TabelaColumn, TabelaColumnType };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { D as TabelaData, E as DataState, T as DataItem } from "../group.component-Cq1YYbfJ.mjs";
2
- export { DataItem, DataState, TabelaData };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { n as TabelaFilterComparison, r as TabelaFilterItem, t as TabelaFilter } from "../filter.model-7ukJrtil.mjs";
2
- export { TabelaFilter, TabelaFilterComparison, TabelaFilterItem };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { t as FooterElements } from "../footer.model-DhqoS6ds.mjs";
2
- export { FooterElements };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { n as TabelaGroup, t as GroupValue } from "../group.model-BsKFwHbt.mjs";
2
- export { GroupValue, TabelaGroup };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { t as HeaderElements } from "../header.model-DN_KzUCV.mjs";
2
- export { HeaderElements };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { _ as RenderElementPool, v as RenderRange, y as RenderState } from "../group.component-Cq1YYbfJ.mjs";
2
- export { RenderElementPool, RenderRange, RenderState };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { t as TabelaSelection } from "../selection.model-rwQe9fco.mjs";
2
- export { TabelaSelection };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { n as TabelaSortDirection, r as TabelaSortItem, t as TabelaSort } from "../sort.model-CauImaLu.mjs";
2
- export { TabelaSort, TabelaSortDirection, TabelaSortItem };
@@ -1 +0,0 @@
1
- export {};
@@ -1,23 +0,0 @@
1
- //#region src/models/style.model.d.ts
2
- declare const CSS_TABELA = "tabela";
3
- declare const CSS_TABELA_CELL = "tabela__cell";
4
- declare const CSS_TABELA_CELL_BODY = "tabela__cell--body";
5
- declare const CSS_TABELA_CELL_FOOTER = "tabela__cell--footer";
6
- declare const CSS_TABELA_FAKER = "tabela__faker";
7
- declare const CSS_TABELA_HEADING = "tabela__heading";
8
- declare const CSS_TABELA_HEADING_CONTENT = "tabela__heading__content";
9
- declare const CSS_TABELA_HEADING_SORTER = "tabela__heading__sorter";
10
- declare const CSS_TABELA_ROW = "tabela__row";
11
- declare const CSS_TABELA_ROW_BODY = "tabela__row--body";
12
- declare const CSS_TABELA_ROW_FOOTER = "tabela__row--footer";
13
- declare const CSS_TABELA_ROW_GROUP = "tabela__row--group tabela__group";
14
- declare const CSS_TABELA_ROW_HEADER = "tabela__row--header";
15
- declare const CSS_TABELA_ROW_SELECTED = "tabela__row--selected";
16
- declare const CSS_TABELA_ROWGROUP = "tabela__rowgroup";
17
- declare const CSS_TABELA_ROWGROUP_BODY = "tabela__rowgroup--body";
18
- declare const CSS_TABELA_ROWGROUP_FOOTER = "tabela__rowgroup--footer";
19
- declare const CSS_TABELA_ROWGROUP_HEADER = "tabela__rowgroup--header";
20
- declare const CSS_TABELA_SELECTION = "tabela__selection";
21
- declare const CSS_TABELA_TABLE = "tabela__table";
22
- //#endregion
23
- export { CSS_TABELA, CSS_TABELA_CELL, CSS_TABELA_CELL_BODY, CSS_TABELA_CELL_FOOTER, CSS_TABELA_FAKER, CSS_TABELA_HEADING, CSS_TABELA_HEADING_CONTENT, CSS_TABELA_HEADING_SORTER, CSS_TABELA_ROW, CSS_TABELA_ROWGROUP, CSS_TABELA_ROWGROUP_BODY, CSS_TABELA_ROWGROUP_FOOTER, CSS_TABELA_ROWGROUP_HEADER, CSS_TABELA_ROW_BODY, CSS_TABELA_ROW_FOOTER, CSS_TABELA_ROW_GROUP, CSS_TABELA_ROW_HEADER, CSS_TABELA_ROW_SELECTED, CSS_TABELA_SELECTION, CSS_TABELA_TABLE };
@@ -1,23 +0,0 @@
1
- //#region src/models/style.model.ts
2
- const CSS_TABELA = "tabela";
3
- const CSS_TABELA_CELL = "tabela__cell";
4
- const CSS_TABELA_CELL_BODY = "tabela__cell--body";
5
- const CSS_TABELA_CELL_FOOTER = "tabela__cell--footer";
6
- const CSS_TABELA_FAKER = "tabela__faker";
7
- const CSS_TABELA_HEADING = "tabela__heading";
8
- const CSS_TABELA_HEADING_CONTENT = "tabela__heading__content";
9
- const CSS_TABELA_HEADING_SORTER = "tabela__heading__sorter";
10
- const CSS_TABELA_ROW = "tabela__row";
11
- const CSS_TABELA_ROW_BODY = "tabela__row--body";
12
- const CSS_TABELA_ROW_FOOTER = "tabela__row--footer";
13
- const CSS_TABELA_ROW_GROUP = "tabela__row--group tabela__group";
14
- const CSS_TABELA_ROW_HEADER = "tabela__row--header";
15
- const CSS_TABELA_ROW_SELECTED = "tabela__row--selected";
16
- const CSS_TABELA_ROWGROUP = "tabela__rowgroup";
17
- const CSS_TABELA_ROWGROUP_BODY = "tabela__rowgroup--body";
18
- const CSS_TABELA_ROWGROUP_FOOTER = "tabela__rowgroup--footer";
19
- const CSS_TABELA_ROWGROUP_HEADER = "tabela__rowgroup--header";
20
- const CSS_TABELA_SELECTION = "tabela__selection";
21
- const CSS_TABELA_TABLE = "tabela__table";
22
- //#endregion
23
- export { CSS_TABELA, CSS_TABELA_CELL, CSS_TABELA_CELL_BODY, CSS_TABELA_CELL_FOOTER, CSS_TABELA_FAKER, CSS_TABELA_HEADING, CSS_TABELA_HEADING_CONTENT, CSS_TABELA_HEADING_SORTER, CSS_TABELA_ROW, CSS_TABELA_ROWGROUP, CSS_TABELA_ROWGROUP_BODY, CSS_TABELA_ROWGROUP_FOOTER, CSS_TABELA_ROWGROUP_HEADER, CSS_TABELA_ROW_BODY, CSS_TABELA_ROW_FOOTER, CSS_TABELA_ROW_GROUP, CSS_TABELA_ROW_HEADER, CSS_TABELA_ROW_SELECTED, CSS_TABELA_SELECTION, CSS_TABELA_TABLE };
@@ -1,2 +0,0 @@
1
- import { a as Components, o as Managers, s as State } from "../group.component-Cq1YYbfJ.mjs";
2
- export { Components, Managers, State };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import { t as TabelaOptions } from "../tabela.options-RkZvfptB.mjs";
2
- export { TabelaOptions };
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- import { Key } from "@oscarpalmer/atoms/models";
2
-
3
- //#region src/models/selection.model.d.ts
4
- type TabelaSelection = {
5
- add(keys: Key[]): void;
6
- clear(): void;
7
- remove(keys: Key[]): void;
8
- set(keys: Key[]): void;
9
- toggle(): void;
10
- };
11
- //#endregion
12
- export { TabelaSelection as t };
@@ -1,15 +0,0 @@
1
- //#region src/models/sort.model.d.ts
2
- type TabelaSort = {
3
- add(field: string, direction?: TabelaSortDirection): void;
4
- clear(): void;
5
- flip(field: string): void;
6
- remove(field: string): void;
7
- set(items: TabelaSortItem[]): void;
8
- };
9
- type TabelaSortDirection = 'ascending' | 'descending';
10
- type TabelaSortItem = {
11
- direction: TabelaSortDirection;
12
- field: string;
13
- };
14
- //#endregion
15
- export { TabelaSortDirection as n, TabelaSortItem as r, TabelaSort as t };
package/dist/tabela.d.mts DELETED
@@ -1,21 +0,0 @@
1
- import { n as TabelaGroup } from "./group.model-BsKFwHbt.mjs";
2
- import { D as TabelaData } from "./group.component-Cq1YYbfJ.mjs";
3
- import { t as TabelaFilter } from "./filter.model-7ukJrtil.mjs";
4
- import { t as TabelaSort } from "./sort.model-CauImaLu.mjs";
5
- import { t as TabelaOptions } from "./tabela.options-RkZvfptB.mjs";
6
- import { t as TabelaSelection } from "./selection.model-rwQe9fco.mjs";
7
-
8
- //#region src/tabela.d.ts
9
- declare class Tabela {
10
- #private;
11
- readonly data: TabelaData;
12
- readonly filter: TabelaFilter;
13
- readonly group: TabelaGroup;
14
- readonly selection: TabelaSelection;
15
- readonly sort: TabelaSort;
16
- get key(): string;
17
- constructor(element: HTMLElement, options: TabelaOptions);
18
- destroy(): void;
19
- }
20
- //#endregion
21
- export { Tabela };
package/dist/tabela.mjs DELETED
@@ -1,126 +0,0 @@
1
- import { CSS_TABELA, CSS_TABELA_TABLE } from "./models/style.model.mjs";
2
- import { createElement } from "./helpers/dom.helpers.mjs";
3
- import { BodyComponent } from "./components/body.component.mjs";
4
- import { FooterComponent } from "./components/footer.component.mjs";
5
- import { HeaderComponent } from "./components/header.component.mjs";
6
- import { ColumnManager } from "./managers/column.manager.mjs";
7
- import { SortManager } from "./managers/sort.manager.mjs";
8
- import { DataManager } from "./managers/data.manager.mjs";
9
- import { EventManager } from "./managers/event.manager.mjs";
10
- import { FilterManager } from "./managers/filter.manager.mjs";
11
- import { GroupManager } from "./managers/group.manager.mjs";
12
- import { NavigationManager } from "./managers/navigation.manager.mjs";
13
- import { RenderManager } from "./managers/render.manager.mjs";
14
- import { RowManager } from "./managers/row.manager.mjs";
15
- import { SelectionManager } from "./managers/selection.manager.mjs";
16
- import { StyleManager } from "./managers/style.manager.mjs";
17
- //#region src/tabela.ts
18
- var Tabela = class {
19
- #components;
20
- #element;
21
- #id = getId();
22
- #table;
23
- #key;
24
- #managers = {
25
- column: void 0,
26
- data: void 0,
27
- event: void 0,
28
- filter: void 0,
29
- group: void 0,
30
- navigation: void 0,
31
- render: void 0,
32
- row: void 0,
33
- selection: void 0,
34
- sort: void 0,
35
- style: void 0
36
- };
37
- #state;
38
- data;
39
- filter;
40
- group;
41
- selection;
42
- sort;
43
- get key() {
44
- return this.#key;
45
- }
46
- constructor(element, options) {
47
- this.#element = element;
48
- element.innerHTML = "";
49
- element.classList.add(CSS_TABELA);
50
- this.#table = createElement("div", {
51
- className: CSS_TABELA_TABLE,
52
- role: "table"
53
- }, { "aria-label": options.label });
54
- this.#key = options.key;
55
- this.#components = {
56
- body: new BodyComponent(),
57
- footer: new FooterComponent(),
58
- header: new HeaderComponent()
59
- };
60
- this.#state = {
61
- options,
62
- components: this.#components,
63
- element: this.#table,
64
- id: this.#id,
65
- key: this.#key,
66
- managers: this.#managers
67
- };
68
- this.#managers.column = new ColumnManager(this.#state);
69
- this.#managers.data = new DataManager(this.#state);
70
- this.#managers.event = new EventManager(this.#state);
71
- this.#managers.filter = new FilterManager(this.#state);
72
- this.#managers.group = new GroupManager(this.#state);
73
- this.#managers.navigation = new NavigationManager(this.#state);
74
- this.#managers.render = new RenderManager(this.#state);
75
- this.#managers.row = new RowManager(this.#state);
76
- this.#managers.selection = new SelectionManager(this.#state);
77
- this.#managers.sort = new SortManager(this.#state);
78
- this.#managers.style = new StyleManager(this.#state);
79
- this.#table.append(this.#components.header.elements.group, this.#components.body.elements.group, this.#components.footer.elements.group);
80
- element.append(this.#table);
81
- this.#managers.data.set(options.data);
82
- this.data = this.#managers.data.handlers;
83
- this.filter = this.#managers.filter.handlers;
84
- this.group = this.#managers.group.handlers;
85
- this.selection = this.#managers.selection.handlers;
86
- this.sort = this.#managers.sort.handlers;
87
- }
88
- destroy() {
89
- const components = this.#components;
90
- const managers = this.#managers;
91
- const element = this.#element;
92
- const table = this.#table;
93
- components.body.destroy();
94
- components.footer.destroy();
95
- components.header.destroy();
96
- managers.column.destroy();
97
- managers.data.destroy();
98
- managers.event.destroy();
99
- managers.filter.destroy();
100
- managers.group.destroy();
101
- managers.navigation.destroy();
102
- managers.render.destroy();
103
- managers.row.destroy();
104
- managers.selection.destroy();
105
- managers.sort.destroy();
106
- element.innerHTML = "";
107
- table.innerHTML = "";
108
- table.role = "";
109
- element.classList.remove(CSS_TABELA);
110
- table.removeAttribute("aria-label");
111
- table.removeAttribute("role");
112
- this.#state.components = void 0;
113
- this.#state.managers = void 0;
114
- this.#state.element = void 0;
115
- this.#state.options = void 0;
116
- this.#element = void 0;
117
- this.#table = void 0;
118
- }
119
- };
120
- function getId() {
121
- id += 1;
122
- return id;
123
- }
124
- let id = 0;
125
- //#endregion
126
- export { Tabela };
@@ -1,14 +0,0 @@
1
- import { n as TabelaColumn } from "./column.model-D-aw4EU4.mjs";
2
- import { PlainObject } from "@oscarpalmer/atoms/models";
3
-
4
- //#region src/models/tabela.options.d.ts
5
- type TabelaOptions = {
6
- columns: TabelaColumn[];
7
- data: PlainObject[];
8
- grouping?: string;
9
- key: string;
10
- label: string;
11
- rowHeight: number;
12
- };
13
- //#endregion
14
- export { TabelaOptions as t };