@exmg/exm-grid 1.0.6 → 1.0.8-alpha.12

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 (52) hide show
  1. package/dist/index.d.ts +14 -0
  2. package/dist/index.js +14 -0
  3. package/package.json +17 -19
  4. package/index.d.ts +0 -14
  5. package/index.js +0 -14
  6. package/src/search/exm-toolbar-search.d.ts +0 -25
  7. package/src/search/exm-toolbar-search.js +0 -197
  8. package/src/styles/exm-grid-base-toolbar-styles-css.d.ts +0 -2
  9. package/src/styles/exm-grid-base-toolbar-styles-css.js +0 -4
  10. package/src/styles/exm-grid-base-toolbar-styles.scss +0 -89
  11. package/src/styles/exm-grid-common-styles-css.d.ts +0 -2
  12. package/src/styles/exm-grid-common-styles-css.js +0 -4
  13. package/src/styles/exm-grid-common-styles.scss +0 -1
  14. package/src/styles/exm-grid-pagination-styles-css.d.ts +0 -2
  15. package/src/styles/exm-grid-pagination-styles-css.js +0 -4
  16. package/src/styles/exm-grid-pagination-styles.scss +0 -69
  17. package/src/styles/exm-grid-setting-selection-list-styles-css.d.ts +0 -2
  18. package/src/styles/exm-grid-setting-selection-list-styles-css.js +0 -4
  19. package/src/styles/exm-grid-setting-selection-list-styles.scss +0 -8
  20. package/src/styles/exm-grid-styles-css.d.ts +0 -2
  21. package/src/styles/exm-grid-styles-css.js +0 -4
  22. package/src/styles/exm-grid-styles.scss +0 -387
  23. package/src/table/exm-grid-base-toolbar.d.ts +0 -23
  24. package/src/table/exm-grid-base-toolbar.js +0 -91
  25. package/src/table/exm-grid-pagination.d.ts +0 -37
  26. package/src/table/exm-grid-pagination.js +0 -190
  27. package/src/table/exm-grid-setting-selection-list.d.ts +0 -24
  28. package/src/table/exm-grid-setting-selection-list.js +0 -124
  29. package/src/table/exm-grid-smart-toolbar.d.ts +0 -31
  30. package/src/table/exm-grid-smart-toolbar.js +0 -138
  31. package/src/table/exm-grid-toolbar-filters.d.ts +0 -36
  32. package/src/table/exm-grid-toolbar-filters.js +0 -77
  33. package/src/table/exm-grid-toolbar.d.ts +0 -42
  34. package/src/table/exm-grid-toolbar.js +0 -283
  35. package/src/table/exm-grid.d.ts +0 -130
  36. package/src/table/exm-grid.js +0 -333
  37. package/src/table/featrues/exm-column-sortable.d.ts +0 -12
  38. package/src/table/featrues/exm-column-sortable.js +0 -50
  39. package/src/table/featrues/exm-row-expandable.d.ts +0 -9
  40. package/src/table/featrues/exm-row-expandable.js +0 -42
  41. package/src/table/featrues/exm-row-selectable.d.ts +0 -20
  42. package/src/table/featrues/exm-row-selectable.js +0 -204
  43. package/src/table/featrues/exm-row-sortable.d.ts +0 -9
  44. package/src/table/featrues/exm-row-sortable.js +0 -50
  45. package/src/table/types/exm-grid-smart-toolbar-types.d.ts +0 -17
  46. package/src/table/types/exm-grid-smart-toolbar-types.js +0 -6
  47. package/src/table/types/exm-grid-toolbar-types.d.ts +0 -55
  48. package/src/table/types/exm-grid-toolbar-types.js +0 -16
  49. package/src/table/types/exm-grid-types.d.ts +0 -15
  50. package/src/table/types/exm-grid-types.js +0 -2
  51. package/src/table/utils/exm-query-selectors.d.ts +0 -12
  52. package/src/table/utils/exm-query-selectors.js +0 -37
@@ -1,387 +0,0 @@
1
- @use '@material/typography/mixins' as typography;
2
-
3
- @mixin sortable-col-padding() {
4
- padding-right: calc(var(--exm-table-th-sort-icon-height) + var(--exm-table-th-sort-margin-left));
5
- &.grid-col-number {
6
- padding-right: calc(
7
- var(--exm-table-th-sort-icon-height) + var(--exm-table-th-sort-margin-left) +
8
- var(--exm-table-col-number-padding-right)
9
- );
10
- }
11
- }
12
-
13
- @mixin table-layout-fixed() {
14
- &[data-table-layout='fixed'] {
15
- table-layout: fixed;
16
- td:not(.grid-checkbox-cell):not(.menu-cell) {
17
- overflow: hidden;
18
- white-space: nowrap;
19
- text-overflow: ellipsis;
20
- }
21
- th,
22
- td {
23
- &.grid-checkbox-cell {
24
- width: var(--exm-table-checkbox-cell-width);
25
- }
26
- &.no-ellipsis {
27
- text-overflow: initial;
28
- }
29
- }
30
- }
31
- }
32
-
33
- :host {
34
- @include typography.base;
35
- display: block;
36
-
37
- --exm-arrow-upward-url: url('/node_modules/@exmg/exm-grid/assets/arrow-upward.svg');
38
- --exm-table-card-width: var(--exm-theme-table-card-width, 100%);
39
- --exm-table-card-margin-bottom: var(--exm-theme-table-card-margin-bottom, 5px);
40
-
41
- --exm-table-color: var(--exm-theme-table-on-surface, var(--md-sys-color-on-surface-container));
42
- --exm-table-card-background-color: var(--exm-theme-table-surface, var(--md-sys-color-surface-container));
43
- --exm-table-row-divider-color: var(--exm-theme-table-row-divider-color, var(--md-sys-color-surface-variant));
44
-
45
- --exm-table-row-selected-color: var(--exm-theme-table-row-selected-color, var(--md-sys-color-on-secondary-container));
46
- --exm-table-row-selected-background-color: var(
47
- --exm-theme-table-row-selected-background-color,
48
- var(--md-sys-color-secondary-container)
49
- );
50
- --exm-table-row-hover-color: var(--exm-theme-table-row-hover-color, var(--md-sys-color-on-surface));
51
- --exm-table-row-hover-background-color: var(
52
- --exm-theme-table-row-hover-background-color,
53
- var(--md-sys-color-surface-container-highest)
54
- );
55
- --exm-table-row-dragged-background-color: var(
56
- --exm-theme-table-row-dragged-background-color,
57
- var(--md-sys-color-surface-container-low)
58
- );
59
- --exm-table-rows-expanded-divider-border: var(--exm-theme-table-rows-expanded-divider-border, none);
60
- --exm-table-rows-expanded-border: var(--exm-theme-table-rows-expanded-border, none);
61
- --exm-table-rows-expanded-background-color: var(
62
- --exm-theme-table-rows-expanded-background-color,
63
- var(--md-sys-color-surface-container-low)
64
- );
65
- --exm-table-rows-expanded-color: var(--exm-theme-table-rows-expanded-color, var(--md-sys-color-on-surface));
66
- --exm-table-th-color: var(--exm-theme-table-th-on-surface, var(--md-sys-color-on-surface-container));
67
- --exm-table-th-background-color: var(--exm-theme-table-th-surface, var(--md-sys-color-surface-container));
68
- --exm-table-th-sortable-hover-color: var(--exm-theme-table-th-sortable-hover-color, var(--md-sys-color-on-surface));
69
- --exm-table-columns-background-color: var(--exm-theme-table-columns-background-color, var(--md-sys-color-surface));
70
-
71
- --exm-table-th-height: var(--exm-theme-table-th-height, 48px);
72
- --exm-table-th-sort-margin-left: var(--exm-theme-table-th-sort-margin-left, 0px);
73
- --exm-table-td-height: var(--exm-theme-table-td-height, 48px);
74
- --exm-table-th-sort-icon-height: var(--exm-theme-table-th-sort-icon-height, 1em);
75
- --exm-table-th-sort-icon-width: var(--exm-theme-table-th-sort-icon-width, 1em);
76
-
77
- --exm-table-col-number-padding-right: var(--exm-theme-table-col-number-padding-right, 10px);
78
- --exm-table-checkbox-cell-width: var(--exm-theme-table-checkbox-cell-width, 24px);
79
-
80
- --exm-paper-combobox-selected-item-color: var(var(--md-sys-color-primary), #000000);
81
- --exm-paper-combobox-color: var(--md-sys-color-on-surface);
82
-
83
- /* Adjust toolbar to grid */
84
- --exm-table-toolbar-setting-position: var(--exm-theme-table-toolbar-setting-position, absolute);
85
- /* End Adjust toolbar to grid */
86
- }
87
-
88
- ::slotted([slot='pagination']) {
89
- display: flex;
90
- align-items: center;
91
- justify-content: flex-end;
92
- // overflow-x: auto;
93
- border-top: 1px solid var(--exm-table-row-divider-color);
94
- }
95
-
96
- ::slotted([slot='toolbar']) {
97
- display: block;
98
- }
99
-
100
- .table-card-container {
101
- @include typography.base;
102
- border: none;
103
- width: var(--exm-table-card-width);
104
- margin: 0;
105
- padding: 0;
106
- box-shadow: var(--exm-theme-table-box-shadow, none);
107
- }
108
- :host([with-toolbar]) {
109
- .table-card {
110
- border-top: 1px solid var(--exm-table-row-divider-color);
111
- }
112
- }
113
- .table-card {
114
- @include typography.base;
115
- border: none;
116
- border-bottom-left-radius: 4px;
117
- border-bottom-right-radius: 4px;
118
- width: var(--exm-table-card-width);
119
- background-color: var(--exm-table-card-background-color);
120
- margin-bottom: var(--exm-table-card-margin-bottom);
121
- border-top-left-radius: var(--exm-theme-table-radius, var(--exm-surface-border-radius, 16px));
122
- border-top-right-radius: var(--exm-theme-table-radius, var(--exm-surface-border-radius, 16px));
123
- border-bottom-left-radius: var(--exm-theme-table-radius, var(--exm-surface-border-radius, 16px));
124
- border-bottom-right-radius: var(--exm-theme-table-radius, var(--exm-surface-border-radius, 16px));
125
- }
126
-
127
- /*.table-container {
128
- overflow-x: auto;
129
- }*/
130
-
131
- table {
132
- @include table-layout-fixed();
133
- width: 100%;
134
- color: var(--exm-table-color);
135
- border-spacing: 0;
136
- border: none;
137
-
138
- thead {
139
- tr,
140
- th {
141
- @include typography.typography('caption');
142
- }
143
- }
144
-
145
- tbody,
146
- tfoot {
147
- tr,
148
- td {
149
- @include typography.typography('body2');
150
- }
151
- }
152
- }
153
-
154
- td {
155
- height: var(--exm-table-td-height);
156
- }
157
-
158
- .grid-toolbar th {
159
- padding: 0;
160
- text-align: left;
161
- > * {
162
- overflow-x: auto;
163
- }
164
- }
165
-
166
- .grid-columns {
167
- th {
168
- height: var(--exm-table-th-height);
169
- font-weight: 500;
170
- font-style: normal;
171
- font-stretch: normal;
172
- text-transform: uppercase;
173
- line-height: 1.33;
174
- letter-spacing: 2px;
175
- color: var(--exm-table-th-color);
176
- background-color: var(--exm-table-th-background-color);
177
- vertical-align: middle;
178
- text-align: left;
179
-
180
- user-select: none;
181
- white-space: nowrap;
182
-
183
- > span {
184
- vertical-align: middle;
185
- max-width: 100%;
186
- display: inline-block;
187
- overflow: hidden;
188
- white-space: nowrap;
189
- text-overflow: ellipsis;
190
- }
191
- svg {
192
- fill: var(--exm-table-th-color);
193
- }
194
- }
195
- }
196
-
197
- .grid-columns th,
198
- tbody td {
199
- padding-left: 16px;
200
- }
201
-
202
- .grid-columns th:last-child,
203
- tbody td:last-child {
204
- padding-right: 10px;
205
- }
206
-
207
- th,
208
- td {
209
- border-top: 1px solid var(--exm-table-row-divider-color);
210
- }
211
-
212
- tbody {
213
- td {
214
- height: var(--exm-table-td-height);
215
- @include typography.typography('body2');
216
- font-weight: normal;
217
- font-style: normal;
218
- font-stretch: normal;
219
- line-height: 1.43px;
220
- letter-spacing: 0.3px;
221
- color: var(--exm-table-color);
222
- svg {
223
- fill: var(--exm-table-color);
224
- }
225
- }
226
- }
227
-
228
- /**** COLUMN SORT *********/
229
- th[data-sort] {
230
- cursor: pointer;
231
-
232
- &:hover {
233
- color: var(--exm-table-th-sortable-hover-color);
234
- }
235
-
236
- &::after {
237
- display: inline-block;
238
- content: '';
239
- -webkit-mask-image: var(--exm-arrow-upward-url);
240
- mask-image: var(--exm-arrow-upward-url);
241
- background-color: currentColor;
242
- background-size: contain;
243
- height: var(--exm-table-th-sort-icon-height);
244
- width: var(--exm-table-th-sort-icon-width);
245
- margin-left: var(--exm-table-th-sort-margin-left);
246
- vertical-align: middle;
247
- opacity: 0;
248
- }
249
- }
250
-
251
- th[data-sort-direction]::after {
252
- opacity: 1;
253
- transition: transform 0.1s linear;
254
- }
255
-
256
- th[data-sort-direction='ASC']::after {
257
- transform: rotate(0deg);
258
- }
259
-
260
- th[data-sort-direction='DESC']::after {
261
- transform: rotate(180deg);
262
- }
263
- /**** COLUMN SORT END *********/
264
-
265
- /**** SELECTABLE ROW *********/
266
- tbody > tr:not(.grid-row-detail):hover {
267
- color: var(--exm-table-row-hover-color);
268
- background-color: var(--exm-table-row-hover-background-color);
269
- td {
270
- color: var(--exm-table-row-hover-color);
271
- }
272
- svg {
273
- fill: var(--exm-table-row-hover-color);
274
- }
275
- }
276
-
277
- tr[data-selected] {
278
- color: var(--exm-table-row-selected-color);
279
- background-color: var(--exm-table-row-selected-background-color);
280
- td {
281
- color: var(--exm-table-row-selected-color);
282
- }
283
- svg {
284
- fill: var(--exm-table-row-selected-color);
285
- }
286
- }
287
- /**** END SELECTABLE ROW *********/
288
-
289
- /**** EXPANDABLE ROW *********/
290
- tbody {
291
- tr[data-has-expanded-detail],
292
- tr[data-has-expanded-detail]:hover,
293
- tr[data-is-row-expanded] {
294
- background-color: var(--exm-table-rows-expanded-background-color);
295
- border: var(--exm-table-rows-expanded-border);
296
-
297
- td {
298
- color: var(--exm-table-rows-expanded-color);
299
- svg {
300
- fill: var(--exm-table-rows-expanded-color);
301
- }
302
- }
303
- }
304
-
305
- tr[data-is-row-expanded] td {
306
- border-bottom: none;
307
- }
308
-
309
- tr[data-has-expanded-detail] td,
310
- tr[data-has-expanded-detail]:hover td {
311
- border-bottom: var(--exm-table-rows-expanded-divider-border);
312
- }
313
- }
314
-
315
- tr.grid-row-detail {
316
- display: none;
317
-
318
- &[data-is-row-expanded] {
319
- display: table-row;
320
- }
321
-
322
- td {
323
- padding: 20px;
324
- }
325
- }
326
-
327
- tr .grid-icon-rotate[data-is-expanded] > * {
328
- transition: transform 0.1s linear;
329
- transform: rotate(180deg);
330
- }
331
-
332
- tr .grid-icon-rotate[data-is-expandable]:not([data-is-expanded]) > * {
333
- transition: transform 0.1s linear;
334
- transform: rotate(0deg);
335
- }
336
- /**** END EXPANDABLE ROW *********/
337
-
338
- /**** START SORTABLE ROW *********/
339
- .grid-row-drag-handler {
340
- cursor: move;
341
- vertical-align: middle;
342
- > * {
343
- vertical-align: middle;
344
- }
345
- }
346
- tr {
347
- &.dragged {
348
- background-color: var(--exm-table-row-dragged-background-color);
349
- opacity: 0.25;
350
- box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5) inset;
351
- }
352
-
353
- &.cloned {
354
- background-color: var(--exm-table-row-dragged-background-color);
355
- width: 100%;
356
- box-sizing: border-box;
357
- box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
358
- opacity: 0.9;
359
- }
360
- }
361
- /**** END EXPANDABLE ROW *********/
362
-
363
- /***** GRID UTILS ***/
364
- tr td.grid-cell-visible-on-hover {
365
- text-align: center;
366
- }
367
-
368
- tr td.grid-cell-visible-on-hover > * {
369
- visibility: hidden;
370
- }
371
-
372
- tr:hover td.grid-cell-visible-on-hover > *,
373
- tr[data-has-expanded-detail] td.grid-cell-visible-on-hover > * {
374
- visibility: visible;
375
- }
376
-
377
- tr td.grid-col-number,
378
- tr th.grid-col-number {
379
- padding-right: var(--exm-table-col-number-padding-right);
380
- text-align: right;
381
- }
382
-
383
- tr th.grid-col-number {
384
- > span {
385
- width: 100%;
386
- }
387
- }
@@ -1,23 +0,0 @@
1
- import { ExmgElement } from '@exmg/lit-base/index.js';
2
- /**
3
- * ### Styling
4
- * The following custom properties are available for styling:
5
- *
6
- */
7
- export declare class ExmGridBaseToolbar extends ExmgElement {
8
- static styles: import("lit").CSSResult[];
9
- private actionsCount;
10
- private settingsCount;
11
- private active;
12
- disableSeperator: boolean;
13
- private observer?;
14
- private getChildElementCount;
15
- connectedCallback(): void;
16
- disconnectedCallback(): void;
17
- render(): import("lit-html").TemplateResult<1>;
18
- }
19
- declare global {
20
- interface HTMLElementTagNameMap {
21
- 'exm-grid-base-toolbar': ExmGridBaseToolbar;
22
- }
23
- }
@@ -1,91 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { html } from 'lit';
3
- import { customElement, property, state } from 'lit/decorators.js';
4
- import { ExmgElement } from '@exmg/lit-base/index.js';
5
- import { style } from '../styles/exm-grid-base-toolbar-styles-css.js';
6
- /**
7
- * ### Styling
8
- * The following custom properties are available for styling:
9
- *
10
- */
11
- let ExmGridBaseToolbar = class ExmGridBaseToolbar extends ExmgElement {
12
- constructor() {
13
- super(...arguments);
14
- this.actionsCount = 0;
15
- this.settingsCount = 0;
16
- this.active = false;
17
- this.disableSeperator = false;
18
- }
19
- getChildElementCount(selector) {
20
- const element = this.querySelector(selector);
21
- return element ? element.childElementCount : 0;
22
- }
23
- connectedCallback() {
24
- super.connectedCallback();
25
- this.observer = new MutationObserver((mutationsList) => {
26
- setTimeout(() => {
27
- for (const mutation of mutationsList) {
28
- if (mutation.type === 'childList') {
29
- this.actionsCount = this.getChildElementCount('div[slot=actions]');
30
- this.settingsCount = this.getChildElementCount('div[slot=settings]');
31
- this.active = this.actionsCount > 0;
32
- }
33
- }
34
- }, 60);
35
- });
36
- this.actionsCount = this.getChildElementCount('div[slot=actions]');
37
- this.settingsCount = this.getChildElementCount('div[slot=settings]');
38
- this.active = this.actionsCount > 0;
39
- this.observer.observe(this, { attributes: false, childList: true, subtree: true });
40
- }
41
- disconnectedCallback() {
42
- this.observer.disconnect();
43
- super.disconnectedCallback();
44
- }
45
- render() {
46
- return html `
47
- <div class="wrapper ${this.active ? 'active' : ''}">
48
- ${this.actionsCount > 0
49
- ? html `
50
- <div class="actions">
51
- <slot name="actions"></slot>
52
- </div>
53
- `
54
- : ''}
55
- <div class="seperator ${this.actionsCount > 0 && !this.disableSeperator ? 'with-action-separator' : ''}">
56
- &nbsp;
57
- </div>
58
- <div class="description">
59
- <slot name="description"></slot>
60
- </div>
61
- <div class="filters">
62
- <slot name="filters"></slot>
63
- </div>
64
- <div class="settings ${this.settingsCount > 0 ? 'has-settings' : ''}">
65
- <slot name="settings"></slot>
66
- </div>
67
- <div class="extra">
68
- <slot name="extra"></slot>
69
- </div>
70
- </div>
71
- `;
72
- }
73
- };
74
- ExmGridBaseToolbar.styles = [style];
75
- __decorate([
76
- state()
77
- ], ExmGridBaseToolbar.prototype, "actionsCount", void 0);
78
- __decorate([
79
- state()
80
- ], ExmGridBaseToolbar.prototype, "settingsCount", void 0);
81
- __decorate([
82
- state()
83
- ], ExmGridBaseToolbar.prototype, "active", void 0);
84
- __decorate([
85
- property({ type: Boolean })
86
- ], ExmGridBaseToolbar.prototype, "disableSeperator", void 0);
87
- ExmGridBaseToolbar = __decorate([
88
- customElement('exm-grid-base-toolbar')
89
- ], ExmGridBaseToolbar);
90
- export { ExmGridBaseToolbar };
91
- //# sourceMappingURL=exm-grid-base-toolbar.js.map
@@ -1,37 +0,0 @@
1
- import { ExmgElement } from '@exmg/lit-base/index.js';
2
- import '@material/web/iconbutton/icon-button.js';
3
- import '@material/web/icon/icon.js';
4
- import './exm-grid-toolbar-filters.js';
5
- /**
6
- * ### Styling
7
- * The following custom properties are available for styling:
8
- *
9
- * Custom property | Description | Default
10
- * ----------------|-------------|----------
11
- * `--exm-theme-table-pagination-bg-color` | pagination background color | `var(--mdc-theme-surface, #ffffff);`
12
- * `--exm-theme-table-pagination-color` | pagination foreground (mostly text) color | `var(--mdc-theme-on-surface, #02182b);`
13
- */
14
- export declare class ExmGridPagination extends ExmgElement {
15
- static styles: import("lit").CSSResult[];
16
- pageSizeLabel: string;
17
- pageSizeOptions: number[];
18
- pageSize: number;
19
- pageIndex: number;
20
- itemCount: number;
21
- private renderPageSizeLabel;
22
- private renderPageSizeOptions;
23
- private renderPageRangeLabel;
24
- private renderPageRangeActions;
25
- private renderPrevPage;
26
- private renderNextPage;
27
- private fireEventPageChanged;
28
- private handleOnClickPrev;
29
- private handleOnClickNext;
30
- private handleOnPageSizeChanged;
31
- protected render(): import("lit-html").TemplateResult<1>;
32
- }
33
- declare global {
34
- interface HTMLElementTagNameMap {
35
- 'exm-grid-pagination': ExmGridPagination;
36
- }
37
- }