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.
@@ -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
- __classPrivateFieldGet(this, _TreeViewSubTreeNodeElement_instances, "m", _TreeViewSubTreeNodeElement_update).call(this);
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.#update()
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
  }
@@ -6,7 +6,7 @@ module Primer
6
6
  module VERSION
7
7
  MAJOR = 0
8
8
  MINOR = 66
9
- PATCH = 1
9
+ PATCH = 2
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].join(".")
12
12
  end
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.1
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-19 00:00:00.000000000 Z
12
+ date: 2025-05-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionview