@brightspace-ui/core 3.75.1 → 3.75.3
Sign up to get free protection for your applications and to get access to all the features.
- package/components/dialog/dialog.js +1 -1
- package/components/dropdown/dropdown-content-mixin.js +7 -1
- package/components/filter/filter.js +14 -8
- package/components/inputs/input-time.js +9 -1
- package/custom-elements.json +2 -2
- package/lang/fr.js +1 -1
- package/lang/hi.js +1 -1
- package/package.json +2 -5
@@ -35,7 +35,7 @@ class Dialog extends PropertyRequiredMixin(LocalizeCoreElement(AsyncContainerMix
|
|
35
35
|
critical: { type: Boolean },
|
36
36
|
|
37
37
|
/**
|
38
|
-
*
|
38
|
+
* Causes screen readers to announce the content of the dialog on open. Only use if the content is concise and contains only text since screen readers ignore HTML semantics and some have a ~250 character limit.
|
39
39
|
*/
|
40
40
|
describeContent: { type: Boolean, attribute: 'describe-content' },
|
41
41
|
|
@@ -628,7 +628,7 @@ export const DropdownContentMixin = superclass => class extends LocalizeCoreElem
|
|
628
628
|
|
629
629
|
// DE44538: wait for dropdown content to fully render,
|
630
630
|
// otherwise this.getContentContainer() can return null.
|
631
|
-
await this.
|
631
|
+
await this.__waitForContentContainer();
|
632
632
|
|
633
633
|
this.__previousFocusableAncestor =
|
634
634
|
newValue === true
|
@@ -849,6 +849,12 @@ export const DropdownContentMixin = superclass => class extends LocalizeCoreElem
|
|
849
849
|
this._topOverflow = this.__content.scrollTop !== 0;
|
850
850
|
}
|
851
851
|
|
852
|
+
async __waitForContentContainer() {
|
853
|
+
if (this.getContentContainer() !== null) return;
|
854
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
855
|
+
return this.__waitForContentContainer();
|
856
|
+
}
|
857
|
+
|
852
858
|
_constrainSpaceAround(spaceAround, spaceRequired, targetRect) {
|
853
859
|
const constrained = { ...spaceAround };
|
854
860
|
if (this.boundary) {
|
@@ -49,11 +49,11 @@ function addSpaceListener() {
|
|
49
49
|
if (spaceListenerAdded) return;
|
50
50
|
spaceListenerAdded = true;
|
51
51
|
document.addEventListener('keydown', e => {
|
52
|
-
if (e.
|
52
|
+
if (e.key !== ' ') return;
|
53
53
|
spacePressed = true;
|
54
54
|
});
|
55
55
|
document.addEventListener('keyup', e => {
|
56
|
-
if (e.
|
56
|
+
if (e.key !== ' ') return;
|
57
57
|
spacePressed = false;
|
58
58
|
});
|
59
59
|
}
|
@@ -244,6 +244,7 @@ class Filter extends FocusMixin(LocalizeCoreElement(RtlMixin(LitElement))) {
|
|
244
244
|
onSubscribe: this._updateActiveFiltersSubscriber.bind(this),
|
245
245
|
updateSubscribers: this._updateActiveFiltersSubscribers.bind(this)
|
246
246
|
});
|
247
|
+
this._spacePressedDuringLastSelection = false;
|
247
248
|
}
|
248
249
|
|
249
250
|
static get focusElementSelector() {
|
@@ -617,7 +618,7 @@ class Filter extends FocusMixin(LocalizeCoreElement(RtlMixin(LitElement))) {
|
|
617
618
|
return html`
|
618
619
|
<d2l-list-item
|
619
620
|
id="${itemId}"
|
620
|
-
@d2l-list-item-selected="${
|
621
|
+
@d2l-list-item-selected="${item.additionalContent ? this._handleListItemSelected : undefined}"
|
621
622
|
?selection-disabled="${item.disabled}"
|
622
623
|
?hidden="${item.hidden}"
|
623
624
|
key="${item.key}"
|
@@ -896,18 +897,23 @@ class Filter extends FocusMixin(LocalizeCoreElement(RtlMixin(LitElement))) {
|
|
896
897
|
}
|
897
898
|
|
898
899
|
async _handleExpandCollapse(e) {
|
899
|
-
const
|
900
|
+
const expanded = e.target.expanded;
|
901
|
+
const eventPromise = expanded ? e.detail.expandComplete : e.detail.collapseComplete;
|
900
902
|
const parentListItem = e.target.closest('d2l-list-item');
|
901
903
|
parentListItem.classList.add('expanding-content');
|
902
904
|
|
903
905
|
await eventPromise;
|
904
906
|
parentListItem.classList.remove('expanding-content');
|
907
|
+
|
908
|
+
if (expanded && !hasDisplayedKeyboardTooltip && this._spacePressedDuringLastSelection) {
|
909
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
910
|
+
this._displayKeyboardTooltip = true;
|
911
|
+
hasDisplayedKeyboardTooltip = true;
|
912
|
+
}
|
905
913
|
}
|
906
914
|
|
907
|
-
|
908
|
-
|
909
|
-
this._displayKeyboardTooltip = true;
|
910
|
-
hasDisplayedKeyboardTooltip = true;
|
915
|
+
_handleListItemSelected() {
|
916
|
+
this._spacePressedDuringLastSelection = spacePressed;
|
911
917
|
}
|
912
918
|
|
913
919
|
_handleSearch(e) {
|
@@ -461,9 +461,17 @@ class InputTime extends InputInlineHelpMixin(FocusMixin(LabelledMixin(SkeletonMi
|
|
461
461
|
// open and focus dropdown on down arrow or enter
|
462
462
|
if (e.keyCode === 40 || e.keyCode === 13) {
|
463
463
|
if (!this._dropdownFirstOpened) this._dropdownFirstOpened = true;
|
464
|
-
this.opened = true;
|
465
464
|
e.preventDefault();
|
465
|
+
await this._waitForItems();
|
466
|
+
this.opened = true;
|
466
467
|
}
|
467
468
|
}
|
469
|
+
|
470
|
+
async _waitForItems() {
|
471
|
+
const items = this.shadowRoot.querySelectorAll('d2l-menu-item-radio');
|
472
|
+
if (items.length > 0) return;
|
473
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
474
|
+
return this._waitForItems();
|
475
|
+
}
|
468
476
|
}
|
469
477
|
customElements.define('d2l-input-time', InputTime);
|
package/custom-elements.json
CHANGED
@@ -2229,7 +2229,7 @@
|
|
2229
2229
|
},
|
2230
2230
|
{
|
2231
2231
|
"name": "describe-content",
|
2232
|
-
"description": "
|
2232
|
+
"description": "Causes screen readers to announce the content of the dialog on open. Only use if the content is concise and contains only text since screen readers ignore HTML semantics and some have a ~250 character limit.",
|
2233
2233
|
"type": "boolean",
|
2234
2234
|
"default": "false"
|
2235
2235
|
},
|
@@ -2275,7 +2275,7 @@
|
|
2275
2275
|
{
|
2276
2276
|
"name": "describeContent",
|
2277
2277
|
"attribute": "describe-content",
|
2278
|
-
"description": "
|
2278
|
+
"description": "Causes screen readers to announce the content of the dialog on open. Only use if the content is concise and contains only text since screen readers ignore HTML semantics and some have a ~250 character limit.",
|
2279
2279
|
"type": "boolean",
|
2280
2280
|
"default": "false"
|
2281
2281
|
},
|
package/lang/fr.js
CHANGED
@@ -120,7 +120,7 @@ export default {
|
|
120
120
|
"components.selection-controls.label": "Actions à sélectionner",
|
121
121
|
"components.switch.visible": "Visible",
|
122
122
|
"components.switch.visibleWithPeriod": "Visible.",
|
123
|
-
"components.switch.hidden": "Masqué
|
123
|
+
"components.switch.hidden": "Masqué",
|
124
124
|
"components.switch.conditions": "Les conditions doivent être remplies",
|
125
125
|
"components.table-col-sort-button.addSortOrder": "Sélectionner pour ajouter un ordre de tri",
|
126
126
|
"components.table-col-sort-button.changeSortOrder": "Sélectionner pour modifier l'ordre de tri",
|
package/lang/hi.js
CHANGED
@@ -43,7 +43,7 @@ export default {
|
|
43
43
|
"components.form-element.input.number.rangeUnderflow": "{minExclusive, select, true {संख्या {min} से ज़्यादा होनी चाहिए.} other {संख्या {min} से ज़्यादा या उसके बराबर होनी चाहिए.}}",
|
44
44
|
"components.form-element.input.text.tooShort": "{label} कम से कम {minlength} वर्णों का होना चाहिए",
|
45
45
|
"components.form-element.input.url.typeMismatch": "URL मान्य नहीं है",
|
46
|
-
"components.form-element.valueMissing": "{label}
|
46
|
+
"components.form-element.valueMissing": "{label} ज़रूरी है",
|
47
47
|
"components.form-error-summary.errorSummary": "{count, plural, one {आपके द्वारा सबमिट की गई जानकारी में {count} त्रुटियाँ पाई गईं} other {आपके द्वारा सबमिट की गई जानकारी में {count} त्रुटियाँ पाई गईं}}",
|
48
48
|
"components.form-error-summary.text": "त्रुटि विवरण टॉगल करें",
|
49
49
|
"components.input-color.backgroundColor": "पृष्ठभूमि का रंग",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "3.75.
|
3
|
+
"version": "3.75.3",
|
4
4
|
"description": "A collection of accessible, free, open-source web components for building Brightspace applications",
|
5
5
|
"type": "module",
|
6
6
|
"repository": "https://github.com/BrightspaceUI/core.git",
|
@@ -47,16 +47,13 @@
|
|
47
47
|
"devDependencies": {
|
48
48
|
"@brightspace-ui/stylelint-config": "^1",
|
49
49
|
"@brightspace-ui/testing": "^1",
|
50
|
-
"@eslint/compat": "^1",
|
51
|
-
"@eslint/eslintrc": "^3",
|
52
|
-
"@eslint/js": "^9",
|
53
50
|
"@rollup/plugin-dynamic-import-vars": "^2",
|
54
51
|
"@rollup/plugin-node-resolve": "^15",
|
55
52
|
"@rollup/plugin-replace": "^6",
|
56
53
|
"@web/dev-server": "^0.4",
|
57
54
|
"chalk": "^5",
|
58
55
|
"eslint": "^9",
|
59
|
-
"eslint-config-brightspace": "^
|
56
|
+
"eslint-config-brightspace": "^2.0.0",
|
60
57
|
"glob-all": "^3",
|
61
58
|
"messageformat-validator": "^2",
|
62
59
|
"rollup": "^4",
|