@openproject/primer-view-components 0.87.1-rc.cfe53ad8a → 0.88.0

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.
@@ -15,7 +15,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
15
15
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
16
16
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
17
  };
18
- var _TreeViewElement_instances, _TreeViewElement_abortController, _TreeViewElement_autoExpandFrom, _TreeViewElement_eventIsActivation, _TreeViewElement_nodeForEvent, _TreeViewElement_handleNodeEvent, _TreeViewElement_eventIsCheckboxToggle, _TreeViewElement_handleCheckboxToggle, _TreeViewElement_eventIsSingleSelection, _TreeViewElement_handleNodeActivated, _TreeViewElement_handleNodeFocused, _TreeViewElement_handleNodeKeyboardEvent;
18
+ var _TreeViewElement_instances, _TreeViewElement_abortController, _TreeViewElement_autoExpandFrom, _TreeViewElement_eventIsActivation, _TreeViewElement_nodeForEvent, _TreeViewElement_handleNodeEvent, _TreeViewElement_eventIsCheckboxToggle, _TreeViewElement_handleCheckboxToggle, _TreeViewElement_eventIsSingleSelection, _TreeViewElement_handleNodeActivated, _TreeViewElement_handleNodeFocused, _TreeViewElement_handleNodeKeyboardEvent, _TreeViewElement_checkNodeOnly;
19
19
  import { controller, target } from '@github/catalyst';
20
20
  import { useRovingTabIndex } from './tree_view_roving_tab_index';
21
21
  let TreeViewElement = class TreeViewElement extends HTMLElement {
@@ -97,8 +97,8 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
97
97
  // behavior for these element types is user- or browser-defined
98
98
  if (!(node instanceof HTMLDivElement))
99
99
  return;
100
- const path = this.getNodePath(node);
101
- const nodeInfo = this.infoFromNode(node, 'true');
100
+ const newCheckedValue = this.getNodeCheckedValue(node) === 'true' ? 'false' : 'true';
101
+ const nodeInfo = this.infoFromNode(node, newCheckedValue);
102
102
  const checkSuccess = this.dispatchEvent(new CustomEvent('treeViewBeforeNodeChecked', {
103
103
  bubbles: true,
104
104
  cancelable: true,
@@ -106,11 +106,11 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
106
106
  }));
107
107
  if (!checkSuccess)
108
108
  return;
109
- if (this.getNodeCheckedValue(node) === 'true') {
109
+ if (newCheckedValue === 'false') {
110
110
  this.setNodeCheckedValue(node, 'false');
111
111
  }
112
112
  else {
113
- this.checkOnlyAtPath(path);
113
+ __classPrivateFieldGet(this, _TreeViewElement_instances, "m", _TreeViewElement_checkNodeOnly).call(this, node);
114
114
  }
115
115
  this.dispatchEvent(new CustomEvent('treeViewNodeChecked', {
116
116
  bubbles: true,
@@ -142,7 +142,7 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
142
142
  return this.querySelector('[aria-current=true]');
143
143
  }
144
144
  get activeNodes() {
145
- return document.querySelectorAll('[aria-checked="true"]');
145
+ return this.querySelectorAll('[aria-checked="true"]');
146
146
  }
147
147
  expandAtPath(path) {
148
148
  const node = this.subTreeAtPath(path);
@@ -175,10 +175,10 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
175
175
  this.setNodeCheckedValue(node, 'false');
176
176
  }
177
177
  checkOnlyAtPath(path) {
178
- for (const el of this.activeNodes) {
179
- this.uncheckAtPath(this.getNodePath(el));
180
- }
181
- this.checkAtPath(path);
178
+ const node = this.nodeAtPath(path);
179
+ if (!node)
180
+ return;
181
+ __classPrivateFieldGet(this, _TreeViewElement_instances, "m", _TreeViewElement_checkNodeOnly).call(this, node);
182
182
  }
183
183
  toggleCheckedAtPath(path) {
184
184
  const node = this.nodeAtPath(path);
@@ -286,6 +286,9 @@ let TreeViewElement = class TreeViewElement extends HTMLElement {
286
286
  const payload = {
287
287
  path: this.getNodePath(node),
288
288
  };
289
+ const nodeId = node.getAttribute('data-node-id');
290
+ if (nodeId)
291
+ payload.nodeId = nodeId;
289
292
  const inputValue = this.getFormInputValueForNode(node);
290
293
  if (inputValue)
291
294
  payload.value = inputValue;
@@ -424,7 +427,12 @@ _TreeViewElement_handleNodeKeyboardEvent = function _TreeViewElement_handleNodeK
424
427
  }
425
428
  else if (this.selectVariant(node) === 'single') {
426
429
  event.preventDefault();
427
- this.checkOnlyAtPath(this.getNodePath(node));
430
+ if (this.getNodeCheckedValue(node) === 'true') {
431
+ this.setNodeCheckedValue(node, 'false');
432
+ }
433
+ else {
434
+ __classPrivateFieldGet(this, _TreeViewElement_instances, "m", _TreeViewElement_checkNodeOnly).call(this, node);
435
+ }
428
436
  }
429
437
  else if (node instanceof HTMLAnchorElement) {
430
438
  // simulate click on space
@@ -433,6 +441,14 @@ _TreeViewElement_handleNodeKeyboardEvent = function _TreeViewElement_handleNodeK
433
441
  break;
434
442
  }
435
443
  };
444
+ _TreeViewElement_checkNodeOnly = function _TreeViewElement_checkNodeOnly(node) {
445
+ for (const el of this.activeNodes) {
446
+ if (el === node)
447
+ continue;
448
+ this.setNodeCheckedValue(el, 'false');
449
+ }
450
+ this.setNodeCheckedValue(node, 'true');
451
+ };
436
452
  __decorate([
437
453
  target
438
454
  ], TreeViewElement.prototype, "formInputContainer", void 0);
@@ -224,6 +224,7 @@ _FilterableTreeViewElement_updateCheckedNodeIds = function _FilterableTreeViewEl
224
224
  }
225
225
  __classPrivateFieldGet(this, _FilterableTreeViewElement_checkedNodeIds, "f").set(nodeId, nodeInfo.checkedValue);
226
226
  const payload = { path: nodeInfo.path };
227
+ payload.nodeId = nodeId;
227
228
  const dataValue = node.getAttribute('data-value');
228
229
  if (dataValue)
229
230
  payload.value = dataValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openproject/primer-view-components",
3
- "version": "0.87.1-rc.cfe53ad8a",
3
+ "version": "0.88.0",
4
4
  "description": "ViewComponents of the Primer Design System for OpenProject",
5
5
  "main": "app/assets/javascripts/primer_view_components.js",
6
6
  "module": "app/components/primer/primer.js",