openproject-primer_view_components 0.66.1 → 0.66.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +4 -2
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +4 -2
- data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.js +23 -10
- data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.ts +25 -14
- data/lib/primer/view_components/version.rb +1 -1
- metadata +2 -2
@@ -14,9 +14,11 @@ export declare class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
14
14
|
loadingIndicator: HTMLElement;
|
15
15
|
loadingFailureMessage: HTMLElement;
|
16
16
|
retryButton: HTMLButtonElement;
|
17
|
-
expanded: boolean;
|
18
|
-
loadingState: LoadingState;
|
19
17
|
connectedCallback(): void;
|
18
|
+
get expanded(): boolean;
|
19
|
+
set expanded(newValue: boolean);
|
20
|
+
get loadingState(): LoadingState;
|
21
|
+
set loadingState(newState: LoadingState);
|
20
22
|
get selectStrategy(): string;
|
21
23
|
disconnectedCallback(): void;
|
22
24
|
handleEvent(event: Event): void;
|
@@ -15,19 +15,19 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
15
15
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
16
16
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
17
17
|
};
|
18
|
-
var _TreeViewSubTreeNodeElement_instances, _TreeViewSubTreeNodeElement_abortController, _TreeViewSubTreeNodeElement_activeElementIsLoader, _TreeViewSubTreeNodeElement_handleToggleEvent, _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent, _TreeViewSubTreeNodeElement_handleRetryButtonEvent, _TreeViewSubTreeNodeElement_handleKeyboardEvent, _TreeViewSubTreeNodeElement_handleCheckboxEvent, _TreeViewSubTreeNodeElement_update, _TreeViewSubTreeNodeElement_checkboxElement_get;
|
18
|
+
var _TreeViewSubTreeNodeElement_instances, _TreeViewSubTreeNodeElement_expanded, _TreeViewSubTreeNodeElement_loadingState, _TreeViewSubTreeNodeElement_abortController, _TreeViewSubTreeNodeElement_activeElementIsLoader, _TreeViewSubTreeNodeElement_handleToggleEvent, _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent, _TreeViewSubTreeNodeElement_handleRetryButtonEvent, _TreeViewSubTreeNodeElement_handleKeyboardEvent, _TreeViewSubTreeNodeElement_handleCheckboxEvent, _TreeViewSubTreeNodeElement_update, _TreeViewSubTreeNodeElement_checkboxElement_get;
|
19
19
|
import { controller, target } from '@github/catalyst';
|
20
20
|
import { observeMutationsUntilConditionMet } from '../../utils';
|
21
21
|
let TreeViewSubTreeNodeElement = class TreeViewSubTreeNodeElement extends HTMLElement {
|
22
22
|
constructor() {
|
23
23
|
super(...arguments);
|
24
24
|
_TreeViewSubTreeNodeElement_instances.add(this);
|
25
|
+
_TreeViewSubTreeNodeElement_expanded.set(this, null);
|
26
|
+
_TreeViewSubTreeNodeElement_loadingState.set(this, 'success');
|
25
27
|
_TreeViewSubTreeNodeElement_abortController.set(this, void 0);
|
26
28
|
_TreeViewSubTreeNodeElement_activeElementIsLoader.set(this, false);
|
27
29
|
}
|
28
30
|
connectedCallback() {
|
29
|
-
this.expanded = this.node.getAttribute('aria-expanded') === 'true';
|
30
|
-
this.loadingState = 'success';
|
31
31
|
observeMutationsUntilConditionMet(this, () => Boolean(this.node) && Boolean(this.subTree), () => {
|
32
32
|
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
33
33
|
});
|
@@ -77,6 +77,23 @@ let TreeViewSubTreeNodeElement = class TreeViewSubTreeNodeElement extends HTMLEl
|
|
77
77
|
attributeFilter: ['aria-checked'],
|
78
78
|
});
|
79
79
|
}
|
80
|
+
get expanded() {
|
81
|
+
if (__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_expanded, "f") === null) {
|
82
|
+
__classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_expanded, this.node.getAttribute('aria-expanded') === 'true', "f");
|
83
|
+
}
|
84
|
+
return __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_expanded, "f");
|
85
|
+
}
|
86
|
+
set expanded(newValue) {
|
87
|
+
__classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_expanded, newValue, "f");
|
88
|
+
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
89
|
+
}
|
90
|
+
get loadingState() {
|
91
|
+
return __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_loadingState, "f");
|
92
|
+
}
|
93
|
+
set loadingState(newState) {
|
94
|
+
__classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_loadingState, newState, "f");
|
95
|
+
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
96
|
+
}
|
80
97
|
get selectStrategy() {
|
81
98
|
return this.node.getAttribute('data-select-strategy') || 'descendants';
|
82
99
|
}
|
@@ -101,7 +118,6 @@ let TreeViewSubTreeNodeElement = class TreeViewSubTreeNodeElement extends HTMLEl
|
|
101
118
|
expand() {
|
102
119
|
const alreadyExpanded = this.expanded;
|
103
120
|
this.expanded = true;
|
104
|
-
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
105
121
|
if (!alreadyExpanded && this.treeView) {
|
106
122
|
this.treeView.dispatchEvent(new CustomEvent('treeViewNodeExpanded', {
|
107
123
|
bubbles: true,
|
@@ -112,7 +128,6 @@ let TreeViewSubTreeNodeElement = class TreeViewSubTreeNodeElement extends HTMLEl
|
|
112
128
|
collapse() {
|
113
129
|
const alreadyCollapsed = !this.expanded;
|
114
130
|
this.expanded = false;
|
115
|
-
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
116
131
|
if (!alreadyCollapsed && this.treeView) {
|
117
132
|
// Prevent issue where currently focusable node is stuck inside a collapsed
|
118
133
|
// sub-tree and no node in the entire tree can be focused
|
@@ -186,6 +201,8 @@ let TreeViewSubTreeNodeElement = class TreeViewSubTreeNodeElement extends HTMLEl
|
|
186
201
|
}));
|
187
202
|
}
|
188
203
|
};
|
204
|
+
_TreeViewSubTreeNodeElement_expanded = new WeakMap();
|
205
|
+
_TreeViewSubTreeNodeElement_loadingState = new WeakMap();
|
189
206
|
_TreeViewSubTreeNodeElement_abortController = new WeakMap();
|
190
207
|
_TreeViewSubTreeNodeElement_activeElementIsLoader = new WeakMap();
|
191
208
|
_TreeViewSubTreeNodeElement_instances = new WeakSet();
|
@@ -199,18 +216,15 @@ _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent = function _TreeViewSubTr
|
|
199
216
|
// the request has started
|
200
217
|
case 'loadstart':
|
201
218
|
this.loadingState = 'loading';
|
202
|
-
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
203
219
|
break;
|
204
220
|
// the request failed
|
205
221
|
case 'error':
|
206
222
|
this.loadingState = 'error';
|
207
|
-
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
208
223
|
break;
|
209
224
|
// request succeeded but element has not yet been replaced
|
210
225
|
case 'include-fragment-replace':
|
211
|
-
this.loadingState = 'success';
|
212
226
|
__classPrivateFieldSet(this, _TreeViewSubTreeNodeElement_activeElementIsLoader, document.activeElement === this.loadingIndicator.closest('li'), "f");
|
213
|
-
|
227
|
+
this.loadingState = 'success';
|
214
228
|
break;
|
215
229
|
case 'include-fragment-replaced':
|
216
230
|
if (__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_activeElementIsLoader, "f")) {
|
@@ -232,7 +246,6 @@ _TreeViewSubTreeNodeElement_handleIncludeFragmentEvent = function _TreeViewSubTr
|
|
232
246
|
_TreeViewSubTreeNodeElement_handleRetryButtonEvent = function _TreeViewSubTreeNodeElement_handleRetryButtonEvent(event) {
|
233
247
|
if (event.type === 'click') {
|
234
248
|
this.loadingState = 'loading';
|
235
|
-
__classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
|
236
249
|
this.includeFragment.refetch();
|
237
250
|
}
|
238
251
|
};
|
@@ -20,16 +20,12 @@ export class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
20
20
|
@target loadingFailureMessage: HTMLElement
|
21
21
|
@target retryButton: HTMLButtonElement
|
22
22
|
|
23
|
-
expanded: boolean
|
24
|
-
loadingState: LoadingState
|
25
|
-
|
23
|
+
#expanded: boolean | null = null
|
24
|
+
#loadingState: LoadingState = 'success'
|
26
25
|
#abortController: AbortController
|
27
26
|
#activeElementIsLoader: boolean = false
|
28
27
|
|
29
28
|
connectedCallback() {
|
30
|
-
this.expanded = this.node.getAttribute('aria-expanded') === 'true'
|
31
|
-
this.loadingState = 'success'
|
32
|
-
|
33
29
|
observeMutationsUntilConditionMet(
|
34
30
|
this,
|
35
31
|
() => Boolean(this.node) && Boolean(this.subTree),
|
@@ -109,6 +105,28 @@ export class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
109
105
|
})
|
110
106
|
}
|
111
107
|
|
108
|
+
get expanded(): boolean {
|
109
|
+
if (this.#expanded === null) {
|
110
|
+
this.#expanded = this.node.getAttribute('aria-expanded') === 'true'
|
111
|
+
}
|
112
|
+
|
113
|
+
return this.#expanded
|
114
|
+
}
|
115
|
+
|
116
|
+
set expanded(newValue: boolean) {
|
117
|
+
this.#expanded = newValue
|
118
|
+
this.#update()
|
119
|
+
}
|
120
|
+
|
121
|
+
get loadingState(): LoadingState {
|
122
|
+
return this.#loadingState
|
123
|
+
}
|
124
|
+
|
125
|
+
set loadingState(newState: LoadingState) {
|
126
|
+
this.#loadingState = newState
|
127
|
+
this.#update()
|
128
|
+
}
|
129
|
+
|
112
130
|
get selectStrategy(): string {
|
113
131
|
return this.node.getAttribute('data-select-strategy') || 'descendants'
|
114
132
|
}
|
@@ -135,7 +153,6 @@ export class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
135
153
|
const alreadyExpanded = this.expanded
|
136
154
|
|
137
155
|
this.expanded = true
|
138
|
-
this.#update()
|
139
156
|
|
140
157
|
if (!alreadyExpanded && this.treeView) {
|
141
158
|
this.treeView.dispatchEvent(
|
@@ -151,7 +168,6 @@ export class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
151
168
|
const alreadyCollapsed = !this.expanded
|
152
169
|
|
153
170
|
this.expanded = false
|
154
|
-
this.#update()
|
155
171
|
|
156
172
|
if (!alreadyCollapsed && this.treeView) {
|
157
173
|
// Prevent issue where currently focusable node is stuck inside a collapsed
|
@@ -216,20 +232,17 @@ export class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
216
232
|
// the request has started
|
217
233
|
case 'loadstart':
|
218
234
|
this.loadingState = 'loading'
|
219
|
-
this.#update()
|
220
235
|
break
|
221
236
|
|
222
237
|
// the request failed
|
223
238
|
case 'error':
|
224
239
|
this.loadingState = 'error'
|
225
|
-
this.#update()
|
226
240
|
break
|
227
241
|
|
228
242
|
// request succeeded but element has not yet been replaced
|
229
243
|
case 'include-fragment-replace':
|
230
|
-
this.loadingState = 'success'
|
231
244
|
this.#activeElementIsLoader = document.activeElement === this.loadingIndicator.closest('li')
|
232
|
-
this
|
245
|
+
this.loadingState = 'success'
|
233
246
|
break
|
234
247
|
|
235
248
|
case 'include-fragment-replaced':
|
@@ -253,8 +266,6 @@ export class TreeViewSubTreeNodeElement extends HTMLElement {
|
|
253
266
|
#handleRetryButtonEvent(event: Event) {
|
254
267
|
if (event.type === 'click') {
|
255
268
|
this.loadingState = 'loading'
|
256
|
-
this.#update()
|
257
|
-
|
258
269
|
this.includeFragment.refetch()
|
259
270
|
}
|
260
271
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openproject-primer_view_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.66.
|
4
|
+
version: 0.66.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2025-05-
|
12
|
+
date: 2025-05-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionview
|