@brightspace-ui/core 3.17.2 → 3.19.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.
@@ -297,6 +297,40 @@ The `getUTCDateTimeRange(rangeType, diff)` helper function can be used to get th
|
|
297
297
|
</d2l-filter>
|
298
298
|
```
|
299
299
|
|
300
|
+
## Dimension Set Value: Date-Time Range
|
301
|
+
|
302
|
+
This component is built to be used alongside the [d2l-filter-dimension-set](#d2l-filter-dimension-set) component. It will give you a selectable filter value which expands to allow the user to select a date range using either the `d2l-input-date-time-range` or `d2l-input-date-range` component (depending on the `type` of the component). Selection triggers the `d2l-filter-change` event, with `start-value` and `end-value` (in UTC) being included in the changes for the `selected` item.
|
303
|
+
|
304
|
+
<!-- docs: demo code properties name:d2l-filter-dimension-set-date-time-range-value align:start autoOpen:true autoSize:false size:large -->
|
305
|
+
```html
|
306
|
+
<script type="module">
|
307
|
+
import '@brightspace-ui/core/components/filter/filter.js';
|
308
|
+
import '@brightspace-ui/core/components/filter/filter-dimension-set.js';
|
309
|
+
import '@brightspace-ui/core/components/filter/filter-dimension-set-date-text-value.js';
|
310
|
+
import '@brightspace-ui/core/components/filter/filter-dimension-set-date-time-range-value.js';
|
311
|
+
</script>
|
312
|
+
<d2l-filter>
|
313
|
+
<d2l-filter-dimension-set key="dates" text="Dates">
|
314
|
+
<d2l-filter-dimension-set-date-text-value key="48hours" range="48hours"></d2l-filter-dimension-set-date-text-value>
|
315
|
+
<d2l-filter-dimension-set-date-text-value key="14days" range="14days"></d2l-filter-dimension-set-date-text-value>
|
316
|
+
<d2l-filter-dimension-set-date-time-range-value key="custom" selected></d2l-filter-dimension-set-date-time-range-value>
|
317
|
+
</d2l-filter-dimension-set>
|
318
|
+
</d2l-filter>
|
319
|
+
```
|
320
|
+
<!-- docs: start hidden content -->
|
321
|
+
### Properties
|
322
|
+
|
323
|
+
| Property | Type | Description |
|
324
|
+
|---|---|---|
|
325
|
+
| `key` | String, required | Unique identifier within a dimension for the value |
|
326
|
+
| `disabled` | Boolean, default: `false` | Whether the value in the filter is disabled or not |
|
327
|
+
| `end-value` | String | Value of the end date or date-time input. Expected to be in UTC. |
|
328
|
+
| `selected` | Boolean, default: `false` | Whether the value in the filter is selected or not |
|
329
|
+
| `start-value` | String | Value of the start date or date-time input. Expected to be in UTC. |
|
330
|
+
| `text` | String, default: `"Custom Date Range"` (localized) | Text for the value in the list. This would override the default value. |
|
331
|
+
| `type` | String, default: `"date-time"` | Type of range input. Can be either `date-time` or `date`. |
|
332
|
+
<!-- docs: end hidden content -->
|
333
|
+
|
300
334
|
## Search and Paging
|
301
335
|
|
302
336
|
Most filters will not need search or paging features since filter value lists are generally short. For longer lists of filter values when Search is necessary, it can be enabled by setting search-type to `automatic` or `manual`.
|
@@ -171,7 +171,8 @@
|
|
171
171
|
<d2l-filter-dimension-set-date-text-value key="48hours" range="48hours" disabled></d2l-filter-dimension-set-date-text-value>
|
172
172
|
<d2l-filter-dimension-set-date-text-value key="today" range="today"></d2l-filter-dimension-set-date-text-value>
|
173
173
|
<d2l-filter-dimension-set-date-text-value key="6months" range="6months"></d2l-filter-dimension-set-date-text-value>
|
174
|
-
<d2l-filter-dimension-set-date-time-range-value key="custom" ></d2l-filter-dimension-set-date-time-range-value>
|
174
|
+
<d2l-filter-dimension-set-date-time-range-value key="custom" type="date"></d2l-filter-dimension-set-date-time-range-value>
|
175
|
+
<d2l-filter-dimension-set-date-time-range-value key="custom2" text="Custom Date Range with Time"></d2l-filter-dimension-set-date-time-range-value>
|
175
176
|
</d2l-filter-dimension-set>
|
176
177
|
</d2l-filter>
|
177
178
|
</template>
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import '../inputs/input-date-range.js';
|
1
2
|
import '../inputs/input-date-time-range.js';
|
3
|
+
import { getLocalDateTimeFromUTCDateTime, getUTCDateTimeFromLocalDateTime } from '../../helpers/dateTime.js';
|
2
4
|
import { html, LitElement } from 'lit';
|
3
5
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
4
6
|
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
@@ -18,7 +20,8 @@ class FilterDimensionSetDateTimeRangeValue extends LocalizeCoreElement(LitElemen
|
|
18
20
|
*/
|
19
21
|
disabled: { type: Boolean, reflect: true },
|
20
22
|
/**
|
21
|
-
*
|
23
|
+
* Value of the end date or date-time input. Expected to be in UTC.
|
24
|
+
* @type {string}
|
22
25
|
*/
|
23
26
|
endValue: { type: String, attribute: 'end-value' },
|
24
27
|
/**
|
@@ -32,14 +35,20 @@ class FilterDimensionSetDateTimeRangeValue extends LocalizeCoreElement(LitElemen
|
|
32
35
|
*/
|
33
36
|
selected: { type: Boolean, reflect: true },
|
34
37
|
/**
|
35
|
-
*
|
38
|
+
* Value of the start date or date-time input. Expected to be in UTC.
|
39
|
+
* @type {string}
|
36
40
|
*/
|
37
41
|
startValue: { type: String, attribute: 'start-value' },
|
38
42
|
/**
|
39
43
|
* Defaults to "Custom Date Range" (localized). Can be overridden if desired.
|
40
44
|
* @type {string}
|
41
45
|
*/
|
42
|
-
text: { type: String, reflect: true }
|
46
|
+
text: { type: String, reflect: true },
|
47
|
+
/**
|
48
|
+
* Date/time range input type
|
49
|
+
* @type {'date'|'date-time'}
|
50
|
+
*/
|
51
|
+
type: { type: String }
|
43
52
|
};
|
44
53
|
}
|
45
54
|
|
@@ -47,6 +56,7 @@ class FilterDimensionSetDateTimeRangeValue extends LocalizeCoreElement(LitElemen
|
|
47
56
|
super();
|
48
57
|
this.disabled = false;
|
49
58
|
this.selected = false;
|
59
|
+
this.type = 'date-time';
|
50
60
|
this._dispatchFilterChangeEvent = false;
|
51
61
|
this._enforceSingleSelection = true;
|
52
62
|
this._filterSetValue = true;
|
@@ -104,13 +114,21 @@ class FilterDimensionSetDateTimeRangeValue extends LocalizeCoreElement(LitElemen
|
|
104
114
|
}
|
105
115
|
|
106
116
|
_getAdditionalContent() {
|
107
|
-
return
|
108
|
-
|
117
|
+
return this.type === 'date'
|
118
|
+
? html`<d2l-input-date-range
|
119
|
+
@change="${this._handleDateChange}"
|
120
|
+
child-labels-hidden
|
121
|
+
end-value="${ifDefined(this.endValue ? getLocalDateTimeFromUTCDateTime(this.endValue) : undefined)}"
|
122
|
+
label="${this.localize('components.filter-dimension-set-date-time-range-value.text')}"
|
123
|
+
label-hidden
|
124
|
+
prefer-fixed-positioning
|
125
|
+
start-value="${ifDefined(this.startValue ? getLocalDateTimeFromUTCDateTime(this.startValue) : undefined)}"
|
126
|
+
></d2l-input-date-range>`
|
127
|
+
: html`<d2l-input-date-time-range
|
109
128
|
@change="${this._handleDateChange}"
|
110
129
|
child-labels-hidden
|
111
|
-
data-dimensionvaluekey="${this.key}"
|
112
130
|
end-value="${ifDefined(this.endValue)}"
|
113
|
-
label="
|
131
|
+
label="${this.localize('components.filter-dimension-set-date-time-range-value.text')}"
|
114
132
|
label-hidden
|
115
133
|
prefer-fixed-positioning
|
116
134
|
start-value="${ifDefined(this.startValue)}"
|
@@ -124,8 +142,13 @@ class FilterDimensionSetDateTimeRangeValue extends LocalizeCoreElement(LitElemen
|
|
124
142
|
}
|
125
143
|
|
126
144
|
async _handleDateChange(e) {
|
127
|
-
this.
|
128
|
-
|
145
|
+
if (this.type === 'date') {
|
146
|
+
this.startValue = e.target.startValue ? getUTCDateTimeFromLocalDateTime(e.target.startValue, '0:0') : undefined;
|
147
|
+
this.endValue = e.target.endValue ? getUTCDateTimeFromLocalDateTime(e.target.endValue, '0:0') : undefined;
|
148
|
+
} else {
|
149
|
+
this.startValue = e.target.startValue;
|
150
|
+
this.endValue = e.target.endValue;
|
151
|
+
}
|
129
152
|
|
130
153
|
this._dispatchFilterChangeEvent = true;
|
131
154
|
}
|
package/custom-elements.json
CHANGED
@@ -3873,11 +3873,21 @@
|
|
3873
3873
|
"path": "./components/filter/filter-dimension-set-date-time-range-value.js",
|
3874
3874
|
"description": "A component to represent a possible custom date range or date-time range value that can be selected for a dimension set (the main filter dimension type).\nThe start-value and end-value will be included in the d2l-filter-change event and formatted as an ISO string in UTC time.\nThis component does not render anything, but instead gathers data needed for the d2l-filter.",
|
3875
3875
|
"attributes": [
|
3876
|
+
{
|
3877
|
+
"name": "end-value",
|
3878
|
+
"description": "Value of the end date or date-time input. Expected to be in UTC.",
|
3879
|
+
"type": "string"
|
3880
|
+
},
|
3876
3881
|
{
|
3877
3882
|
"name": "key",
|
3878
3883
|
"description": "REQUIRED: Unique key to represent this value in the dimension",
|
3879
3884
|
"type": "string"
|
3880
3885
|
},
|
3886
|
+
{
|
3887
|
+
"name": "start-value",
|
3888
|
+
"description": "Value of the start date or date-time input. Expected to be in UTC.",
|
3889
|
+
"type": "string"
|
3890
|
+
},
|
3881
3891
|
{
|
3882
3892
|
"name": "text",
|
3883
3893
|
"description": "Defaults to \"Custom Date Range\" (localized). Can be overridden if desired.",
|
@@ -3894,15 +3904,33 @@
|
|
3894
3904
|
"description": "Whether this value in the filter is selected or not",
|
3895
3905
|
"type": "boolean",
|
3896
3906
|
"default": "false"
|
3907
|
+
},
|
3908
|
+
{
|
3909
|
+
"name": "type",
|
3910
|
+
"description": "Date/time range input type",
|
3911
|
+
"type": "'date'|'date-time'",
|
3912
|
+
"default": "\"date-time\""
|
3897
3913
|
}
|
3898
3914
|
],
|
3899
3915
|
"properties": [
|
3916
|
+
{
|
3917
|
+
"name": "endValue",
|
3918
|
+
"attribute": "end-value",
|
3919
|
+
"description": "Value of the end date or date-time input. Expected to be in UTC.",
|
3920
|
+
"type": "string"
|
3921
|
+
},
|
3900
3922
|
{
|
3901
3923
|
"name": "key",
|
3902
3924
|
"attribute": "key",
|
3903
3925
|
"description": "REQUIRED: Unique key to represent this value in the dimension",
|
3904
3926
|
"type": "string"
|
3905
3927
|
},
|
3928
|
+
{
|
3929
|
+
"name": "startValue",
|
3930
|
+
"attribute": "start-value",
|
3931
|
+
"description": "Value of the start date or date-time input. Expected to be in UTC.",
|
3932
|
+
"type": "string"
|
3933
|
+
},
|
3906
3934
|
{
|
3907
3935
|
"name": "text",
|
3908
3936
|
"attribute": "text",
|
@@ -3923,6 +3951,13 @@
|
|
3923
3951
|
"type": "boolean",
|
3924
3952
|
"default": "false"
|
3925
3953
|
},
|
3954
|
+
{
|
3955
|
+
"name": "type",
|
3956
|
+
"attribute": "type",
|
3957
|
+
"description": "Date/time range input type",
|
3958
|
+
"type": "'date'|'date-time'",
|
3959
|
+
"default": "\"date-time\""
|
3960
|
+
},
|
3926
3961
|
{
|
3927
3962
|
"name": "documentLocaleSettings",
|
3928
3963
|
"default": "\"getDocumentLocaleSettings()\""
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "3.
|
3
|
+
"version": "3.19.0",
|
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",
|