@design.estate/dees-catalog 1.0.246 → 1.0.247
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/dist_bundle/bundle.js +612 -383
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/dees-contextmenu.js +1 -1
- package/dist_ts_web/elements/dees-dataview-statusobject.demo.js +16 -6
- package/dist_ts_web/elements/dees-dataview-statusobject.js +9 -4
- package/dist_ts_web/elements/dees-form.demo.js +8 -5
- package/dist_ts_web/elements/dees-input-dropdown.js +8 -4
- package/dist_ts_web/elements/dees-input-multitoggle.js +2 -2
- package/dist_ts_web/elements/dees-input-text.d.ts +1 -0
- package/dist_ts_web/elements/dees-input-text.js +10 -8
- package/dist_ts_web/elements/dees-label.d.ts +8 -0
- package/dist_ts_web/elements/dees-label.demo.d.ts +1 -0
- package/dist_ts_web/elements/dees-label.demo.js +7 -0
- package/dist_ts_web/elements/dees-label.js +74 -0
- package/dist_ts_web/elements/dees-speechbubble.d.ts +10 -2
- package/dist_ts_web/elements/dees-speechbubble.demo.d.ts +1 -0
- package/dist_ts_web/elements/dees-speechbubble.demo.js +23 -0
- package/dist_ts_web/elements/dees-speechbubble.js +102 -37
- package/dist_ts_web/elements/dees-table.js +14 -5
- package/dist_ts_web/elements/index.d.ts +1 -0
- package/dist_ts_web/elements/index.js +2 -1
- package/dist_watch/bundle.js +24253 -4672
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +3 -3
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/dees-contextmenu.ts +1 -1
- package/ts_web/elements/dees-dataview-statusobject.demo.ts +47 -37
- package/ts_web/elements/dees-dataview-statusobject.ts +8 -3
- package/ts_web/elements/dees-form.demo.ts +7 -4
- package/ts_web/elements/dees-input-dropdown.ts +7 -3
- package/ts_web/elements/dees-input-multitoggle.ts +1 -1
- package/ts_web/elements/dees-input-text.ts +9 -7
- package/ts_web/elements/dees-label.demo.ts +7 -0
- package/ts_web/elements/dees-label.ts +70 -0
- package/ts_web/elements/dees-speechbubble.demo.ts +23 -0
- package/ts_web/elements/dees-speechbubble.ts +105 -32
- package/ts_web/elements/dees-table.ts +13 -4
- package/ts_web/elements/index.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-catalog",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.247",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "website for lossless.com",
|
|
6
6
|
"main": "dist_ts_web/index.js",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"author": "Lossless GmbH",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@design.estate/dees-domtools": "^2.0.
|
|
12
|
+
"@design.estate/dees-domtools": "^2.0.57",
|
|
13
13
|
"@design.estate/dees-element": "^2.0.33",
|
|
14
14
|
"@design.estate/dees-wcctools": "^1.0.87",
|
|
15
15
|
"@fortawesome/fontawesome-svg-core": "^6.5.1",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@git.zone/tsbuild": "^2.1.72",
|
|
29
29
|
"@git.zone/tsbundle": "^2.0.15",
|
|
30
|
-
"@git.zone/tstest": "^1.0.
|
|
30
|
+
"@git.zone/tstest": "^1.0.86",
|
|
31
31
|
"@git.zone/tswatch": "^2.0.21",
|
|
32
32
|
"@push.rocks/projectinfo": "^5.0.2",
|
|
33
33
|
"@push.rocks/tapbundle": "^5.0.15",
|
|
@@ -1,39 +1,49 @@
|
|
|
1
|
-
import { html } from '@design.estate/dees-element';
|
|
1
|
+
import { html, cssManager } from '@design.estate/dees-element';
|
|
2
2
|
import * as tsclass from '@tsclass/tsclass';
|
|
3
3
|
|
|
4
|
-
export const demoFunc = () => html
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
4
|
+
export const demoFunc = () => html` <style>
|
|
5
|
+
.demo {
|
|
6
|
+
background: ${cssManager.bdTheme('#eeeeeb', '#000000')};
|
|
7
|
+
display: block;
|
|
8
|
+
content: '';
|
|
9
|
+
padding: 40px;
|
|
10
|
+
}
|
|
11
|
+
</style>
|
|
12
|
+
<div class="demo">
|
|
13
|
+
<dees-dataview-statusobject
|
|
14
|
+
.statusObject=${{
|
|
15
|
+
id: '1',
|
|
16
|
+
name: 'Demo Item',
|
|
17
|
+
combinedStatus: 'partly_ok',
|
|
18
|
+
combinedStatusText: 'partly_ok',
|
|
19
|
+
details: [
|
|
20
|
+
{
|
|
21
|
+
name: 'Detail 1',
|
|
22
|
+
value: 'Value 1',
|
|
23
|
+
status: 'ok',
|
|
24
|
+
statusText: 'OK',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'Detail 2',
|
|
28
|
+
value: 'Value 2',
|
|
29
|
+
status: 'partly_ok',
|
|
30
|
+
statusText: 'partly_ok',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: 'Detail 3',
|
|
34
|
+
value: 'Value 3',
|
|
35
|
+
status: 'not_ok',
|
|
36
|
+
statusText: 'not_ok',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Detail 4',
|
|
40
|
+
value:
|
|
41
|
+
'Value 4 jhdkfjhalskdfjhfdjskalsdkfjhfdjskalskdjfhjdkslaksjdhfjdkslaskdfjhfjdkslaskdjfhjdskalskdjhfdjskalskdjfhdjskl',
|
|
42
|
+
status: 'ok',
|
|
43
|
+
statusText: 'OK',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
} as tsclass.code.IStatusObject}
|
|
47
|
+
>
|
|
48
|
+
</dees-dataview-statusobject>
|
|
49
|
+
</div>`;
|
|
@@ -37,6 +37,7 @@ export class DeesDataviewStatusobject extends DeesElement {
|
|
|
37
37
|
box-shadow: 0px 1px 3px #00000030;
|
|
38
38
|
min-height: 48px;
|
|
39
39
|
color: ${cssManager.bdTheme('#000', '#fff')};
|
|
40
|
+
border-top: ${cssManager.bdTheme('none', '1px solid #ffffff10')};
|
|
40
41
|
cursor: default;
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -68,12 +69,12 @@ export class DeesDataviewStatusobject extends DeesElement {
|
|
|
68
69
|
font-size: 10px;
|
|
69
70
|
font-weight: 600;
|
|
70
71
|
text-transform: uppercase;
|
|
71
|
-
border: 1px solid ${cssManager.bdTheme('#
|
|
72
|
+
border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#444')};
|
|
72
73
|
text-align: center;
|
|
73
74
|
padding: 4px;
|
|
74
75
|
border-radius: 3px;
|
|
75
76
|
margin-right: 16px;
|
|
76
|
-
color: #ffffff80;
|
|
77
|
+
color: ${cssManager.bdTheme('#333', '#ffffff80')};
|
|
77
78
|
user-select: none;
|
|
78
79
|
}
|
|
79
80
|
|
|
@@ -106,7 +107,7 @@ export class DeesDataviewStatusobject extends DeesElement {
|
|
|
106
107
|
align-items: center;
|
|
107
108
|
display: grid;
|
|
108
109
|
grid-template-columns: 40px auto;
|
|
109
|
-
border-top: 1px dotted ${cssManager.bdTheme('#
|
|
110
|
+
border-top: 1px dotted ${cssManager.bdTheme('#e0e0e0', '#282828')};
|
|
110
111
|
transition: all 0.2s;
|
|
111
112
|
}
|
|
112
113
|
|
|
@@ -114,6 +115,10 @@ export class DeesDataviewStatusobject extends DeesElement {
|
|
|
114
115
|
background: #ffffff05;
|
|
115
116
|
}
|
|
116
117
|
|
|
118
|
+
.detail:active {
|
|
119
|
+
background: #ffffff10;
|
|
120
|
+
}
|
|
121
|
+
|
|
117
122
|
.detail .detailsText {
|
|
118
123
|
padding-top: 8px;
|
|
119
124
|
padding-bottom: 8px;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { html, domtools } from '@design.estate/dees-element';
|
|
1
|
+
import { html, domtools, cssManager } from '@design.estate/dees-element';
|
|
2
2
|
import type { DeesForm } from './dees-form.js';
|
|
3
3
|
|
|
4
4
|
export const demoFunc = () => html`
|
|
5
5
|
<style>
|
|
6
6
|
.demoContainer {
|
|
7
7
|
max-width: 400px;
|
|
8
|
-
margin: auto;
|
|
8
|
+
margin: 24px auto;
|
|
9
9
|
padding: 16px;
|
|
10
|
-
background: #111;
|
|
10
|
+
background: ${cssManager.bdTheme('#eeeeeb', '#111')};
|
|
11
|
+
box-shadow: 0px 1px 3px #00000030;
|
|
11
12
|
}
|
|
12
13
|
</style>
|
|
13
14
|
<div class="demoContainer">
|
|
@@ -38,7 +39,9 @@ export const demoFunc = () => html`
|
|
|
38
39
|
<dees-input-typelist
|
|
39
40
|
.label=${'a type list'}
|
|
40
41
|
></dees-input-typelist>
|
|
41
|
-
<dees-input-text .required="${true}" key="hello1" label="a text"
|
|
42
|
+
<dees-input-text .required="${true}" key="hello1" label="a text" .description=${`
|
|
43
|
+
This is an awesome description.
|
|
44
|
+
`}></dees-input-text>
|
|
42
45
|
<dees-input-text .required="${true}" key="hello2" label="also a text"></dees-input-text>
|
|
43
46
|
<dees-input-text
|
|
44
47
|
.required="${true}"
|
|
@@ -89,7 +89,7 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
89
89
|
|
|
90
90
|
.label {
|
|
91
91
|
font-size: 14px;
|
|
92
|
-
margin-bottom:
|
|
92
|
+
margin-bottom: 8px;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
.selectedBox {
|
|
@@ -102,9 +102,11 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
102
102
|
background: ${cssManager.bdTheme('#fafafa', '#222222')};
|
|
103
103
|
box-shadow: ${cssManager.bdTheme('0px 1px 4px rgba(0,0,0,0.3)', 'none')};
|
|
104
104
|
border-radius: 3px;
|
|
105
|
-
border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #
|
|
106
|
-
border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #
|
|
105
|
+
border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};
|
|
106
|
+
border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #222')};
|
|
107
107
|
transition: all 0.2s ease;
|
|
108
|
+
font-size: 16px;
|
|
109
|
+
color: ${cssManager.bdTheme('#222', '#ccc')};
|
|
108
110
|
}
|
|
109
111
|
|
|
110
112
|
.selectedBox:hover {
|
|
@@ -132,6 +134,8 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
132
134
|
padding: 4px 8px;
|
|
133
135
|
position: absolute;
|
|
134
136
|
user-select: none;
|
|
137
|
+
margin: 3px 0px 0px 0px;
|
|
138
|
+
border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};
|
|
135
139
|
}
|
|
136
140
|
.selectionBox.top {
|
|
137
141
|
transform: translate(0px, 4px);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import * as colors from './00colors.js';
|
|
2
|
+
|
|
1
3
|
import {
|
|
2
4
|
customElement,
|
|
3
5
|
DeesElement,
|
|
@@ -31,6 +33,11 @@ export class DeesInputText extends DeesElement {
|
|
|
31
33
|
})
|
|
32
34
|
public label: string;
|
|
33
35
|
|
|
36
|
+
@property({
|
|
37
|
+
type: String,
|
|
38
|
+
})
|
|
39
|
+
public description: string;
|
|
40
|
+
|
|
34
41
|
@property({
|
|
35
42
|
type: String,
|
|
36
43
|
reflect: true,
|
|
@@ -98,11 +105,6 @@ export class DeesInputText extends DeesElement {
|
|
|
98
105
|
color: ${cssManager.bdTheme('#333', '#ccc')};
|
|
99
106
|
}
|
|
100
107
|
|
|
101
|
-
.label {
|
|
102
|
-
font-size: 14px;
|
|
103
|
-
margin-bottom: 8px;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
108
|
input {
|
|
107
109
|
margin-top: 0px;
|
|
108
110
|
background: ${cssManager.bdTheme('#fafafa', '#222')};
|
|
@@ -132,7 +134,7 @@ export class DeesInputText extends DeesElement {
|
|
|
132
134
|
|
|
133
135
|
input:focus {
|
|
134
136
|
outline: none;
|
|
135
|
-
border-bottom: 1px solid
|
|
137
|
+
border-bottom: 1px solid ${cssManager.bdTheme( colors.bright.blueActive, colors.dark.blueActive)};
|
|
136
138
|
cursor: text;
|
|
137
139
|
}
|
|
138
140
|
|
|
@@ -192,7 +194,7 @@ export class DeesInputText extends DeesElement {
|
|
|
192
194
|
`}
|
|
193
195
|
</style>
|
|
194
196
|
<div class="maincontainer">
|
|
195
|
-
|
|
197
|
+
<dees-label .label=${this.label} .description=${this.description}></dees-label>
|
|
196
198
|
<input
|
|
197
199
|
type="${this.isPasswordBool && !this.showPasswordBool ? 'password' : 'text'}"
|
|
198
200
|
.value=${this.value}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import * as plugins from './00plugins.js';
|
|
2
|
+
import * as colors from './00colors.js';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
customElement,
|
|
6
|
+
html,
|
|
7
|
+
css,
|
|
8
|
+
cssManager,
|
|
9
|
+
DeesElement,
|
|
10
|
+
property,
|
|
11
|
+
unsafeCSS,
|
|
12
|
+
query,
|
|
13
|
+
} from '@design.estate/dees-element';
|
|
14
|
+
|
|
15
|
+
import { demoFunc } from './dees-label.demo.js';
|
|
16
|
+
|
|
17
|
+
@customElement('dees-label')
|
|
18
|
+
export class DeesLabel extends DeesElement {
|
|
19
|
+
public static demo = demoFunc;
|
|
20
|
+
|
|
21
|
+
// INSTANCE
|
|
22
|
+
|
|
23
|
+
@property({
|
|
24
|
+
type: String,
|
|
25
|
+
reflect: true,
|
|
26
|
+
})
|
|
27
|
+
public label = '';
|
|
28
|
+
|
|
29
|
+
@property({
|
|
30
|
+
type: String,
|
|
31
|
+
reflect: true,
|
|
32
|
+
})
|
|
33
|
+
public description: string;
|
|
34
|
+
|
|
35
|
+
public static styles = [
|
|
36
|
+
cssManager.defaultStyles,
|
|
37
|
+
css`
|
|
38
|
+
.label {
|
|
39
|
+
color: ${cssManager.bdTheme('#333', '#ccc')};
|
|
40
|
+
font-size: 14px;
|
|
41
|
+
margin-bottom: 8px;
|
|
42
|
+
cursor: default;
|
|
43
|
+
user-select: none;
|
|
44
|
+
}
|
|
45
|
+
dees-icon {
|
|
46
|
+
display: inline-block;
|
|
47
|
+
font-size: 14px;
|
|
48
|
+
transform: translateY(1.5px);
|
|
49
|
+
}
|
|
50
|
+
`,
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
public render() {
|
|
54
|
+
return html`
|
|
55
|
+
${this.label
|
|
56
|
+
? html`
|
|
57
|
+
<div class="label">
|
|
58
|
+
${this.label}
|
|
59
|
+
${this.description
|
|
60
|
+
? html`
|
|
61
|
+
<dees-icon .iconFA=${'circleInfo'}></dees-icon>
|
|
62
|
+
<dees-speechbubble .text=${this.description}></dees-speechbubble>
|
|
63
|
+
`
|
|
64
|
+
: html``}
|
|
65
|
+
</div>
|
|
66
|
+
`
|
|
67
|
+
: html``}
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { html, cssManager } from '@design.estate/dees-element';
|
|
2
|
+
|
|
3
|
+
export const demoFunc = () => {
|
|
4
|
+
return html`
|
|
5
|
+
<style>
|
|
6
|
+
.ref1 {
|
|
7
|
+
margin: 20px;
|
|
8
|
+
width: 10px;
|
|
9
|
+
height: 10px;
|
|
10
|
+
background-color: red;
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
<div class="ref1"></div>
|
|
14
|
+
<dees-speechbubble .text=${`
|
|
15
|
+
**This is a longer markdown text that can be used the write**
|
|
16
|
+
a longer description about whats going on the app
|
|
17
|
+
|
|
18
|
+
**This is a subheader**
|
|
19
|
+
and another text
|
|
20
|
+
|
|
21
|
+
`}></dees-speechbubble>
|
|
22
|
+
`;
|
|
23
|
+
};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import * as colors from './00colors.js';
|
|
2
|
+
import * as plugins from './00plugins.js';
|
|
3
|
+
|
|
4
|
+
import { demoFunc } from './dees-speechbubble.demo.js';
|
|
1
5
|
import {
|
|
2
6
|
customElement,
|
|
3
7
|
html,
|
|
@@ -8,9 +12,11 @@ import {
|
|
|
8
12
|
css,
|
|
9
13
|
type CSSResult,
|
|
10
14
|
unsafeCSS,
|
|
15
|
+
domtools,
|
|
16
|
+
directives,
|
|
17
|
+
unsafeHTML,
|
|
11
18
|
} from '@design.estate/dees-element';
|
|
12
|
-
|
|
13
|
-
import * as domtools from '@design.estate/dees-domtools';
|
|
19
|
+
import { DeesWindowLayer } from './dees-windowlayer.js';
|
|
14
20
|
|
|
15
21
|
declare global {
|
|
16
22
|
interface HTMLElementTagNameMap {
|
|
@@ -20,26 +26,53 @@ declare global {
|
|
|
20
26
|
|
|
21
27
|
@customElement('dees-speechbubble')
|
|
22
28
|
export class DeesSpeechbubble extends DeesElement {
|
|
23
|
-
public static demo =
|
|
29
|
+
public static demo = demoFunc;
|
|
30
|
+
|
|
31
|
+
// STATIC
|
|
32
|
+
public static async createAndShow(refElement: HTMLElement, textArg: string) {
|
|
33
|
+
const windowLayer = await DeesWindowLayer.createAndShow({
|
|
34
|
+
blur: false,
|
|
35
|
+
});
|
|
36
|
+
const speechbubble = document.createElement('dees-speechbubble');
|
|
37
|
+
speechbubble.windowLayer = windowLayer;
|
|
38
|
+
speechbubble.reffedElement = refElement;
|
|
39
|
+
speechbubble.text = textArg;
|
|
40
|
+
speechbubble.manifested = true;
|
|
41
|
+
windowLayer.appendChild(speechbubble);
|
|
42
|
+
windowLayer.style.pointerEvents = 'none';
|
|
43
|
+
(windowLayer.shadowRoot.querySelector('.windowOverlay') as HTMLElement).style.pointerEvents = 'none';
|
|
44
|
+
return speechbubble;
|
|
45
|
+
}
|
|
24
46
|
|
|
25
|
-
|
|
47
|
+
// INSTANCE
|
|
48
|
+
@property({
|
|
49
|
+
type: Object,
|
|
50
|
+
})
|
|
51
|
+
reffedElement: HTMLElement;
|
|
52
|
+
|
|
53
|
+
@property({
|
|
54
|
+
type: String,
|
|
55
|
+
reflect: true,
|
|
56
|
+
})
|
|
26
57
|
public text: string;
|
|
27
58
|
|
|
28
59
|
@property({
|
|
29
60
|
type: Boolean,
|
|
30
61
|
})
|
|
31
|
-
public
|
|
62
|
+
public wave: boolean = false;
|
|
32
63
|
|
|
33
64
|
@property({
|
|
34
65
|
type: Boolean,
|
|
35
66
|
})
|
|
36
|
-
public
|
|
67
|
+
public manifested = false;
|
|
37
68
|
|
|
38
69
|
@property({
|
|
39
70
|
type: String,
|
|
40
71
|
})
|
|
41
72
|
public status: 'normal' | 'pending' | 'success' | 'error' = 'normal';
|
|
42
73
|
|
|
74
|
+
public windowLayer: DeesWindowLayer;
|
|
75
|
+
|
|
43
76
|
constructor() {
|
|
44
77
|
super();
|
|
45
78
|
}
|
|
@@ -48,27 +81,22 @@ export class DeesSpeechbubble extends DeesElement {
|
|
|
48
81
|
cssManager.defaultStyles,
|
|
49
82
|
css`
|
|
50
83
|
:host {
|
|
51
|
-
position: relative;
|
|
52
|
-
display: block;
|
|
53
84
|
box-sizing: border-box;
|
|
54
85
|
color: ${cssManager.bdTheme('#333', '#fff')};
|
|
55
86
|
user-select: none;
|
|
56
87
|
}
|
|
57
|
-
:host([hidden]) {
|
|
58
|
-
display: none;
|
|
59
|
-
}
|
|
60
88
|
|
|
61
89
|
.maincontainer {
|
|
90
|
+
position: relative;
|
|
62
91
|
will-change: transform;
|
|
63
92
|
transition: transform 0.2s;
|
|
64
93
|
transform: translateX(0px);
|
|
65
|
-
position: relative;
|
|
66
94
|
transition: all 0.2s;
|
|
67
95
|
margin-left: 0px;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
96
|
+
filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.2));
|
|
97
|
+
pointer-events: none;
|
|
98
|
+
opacity: 0;
|
|
99
|
+
transition: all 0.2s;
|
|
72
100
|
}
|
|
73
101
|
|
|
74
102
|
.arrow {
|
|
@@ -77,17 +105,17 @@ export class DeesSpeechbubble extends DeesElement {
|
|
|
77
105
|
background: ${cssManager.bdTheme('#fff', '#333')};
|
|
78
106
|
height: 15px;
|
|
79
107
|
width: 15px;
|
|
80
|
-
left:
|
|
81
|
-
top:
|
|
82
|
-
border-radius:
|
|
108
|
+
left: 2px;
|
|
109
|
+
top: 12px;
|
|
110
|
+
border-radius: 3px;
|
|
83
111
|
}
|
|
84
112
|
|
|
85
113
|
.speechbubble {
|
|
86
114
|
background: ${cssManager.bdTheme('#fff', '#333')};
|
|
87
|
-
padding: 0px
|
|
115
|
+
padding: 0px 16px;
|
|
88
116
|
border-radius: 3px;
|
|
89
117
|
position: absolute;
|
|
90
|
-
|
|
118
|
+
min-width: 240px;
|
|
91
119
|
font-size: 12px;
|
|
92
120
|
top: 0px;
|
|
93
121
|
left: 8px;
|
|
@@ -132,25 +160,70 @@ export class DeesSpeechbubble extends DeesElement {
|
|
|
132
160
|
|
|
133
161
|
public render(): TemplateResult {
|
|
134
162
|
return html`
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
163
|
+
${this.manifested
|
|
164
|
+
? html`
|
|
165
|
+
<div class="maincontainer" @click=${this.handleClick}>
|
|
166
|
+
<div class="arrow"></div>
|
|
167
|
+
<div class="speechbubble">
|
|
168
|
+
${this.wave ? html`<span class="wave">👋</span>` : html``}
|
|
169
|
+
${directives.resolve(this.getHtml())}
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
`
|
|
173
|
+
: html``}
|
|
139
174
|
`;
|
|
140
175
|
}
|
|
141
176
|
|
|
142
177
|
public async handleClick() {
|
|
143
|
-
|
|
144
|
-
|
|
178
|
+
console.log('speechbubble got clicked.');
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
public async firstUpdated() {
|
|
182
|
+
// lets make sure we have a ref
|
|
183
|
+
if (!this.reffedElement) {
|
|
184
|
+
this.reffedElement = this.previousElementSibling as HTMLElement;
|
|
145
185
|
}
|
|
186
|
+
if (this.manifested) {
|
|
187
|
+
await this.updatePosition();
|
|
188
|
+
(this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '1';
|
|
189
|
+
} else {
|
|
190
|
+
// lets make sure we instrument it
|
|
191
|
+
let speechbubble: DeesSpeechbubble;
|
|
192
|
+
this.reffedElement.addEventListener('mouseenter', async () => {
|
|
193
|
+
speechbubble = await DeesSpeechbubble.createAndShow(this.reffedElement, this.text);
|
|
194
|
+
});
|
|
195
|
+
this.reffedElement.addEventListener('mouseleave', () => {
|
|
196
|
+
speechbubble.destroy();
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
146
200
|
|
|
147
|
-
|
|
201
|
+
public async updatePosition() {
|
|
202
|
+
const refElement = this.reffedElement;
|
|
203
|
+
const boundingClientRect = refElement.getBoundingClientRect();
|
|
204
|
+
this.style.position = 'fixed';
|
|
205
|
+
this.style.top = `${boundingClientRect.top - 13}px`;
|
|
206
|
+
this.style.left = `${boundingClientRect.left + refElement.clientWidth + 4}px`;
|
|
207
|
+
if (boundingClientRect.right > 250) {
|
|
208
|
+
this.style.width = `250px`;
|
|
209
|
+
}
|
|
148
210
|
}
|
|
149
211
|
|
|
150
|
-
public async
|
|
151
|
-
if (!this.
|
|
152
|
-
|
|
153
|
-
this.performUpdate();
|
|
212
|
+
public async getHtml(): Promise<any> {
|
|
213
|
+
if (!this.text) {
|
|
214
|
+
return '';
|
|
154
215
|
}
|
|
216
|
+
const normalized = domtools.plugins.smartstring.normalize.standard(this.text);
|
|
217
|
+
const result = await domtools.plugins.smartmarkdown.SmartMarkdown.easyMarkdownToHtml(
|
|
218
|
+
normalized
|
|
219
|
+
);
|
|
220
|
+
return unsafeHTML(result);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
public async show() {}
|
|
224
|
+
|
|
225
|
+
public async destroy() {
|
|
226
|
+
(this.shadowRoot.querySelector('.maincontainer') as HTMLElement).style.opacity = '0';
|
|
227
|
+
this.windowLayer.destroy();
|
|
155
228
|
}
|
|
156
229
|
}
|
|
@@ -218,6 +218,12 @@ export class DeesTable<T> extends DeesElement {
|
|
|
218
218
|
margin-right: 8px;
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
.searchGrid {
|
|
222
|
+
display: grid;
|
|
223
|
+
grid-gap: 16px;
|
|
224
|
+
grid-template-columns: 1fr 200px;
|
|
225
|
+
}
|
|
226
|
+
|
|
221
227
|
table,
|
|
222
228
|
.noDataSet {
|
|
223
229
|
margin-top: 16px;
|
|
@@ -237,7 +243,6 @@ export class DeesTable<T> extends DeesElement {
|
|
|
237
243
|
text-align: left;
|
|
238
244
|
}
|
|
239
245
|
tr:hover {
|
|
240
|
-
|
|
241
246
|
}
|
|
242
247
|
tr:hover td {
|
|
243
248
|
background: ${cssManager.bdTheme('#22222210', '#ffffff10')};
|
|
@@ -369,7 +374,6 @@ export class DeesTable<T> extends DeesElement {
|
|
|
369
374
|
}
|
|
370
375
|
|
|
371
376
|
.footerActions .footerAction:hover dees-icon {
|
|
372
|
-
|
|
373
377
|
}
|
|
374
378
|
`,
|
|
375
379
|
];
|
|
@@ -410,8 +414,13 @@ export class DeesTable<T> extends DeesElement {
|
|
|
410
414
|
</div>
|
|
411
415
|
</div>
|
|
412
416
|
<div class="headingSeparation"></div>
|
|
413
|
-
|
|
414
|
-
|
|
417
|
+
<div class="searchGrid">
|
|
418
|
+
<dees-input-text .label=${'lucene syntax search'}></dees-input-text>
|
|
419
|
+
<dees-input-multitoggle
|
|
420
|
+
.label=${'search mode'}
|
|
421
|
+
.options=${['table', 'data', 'server']}
|
|
422
|
+
></dees-input-multitoggle>
|
|
423
|
+
</div>
|
|
415
424
|
|
|
416
425
|
<!-- the actual table -->
|
|
417
426
|
<style></style>
|
package/ts_web/elements/index.ts
CHANGED
|
@@ -18,6 +18,7 @@ export * from './dees-progressbar.js';
|
|
|
18
18
|
export * from './dees-input-quantityselector.js';
|
|
19
19
|
export * from './dees-input-radio.js';
|
|
20
20
|
export * from './dees-input-text.js';
|
|
21
|
+
export * from './dees-label.js';
|
|
21
22
|
export * from './dees-mobilenavigation.js';
|
|
22
23
|
export * from './dees-modal.js';
|
|
23
24
|
export * from './dees-input-multitoggle.js';
|