Skip to content

Commit b4650c0

Browse files
committed
Refactoring.
1 parent 135fa4e commit b4650c0

File tree

4 files changed

+37
-60
lines changed

4 files changed

+37
-60
lines changed

src/pg/treeItem/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Tree Item
22

3-
Tree items are used in the `pg-tree` component.
3+
Tree items are used in the `pg-tree` component. See `pg-tree` for documentation.

src/pg/treeItem/treeItem.css

Lines changed: 31 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -57,27 +57,31 @@
5757
transition: background-color 0.1s ease-out;
5858
}
5959

60-
[part=item].items {
60+
[part=item] {
6161
grid-template-columns: min-content min-content auto min-content;
6262
grid-template-rows: auto;
6363
}
64-
[part=item].items [part=toggle] {
64+
[part=item] [part=selected] {
65+
grid-row: 1;
66+
grid-column: 1;
67+
}
68+
[part=item] [part=toggle] {
6569
grid-row: 1;
6670
grid-column: 1;
6771
}
68-
[part=item].items [part=iconButton] {
72+
[part=item] [part=iconButton] {
6973
grid-row: 1;
7074
grid-column: 2;
7175
}
72-
[part=item].items [part=labelButton] {
76+
[part=item] [part=labelButton] {
7377
grid-row: 1;
7478
grid-column: 3;
7579
}
76-
[part=item].items [part=actions] {
80+
[part=item] [part=actions] {
7781
grid-row: 1;
7882
grid-column: 4;
7983
}
80-
[part=item].items [part=dropabove] {
84+
[part=item] [part=dropabove] {
8185
grid-row: 1;
8286
grid-column: 1 / 5;
8387
align-self: flex-start;
@@ -86,7 +90,7 @@
8690
margin: 0 -0.25rem 0 -0.25rem;
8791
z-index: 1;
8892
}
89-
[part=item].items [part=dropon] {
93+
[part=item] [part=dropon] {
9094
grid-row: 1;
9195
grid-column: 1 / 5;
9296
margin: 0.125rem -0.25rem;
@@ -95,7 +99,7 @@
9599
[part=item].items.expanded [part=dropbelow] {
96100
display: none;
97101
}
98-
[part=item].items [part=dropbelow] {
102+
[part=item] [part=dropbelow] {
99103
grid-row: 1;
100104
grid-column: 1 / 5;
101105
align-self: flex-end;
@@ -105,44 +109,6 @@
105109
z-index: 1;
106110
}
107111

108-
[part=item]:not(.items) {
109-
grid-template-columns: min-content auto min-content;
110-
grid-template-rows: auto;
111-
}
112-
[part=item]:not(.items) [part=iconButton] {
113-
grid-row: 1;
114-
grid-column: 1;
115-
}
116-
[part=item]:not(.items) [part=labelButton] {
117-
grid-row: 1;
118-
grid-column: 2;
119-
}
120-
[part=item]:not(.items) [part=actions] {
121-
grid-row: 1;
122-
grid-column: 3;
123-
}
124-
[part=item]:not(.items) [part=dropabove] {
125-
grid-row: 1;
126-
grid-column: 1 / 4;
127-
align-self: flex-start;
128-
transform: translateY(-0.875rem);
129-
height: 1rem;
130-
margin: 0 -0.25rem 0 -1.25rem;
131-
z-index: 1;
132-
}
133-
[part=item]:not(.items) [part=dropon] {
134-
display: none;
135-
}
136-
[part=item]:not(.items) [part=dropbelow] {
137-
grid-row: 1;
138-
grid-column: 1 / 4;
139-
align-self: flex-end;
140-
transform: translateY(0.875rem);
141-
height: 1rem;
142-
margin: 0 -0.25rem 0 -1.25rem;
143-
z-index: 2;
144-
}
145-
146112
[part=item]:hover {
147113
background: var(--pg-tree-item-background-hover, rgb(69, 60, 79, 0.1));
148114
}
@@ -161,24 +127,20 @@
161127
background-image: url("data:image/svg+xml; utf8, <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M 11,17L 13,17L 19,11L 17,9L 12,14L 7,9L 5,11' fill='white' /></svg>") !important;
162128
}
163129

164-
[part=item].selected:not(.items) {
165-
position: relative;
166-
background-color: var(--pg-tree-item-background-selected, rgb(69, 60, 79, 0.1));
167-
}
168-
[part=item].selected:not(.items)::before {
169-
position: absolute;
170-
content: ' ';
130+
[part=selected] {
131+
visibility: hidden;
171132
display: flex;
172-
left: calc(0.125rem + 0.5rem * var(--x));
173-
top: 0.125rem;
174-
bottom: 0.125rem;
175133
width: 1rem;
134+
margin-left: -0.125rem;
135+
margin-right: -0.375rem;
136+
margin-top: -0.125rem;
137+
margin-bottom: -0.125rem;
176138
border-radius: 0.125rem;
177139
background: #453C4F;
178140
}
179141

180-
[part=item]:not(.items) {
181-
padding-left: calc((var(--x) * 0.5rem) + 1.25rem)
142+
[part=item].selected [part=selected] {
143+
visibility: visible;
182144
}
183145

184146
[part=actions] {
@@ -254,7 +216,12 @@
254216
margin: -0.25rem;
255217
}
256218
[part=items].dragging {
257-
--pg-_is-index-dragging: true
219+
--pg-_is-index-dragging: true;
220+
}
221+
[part=item].dragging [part=dropabove],
222+
[part=item].dragging [part=dropon],
223+
[part=item].dragging [part=dropbelow] {
224+
display: none;
258225
}
259226

260227
@container style(--pg-_is-dragging: false) {
@@ -276,4 +243,9 @@
276243
user-select: none;
277244
margin: -0.25rem;
278245
}
246+
[part=dropabove],
247+
[part=dropon],
248+
[part=dropbelow] {
249+
display: none;
250+
}
279251
}

src/pg/treeItem/treeItem.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<div part="item" draggable="true">
2+
<div part="selected"></div>
23
<button part="toggle"></button>
34
<button part="iconButton">
45
<pg-icon part="icon"></pg-icon>

src/pg/treeItem/treeItem.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ export default class PgTreeItem extends HTMLElement {
439439
e.target.classList.toggle('drop', false);
440440
}
441441

442+
#dragOnTimer;
442443
#handleDropOnEnter(e: any) {
443444
console.log('darg on');
444445
this.dispatchEvent(new CustomEvent('itemdropenter', {
@@ -453,6 +454,9 @@ export default class PgTreeItem extends HTMLElement {
453454
}
454455
}));
455456
e.target.classList.toggle('drop', true);
457+
this.#dragOnTimer = setTimeout(() => {
458+
this.#handleToggleClick();
459+
}, 1500);
456460
}
457461

458462
#handleDropOnLeave(e: any) {

0 commit comments

Comments
 (0)