@brightspace-ui/core 2.171.3 → 2.172.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.
- package/components/button/button-add.js +18 -12
- package/components/dropdown/dropdown-menu.js +1 -0
- package/components/list/demo/demo-list.js +9 -1
- package/components/list/demo/list-drag-and-drop-position.js +7 -1
- package/components/list/demo/list-drag-and-drop.html +8 -0
- package/components/list/demo/list-item-actions.html +3 -3
- package/components/list/demo/list.html +17 -1
- package/components/list/list-controls.js +4 -0
- package/components/list/list-item-drag-drop-mixin.js +3 -0
- package/components/list/list-item-generic-layout.js +6 -1
- package/components/list/list-item-mixin.js +42 -1
- package/components/list/list.js +27 -4
- package/custom-elements.json +46 -0
- package/lang/ar.js +1 -0
- package/lang/cy.js +1 -0
- package/lang/da.js +1 -0
- package/lang/de.js +1 -0
- package/lang/en-gb.js +1 -0
- package/lang/en.js +1 -0
- package/lang/es-es.js +1 -0
- package/lang/es.js +1 -0
- package/lang/fr-fr.js +1 -0
- package/lang/fr.js +1 -0
- package/lang/hi.js +1 -0
- package/lang/ja.js +1 -0
- package/lang/ko.js +1 -0
- package/lang/nl.js +1 -0
- package/lang/pt.js +1 -0
- package/lang/sv.js +1 -0
- package/lang/tr.js +1 -0
- package/lang/zh-cn.js +1 -0
- package/lang/zh-tw.js +1 -0
- package/package.json +1 -1
- package/templates/primary-secondary/demo/integration.html +1 -1
@@ -38,9 +38,13 @@ class ButtonAdd extends RtlMixin(PropertyRequiredMixin(FocusMixin(LocalizeCoreEl
|
|
38
38
|
static get styles() {
|
39
39
|
return css`
|
40
40
|
:host {
|
41
|
-
--d2l-button-add-animation-delay:
|
41
|
+
--d2l-button-add-animation-delay: 0ms;
|
42
42
|
--d2l-button-add-animation-duration: 200ms;
|
43
43
|
--d2l-button-add-hover-focus-color: var(--d2l-color-celestine-minus-1);
|
44
|
+
--d2l-button-add-line-color: var(--d2l-color-mica);
|
45
|
+
}
|
46
|
+
:host([mode="icon-when-interacted"]) {
|
47
|
+
--d2l-button-add-animation-delay: 50ms;
|
44
48
|
}
|
45
49
|
button {
|
46
50
|
align-items: center;
|
@@ -54,13 +58,18 @@ class ButtonAdd extends RtlMixin(PropertyRequiredMixin(FocusMixin(LocalizeCoreEl
|
|
54
58
|
justify-content: center;
|
55
59
|
outline: none;
|
56
60
|
padding: 0;
|
61
|
+
position: relative;
|
57
62
|
user-select: none;
|
58
63
|
white-space: nowrap;
|
59
64
|
width: 100%;
|
65
|
+
z-index: 1; /* needed for button-add to have expected hover behaviour in list (hover from below, tooltip position) */
|
66
|
+
}
|
67
|
+
:host([mode="icon-when-interacted"]) button {
|
68
|
+
height: 7px;
|
60
69
|
}
|
61
70
|
|
62
71
|
.line {
|
63
|
-
background: var(--d2l-color
|
72
|
+
background: var(--d2l-button-add-line-color);
|
64
73
|
height: 1px;
|
65
74
|
margin: 3px 0;
|
66
75
|
width: 100%;
|
@@ -93,11 +102,12 @@ class ButtonAdd extends RtlMixin(PropertyRequiredMixin(FocusMixin(LocalizeCoreEl
|
|
93
102
|
|
94
103
|
button:${unsafeCSS(getFocusPseudoClass())} d2l-button-add-icon-text {
|
95
104
|
border-radius: 0.3rem;
|
96
|
-
box-shadow: 0 0 0
|
105
|
+
box-shadow: 0 0 0 2px var(--d2l-button-add-hover-focus-color);
|
97
106
|
}
|
98
107
|
:host([mode="icon-when-interacted"]) button:${unsafeCSS(getFocusPseudoClass())} d2l-button-add-icon-text,
|
99
108
|
:host([mode="icon"]) button:${unsafeCSS(getFocusPseudoClass())} d2l-button-add-icon-text {
|
100
|
-
|
109
|
+
border-radius: 0.2rem;
|
110
|
+
padding: 0.15rem;
|
101
111
|
}
|
102
112
|
|
103
113
|
@media (prefers-reduced-motion: no-preference) {
|
@@ -117,9 +127,6 @@ class ButtonAdd extends RtlMixin(PropertyRequiredMixin(FocusMixin(LocalizeCoreEl
|
|
117
127
|
:host([dir="rtl"]) button:focus .line-start {
|
118
128
|
animation-name: line-end-animation;
|
119
129
|
}
|
120
|
-
button:${unsafeCSS(getFocusPseudoClass())} d2l-button-add-icon-text {
|
121
|
-
transition: all var(--d2l-button-add-animation-duration) ease-in;
|
122
|
-
}
|
123
130
|
|
124
131
|
@keyframes line-start-animation {
|
125
132
|
0% {
|
@@ -151,8 +158,6 @@ class ButtonAdd extends RtlMixin(PropertyRequiredMixin(FocusMixin(LocalizeCoreEl
|
|
151
158
|
this.mode = MODE.ICON;
|
152
159
|
|
153
160
|
this._buttonId = getUniqueId();
|
154
|
-
this._hasFocus = false;
|
155
|
-
this._hasHover = false;
|
156
161
|
}
|
157
162
|
|
158
163
|
static get focusElementSelector() {
|
@@ -162,12 +167,13 @@ class ButtonAdd extends RtlMixin(PropertyRequiredMixin(FocusMixin(LocalizeCoreEl
|
|
162
167
|
render() {
|
163
168
|
const text = this.text || this.localize('components.button-add.addItem');
|
164
169
|
const id = !this.mode !== MODE.ICON_AND_TEXT ? this._buttonId : undefined;
|
170
|
+
const offset = this.mode === MODE.ICON_WHEN_INTERACTED ? 23 : 18;
|
165
171
|
|
166
172
|
const content = this.mode !== MODE.ICON_AND_TEXT
|
167
173
|
? html`<d2l-button-add-icon-text ?visible-on-ancestor="${this.mode === MODE.ICON_WHEN_INTERACTED}" animation-type="opacity"></d2l-button-add-icon-text>`
|
168
174
|
: html`<d2l-button-add-icon-text text="${text}"></d2l-button-add-icon-text>`;
|
169
175
|
const tooltip = this.mode !== MODE.ICON_AND_TEXT
|
170
|
-
? html`<d2l-tooltip class="vdiff-target" delay="100" offset="
|
176
|
+
? html`<d2l-tooltip class="vdiff-target" delay="100" offset="${offset}" for="${this._buttonId}" for-type="label">${text}</d2l-tooltip>`
|
171
177
|
: nothing;
|
172
178
|
|
173
179
|
return html`
|
@@ -217,8 +223,8 @@ class ButtonAddIconText extends VisibleOnAncestorMixin(LitElement) {
|
|
217
223
|
padding-inline-end: 0.2rem;
|
218
224
|
}
|
219
225
|
:host(:not([text])) svg {
|
220
|
-
margin: -0.
|
221
|
-
padding: 0.
|
226
|
+
margin: -0.15rem; /** hover/click target */
|
227
|
+
padding: 0.15rem; /** hover/click target */
|
222
228
|
}
|
223
229
|
|
224
230
|
span {
|
@@ -16,6 +16,7 @@ import '../list-item.js';
|
|
16
16
|
import '../list.js';
|
17
17
|
import { css, html, LitElement } from 'lit';
|
18
18
|
import { getUniqueId } from '../../../helpers/uniqueId.js';
|
19
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
19
20
|
import { repeat } from 'lit/directives/repeat.js';
|
20
21
|
|
21
22
|
const items = [{
|
@@ -116,6 +117,7 @@ class DemoList extends LitElement {
|
|
116
117
|
|
117
118
|
static get properties() {
|
118
119
|
return {
|
120
|
+
addButton: { type: Boolean, attribute: 'add-button' },
|
119
121
|
grid: { type: Boolean },
|
120
122
|
extendSeparators: { type: Boolean, attribute: 'extend-separators' },
|
121
123
|
_lastItemLoadedIndex: { state: true }
|
@@ -148,8 +150,14 @@ class DemoList extends LitElement {
|
|
148
150
|
render() {
|
149
151
|
const loadedItems = this.items.slice(0, this._lastItemLoadedIndex + 1);
|
150
152
|
const remainingItemCount = this.items.length - loadedItems.length;
|
153
|
+
const addButtonText = this.addButton ? 'Add New Item' : undefined;
|
151
154
|
return html`
|
152
|
-
<d2l-list
|
155
|
+
<d2l-list
|
156
|
+
?grid="${this.grid}"
|
157
|
+
item-count="${this.items.length}"
|
158
|
+
?extend-separators="${this.extendSeparators}"
|
159
|
+
?add-button="${this.addButton}"
|
160
|
+
add-button-text="${ifDefined(addButtonText)}">
|
153
161
|
<d2l-list-controls slot="controls" select-all-pages-allowed>
|
154
162
|
<d2l-selection-action icon="tier1:plus-default" text="Add" @d2l-selection-action-click="${this._handleAddItem}"></d2l-selection-action>
|
155
163
|
<d2l-selection-action-dropdown text="Move To" requires-selection>
|
@@ -9,6 +9,7 @@ class ListDemoDragAndDropPosition extends LitElement {
|
|
9
9
|
|
10
10
|
static get properties() {
|
11
11
|
return {
|
12
|
+
addButton: { type: Boolean, attribute: 'add-button' },
|
12
13
|
list: { type: Array },
|
13
14
|
// below are for demonstration only
|
14
15
|
grid: { type: Boolean },
|
@@ -66,8 +67,13 @@ class ListDemoDragAndDropPosition extends LitElement {
|
|
66
67
|
}
|
67
68
|
|
68
69
|
render() {
|
70
|
+
const addButtonText = this.addButton ? 'Add New Item' : undefined;
|
69
71
|
return html`
|
70
|
-
<d2l-list
|
72
|
+
<d2l-list
|
73
|
+
?grid="${this.grid}"
|
74
|
+
@d2l-list-item-position-change="${this._moveItems}"
|
75
|
+
?add-button="${this.addButton}"
|
76
|
+
add-button-text="${ifDefined(addButtonText)}">
|
71
77
|
${repeat(this.list, (item) => item.key, (item) => html`
|
72
78
|
<d2l-list-item
|
73
79
|
key="${ifDefined(item.key)}"
|
@@ -22,6 +22,14 @@
|
|
22
22
|
</template>
|
23
23
|
</d2l-demo-snippet>
|
24
24
|
|
25
|
+
<h2>Add Button</h2>
|
26
|
+
|
27
|
+
<d2l-demo-snippet>
|
28
|
+
<template>
|
29
|
+
<d2l-demo-list-drag-and-drop-position add-button selectable></d2l-demo-list-drag-and-drop-position>
|
30
|
+
</template>
|
31
|
+
</d2l-demo-snippet>
|
32
|
+
|
25
33
|
<h2>Move Event</h2>
|
26
34
|
|
27
35
|
<d2l-demo-snippet>
|
@@ -24,11 +24,11 @@
|
|
24
24
|
|
25
25
|
<d2l-demo-page page-title="d2l-list-item (actions)">
|
26
26
|
|
27
|
-
<h2>No Action</h2>
|
27
|
+
<h2>No Action, Add Button</h2>
|
28
28
|
|
29
29
|
<d2l-demo-snippet>
|
30
30
|
<template>
|
31
|
-
<d2l-list>
|
31
|
+
<d2l-list add-button>
|
32
32
|
<d2l-list-item>
|
33
33
|
<d2l-list-item-content>Introductory Earth Sciences</d2l-list-item-content>
|
34
34
|
</d2l-list-item>
|
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
<d2l-demo-snippet id="link-demo">
|
48
48
|
<template>
|
49
|
-
<d2l-list>
|
49
|
+
<d2l-list add-button>
|
50
50
|
<d2l-list>
|
51
51
|
<d2l-list-item href="http://www.d2l.com">
|
52
52
|
<d2l-list-item-content>Introductory Earth Sciences</d2l-list-item-content>
|
@@ -37,7 +37,7 @@
|
|
37
37
|
|
38
38
|
<d2l-demo-snippet>
|
39
39
|
<template>
|
40
|
-
<d2l-list>
|
40
|
+
<d2l-list add-button>
|
41
41
|
<d2l-list-item>
|
42
42
|
<d2l-list-item-content>
|
43
43
|
<div>Identify categories of physical activities</div>
|
@@ -79,6 +79,22 @@
|
|
79
79
|
</template>
|
80
80
|
</d2l-demo-snippet>
|
81
81
|
|
82
|
+
<h2>List with add button</h2>
|
83
|
+
|
84
|
+
<d2l-demo-snippet>
|
85
|
+
<template>
|
86
|
+
<d2l-demo-list add-button></d2l-demo-list>
|
87
|
+
</template>
|
88
|
+
</d2l-demo-snippet>
|
89
|
+
|
90
|
+
<h2>List with add button, grid, extended separators</h2>
|
91
|
+
|
92
|
+
<d2l-demo-snippet>
|
93
|
+
<template>
|
94
|
+
<d2l-demo-list add-button grid extend-separators></d2l-demo-list>
|
95
|
+
</template>
|
96
|
+
</d2l-demo-snippet>
|
97
|
+
|
82
98
|
<h2>List with Interactive Content</h2>
|
83
99
|
|
84
100
|
<d2l-demo-snippet>
|
@@ -52,6 +52,10 @@ export class ListControls extends SelectionControls {
|
|
52
52
|
if (this._extendSeparator) this.style.setProperty('--d2l-selection-controls-padding', '0px');
|
53
53
|
}
|
54
54
|
|
55
|
+
updateParentHasAddButon() {
|
56
|
+
// N/A
|
57
|
+
}
|
58
|
+
|
55
59
|
updateSiblingHasChildren() {
|
56
60
|
// TODO: implement this in order to have consistent spacing when nested items
|
57
61
|
}
|
@@ -542,6 +542,8 @@ export const ListItemDragDropMixin = superclass => class extends superclass {
|
|
542
542
|
this._dispatchListItemsMove(dragState.dragTargets, dragState.dropTarget, dragState.dropLocation, false);
|
543
543
|
|
544
544
|
}
|
545
|
+
const nodeImage = this.shadowRoot.querySelector('.d2l-list-item-drag-image') || this;
|
546
|
+
if (nodeImage) nodeImage.classList.remove('dragging');
|
545
547
|
|
546
548
|
clearDragState();
|
547
549
|
}
|
@@ -632,6 +634,7 @@ export const ListItemDragDropMixin = superclass => class extends superclass {
|
|
632
634
|
} else {
|
633
635
|
if (this.shadowRoot) {
|
634
636
|
const nodeImage = this.shadowRoot.querySelector('.d2l-list-item-drag-image') || this;
|
637
|
+
nodeImage.classList.add('dragging');
|
635
638
|
e.dataTransfer.setDragImage(nodeImage, 50, 50);
|
636
639
|
}
|
637
640
|
}
|
@@ -69,7 +69,7 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
69
69
|
[control-end content-start] minmax(0, auto)
|
70
70
|
[content-end actions-start] minmax(0, min-content)
|
71
71
|
[end actions-end];
|
72
|
-
grid-template-rows: [main-start] [main-end nested-start] [nested-end];
|
72
|
+
grid-template-rows: [main-start] [main-end add-start] [add-end nested-start] [nested-end];
|
73
73
|
}
|
74
74
|
|
75
75
|
:host([align-nested="control"]) ::slotted([slot="nested"]) {
|
@@ -171,6 +171,10 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
171
171
|
grid-column: content-start / end;
|
172
172
|
grid-row: nested-start / nested-end;
|
173
173
|
}
|
174
|
+
::slotted([slot="add"]) {
|
175
|
+
grid-column: color-start / end;
|
176
|
+
grid-row: add;
|
177
|
+
}
|
174
178
|
`;
|
175
179
|
}
|
176
180
|
|
@@ -218,6 +222,7 @@ class ListItemGenericLayout extends RtlMixin(LitElement) {
|
|
218
222
|
<slot name="actions" class="d2l-cell" data-cell-num="7"></slot>
|
219
223
|
|
220
224
|
<slot name="drop-target"></slot>
|
225
|
+
<slot name="add" class="d2l-cell" data-cell-num="9"></slot>
|
221
226
|
<slot name="nested"></slot>
|
222
227
|
`;
|
223
228
|
}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import '../button/button-add.js';
|
1
2
|
import '../colors/colors.js';
|
2
3
|
import './list-item-generic-layout.js';
|
3
4
|
import './list-item-placement-marker.js';
|
@@ -74,6 +75,7 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
74
75
|
* @type {'normal'|'none'}
|
75
76
|
*/
|
76
77
|
paddingType: { type: String, attribute: 'padding-type' },
|
78
|
+
_addButtonText: { state: true },
|
77
79
|
_displayKeyboardTooltip: { type: Boolean },
|
78
80
|
_hasColorSlot: { type: Boolean, reflect: true, attribute: '_has-color-slot' },
|
79
81
|
_hovering: { type: Boolean, reflect: true },
|
@@ -82,6 +84,7 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
82
84
|
_focusingPrimaryAction: { type: Boolean, attribute: '_focusing-primary-action', reflect: true },
|
83
85
|
_highlight: { type: Boolean, reflect: true },
|
84
86
|
_highlighting: { type: Boolean, reflect: true },
|
87
|
+
_showAddButton: { type: Boolean, attribute: '_show-add-button', reflect: true },
|
85
88
|
_hasNestedList: { state: true },
|
86
89
|
_siblingHasColor: { state: true },
|
87
90
|
};
|
@@ -139,6 +142,7 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
139
142
|
:host([_focusing-primary-action]) [slot="control-container"]::after,
|
140
143
|
:host([selected]:not([selection-disabled]):not([skeleton])) [slot="control-container"]::before,
|
141
144
|
:host([selected]:not([selection-disabled]):not([skeleton])) [slot="control-container"]::after,
|
145
|
+
:host([_show-add-button]) [slot="control-container"]::after,
|
142
146
|
:host(:first-of-type[_nested]) [slot="control-container"]::before {
|
143
147
|
border-top-color: transparent;
|
144
148
|
}
|
@@ -267,7 +271,8 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
267
271
|
|
268
272
|
:host([_has-color-slot]) .d2l-list-item-content-extend-separators [slot="outside-control-container"],
|
269
273
|
:host([dir="rtl"][_has-color-slot]) .d2l-list-item-content-extend-separators [slot="outside-control-container"] {
|
270
|
-
margin: 0 !important;
|
274
|
+
margin-inline-end: 0 !important;
|
275
|
+
margin-inline-start: 0 !important;
|
271
276
|
}
|
272
277
|
|
273
278
|
:host(:not([draggable])[_has-color-slot]) [slot="outside-control-container"] {
|
@@ -287,6 +292,14 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
287
292
|
border-color: #b6cbe8; /* celestine alpha 0.3 */
|
288
293
|
margin-bottom: -1px;
|
289
294
|
}
|
295
|
+
:host([_hovering-primary-action]) d2l-button-add,
|
296
|
+
:host([_hovering-selection]) d2l-button-add,
|
297
|
+
:host([_focusing-primary-action]) d2l-button-add,
|
298
|
+
:host(:not([selection-disabled]):not([skeleton])[selected][_hovering-selection]) d2l-button-add,
|
299
|
+
:host(:not([selection-disabled]):not([skeleton])[selectable][_focusing]) d2l-button-add,
|
300
|
+
:host(:not([selection-disabled]):not([skeleton])[selected]) d2l-button-add {
|
301
|
+
--d2l-button-add-line-color: #b6cbe8;
|
302
|
+
}
|
290
303
|
:host([_hovering-primary-action]) [slot="outside-control-container"],
|
291
304
|
:host([_hovering-selection]) [slot="outside-control-container"] {
|
292
305
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
@@ -366,6 +379,18 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
366
379
|
margin-left: 0;
|
367
380
|
margin-right: -6px;
|
368
381
|
}
|
382
|
+
|
383
|
+
[slot="add"] {
|
384
|
+
margin-bottom: -4px;
|
385
|
+
margin-top: -3px;
|
386
|
+
}
|
387
|
+
:host([draggable][selectable][_hovering]) [slot="add"],
|
388
|
+
:host([draggable][selectable][_focusing]) [slot="add"] {
|
389
|
+
padding-inline-end: 6px;
|
390
|
+
}
|
391
|
+
.dragging [slot="add"] {
|
392
|
+
display: none;
|
393
|
+
}
|
369
394
|
`];
|
370
395
|
|
371
396
|
super.styles && styles.unshift(super.styles);
|
@@ -453,6 +478,11 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
453
478
|
else this.scrollIntoView({ behavior: 'smooth', block: alignToTop ? 'start' : 'end' });
|
454
479
|
}
|
455
480
|
|
481
|
+
updateParentHasAddButon(addButton, addButtonText) {
|
482
|
+
this._addButtonText = addButtonText;
|
483
|
+
this._showAddButton = addButton;
|
484
|
+
}
|
485
|
+
|
456
486
|
updateSiblingHasColor(siblingHasColor) {
|
457
487
|
this._siblingHasColor = siblingHasColor;
|
458
488
|
}
|
@@ -523,6 +553,11 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
523
553
|
}
|
524
554
|
}
|
525
555
|
|
556
|
+
_handleButtonAddClick() {
|
557
|
+
/** @ignore */
|
558
|
+
this.dispatchEvent(new CustomEvent('d2l-list-item-add-button-click', { bubbles: true }));
|
559
|
+
}
|
560
|
+
|
526
561
|
_isListItem(node) {
|
527
562
|
if (!node) node = this;
|
528
563
|
return node.role === 'rowgroup' || node.role === 'listitem';
|
@@ -595,6 +630,7 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
595
630
|
const alignNested = ((this.draggable && this.selectable) || (this.expandable && this.selectable && this.color)) ? 'control' : undefined;
|
596
631
|
const primaryAction = ((!this.noPrimaryAction && this._renderPrimaryAction) ? this._renderPrimaryAction(this._contentId) : null);
|
597
632
|
const tooltipForId = (primaryAction ? this._primaryActionId : (this.selectable ? this._checkboxId : null));
|
633
|
+
const addButtonText = this._addButtonText || this.localize('components.list-item.addItem');
|
598
634
|
const innerView = html`
|
599
635
|
<d2l-list-item-generic-layout
|
600
636
|
align-nested="${ifDefined(alignNested)}"
|
@@ -646,6 +682,11 @@ export const ListItemMixin = superclass => class extends composeMixins(
|
|
646
682
|
class="d2l-list-item-actions-container">
|
647
683
|
<slot name="actions" class="d2l-list-item-actions">${actions}</slot>
|
648
684
|
</div>
|
685
|
+
${this._showAddButton ? html`
|
686
|
+
<div slot="add">
|
687
|
+
<d2l-button-add text="${addButtonText}" mode="icon-when-interacted" @click="${this._handleButtonAddClick}"></d2l-button-add>
|
688
|
+
</div>
|
689
|
+
` : nothing}
|
649
690
|
${this._renderNested(nested)}
|
650
691
|
</d2l-list-item-generic-layout>
|
651
692
|
`;
|
package/components/list/list.js
CHANGED
@@ -32,6 +32,16 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
32
32
|
|
33
33
|
static get properties() {
|
34
34
|
return {
|
35
|
+
/**
|
36
|
+
* When true, show the inline add button after each list item.
|
37
|
+
* @type {boolean}
|
38
|
+
*/
|
39
|
+
addButton: { type: Boolean, reflect: true, attribute: 'add-button' },
|
40
|
+
/**
|
41
|
+
* Text to show in label tooltip on inline add button. Defaults to "Add Item".
|
42
|
+
* @type {string}
|
43
|
+
*/
|
44
|
+
addButtonText: { type: String, reflect: true, attribute: 'add-button-text' },
|
35
45
|
/**
|
36
46
|
* Breakpoints for responsiveness in pixels. There are four different breakpoints and only the four largest breakpoints will be used.
|
37
47
|
* @type {array}
|
@@ -115,6 +125,7 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
115
125
|
|
116
126
|
constructor() {
|
117
127
|
super();
|
128
|
+
this.addButton = false;
|
118
129
|
this.breakpoints = DEFAULT_BREAKPOINTS;
|
119
130
|
this.dragMultiple = false;
|
120
131
|
this.extendSeparators = false;
|
@@ -147,8 +158,9 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
147
158
|
connectedCallback() {
|
148
159
|
super.connectedCallback();
|
149
160
|
this.addEventListener('d2l-list-item-showing-count-change', this._handleListItemShowingCountChange);
|
150
|
-
this.addEventListener('d2l-list-item-nested-change', (e) => this.
|
161
|
+
this.addEventListener('d2l-list-item-nested-change', (e) => this._handleListItemNestedChange(e));
|
151
162
|
this.addEventListener('d2l-list-item-property-change', (e) => this._handleListItemPropertyChange(e));
|
163
|
+
this.addEventListener('d2l-list-item-add-button-click', (e) => this._handleListItemAddButtonClick(e));
|
152
164
|
ro.observe(this);
|
153
165
|
}
|
154
166
|
|
@@ -161,7 +173,7 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
161
173
|
firstUpdated(changedProperties) {
|
162
174
|
super.firstUpdated(changedProperties);
|
163
175
|
// check if list items are expandable on first render so we adjust sibling spacing appropriately
|
164
|
-
this.
|
176
|
+
this._handleListItemNestedChange();
|
165
177
|
this.addEventListener('d2l-list-item-selected', e => {
|
166
178
|
|
167
179
|
// batch the changes from select-all and nested lists
|
@@ -207,6 +219,9 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
207
219
|
if (changedProperties.has('breakpoints') && changedProperties.get('breakpoints') !== undefined) {
|
208
220
|
this.resizedCallback(this.offsetWidth, true);
|
209
221
|
}
|
222
|
+
if (changedProperties.has('add-button') || changedProperties.has('add-button-text')) {
|
223
|
+
this._listChildrenUpdatedSubscribers.updateSubscribers();
|
224
|
+
}
|
210
225
|
}
|
211
226
|
|
212
227
|
getItems(slot) {
|
@@ -302,7 +317,13 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
302
317
|
if (focusable) focusable.focus();
|
303
318
|
}
|
304
319
|
|
305
|
-
|
320
|
+
_handleListItemAddButtonClick(e) {
|
321
|
+
e.stopPropagation();
|
322
|
+
/** Dispatched when the add button directly after the item is clicked. Event detail includes the key of the item directly above where the add button was clicked. */
|
323
|
+
this.dispatchEvent(new CustomEvent('d2l-list-add-button-click', { detail: { key: e.target.key } }));
|
324
|
+
}
|
325
|
+
|
326
|
+
_handleListItemNestedChange(e) {
|
306
327
|
if (e) {
|
307
328
|
e.stopPropagation();
|
308
329
|
}
|
@@ -327,7 +348,7 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
327
348
|
this._listChildrenUpdatedSubscribers.updateSubscribers();
|
328
349
|
} else {
|
329
350
|
// if color has had its value removed then need to loop through all the items to determine if there are still others with colors
|
330
|
-
this.
|
351
|
+
this._handleListItemNestedChange(e);
|
331
352
|
}
|
332
353
|
}
|
333
354
|
}
|
@@ -358,12 +379,14 @@ class List extends PageableMixin(SelectionMixin(LitElement)) {
|
|
358
379
|
_updateActiveSubscriber(subscriber) {
|
359
380
|
subscriber.updateSiblingHasChildren(this._childHasExpandCollapseToggle);
|
360
381
|
subscriber.updateSiblingHasColor(this._childHasColor);
|
382
|
+
subscriber.updateParentHasAddButon(this.addButton, this.addButtonText);
|
361
383
|
}
|
362
384
|
|
363
385
|
_updateActiveSubscribers(subscribers) {
|
364
386
|
subscribers.forEach(subscriber => {
|
365
387
|
subscriber.updateSiblingHasChildren(this._childHasExpandCollapseToggle);
|
366
388
|
subscriber.updateSiblingHasColor(this._childHasColor);
|
389
|
+
subscriber.updateParentHasAddButon(this.addButton, this.addButtonText);
|
367
390
|
});
|
368
391
|
}
|
369
392
|
|
package/custom-elements.json
CHANGED
@@ -7848,6 +7848,10 @@
|
|
7848
7848
|
"name": "d2l-demo-list",
|
7849
7849
|
"path": "./components/list/demo/demo-list.js",
|
7850
7850
|
"attributes": [
|
7851
|
+
{
|
7852
|
+
"name": "add-button",
|
7853
|
+
"type": "boolean"
|
7854
|
+
},
|
7851
7855
|
{
|
7852
7856
|
"name": "grid",
|
7853
7857
|
"type": "boolean"
|
@@ -7859,6 +7863,11 @@
|
|
7859
7863
|
}
|
7860
7864
|
],
|
7861
7865
|
"properties": [
|
7866
|
+
{
|
7867
|
+
"name": "addButton",
|
7868
|
+
"attribute": "add-button",
|
7869
|
+
"type": "boolean"
|
7870
|
+
},
|
7862
7871
|
{
|
7863
7872
|
"name": "grid",
|
7864
7873
|
"attribute": "grid",
|
@@ -7879,6 +7888,10 @@
|
|
7879
7888
|
"name": "d2l-demo-list-drag-and-drop-position",
|
7880
7889
|
"path": "./components/list/demo/list-drag-and-drop-position.js",
|
7881
7890
|
"attributes": [
|
7891
|
+
{
|
7892
|
+
"name": "add-button",
|
7893
|
+
"type": "boolean"
|
7894
|
+
},
|
7882
7895
|
{
|
7883
7896
|
"name": "grid",
|
7884
7897
|
"type": "boolean"
|
@@ -7898,6 +7911,11 @@
|
|
7898
7911
|
}
|
7899
7912
|
],
|
7900
7913
|
"properties": [
|
7914
|
+
{
|
7915
|
+
"name": "addButton",
|
7916
|
+
"attribute": "add-button",
|
7917
|
+
"type": "boolean"
|
7918
|
+
},
|
7901
7919
|
{
|
7902
7920
|
"name": "grid",
|
7903
7921
|
"attribute": "grid",
|
@@ -9006,6 +9024,11 @@
|
|
9006
9024
|
"path": "./components/list/list.js",
|
9007
9025
|
"description": "A container for a styled list of items (\"d2l-list-item\"). It provides the appropriate \"list\" semantics as well as options for displaying separators, etc.",
|
9008
9026
|
"attributes": [
|
9027
|
+
{
|
9028
|
+
"name": "add-button-text",
|
9029
|
+
"description": "Text to show in label tooltip on inline add button. Defaults to \"Add Item\".",
|
9030
|
+
"type": "string"
|
9031
|
+
},
|
9009
9032
|
{
|
9010
9033
|
"name": "label",
|
9011
9034
|
"description": "Sets an accessible label. For use when the list context is unclear. This property is only valid on top-level lists and will have no effect on nested lists.",
|
@@ -9017,6 +9040,12 @@
|
|
9017
9040
|
"type": "'all'|'between'|'none'",
|
9018
9041
|
"default": "\"\\\"all\\\"\""
|
9019
9042
|
},
|
9043
|
+
{
|
9044
|
+
"name": "add-button",
|
9045
|
+
"description": "When true, show the inline add button after each list item.",
|
9046
|
+
"type": "boolean",
|
9047
|
+
"default": "false"
|
9048
|
+
},
|
9020
9049
|
{
|
9021
9050
|
"name": "breakpoints",
|
9022
9051
|
"description": "Breakpoints for responsiveness in pixels. There are four different breakpoints and only the four largest breakpoints will be used.",
|
@@ -9059,6 +9088,12 @@
|
|
9059
9088
|
}
|
9060
9089
|
],
|
9061
9090
|
"properties": [
|
9091
|
+
{
|
9092
|
+
"name": "addButtonText",
|
9093
|
+
"attribute": "add-button-text",
|
9094
|
+
"description": "Text to show in label tooltip on inline add button. Defaults to \"Add Item\".",
|
9095
|
+
"type": "string"
|
9096
|
+
},
|
9062
9097
|
{
|
9063
9098
|
"name": "label",
|
9064
9099
|
"attribute": "label",
|
@@ -9072,6 +9107,13 @@
|
|
9072
9107
|
"type": "'all'|'between'|'none'",
|
9073
9108
|
"default": "\"\\\"all\\\"\""
|
9074
9109
|
},
|
9110
|
+
{
|
9111
|
+
"name": "addButton",
|
9112
|
+
"attribute": "add-button",
|
9113
|
+
"description": "When true, show the inline add button after each list item.",
|
9114
|
+
"type": "boolean",
|
9115
|
+
"default": "false"
|
9116
|
+
},
|
9075
9117
|
{
|
9076
9118
|
"name": "breakpoints",
|
9077
9119
|
"attribute": "breakpoints",
|
@@ -9132,6 +9174,10 @@
|
|
9132
9174
|
{
|
9133
9175
|
"name": "d2l-list-selection-change",
|
9134
9176
|
"description": "Dispatched when the selection state changes"
|
9177
|
+
},
|
9178
|
+
{
|
9179
|
+
"name": "d2l-list-add-button-click",
|
9180
|
+
"description": "Dispatched when the add button directly after the item is clicked. Event detail includes the key of the item directly above where the add button was clicked."
|
9135
9181
|
}
|
9136
9182
|
],
|
9137
9183
|
"slots": [
|
package/lang/ar.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "يفتح في نافذة جديدة.",
|
71
71
|
"components.list.keyboard": "استخدم <b>مفاتيح الأسهم</b> لنقل التركيز داخل هذه القائمة، أو <b>صفحة إلى الأعلى/الأسفل</b> للتحرك إلى الأعلى أو الأسفل بمقدار 5",
|
72
72
|
"components.list-controls.label": "إجراءات القائمة",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "إعادة ترتيب إجراء المادة لـ {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "إعادة ترتيب المواد، الموضع الحالي {currentPosition} من أصل {size}. لنقل هذه المادة، اضغط على السهم المتجه إلى أعلى أو السهم المتجه إلى أسفل.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "عناصر التحكم بلوحة المفاتيح لإعادة الترتيب:",
|
package/lang/cy.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Yn agor mewn ffenestr newydd",
|
71
71
|
"components.list.keyboard": "Defnyddiwch y <b>bysellau saeth</b> i symud ffocws y tu mewn i'r rhestr hon, neu <b>tudalen i fyny/i lawr</b> i symud i fyny neu i lawr erbyn 5",
|
72
72
|
"components.list-controls.label": "Camau gweithredu ar gyfer rhestr",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Aildrefnu gweithred eitem ar gyfer {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Aildrefnu eitemau, safle presennol {currentPosition} allan o {size}. I symud yr eitem hon, pwyswch y saeth i fyny neu'r saeth i lawr.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Rheolaethau bysellfwrdd ar gyfer aildrefnu:",
|
package/lang/da.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Åbnes i et nyt vindue.",
|
71
71
|
"components.list.keyboard": "Brug <b>piletasterne</b> til at flytte fokus inden for denne liste, eller <b>page up/down</b> til at flytte op eller ned med 5",
|
72
72
|
"components.list-controls.label": "Handlinger for liste",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Omarranger elementhandling for {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Omarranger element, aktuel position {currentPosition} ud af {size}. For at flytte dette element skal du trykke på pil op eller pil ned.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Tastaturkontrolelementer for omorganisering:",
|
package/lang/de.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Wird in einem neuen Fenster geöffnet.",
|
71
71
|
"components.list.keyboard": "Verwenden Sie die <b>Pfeiltasten</b>, um den Fokus innerhalb dieser Liste zu verschieben, oder die Tasten <b>Bild hoch/Bild runter</b>, um ihn um 5 Zeilen hinauf oder hinunter zu verschieben",
|
72
72
|
"components.list-controls.label": "Aktionen für Liste",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Elementaktion für {name} neu anordnen",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Elemente neu anordnen; aktuelle Position: {currentPosition} von {size}. Drücken Sie zum Bewegen dieses Elements auf den Pfeil nach oben oder den Pfeil nach unten.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Tastatursteuerelemente für Neuanordnung:",
|
package/lang/en-gb.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Opens in a new window.",
|
71
71
|
"components.list.keyboard": "Use <b>arrow keys</b> to move focus inside this list, or <b>page up/down</b> to move up or down by 5",
|
72
72
|
"components.list-controls.label": "Actions for list",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Reorder item action for {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press up or down arrows.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Keyboard Controls for Reordering:",
|
package/lang/en.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Opens in a new window.",
|
71
71
|
"components.list.keyboard": "Use <b>arrow keys</b> to move focus inside this list, or <b>page up/down</b> to move up or down by 5",
|
72
72
|
"components.list-controls.label": "Actions for list",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Reorder item action for {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Reorder item, current position {currentPosition} out of {size}. To move this item, press up or down arrows.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Keyboard Controls for Reordering:",
|
package/lang/es-es.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Se abre en una ventana nueva.",
|
71
71
|
"components.list.keyboard": "Utilice las <b>teclas de flecha</b> para mover el enfoque dentro de esta lista, o <b>avanzar/retroceder página</b> para saltar cinco elementos hacia arriba o hacia abajo",
|
72
72
|
"components.list-controls.label": "Acciones para la lista",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Reordenar acción de elemento para {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Reordenar elementos, posición actual {currentPosition} de {size}. Para mover este elemento, pulse las flechas arriba o abajo.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Controles del teclado para reordenar:",
|
package/lang/es.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Se abre en una ventana nueva.",
|
71
71
|
"components.list.keyboard": "Use las <b>teclas de flecha</b> para mover el enfoque dentro de esta lista o <b>avance/retroceda la página</b> para mover hacia arriba o hacia abajo en 5",
|
72
72
|
"components.list-controls.label": "Acciones para la lista",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Acción de reordenar elemento de {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Reordenar elemento, posición actual {currentPosition} de {size}. Para mover este elemento, presione las flechas hacia arriba o hacia abajo.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Controles del teclado para el reordenamiento:",
|
package/lang/fr-fr.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "S’ouvre dans une nouvelle fenêtre.",
|
71
71
|
"components.list.keyboard": "Utilisez les <b>touches fléchées</b> pour vous concentrer sur cette liste, ou <b>faites défiler la page vers le haut/bas</b> pour la faire défiler de 5",
|
72
72
|
"components.list-controls.label": "Actions pour la liste",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Action de réorganisation de l'élément pour {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Réordonner les éléments, position actuelle {currentPosition} sur {size}. Pour déplacer cet élément, appuyez sur les flèches vers le haut ou vers le bas.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Commandes du clavier pour la réorganisation :",
|
package/lang/fr.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Ouvre une nouvelle fenêtre.",
|
71
71
|
"components.list.keyboard": "Utiliser les <b>touches fléchées</b> pour parcourir cette liste ou les touches <b>page up/down</b> pour monter ou descendre 5 éléments à la fois.",
|
72
72
|
"components.list-controls.label": "Actions pour la liste",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Réordonner l'action de l'élément pour {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Réorganiser les éléments, position actuelle {currentPosition} de {size}. Pour déplacer cet élément, utilisez les flèches vers le haut et vers le bas.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Commandes du clavier pour la réorganisation :",
|
package/lang/hi.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "एक नई विंडो में खुलता है।",
|
71
71
|
"components.list.keyboard": "फ़ोकस को इस लिस्ट में ले जाने के लिए <b>तीर वाली बटनों</b> अथवा 5 के ज़रिए ऊपर या नीचे जाने के लिए <b>पेज ऊपर/नीचे</b> बटनों का उपयोग करें",
|
72
72
|
"components.list-controls.label": "सूची के लिए क्रियाएँ",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "{name} के लिए आइटम कार्रवाई का क्रम बदलें",
|
74
75
|
"components.list-item-drag-handle.keyboard": "आइटम का क्रम बदलें, {size} में से वर्तमान स्थिति {currentPosition} इस आइटम को ले जाने के लिए, ऊपर या नीचे तीर दबाएँ।",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "क्रम बदलने के लिए कीबोर्ड नियंत्रण:",
|
package/lang/ja.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "新規ウィンドウで開きます。",
|
71
71
|
"components.list.keyboard": "<b>方向キー</b>を使用して、このリスト内のフォーカスを移動するか、<b>page up/down</b> キーを使用して上下に 5 つずつ移動します",
|
72
72
|
"components.list-controls.label": "リストのアクション",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "{name} の項目並べ替えアクション",
|
74
75
|
"components.list-item-drag-handle.keyboard": "項目の並べ替え、現在の位置 {currentPosition}、サイズ {size}。この項目を移動するには、上矢印または下矢印を押します。",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "並べ替え用のキーボードコントロール:",
|
package/lang/ko.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "새 창에서 열립니다.",
|
71
71
|
"components.list.keyboard": "<b>화살표 키</b>를 사용하여 이 목록 내에서 포커스를 이동하거나 <b>페이지 업/다운</b>을 사용하여 위 또는 아래로 5개씩 이동합니다.",
|
72
72
|
"components.list-controls.label": "목록에 대한 작업",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "{name}에 대한 항목 작업 재정렬",
|
74
75
|
"components.list-item-drag-handle.keyboard": "전체 {size}에서 현재 위치 {currentPosition} 항목 재정렬 이 항목을 이동하라면 위쪽 또는 아래쪽 화살표를 누르십시오.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "재정렬을 위한 키보드 컨트롤:",
|
package/lang/nl.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Wordt geopend in een nieuw venster.",
|
71
71
|
"components.list.keyboard": "Navigeer binnen deze lijst met behulp van de <b>pijltjestoetsen</b> of gebruik <b>pagina omhoog/omlaag</b> om steeds vijf plekken omhoog of omlaag te bewegen",
|
72
72
|
"components.list-controls.label": "Acties voor lijst",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Itemactie voor {name} opnieuw rangschikken",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Items opnieuw rangschikken, huidige positie {currentPosition} van {size}. Als u dit item wilt verplaatsen, drukt u op de pijl omhoog of omlaag.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Toetsenbordknoppen voor opnieuw ordenen:",
|
package/lang/pt.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Abre em uma nova janela.",
|
71
71
|
"components.list.keyboard": "Use <b>teclas de seta</b> para mover o foco dentro dessa lista, ou <b>página acima/abaixo</b> para subir ou descer 5",
|
72
72
|
"components.list-controls.label": "Ações para a lista",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Reordenar ação de item para {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Reordenar item, posição atual {currentPosition} de {size}. Para mover este item, pressione as setas para cima ou para baixo.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Controles do teclado para reordenação:",
|
package/lang/sv.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Öppnas i ett nytt fönster.",
|
71
71
|
"components.list.keyboard": "Använd <b>piltangenterna</b> för att flytta fokus i listan eller <b>Page Up/Down</b> för att gå fem upp eller ned",
|
72
72
|
"components.list-controls.label": "Åtgärder för lista",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "Åtgärd för att ändra ordning på objekt för {name}",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Flytta objekt. Aktuell position: {currentPosition} av {size}. Om du vill flytta det här objektet trycker du på uppåt- eller nedåtpilen.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Tangentbordskontroller för omsortering:",
|
package/lang/tr.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "Yeni bir pencerede açılır.",
|
71
71
|
"components.list.keyboard": "Odağı bu listenin içine taşımak için <b>ok tuşlarını</b>, beşer beşer yukarı veya aşağı gitmek için ise <b>sayfa yukarı/aşağı</b> tuşlarını kullanın",
|
72
72
|
"components.list-controls.label": "Liste için eylemler",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "{name} için öğe eylemini yeniden sırala",
|
74
75
|
"components.list-item-drag-handle.keyboard": "Öğeyi yeniden sırala, mevcut konum {currentPosition} / {size}. Bu öğeyi taşımak için yukarı veya aşağı oklara basın.",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "Yeniden Sıralama için Klavye Kontrolleri:",
|
package/lang/zh-cn.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "在新窗口中打开。",
|
71
71
|
"components.list.keyboard": "使用<b>箭头键</b>在此列表中移动焦点,或使用<b>上/下翻页</b>以 5 个列表项为幅度进行上移或下移",
|
72
72
|
"components.list-controls.label": "针对列表的操作",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "对 {name} 的项目操作重新排序",
|
74
75
|
"components.list-item-drag-handle.keyboard": "对项目重新排序,当前位置 {currentPosition} 超出 {size}。要移动此项目,请按向上或向下箭头。",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "用于重新排序的键盘控制键:",
|
package/lang/zh-tw.js
CHANGED
@@ -70,6 +70,7 @@ export default {
|
|
70
70
|
"components.link.open-in-new-window": "在新視窗中開啟。",
|
71
71
|
"components.list.keyboard": "使用<b>方向鍵</b>在此清單內移動焦點,或使用<b>頁面上捲/下捲</b>向上或向下移動 5 個項目",
|
72
72
|
"components.list-controls.label": "清單的動作",
|
73
|
+
"components.list-item.addItem": "Add Item",
|
73
74
|
"components.list-item-drag-handle.default": "重新排序 {name} 的項目動作",
|
74
75
|
"components.list-item-drag-handle.keyboard": "重新排序項目,目前位置 {currentPosition},總共為 {size}。若要移除這個項目,請按向上或向下箭頭。",
|
75
76
|
"components.list-item-drag-handle-tooltip.title": "重新排序的鍵盤控制項:",
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@brightspace-ui/core",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.172.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",
|
@@ -53,7 +53,7 @@
|
|
53
53
|
<div slot="controls" style="background-color: #dddddd;">I'm in the <b>controls</b> slot of the <b>d2l-template-primary-secondary</b> component!</div>
|
54
54
|
<div slot="primary">
|
55
55
|
|
56
|
-
<d2l-list item-count="50" extend-separators>
|
56
|
+
<d2l-list item-count="50" extend-separators add-button>
|
57
57
|
<d2l-list-controls slot="controls" select-all-pages-allowed>
|
58
58
|
<d2l-selection-action id="openMainDialog" icon="tier1:plus-default" text="Add"></d2l-selection-action>
|
59
59
|
<d2l-selection-action-dropdown text="Move To" requires-selection>
|