@openproject/primer-view-components 0.86.2 → 0.87.0-rc.c7348d13c

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.
@@ -469,6 +469,7 @@ _ActionMenuElement_handleItemActivated = function _ActionMenuElement_handleItemA
469
469
  else {
470
470
  // multi-select mode allows unchecking a checked item
471
471
  item.setAttribute('aria-checked', `${checked}`);
472
+ __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_setDynamicLabel).call(this);
472
473
  }
473
474
  __classPrivateFieldGet(this, _ActionMenuElement_instances, "m", _ActionMenuElement_updateInput).call(this);
474
475
  this.dispatchEvent(new CustomEvent('itemActivated', {
@@ -498,21 +499,29 @@ _ActionMenuElement_isOpen = function _ActionMenuElement_isOpen() {
498
499
  return this.popoverElement?.matches(':popover-open');
499
500
  };
500
501
  _ActionMenuElement_setDynamicLabel = function _ActionMenuElement_setDynamicLabel() {
501
- if (this.selectVariant !== 'single')
502
- return;
503
502
  if (!this.dynamicLabel)
504
503
  return;
505
504
  const invokerLabel = this.invokerLabel;
506
505
  if (!invokerLabel)
507
506
  return;
508
507
  __classPrivateFieldSet(this, _ActionMenuElement_originalLabel, __classPrivateFieldGet(this, _ActionMenuElement_originalLabel, "f") || (invokerLabel.textContent || ''), "f");
509
- const itemLabel = this.querySelector('[aria-checked=true] .ActionListItem-label');
508
+ let itemLabel;
509
+ if (this.selectVariant === 'single') {
510
+ itemLabel = this.querySelector('[aria-checked=true] .ActionListItem-label')?.textContent?.trim();
511
+ }
512
+ else if (this.selectVariant === 'multiple') {
513
+ itemLabel = Array.from(this.querySelectorAll(`[aria-checked=true] .ActionListItem-label`))
514
+ .map(label => (label.textContent || '').trim())
515
+ .filter(Boolean)
516
+ .join(', ');
517
+ }
518
+ itemLabel || (itemLabel = __classPrivateFieldGet(this, _ActionMenuElement_originalLabel, "f"));
510
519
  if (itemLabel && this.dynamicLabel) {
511
520
  const prefixSpan = document.createElement('span');
512
521
  prefixSpan.classList.add('color-fg-muted');
513
522
  const contentSpan = document.createElement('span');
514
- prefixSpan.textContent = this.dynamicLabelPrefix;
515
- contentSpan.textContent = itemLabel.textContent || '';
523
+ prefixSpan.textContent = this.dynamicLabelPrefix ? `${this.dynamicLabelPrefix} ` : '';
524
+ contentSpan.textContent = itemLabel;
516
525
  invokerLabel.replaceChildren(prefixSpan, contentSpan);
517
526
  }
518
527
  else {
@@ -866,6 +866,7 @@ _SelectPanelElement_handleItemActivated = function _SelectPanelElement_handleIte
866
866
  else {
867
867
  __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_removeSelectedItem).call(this, item);
868
868
  }
869
+ __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_setDynamicLabel).call(this);
869
870
  }
870
871
  __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_updateInput).call(this);
871
872
  __classPrivateFieldGet(this, _SelectPanelElement_instances, "m", _SelectPanelElement_updateTabIndices).call(this);
@@ -885,7 +886,16 @@ _SelectPanelElement_setDynamicLabel = function _SelectPanelElement_setDynamicLab
885
886
  if (!invokerLabel)
886
887
  return;
887
888
  __classPrivateFieldSet(this, _SelectPanelElement_originalLabel, __classPrivateFieldGet(this, _SelectPanelElement_originalLabel, "f") || (invokerLabel.textContent || ''), "f");
888
- const itemLabel = this.querySelector(`[${this.ariaSelectionType}=true] .ActionListItem-label`)?.textContent || __classPrivateFieldGet(this, _SelectPanelElement_originalLabel, "f");
889
+ let itemLabel;
890
+ if (this.selectVariant === 'single') {
891
+ itemLabel = this.querySelector(`[${this.ariaSelectionType}=true] .ActionListItem-label`)?.textContent;
892
+ }
893
+ else if (this.selectVariant === 'multiple') {
894
+ itemLabel = Array.from(this.querySelectorAll(`[${this.ariaSelectionType}=true] .ActionListItem-label`))
895
+ .map(label => label.textContent?.trim() ?? '')
896
+ .join(', ');
897
+ }
898
+ itemLabel || (itemLabel = __classPrivateFieldGet(this, _SelectPanelElement_originalLabel, "f"));
889
899
  if (itemLabel) {
890
900
  const prefixSpan = document.createElement('span');
891
901
  prefixSpan.classList.add('color-fg-muted');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openproject/primer-view-components",
3
- "version": "0.86.2",
3
+ "version": "0.87.0-rc.c7348d13c",
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",