@design.estate/dees-catalog 1.0.236 → 1.0.238
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 +101 -94
- package/dist_bundle/bundle.js.map +3 -3
- 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 -4
- 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 +2 -0
- package/dist_ts_web/elements/dees-windowcontrols.js +48 -13
- package/dist_watch/bundle.js +117 -54
- package/dist_watch/bundle.js.map +3 -3
- 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 -3
- 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 +37 -12
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,17 +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;
|
|
72
|
+
justify-content: center;
|
|
73
|
+
align-items: center;
|
|
70
74
|
}
|
|
71
75
|
|
|
72
|
-
|
|
73
|
-
|
|
74
76
|
.appbar .fileName {
|
|
77
|
+
line-height: inherit;
|
|
78
|
+
position: relative;
|
|
79
|
+
flex: 1;
|
|
75
80
|
text-align: center;
|
|
76
81
|
}
|
|
77
82
|
|
|
@@ -175,8 +180,9 @@ export class DeesDataviewCodebox extends DeesElement {
|
|
|
175
180
|
}}"
|
|
176
181
|
>
|
|
177
182
|
<div class="appbar">
|
|
178
|
-
<dees-windowcontrols></dees-windowcontrols>
|
|
183
|
+
<dees-windowcontrols type="mac" position="left"></dees-windowcontrols>
|
|
179
184
|
<div class="fileName">index.ts</div>
|
|
185
|
+
<dees-windowcontrols type="mac" position="right"></dees-windowcontrols>
|
|
180
186
|
</div>
|
|
181
187
|
<div class="codegrid">
|
|
182
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
|
}
|
|
@@ -19,18 +19,37 @@ declare global {
|
|
|
19
19
|
|
|
20
20
|
@customElement('dees-windowcontrols')
|
|
21
21
|
export class DeesWindowControls extends DeesElement {
|
|
22
|
+
// STATIC
|
|
22
23
|
public static demo = () => html`<dees-windowcontrols></dees-windowcontrols>`;
|
|
23
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
|
+
|
|
24
36
|
public static styles = [
|
|
25
37
|
cssManager.defaultStyles,
|
|
26
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
|
+
|
|
27
47
|
.windowControls {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
grid-template-columns: 24px 24px 24px;
|
|
48
|
+
height: 100%;
|
|
49
|
+
position: relative;
|
|
50
|
+
display: flex;
|
|
51
|
+
justify-content: center;
|
|
52
|
+
align-items: center;
|
|
34
53
|
}
|
|
35
54
|
|
|
36
55
|
.windowControls div {
|
|
@@ -40,16 +59,17 @@ export class DeesWindowControls extends DeesElement {
|
|
|
40
59
|
border-radius: 50%;
|
|
41
60
|
margin: 0px;
|
|
42
61
|
padding: 0px;
|
|
43
|
-
cursor: pointer;
|
|
44
62
|
background: #222222;
|
|
45
63
|
}
|
|
46
64
|
|
|
47
65
|
.windowControls div.close {
|
|
48
66
|
background: #ff5f57;
|
|
67
|
+
margin-right: 12px;
|
|
49
68
|
}
|
|
50
69
|
|
|
51
70
|
.windowControls div.toDock {
|
|
52
71
|
background: #ffbd2e;
|
|
72
|
+
margin-right: 12px;
|
|
53
73
|
}
|
|
54
74
|
|
|
55
75
|
.windowControls div.minMax {
|
|
@@ -64,11 +84,16 @@ export class DeesWindowControls extends DeesElement {
|
|
|
64
84
|
|
|
65
85
|
public render(): TemplateResult {
|
|
66
86
|
return html`
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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``}
|
|
72
97
|
`;
|
|
73
98
|
}
|
|
74
99
|
}
|