Compare commits

...

18 Commits

Author SHA1 Message Date
7d4e5f2ca7 1.0.258 2024-01-22 00:59:26 +01:00
c0ad0f4570 fix(core): update 2024-01-22 00:59:25 +01:00
d56eb602a9 1.0.257 2024-01-21 22:37:39 +01:00
f1c791eb12 fix(core): update 2024-01-21 22:37:39 +01:00
e872188be7 1.0.256 2024-01-21 17:14:16 +01:00
2d712e78b0 fix(core): update 2024-01-21 17:14:15 +01:00
ebeecd0686 1.0.255 2024-01-21 14:25:03 +01:00
1d09f994c6 fix(core): update 2024-01-21 14:25:02 +01:00
686c3714fc 1.0.254 2024-01-21 14:14:57 +01:00
e29086036c fix(core): update 2024-01-21 14:14:57 +01:00
78e24aa720 1.0.253 2024-01-21 13:57:46 +01:00
7c8876c835 fix(core): update 2024-01-21 13:57:46 +01:00
2222fb1e01 1.0.252 2024-01-21 13:57:27 +01:00
46b30a1ef0 fix(core): update 2024-01-21 13:57:26 +01:00
d49d5f70ef 1.0.251 2024-01-21 13:36:48 +01:00
76a950e2ba fix(core): update 2024-01-21 13:36:47 +01:00
077aba5e58 1.0.250 2024-01-21 13:27:29 +01:00
857362423f fix(core): update 2024-01-21 13:27:29 +01:00
5 changed files with 98 additions and 41 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@design.estate/dees-catalog", "name": "@design.estate/dees-catalog",
"version": "1.0.249", "version": "1.0.258",
"private": false, "private": false,
"description": "website for lossless.com", "description": "website for lossless.com",
"main": "dist_ts_web/index.js", "main": "dist_ts_web/index.js",

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@design.estate/dees-catalog', name: '@design.estate/dees-catalog',
version: '1.0.249', version: '1.0.258',
description: 'website for lossless.com' description: 'website for lossless.com'
} }

View File

@@ -52,6 +52,7 @@ import {
faFileInvoiceDollar as faFileInvoiceDollarSolid, faFileInvoiceDollar as faFileInvoiceDollarSolid,
faGear as faGearSolid, faGear as faGearSolid,
faGrip as faGripSolid, faGrip as faGripSolid,
faMagnifyingGlass as faMagnifyingGlassSolid,
faMessage as faMessageSolid, faMessage as faMessageSolid,
faMoneyCheckDollar as faMoneyCheckDollarSolid, faMoneyCheckDollar as faMoneyCheckDollarSolid,
faMugHot as faMugHotSolid, faMugHot as faMugHotSolid,
@@ -97,6 +98,7 @@ export const faIcons = {
fileInvoiceDoller: faFileInvoiceDollarSolid, fileInvoiceDoller: faFileInvoiceDollarSolid,
gear: faGearSolid, gear: faGearSolid,
grip: faGripSolid, grip: faGripSolid,
magnifyingGlass: faMagnifyingGlassSolid,
message: faMessageRegular, message: faMessageRegular,
messageSolid: faMessageSolid, messageSolid: faMessageSolid,
moneyCheckDollar: faMoneyCheckDollarSolid, moneyCheckDollar: faMoneyCheckDollarSolid,

View File

@@ -35,7 +35,7 @@ export class DeesSimpleAppDash extends DeesElement {
user-select: none; user-select: none;
} }
.appbar { .appbar {
position: absolute; position: fixed;
top: 0; top: 0;
height: 40px; height: 40px;
width: 100%; width: 100%;
@@ -47,10 +47,12 @@ export class DeesSimpleAppDash extends DeesElement {
padding: 0px 16px; padding: 0px 16px;
} }
.appcontent { .appcontent {
position: absolute; position: fixed;
top: 40px; top: 40px;
bottom: 0; height: calc(100% - 40px);
bottom: 0px;
width: 100%; width: 100%;
overflow: auto;
background: ${cssManager.bdTheme('#eeeeeb', '#000')}; background: ${cssManager.bdTheme('#eeeeeb', '#000')};
} }
`, `,

View File

@@ -117,12 +117,21 @@ export class DeesTable<T> extends DeesElement {
public changeSubject = new domtools.plugins.smartrx.rxjs.Subject<DeesTable<T>>(); public changeSubject = new domtools.plugins.smartrx.rxjs.Subject<DeesTable<T>>();
// end dees-form compatibility ----------------------------------------- // end dees-form compatibility -----------------------------------------
/**
* What does a row of data represent?
*/
@property({ @property({
type: String, type: String,
reflect: true, reflect: true,
}) })
public dataName: string; public dataName: string;
@property({
type: Boolean,
})
searchable: boolean = true;
@property({ @property({
type: Array, type: Array,
}) })
@@ -169,9 +178,9 @@ export class DeesTable<T> extends DeesElement {
display: block; display: block;
width: 100%; width: 100%;
min-height: 50px; min-height: 50px;
background: ${cssManager.bdTheme('#ffffff', '#333333')}; background: ${cssManager.bdTheme('#ffffff', '#222222')};
border-radius: 3px; border-radius: 3px;
border-top: 1px solid ${cssManager.bdTheme('#fff', '#444')}; border-top: 1px solid ${cssManager.bdTheme('#fff', '#ffffff10')};
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.3); box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.3);
overflow-x: auto; overflow-x: auto;
cursor: default; cursor: default;
@@ -199,15 +208,20 @@ export class DeesTable<T> extends DeesElement {
.headingSeparation { .headingSeparation {
margin-top: 7px; margin-top: 7px;
border-bottom: 1px solid ${cssManager.bdTheme('#bcbcbc', '#bcbcbc')}; border-bottom: 1px solid ${cssManager.bdTheme('#bcbcbc', '#444444')};
} }
.headerActions { .headerActions {
user-select: none;
display: flex;
flex-direction: row;
margin-left: auto; margin-left: auto;
} }
.headerAction { .headerAction {
display: flex; display: flex;
flex-direction: row;
color: ${cssManager.bdTheme('#333', '#ccc')}; color: ${cssManager.bdTheme('#333', '#ccc')};
margin-left: 16px;
} }
.headerAction:hover { .headerAction:hover {
@@ -219,9 +233,21 @@ export class DeesTable<T> extends DeesElement {
} }
.searchGrid { .searchGrid {
background: ${cssManager.bdTheme('#fff', '#111111')};
display: grid; display: grid;
grid-gap: 16px; grid-gap: 16px;
grid-template-columns: 1fr 200px; grid-template-columns: 1fr 200px;
margin-top: 16px;
padding: 0px 16px;
border-top: 1px solid ${cssManager.bdTheme('#fff', '#ffffff20')};
border-radius: 8px;
}
.searchGrid.hidden {
height: 0px;
opacity: 0;
overflow: hidden;
margin-top: 0px;
} }
table, table,
@@ -311,20 +337,20 @@ export class DeesTable<T> extends DeesElement {
font-weight: inherit; font-weight: inherit;
padding: 0px 6px; padding: 0px 6px;
} }
.actionsContainer {
.action { display: flex;
margin: -4px 0px; flex-direction: row;
padding: 10px; height: 24px;
line-height: 34px; transform: translateY(-4px);
height: 34px;
size: 16px;
display: inline-block;
border-radius: 8px;
}
.action:first-child {
margin-left: -6px; margin-left: -6px;
width: min-content; }
.action {
position: relative;
padding: 8px 10px;
line-height: 24px;
height: 32px;
size: 16px;
border-radius: 8px;
} }
.action:hover { .action:hover {
@@ -415,7 +441,7 @@ export class DeesTable<T> extends DeesElement {
</div> </div>
</div> </div>
<div class="headingSeparation"></div> <div class="headingSeparation"></div>
<div class="searchGrid"> <div class="searchGrid hidden">
<dees-input-text <dees-input-text
.label=${'lucene syntax search'} .label=${'lucene syntax search'}
.description=${` .description=${`
@@ -425,10 +451,12 @@ export class DeesTable<T> extends DeesElement {
name: "john" AND age: 18 name: "john" AND age: 18
\`\`\` \`\`\`
`}></dees-input-text> `}
></dees-input-text>
<dees-input-multitoggle <dees-input-multitoggle
.label=${'search mode'} .label=${'search mode'}
.options=${['table', 'data', 'server']} .options=${['table', 'data', 'server']}
.selectedOption=${'table'}
.description=${` .description=${`
There are three basic modes: There are three basic modes:
@@ -565,22 +593,28 @@ export class DeesTable<T> extends DeesElement {
return html` return html`
<td> <td>
<div class="innerCellContainer"> <div class="innerCellContainer">
${this.getActionsForType('inRow').map( <div class="actionsContainer">
(actionArg) => html`<div ${this.getActionsForType('inRow').map(
class="action" (actionArg) => html`
@click=${() => <div
actionArg.actionFunc({ class="action"
item: itemArg, @click=${() =>
table: this, actionArg.actionFunc({
})} item: itemArg,
> table: this,
${actionArg.iconName })}
? html` >
<dees-icon .iconFA=${actionArg.iconName}></dees-icon> ${actionArg.iconName
` ? html`
: actionArg.name} <dees-icon
</div>` .iconFA=${actionArg.iconName}
)} ></dees-icon>
`
: actionArg.name}
</div>
`
)}
</div>
</div> </div>
</td> </td>
`; `;
@@ -629,11 +663,30 @@ export class DeesTable<T> extends DeesElement {
`; `;
} }
public async firstUpdated() {} public async firstUpdated() {
}
public async updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void> { public async updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
super.updated(changedProperties); super.updated(changedProperties);
this.determineColumnWidths(); this.determineColumnWidths();
if (this.searchable) {
const existing = this.dataActions.find((actionArg) => actionArg.type.includes('header') && actionArg.name === 'Search');
if (!existing) {
this.dataActions.unshift({
name: 'Search',
iconName: 'magnifyingGlass',
type: ['header'],
actionFunc: async () => {
console.log('open search');
const searchGrid = this.shadowRoot.querySelector('.searchGrid');
searchGrid.classList.toggle('hidden');
}
});
console.log(this.dataActions);
this.requestUpdate();
};
}
} }
public async determineColumnWidths() { public async determineColumnWidths() {
@@ -654,7 +707,7 @@ export class DeesTable<T> extends DeesElement {
const width = window.getComputedStyle(cell).width; const width = window.getComputedStyle(cell).width;
if (cell.textContent.includes('Actions')) { if (cell.textContent.includes('Actions')) {
const neededWidth = const neededWidth =
this.dataActions.filter((actionArg) => actionArg.type.includes('inRow')).length * 35; this.dataActions.filter((actionArg) => actionArg.type.includes('inRow')).length * 36;
cell.style.width = `${Math.max(neededWidth, 68)}px`; cell.style.width = `${Math.max(neededWidth, 68)}px`;
} else { } else {
cell.style.width = width; cell.style.width = width;