@design.estate/dees-catalog 1.0.235 → 1.0.237
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 +246 -235
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/dees-button.js +1 -2
- package/dist_ts_web/elements/dees-chips.js +1 -2
- package/dist_ts_web/elements/dees-contextmenu.js +1 -3
- package/dist_ts_web/elements/dees-dataview-codebox.js +10 -42
- package/dist_ts_web/elements/dees-dataview-statusobject.js +1 -2
- package/dist_ts_web/elements/dees-input-checkbox.js +1 -2
- package/dist_ts_web/elements/dees-input-dropdown.d.ts +5 -0
- package/dist_ts_web/elements/dees-input-dropdown.js +65 -15
- package/dist_ts_web/elements/dees-input-fileupload.js +1 -2
- package/dist_ts_web/elements/dees-input-quantityselector.js +1 -2
- package/dist_ts_web/elements/dees-input-radio.js +1 -2
- package/dist_ts_web/elements/dees-input-text.js +1 -2
- package/dist_ts_web/elements/dees-mobilenavigation.js +1 -2
- package/dist_ts_web/elements/dees-modal.js +1 -2
- package/dist_ts_web/elements/dees-speechbubble.js +1 -2
- package/dist_ts_web/elements/dees-stepper.js +1 -2
- package/dist_ts_web/elements/dees-table.js +2 -4
- package/dist_ts_web/elements/dees-windowcontrols.d.ts +13 -0
- package/dist_ts_web/elements/dees-windowcontrols.js +98 -0
- package/dist_ts_web/elements/dees-windowlayer.js +2 -3
- package/dist_ts_web/elements/index.d.ts +1 -0
- package/dist_ts_web/elements/index.js +2 -1
- package/dist_watch/bundle.js +237 -154
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/dees-button.ts +0 -1
- package/ts_web/elements/dees-chips.ts +0 -1
- package/ts_web/elements/dees-contextmenu.ts +0 -2
- package/ts_web/elements/dees-dataview-codebox.ts +9 -41
- package/ts_web/elements/dees-dataview-statusobject.ts +0 -1
- package/ts_web/elements/dees-input-checkbox.ts +0 -1
- package/ts_web/elements/dees-input-dropdown.ts +61 -14
- package/ts_web/elements/dees-input-fileupload.ts +0 -1
- package/ts_web/elements/dees-input-quantityselector.ts +0 -1
- package/ts_web/elements/dees-input-radio.ts +0 -1
- package/ts_web/elements/dees-input-text.ts +0 -1
- package/ts_web/elements/dees-mobilenavigation.ts +0 -1
- package/ts_web/elements/dees-modal.ts +0 -1
- package/ts_web/elements/dees-speechbubble.ts +0 -1
- package/ts_web/elements/dees-stepper.ts +0 -1
- package/ts_web/elements/dees-table.ts +1 -3
- package/ts_web/elements/dees-windowcontrols.ts +99 -0
- package/ts_web/elements/dees-windowlayer.ts +1 -3
- package/ts_web/elements/index.ts +1 -0
package/package.json
CHANGED
|
@@ -130,12 +130,10 @@ export class DeesContextmenu extends DeesElement {
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
.mainbox .menuitem:hover {
|
|
133
|
-
cursor: pointer;
|
|
134
133
|
background: ${cssManager.bdTheme('#00000010', '#ffffff10')};
|
|
135
134
|
}
|
|
136
135
|
|
|
137
136
|
.mainbox .menuitem:active {
|
|
138
|
-
cursor: pointer;
|
|
139
137
|
background: #ffffff05;
|
|
140
138
|
}
|
|
141
139
|
`,
|
|
@@ -61,51 +61,22 @@ export class DeesDataviewCodebox extends DeesElement {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.appbar {
|
|
64
|
+
position: relative;
|
|
64
65
|
color: ${cssManager.bdTheme('#333', '#ccc')};
|
|
65
66
|
background: ${cssManager.bdTheme('#ffffff', '#161616')};
|
|
66
67
|
border-bottom: 1px solid ${cssManager.bdTheme('#eeeeeb', '#222222')};
|
|
67
68
|
height: 24px;
|
|
69
|
+
display: flex;
|
|
68
70
|
font-size: 12px;
|
|
69
71
|
line-height: 24px;
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
.appbar .macControls {
|
|
73
|
-
position: absolute;
|
|
74
|
-
top: 6px;
|
|
75
|
-
left: 20px;
|
|
76
|
-
width: 200px;
|
|
77
|
-
display: grid;
|
|
78
|
-
grid-template-columns: 24px 24px 24px;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.appbar .macControls div {
|
|
82
|
-
width: 12px;
|
|
83
|
-
height: 12px;
|
|
84
|
-
display: inline-block;
|
|
85
|
-
border-radius: 50%;
|
|
86
|
-
margin: 0px;
|
|
87
|
-
padding: 0px;
|
|
88
|
-
cursor: pointer;
|
|
89
|
-
background: #222222;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.appbar .macControls div.close {
|
|
93
|
-
background: #ff5f57;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.appbar .macControls div.toDock {
|
|
97
|
-
background: #ffbd2e;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.appbar .macControls div.minMax {
|
|
101
|
-
background: #27c93f;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
.appbar .macControls div:hover {
|
|
105
|
-
background: #333333;
|
|
72
|
+
justify-content: center;
|
|
73
|
+
align-items: center;
|
|
106
74
|
}
|
|
107
75
|
|
|
108
76
|
.appbar .fileName {
|
|
77
|
+
line-height: inherit;
|
|
78
|
+
position: relative;
|
|
79
|
+
flex: 1;
|
|
109
80
|
text-align: center;
|
|
110
81
|
}
|
|
111
82
|
|
|
@@ -209,12 +180,9 @@ export class DeesDataviewCodebox extends DeesElement {
|
|
|
209
180
|
}}"
|
|
210
181
|
>
|
|
211
182
|
<div class="appbar">
|
|
212
|
-
<
|
|
213
|
-
<div class="close"></div>
|
|
214
|
-
<div class="toDock"></div>
|
|
215
|
-
<div class="minMax"></div>
|
|
216
|
-
</div>
|
|
183
|
+
<dees-windowcontrols type="mac" position="left"></dees-windowcontrols>
|
|
217
184
|
<div class="fileName">index.ts</div>
|
|
185
|
+
<dees-windowcontrols type="mac" position="right"></dees-windowcontrols>
|
|
218
186
|
</div>
|
|
219
187
|
<div class="codegrid">
|
|
220
188
|
<div class="lineNumbers">
|
|
@@ -59,6 +59,15 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
59
59
|
@state()
|
|
60
60
|
public opensToTop: boolean = false;
|
|
61
61
|
|
|
62
|
+
@state()
|
|
63
|
+
private filteredOptions: { option: string; key: string; payload?: any }[] = [];
|
|
64
|
+
|
|
65
|
+
@state()
|
|
66
|
+
private highlightedIndex: number = 0;
|
|
67
|
+
|
|
68
|
+
@state()
|
|
69
|
+
public isOpened = false;
|
|
70
|
+
|
|
62
71
|
public static styles = [
|
|
63
72
|
cssManager.defaultStyles,
|
|
64
73
|
css`
|
|
@@ -85,7 +94,6 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
85
94
|
|
|
86
95
|
.selectedBox {
|
|
87
96
|
user-select: none;
|
|
88
|
-
cursor: pointer;
|
|
89
97
|
position: relative;
|
|
90
98
|
max-width: 420px;
|
|
91
99
|
height: 40px;
|
|
@@ -99,18 +107,17 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
99
107
|
transition: all 0.2s ease;
|
|
100
108
|
}
|
|
101
109
|
|
|
102
|
-
.
|
|
103
|
-
|
|
110
|
+
.accentBottom {
|
|
111
|
+
background: #ffffff10;
|
|
104
112
|
}
|
|
105
113
|
|
|
106
|
-
.
|
|
107
|
-
|
|
114
|
+
.accentTop {
|
|
115
|
+
background: #ffffff10;
|
|
108
116
|
}
|
|
109
117
|
|
|
110
118
|
.selectionBox {
|
|
111
119
|
will-change: transform;
|
|
112
120
|
pointer-events: none;
|
|
113
|
-
cursor: pointer;
|
|
114
121
|
transition: all 0.2s ease;
|
|
115
122
|
opacity: 0;
|
|
116
123
|
background: ${cssManager.bdTheme('#ffffff', '#222222')};
|
|
@@ -118,22 +125,31 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
118
125
|
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
|
|
119
126
|
min-height: 40px;
|
|
120
127
|
border-radius: 3px;
|
|
121
|
-
padding: 4px;
|
|
122
|
-
transform: scale(0.
|
|
128
|
+
padding: 4px 8px;
|
|
129
|
+
transform: scale(0.98, 0.98);
|
|
123
130
|
position: absolute;
|
|
131
|
+
user-select: none;
|
|
124
132
|
}
|
|
125
133
|
|
|
126
134
|
.selectionBox.show {
|
|
127
135
|
pointer-events: all;
|
|
128
136
|
opacity: 1;
|
|
129
137
|
transform: scale(1, 1);
|
|
138
|
+
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.8);
|
|
130
139
|
}
|
|
131
140
|
|
|
132
141
|
.option {
|
|
133
142
|
transition: all 0.1s;
|
|
134
|
-
line-height:
|
|
143
|
+
line-height: 32px;
|
|
135
144
|
padding: 0px 4px;
|
|
136
145
|
border-radius: 3px;
|
|
146
|
+
margin: 4px 0px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.option.highlighted {
|
|
150
|
+
border-left: 2px solid #0277bd;
|
|
151
|
+
padding-left: 6px;
|
|
152
|
+
background: #ffffff20;
|
|
137
153
|
}
|
|
138
154
|
|
|
139
155
|
.option:hover {
|
|
@@ -169,20 +185,21 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
169
185
|
|
|
170
186
|
public render(): TemplateResult {
|
|
171
187
|
return html`
|
|
172
|
-
<div class="maincontainer">
|
|
188
|
+
<div class="maincontainer" @keydown="${this.isOpened ? this.handleKeyDown : undefined}">
|
|
173
189
|
${this.label ? html`<div class="label">${this.label}</div>` : html``}
|
|
174
190
|
<div class="selectionBox">
|
|
175
191
|
${this.enableSearch && !this.opensToTop
|
|
176
192
|
? html`
|
|
177
193
|
<div class="search">
|
|
178
|
-
<input type="text" placeholder="Search" />
|
|
194
|
+
<input type="text" placeholder="Search" @input="${this.handleSearch}" />
|
|
179
195
|
</div>
|
|
180
196
|
`
|
|
181
197
|
: null}
|
|
182
|
-
${this.
|
|
198
|
+
${this.filteredOptions.map((option, index) => {
|
|
199
|
+
const isHighlighted = this.highlightedIndex === index;
|
|
183
200
|
return html`
|
|
184
201
|
<div
|
|
185
|
-
class="option"
|
|
202
|
+
class="option ${isHighlighted ? 'highlighted' : ''}"
|
|
186
203
|
@click=${() => {
|
|
187
204
|
this.updateSelection(option);
|
|
188
205
|
}}
|
|
@@ -194,7 +211,7 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
194
211
|
${this.enableSearch && this.opensToTop
|
|
195
212
|
? html`
|
|
196
213
|
<div class="search">
|
|
197
|
-
<input type="text" placeholder="Search" />
|
|
214
|
+
<input type="text" placeholder="Search" @input="${this.handleSearch}" />
|
|
198
215
|
</div>
|
|
199
216
|
`
|
|
200
217
|
: null}
|
|
@@ -217,6 +234,7 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
217
234
|
|
|
218
235
|
firstUpdated() {
|
|
219
236
|
this.selectedOption = this.selectedOption || this.options[0] || null;
|
|
237
|
+
this.filteredOptions = this.options; // Initialize filteredOptions
|
|
220
238
|
}
|
|
221
239
|
|
|
222
240
|
public async updateSelection(selectedOption) {
|
|
@@ -237,6 +255,7 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
237
255
|
private isElevated: boolean = false;
|
|
238
256
|
private windowOverlay: DeesWindowLayer;
|
|
239
257
|
public async toggleSelectionBox() {
|
|
258
|
+
this.isOpened = !this.isOpened;
|
|
240
259
|
const domtoolsInstance = await this.domtoolsPromise;
|
|
241
260
|
const selectedBox: HTMLElement = this.shadowRoot.querySelector('.selectedBox');
|
|
242
261
|
const selectionBox: HTMLElement = this.shadowRoot.querySelector('.selectionBox');
|
|
@@ -298,4 +317,32 @@ export class DeesInputDropdown extends DeesElement {
|
|
|
298
317
|
}
|
|
299
318
|
}
|
|
300
319
|
}
|
|
320
|
+
|
|
321
|
+
private handleSearch(event: Event): void {
|
|
322
|
+
const searchTerm = (event.target as HTMLInputElement).value.toLowerCase();
|
|
323
|
+
this.filteredOptions = this.options.filter((option) =>
|
|
324
|
+
option.option.toLowerCase().includes(searchTerm)
|
|
325
|
+
);
|
|
326
|
+
this.highlightedIndex = 0; // Reset highlighted index
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
private handleKeyDown(event: KeyboardEvent): void {
|
|
330
|
+
if (!this.isOpened) {
|
|
331
|
+
console.log('discarded key event. Check why this function is called.');
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
const key = event.key;
|
|
335
|
+
const maxIndex = this.filteredOptions.length - 1;
|
|
336
|
+
|
|
337
|
+
if (key === 'ArrowDown') {
|
|
338
|
+
this.highlightedIndex = this.highlightedIndex + 1 > maxIndex ? 0 : this.highlightedIndex + 1;
|
|
339
|
+
event.preventDefault();
|
|
340
|
+
} else if (key === 'ArrowUp') {
|
|
341
|
+
this.highlightedIndex = this.highlightedIndex - 1 < 0 ? maxIndex : this.highlightedIndex - 1;
|
|
342
|
+
event.preventDefault();
|
|
343
|
+
} else if (key === 'Enter') {
|
|
344
|
+
this.updateSelection(this.filteredOptions[this.highlightedIndex]);
|
|
345
|
+
event.preventDefault();
|
|
346
|
+
}
|
|
347
|
+
}
|
|
301
348
|
}
|
|
@@ -202,7 +202,6 @@ export class DeesTable<T> extends DeesElement {
|
|
|
202
202
|
|
|
203
203
|
.headerActions {
|
|
204
204
|
margin-left: auto;
|
|
205
|
-
cursor: pointer;
|
|
206
205
|
}
|
|
207
206
|
.headerAction {
|
|
208
207
|
display: flex;
|
|
@@ -236,7 +235,7 @@ export class DeesTable<T> extends DeesElement {
|
|
|
236
235
|
text-align: left;
|
|
237
236
|
}
|
|
238
237
|
tr:hover {
|
|
239
|
-
|
|
238
|
+
|
|
240
239
|
}
|
|
241
240
|
tr:hover td {
|
|
242
241
|
background: ${cssManager.bdTheme('#22222210', '#ffffff10')};
|
|
@@ -343,7 +342,6 @@ export class DeesTable<T> extends DeesElement {
|
|
|
343
342
|
}
|
|
344
343
|
|
|
345
344
|
.footerActions .footerAction {
|
|
346
|
-
cursor: pointer;
|
|
347
345
|
padding: 8px 16px;
|
|
348
346
|
display: flex;
|
|
349
347
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
customElement,
|
|
3
|
+
DeesElement,
|
|
4
|
+
domtools,
|
|
5
|
+
type TemplateResult,
|
|
6
|
+
html,
|
|
7
|
+
property,
|
|
8
|
+
type CSSResult,
|
|
9
|
+
state,
|
|
10
|
+
css,
|
|
11
|
+
cssManager,
|
|
12
|
+
} from '@design.estate/dees-element';
|
|
13
|
+
|
|
14
|
+
declare global {
|
|
15
|
+
interface HTMLElementTagNameMap {
|
|
16
|
+
'dees-windowcontrols': DeesWindowControls;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@customElement('dees-windowcontrols')
|
|
21
|
+
export class DeesWindowControls extends DeesElement {
|
|
22
|
+
// STATIC
|
|
23
|
+
public static demo = () => html`<dees-windowcontrols></dees-windowcontrols>`;
|
|
24
|
+
|
|
25
|
+
// Instance
|
|
26
|
+
@property({
|
|
27
|
+
reflect: true,
|
|
28
|
+
})
|
|
29
|
+
public type: 'mac' | 'linux' | 'windows' = 'mac';
|
|
30
|
+
|
|
31
|
+
@property({
|
|
32
|
+
reflect: true,
|
|
33
|
+
})
|
|
34
|
+
public position: 'left' | 'right' = 'left';
|
|
35
|
+
|
|
36
|
+
public static styles = [
|
|
37
|
+
cssManager.defaultStyles,
|
|
38
|
+
css`
|
|
39
|
+
:host {
|
|
40
|
+
position: relative;
|
|
41
|
+
display: block;
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
padding-left: 16px;
|
|
44
|
+
padding-right: 16px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.windowControls {
|
|
48
|
+
height: 100%;
|
|
49
|
+
position: relative;
|
|
50
|
+
display: flex;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
align-items: center;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.windowControls div {
|
|
56
|
+
width: 12px;
|
|
57
|
+
height: 12px;
|
|
58
|
+
display: inline-block;
|
|
59
|
+
border-radius: 50%;
|
|
60
|
+
margin: 0px;
|
|
61
|
+
padding: 0px;
|
|
62
|
+
background: #222222;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.windowControls div.close {
|
|
66
|
+
background: #ff5f57;
|
|
67
|
+
margin-right: 12px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.windowControls div.toDock {
|
|
71
|
+
background: #ffbd2e;
|
|
72
|
+
margin-right: 12px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.windowControls div.minMax {
|
|
76
|
+
background: #27c93f;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.windowControls div:hover {
|
|
80
|
+
background: #333333;
|
|
81
|
+
}
|
|
82
|
+
`,
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
public render(): TemplateResult {
|
|
86
|
+
return html`
|
|
87
|
+
${(this.type === 'mac' && this.position === 'left') ||
|
|
88
|
+
((this.type === 'linux' || this.type === 'windows') && this.position === 'right')
|
|
89
|
+
? html`
|
|
90
|
+
<div class="windowControls">
|
|
91
|
+
<div class="close"></div>
|
|
92
|
+
<div class="toDock"></div>
|
|
93
|
+
<div class="minMax"></div>
|
|
94
|
+
</div>
|
|
95
|
+
`
|
|
96
|
+
: html``}
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { customElement, DeesElement, type TemplateResult, html, property, type CSSResult, state, } from '@design.estate/dees-element';
|
|
2
|
-
|
|
3
|
-
import * as domtools from '@design.estate/dees-domtools';
|
|
1
|
+
import { customElement, DeesElement, domtools, type TemplateResult, html, property, type CSSResult, state, } from '@design.estate/dees-element';
|
|
4
2
|
|
|
5
3
|
declare global {
|
|
6
4
|
interface HTMLElementTagNameMap {
|
package/ts_web/elements/index.ts
CHANGED