@brightspace-ui/core 2.3.3 → 2.6.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.
- package/components/dropdown/dropdown.js +1 -1
- package/components/filter/filter.js +2 -1
- package/components/list/list-item-button-mixin.js +16 -3
- package/components/list/list-item-drag-drop-mixin.js +9 -2
- package/components/list/list-item-generic-layout.js +21 -2
- package/components/list/list-item-link-mixin.js +13 -3
- package/components/list/list-item-mixin.js +89 -82
- package/components/list/list-item-role-mixin.js +9 -1
- package/components/tag-list/tag-list.js +186 -12
- package/custom-elements.json +13 -0
- package/lang/ar.js +2 -0
- package/lang/cy.js +2 -0
- package/lang/da.js +2 -0
- package/lang/de.js +2 -0
- package/lang/en.js +2 -0
- package/lang/es-es.js +2 -0
- package/lang/es.js +2 -0
- package/lang/fr-fr.js +2 -0
- package/lang/fr.js +2 -0
- package/lang/hi.js +2 -0
- package/lang/ja.js +2 -0
- package/lang/ko.js +2 -0
- package/lang/nl.js +2 -0
- package/lang/pt.js +2 -0
- package/lang/sv.js +2 -0
- package/lang/tr.js +2 -0
- package/lang/zh-cn.js +2 -0
- package/lang/zh-tw.js +2 -0
- package/package.json +1 -1
|
@@ -23,7 +23,7 @@ class Dropdown extends DropdownOpenerMixin(LitElement) {
|
|
|
23
23
|
getOpenerElement() {
|
|
24
24
|
if (!this.shadowRoot) return undefined;
|
|
25
25
|
return this.shadowRoot.querySelector('slot')
|
|
26
|
-
.assignedNodes()
|
|
26
|
+
.assignedNodes({ flatten: true })
|
|
27
27
|
.filter(node => node.classList && node.classList.contains('d2l-dropdown-opener'))[0];
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -398,7 +398,8 @@ class Filter extends FocusMixin(LocalizeCoreElement(RtlMixin(LitElement))) {
|
|
|
398
398
|
@d2l-list-selection-change="${this._handleChangeSetDimension}"
|
|
399
399
|
extend-separators
|
|
400
400
|
grid
|
|
401
|
-
?selection-single="${dimension.selectionSingle}"
|
|
401
|
+
?selection-single="${dimension.selectionSingle}"
|
|
402
|
+
separators="between">
|
|
402
403
|
${dimension.values.map(item => html`
|
|
403
404
|
<d2l-list-item
|
|
404
405
|
?hidden="${item.hidden}"
|
|
@@ -11,9 +11,22 @@ export const ListItemButtonMixin = superclass => class extends ListItemMixin(sup
|
|
|
11
11
|
:host {
|
|
12
12
|
--d2l-list-item-content-text-color: var(--d2l-color-celestine);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
[slot="outside-control-container"] {
|
|
15
|
+
margin: 0 -12px;
|
|
16
|
+
}
|
|
17
|
+
:host([_hovering]) [slot="control-container"]::before,
|
|
18
|
+
:host([_hovering]) [slot="control-container"]::after,
|
|
19
|
+
:host([_focusing]) [slot="control-container"]::before,
|
|
20
|
+
:host([_focusing]) [slot="control-container"]::after {
|
|
21
|
+
border-top-color: transparent;
|
|
22
|
+
}
|
|
23
|
+
:host(:not([disabled]):not([skeleton])[_hovering]) [slot="outside-control-container"],
|
|
24
|
+
:host(:not([disabled]):not([skeleton])[_focusing]) [slot="outside-control-container"] {
|
|
25
|
+
background-color: white;
|
|
26
|
+
border-color: #b6cbe8; /* celestine alpha 0.3 */
|
|
27
|
+
}
|
|
28
|
+
:host(:not([disabled]):not([skeleton])[_hovering]) [slot="outside-control-container"] {
|
|
29
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
17
30
|
}
|
|
18
31
|
button {
|
|
19
32
|
background-color: transparent;
|
|
@@ -318,10 +318,17 @@ export const ListItemDragDropMixin = superclass => class extends superclass {
|
|
|
318
318
|
grid-template-columns: 100%;
|
|
319
319
|
grid-template-rows: 1rem 1fr 1fr 1rem;
|
|
320
320
|
}
|
|
321
|
-
:host([_drop-location="7"])
|
|
321
|
+
:host([_drop-location="7"]) {
|
|
322
|
+
z-index: 1; /* drop target border must render on top of next adjacent border */
|
|
323
|
+
}
|
|
324
|
+
:host([_drop-location="7"]) [slot="outside-control-container"] {
|
|
325
|
+
border: 2px solid var(--d2l-color-celestine);
|
|
322
326
|
border-radius: 6px;
|
|
323
|
-
outline: 2px solid var(--d2l-color-celestine);
|
|
324
327
|
}
|
|
328
|
+
:host([_drop-location="7"]) [slot="control-container"]::after {
|
|
329
|
+
border-color: transparent;
|
|
330
|
+
}
|
|
331
|
+
|
|
325
332
|
@media only screen and (hover: hover), only screen and (pointer: fine) {
|
|
326
333
|
d2l-list-item-drag-handle {
|
|
327
334
|
opacity: 0;
|
|
@@ -37,6 +37,11 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
37
37
|
|
|
38
38
|
static get properties() {
|
|
39
39
|
return {
|
|
40
|
+
/**
|
|
41
|
+
* How to align content in the nested slot
|
|
42
|
+
* @type {'content'|'control'}
|
|
43
|
+
*/
|
|
44
|
+
alignNested: { type: String, reflect: true, attribute: 'align-nested' },
|
|
40
45
|
/**
|
|
41
46
|
* @ignore
|
|
42
47
|
*/
|
|
@@ -68,8 +73,11 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
68
73
|
grid-column: content-start / end;
|
|
69
74
|
grid-row: nested-start / nested-end;
|
|
70
75
|
}
|
|
76
|
+
:host([align-nested="control"]) ::slotted([slot="nested"]) {
|
|
77
|
+
grid-column: control-start / end;
|
|
78
|
+
}
|
|
71
79
|
:host(.d2l-dragging-over) ::slotted([slot="nested"]) {
|
|
72
|
-
z-index: 6;
|
|
80
|
+
z-index: 6; /* must be greater than item's drop-target to allow dropping onto items within nested list */
|
|
73
81
|
}
|
|
74
82
|
|
|
75
83
|
::slotted([slot="drop-target"]) {
|
|
@@ -129,12 +137,21 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
129
137
|
grid-column: content-start / end;
|
|
130
138
|
z-index: 3;
|
|
131
139
|
}
|
|
140
|
+
|
|
141
|
+
::slotted([slot="outside-control-container"]) {
|
|
142
|
+
grid-column: start / end;
|
|
143
|
+
grid-row: 1 / 2;
|
|
144
|
+
}
|
|
145
|
+
::slotted([slot="control-container"]) {
|
|
146
|
+
grid-column: control-start / end;
|
|
147
|
+
grid-row: 1 / 2;
|
|
148
|
+
}
|
|
132
149
|
`;
|
|
133
150
|
}
|
|
134
151
|
|
|
135
152
|
constructor() {
|
|
136
153
|
super();
|
|
137
|
-
|
|
154
|
+
this.alignNested = 'content';
|
|
138
155
|
this._preventFocus = {
|
|
139
156
|
handleEvent(event) {
|
|
140
157
|
// target content slot only for now - can add others later
|
|
@@ -161,6 +178,8 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
|
161
178
|
|
|
162
179
|
render() {
|
|
163
180
|
return html`
|
|
181
|
+
<slot name="control-container"></slot>
|
|
182
|
+
<slot name="outside-control-container"></slot>
|
|
164
183
|
<slot name="drop-target"></slot>
|
|
165
184
|
<slot name="content-action" class="d2l-cell" data-cell-num="5"></slot>
|
|
166
185
|
<slot name="outside-control-action" class="d2l-cell" data-cell-num="1"></slot>
|
|
@@ -21,9 +21,19 @@ export const ListItemLinkMixin = superclass => class extends ListItemMixin(super
|
|
|
21
21
|
:host([action-href]:not([action-href=""])) {
|
|
22
22
|
--d2l-list-item-content-text-color: var(--d2l-color-celestine);
|
|
23
23
|
}
|
|
24
|
-
:host([action-href]:not([action-href=""])
|
|
25
|
-
:host([action-href]:not([action-href=""])
|
|
26
|
-
|
|
24
|
+
:host([action-href]:not([action-href=""])[_hovering]) [slot="control-container"]::before,
|
|
25
|
+
:host([action-href]:not([action-href=""])[_hovering]) [slot="control-container"]::after,
|
|
26
|
+
:host([action-href]:not([action-href=""])[_focusing]) [slot="control-container"]::before,
|
|
27
|
+
:host([action-href]:not([action-href=""])[_focusing]) [slot="control-container"]::after {
|
|
28
|
+
border-top-color: transparent;
|
|
29
|
+
}
|
|
30
|
+
:host(:not([disabled]):not([skeleton])[action-href]:not([action-href=""])[_hovering]) [slot="outside-control-container"],
|
|
31
|
+
:host(:not([disabled]):not([skeleton])[action-href]:not([action-href=""])[_focusing]) [slot="outside-control-container"] {
|
|
32
|
+
background-color: white;
|
|
33
|
+
border-color: #b6cbe8; /* celestine alpha 0.3 */
|
|
34
|
+
}
|
|
35
|
+
:host(:not([disabled]):not([skeleton])[action-href]:not([action-href=""])[_hovering]) [slot="outside-control-container"] {
|
|
36
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
27
37
|
}
|
|
28
38
|
a[href] {
|
|
29
39
|
display: block;
|
|
@@ -73,11 +73,10 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
73
73
|
_displayKeyboardTooltip: { type: Boolean },
|
|
74
74
|
_dropdownOpen: { type: Boolean, attribute: '_dropdown-open', reflect: true },
|
|
75
75
|
_fullscreenWithin: { type: Boolean, attribute: '_fullscreen-within', reflect: true },
|
|
76
|
-
|
|
77
|
-
_focusing: { type: Boolean },
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
_highlighting: { type: Boolean },
|
|
76
|
+
_hovering: { type: Boolean, reflect: true },
|
|
77
|
+
_focusing: { type: Boolean, reflect: true },
|
|
78
|
+
_highlight: { type: Boolean, reflect: true },
|
|
79
|
+
_highlighting: { type: Boolean, reflect: true },
|
|
81
80
|
_tooltipShowing: { type: Boolean, attribute: '_tooltip-showing', reflect: true }
|
|
82
81
|
};
|
|
83
82
|
}
|
|
@@ -87,12 +86,12 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
87
86
|
const styles = [ css`
|
|
88
87
|
:host {
|
|
89
88
|
display: block;
|
|
90
|
-
margin-top: -1px;
|
|
91
89
|
position: relative;
|
|
92
90
|
}
|
|
93
91
|
:host[hidden] {
|
|
94
92
|
display: none;
|
|
95
93
|
}
|
|
94
|
+
|
|
96
95
|
:host([_tooltip-showing]),
|
|
97
96
|
:host([_dropdown-open]) {
|
|
98
97
|
z-index: 10; /* must be greater than adjacent selected items */
|
|
@@ -101,12 +100,7 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
101
100
|
position: fixed; /* required for Safari */
|
|
102
101
|
z-index: 1000; /* must be greater than floating workflow buttons */
|
|
103
102
|
}
|
|
104
|
-
|
|
105
|
-
border-top: 1px solid transparent;
|
|
106
|
-
}
|
|
107
|
-
:host(:last-child) d2l-list-item-generic-layout[data-separators="between"] {
|
|
108
|
-
border-bottom: 1px solid transparent;
|
|
109
|
-
}
|
|
103
|
+
|
|
110
104
|
:host([dragging]) d2l-list-item-generic-layout {
|
|
111
105
|
filter: grayscale(75%);
|
|
112
106
|
opacity: 0.4;
|
|
@@ -114,18 +108,44 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
114
108
|
:host([dragging]) .d2l-list-item-drag-image {
|
|
115
109
|
background: white;
|
|
116
110
|
}
|
|
117
|
-
|
|
118
|
-
|
|
111
|
+
|
|
112
|
+
[slot="control-container"] {
|
|
113
|
+
position: relative;
|
|
114
|
+
}
|
|
115
|
+
:host(:first-of-type) [slot="control-container"]::before,
|
|
116
|
+
[slot="control-container"]::after {
|
|
119
117
|
border-top: 1px solid var(--d2l-color-mica);
|
|
118
|
+
content: "";
|
|
119
|
+
left: 4px;
|
|
120
|
+
position: absolute;
|
|
121
|
+
width: calc(100% - 8px);
|
|
122
|
+
}
|
|
123
|
+
:host(:first-of-type) [slot="control-container"]::before {
|
|
124
|
+
top: 0;
|
|
120
125
|
}
|
|
126
|
+
[slot="control-container"]::after {
|
|
127
|
+
bottom: -2px;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
:host(:first-of-type[_separators="between"]) [slot="control-container"]::before,
|
|
131
|
+
:host(:last-of-type[_separators="between"]) [slot="control-container"]::after,
|
|
132
|
+
:host([_separators="none"]) [slot="control-container"]::before,
|
|
133
|
+
:host([_separators="none"]) [slot="control-container"]::after,
|
|
134
|
+
:host([selectable][_hovering]) [slot="control-container"]::before,
|
|
135
|
+
:host([selectable][_hovering]) [slot="control-container"]::after,
|
|
136
|
+
:host([selectable][_focusing]) [slot="control-container"]::before,
|
|
137
|
+
:host([selectable][_focusing]) [slot="control-container"]::after,
|
|
138
|
+
:host([selected]) [slot="control-container"]::before,
|
|
139
|
+
:host([selected]) [slot="control-container"]::after,
|
|
140
|
+
:host(:first-of-type[_nested]) [slot="control-container"]::before {
|
|
141
|
+
border-top-color: transparent;
|
|
142
|
+
}
|
|
143
|
+
|
|
121
144
|
:host([padding-type="none"]) d2l-list-item-generic-layout {
|
|
122
145
|
border-bottom: 0;
|
|
123
146
|
border-top: 0;
|
|
124
147
|
}
|
|
125
|
-
|
|
126
|
-
border-bottom: 1px solid transparent;
|
|
127
|
-
border-top: 1px solid transparent;
|
|
128
|
-
}
|
|
148
|
+
|
|
129
149
|
.d2l-list-item-content-extend-separators > [slot="control"] {
|
|
130
150
|
width: 3rem;
|
|
131
151
|
}
|
|
@@ -143,8 +163,8 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
143
163
|
.d2l-list-item-content ::slotted(*) {
|
|
144
164
|
margin-top: 0.05rem;
|
|
145
165
|
}
|
|
146
|
-
.d2l-list-item-content
|
|
147
|
-
.d2l-list-item-content
|
|
166
|
+
:host([_hovering]) .d2l-list-item-content,
|
|
167
|
+
:host([_focusing]) .d2l-list-item-content {
|
|
148
168
|
--d2l-list-item-content-text-color: var(--d2l-color-celestine);
|
|
149
169
|
--d2l-list-item-content-text-decoration: underline;
|
|
150
170
|
}
|
|
@@ -157,7 +177,11 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
157
177
|
[slot="content"] {
|
|
158
178
|
display: flex;
|
|
159
179
|
justify-content: stretch;
|
|
160
|
-
padding: 0.55rem 0;
|
|
180
|
+
padding: 0.55rem 0.55rem 0.55rem 0;
|
|
181
|
+
}
|
|
182
|
+
:host([dir="rtl"]) [slot="content"] {
|
|
183
|
+
padding-left: 0.55rem;
|
|
184
|
+
padding-right: 0;
|
|
161
185
|
}
|
|
162
186
|
:host([slim]) [slot="content"] { /* TODO, remove */
|
|
163
187
|
padding-bottom: 0.35rem;
|
|
@@ -171,6 +195,7 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
171
195
|
padding-bottom: 0;
|
|
172
196
|
padding-top: 0;
|
|
173
197
|
}
|
|
198
|
+
|
|
174
199
|
[slot="content"] ::slotted([slot="illustration"]),
|
|
175
200
|
[slot="content"] .d2l-list-item-illustration * {
|
|
176
201
|
border-radius: 6px;
|
|
@@ -272,56 +297,57 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
272
297
|
:host([dir="rtl"]) .d2l-list-item-content-extend-separators d2l-selection-input {
|
|
273
298
|
margin-right: 0.9rem;
|
|
274
299
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
background-color: #f3fbff;
|
|
300
|
+
|
|
301
|
+
[slot="outside-control-container"] {
|
|
302
|
+
border: 1px solid transparent;
|
|
303
|
+
border-radius: 6px;
|
|
304
|
+
margin: 0 -12px;
|
|
281
305
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
border-color: #79b5df;
|
|
306
|
+
.d2l-list-item-content-extend-separators [slot="outside-control-container"] {
|
|
307
|
+
border-radius: 0;
|
|
285
308
|
}
|
|
286
|
-
:host([
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
background-color: #79b5df;
|
|
290
|
-
bottom: 0;
|
|
291
|
-
height: 1px;
|
|
292
|
-
position: absolute;
|
|
293
|
-
width: 100%;
|
|
294
|
-
z-index: 5;
|
|
309
|
+
:host([draggable]) [slot="outside-control-container"],
|
|
310
|
+
.d2l-list-item-content-extend-separators [slot="outside-control-container"] {
|
|
311
|
+
margin: 0;
|
|
295
312
|
}
|
|
296
313
|
|
|
297
|
-
|
|
298
|
-
|
|
314
|
+
:host(:not([disabled]):not([skeleton])[selected]) [slot="outside-control-container"],
|
|
315
|
+
:host(:not([disabled]):not([skeleton])[selectable][_hovering]) [slot="outside-control-container"],
|
|
316
|
+
:host(:not([disabled]):not([skeleton])[selectable][_focusing]) [slot="outside-control-container"] {
|
|
317
|
+
background-color: white;
|
|
318
|
+
border-color: #b6cbe8; /* celestine alpha 0.3 */
|
|
299
319
|
}
|
|
300
|
-
|
|
301
|
-
|
|
320
|
+
:host(:not([disabled]):not([skeleton])[selectable][_hovering]) [slot="outside-control-container"] {
|
|
321
|
+
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
302
322
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
323
|
+
:host(:not([disabled]):not([skeleton])[selected]) [slot="outside-control-container"] {
|
|
324
|
+
background-color: #f3fbff;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
:host(:not([disabled]):not([skeleton])[padding-type="none"]) [slot="outside-control-container"] {
|
|
328
|
+
border-color: transparent;
|
|
329
|
+
margin: 0;
|
|
308
330
|
}
|
|
309
|
-
|
|
310
|
-
|
|
331
|
+
|
|
332
|
+
:host([_highlight]) [slot="outside-control-container"] {
|
|
333
|
+
transition: background-color 400ms linear, border-color 400ms linear;
|
|
334
|
+
}
|
|
335
|
+
:host([_highlight]:first-of-type) [slot="control-container"]::before,
|
|
336
|
+
:host([_highlight]) [slot="control-container"]::after {
|
|
337
|
+
transition: border-color 400ms linear;
|
|
311
338
|
}
|
|
312
|
-
:host([
|
|
339
|
+
:host([_highlighting]) [slot="outside-control-container"],
|
|
340
|
+
:host(:not([disabled]):not([skeleton])[_hovering][_highlighting]) [slot="outside-control-container"],
|
|
341
|
+
:host(:not([disabled]):not([skeleton])[_focusing][_highlighting]) [slot="outside-control-container"],
|
|
342
|
+
:host(:not([disabled]):not([skeleton])[selected][_highlighting]) [slot="outside-control-container"] {
|
|
313
343
|
background-color: var(--d2l-color-celestine-plus-2);
|
|
314
344
|
border-color: var(--d2l-color-celestine);
|
|
315
345
|
}
|
|
316
|
-
:host([
|
|
317
|
-
:host([
|
|
318
|
-
|
|
346
|
+
:host([_highlighting]:first-of-type) [slot="control-container"]::before,
|
|
347
|
+
:host([_highlighting]) [slot="control-container"]::after {
|
|
348
|
+
border-color: transparent;
|
|
319
349
|
}
|
|
320
350
|
|
|
321
|
-
:host([_fullscreen-within]) .d2l-list-item-active-border,
|
|
322
|
-
:host([_fullscreen-within]) d2l-list-item-generic-layout.d2l-focusing + .d2l-list-item-active-border {
|
|
323
|
-
display: none;
|
|
324
|
-
}
|
|
325
351
|
d2l-tooltip > div {
|
|
326
352
|
font-weight: 700;
|
|
327
353
|
}
|
|
@@ -395,7 +421,7 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
395
421
|
|
|
396
422
|
async highlight() {
|
|
397
423
|
if (this._highlight) return;
|
|
398
|
-
const elem = this.shadowRoot.querySelector('
|
|
424
|
+
const elem = this.shadowRoot.querySelector('[slot="outside-control-container"]');
|
|
399
425
|
this._highlight = true;
|
|
400
426
|
await this.updateComplete;
|
|
401
427
|
elem.addEventListener('transitionend', () => {
|
|
@@ -485,19 +511,11 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
485
511
|
hasDisplayedKeyboardTooltip = true;
|
|
486
512
|
}
|
|
487
513
|
|
|
488
|
-
_onFocusInPrimaryAction() {
|
|
489
|
-
this._focusingPrimaryAction = true;
|
|
490
|
-
}
|
|
491
|
-
|
|
492
514
|
_onFocusOut() {
|
|
493
515
|
this._focusing = false;
|
|
494
516
|
this._displayKeyboardTooltip = false;
|
|
495
517
|
}
|
|
496
518
|
|
|
497
|
-
_onFocusOutPrimaryAction() {
|
|
498
|
-
this._focusingPrimaryAction = false;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
519
|
_onFullscreenWithin(e) {
|
|
502
520
|
if (e.detail.state) this._fullscreenWithinCount += 1;
|
|
503
521
|
else this._fullscreenWithinCount -= 1;
|
|
@@ -509,7 +527,6 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
509
527
|
}
|
|
510
528
|
|
|
511
529
|
_onMouseEnterPrimaryAction() {
|
|
512
|
-
this._hoveringPrimaryAction = true;
|
|
513
530
|
this._hovering = true;
|
|
514
531
|
}
|
|
515
532
|
|
|
@@ -518,7 +535,6 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
518
535
|
}
|
|
519
536
|
|
|
520
537
|
_onMouseLeavePrimaryAction() {
|
|
521
|
-
this._hoveringPrimaryAction = false;
|
|
522
538
|
this._hovering = false;
|
|
523
539
|
}
|
|
524
540
|
|
|
@@ -526,23 +542,15 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
526
542
|
const classes = {
|
|
527
543
|
'd2l-visible-on-ancestor-target': true,
|
|
528
544
|
'd2l-list-item-content-extend-separators': this._extendSeparators,
|
|
529
|
-
'd2l-list-item-highlight': this._highlight,
|
|
530
|
-
'd2l-list-item-highlighting': this._highlighting,
|
|
531
|
-
'd2l-focusing': this._focusing,
|
|
532
|
-
'd2l-hovering': this._hovering,
|
|
533
545
|
'd2l-dragging-over': this._draggingOver
|
|
534
546
|
};
|
|
535
|
-
const contentClasses = {
|
|
536
|
-
'd2l-list-item-content': true,
|
|
537
|
-
'd2l-hovering': this._hoveringPrimaryAction,
|
|
538
|
-
'd2l-focusing': this._focusingPrimaryAction
|
|
539
|
-
};
|
|
540
547
|
|
|
541
548
|
const primaryAction = this._renderPrimaryAction ? this._renderPrimaryAction(this._contentId) : null;
|
|
542
549
|
const tooltipForId = (primaryAction ? this._primaryActionId : (this.selectable ? this._checkboxId : null));
|
|
543
550
|
|
|
544
551
|
const innerView = html`
|
|
545
552
|
<d2l-list-item-generic-layout
|
|
553
|
+
align-nested="${ifDefined(this.draggable && this.selectable ? 'control' : undefined)}"
|
|
546
554
|
@focusin="${this._onFocusIn}"
|
|
547
555
|
@focusout="${this._onFocusOut}"
|
|
548
556
|
@d2l-fullscreen-within="${this._onFullscreenWithin}"
|
|
@@ -550,9 +558,11 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
550
558
|
data-breakpoint="${this._breakpoint}"
|
|
551
559
|
data-separators="${ifDefined(this._separators)}"
|
|
552
560
|
?grid-active="${this.role === 'rowgroup'}">
|
|
561
|
+
<div slot="outside-control-container"></div>
|
|
553
562
|
${this._renderDropTarget()}
|
|
554
563
|
${this._renderDragHandle(this._renderOutsideControl)}
|
|
555
564
|
${this._renderDragTarget(this.dragTargetHandleOnly ? this._renderOutsideControlHandleOnly : this._renderOutsideControlAction)}
|
|
565
|
+
<div slot="control-container"></div>
|
|
556
566
|
${this.selectable ? html`
|
|
557
567
|
<div slot="control">${this._renderCheckbox()}</div>
|
|
558
568
|
<div slot="control-action"
|
|
@@ -562,14 +572,12 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
562
572
|
</div>` : nothing }
|
|
563
573
|
${primaryAction ? html`
|
|
564
574
|
<div slot="content-action"
|
|
565
|
-
@focusin="${this._onFocusInPrimaryAction}"
|
|
566
|
-
@focusout="${this._onFocusOutPrimaryAction}"
|
|
567
575
|
@mouseenter="${this._onMouseEnterPrimaryAction}"
|
|
568
576
|
@mouseleave="${this._onMouseLeavePrimaryAction}">
|
|
569
577
|
${primaryAction}
|
|
570
578
|
</div>` : nothing}
|
|
571
579
|
<div slot="content"
|
|
572
|
-
class="
|
|
580
|
+
class="d2l-list-item-content"
|
|
573
581
|
id="${this._contentId}">
|
|
574
582
|
<slot name="illustration" class="d2l-list-item-illustration">${illustration}</slot>
|
|
575
583
|
<slot>${content}</slot>
|
|
@@ -584,7 +592,6 @@ export const ListItemMixin = superclass => class extends LocalizeCoreElement(Lis
|
|
|
584
592
|
<slot name="nested" @slotchange="${this._onNestedSlotChange}">${nested}</slot>
|
|
585
593
|
</div>
|
|
586
594
|
</d2l-list-item-generic-layout>
|
|
587
|
-
<div class="d2l-list-item-active-border"></div>
|
|
588
595
|
`;
|
|
589
596
|
|
|
590
597
|
return html`
|
|
@@ -7,10 +7,17 @@ export const ListItemRoleMixin = superclass => class extends superclass {
|
|
|
7
7
|
/**
|
|
8
8
|
* @ignore
|
|
9
9
|
*/
|
|
10
|
-
role: { type: String, reflect: true }
|
|
10
|
+
role: { type: String, reflect: true },
|
|
11
|
+
_nested: { type: Boolean, reflect: true },
|
|
12
|
+
_separators: { type: String, reflect: true }
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this._nested = false;
|
|
19
|
+
}
|
|
20
|
+
|
|
14
21
|
connectedCallback() {
|
|
15
22
|
super.connectedCallback();
|
|
16
23
|
|
|
@@ -20,6 +27,7 @@ export const ListItemRoleMixin = superclass => class extends superclass {
|
|
|
20
27
|
const separators = parent.getAttribute('separators');
|
|
21
28
|
|
|
22
29
|
this.role = parent.hasAttribute('grid') ? 'rowgroup' : 'listitem';
|
|
30
|
+
this._nested = (parent.slot === 'nested');
|
|
23
31
|
this._separators = separators || undefined;
|
|
24
32
|
this._extendSeparators = parent.hasAttribute('extend-separators');
|
|
25
33
|
}
|
|
@@ -1,7 +1,22 @@
|
|
|
1
|
+
import '../button/button-subtle.js';
|
|
1
2
|
import { css, html, LitElement } from 'lit';
|
|
2
3
|
import { ArrowKeysMixin } from '../../mixins/arrow-keys-mixin.js';
|
|
4
|
+
import { LocalizeCoreElement } from '../../helpers/localize-core-element.js';
|
|
5
|
+
import ResizeObserver from 'resize-observer-polyfill/dist/ResizeObserver.es.js';
|
|
6
|
+
import { styleMap } from 'lit/directives/style-map.js';
|
|
3
7
|
|
|
4
|
-
|
|
8
|
+
const PAGE_SIZE = {
|
|
9
|
+
medium: 600,
|
|
10
|
+
large: 970
|
|
11
|
+
};
|
|
12
|
+
const PAGE_SIZE_LINES = {
|
|
13
|
+
large: 1,
|
|
14
|
+
medium: 2,
|
|
15
|
+
small: 3
|
|
16
|
+
};
|
|
17
|
+
const MARGIN_TOP_HEIGHT = 6;
|
|
18
|
+
|
|
19
|
+
class TagList extends LocalizeCoreElement(ArrowKeysMixin(LitElement)) {
|
|
5
20
|
|
|
6
21
|
static get properties() {
|
|
7
22
|
return {
|
|
@@ -9,7 +24,9 @@ class TagList extends ArrowKeysMixin(LitElement) {
|
|
|
9
24
|
* REQUIRED: A description of the tag list for additional accessibility context
|
|
10
25
|
* @type {string}
|
|
11
26
|
*/
|
|
12
|
-
description: { type: String }
|
|
27
|
+
description: { type: String },
|
|
28
|
+
_chompIndex: { type: Number },
|
|
29
|
+
_showHiddenTags: { type: Boolean }
|
|
13
30
|
};
|
|
14
31
|
}
|
|
15
32
|
|
|
@@ -28,9 +45,17 @@ class TagList extends ArrowKeysMixin(LitElement) {
|
|
|
28
45
|
padding: 0;
|
|
29
46
|
position: relative;
|
|
30
47
|
}
|
|
31
|
-
::slotted(*)
|
|
48
|
+
::slotted(*),
|
|
49
|
+
d2l-button-subtle {
|
|
32
50
|
margin: 6px 6px 0 0;
|
|
33
51
|
}
|
|
52
|
+
::slotted([data-is-chomped]) {
|
|
53
|
+
display: none !important;
|
|
54
|
+
}
|
|
55
|
+
.d2l-tag-list-hidden-button {
|
|
56
|
+
position: absolute;
|
|
57
|
+
visibility: hidden;
|
|
58
|
+
}
|
|
34
59
|
`;
|
|
35
60
|
}
|
|
36
61
|
|
|
@@ -38,28 +63,71 @@ class TagList extends ArrowKeysMixin(LitElement) {
|
|
|
38
63
|
super();
|
|
39
64
|
/** @ignore */
|
|
40
65
|
this.arrowKeysDirection = 'leftrightupdown';
|
|
66
|
+
this._chompIndex = 10000;
|
|
41
67
|
this._items = [];
|
|
68
|
+
this._resizeObserver = null;
|
|
69
|
+
this._showHiddenTags = false;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
disconnectedCallback() {
|
|
73
|
+
super.disconnectedCallback();
|
|
74
|
+
if (this._resizeObserver) this._resizeObserver.disconnect();
|
|
42
75
|
}
|
|
43
76
|
|
|
44
77
|
firstUpdated(changedProperties) {
|
|
45
78
|
super.firstUpdated(changedProperties);
|
|
46
79
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
item.setAttribute('tabIndex', index === 0 ? 0 : -1);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
80
|
+
const container = this.shadowRoot.querySelector('.tag-list-outer-container');
|
|
81
|
+
this._resizeObserver = new ResizeObserver((e) => requestAnimationFrame(() => this._handleResize(e)));
|
|
82
|
+
this._resizeObserver.observe(container);
|
|
53
83
|
}
|
|
54
84
|
|
|
55
85
|
render() {
|
|
86
|
+
let hiddenCount = 0;
|
|
87
|
+
let hasHiddenTags = false;
|
|
88
|
+
this._items.forEach((element, index) => {
|
|
89
|
+
if (index >= this._chompIndex) hasHiddenTags = true;
|
|
90
|
+
if (!this._showHiddenTags && index >= this._chompIndex) {
|
|
91
|
+
hiddenCount++;
|
|
92
|
+
element.setAttribute('data-is-chomped', '');
|
|
93
|
+
} else {
|
|
94
|
+
element.removeAttribute('data-is-chomped');
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
let button = null;
|
|
99
|
+
if (hasHiddenTags) {
|
|
100
|
+
button = this._showHiddenTags ? html`
|
|
101
|
+
<d2l-button-subtle
|
|
102
|
+
class="d2l-tag-list-button"
|
|
103
|
+
@click="${this._toggleHiddenTagVisibility}"
|
|
104
|
+
slim
|
|
105
|
+
text="${this.localize('components.tag-list.show-less')}">
|
|
106
|
+
</d2l-button-subtle>
|
|
107
|
+
` : html`
|
|
108
|
+
<d2l-button-subtle
|
|
109
|
+
class="d2l-tag-list-button"
|
|
110
|
+
@click="${this._toggleHiddenTagVisibility}"
|
|
111
|
+
slim
|
|
112
|
+
text="${this.localize('components.tag-list.num-hidden', { count: hiddenCount })}">
|
|
113
|
+
</d2l-button-subtle>
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
116
|
+
|
|
56
117
|
const list = html`
|
|
57
118
|
<div role="list" class="tag-list-container" aria-describedby="d2l-tag-list-description">
|
|
58
|
-
<slot></slot>
|
|
119
|
+
<slot @slotchange="${this._handleSlotChange}"></slot>
|
|
120
|
+
${button}
|
|
59
121
|
</div>
|
|
60
122
|
`;
|
|
123
|
+
|
|
124
|
+
const outerContainerStyles = {
|
|
125
|
+
maxHeight: this._showHiddenTags ? undefined : `${(this._itemHeight + MARGIN_TOP_HEIGHT) * this._lines}px`
|
|
126
|
+
};
|
|
127
|
+
|
|
61
128
|
return html`
|
|
62
|
-
<div role="application">
|
|
129
|
+
<div role="application" class="tag-list-outer-container" style="${styleMap(outerContainerStyles)}">
|
|
130
|
+
<d2l-button-subtle aria-hidden="true" slim text="${this.localize('components.tag-list.num-hidden', { count: '##' })}" class="d2l-tag-list-hidden-button"></d2l-button-subtle>
|
|
63
131
|
${this.arrowKeysContainer(list)}
|
|
64
132
|
<div id="d2l-tag-list-description" hidden>${this.description}</div>
|
|
65
133
|
</div>
|
|
@@ -67,13 +135,87 @@ class TagList extends ArrowKeysMixin(LitElement) {
|
|
|
67
135
|
}
|
|
68
136
|
|
|
69
137
|
async arrowKeysFocusablesProvider() {
|
|
70
|
-
return this._items;
|
|
138
|
+
return this._showHiddenTags ? this._items : this._items.slice(0, this._chompIndex);
|
|
71
139
|
}
|
|
72
140
|
|
|
73
141
|
focus() {
|
|
74
142
|
if (this._items.length > 0) this._items[0].focus();
|
|
75
143
|
}
|
|
76
144
|
|
|
145
|
+
_chomp() {
|
|
146
|
+
if (!this.shadowRoot || !this._lines || !this._itemLayouts) return;
|
|
147
|
+
|
|
148
|
+
const subtleButton = this.shadowRoot.querySelector('.d2l-tag-list-hidden-button');
|
|
149
|
+
const subtleButtonWidth = Math.ceil(parseFloat(getComputedStyle(subtleButton).getPropertyValue('width')));
|
|
150
|
+
|
|
151
|
+
const showing = {
|
|
152
|
+
count: 0,
|
|
153
|
+
width: 0
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* _lines is determined by page width in _handleResize function
|
|
158
|
+
* For each line we calculate the max items that can fit in that width, then go to the next line
|
|
159
|
+
* If on the last line there is/are item(s) that won't fit in the width, we mark them as soft-hide and set isOverflowing
|
|
160
|
+
*/
|
|
161
|
+
let isOverflowing = false;
|
|
162
|
+
let overflowingIndex = 0;
|
|
163
|
+
for (let k = 1; k <= this._lines; k++) {
|
|
164
|
+
showing.width = 0;
|
|
165
|
+
|
|
166
|
+
for (let i = overflowingIndex; i < this._itemLayouts.length; i++) {
|
|
167
|
+
const itemLayout = this._itemLayouts[i];
|
|
168
|
+
|
|
169
|
+
if (!isOverflowing && showing.width + itemLayout.width < this._availableWidth) {
|
|
170
|
+
showing.width += itemLayout.width;
|
|
171
|
+
showing.count += 1;
|
|
172
|
+
itemLayout.trigger = 'soft-show';
|
|
173
|
+
} else if (k < this._lines) {
|
|
174
|
+
overflowingIndex = i;
|
|
175
|
+
break;
|
|
176
|
+
} else {
|
|
177
|
+
isOverflowing = true;
|
|
178
|
+
itemLayout.trigger = 'soft-hide';
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (!isOverflowing) {
|
|
185
|
+
this._chompIndex = showing.count;
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// calculate if additional item(s) should be hidden due to subtle button needing space
|
|
190
|
+
for (let j = this._itemLayouts.length; j--;) {
|
|
191
|
+
if ((showing.width + subtleButtonWidth) < this._availableWidth) {
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
const itemLayoutOverflowing = this._itemLayouts[j];
|
|
195
|
+
if (itemLayoutOverflowing.trigger !== 'soft-show') {
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
showing.width -= itemLayoutOverflowing.width;
|
|
199
|
+
showing.count -= 1;
|
|
200
|
+
}
|
|
201
|
+
this._chompIndex = showing.count;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
_getItemLayouts(filteredNodes) {
|
|
205
|
+
const items = filteredNodes.map((node) => {
|
|
206
|
+
const computedStyles = window.getComputedStyle(node);
|
|
207
|
+
|
|
208
|
+
return {
|
|
209
|
+
isHidden: computedStyles.display === 'none',
|
|
210
|
+
width: Math.ceil(parseFloat(computedStyles.width) || 0)
|
|
211
|
+
+ parseInt(computedStyles.marginRight) || 0
|
|
212
|
+
+ parseInt(computedStyles.marginLeft) || 0
|
|
213
|
+
};
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
return items.filter(({ isHidden }) => !isHidden);
|
|
217
|
+
}
|
|
218
|
+
|
|
77
219
|
_getTagListItems() {
|
|
78
220
|
const slot = this.shadowRoot && this.shadowRoot.querySelector('slot');
|
|
79
221
|
if (!slot) return;
|
|
@@ -84,6 +226,38 @@ class TagList extends ArrowKeysMixin(LitElement) {
|
|
|
84
226
|
});
|
|
85
227
|
}
|
|
86
228
|
|
|
229
|
+
_handleResize(entries) {
|
|
230
|
+
this._availableWidth = Math.ceil(entries[0].contentRect.width);
|
|
231
|
+
if (this._availableWidth >= PAGE_SIZE.large) this._lines = PAGE_SIZE_LINES.large;
|
|
232
|
+
else if (this._availableWidth < PAGE_SIZE.large && this._availableWidth >= PAGE_SIZE.medium) this._lines = PAGE_SIZE_LINES.medium;
|
|
233
|
+
else this._lines = PAGE_SIZE_LINES.small;
|
|
234
|
+
this._chomp();
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
_handleSlotChange() {
|
|
238
|
+
requestAnimationFrame(() => {
|
|
239
|
+
this._items = this._getTagListItems();
|
|
240
|
+
this._itemLayouts = this._getItemLayouts(this._items);
|
|
241
|
+
|
|
242
|
+
if (this._items.length === 0) return;
|
|
243
|
+
this._itemHeight = this._items[0].offsetHeight;
|
|
244
|
+
this._items.forEach((item, index) => {
|
|
245
|
+
item.setAttribute('tabIndex', index === 0 ? 0 : -1);
|
|
246
|
+
});
|
|
247
|
+
this._chomp();
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
async _toggleHiddenTagVisibility() {
|
|
252
|
+
this._showHiddenTags = !this._showHiddenTags;
|
|
253
|
+
|
|
254
|
+
if (!this.shadowRoot) return;
|
|
255
|
+
|
|
256
|
+
await this.updateComplete;
|
|
257
|
+
const button = this.shadowRoot.querySelector('.d2l-tag-list-button');
|
|
258
|
+
if (button) button.focus();
|
|
259
|
+
}
|
|
260
|
+
|
|
87
261
|
}
|
|
88
262
|
|
|
89
263
|
customElements.define('d2l-tag-list', TagList);
|
package/custom-elements.json
CHANGED
|
@@ -7091,6 +7091,12 @@
|
|
|
7091
7091
|
"name": "grid-active",
|
|
7092
7092
|
"description": "Specifies whether the grid is active or not",
|
|
7093
7093
|
"type": "boolean"
|
|
7094
|
+
},
|
|
7095
|
+
{
|
|
7096
|
+
"name": "align-nested",
|
|
7097
|
+
"description": "How to align content in the nested slot",
|
|
7098
|
+
"type": "'content'|'control'",
|
|
7099
|
+
"default": "\"content\""
|
|
7094
7100
|
}
|
|
7095
7101
|
],
|
|
7096
7102
|
"properties": [
|
|
@@ -7099,6 +7105,13 @@
|
|
|
7099
7105
|
"attribute": "grid-active",
|
|
7100
7106
|
"description": "Specifies whether the grid is active or not",
|
|
7101
7107
|
"type": "boolean"
|
|
7108
|
+
},
|
|
7109
|
+
{
|
|
7110
|
+
"name": "alignNested",
|
|
7111
|
+
"attribute": "align-nested",
|
|
7112
|
+
"description": "How to align content in the nested slot",
|
|
7113
|
+
"type": "'content'|'control'",
|
|
7114
|
+
"default": "\"content\""
|
|
7102
7115
|
}
|
|
7103
7116
|
],
|
|
7104
7117
|
"slots": [
|
package/lang/ar.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "إمكانية الرؤية",
|
|
96
96
|
"components.tabs.next": "التمرير إلى الأمام",
|
|
97
97
|
"components.tabs.previous": "التمرير إلى الخلف",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "تقسيم العرض القابل للضبط",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "السهم المتّجه إلى اليسار أو إلى اليمين لضبط حجم لوحات العرض",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "السهم المتّجه إلى الأعلى أو إلى الأسفل لضبط حجم لوحات العرض"
|
package/lang/cy.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Gwelededd",
|
|
96
96
|
"components.tabs.next": "Sgrolio Ymlaen",
|
|
97
97
|
"components.tabs.previous": "Sgrolio Yn Ôl",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Gwedd Hollt Addasadwy",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Saeth i'r chwith neu'r dde i addasu maint y paneli gweld",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Saeth i fyny neu i lawr i addasu maint y paneli gweld"
|
package/lang/da.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Synlighed",
|
|
96
96
|
"components.tabs.next": "Rul frem",
|
|
97
97
|
"components.tabs.previous": "Rul tilbage",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Justerbar delt visning",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Pil til venstre eller højre for at justere størrelsen på visningspaneler",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Pil op eller ned for at justere størrelsen på visningspaneler"
|
package/lang/de.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Sichtbarkeit",
|
|
96
96
|
"components.tabs.next": "Weiterblättern",
|
|
97
97
|
"components.tabs.previous": "Zurückblättern",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Anpassbare geteilte Ansicht",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Pfeil nach links oder rechts, um die Größe der Ansichtsbereiche anzupassen",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Pfeil nach oben oder unten, um die Größe der Ansichtsbereiche anzupassen"
|
package/lang/en.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Visibility",
|
|
96
96
|
"components.tabs.next": "Scroll Forward",
|
|
97
97
|
"components.tabs.previous": "Scroll Backward",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Adjustable Split View",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Arrow left or right to adjust the size of the view panels",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Arrow up or down to adjust the size of the view panels"
|
package/lang/es-es.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Visibilidad",
|
|
96
96
|
"components.tabs.next": "Desplazarse hacia delante",
|
|
97
97
|
"components.tabs.previous": "Desplazarse hacia atrás",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Vista dividida ajustable",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Flecha hacia la izquierda o la derecha para ajustar el tamaño de los paneles de visualización",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Flecha hacia arriba o abajo para ajustar el tamaño de los paneles de visualización"
|
package/lang/es.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Visibilidad",
|
|
96
96
|
"components.tabs.next": "Desplazarse hacia adelante",
|
|
97
97
|
"components.tabs.previous": "Desplazarse hacia atrás",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Pantalla dividida ajustable",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Utilice la flecha izquierda o derecha para ajustar el tamaño de los paneles de visualización",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Utilice la flecha hacia arriba o hacia abajo para ajustar el tamaño de los paneles de visualización"
|
package/lang/fr-fr.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Visibilité",
|
|
96
96
|
"components.tabs.next": "Faire défiler vers l'avant",
|
|
97
97
|
"components.tabs.previous": "Faire défiler vers l'arrière",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Vue fractionnée réglable",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Flèche vers la gauche ou vers la droite pour régler la taille des panneaux d’affichage",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Flèche vers le haut ou vers le bas pour régler la taille des panneaux d’affichage"
|
package/lang/fr.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Visibilité",
|
|
96
96
|
"components.tabs.next": "Défilement avant",
|
|
97
97
|
"components.tabs.previous": "Défilement arrière",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Vue partagée réglable",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Utiliser la flèche vers la gauche ou vers la droite pour régler la taille des volets d'affichage",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Flèche vers le haut ou vers le bas pour régler la taille des volets d'affichage"
|
package/lang/hi.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "दृश्यता",
|
|
96
96
|
"components.tabs.next": "आगे स्क्रॉल करें",
|
|
97
97
|
"components.tabs.previous": "पीछे स्क्रॉल करें",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "समायोजन योग्य विभाजन दृश्य",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "दृश्य पैनल्स का आकार समायोजित करने के लिए तीर बाएँ या दाएँ करें",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "दृश्य पैनल्स का आकार समायोजित करने के लिए तीर ऊपर या नीचे करें"
|
package/lang/ja.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "表示",
|
|
96
96
|
"components.tabs.next": "前方にスクロール",
|
|
97
97
|
"components.tabs.previous": "後方にスクロール",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "調整可能な分割ビュー",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "左矢印または右矢印を使用して、ビューパネルのサイズを調整します",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "上矢印または下矢印を使用して、ビューパネルのサイズを調整します"
|
package/lang/ko.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "표시여부",
|
|
96
96
|
"components.tabs.next": "앞으로 스크롤",
|
|
97
97
|
"components.tabs.previous": "뒤로 스크롤",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "조정 가능한 분할 보기",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "왼쪽 또는 오른쪽 화살표로 보기 패널의 크기 조정",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "위 또는 아래 화살표로 보기 패널의 크기 조정"
|
package/lang/nl.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Zichtbaarheid",
|
|
96
96
|
"components.tabs.next": "Naar voren scrollen",
|
|
97
97
|
"components.tabs.previous": "Naar achteren scrollen",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Instelbare gesplitste weergave",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Pijl naar links of rechts om de grootte van de weergavevensters aan te passen",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Pijl omhoog of omlaag om de grootte van de weergavevensters aan te passen"
|
package/lang/pt.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Visibilidade",
|
|
96
96
|
"components.tabs.next": "Ir para frente",
|
|
97
97
|
"components.tabs.previous": "Ir para trás",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Exibição dividida ajustável",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Use a seta para a esquerda ou para a direita para ajustar o tamanho dos painéis de exibição",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Use a seta para cima ou para baixo para ajustar o tamanho dos painéis de exibição"
|
package/lang/sv.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Synlighet",
|
|
96
96
|
"components.tabs.next": "Bläddra framåt",
|
|
97
97
|
"components.tabs.previous": "Bläddra bakåt",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Justerbar delad vy",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Pil vänster eller höger för att justera storleken på vypaneler",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Pil upp eller ned för att justera storleken på vypaneler"
|
package/lang/tr.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "Görünürlük",
|
|
96
96
|
"components.tabs.next": "İleri Kaydır",
|
|
97
97
|
"components.tabs.previous": "Geri Kaydır",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "Ayarlanabilir Bölünmüş Görüntü",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "Görüntü panellerinin boyutunu ayarlamak için sol veya sağ okları kullanın",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "Görüntü panellerinin boyutunu ayarlamak için yukarı veya aşağı okları kullanın"
|
package/lang/zh-cn.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "可见性",
|
|
96
96
|
"components.tabs.next": "向前滚动",
|
|
97
97
|
"components.tabs.previous": "向后滚动",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "可调分屏视图",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "向左或向右箭头可调整视图面板的大小",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "向上或向下箭头可调整视图面板的大小"
|
package/lang/zh-tw.js
CHANGED
|
@@ -95,6 +95,8 @@ export default {
|
|
|
95
95
|
"components.switch.visibility": "能見度",
|
|
96
96
|
"components.tabs.next": "向前捲動",
|
|
97
97
|
"components.tabs.previous": "向後捲動",
|
|
98
|
+
"components.tag-list.num-hidden": "+ {count} more",
|
|
99
|
+
"components.tag-list.show-less": "Show Less",
|
|
98
100
|
"templates.primary-secondary.adjustableSplitView": "可調整的分割檢視",
|
|
99
101
|
"templates.primary-secondary.keyboardHorizontal": "向左或向右箭頭可調整檢視面板的大小",
|
|
100
102
|
"templates.primary-secondary.keyboardVertical": "向上或向下箭頭可調整檢視面板的大小"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brightspace-ui/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.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",
|