@guiexpert/angular-table 16.0.0 → 16.0.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 (36) hide show
  1. package/README.md +116 -2
  2. package/esm2022/guiexpert-angular-table.mjs +5 -0
  3. package/esm2022/lib/component-renderer.if.mjs +2 -0
  4. package/esm2022/lib/service/dom-service.mjs +56 -0
  5. package/esm2022/lib/service/render-wrapper-factory.mjs +22 -0
  6. package/esm2022/lib/service/renderer-wrapper.mjs +44 -0
  7. package/esm2022/lib/table.component.mjs +97 -0
  8. package/esm2022/public-api.mjs +9 -0
  9. package/fesm2022/guiexpert-angular-table.mjs +221 -0
  10. package/fesm2022/guiexpert-angular-table.mjs.map +1 -0
  11. package/index.d.ts +5 -0
  12. package/lib/component-renderer.if.d.ts +4 -0
  13. package/lib/service/dom-service.d.ts +17 -0
  14. package/lib/service/render-wrapper-factory.d.ts +13 -0
  15. package/lib/service/renderer-wrapper.d.ts +14 -0
  16. package/lib/table.component.d.ts +39 -0
  17. package/package.json +21 -7
  18. package/public-api.d.ts +5 -0
  19. package/.eslintrc.json +0 -46
  20. package/.idea/angular-table.iml +0 -12
  21. package/.idea/modules.xml +0 -8
  22. package/.idea/vcs.xml +0 -6
  23. package/ng-package.json +0 -7
  24. package/project.json +0 -37
  25. package/src/index.ts +0 -5
  26. package/src/lib/angular-table/component-renderer.if.ts +0 -12
  27. package/src/lib/angular-table/service/dom-service.ts +0 -54
  28. package/src/lib/angular-table/service/render-wrapper-factory.ts +0 -24
  29. package/src/lib/angular-table/service/renderer-wrapper.ts +0 -86
  30. package/src/lib/angular-table/table-color-classes.css +0 -90
  31. package/src/lib/angular-table/table-color-vars.css +0 -141
  32. package/src/lib/angular-table/table.component.css +0 -88
  33. package/src/lib/angular-table/table.component.ts +0 -152
  34. package/tsconfig.json +0 -28
  35. package/tsconfig.lib.json +0 -18
  36. package/tsconfig.lib.prod.json +0 -9
@@ -1,141 +0,0 @@
1
-
2
- :root [data-theme= "light"] {
3
- --ge-table-bg: #fff;
4
- --ge-table-header-west-bg: var(--ge-table-header-center-bg);
5
- --ge-table-header-center-bg: rgba(233, 233, 233, 0.5);
6
- --ge-table-header-east-bg: var(--ge-table-header-center-bg);
7
- --ge-table-header-west-text: var(--ge-table-header-center-text);
8
- --ge-table-header-center-text: #000;
9
- --ge-table-header-east-text: var(--ge-table-header-center-text);
10
-
11
- --ge-table-header-west-horizontal-border: var(--ge-table-header-center-horizontal-border);
12
- --ge-table-header-west-vertical-border: var(--ge-table-header-center-vertical-border);
13
- --ge-table-header-center-horizontal-border: #ddd;
14
- --ge-table-header-center-vertical-border: #ccc;
15
- --ge-table-header-east-horizontal-border: var(--ge-table-header-center-horizontal-border);
16
- --ge-table-header-east-vertical-border: var(--ge-table-header-center-vertical-border);
17
-
18
-
19
- --ge-table-body-west-bg: var(--ge-table-header-center-bg);
20
- --ge-table-body-center-bg: rgba(255,255,255, 0.5);
21
- --ge-table-body-east-bg: var(--ge-table-header-center-bg);
22
-
23
- --ge-table-body-west-text: var(--ge-table-header-center-text);
24
- --ge-table-body-center-text: var(--ge-table-header-center-text);
25
- --ge-table-body-east-text: var(--ge-table-header-center-text);
26
-
27
- --ge-table-body-west-horizontal-border: var(--ge-table-header-west-horizontal-border);
28
- --ge-table-body-west-vertical-border: var(--ge-table-header-west-vertical-border);
29
- --ge-table-body-center-horizontal-border: #bbb;
30
- --ge-table-body-center-vertical-border: #ddd;
31
- --ge-table-body-east-horizontal-border: var(--ge-table-header-east-horizontal-border);
32
- --ge-table-body-east-vertical-border: var(--ge-table-header-east-vertical-border);;
33
-
34
-
35
- --ge-table-footer-west-bg: var(--ge-table-header-center-bg);
36
- --ge-table-footer-center-bg: var(--ge-table-header-center-bg);
37
- --ge-table-footer-east-bg: var(--ge-table-header-center-bg);
38
-
39
- --ge-table-footer-west-text: var(--ge-table-header-center-text);
40
- --ge-table-footer-center-text: var(--ge-table-header-center-text);
41
- --ge-table-footer-east-text: var(--ge-table-header-center-text);
42
-
43
- --ge-table-footer-west-horizontal-border: var(--ge-table-header-west-horizontal-border);
44
- --ge-table-footer-west-vertical-border: var(--ge-table-header-west-vertical-border);
45
- --ge-table-footer-center-horizontal-border: var(--ge-table-header-center-horizontal-border);
46
- --ge-table-footer-center-vertical-border: var(--ge-table-header-center-vertical-border);
47
- --ge-table-footer-east-horizontal-border: var(--ge-table-header-east-horizontal-border);
48
- --ge-table-footer-east-vertical-border: var(--ge-table-header-east-vertical-border);
49
-
50
-
51
- --ge-table-body-west-selected-range-bg: rgba(0, 152, 219, 0.4);
52
- --ge-table-body-center-selected-range-bg: rgba(0, 152, 219, 0.4);
53
- --ge-table-body-east-selected-range-bg: rgba(0, 152, 219, 0.4);
54
- --ge-table-body-west-selected-range-text: #000;
55
- --ge-table-body-center-selected-range-text: #000;
56
- --ge-table-body-east-selected-range-text: #000;
57
-
58
-
59
- --ge-table-border : #ccc;
60
-
61
- --ge-table-row-odd-bg: transparent;
62
- --ge-table-row-even-bg: transparent;
63
- --ge-table-column-odd-bg: transparent;
64
- --ge-table-column-even-bg: transparent;
65
-
66
- --ge-table-hover-column-bg: rgba(0, 224, 255, 0.27);
67
- --ge-table-hover-row-bg: rgba(0, 224, 255, 0.27);
68
- --ge-table-focus-border: rgb(0, 255, 255);
69
-
70
- --ge-table-color-error-text: #e00034;
71
- --ge-table-tree-arrow-collapsed-color: #e00034;
72
- --ge-table-column-resize-handle-border: rgb(0, 255, 255);
73
-
74
- --ge-table-dragged-col-div-bg: lightcyan;
75
- --ge-table-drop-zone-bg: rgba(244, 255, 242, 0.6);
76
- }
77
-
78
-
79
-
80
-
81
- :root [data-theme= "dark"] {
82
- --ge-table-bg: #000;
83
- --ge-table-header-west-bg: oklch(0% 0 0);
84
- --ge-table-header-center-bg: oklch(0% 0 0);
85
- --ge-table-header-east-bg: oklch(0% 0 0);
86
- --ge-table-header-west-text: oklch(100% 0 0);
87
- --ge-table-header-center-text: oklch(100% 0 0);
88
- --ge-table-header-east-text: oklch(100% 0 0);
89
- --ge-table-header-west-horizontal-border: oklch(30% 0 0);
90
- --ge-table-header-west-vertical-border: oklch(32% 0 0);
91
- --ge-table-header-center-horizontal-border: oklch(30% 0 0);
92
- --ge-table-header-center-vertical-border: oklch(32% 0 0);
93
- --ge-table-header-east-horizontal-border: oklch(30% 0 0);
94
- --ge-table-header-east-vertical-border: oklch(32% 0 0);
95
- --ge-table-body-west-bg: oklch(0% 0 0);
96
- --ge-table-body-center-bg: oklch(0% 0 0);
97
- --ge-table-body-east-bg: oklch(0% 0 0);
98
- --ge-table-body-west-text: oklch(100% 0 0);
99
- --ge-table-body-center-text: oklch(100% 0 0);
100
- --ge-table-body-east-text: oklch(100% 0 0);
101
- --ge-table-body-west-horizontal-border: oklch(30% 0 0);
102
- --ge-table-body-west-vertical-border: oklch(32% 0 0);
103
- --ge-table-body-center-horizontal-border: oklch(30% 0 0);
104
- --ge-table-body-center-vertical-border: oklch(32% 0 0);
105
- --ge-table-body-east-horizontal-border: oklch(30% 0 0);
106
- --ge-table-body-east-vertical-border: oklch(32% 0 0);
107
- --ge-table-footer-west-bg: oklch(0% 0 0);
108
- --ge-table-footer-center-bg: oklch(0% 0 0);
109
- --ge-table-footer-east-bg: oklch(0% 0 0);
110
- --ge-table-footer-west-text: var(--ge-table-header-center-text);;
111
- --ge-table-footer-center-text: var(--ge-table-header-center-text);;
112
- --ge-table-footer-east-text: var(--ge-table-header-center-text);;
113
- --ge-table-footer-west-horizontal-border: oklch(30% 0 0);
114
- --ge-table-footer-west-vertical-border: oklch(32% 0 0);
115
- --ge-table-footer-center-horizontal-border: oklch(30% 0 0);
116
- --ge-table-footer-center-vertical-border: oklch(32% 0 0);
117
- --ge-table-footer-east-horizontal-border: oklch(30% 0 0);
118
- --ge-table-footer-east-vertical-border: oklch(32% 0 0);
119
- --ge-table-border: oklch(32% 0 0);
120
- --ge-table-row-odd-bg: oklch(0% 0 0);
121
- --ge-table-row-even-bg: oklch(0% 0 0);
122
- --ge-table-column-odd-bg: oklch(0% 0 0);
123
- --ge-table-column-even-bg: oklch(0% 0 0);
124
- --ge-table-hover-column-bg: oklch(0% 0 0);
125
- --ge-table-hover-row-bg: oklch(0% 0 0);
126
- --ge-table-focus-border: rgb(0, 255, 255);;
127
- --ge-table-color-error-text: #ffa8b5;
128
- --ge-table-tree-arrow-collapsed-color: #ffa8b5;
129
- --ge-table-column-resize-handle-border: rgb(0, 255, 255);;
130
- --ge-table-dragged-col-div-bg: oklch(0% 0 0);
131
- --ge-table-drop-zone-bg: oklch(0% 0 0);
132
-
133
-
134
-
135
- --ge-table-body-west-selected-range-bg: oklch(19% 0.2 205.2);
136
- --ge-table-body-center-selected-range-bg: oklch(19% 0.2 205.2);
137
- --ge-table-body-east-selected-range-bg: oklch(19% 0.2 205.2);
138
- --ge-table-body-west-selected-range-text: #000;
139
- --ge-table-body-center-selected-range-text: #000;
140
- --ge-table-body-east-selected-range-text: #000;
141
- }
@@ -1,88 +0,0 @@
1
-
2
- .ge-table-col-div {
3
- text-align: center;
4
- line-height: 2.5;
5
- user-select: none;
6
- }
7
-
8
- .ge-table-label-div {
9
- padding: 0;
10
- display: block;
11
- text-overflow: ellipsis;
12
- overflow: hidden;
13
- }
14
-
15
-
16
- .ge-table-label-div .ge-table-label {
17
- padding-left: 10px;
18
- padding-right: 10px;
19
- }
20
-
21
- .ge-table-text-align-left {
22
- text-align: left;
23
- }
24
-
25
- .ge-table-text-align-right {
26
- text-align: right;
27
- }
28
-
29
- .ge-table-text-align-center {
30
- text-align: center;
31
- }
32
-
33
- /* Row checkbox */
34
- .ge-table-row-checkbox-div {
35
- padding-left: 14px;
36
- }
37
-
38
-
39
-
40
-
41
- /* Tree table */
42
-
43
- .ge-table-col-div.ge-table-col-div-0.ge-table-tree-cell {
44
- text-align: left;
45
- }
46
-
47
- .ge-table-tree-cell .ge-table-label-div {
48
- padding-left: 0;
49
- padding-right: 10px;
50
- display: inline;
51
- }
52
-
53
-
54
- .ge-table-col-tree {
55
- text-align: left;
56
- }
57
-
58
- .ge-padding-property-checkbox {
59
- padding-left: 0;
60
- }
61
-
62
- .ge-table-col-tree.ge-table-tree-deep-0 {
63
- padding-left: 16px;
64
- }
65
-
66
- .ge-table-col-tree.ge-table-tree-deep-1 {
67
- padding-left: 36px;
68
- }
69
-
70
- .ge-table-col-tree.ge-table-tree-deep-2 {
71
- padding-left: 56px;
72
- }
73
-
74
- .ge-table-col-tree.ge-table-tree-deep-3 {
75
- padding-left: 76px;
76
- }
77
-
78
- .ge-table-col-tree.ge-table-tree-deep-4 {
79
- padding-left: 96px;
80
- }
81
-
82
- .ge-table-col-tree.ge-table-tree-deep-5 {
83
- padding-left: 116px;
84
- }
85
-
86
- .ge-table-col-tree.ge-table-tree-deep-5 {
87
- padding-left: 136px;
88
- }
@@ -1,152 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- ElementRef,
5
- Input,
6
- NgZone,
7
- OnDestroy,
8
- OnInit,
9
- Output,
10
- Renderer2,
11
- ViewEncapsulation
12
- } from "@angular/core";
13
- import { CommonModule } from "@angular/common";
14
- import { debounceTime, Subject, takeWhile } from "rxjs";
15
- import {
16
- EventListenerIf,
17
- GeModelChangeEvent,
18
- GeMouseEvent,
19
- TableApi,
20
- TableModelIf,
21
- TableOptions,
22
- TableOptionsIf,
23
- TableScope
24
- } from "@guiexpert/table";
25
- import { DomService } from "./service/dom-service";
26
-
27
-
28
- @Component({
29
- selector: "guiexpert-table",
30
- standalone: true,
31
- imports: [CommonModule],
32
- providers: [DomService],
33
- template: "",
34
- styleUrls: [
35
- "./table.component.css",
36
- "./table-color-vars.css",
37
- "./table-color-classes.css"
38
- ],
39
- encapsulation: ViewEncapsulation.None,
40
- changeDetection: ChangeDetectionStrategy.OnPush
41
- })
42
- export class TableComponent implements OnInit, OnDestroy, EventListenerIf {
43
-
44
- @Output()
45
- tableReady = new Subject<TableApi>();
46
-
47
- @Output()
48
- mouseMoved: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
49
-
50
- @Output()
51
- mouseDragging: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
52
-
53
- @Output()
54
- mouseDraggingEnded: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
55
-
56
- @Output()
57
- contextmenu: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
58
-
59
- @Output()
60
- mouseClicked: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
61
-
62
- @Output()
63
- modelChanged: Subject<GeModelChangeEvent> = new Subject<GeModelChangeEvent>();
64
-
65
- @Output()
66
- checkboxChanged: Subject<any[]> = new Subject<any[]>();
67
-
68
- @Input()
69
- tableModel?: TableModelIf;
70
-
71
- @Input()
72
- tableOptions: TableOptionsIf = new TableOptions();
73
-
74
- @Input()
75
- debounceMouseClickDelay: number = 150;
76
-
77
- private debounceMouseClick: Subject<GeMouseEvent> = new Subject<GeMouseEvent>();
78
-
79
- private tableScope?: TableScope;
80
- private alive = true;
81
-
82
-
83
- constructor(
84
- private readonly renderer: Renderer2,
85
- private readonly elementRef: ElementRef,
86
- private readonly zone: NgZone,
87
- private readonly domService: DomService
88
- ) {
89
- }
90
-
91
-
92
- onContextmenu(evt: GeMouseEvent): void {
93
- this.contextmenu.next(evt);
94
- }
95
-
96
- onMouseMoved(evt: GeMouseEvent): void {
97
- this.mouseMoved.next(evt);
98
- }
99
-
100
- // will be called by table-scope:
101
- onMouseClicked(evt: GeMouseEvent): void {
102
- this.debounceMouseClick.next(evt);
103
- }
104
-
105
- onCheckboxChanged(arr: any[]): void {
106
- this.checkboxChanged.next(arr);
107
- }
108
-
109
- onModelChanged(evt: GeModelChangeEvent): void {
110
- this.modelChanged.next(evt);
111
- }
112
-
113
- ngOnInit(): void {
114
- this.initModel();
115
- this.debounceMouseClick
116
- .pipe(
117
- debounceTime(this.debounceMouseClickDelay),
118
- takeWhile(() => this.alive)
119
- )
120
- .subscribe((value) => this.mouseClicked.next(value));
121
- }
122
-
123
- ngOnDestroy(): void {
124
- this.alive = false;
125
- }
126
-
127
-
128
- onMouseDragging(evt: GeMouseEvent): void {
129
- this.mouseDragging.next(evt);
130
- }
131
-
132
- onMouseDraggingEnd(evt: GeMouseEvent): void {
133
- this.mouseDraggingEnded.next(evt);
134
- }
135
-
136
-
137
- private initModel() {
138
- this.zone.runOutsideAngular(this.init.bind(this));
139
- }
140
-
141
- private init() {
142
- if (this.tableModel) {
143
- this.tableScope = new TableScope(
144
- this.elementRef.nativeElement, this.tableModel, this.domService, this.tableOptions, this
145
- );
146
- this.tableScope.firstInit();
147
- this.tableReady.next(this.tableScope.getApi());
148
- }
149
- }
150
-
151
-
152
- }
package/tsconfig.json DELETED
@@ -1,28 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "files": [],
4
- "include": [],
5
- "references": [
6
- {
7
- "path": "./tsconfig.lib.json"
8
- },
9
- {
10
- "path": "./tsconfig.lib.prod.json"
11
- }
12
- ],
13
- "compilerOptions": {
14
- "target": "es2020",
15
- "forceConsistentCasingInFileNames": true,
16
- "strict": true,
17
- "noImplicitOverride": true,
18
- "noPropertyAccessFromIndexSignature": true,
19
- "noImplicitReturns": true,
20
- "noFallthroughCasesInSwitch": true
21
- },
22
- "angularCompilerOptions": {
23
- "enableI18nLegacyMessageIdFormat": false,
24
- "strictInjectionParameters": true,
25
- "strictInputAccessModifiers": true,
26
- "strictTemplates": true
27
- }
28
- }
package/tsconfig.lib.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "declaration": true,
6
- "declarationMap": true,
7
- "inlineSources": true,
8
- "types": []
9
- },
10
- "exclude": [
11
- "jest.config.ts",
12
- "**/*.test.ts",
13
- "**/*.spec.ts"
14
- ],
15
- "include": [
16
- "**/*.ts"
17
- ]
18
- }
@@ -1,9 +0,0 @@
1
- {
2
- "extends": "./tsconfig.lib.json",
3
- "compilerOptions": {
4
- "declarationMap": false
5
- },
6
- "angularCompilerOptions": {
7
- "compilationMode": "partial"
8
- }
9
- }