@brightspace-ui/core 3.227.3 → 3.227.5
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.js +8 -8
- package/components/colors/colors.js +8 -0
- package/components/count-badge/count-badge-icon.js +1 -1
- package/components/count-badge/count-badge-mixin.js +4 -4
- package/components/demo/test/demo-page-settings.test.js +25 -0
- package/components/demo/test/demo-page.test.js +17 -0
- package/package.json +1 -1
- package/components/alert/demo/alert-toast.html +0 -106
- package/components/alert/demo/alert.html +0 -82
- package/components/backdrop/demo/backdrop-loading.html +0 -166
- package/components/backdrop/demo/backdrop.html +0 -57
- package/components/breadcrumbs/demo/breadcrumbs.html +0 -53
- package/components/button/demo/button-add.html +0 -55
- package/components/button/demo/button-copy.html +0 -122
- package/components/button/demo/button-icon.html +0 -174
- package/components/button/demo/button-move.html +0 -38
- package/components/button/demo/button-split.html +0 -76
- package/components/button/demo/button-subtle.html +0 -132
- package/components/button/demo/button-toggle.html +0 -80
- package/components/button/demo/button.html +0 -67
- package/components/button/demo/floating-buttons-in-frame.html +0 -44
- package/components/button/demo/floating-buttons-in-tabs.html +0 -244
- package/components/button/demo/floating-buttons-page.html +0 -100
- package/components/button/demo/floating-buttons.html +0 -101
- package/components/calendar/demo/calendar.html +0 -76
- package/components/card/demo/card.html +0 -304
- package/components/collapsible-panel/demo/collapsible-panel.html +0 -218
- package/components/colors/demo/color-swatch.js +0 -240
- package/components/colors/demo/colors.html +0 -139
- package/components/count-badge/demo/count-badge-icon.html +0 -48
- package/components/count-badge/demo/count-badge.html +0 -73
- package/components/demo/demo/demo-snippet.html +0 -71
- package/components/description-list/demo/description-list-test.js +0 -142
- package/components/description-list/demo/description-list.html +0 -48
- package/components/dialog/demo/dialog-async-content-until.js +0 -89
- package/components/dialog/demo/dialog-async-content.js +0 -72
- package/components/dialog/demo/dialog-confirm.html +0 -102
- package/components/dialog/demo/dialog-container.js +0 -40
- package/components/dialog/demo/dialog-fullscreen.html +0 -273
- package/components/dialog/demo/dialog-nested.html +0 -94
- package/components/dialog/demo/dialog.html +0 -398
- package/components/dropdown/demo/dropdown-button.html +0 -102
- package/components/dropdown/demo/dropdown-context-menu.html +0 -129
- package/components/dropdown/demo/dropdown-flicker-inner.html +0 -70
- package/components/dropdown/demo/dropdown-flicker.html +0 -142
- package/components/dropdown/demo/dropdown-menu-demo-view.js +0 -37
- package/components/dropdown/demo/dropdown-menu.html +0 -227
- package/components/dropdown/demo/dropdown-more.html +0 -160
- package/components/dropdown/demo/dropdown-positioning.html +0 -127
- package/components/dropdown/demo/dropdown-tabs.html +0 -87
- package/components/dropdown/demo/dropdown.html +0 -217
- package/components/empty-state/demo/empty-state.html +0 -94
- package/components/expand-collapse/demo/expand-collapse-content.html +0 -58
- package/components/filter/demo/filter-load-more-demo.js +0 -182
- package/components/filter/demo/filter-overflow-group.html +0 -246
- package/components/filter/demo/filter-search-demo.js +0 -135
- package/components/filter/demo/filter-tags.html +0 -115
- package/components/filter/demo/filter.html +0 -230
- package/components/focus-trap/demo/focus-trap.html +0 -75
- package/components/form/demo/form-demo.js +0 -105
- package/components/form/demo/form-dialog-demo.js +0 -94
- package/components/form/demo/form-panel-demo.js +0 -89
- package/components/form/demo/form.html +0 -37
- package/components/hierarchical-view/demo/hierarchical-view.html +0 -221
- package/components/html-block/demo/html-block-code.html +0 -55
- package/components/html-block/demo/html-block.html +0 -696
- package/components/icons/demo/icon-color-override.js +0 -23
- package/components/icons/demo/icon-custom.html +0 -112
- package/components/icons/demo/icon-size-override.js +0 -24
- package/components/icons/demo/icon.html +0 -52
- package/components/inputs/demo/input-checkbox.html +0 -118
- package/components/inputs/demo/input-color-palette.js +0 -67
- package/components/inputs/demo/input-color.html +0 -110
- package/components/inputs/demo/input-date-range.html +0 -114
- package/components/inputs/demo/input-date-time-range.html +0 -128
- package/components/inputs/demo/input-date-time.html +0 -100
- package/components/inputs/demo/input-date.html +0 -81
- package/components/inputs/demo/input-group.html +0 -56
- package/components/inputs/demo/input-number.html +0 -136
- package/components/inputs/demo/input-percent.html +0 -99
- package/components/inputs/demo/input-radio-label-test.js +0 -45
- package/components/inputs/demo/input-radio-solo-test.js +0 -47
- package/components/inputs/demo/input-radio.html +0 -119
- package/components/inputs/demo/input-search.html +0 -75
- package/components/inputs/demo/input-select-test.js +0 -60
- package/components/inputs/demo/input-select.html +0 -45
- package/components/inputs/demo/input-text.html +0 -163
- package/components/inputs/demo/input-textarea.html +0 -124
- package/components/inputs/demo/input-time-range.html +0 -121
- package/components/inputs/demo/input-time.html +0 -95
- package/components/link/demo/link.html +0 -111
- package/components/list/demo/demo-list-nav.js +0 -170
- package/components/list/demo/demo-list-nested-iterations-helper.js +0 -168
- package/components/list/demo/demo-list-nested-lazy-load.js +0 -133
- package/components/list/demo/demo-list-nested.js +0 -291
- package/components/list/demo/demo-list.js +0 -241
- package/components/list/demo/list-color.html +0 -423
- package/components/list/demo/list-demo-scenarios.js +0 -380
- package/components/list/demo/list-drag-and-drop-position.js +0 -102
- package/components/list/demo/list-drag-and-drop.html +0 -82
- package/components/list/demo/list-expand-collapse.html +0 -136
- package/components/list/demo/list-item-actions.html +0 -371
- package/components/list/demo/list-item-custom.js +0 -204
- package/components/list/demo/list-item-layouts.html +0 -331
- package/components/list/demo/list-item-scroll.html +0 -122
- package/components/list/demo/list-layout.html +0 -575
- package/components/list/demo/list-nav.html +0 -110
- package/components/list/demo/list-nested.html +0 -270
- package/components/list/demo/list-selection.html +0 -301
- package/components/list/demo/list.html +0 -319
- package/components/loading-spinner/demo/loading-spinner-override.js +0 -34
- package/components/loading-spinner/demo/loading-spinner.html +0 -63
- package/components/menu/demo/checkbox-menu.html +0 -52
- package/components/menu/demo/custom-menu-item.js +0 -37
- package/components/menu/demo/custom-view.js +0 -63
- package/components/menu/demo/menu.html +0 -211
- package/components/menu/demo/radio-menu.html +0 -52
- package/components/meter/demo/meter.html +0 -115
- package/components/more-less/demo/more-less-test.js +0 -67
- package/components/more-less/demo/more-less.html +0 -71
- package/components/object-property-list/demo/object-property-list.html +0 -99
- package/components/offscreen/demo/offscreen-demo.js +0 -16
- package/components/offscreen/demo/offscreen.html +0 -44
- package/components/overflow-group/demo/demo-overflow-group.js +0 -29
- package/components/overflow-group/demo/overflow-group.html +0 -110
- package/components/paging/demo/pager-load-more.html +0 -120
- package/components/popover/demo/popover.html +0 -309
- package/components/progress/demo/progress.html +0 -104
- package/components/scroll-wrapper/demo/scroll-wrapper-test.js +0 -108
- package/components/scroll-wrapper/demo/scroll-wrapper.html +0 -52
- package/components/selection/demo/demo-selection.js +0 -35
- package/components/selection/demo/selection.html +0 -198
- package/components/skeleton/demo/skeleton-group-nested-test.js +0 -71
- package/components/skeleton/demo/skeleton-group-test-wrapper.js +0 -18
- package/components/skeleton/demo/skeleton-group-test.js +0 -91
- package/components/skeleton/demo/skeleton-mixin.html +0 -78
- package/components/skeleton/demo/skeleton-test-box.js +0 -34
- package/components/skeleton/demo/skeleton-test-container.js +0 -45
- package/components/skeleton/demo/skeleton-test-heading.js +0 -44
- package/components/skeleton/demo/skeleton-test-link.js +0 -47
- package/components/skeleton/demo/skeleton-test-paragraph.js +0 -54
- package/components/skeleton/demo/skeleton-test-stack.js +0 -38
- package/components/skeleton/demo/skeleton-test-width.js +0 -20
- package/components/sorting/demo/sort.html +0 -37
- package/components/status-indicator/demo/status-indicator.html +0 -99
- package/components/switch/demo/switch.html +0 -95
- package/components/table/demo/table-test.js +0 -271
- package/components/table/demo/table.html +0 -107
- package/components/tabs/demo/tab-custom.js +0 -39
- package/components/tabs/demo/tabs-array.js +0 -43
- package/components/tabs/demo/tabs.html +0 -558
- package/components/tag-list/demo/tag-list.html +0 -117
- package/components/tooltip/demo/tooltip.html +0 -275
- package/components/typography/demo/typography.html +0 -93
- package/components/view-switcher/demo/demo-table-view.js +0 -41
- package/components/view-switcher/demo/view-switcher.html +0 -71
- package/directives/animate/demo/animate-test.js +0 -98
- package/directives/animate/demo/index.html +0 -23
- package/helpers/demo/announce-test.js +0 -37
- package/helpers/demo/announce.html +0 -19
- package/helpers/demo/dismissible-test.js +0 -66
- package/helpers/demo/dismissible.html +0 -38
- package/helpers/demo/gestures.html +0 -58
- package/helpers/demo/prism.html +0 -694
- package/helpers/demo/template-tags.html +0 -118
- package/mixins/arrow-keys/demo/arrow-keys-mixin.html +0 -29
- package/mixins/arrow-keys/demo/arrow-keys-test.js +0 -38
- package/mixins/async-container/demo/async-container.html +0 -109
- package/mixins/async-container/demo/async-container.js +0 -27
- package/mixins/async-container/demo/async-item.js +0 -80
- package/mixins/labelled/demo/labelled-mixin.html +0 -90
- package/mixins/localize/demo/localize-mixin-greeting.js +0 -39
- package/mixins/localize/demo/localize-mixin-mission.js +0 -25
- package/mixins/localize/demo/localize-mixin.html +0 -28
- package/templates/primary-secondary/demo/form.html +0 -55
- package/templates/primary-secondary/demo/index.html +0 -27
- package/templates/primary-secondary/demo/integration.html +0 -457
- package/templates/primary-secondary/demo/overflow-hidden.html +0 -22
- package/templates/primary-secondary/demo/width-type-normal.html +0 -26
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { css, html, LitElement } from 'lit';
|
|
2
|
-
import { getFocusRingStyles } from '../../../helpers/focus.js';
|
|
3
|
-
import { TabMixin } from '../tab-mixin.js';
|
|
4
|
-
|
|
5
|
-
class TabCustom extends TabMixin(LitElement) {
|
|
6
|
-
|
|
7
|
-
static get styles() {
|
|
8
|
-
const styles = [ css`
|
|
9
|
-
.d2l-tab-custom-content {
|
|
10
|
-
--d2l-focus-ring-offset: 0;
|
|
11
|
-
margin: 0.5rem;
|
|
12
|
-
overflow: clip;
|
|
13
|
-
overflow-clip-margin: 1em;
|
|
14
|
-
padding: 0.1rem;
|
|
15
|
-
white-space: nowrap;
|
|
16
|
-
}
|
|
17
|
-
:host(:first-child) .d2l-tab-custom-content {
|
|
18
|
-
margin-inline-start: 0;
|
|
19
|
-
}
|
|
20
|
-
${getFocusRingStyles(
|
|
21
|
-
pseudoClass => `:host(:${pseudoClass}) .d2l-tab-custom-content`,
|
|
22
|
-
{ extraStyles: css`border-radius: 0.3rem; color: var(--d2l-color-celestine);` }
|
|
23
|
-
)}
|
|
24
|
-
`];
|
|
25
|
-
|
|
26
|
-
super.styles && styles.unshift(super.styles);
|
|
27
|
-
return styles;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
renderContent() {
|
|
31
|
-
return html`
|
|
32
|
-
<div class="d2l-tab-custom-content">
|
|
33
|
-
<slot></slot>
|
|
34
|
-
</div>
|
|
35
|
-
`;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
customElements.define('d2l-tab-custom', TabCustom);
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import '../tab.js';
|
|
2
|
-
import '../tabs.js';
|
|
3
|
-
import '../tab-panel.js';
|
|
4
|
-
import { html, LitElement } from 'lit';
|
|
5
|
-
|
|
6
|
-
class TabsArray extends LitElement {
|
|
7
|
-
|
|
8
|
-
static get properties() {
|
|
9
|
-
return {
|
|
10
|
-
_tabs: { type: Array }
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
constructor() {
|
|
15
|
-
super();
|
|
16
|
-
this._tabs = [{ text: 'Tab 1', selected: true }, { text: 'Tab 2' }, { text: 'Tab 3' }];
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
render() {
|
|
20
|
-
return html`
|
|
21
|
-
<d2l-tabs @d2l-tab-selected="${this._handleTabSelected}">
|
|
22
|
-
${this._tabs.map((tab, index) => html`
|
|
23
|
-
<d2l-tab text="${tab.text}" ?selected="${tab.selected}" slot="tabs" id="tab-${index}"></d2l-tab>
|
|
24
|
-
<d2l-tab-panel labelled-by="tab-${index}" slot="panels">
|
|
25
|
-
${tab.text} content goes here.
|
|
26
|
-
</d2l-tab-panel>`
|
|
27
|
-
)}
|
|
28
|
-
</d2l-tabs>
|
|
29
|
-
`;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
_handleTabSelected(e) {
|
|
33
|
-
const selectedTab = e.target;
|
|
34
|
-
this._tabs = this._tabs.map(tab => {
|
|
35
|
-
return {
|
|
36
|
-
...tab,
|
|
37
|
-
selected: tab.text === selectedTab.text
|
|
38
|
-
};
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
customElements.define('d2l-tabs-array', TabsArray);
|
|
@@ -1,558 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
<link rel="stylesheet" href="../../demo/styles.css" type="text/css">
|
|
7
|
-
<script type="module">
|
|
8
|
-
import '../../demo/demo-page.js';
|
|
9
|
-
import '../../button/button-subtle.js';
|
|
10
|
-
import '../../count-badge/count-badge.js';
|
|
11
|
-
import '../../dropdown/dropdown-button-subtle.js';
|
|
12
|
-
import '../../dropdown/dropdown-menu.js';
|
|
13
|
-
import '../../empty-state/empty-state-illustrated.js';
|
|
14
|
-
import '../../menu/menu.js';
|
|
15
|
-
import '../../menu/menu-item.js';
|
|
16
|
-
import '../tab.js';
|
|
17
|
-
import '../tabs.js';
|
|
18
|
-
import '../tab-panel.js';
|
|
19
|
-
import './tab-custom.js';
|
|
20
|
-
import './tabs-array.js';
|
|
21
|
-
</script>
|
|
22
|
-
</head>
|
|
23
|
-
<body unresolved>
|
|
24
|
-
|
|
25
|
-
<d2l-demo-page page-title="d2l-tabs">
|
|
26
|
-
|
|
27
|
-
<h2>Tabs</h2>
|
|
28
|
-
|
|
29
|
-
<d2l-demo-snippet>
|
|
30
|
-
<template>
|
|
31
|
-
<d2l-tabs text="Courses">
|
|
32
|
-
<d2l-tab id="all" text="All" slot="tabs"></d2l-tab>
|
|
33
|
-
<d2l-tab id="biology" text="Biology" slot="tabs" selected></d2l-tab>
|
|
34
|
-
<d2l-tab id="chemistry" text="Chemistry" slot="tabs"></d2l-tab>
|
|
35
|
-
<d2l-tab id="physics" text="Physics" slot="tabs"></d2l-tab>
|
|
36
|
-
<d2l-tab id="math" text="Math" slot="tabs"></d2l-tab>
|
|
37
|
-
<d2l-tab id="earth-sciences" text="Earth Sciences" slot="tabs"></d2l-tab>
|
|
38
|
-
<d2l-tab-panel labelled-by="all" slot="panels" id="all-panel">Tab content for All</d2l-tab-panel>
|
|
39
|
-
<d2l-tab-panel labelled-by="biology" slot="panels" id="biology-panel">Tab content for Biology</d2l-tab-panel>
|
|
40
|
-
<d2l-tab-panel labelled-by="chemistry" slot="panels">Tab content for Chemistry</d2l-tab-panel>
|
|
41
|
-
<d2l-tab-panel labelled-by="physics" slot="panels">Tab content for Physics</d2l-tab-panel>
|
|
42
|
-
<d2l-tab-panel labelled-by="math" slot="panels">Tab content for Math</d2l-tab-panel>
|
|
43
|
-
<d2l-tab-panel labelled-by="earth-sciences" slot="panels">Tab content for Earth Sciences</d2l-tab-panel>
|
|
44
|
-
<d2l-dropdown-button-subtle slot="ext" text="Explore Topics">
|
|
45
|
-
<d2l-dropdown-menu>
|
|
46
|
-
<d2l-menu label="Astronomy">
|
|
47
|
-
<d2l-menu-item text="Introduction"></d2l-menu-item>
|
|
48
|
-
<d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
|
|
49
|
-
<d2l-menu-item text="The Solar System"></d2l-menu-item>
|
|
50
|
-
<d2l-menu-item text="Stars & Galaxies"></d2l-menu-item>
|
|
51
|
-
<d2l-menu-item text="The Night Sky"></d2l-menu-item>
|
|
52
|
-
<d2l-menu-item text="The Universe"></d2l-menu-item>
|
|
53
|
-
</d2l-menu>
|
|
54
|
-
</d2l-dropdown-menu>
|
|
55
|
-
</d2l-dropdown-button-subtle>
|
|
56
|
-
</d2l-tabs>
|
|
57
|
-
</template>
|
|
58
|
-
</d2l-demo-snippet>
|
|
59
|
-
|
|
60
|
-
<h2>Tabs (with before and after slot content)</h2>
|
|
61
|
-
|
|
62
|
-
<d2l-demo-snippet>
|
|
63
|
-
<template>
|
|
64
|
-
<d2l-tabs text="Courses">
|
|
65
|
-
<d2l-tab id="beforelong" text="Long Panel Text That Will Also Have Slot Content" slot="tabs">
|
|
66
|
-
<d2l-icon icon="tier1:gear" slot="before"></d2l-icon>
|
|
67
|
-
</d2l-tab>
|
|
68
|
-
<d2l-tab id="afterlong" text="Long Panel Text That Will Also Have Slot Content" slot="tabs">
|
|
69
|
-
<d2l-count-badge number="100" size="small" text="100 new notifications" type="notification" slot="after"></d2l-count-badge>
|
|
70
|
-
</d2l-tab>
|
|
71
|
-
<d2l-tab id="beforeshort" text="Biology" slot="tabs">
|
|
72
|
-
<d2l-count-badge number="100" size="small" text="100 new notifications" type="notification" slot="before"></d2l-count-badge>
|
|
73
|
-
</d2l-tab>
|
|
74
|
-
<d2l-tab id="aftershort" text="Biology" slot="tabs">
|
|
75
|
-
<d2l-count-badge number="100" size="small" text="100 new notifications" type="notification" slot="after"></d2l-count-badge>
|
|
76
|
-
</d2l-tab>
|
|
77
|
-
<d2l-tab id="beforeafter" text="Biology" slot="tabs">
|
|
78
|
-
<d2l-count-badge number="5" size="small" text="100 new notifications" type="notification" slot="before"></d2l-count-badge>
|
|
79
|
-
<d2l-count-badge number="10" size="small" text="100 new notifications" type="notification" slot="after"></d2l-count-badge>
|
|
80
|
-
</d2l-tab>
|
|
81
|
-
<d2l-tab-panel labelled-by="beforelong" slot="panels">Tab content for All</d2l-tab-panel>
|
|
82
|
-
<d2l-tab-panel labelled-by="afterlong" slot="panels">Tab content for Biology</d2l-tab-panel>
|
|
83
|
-
<d2l-tab-panel labelled-by="beforeshort" slot="panels">Tab content for Chemistry</d2l-tab-panel>
|
|
84
|
-
<d2l-tab-panel labelled-by="aftershort" slot="panels">Tab content for Physics</d2l-tab-panel>
|
|
85
|
-
<d2l-tab-panel labelled-by="beforeafter" slot="panels">Tab content for Trig</d2l-tab-panel>
|
|
86
|
-
</d2l-tabs>
|
|
87
|
-
</template>
|
|
88
|
-
</d2l-demo-snippet>
|
|
89
|
-
|
|
90
|
-
<h2>Tabs (with custom tab)</h2>
|
|
91
|
-
|
|
92
|
-
<d2l-demo-snippet>
|
|
93
|
-
<template>
|
|
94
|
-
<d2l-tabs text="Courses">
|
|
95
|
-
<d2l-tab-custom id="all" slot="tabs"><div style="color: purple;">All</div></d2l-tab-custom>
|
|
96
|
-
<d2l-tab-custom id="biology" slot="tabs" selected>
|
|
97
|
-
Biology <d2l-count-badge number="100" size="small" text="100 new notifications" type="notification"></d2l-count-badge>
|
|
98
|
-
</d2l-tab-custom>
|
|
99
|
-
<d2l-tab-custom id="chemistry" slot="tabs">Chemistry</d2l-tab-custom>
|
|
100
|
-
<d2l-tab-panel labelled-by="all" slot="panels">Tab content for All</d2l-tab-panel>
|
|
101
|
-
<d2l-tab-panel labelled-by="biology" slot="panels">Tab content for Biology</d2l-tab-panel>
|
|
102
|
-
<d2l-tab-panel labelled-by="chemistry" slot="panels">Tab content for Chemistry</d2l-tab-panel>
|
|
103
|
-
<d2l-dropdown-button-subtle slot="ext" text="Explore Topics">
|
|
104
|
-
<d2l-dropdown-menu>
|
|
105
|
-
<d2l-menu label="Astronomy">
|
|
106
|
-
<d2l-menu-item text="Introduction"></d2l-menu-item>
|
|
107
|
-
<d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
|
|
108
|
-
<d2l-menu-item text="The Solar System"></d2l-menu-item>
|
|
109
|
-
<d2l-menu-item text="Stars & Galaxies"></d2l-menu-item>
|
|
110
|
-
<d2l-menu-item text="The Night Sky"></d2l-menu-item>
|
|
111
|
-
<d2l-menu-item text="The Universe"></d2l-menu-item>
|
|
112
|
-
</d2l-menu>
|
|
113
|
-
</d2l-dropdown-menu>
|
|
114
|
-
</d2l-dropdown-button-subtle>
|
|
115
|
-
</d2l-tabs>
|
|
116
|
-
</template>
|
|
117
|
-
</d2l-demo-snippet>
|
|
118
|
-
|
|
119
|
-
<h3>Tabs (with slot)</h3>
|
|
120
|
-
|
|
121
|
-
<div style="margin-bottom: 30px;">
|
|
122
|
-
<d2l-button-subtle id="add" text="Add"></d2l-button-subtle>
|
|
123
|
-
<d2l-button-subtle id="add-selected" text="Add Selected"></d2l-button-subtle>
|
|
124
|
-
<d2l-button-subtle id="remove" text="Remove"></d2l-button-subtle>
|
|
125
|
-
<d2l-button-subtle id="remove-multiple" text="Remove Multiple"></d2l-button-subtle>
|
|
126
|
-
</div>
|
|
127
|
-
<script>
|
|
128
|
-
let newPanelId = 0;
|
|
129
|
-
const addPanel = (selected, tabs) => {
|
|
130
|
-
newPanelId += 1;
|
|
131
|
-
const panel = document.createElement('d2l-tab-panel');
|
|
132
|
-
panel.textContent = `Content for new panel ${newPanelId}`;
|
|
133
|
-
panel.slot = 'panels';
|
|
134
|
-
panel.labelledBy = `newPanel${newPanelId}`;
|
|
135
|
-
tabs.appendChild(panel);
|
|
136
|
-
|
|
137
|
-
const tab = document.createElement('d2l-tab');
|
|
138
|
-
tab.text = `New Panel ${newPanelId}`;
|
|
139
|
-
tab.slot = 'tabs';
|
|
140
|
-
tab.id = `newPanel${newPanelId}`;
|
|
141
|
-
if (selected) tab.selected = true;
|
|
142
|
-
|
|
143
|
-
const tabList = [...tabs.querySelectorAll('d2l-tab')];
|
|
144
|
-
if (tabList.length < 2) {
|
|
145
|
-
const firstPanel = tabs.querySelector('d2l-tab-panel');
|
|
146
|
-
tabs.insertBefore(tab, firstPanel);
|
|
147
|
-
} else {
|
|
148
|
-
tabs.insertBefore(tab, tabList[1]);
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
const removeTab = (tabs) => {
|
|
152
|
-
const tabElems = [...tabs.querySelectorAll('d2l-tab')];
|
|
153
|
-
if (tabElems.length === 0) return;
|
|
154
|
-
|
|
155
|
-
const tab = tabElems.length === 1 ? tabElems[0] : tabElems[1];
|
|
156
|
-
Promise.resolve(tabs.hideTab((tab))).then(() => {
|
|
157
|
-
const panel = tabs.querySelector(`d2l-tab-panel[labelled-by="${tab.id}"]`);
|
|
158
|
-
if (panel) tabs.removeChild(panel);
|
|
159
|
-
tabs.removeChild(tab);
|
|
160
|
-
});
|
|
161
|
-
};
|
|
162
|
-
const removeTabs = (tabs) => {
|
|
163
|
-
const tabElems = [...tabs.querySelectorAll('d2l-tab')];
|
|
164
|
-
if (tabElems.length === 0) return;
|
|
165
|
-
else if (tabElems.length === 1) removeTab(tabs);
|
|
166
|
-
else {
|
|
167
|
-
const tab1 = tabElems[0];
|
|
168
|
-
const tab2 = tabElems[1];
|
|
169
|
-
const animPromises = [];
|
|
170
|
-
animPromises.push(tabs.hideTab(tab1));
|
|
171
|
-
animPromises.push(tabs.hideTab(tab2));
|
|
172
|
-
Promise.all(animPromises).then(() => {
|
|
173
|
-
const panel1 = tabs.querySelector(`d2l-tab-panel[labelled-by="${tab1.id}"]`);
|
|
174
|
-
const panel2 = tabs.querySelector(`d2l-tab-panel[labelled-by="${tab2.id}"]`);
|
|
175
|
-
if (panel1) tabs.removeChild(panel1);
|
|
176
|
-
if (panel2) tabs.removeChild(panel2);
|
|
177
|
-
tabs.removeChild(tab1);
|
|
178
|
-
tabs.removeChild(tab2);
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
document.querySelector('#add').addEventListener('click', () => addPanel(false, document.querySelector('#withSlot').querySelector('d2l-tabs')));
|
|
184
|
-
document.querySelector('#add-selected').addEventListener('click', () => addPanel(true, document.querySelector('#withSlot').querySelector('d2l-tabs')));
|
|
185
|
-
document.querySelector('#remove').addEventListener('click', () => removeTab(document.querySelector('#withSlot').querySelector('d2l-tabs')));
|
|
186
|
-
document.querySelector('#remove-multiple').addEventListener('click', () => removeTabs(document.querySelector('#withSlot').querySelector('d2l-tabs')));
|
|
187
|
-
</script>
|
|
188
|
-
|
|
189
|
-
<d2l-demo-snippet id="withSlot">
|
|
190
|
-
<template>
|
|
191
|
-
<d2l-tabs>
|
|
192
|
-
<d2l-tab id="all" text="All" slot="tabs"></d2l-tab>
|
|
193
|
-
<d2l-tab id="biology" text="Biology" slot="tabs" selected></d2l-tab>
|
|
194
|
-
<d2l-tab id="chemistry" text="Chemistry" slot="tabs"></d2l-tab>
|
|
195
|
-
<d2l-tab id="physics" text="Physics" slot="tabs"></d2l-tab>
|
|
196
|
-
<d2l-tab id="math" text="Math" slot="tabs"></d2l-tab>
|
|
197
|
-
<d2l-tab id="earth-sciences" text="Earth Sciences" slot="tabs"></d2l-tab>
|
|
198
|
-
<d2l-tab-panel labelled-by="all" slot="panels">Tab content for All</d2l-tab-panel>
|
|
199
|
-
<d2l-tab-panel labelled-by="biology" slot="panels">Tab content for Biology</d2l-tab-panel>
|
|
200
|
-
<d2l-tab-panel labelled-by="chemistry" slot="panels">Tab content for Chemistry</d2l-tab-panel>
|
|
201
|
-
<d2l-tab-panel labelled-by="physics" slot="panels">Tab content for Physics</d2l-tab-panel>
|
|
202
|
-
<d2l-tab-panel labelled-by="math" slot="panels">Tab content for Math</d2l-tab-panel>
|
|
203
|
-
<d2l-tab-panel labelled-by="earth-sciences" slot="panels">Tab content for Earth Sciences</d2l-tab-panel>
|
|
204
|
-
<d2l-dropdown-button-subtle slot="ext" text="Explore Topics">
|
|
205
|
-
<d2l-dropdown-menu>
|
|
206
|
-
<d2l-menu label="Astronomy">
|
|
207
|
-
<d2l-menu-item text="Introduction"></d2l-menu-item>
|
|
208
|
-
<d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
|
|
209
|
-
<d2l-menu-item text="The Solar System"></d2l-menu-item>
|
|
210
|
-
<d2l-menu-item text="Stars & Galaxies"></d2l-menu-item>
|
|
211
|
-
<d2l-menu-item text="The Night Sky"></d2l-menu-item>
|
|
212
|
-
<d2l-menu-item text="The Universe"></d2l-menu-item>
|
|
213
|
-
</d2l-menu>
|
|
214
|
-
</d2l-dropdown-menu>
|
|
215
|
-
</d2l-dropdown-button-subtle>
|
|
216
|
-
</d2l-tabs>
|
|
217
|
-
</template>
|
|
218
|
-
</d2l-demo-snippet>
|
|
219
|
-
|
|
220
|
-
<h3>Tabs (with hidden)</h3>
|
|
221
|
-
|
|
222
|
-
<d2l-demo-snippet>
|
|
223
|
-
<template>
|
|
224
|
-
<div style="display: flex; gap: 0.5rem; margin-bottom: 0.5rem;">
|
|
225
|
-
<d2l-button-subtle text="Hide Next Tab" primary aria-label="Hide next visible tab" title="Hide next visible tab" id="hide-next-tab-btn"></d2l-button-subtle>
|
|
226
|
-
<d2l-button-subtle text="Show Next Hidden Tab" primary aria-label="Show next hidden tab" title="Show next hidden tab" id="show-next-hidden-tab-btn"></d2l-button-subtle>
|
|
227
|
-
</div>
|
|
228
|
-
<d2l-tabs text="Courses">
|
|
229
|
-
<d2l-tab id="all" text="All" slot="tabs" ></d2l-tab>
|
|
230
|
-
<d2l-tab id="biology" text="Biology" slot="tabs"></d2l-tab>
|
|
231
|
-
<d2l-tab id="chemistry" text="Chemistry" slot="tabs" ></d2l-tab>
|
|
232
|
-
<d2l-tab id="physics" text="Physics" slot="tabs" hidden></d2l-tab>
|
|
233
|
-
<d2l-tab id="math" text="Math" slot="tabs" hidden></d2l-tab>
|
|
234
|
-
<d2l-tab id="earth-sciences" text="Earth Sciences" slot="tabs" hidden></d2l-tab>
|
|
235
|
-
<d2l-tab-panel labelled-by="all" slot="panels" id="all-panel">Tab content for All</d2l-tab-panel>
|
|
236
|
-
<d2l-tab-panel labelled-by="biology" slot="panels" id="biology-panel">Tab content for Biology</d2l-tab-panel>
|
|
237
|
-
<d2l-tab-panel labelled-by="chemistry" slot="panels">Tab content for Chemistry</d2l-tab-panel>
|
|
238
|
-
<d2l-tab-panel labelled-by="physics" slot="panels">Tab content for Physics</d2l-tab-panel>
|
|
239
|
-
<d2l-tab-panel labelled-by="math" slot="panels">Tab content for Math</d2l-tab-panel>
|
|
240
|
-
<d2l-tab-panel labelled-by="earth-sciences" slot="panels">Tab content for Earth Sciences</d2l-tab-panel>
|
|
241
|
-
</d2l-tabs>
|
|
242
|
-
<script>
|
|
243
|
-
const templateRoot = document.currentScript.parentNode;
|
|
244
|
-
const hideBtn = templateRoot.querySelector('#hide-next-tab-btn');
|
|
245
|
-
const showBtn = templateRoot.querySelector('#show-next-hidden-tab-btn');
|
|
246
|
-
const tabsEl = templateRoot.querySelector('d2l-tabs');
|
|
247
|
-
|
|
248
|
-
hideBtn.addEventListener('click', () => {
|
|
249
|
-
const visibleTabs = [...tabsEl.querySelectorAll('d2l-tab:not([hidden])')];
|
|
250
|
-
if (visibleTabs.length === 0) return;
|
|
251
|
-
visibleTabs[0].setAttribute('hidden', '');
|
|
252
|
-
});
|
|
253
|
-
|
|
254
|
-
showBtn.addEventListener('click', () => {
|
|
255
|
-
const hiddenTabs = [...tabsEl.querySelectorAll('d2l-tab[hidden]')];
|
|
256
|
-
if (hiddenTabs.length === 0) return;
|
|
257
|
-
hiddenTabs[0].removeAttribute('hidden');
|
|
258
|
-
});
|
|
259
|
-
</script>
|
|
260
|
-
</template>
|
|
261
|
-
</d2l-demo-snippet>
|
|
262
|
-
|
|
263
|
-
<h3>Tabs (responsive)</h3>
|
|
264
|
-
|
|
265
|
-
<d2l-demo-snippet>
|
|
266
|
-
<template>
|
|
267
|
-
<div style="max-width: 500px;">
|
|
268
|
-
<d2l-tabs text="Many Miscellaneous Tabs">
|
|
269
|
-
<d2l-tab id="s18" text="S18" slot="tabs"></d2l-tab>
|
|
270
|
-
<d2l-tab-panel labelled-by="s18" slot="panels">Tab content for S18</d2l-tab-panel>
|
|
271
|
-
<d2l-tab id="w18" text="W18" slot="tabs"></d2l-tab>
|
|
272
|
-
<d2l-tab-panel labelled-by="w18" slot="panels">Tab content for W18</d2l-tab-panel>
|
|
273
|
-
<d2l-tab id="f17" text="F17" slot="tabs"></d2l-tab>
|
|
274
|
-
<d2l-tab-panel labelled-by="f17" slot="panels">Tab content for F17</d2l-tab-panel>
|
|
275
|
-
<d2l-tab id="s17" text="S17" slot="tabs"></d2l-tab>
|
|
276
|
-
<d2l-tab-panel labelled-by="s17" slot="panels">Tab content for S17</d2l-tab-panel>
|
|
277
|
-
<d2l-tab id="w17" text="W17" slot="tabs"></d2l-tab>
|
|
278
|
-
<d2l-tab-panel labelled-by="w17" slot="panels">Tab content for W17</d2l-tab-panel>
|
|
279
|
-
<d2l-tab id="f16" text="F16" slot="tabs"></d2l-tab>
|
|
280
|
-
<d2l-tab-panel labelled-by="f16" slot="panels">Tab content for F16</d2l-tab-panel>
|
|
281
|
-
<d2l-tab id="s16" text="S16" slot="tabs"></d2l-tab>
|
|
282
|
-
<d2l-tab-panel labelled-by="s16" slot="panels">Tab content for S16</d2l-tab-panel>
|
|
283
|
-
<d2l-tab id="w16" text="W16" slot="tabs"></d2l-tab>
|
|
284
|
-
<d2l-tab-panel labelled-by="w16" slot="panels">Tab content for W16</d2l-tab-panel>
|
|
285
|
-
<d2l-tab id="f15" text="F15" slot="tabs"></d2l-tab>
|
|
286
|
-
<d2l-tab-panel labelled-by="f15" slot="panels">Tab content for F15</d2l-tab-panel>
|
|
287
|
-
<d2l-tab id="s15" text="S15" slot="tabs"></d2l-tab>
|
|
288
|
-
<d2l-tab-panel labelled-by="s15" slot="panels">Tab content for S15</d2l-tab-panel>
|
|
289
|
-
<d2l-tab id="w15" text="W15" slot="tabs"></d2l-tab>
|
|
290
|
-
<d2l-tab-panel labelled-by="w15" slot="panels">Tab content for W15</d2l-tab-panel>
|
|
291
|
-
<d2l-tab id="f14" text="F14" slot="tabs"></d2l-tab>
|
|
292
|
-
<d2l-tab-panel labelled-by="f14" slot="panels">Tab content for F14</d2l-tab-panel>
|
|
293
|
-
<d2l-tab id="s14" text="S14" slot="tabs"></d2l-tab>
|
|
294
|
-
<d2l-tab-panel labelled-by="s14" slot="panels">Tab content for S14</d2l-tab-panel>
|
|
295
|
-
<d2l-tab id="w14" text="W14" slot="tabs"></d2l-tab>
|
|
296
|
-
<d2l-tab-panel labelled-by="w14" slot="panels">Tab content for W14</d2l-tab-panel>
|
|
297
|
-
<d2l-tab id="f13" text="F13" slot="tabs"></d2l-tab>
|
|
298
|
-
<d2l-tab-panel labelled-by="f13" slot="panels">Tab content for F13</d2l-tab-panel>
|
|
299
|
-
<d2l-tab id="s13" text="S13" slot="tabs"></d2l-tab>
|
|
300
|
-
<d2l-tab-panel labelled-by="s13" slot="panels">Tab content for S13</d2l-tab-panel>
|
|
301
|
-
<d2l-tab id="w13" text="W13" slot="tabs"></d2l-tab>
|
|
302
|
-
<d2l-tab-panel labelled-by="w13" slot="panels">Tab content for W13</d2l-tab-panel>
|
|
303
|
-
<d2l-tab id="f12" text="F12" slot="tabs"></d2l-tab>
|
|
304
|
-
<d2l-tab-panel labelled-by="f12" slot="panels">Tab content for F12</d2l-tab-panel>
|
|
305
|
-
<d2l-tab id="s12" text="S12" slot="tabs"></d2l-tab>
|
|
306
|
-
<d2l-tab-panel labelled-by="s12" slot="panels">Tab content for S12</d2l-tab-panel>
|
|
307
|
-
<d2l-tab id="w12" text="W12" slot="tabs"></d2l-tab>
|
|
308
|
-
<d2l-tab-panel labelled-by="w12" slot="panels">Tab content for W12</d2l-tab-panel>
|
|
309
|
-
<d2l-tab id="f11" text="F11" slot="tabs"></d2l-tab>
|
|
310
|
-
<d2l-tab-panel labelled-by="f11" slot="panels">Tab content for F11</d2l-tab-panel>
|
|
311
|
-
<d2l-tab id="s11" text="S11" slot="tabs"></d2l-tab>
|
|
312
|
-
<d2l-tab-panel labelled-by="s11" slot="panels">Tab content for S11</d2l-tab-panel>
|
|
313
|
-
</d2l-tabs>
|
|
314
|
-
</div>
|
|
315
|
-
</template>
|
|
316
|
-
</d2l-demo-snippet>
|
|
317
|
-
|
|
318
|
-
<h3>Tabs (max-to-show)</h3>
|
|
319
|
-
|
|
320
|
-
<d2l-demo-snippet>
|
|
321
|
-
<template>
|
|
322
|
-
<d2l-tabs max-to-show="3" text="Courses">
|
|
323
|
-
<d2l-tab id="all" text="All" slot="tabs"></d2l-tab>
|
|
324
|
-
<d2l-tab-panel labelled-by="all" slot="panels">Tab content for All</d2l-tab-panel>
|
|
325
|
-
<d2l-tab id="biology" text="Biology" slot="tabs" selected></d2l-tab>
|
|
326
|
-
<d2l-tab-panel labelled-by="biology" slot="panels">Tab content for Biology</d2l-tab-panel>
|
|
327
|
-
<d2l-tab id="chemistry" text="Chemistry" slot="tabs"></d2l-tab>
|
|
328
|
-
<d2l-tab-panel labelled-by="chemistry" slot="panels">Tab content for Chemistry</d2l-tab-panel>
|
|
329
|
-
<d2l-tab id="earth-sciences" text="Earth Sciences" slot="tabs"></d2l-tab>
|
|
330
|
-
<d2l-tab-panel labelled-by="earth-sciences" slot="panels">Tab content for Earth Sciences</d2l-tab-panel>
|
|
331
|
-
<d2l-tab id="physics" text="Physics" slot="tabs"></d2l-tab>
|
|
332
|
-
<d2l-tab-panel labelled-by="physics" slot="panels">Tab content for Physics</d2l-tab-panel>
|
|
333
|
-
<d2l-tab id="math" text="Math" slot="tabs"></d2l-tab>
|
|
334
|
-
<d2l-tab-panel labelled-by="math" slot="panels">Tab content for Math</d2l-tab-panel>
|
|
335
|
-
<d2l-tab id="community" text="Community" slot="tabs"></d2l-tab>
|
|
336
|
-
<d2l-tab-panel labelled-by="community" slot="panels">Tab content for Community</d2l-tab-panel>
|
|
337
|
-
</d2l-tabs>
|
|
338
|
-
</template>
|
|
339
|
-
</d2l-demo-snippet>
|
|
340
|
-
|
|
341
|
-
<h2>Tabs (before selected)</h2>
|
|
342
|
-
|
|
343
|
-
<d2l-demo-snippet>
|
|
344
|
-
<template>
|
|
345
|
-
<d2l-tabs text="Courses" id="courses-before-selection">
|
|
346
|
-
<d2l-tab id="all" text="All" slot="tabs"></d2l-tab>
|
|
347
|
-
<d2l-tab id="biology" text="Biology" slot="tabs" selected></d2l-tab>
|
|
348
|
-
<d2l-tab-panel labelled-by="all" slot="panels" id="all-panel">Tab content for All</d2l-tab-panel>
|
|
349
|
-
<d2l-tab-panel labelled-by="biology" slot="panels" id="biology-panel">Tab content for Biology</d2l-tab-panel>
|
|
350
|
-
</d2l-tabs>
|
|
351
|
-
|
|
352
|
-
<script>
|
|
353
|
-
document.querySelector('#courses-before-selection').addEventListener('d2l-tab-before-selected', e => {
|
|
354
|
-
e.preventDefault();
|
|
355
|
-
setTimeout(() => {
|
|
356
|
-
e.detail.select();
|
|
357
|
-
}, 2000);
|
|
358
|
-
});
|
|
359
|
-
</script>
|
|
360
|
-
</template>
|
|
361
|
-
</d2l-demo-snippet>
|
|
362
|
-
|
|
363
|
-
<h2>Tabs (before selected, don't select)</h2>
|
|
364
|
-
|
|
365
|
-
<d2l-demo-snippet>
|
|
366
|
-
<template>
|
|
367
|
-
<d2l-tabs text="Courses" id="courses-before-selection-reset">
|
|
368
|
-
<d2l-tab id="all" text="All" slot="tabs"></d2l-tab>
|
|
369
|
-
<d2l-tab id="biology" text="Biology" slot="tabs" selected></d2l-tab>
|
|
370
|
-
<d2l-tab-panel labelled-by="all" slot="panels" id="all-panel">Tab content for All</d2l-tab-panel>
|
|
371
|
-
<d2l-tab-panel labelled-by="biology" slot="panels" id="biology-panel">Tab content for Biology</d2l-tab-panel>
|
|
372
|
-
</d2l-tabs>
|
|
373
|
-
|
|
374
|
-
<script>
|
|
375
|
-
document.querySelector('#courses-before-selection-reset').addEventListener('d2l-tab-before-selected', e => {
|
|
376
|
-
e.preventDefault();
|
|
377
|
-
setTimeout(() => {
|
|
378
|
-
e.detail.reset();
|
|
379
|
-
}, 2000);
|
|
380
|
-
});
|
|
381
|
-
</script>
|
|
382
|
-
</template>
|
|
383
|
-
</d2l-demo-snippet>
|
|
384
|
-
|
|
385
|
-
<h2>Tabs (array)</h2>
|
|
386
|
-
|
|
387
|
-
<d2l-demo-snippet>
|
|
388
|
-
<template>
|
|
389
|
-
<d2l-tabs-array></d2l-tabs-array>
|
|
390
|
-
</template>
|
|
391
|
-
</d2l-demo-snippet>
|
|
392
|
-
|
|
393
|
-
<h2>Tabs (simple empty illustrated)</h2>
|
|
394
|
-
|
|
395
|
-
<d2l-demo-snippet>
|
|
396
|
-
<template>
|
|
397
|
-
<d2l-tabs text="Simple Empty States">
|
|
398
|
-
<d2l-tab id="simple-empty-one" slot="tabs" text="One"></d2l-tab>
|
|
399
|
-
<d2l-tab id="simple-empty-two" slot="tabs" text="Two"></d2l-tab>
|
|
400
|
-
<d2l-tab-panel labelled-by="simple-empty-one" slot="panels">
|
|
401
|
-
<d2l-empty-state-illustrated illustration-name="race" title-text="No Items in First Tab" description="none"></d2l-empty-state-illustrated>
|
|
402
|
-
</d2l-tab-panel>
|
|
403
|
-
<d2l-tab-panel labelled-by="simple-empty-two" slot="panels">
|
|
404
|
-
<d2l-empty-state-illustrated illustration-name="calendar" title-text="No Items in Second Tab" description="none"></d2l-empty-state-illustrated>
|
|
405
|
-
</d2l-tab-panel>
|
|
406
|
-
</d2l-tabs>
|
|
407
|
-
</template>
|
|
408
|
-
</d2l-demo-snippet>
|
|
409
|
-
|
|
410
|
-
<h2>Tabs (deprecated structure)</h2>
|
|
411
|
-
|
|
412
|
-
<d2l-demo-snippet>
|
|
413
|
-
<template>
|
|
414
|
-
<d2l-tabs>
|
|
415
|
-
<d2l-tab-panel text="All">Tab content for All</d2l-tab-panel>
|
|
416
|
-
<d2l-tab-panel text="Biology">Tab content for Biology</d2l-tab-panel>
|
|
417
|
-
<d2l-tab-panel text="Chemistry">Tab content for Chemistry</d2l-tab-panel>
|
|
418
|
-
<d2l-tab-panel text="Earth & Planetary Sciences">Tab content for Earth & Planetary Sciences</d2l-tab-panel>
|
|
419
|
-
<d2l-tab-panel text="Physics">Tab content for Physics</d2l-tab-panel>
|
|
420
|
-
<d2l-tab-panel text="Math">Tab content for Math</d2l-tab-panel>
|
|
421
|
-
</d2l-tabs>
|
|
422
|
-
</template>
|
|
423
|
-
</d2l-demo-snippet>
|
|
424
|
-
|
|
425
|
-
<h3>Tabs (deprecated; with slot)</h3>
|
|
426
|
-
|
|
427
|
-
<div style="margin-bottom: 30px;">
|
|
428
|
-
<d2l-button-subtle id="add-deprecated" text="Add"></d2l-button-subtle>
|
|
429
|
-
<d2l-button-subtle id="add-selected-deprecated" text="Add Selected"></d2l-button-subtle>
|
|
430
|
-
<d2l-button-subtle id="remove-deprecated" text="Remove"></d2l-button-subtle>
|
|
431
|
-
<d2l-button-subtle id="remove-multiple-deprecated" text="Remove Multiple"></d2l-button-subtle>
|
|
432
|
-
</div>
|
|
433
|
-
<script>
|
|
434
|
-
let newPanelIdDeprecated = 0;
|
|
435
|
-
const addPanelDeprecated = (selected, tabs) => {
|
|
436
|
-
newPanelIdDeprecated += 1;
|
|
437
|
-
const panel = document.createElement('d2l-tab-panel');
|
|
438
|
-
panel.selected = selected;
|
|
439
|
-
panel.text = `New Panel ${newPanelIdDeprecated}`;
|
|
440
|
-
panel.textContent = `Content for new panel ${newPanelIdDeprecated}`;
|
|
441
|
-
const panels = [...tabs.querySelectorAll('d2l-tab-panel')];
|
|
442
|
-
if (panels.length < 2) tabs.appendChild(panel);
|
|
443
|
-
else tabs.insertBefore(panel, panels[1]);
|
|
444
|
-
};
|
|
445
|
-
const removePanelDeprecated = (tabs) => {
|
|
446
|
-
const panels = [...tabs.querySelectorAll('d2l-tab-panel')];
|
|
447
|
-
if (panels.length === 0) return;
|
|
448
|
-
if (panels.length === 1) tabs.removeChild(panels[0]);
|
|
449
|
-
else tabs.removeChild(panels[1]);
|
|
450
|
-
};
|
|
451
|
-
const removePanelsDeprecated = (tabs) => {
|
|
452
|
-
const panels = [...tabs.querySelectorAll('d2l-tab-panel')];
|
|
453
|
-
if (panels.length === 0) return;
|
|
454
|
-
if (panels.length === 1) tabs.removeChild(panels[0]);
|
|
455
|
-
else {
|
|
456
|
-
tabs.removeChild(panels[1]);
|
|
457
|
-
tabs.removeChild(panels[0]);
|
|
458
|
-
}
|
|
459
|
-
};
|
|
460
|
-
|
|
461
|
-
document.querySelector('#add-deprecated').addEventListener('click', () => addPanelDeprecated(false, document.querySelector('#withSlotDeprecated').querySelector('d2l-tabs')));
|
|
462
|
-
document.querySelector('#add-selected-deprecated').addEventListener('click', () => addPanelDeprecated(true, document.querySelector('#withSlotDeprecated').querySelector('d2l-tabs')));
|
|
463
|
-
document.querySelector('#remove-deprecated').addEventListener('click', () => removePanelDeprecated(document.querySelector('#withSlotDeprecated').querySelector('d2l-tabs')));
|
|
464
|
-
document.querySelector('#remove-multiple-deprecated').addEventListener('click', () => removePanelsDeprecated(document.querySelector('#withSlotDeprecated').querySelector('d2l-tabs')));
|
|
465
|
-
</script>
|
|
466
|
-
|
|
467
|
-
<d2l-demo-snippet id="withSlotDeprecated">
|
|
468
|
-
<template>
|
|
469
|
-
<d2l-tabs>
|
|
470
|
-
<d2l-tab-panel text="Biology">Tab content for Biology</d2l-tab-panel>
|
|
471
|
-
<d2l-tab-panel text="Chemistry">Tab content for Chemistry</d2l-tab-panel>
|
|
472
|
-
<d2l-tab-panel text="Earth Sciences">Tab content for Earth Sciences</d2l-tab-panel>
|
|
473
|
-
<d2l-tab-panel text="Physics">Tab content for Physics</d2l-tab-panel>
|
|
474
|
-
<d2l-tab-panel text="Math">Tab content for Math</d2l-tab-panel>
|
|
475
|
-
<d2l-dropdown-button-subtle slot="ext" text="Explore Topics">
|
|
476
|
-
<d2l-dropdown-menu>
|
|
477
|
-
<d2l-menu label="Astronomy">
|
|
478
|
-
<d2l-menu-item text="Introduction"></d2l-menu-item>
|
|
479
|
-
<d2l-menu-item text="Searching for the Heavens "></d2l-menu-item>
|
|
480
|
-
<d2l-menu-item text="The Solar System"></d2l-menu-item>
|
|
481
|
-
<d2l-menu-item text="Stars & Galaxies"></d2l-menu-item>
|
|
482
|
-
<d2l-menu-item text="The Night Sky"></d2l-menu-item>
|
|
483
|
-
<d2l-menu-item text="The Universe"></d2l-menu-item>
|
|
484
|
-
</d2l-menu>
|
|
485
|
-
</d2l-dropdown-menu>
|
|
486
|
-
</d2l-dropdown-button-subtle>
|
|
487
|
-
</d2l-tabs>
|
|
488
|
-
</template>
|
|
489
|
-
</d2l-demo-snippet>
|
|
490
|
-
|
|
491
|
-
<h3>Tabs (deprecated; responsive)</h3>
|
|
492
|
-
|
|
493
|
-
<d2l-demo-snippet>
|
|
494
|
-
<template>
|
|
495
|
-
<div style="max-width: 500px;">
|
|
496
|
-
<d2l-tabs>
|
|
497
|
-
<d2l-tab-panel text="S18">Tab content for S18</d2l-tab-panel>
|
|
498
|
-
<d2l-tab-panel text="W18">Tab content for W18</d2l-tab-panel>
|
|
499
|
-
<d2l-tab-panel text="F17">Tab content for F17</d2l-tab-panel>
|
|
500
|
-
<d2l-tab-panel text="S17">Tab content for S17</d2l-tab-panel>
|
|
501
|
-
<d2l-tab-panel text="W17">Tab content for W17</d2l-tab-panel>
|
|
502
|
-
<d2l-tab-panel text="F16">Tab content for F16</d2l-tab-panel>
|
|
503
|
-
<d2l-tab-panel text="S16">Tab content for S16</d2l-tab-panel>
|
|
504
|
-
<d2l-tab-panel text="W16">Tab content for W16</d2l-tab-panel>
|
|
505
|
-
<d2l-tab-panel text="F15">Tab content for F15</d2l-tab-panel>
|
|
506
|
-
<d2l-tab-panel text="S15">Tab content for S15</d2l-tab-panel>
|
|
507
|
-
<d2l-tab-panel text="W15">Tab content for W15</d2l-tab-panel>
|
|
508
|
-
<d2l-tab-panel text="F14">Tab content for F14</d2l-tab-panel>
|
|
509
|
-
<d2l-tab-panel text="S14">Tab content for S14</d2l-tab-panel>
|
|
510
|
-
<d2l-tab-panel text="W14">Tab content for W14</d2l-tab-panel>
|
|
511
|
-
<d2l-tab-panel text="F13">Tab content for F13</d2l-tab-panel>
|
|
512
|
-
<d2l-tab-panel text="S13">Tab content for S13</d2l-tab-panel>
|
|
513
|
-
<d2l-tab-panel text="W13">Tab content for W13</d2l-tab-panel>
|
|
514
|
-
<d2l-tab-panel text="F12">Tab content for F12</d2l-tab-panel>
|
|
515
|
-
<d2l-tab-panel text="S12">Tab content for S12</d2l-tab-panel>
|
|
516
|
-
<d2l-tab-panel text="W12">Tab content for W12</d2l-tab-panel>
|
|
517
|
-
<d2l-tab-panel text="F11">Tab content for F11</d2l-tab-panel>
|
|
518
|
-
<d2l-tab-panel text="S11">Tab content for S11</d2l-tab-panel>
|
|
519
|
-
</d2l-tabs>
|
|
520
|
-
</div>
|
|
521
|
-
</template>
|
|
522
|
-
</d2l-demo-snippet>
|
|
523
|
-
|
|
524
|
-
<h3>Tabs (deprecated; max-to-show)</h3>
|
|
525
|
-
|
|
526
|
-
<d2l-demo-snippet>
|
|
527
|
-
<template>
|
|
528
|
-
<d2l-tabs max-to-show="3">
|
|
529
|
-
<d2l-tab-panel text="All">Tab content for All</d2l-tab-panel>
|
|
530
|
-
<d2l-tab-panel selected text="Biology">Tab content for Biology</d2l-tab-panel>
|
|
531
|
-
<d2l-tab-panel text="Chemistry">Tab content for Chemistry</d2l-tab-panel>
|
|
532
|
-
<d2l-tab-panel text="Earth Sciences">Tab content for Earth Sciences</d2l-tab-panel>
|
|
533
|
-
<d2l-tab-panel text="Physics">Tab content for Physics</d2l-tab-panel>
|
|
534
|
-
<d2l-tab-panel text="Math">Tab content for Math</d2l-tab-panel>
|
|
535
|
-
<d2l-tab-panel text="Community">Tab content for Community</d2l-tab-panel>
|
|
536
|
-
</d2l-tabs>
|
|
537
|
-
</template>
|
|
538
|
-
</d2l-demo-snippet>
|
|
539
|
-
|
|
540
|
-
</d2l-demo-page>
|
|
541
|
-
|
|
542
|
-
<script>
|
|
543
|
-
document.addEventListener('d2l-tab-panel-selected', (e) => {
|
|
544
|
-
console.log('tab panel selected', e);
|
|
545
|
-
});
|
|
546
|
-
document.addEventListener('d2l-tab-selected', (e) => {
|
|
547
|
-
console.log('tab selected', e);
|
|
548
|
-
});
|
|
549
|
-
document.addEventListener('d2l-tab-panel-text-changed', (e) => {
|
|
550
|
-
console.log('tab panel text changed', e);
|
|
551
|
-
});
|
|
552
|
-
document.addEventListener('d2l-tab-content-change', (e) => {
|
|
553
|
-
console.log('tab content changed', e);
|
|
554
|
-
});
|
|
555
|
-
</script>
|
|
556
|
-
|
|
557
|
-
</body>
|
|
558
|
-
</html>
|