@aquera/nile-elements 0.1.30-beta-1.4 → 0.1.31-beta-1.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.
- package/README.md +3 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/nile-table/index.cjs.js +2 -0
- package/dist/nile-table/index.cjs.js.map +1 -0
- package/dist/nile-table/index.esm.js +1 -0
- package/dist/nile-table/nile-table.cjs.js +2 -0
- package/dist/nile-table/nile-table.cjs.js.map +1 -0
- package/dist/nile-table/nile-table.css.cjs.js +2 -0
- package/dist/nile-table/nile-table.css.cjs.js.map +1 -0
- package/dist/nile-table/nile-table.css.esm.js +5 -0
- package/dist/nile-table/nile-table.esm.js +3 -0
- package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
- package/dist/nile-table-body/nile-table-body.esm.js +2 -2
- package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js.map +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.css.esm.js +4 -2
- package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js.map +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.css.esm.js +2 -0
- package/dist/nile-table-row/nile-table-row.cjs.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-table/index.d.ts +1 -0
- package/dist/src/nile-table/index.js +2 -0
- package/dist/src/nile-table/index.js.map +1 -0
- package/dist/src/nile-table/nile-table.css.d.ts +12 -0
- package/dist/src/nile-table/nile-table.css.js +17 -0
- package/dist/src/nile-table/nile-table.css.js.map +1 -0
- package/dist/src/nile-table/nile-table.d.ts +43 -0
- package/dist/src/nile-table/nile-table.js +118 -0
- package/dist/src/nile-table/nile-table.js.map +1 -0
- package/dist/src/nile-table-body/nile-table-body.d.ts +3 -1
- package/dist/src/nile-table-body/nile-table-body.js +9 -1
- package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js +4 -2
- package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js.map +1 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.css.js +2 -0
- package/dist/src/nile-table-header-item/nile-table-header-item.css.js.map +1 -1
- package/dist/src/nile-table-row/nile-table-row.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/index.ts +2 -1
- package/src/nile-table/index.ts +1 -0
- package/src/nile-table/nile-table.css.ts +19 -0
- package/src/nile-table/nile-table.ts +132 -0
- package/src/nile-table-body/nile-table-body.ts +8 -2
- package/src/nile-table-cell-item/nile-table-cell-item.css.ts +4 -2
- package/src/nile-table-header-item/nile-table-header-item.css.ts +2 -0
- package/src/nile-table-row/nile-table-row.ts +1 -2
- package/vscode-html-custom-data.json +20 -2
package/package.json
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
"description": "Webcomponent nile-elements following open-wc recommendations",
|
4
4
|
"license": "MIT",
|
5
5
|
"author": "nile-elements",
|
6
|
-
"version": "0.1.
|
6
|
+
"version": "0.1.31-beta-1.0",
|
7
7
|
"main": "dist/src/index.js",
|
8
8
|
"type": "module",
|
9
9
|
"module": "dist/src/index.js",
|
@@ -84,7 +84,7 @@
|
|
84
84
|
"./nile-section-message": "./dist/src/nile-section-message/index.js",
|
85
85
|
"./nile-toolbar": "./dist/src/nile-toolbar/index.js",
|
86
86
|
"./nile-inline-edit": "./dist/src/nile-inline-edit/index.js",
|
87
|
-
"./nile-
|
87
|
+
"./nile-table": "./dist/src/nile-table/index.js"
|
88
88
|
},
|
89
89
|
"scripts": {
|
90
90
|
"analyze": "cem analyze --litelement",
|
@@ -188,4 +188,4 @@
|
|
188
188
|
"prettier --write"
|
189
189
|
]
|
190
190
|
}
|
191
|
-
}
|
191
|
+
}
|
package/src/index.ts
CHANGED
@@ -74,4 +74,5 @@ export { NileDivider } from './nile-divider';
|
|
74
74
|
export { NileTitle } from './nile-title';
|
75
75
|
export { NileSectionMessage } from './nile-section-message';
|
76
76
|
export { NileToolbar } from './nile-toolbar';
|
77
|
-
export { NileInlineEdit } from './nile-inline-edit';
|
77
|
+
export { NileInlineEdit } from './nile-inline-edit';
|
78
|
+
export { NileTable } from './nile-table';
|
@@ -0,0 +1 @@
|
|
1
|
+
export { NileTable } from './nile-table';
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright Aquera Inc 2023
|
3
|
+
*
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import {css} from 'lit';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Table CSS
|
12
|
+
*/
|
13
|
+
export const styles = css`
|
14
|
+
:host {
|
15
|
+
|
16
|
+
}
|
17
|
+
`;
|
18
|
+
|
19
|
+
export default [styles];
|
@@ -0,0 +1,132 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright Aquera Inc 2023
|
3
|
+
*
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import {LitElement, html, CSSResultArray, TemplateResult, PropertyValues} from 'lit';
|
9
|
+
import { customElement, property, query, state} from 'lit/decorators.js';
|
10
|
+
import {styles} from './nile-table.css';
|
11
|
+
import NileElement from '../internal/nile-element';
|
12
|
+
import { NileTableBody } from '../nile-table-body';
|
13
|
+
import { NileTableCellItem } from '../nile-table-cell-item';
|
14
|
+
import { NileTableHeaderItem } from '../nile-table-header-item';
|
15
|
+
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Nile table component.
|
19
|
+
*
|
20
|
+
* @tag nile-table
|
21
|
+
*
|
22
|
+
*/
|
23
|
+
@customElement('nile-table')
|
24
|
+
export class NileTable extends NileElement {
|
25
|
+
@query('slot') defaultSlot: HTMLSlotElement;
|
26
|
+
private rows:Array<NileTableBody>=[];
|
27
|
+
private primaryRowWidths:Array<number>=[]
|
28
|
+
|
29
|
+
|
30
|
+
/**
|
31
|
+
* The styles for nile-table
|
32
|
+
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
33
|
+
*/
|
34
|
+
public static get styles(): CSSResultArray {
|
35
|
+
return [styles];
|
36
|
+
}
|
37
|
+
connectedCallback(): void {
|
38
|
+
super.connectedCallback()
|
39
|
+
this.addEventListener('nile-body-load',this.handleRows)
|
40
|
+
}
|
41
|
+
|
42
|
+
protected firstUpdated(_changedProperties: PropertyValues): void {
|
43
|
+
this.updateComplete.then(()=>{
|
44
|
+
this.handleBodyCssUpdate();
|
45
|
+
})
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
/* #endregion */
|
50
|
+
|
51
|
+
/* #region Methods */
|
52
|
+
|
53
|
+
/**
|
54
|
+
* Render method
|
55
|
+
* @slot This is a slot test
|
56
|
+
*/
|
57
|
+
public render(): TemplateResult {
|
58
|
+
return html`
|
59
|
+
<slot @slotchange="${this.repaintTable}"></slot>
|
60
|
+
`;
|
61
|
+
}
|
62
|
+
|
63
|
+
handleRows(e:CustomEvent){
|
64
|
+
this.rows=[...this.rows,e.detail.comp]
|
65
|
+
}
|
66
|
+
|
67
|
+
handleBodyCssUpdate(){
|
68
|
+
const tableBodies = this.rows;
|
69
|
+
if (!tableBodies.length) return;
|
70
|
+
const firstEl=tableBodies[0].shadowRoot?.querySelector<HTMLDivElement>('div.base')
|
71
|
+
const lastEl=tableBodies[tableBodies.length - 1].shadowRoot?.querySelector<HTMLDivElement>('div.base')
|
72
|
+
if(firstEl) {
|
73
|
+
firstEl.style.borderTopRightRadius="var(--nile-radius-radius-xl)";
|
74
|
+
firstEl.style.borderTopLeftRadius = 'var(--nile-radius-radius-xl)';
|
75
|
+
firstEl.style.borderBottomRightRadius="0px";
|
76
|
+
firstEl.style.borderBottomLeftRadius = '0px';
|
77
|
+
firstEl.style.borderBottom = 'none';
|
78
|
+
}
|
79
|
+
if(lastEl){
|
80
|
+
lastEl.style.borderTopRightRadius="0px";
|
81
|
+
lastEl.style.borderTopLeftRadius = '0px';
|
82
|
+
lastEl.style.borderBottomRightRadius="var(--nile-radius-radius-xl)";
|
83
|
+
lastEl.style.borderBottomLeftRadius = 'var(--nile-radius-radius-xl)';
|
84
|
+
}
|
85
|
+
tableBodies.forEach((tb,i)=>{
|
86
|
+
if(i>0 && i<tableBodies.length-1){
|
87
|
+
const el=tb.shadowRoot?.querySelector<HTMLDivElement>('div.base')
|
88
|
+
if(el) {
|
89
|
+
el.style.borderTopRightRadius="0px";
|
90
|
+
el.style.borderTopLeftRadius = "0px";
|
91
|
+
el.style.borderBottomRightRadius="0px";
|
92
|
+
el.style.borderBottomLeftRadius = "0px";
|
93
|
+
el.style.borderBottom = 'none';
|
94
|
+
}
|
95
|
+
}
|
96
|
+
})
|
97
|
+
}
|
98
|
+
|
99
|
+
getPrimaryColumnWidths(){
|
100
|
+
const primaryTb=this.rows.find(tb=>tb.type=='primary')!;
|
101
|
+
const widthArray=this.getTableCellFetchQuery(primaryTb).map((e:LitElement)=>e.clientWidth) as Array<number>
|
102
|
+
return widthArray;
|
103
|
+
}
|
104
|
+
|
105
|
+
repaintTable(){
|
106
|
+
const primaryRowWidths=this.getPrimaryColumnWidths();
|
107
|
+
const secondaryRows=this.rows.filter(tb=>tb.type!='primary');
|
108
|
+
secondaryRows.forEach((row)=>{
|
109
|
+
let elements=this.getTableCellFetchQuery(row)
|
110
|
+
elements?.forEach((el:NileTableCellItem|NileTableHeaderItem,ind)=>{
|
111
|
+
el.style.setProperty('--cell-width',primaryRowWidths.at(ind)+'px')
|
112
|
+
})
|
113
|
+
})
|
114
|
+
}
|
115
|
+
|
116
|
+
getTableCellFetchQuery(row:NileTableBody):Array<Element>{
|
117
|
+
return row?.shadowRoot?.
|
118
|
+
querySelector<HTMLSlotElement>('slot:not([name])')?.
|
119
|
+
assignedElements()[0]
|
120
|
+
.shadowRoot?.querySelector<HTMLSlotElement>('slot')?.
|
121
|
+
assignedElements()!
|
122
|
+
}
|
123
|
+
/* #endregion */
|
124
|
+
}
|
125
|
+
|
126
|
+
export default NileTable;
|
127
|
+
|
128
|
+
declare global {
|
129
|
+
interface HTMLElementTagNameMap {
|
130
|
+
'nile-table': NileTable;
|
131
|
+
}
|
132
|
+
}
|
@@ -10,6 +10,7 @@ import {
|
|
10
10
|
html,
|
11
11
|
CSSResultArray,
|
12
12
|
TemplateResult,
|
13
|
+
PropertyValues,
|
13
14
|
} from 'lit';
|
14
15
|
import {
|
15
16
|
customElement,
|
@@ -38,8 +39,8 @@ export class NileTableBody extends NileElement {
|
|
38
39
|
*/
|
39
40
|
|
40
41
|
@query('slot') defaultSlot: HTMLSlotElement;
|
41
|
-
@queryAssignedNodes({ flatten: true })
|
42
|
-
|
42
|
+
@queryAssignedNodes({ flatten: true }) _childNodes!: Array<HTMLElement>;
|
43
|
+
@property() type: 'primary' | 'secondary' = 'primary';
|
43
44
|
|
44
45
|
@state() private rows_data: any[] = [];
|
45
46
|
@state() private header_rows_data: any[] = [];
|
@@ -50,6 +51,10 @@ export class NileTableBody extends NileElement {
|
|
50
51
|
return [styles];
|
51
52
|
}
|
52
53
|
|
54
|
+
protected firstUpdated(_changedProperties: PropertyValues): void {
|
55
|
+
this.emit('nile-body-load', { value: this.type, comp:this },true,false)
|
56
|
+
}
|
57
|
+
|
53
58
|
/* #endregion */
|
54
59
|
|
55
60
|
/* #region Methods */
|
@@ -63,6 +68,7 @@ export class NileTableBody extends NileElement {
|
|
63
68
|
}
|
64
69
|
|
65
70
|
handleSlotchange(e: any) {
|
71
|
+
this.emit('nile-body-content-changed', { value: this.type, comp:this },true,false)
|
66
72
|
let row_data: any = [];
|
67
73
|
this._childNodes.forEach((child: any) => {
|
68
74
|
if (child.tagName && child?.tagName?.toLowerCase() === 'nile-table-row') {
|
@@ -12,17 +12,19 @@ import { css } from 'lit';
|
|
12
12
|
*/
|
13
13
|
export const styles = css`
|
14
14
|
:host {
|
15
|
+
--cell-width:auto;
|
16
|
+
--min--height: 52px;
|
17
|
+
--max--cell-width: auto;
|
15
18
|
box-sizing: border-box;
|
16
19
|
display: table-cell;
|
17
20
|
vertical-align: middle;
|
18
|
-
--min--height: 52px;
|
19
|
-
--max--cell-width: auto;
|
20
21
|
max-width: var(--max--cell-width);
|
21
22
|
padding: 16px 24px;
|
22
23
|
min-height: var(--min--height);
|
23
24
|
}
|
24
25
|
|
25
26
|
.column {
|
27
|
+
min-width:var(--cell-width);
|
26
28
|
height: 100%;
|
27
29
|
color: var(--nile-colors-gray-light-mode-600);
|
28
30
|
font-family: var(--nile-font-family-serif);
|
@@ -12,11 +12,13 @@ import { css } from 'lit';
|
|
12
12
|
*/
|
13
13
|
export const styles = css`
|
14
14
|
:host {
|
15
|
+
--cell-width:auto;
|
15
16
|
display: table-cell;
|
16
17
|
box-sizing: border-box;
|
17
18
|
}
|
18
19
|
|
19
20
|
.header__item__wrapper{
|
21
|
+
min-width:var(--cell-width);
|
20
22
|
display:flex;
|
21
23
|
align-items:center;
|
22
24
|
box-sizing: border-box;
|
@@ -47,8 +47,7 @@ export class NileTableRow extends NileElement {
|
|
47
47
|
];
|
48
48
|
for (let i = 0; i < header_items.length; i++) {
|
49
49
|
const header = header_items[i];
|
50
|
-
const haveIcon =
|
51
|
-
header.textContent == event.detail.value.curr_sort_string;
|
50
|
+
const haveIcon = header.textContent == event.detail.value.curr_sort_string;
|
52
51
|
if (!haveIcon) {
|
53
52
|
header.sorting_ct = 0;
|
54
53
|
}
|
@@ -3287,8 +3287,21 @@
|
|
3287
3287
|
},
|
3288
3288
|
{
|
3289
3289
|
"name": "nile-table-body",
|
3290
|
-
"description": "nile-table-body component.\n\nProperties:\n\n * `defaultSlot` {`HTMLSlotElement`} - The styles for TableBody\n\n * `_childNodes` {`HTMLElement[]`} - \n\n * `rows_data` {`any[]`} - \n\n * `header_rows_data` {`any[]`} - \n\n * `sort__index` {`number`} - \n\n * `search__index` {`number`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
3291
|
-
"attributes": [
|
3290
|
+
"description": "nile-table-body component.\n\nAttributes:\n\n * `type` {`\"primary\" | \"secondary\"`} - \n\nProperties:\n\n * `defaultSlot` {`HTMLSlotElement`} - The styles for TableBody\n\n * `_childNodes` {`HTMLElement[]`} - \n\n * `type` {`\"primary\" | \"secondary\"`} - \n\n * `rows_data` {`any[]`} - \n\n * `header_rows_data` {`any[]`} - \n\n * `sort__index` {`number`} - \n\n * `search__index` {`number`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
3291
|
+
"attributes": [
|
3292
|
+
{
|
3293
|
+
"name": "type",
|
3294
|
+
"description": "`type` {`\"primary\" | \"secondary\"`} - \n\nProperty: type\n\nDefault: primary",
|
3295
|
+
"values": [
|
3296
|
+
{
|
3297
|
+
"name": "primary"
|
3298
|
+
},
|
3299
|
+
{
|
3300
|
+
"name": "secondary"
|
3301
|
+
}
|
3302
|
+
]
|
3303
|
+
}
|
3304
|
+
]
|
3292
3305
|
},
|
3293
3306
|
{
|
3294
3307
|
"name": "nile-table-cell-item",
|
@@ -3320,6 +3333,11 @@
|
|
3320
3333
|
"description": "nile-table-row component.\n\nProperties:\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
3321
3334
|
"attributes": []
|
3322
3335
|
},
|
3336
|
+
{
|
3337
|
+
"name": "nile-table",
|
3338
|
+
"description": "Nile table component.\n\nProperties:\n\n * `defaultSlot` {`HTMLSlotElement`} - \n\n * `rows` {`NileTableBody[]`} - \n\n * `primaryRowWidths` {`number[]`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|
3339
|
+
"attributes": []
|
3340
|
+
},
|
3323
3341
|
{
|
3324
3342
|
"name": "nile-tag",
|
3325
3343
|
"description": "Events:\n\n * `nile-remove` {} - Emitted when the remove button is activated.\n\nSlots:\n\n * ` ` {} - The tag's content.\n\nAttributes:\n\n * `variant` {`\"primary\" | \"success\" | \"normal\" | \"warning\" | \"error\" | \"info\"`} - The tag's theme variant.\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The tag's size.\n\n * `pill` {`boolean`} - Draws a pill-style tag with rounded edges.\n\n * `removable` {`boolean`} - Makes the tag removable and shows a remove button.\n\nProperties:\n\n * `styles` - \n\n * `variant` {`\"primary\" | \"success\" | \"normal\" | \"warning\" | \"error\" | \"info\"`} - The tag's theme variant.\n\n * `size` {`\"medium\" | \"small\" | \"large\"`} - The tag's size.\n\n * `pill` {`boolean`} - Draws a pill-style tag with rounded edges.\n\n * `removable` {`boolean`} - Makes the tag removable and shows a remove button.\n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
|