Compare commits

...

18 Commits

Author SHA1 Message Date
f26f0d0450 1.0.157 2023-04-05 16:51:05 +02:00
53fadfcbd5 fix(core): update 2023-04-05 16:51:05 +02:00
497d3a3ac5 1.0.156 2023-04-05 14:46:21 +02:00
37524765ae fix(core): update 2023-04-05 14:46:20 +02:00
ab0219d3e4 1.0.155 2023-03-27 23:21:27 +02:00
7cefd9cba5 fix(core): update 2023-03-27 23:21:27 +02:00
4cf5ca2d7f 1.0.154 2023-03-27 01:22:16 +02:00
a9791220fb fix(core): update 2023-03-27 01:22:15 +02:00
4aed14c7a2 1.0.153 2023-03-25 20:56:13 +01:00
49d1cba3fd fix(core): update 2023-03-25 20:56:12 +01:00
9bacca3070 1.0.152 2023-03-25 17:32:55 +01:00
42e7ae6d6b fix(core): update 2023-03-25 17:32:55 +01:00
a8b244520c 1.0.151 2023-03-25 17:30:42 +01:00
9879a2cb6a fix(core): update 2023-03-25 17:30:41 +01:00
e2a54c6f18 1.0.150 2023-03-09 17:08:20 +01:00
dfd13e641a fix(core): update 2023-03-09 17:08:19 +01:00
2284159b72 1.0.149 2023-01-17 17:12:48 +01:00
1de86c6bfa fix(core): update 2023-01-17 17:12:47 +01:00
11 changed files with 1568 additions and 1057 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@designestate/dees-catalog", "name": "@designestate/dees-catalog",
"version": "1.0.148", "version": "1.0.157",
"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",
@ -15,25 +15,27 @@
"author": "Lossless GmbH", "author": "Lossless GmbH",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@designestate/dees-domtools": "^2.0.28", "@designestate/dees-domtools": "^2.0.30",
"@designestate/dees-element": "^2.0.18", "@designestate/dees-element": "^2.0.20",
"@designestate/dees-wcctools": "^1.0.76", "@designestate/dees-wcctools": "^1.0.76",
"@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/fontawesome-svg-core": "^6.4.0",
"@fortawesome/free-brands-svg-icons": "^6.2.1", "@fortawesome/free-brands-svg-icons": "^6.4.0",
"@fortawesome/free-regular-svg-icons": "^6.2.1", "@fortawesome/free-regular-svg-icons": "^6.4.0",
"@fortawesome/free-solid-svg-icons": "^6.2.1", "@fortawesome/free-solid-svg-icons": "^6.4.0",
"@pushrocks/smartpromise": "^3.1.7", "@pushrocks/smartpromise": "^4.0.0",
"@tsclass/tsclass": "^4.0.29", "@pushrocks/smartstring": "^4.0.5",
"@tsclass/tsclass": "^4.0.36",
"highlight.js": "11.7.0",
"pdfjs-dist": "^2.15.349" "pdfjs-dist": "^2.15.349"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.65", "@gitzone/tsbuild": "^2.1.65",
"@gitzone/tsbundle": "^2.0.7", "@gitzone/tsbundle": "^2.0.7",
"@gitzone/tstest": "^1.0.74", "@gitzone/tstest": "^1.0.74",
"@gitzone/tswatch": "^2.0.5", "@gitzone/tswatch": "^2.0.7",
"@pushrocks/projectinfo": "^5.0.1", "@pushrocks/projectinfo": "^5.0.1",
"@pushrocks/tapbundle": "^5.0.4", "@pushrocks/tapbundle": "^5.0.4",
"@types/node": "^18.11.18" "@types/node": "^18.15.11"
}, },
"files": [ "files": [
"ts/**/*", "ts/**/*",

2178
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@designestate/dees-catalog', name: '@designestate/dees-catalog',
version: '1.0.148', version: '1.0.157',
description: 'website for lossless.com' description: 'website for lossless.com'
} }

View File

@ -0,0 +1,169 @@
import {
DeesElement,
html,
customElement,
TemplateResult,
property,
state,
} from '@designestate/dees-element';
import hlight from 'highlight.js';
import * as smartstring from '@pushrocks/smartstring';
import * as domtools from '@designestate/dees-domtools';
declare global {
interface HTMLElementTagNameMap {
'dees-dataview-codebox': DeesDataviewCodebox;
}
}
@customElement('dees-dataview-codebox')
export class DeesDataviewCodebox extends DeesElement {
public static demo = () => html`<dees-dataview-codebox proglang="typescript">
import * as text from './hello'; const hiThere = 'nice'; const myFunction = async () => {
console.log('nice one'); }
</dees-dataview-codebox>`;
@property()
public progLang: string = 'typescript';
@property({
type: String
})
public codeToDisplay: string = '// no code set';
constructor() {
super();
}
render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
:host {
position: relative;
display: block;
text-align: left;
font-size: 16px;
}
.mainbox {
position: relative;
color: ${this.goBright ? '#333333' : '#ffffff'};
}
.languageLabel {
color: #fff;
font-size: 12px;
z-index: 10;
background: #6596ff;
display: inline-block;
position: absolute;
right: 32px;
padding: 4px;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
}
.hljs-keyword {
color: #ff65ec;
}
.codegrid {
display: grid;
grid-template-columns: 50px auto;
background: ${this.goBright ? '#ffffff' : '#191919'};
border-top: 1px solid ${this.goBright ? '#ffffff' : '#333333'};
box-shadow: 0px 0px 5px ${this.goBright ? 'rgba(0,0,0,0.1)' : 'rgba(0,0,0,0.5)'};
border-radius: 3px;
overflow: hidden;
}
.lineNumbers {
background: ${this.goBright ? '#fafafa' : '#151515'};
color: ${this.goBright ? '#acacac' : '#666666'};
padding: 30px 16px 0px 0px;
text-align: right;
}
.lineCounter:last-child {
opacity: 50%;
}
pre {
overflow-x: auto;
margin: 0px;
padding: 30px 40px;
}
code {
font-weight: ${this.goBright ? '400' : '300'};
padding: 0px;
margin: 0px;
}
code,
code *,
.lineNumbers {
line-height: 1.4em;
font-weight: 200;
font-family: monospace;
}
.hljs-string {
color: #ffa465;
}
.hljs-built_in {
color: #65ff6a;
}
.hljs-function {
color: ${this.goBright ? '#2765DF': '#6596ff' };
}
.hljs-params {
color: ${this.goBright ? '#3DB420' : '#65d5ff' };
}
.hljs-comment {
color: ${this.goBright ? '#EF9300' : '#ffd765' };
}
</style>
<div class="mainbox">
<div class="languageLabel">${this.progLang}</div>
<div class="codegrid">
<div class="lineNumbers">
${(() => {
let lineCounter = 0;
return this.codeToDisplay.split('\n').map(lineArg => {
lineCounter++;
return html`<div class="lineCounter">${lineCounter}</div>`;
})
})()}
</div>
<pre><code class="${this.progLang}">${this.codeToDisplay}</code></pre>
</div>
</div>
`;
}
public async updated(_changedProperties) {
super.updated(_changedProperties);
console.log('highlighting now');
console.log(this.childNodes);
const slottedCodeNodes: Text[] = [];
this.childNodes.forEach((childNode) => {
if (childNode.nodeName === '#text') {
slottedCodeNodes.push(childNode as Text);
}
});
if (slottedCodeNodes[0] && slottedCodeNodes[0].wholeText) {
this.codeToDisplay = smartstring.indent.normalize(slottedCodeNodes[0].wholeText);
}
await domtools.plugins.smartdelay.delayFor(0);
const localCodeNode = this.shadowRoot.querySelector('code');
hlight.highlightBlock(localCodeNode);
}
}

View File

@ -0,0 +1,168 @@
import {
DeesElement,
html,
customElement,
TemplateResult,
property,
state,
cssManager,
css,
} from '@designestate/dees-element';
import * as tsclass from '@tsclass/tsclass';
import hlight from 'highlight.js';
import * as smartstring from '@pushrocks/smartstring';
import * as domtools from '@designestate/dees-domtools';
declare global {
interface HTMLElementTagNameMap {
'dees-dataview-statusobject': DeesDataviewStatusobject;
}
}
@customElement('dees-dataview-statusobject')
export class DeesDataviewStatusobject extends DeesElement {
public static demo = () => html`<dees-dataview-statusobject
.statusObject=${{
id: '1',
name: 'Demo Item',
combinedStatus: 'partly_ok',
combinedStatusText: 'partly_ok',
details: [
{
name: 'Detail 1',
value: 'Value 1',
status: 'ok',
statusText: 'OK',
},
{
name: 'Detail 2',
value: 'Value 2',
status: 'partly_ok',
statusText: 'partly_ok',
},
{
name: 'Detail 3',
value: 'Value 3',
status: 'not_ok',
statusText: 'not_ok',
},
{
name: 'Detail 4',
value: 'Value 4',
status: 'ok',
statusText: 'OK',
},
],
}}
>
</dees-dataview-statusobject>`;
@property({ type: Object }) statusObject: tsclass.code.IStatusObject;
public static styles = [
cssManager.defaultStyles,
css`
.mainbox {
max-width: 600px;
border-radius: 3px;
background: #1b1b1b;
min-height: 48px;
color: ${cssManager.bdTheme('#000', '#fff')};
}
.heading {
display: grid;
align-items: center;
grid-template-columns: 40px auto 120px;
}
h1 {
display: block;
margin: 0px;
padding: 0px;
height: 48px;
text-transform: uppercase;
font-size: 12px;
line-height: 48px;
}
.statusdot {
height: 8px;
width: 8px;
border-radius: 6px;
background: grey;
margin: auto;
}
.copyMain {
cursor: pointer;
font-size: 8px;
font-weight: 600;
text-transform: uppercase;
border: 1px solid ${cssManager.bdTheme('#999', '#444')};
text-align: center;
padding: 4px;
border-radius: 3px;
margin-right: 16px;
}
.statusdot.ok {
background: green;
}
.statusdot.not_ok{
background: red;
}
.statusdot.partly_ok {
background: orange;
}
.detail {
height: 60px;
align-items: center;
display: grid;
grid-template-columns: 40px auto;
border-top: 1px dotted ${cssManager.bdTheme('#999', '#444')};
}
.detail .detailsText .label {
font-size: 12px;
}
.detail .detailsText .value {
font-size: 16px;
font-family: Roboto Mono;
}
`,
];
render(): TemplateResult {
return html`
<div class="mainbox">
<div class="heading">
<div class="statusdot ${this.statusObject.combinedStatus}"></div>
<h1>${this.statusObject?.name || 'no status object assigned'}</h1>
<div class="copyMain">Copy as JSON</div>
</div>
${this.statusObject.details.map((detailArg) => {
return html`
<div class="detail">
<div class="statusdot ${detailArg.status}"></div>
<div class="detailsText">
<div class="label">${detailArg.name}</div>
<div class="value">${detailArg.value}</div>
</div>
</div>
`;
})}
</div>
`;
}
async firstUpdated() {}
}

View File

@ -41,8 +41,7 @@ export class DeesFormSubmit extends DeesElement {
public render() { public render() {
return html` return html`
<dees-button status=${this.status} @click=${this.submit} .disabled=${this.disabled}> <dees-button status=${this.status} @click=${this.submit} .disabled=${this.disabled} .text=${this.text ? this.text : this.textContent}>
${this.text ? this.text : this.textContent}
</dees-button> </dees-button>
`; `;
} }

View File

@ -47,6 +47,7 @@ import {
faEyeSlash as faEyeSlashSolid, faEyeSlash as faEyeSlashSolid,
faGrip as faGripSolid, faGrip as faGripSolid,
faMessage as faMessageSolid, faMessage as faMessageSolid,
faMugHot as faMugHotSolid,
faMinus as faMinusSolid, faMinus as faMinusSolid,
faPaste as faPasteSolid, faPaste as faPasteSolid,
faPenToSquare as faPenToSquareSolid, faPenToSquare as faPenToSquareSolid,
@ -92,6 +93,8 @@ export const faIcons = {
gripSolid: faGripSolid, gripSolid: faGripSolid,
message: faMessageRegular, message: faMessageRegular,
messageSolid: faMessageSolid, messageSolid: faMessageSolid,
mugHot: faMugHotSolid,
faMugHotSolid: faMugHotSolid,
minus: faMinusSolid, minus: faMinusSolid,
minusSolid: faMinusSolid, minusSolid: faMinusSolid,
paste: faPasteRegular, paste: faPasteRegular,

View File

@ -1,4 +1,4 @@
import { customElement, DeesElement, TemplateResult, property, html } from '@designestate/dees-element'; import { customElement, DeesElement, TemplateResult, property, html, css, cssManager } from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools'; import * as domtools from '@designestate/dees-domtools';
declare global { declare global {
@ -9,7 +9,15 @@ declare global {
@customElement('dees-input-dropdown') @customElement('dees-input-dropdown')
export class DeesInputDropdown extends DeesElement { export class DeesInputDropdown extends DeesElement {
public static demo = () => html`<dees-input-dropdown></dees-input-dropdown>` public static demo = () => html`
<dees-input-dropdown
.options=${[
{option: 'option 1', key: 'option1'},
{option: 'option 2', key: 'option2'},
{option: 'option 3', key: 'option3'}
]}
></dees-input-dropdown>
`
// INSTANCE // INSTANCE
public changeSubject = new domtools.rxjs.Subject(); public changeSubject = new domtools.rxjs.Subject();
@ -40,11 +48,10 @@ export class DeesInputDropdown extends DeesElement {
}) })
public disabled: boolean = false; public disabled: boolean = false;
public render(): TemplateResult { public static styles = [
return html` cssManager.defaultStyles,
${domtools.elementBasic.styles} css`
<style> * {
* {
box-sizing: border-box; box-sizing: border-box;
} }
@ -52,6 +59,7 @@ export class DeesInputDropdown extends DeesElement {
position: relative; position: relative;
display: block; display: block;
height: 40px; height: 40px;
color: ${cssManager.bdTheme('#222', '#fff')};
} }
.maincontainer { .maincontainer {
@ -68,41 +76,68 @@ export class DeesInputDropdown extends DeesElement {
position: relative; position: relative;
max-width: 420px; max-width: 420px;
height: 40px; height: 40px;
border: 1px solid #CCC; line-height: 40px;
padding: 12px; padding: 0px 8px;
z-index: 0px; z-index: 0px;
background: ${cssManager.bdTheme('#ffffff', '#333333')};
box-shadow: ${cssManager.bdTheme('0px 1px 4px rgba(0,0,0,0.3)', 'none')};
border-radius: 3px;
border-top: 1px solid #CCCCCC00;
border-bottom: 1px solid #66666600;
}
.selectedBox.show {
border-top: 1px solid ${cssManager.bdTheme('#ffffff', '#666666')};
border-bottom: 1px solid ${cssManager.bdTheme('#fafafa', '#222222')};
} }
.selectionBox { .selectionBox {
will-change:transform;
pointer-events: none; pointer-events: none;
cursor: pointer; cursor: pointer;
transition: all 0.2s ease; transition: all 0.2s ease;
opacity: 0; opacity: 0;
position: relative; position: relative;
background: #ffffff; background: ${cssManager.bdTheme('#ffffff', '#222222')};
max-width: 420px; max-width: 420px;
box-shadow: 0px 0px 5px rgba(0,0,0,0.2); box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
height: 40px; min-height: 40px;
margin-top: -40px; margin-top: -40px;
z-index: 100; z-index: 100;
border-radius: 3px;
padding: 4px;
transform: scale(0.99,0.99);
} }
.selectionBox.show { .selectionBox.show {
pointer-events: all; pointer-events: all;
opacity: 1; opacity: 1;
min-height: 160px; transform: scale(1,1);
} }
.option { .option {
padding: 12px; transition: all 0.1s;
line-height: 40px;
padding: 0px 4px;
border-radius: 3px;
} }
.option:hover { .option:hover {
background: #fafafa; color: #fff;
padding-left: 8px;
background: #0277bd;
} }
`
]
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
</style> </style>
<div class="maincontainer"> <div class="maincontainer">
<div class="selectedBox" @click="${event => {this.toggleSelectionBox();}}"> <div class="selectedBox show" @click="${event => {this.toggleSelectionBox();}}">
${this.selectedOption?.option} ${this.selectedOption?.option}
</div> </div>
<div class="selectionBox"> <div class="selectionBox">
@ -132,6 +167,7 @@ export class DeesInputDropdown extends DeesElement {
} }
public toggleSelectionBox() { public toggleSelectionBox() {
this.shadowRoot.querySelector('.selectedBox').classList.toggle('show');
this.shadowRoot.querySelector('.selectionBox').classList.toggle('show'); this.shadowRoot.querySelector('.selectionBox').classList.toggle('show');
} }
} }

View File

@ -15,7 +15,8 @@ export class DeesInputText extends DeesElement {
`; `;
// INSTANCE // INSTANCE
public changeSubject = new domtools.rxjs.Subject(); public changeSubject = new domtools.rxjs.Subject<DeesInputText>();
public valueChangeSubject = new domtools.rxjs.Subject<string>();
@property({ @property({
type: String type: String
@ -140,6 +141,7 @@ export class DeesInputText extends DeesElement {
const target: any = eventArg.target; const target: any = eventArg.target;
this.value = target.value; this.value = target.value;
this.changeSubject.next(this); this.changeSubject.next(this);
this.valueChangeSubject.next(this.value);
} }
public async freeze() { public async freeze() {
@ -155,4 +157,9 @@ export class DeesInputText extends DeesElement {
this.showPasswordBool = !this.showPasswordBool; this.showPasswordBool = !this.showPasswordBool;
console.log(`this.showPasswordBool is: ${this.showPasswordBool}`) console.log(`this.showPasswordBool is: ${this.showPasswordBool}`)
} }
public async focus() {
const textInput = this.shadowRoot.querySelector('input');
textInput.focus();
}
} }

View File

@ -147,6 +147,7 @@ export class DeesTable<T> extends DeesElement {
border-radius: 3px; border-radius: 3px;
border-top: 1px solid ${cssManager.bdTheme('#fff', '#444')}; border-top: 1px solid ${cssManager.bdTheme('#fff', '#444')};
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;
} }
.headingSeparation { .headingSeparation {
margin-top: 7px; margin-top: 7px;

View File

@ -2,6 +2,8 @@ export * from './dees-button-exit.js';
export * from './dees-button.js'; export * from './dees-button.js';
export * from './dees-chips.js'; export * from './dees-chips.js';
export * from './dees-contextmenu.js'; export * from './dees-contextmenu.js';
export * from './dees-dataview-codebox.js';
export * from './dees-dataview-statusobject.js';
export * from './dees-form.js'; export * from './dees-form.js';
export * from './dees-form-submit.js'; export * from './dees-form-submit.js';
export * from './dees-icon.js'; export * from './dees-icon.js';