@brightspace-ui/core 3.154.0 → 3.155.1
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.
@@ -11,7 +11,6 @@ import { getUniqueId } from '../../helpers/uniqueId.js';
|
|
11
11
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
12
12
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
13
13
|
import { offscreenStyles } from '../offscreen/offscreen.js';
|
14
|
-
import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
|
15
14
|
|
16
15
|
const daysInWeek = 7;
|
17
16
|
const keyCodes = {
|
@@ -148,7 +147,7 @@ export function getPrevMonth(month) {
|
|
148
147
|
* A component can be used to display a responsively sized calendar that allows for date selection.
|
149
148
|
* @slot - Content displayed under the calendar (e.g., buttons)
|
150
149
|
*/
|
151
|
-
class Calendar extends LocalizeCoreElement(
|
150
|
+
class Calendar extends LocalizeCoreElement(LitElement) {
|
152
151
|
|
153
152
|
static get properties() {
|
154
153
|
return {
|
@@ -712,6 +711,8 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
|
|
712
711
|
|
713
712
|
let preventDefault = false;
|
714
713
|
|
714
|
+
const isRtl = (document.documentElement.getAttribute('dir') === 'rtl');
|
715
|
+
|
715
716
|
switch (e.keyCode) {
|
716
717
|
case keyCodes.ENTER:
|
717
718
|
case keyCodes.SPACE:
|
@@ -728,17 +729,17 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
|
|
728
729
|
break;
|
729
730
|
case keyCodes.LEFT:
|
730
731
|
preventDefault = true; // needed for voiceover in safari to properly read aria-label on dates
|
731
|
-
await this._onKeyDownUpdateFocusDate(
|
732
|
+
await this._onKeyDownUpdateFocusDate(isRtl ? 1 : -1);
|
732
733
|
break;
|
733
734
|
case keyCodes.RIGHT:
|
734
735
|
preventDefault = true; // needed for voiceover in safari to properly read aria-label on dates
|
735
|
-
await this._onKeyDownUpdateFocusDate(
|
736
|
+
await this._onKeyDownUpdateFocusDate(isRtl ? -1 : 1);
|
736
737
|
break;
|
737
738
|
case keyCodes.HOME: {
|
738
739
|
preventDefault = true;
|
739
740
|
let numDaysChange;
|
740
741
|
const dayOfTheWeek = this._focusDate.getDay();
|
741
|
-
if (
|
742
|
+
if (isRtl) {
|
742
743
|
numDaysChange = 6 - dayOfTheWeek + calendarData.firstDayOfWeek;
|
743
744
|
if (numDaysChange > 6) {
|
744
745
|
numDaysChange -= daysInWeek;
|
@@ -762,7 +763,7 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
|
|
762
763
|
preventDefault = true;
|
763
764
|
let numDaysChange;
|
764
765
|
const dayOfTheWeek = this._focusDate.getDay();
|
765
|
-
if (
|
766
|
+
if (isRtl) {
|
766
767
|
numDaysChange = dayOfTheWeek - calendarData.firstDayOfWeek;
|
767
768
|
if (numDaysChange < 0) {
|
768
769
|
numDaysChange += daysInWeek;
|
@@ -898,7 +899,7 @@ class Calendar extends LocalizeCoreElement(RtlMixin(LitElement)) {
|
|
898
899
|
|
899
900
|
_triggerMonthChangeAnimations(increase, keyboardTriggered, transitionUpDown) {
|
900
901
|
this._monthNav = undefined;
|
901
|
-
increase =
|
902
|
+
increase = document.documentElement.getAttribute('dir') === 'rtl' ? !increase : increase;
|
902
903
|
if (!keyboardTriggered) this._isInitialFocusDate = true;
|
903
904
|
if (!reduceMotion) {
|
904
905
|
setTimeout(() => {
|
@@ -9,7 +9,6 @@ import { FocusMixin } from '../../mixins/focus/focus-mixin.js';
|
|
9
9
|
import { getComposedActiveElement } from '../../helpers/focus.js';
|
10
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
11
11
|
import { isComposedAncestor } from '../../helpers/dom.js';
|
12
|
-
import { RtlMixin } from '../../mixins/rtl/rtl-mixin.js';
|
13
12
|
import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
|
14
13
|
|
15
14
|
const normalizeHeadingStyle = (number) => {
|
@@ -53,7 +52,7 @@ function addTabListener() {
|
|
53
52
|
* @fires d2l-collapsible-panel-expand - Dispatched when the panel is expanded
|
54
53
|
* @fires d2l-collapsible-panel-collapse - Dispatched when the panel is collapsed
|
55
54
|
*/
|
56
|
-
class CollapsiblePanel extends SkeletonMixin(FocusMixin(
|
55
|
+
class CollapsiblePanel extends SkeletonMixin(FocusMixin(LitElement)) {
|
57
56
|
|
58
57
|
static get properties() {
|
59
58
|
return {
|
@@ -261,11 +260,9 @@ class CollapsiblePanel extends SkeletonMixin(FocusMixin(RtlMixin(LitElement))) {
|
|
261
260
|
margin: 0.6rem;
|
262
261
|
margin-inline-end: var(--d2l-collapsible-panel-spacing-inline);
|
263
262
|
position: relative;
|
264
|
-
|
265
|
-
}
|
266
|
-
:host([dir="rtl"]) d2l-icon-custom {
|
267
|
-
transform: scale(-1, 1);
|
263
|
+
transform: var(--d2l-mirror-transform, ${document.dir === 'rtl' ? css`scale(-1, 1)` : css`none`}); /* stylelint-disable-line @stylistic/string-quotes, @stylistic/function-whitespace-after */
|
268
264
|
transform-origin: center;
|
265
|
+
width: 0.9rem;
|
269
266
|
}
|
270
267
|
d2l-icon-custom svg {
|
271
268
|
position: absolute;
|
@@ -175,6 +175,11 @@
|
|
175
175
|
<d2l-filter-dimension-set-date-text-value key="6months2" range="6months"></d2l-filter-dimension-set-date-text-value>
|
176
176
|
<d2l-filter-dimension-set-date-time-range-value key="custom3" text="Custom Date Range with Time" start-value="2024-10-12T12:00:00Z"></d2l-filter-dimension-set-date-time-range-value>
|
177
177
|
</d2l-filter-dimension-set>
|
178
|
+
<d2l-filter-dimension-set key="dates3" text="Start and End Ranges" ignore-enforce-selection-single>
|
179
|
+
<d2l-filter-dimension-set-date-text-value key="6months" range="6months"></d2l-filter-dimension-set-date-text-value>
|
180
|
+
<d2l-filter-dimension-set-date-time-range-value key="custom4" text="Start Date"></d2l-filter-dimension-set-date-time-range-value>
|
181
|
+
<d2l-filter-dimension-set-date-time-range-value key="custom5" text="End Date"></d2l-filter-dimension-set-date-time-range-value>
|
182
|
+
</d2l-filter-dimension-set>
|
178
183
|
<d2l-filter-dimension-set key="role" text="Role" selected-first>
|
179
184
|
<d2l-filter-dimension-set-value key="admin" text="Admin" count="0"></d2l-filter-dimension-set-value>
|
180
185
|
<d2l-filter-dimension-set-value key="instructor" text="Instructor" count="22"></d2l-filter-dimension-set-value>
|
@@ -40,6 +40,10 @@ class FilterDimensionSet extends LitElement {
|
|
40
40
|
* @ignore
|
41
41
|
*/
|
42
42
|
minWidth: { type: Number },
|
43
|
+
/**
|
44
|
+
* ADVANCED: Whether to ignore the enforce single selection setting for this dimension.
|
45
|
+
*/
|
46
|
+
ignoreEnforceSelectionSingle: { type: Boolean, attribute: 'ignore-enforce-selection-single' },
|
43
47
|
/**
|
44
48
|
* Whether to hide the search input, perform a simple text search, or fire an event on search
|
45
49
|
* @type {'none'|'automatic'|'manual'}
|
@@ -79,6 +83,7 @@ class FilterDimensionSet extends LitElement {
|
|
79
83
|
this.introductoryText = '';
|
80
84
|
this.loading = false;
|
81
85
|
this.hasMore = false;
|
86
|
+
this.ignoreEnforceSelectionSingle = false;
|
82
87
|
this.searchType = 'automatic';
|
83
88
|
this.selectAll = false;
|
84
89
|
this.selectedFirst = false;
|
@@ -151,7 +156,7 @@ class FilterDimensionSet extends LitElement {
|
|
151
156
|
return value.getValueDetails();
|
152
157
|
});
|
153
158
|
if (noSearchSupport) this.searchType = 'none';
|
154
|
-
if (enforceSingleSelection) this.selectionSingle = true;
|
159
|
+
if (enforceSingleSelection && !this.ignoreEnforceSelectionSingle) this.selectionSingle = true;
|
155
160
|
if (minWidth) this.minWidth = minWidth;
|
156
161
|
return values;
|
157
162
|
}
|
package/custom-elements.json
CHANGED
@@ -4440,6 +4440,12 @@
|
|
4440
4440
|
"type": "boolean",
|
4441
4441
|
"default": "false"
|
4442
4442
|
},
|
4443
|
+
{
|
4444
|
+
"name": "ignore-enforce-selection-single",
|
4445
|
+
"description": "ADVANCED: Whether to ignore the enforce single selection setting for this dimension.",
|
4446
|
+
"type": "boolean",
|
4447
|
+
"default": "false"
|
4448
|
+
},
|
4443
4449
|
{
|
4444
4450
|
"name": "search-type",
|
4445
4451
|
"description": "Whether to hide the search input, perform a simple text search, or fire an event on search",
|
@@ -4512,6 +4518,13 @@
|
|
4512
4518
|
"type": "boolean",
|
4513
4519
|
"default": "false"
|
4514
4520
|
},
|
4521
|
+
{
|
4522
|
+
"name": "ignoreEnforceSelectionSingle",
|
4523
|
+
"attribute": "ignore-enforce-selection-single",
|
4524
|
+
"description": "ADVANCED: Whether to ignore the enforce single selection setting for this dimension.",
|
4525
|
+
"type": "boolean",
|
4526
|
+
"default": "false"
|
4527
|
+
},
|
4515
4528
|
{
|
4516
4529
|
"name": "searchType",
|
4517
4530
|
"attribute": "search-type",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "3.
|
3
|
+
"version": "3.155.1",
|
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",
|