@brightspace-ui/core 3.227.4 → 3.227.6

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.
Files changed (180) hide show
  1. package/components/button/button-icon.js +10 -10
  2. package/components/button/button.js +8 -8
  3. package/components/demo/test/demo-page-settings.test.js +25 -0
  4. package/components/demo/test/demo-page.test.js +17 -0
  5. package/components/filter/filter-dimension-set-date-time-range-value.js +2 -1
  6. package/components/filter/filter-dimension-set.js +1 -1
  7. package/components/filter/filter.js +2 -1
  8. package/package.json +1 -1
  9. package/components/alert/demo/alert-toast.html +0 -106
  10. package/components/alert/demo/alert.html +0 -82
  11. package/components/backdrop/demo/backdrop-loading.html +0 -166
  12. package/components/backdrop/demo/backdrop.html +0 -57
  13. package/components/breadcrumbs/demo/breadcrumbs.html +0 -53
  14. package/components/button/demo/button-add.html +0 -55
  15. package/components/button/demo/button-copy.html +0 -122
  16. package/components/button/demo/button-icon.html +0 -174
  17. package/components/button/demo/button-move.html +0 -38
  18. package/components/button/demo/button-split.html +0 -76
  19. package/components/button/demo/button-subtle.html +0 -132
  20. package/components/button/demo/button-toggle.html +0 -80
  21. package/components/button/demo/button.html +0 -67
  22. package/components/button/demo/floating-buttons-in-frame.html +0 -44
  23. package/components/button/demo/floating-buttons-in-tabs.html +0 -244
  24. package/components/button/demo/floating-buttons-page.html +0 -100
  25. package/components/button/demo/floating-buttons.html +0 -101
  26. package/components/calendar/demo/calendar.html +0 -76
  27. package/components/card/demo/card.html +0 -304
  28. package/components/collapsible-panel/demo/collapsible-panel.html +0 -218
  29. package/components/colors/demo/color-swatch.js +0 -240
  30. package/components/colors/demo/colors.html +0 -139
  31. package/components/count-badge/demo/count-badge-icon.html +0 -48
  32. package/components/count-badge/demo/count-badge.html +0 -73
  33. package/components/demo/demo/demo-snippet.html +0 -71
  34. package/components/description-list/demo/description-list-test.js +0 -142
  35. package/components/description-list/demo/description-list.html +0 -48
  36. package/components/dialog/demo/dialog-async-content-until.js +0 -89
  37. package/components/dialog/demo/dialog-async-content.js +0 -72
  38. package/components/dialog/demo/dialog-confirm.html +0 -102
  39. package/components/dialog/demo/dialog-container.js +0 -40
  40. package/components/dialog/demo/dialog-fullscreen.html +0 -273
  41. package/components/dialog/demo/dialog-nested.html +0 -94
  42. package/components/dialog/demo/dialog.html +0 -398
  43. package/components/dropdown/demo/dropdown-button.html +0 -102
  44. package/components/dropdown/demo/dropdown-context-menu.html +0 -129
  45. package/components/dropdown/demo/dropdown-flicker-inner.html +0 -70
  46. package/components/dropdown/demo/dropdown-flicker.html +0 -142
  47. package/components/dropdown/demo/dropdown-menu-demo-view.js +0 -37
  48. package/components/dropdown/demo/dropdown-menu.html +0 -227
  49. package/components/dropdown/demo/dropdown-more.html +0 -160
  50. package/components/dropdown/demo/dropdown-positioning.html +0 -127
  51. package/components/dropdown/demo/dropdown-tabs.html +0 -87
  52. package/components/dropdown/demo/dropdown.html +0 -217
  53. package/components/empty-state/demo/empty-state.html +0 -94
  54. package/components/expand-collapse/demo/expand-collapse-content.html +0 -58
  55. package/components/filter/demo/filter-load-more-demo.js +0 -182
  56. package/components/filter/demo/filter-overflow-group.html +0 -246
  57. package/components/filter/demo/filter-search-demo.js +0 -135
  58. package/components/filter/demo/filter-tags.html +0 -115
  59. package/components/filter/demo/filter.html +0 -230
  60. package/components/focus-trap/demo/focus-trap.html +0 -75
  61. package/components/form/demo/form-demo.js +0 -105
  62. package/components/form/demo/form-dialog-demo.js +0 -94
  63. package/components/form/demo/form-panel-demo.js +0 -89
  64. package/components/form/demo/form.html +0 -37
  65. package/components/hierarchical-view/demo/hierarchical-view.html +0 -221
  66. package/components/html-block/demo/html-block-code.html +0 -55
  67. package/components/html-block/demo/html-block.html +0 -696
  68. package/components/icons/demo/icon-color-override.js +0 -23
  69. package/components/icons/demo/icon-custom.html +0 -112
  70. package/components/icons/demo/icon-size-override.js +0 -24
  71. package/components/icons/demo/icon.html +0 -52
  72. package/components/inputs/demo/input-checkbox.html +0 -118
  73. package/components/inputs/demo/input-color-palette.js +0 -67
  74. package/components/inputs/demo/input-color.html +0 -110
  75. package/components/inputs/demo/input-date-range.html +0 -114
  76. package/components/inputs/demo/input-date-time-range.html +0 -128
  77. package/components/inputs/demo/input-date-time.html +0 -100
  78. package/components/inputs/demo/input-date.html +0 -81
  79. package/components/inputs/demo/input-group.html +0 -56
  80. package/components/inputs/demo/input-number.html +0 -136
  81. package/components/inputs/demo/input-percent.html +0 -99
  82. package/components/inputs/demo/input-radio-label-test.js +0 -45
  83. package/components/inputs/demo/input-radio-solo-test.js +0 -47
  84. package/components/inputs/demo/input-radio.html +0 -119
  85. package/components/inputs/demo/input-search.html +0 -75
  86. package/components/inputs/demo/input-select-test.js +0 -60
  87. package/components/inputs/demo/input-select.html +0 -45
  88. package/components/inputs/demo/input-text.html +0 -163
  89. package/components/inputs/demo/input-textarea.html +0 -124
  90. package/components/inputs/demo/input-time-range.html +0 -121
  91. package/components/inputs/demo/input-time.html +0 -95
  92. package/components/link/demo/link.html +0 -111
  93. package/components/list/demo/demo-list-nav.js +0 -170
  94. package/components/list/demo/demo-list-nested-iterations-helper.js +0 -168
  95. package/components/list/demo/demo-list-nested-lazy-load.js +0 -133
  96. package/components/list/demo/demo-list-nested.js +0 -291
  97. package/components/list/demo/demo-list.js +0 -241
  98. package/components/list/demo/list-color.html +0 -423
  99. package/components/list/demo/list-demo-scenarios.js +0 -380
  100. package/components/list/demo/list-drag-and-drop-position.js +0 -102
  101. package/components/list/demo/list-drag-and-drop.html +0 -82
  102. package/components/list/demo/list-expand-collapse.html +0 -136
  103. package/components/list/demo/list-item-actions.html +0 -371
  104. package/components/list/demo/list-item-custom.js +0 -204
  105. package/components/list/demo/list-item-layouts.html +0 -331
  106. package/components/list/demo/list-item-scroll.html +0 -122
  107. package/components/list/demo/list-layout.html +0 -575
  108. package/components/list/demo/list-nav.html +0 -110
  109. package/components/list/demo/list-nested.html +0 -270
  110. package/components/list/demo/list-selection.html +0 -301
  111. package/components/list/demo/list.html +0 -319
  112. package/components/loading-spinner/demo/loading-spinner-override.js +0 -34
  113. package/components/loading-spinner/demo/loading-spinner.html +0 -63
  114. package/components/menu/demo/checkbox-menu.html +0 -52
  115. package/components/menu/demo/custom-menu-item.js +0 -37
  116. package/components/menu/demo/custom-view.js +0 -63
  117. package/components/menu/demo/menu.html +0 -211
  118. package/components/menu/demo/radio-menu.html +0 -52
  119. package/components/meter/demo/meter.html +0 -115
  120. package/components/more-less/demo/more-less-test.js +0 -67
  121. package/components/more-less/demo/more-less.html +0 -71
  122. package/components/object-property-list/demo/object-property-list.html +0 -99
  123. package/components/offscreen/demo/offscreen-demo.js +0 -16
  124. package/components/offscreen/demo/offscreen.html +0 -44
  125. package/components/overflow-group/demo/demo-overflow-group.js +0 -29
  126. package/components/overflow-group/demo/overflow-group.html +0 -110
  127. package/components/paging/demo/pager-load-more.html +0 -120
  128. package/components/popover/demo/popover.html +0 -309
  129. package/components/progress/demo/progress.html +0 -104
  130. package/components/scroll-wrapper/demo/scroll-wrapper-test.js +0 -108
  131. package/components/scroll-wrapper/demo/scroll-wrapper.html +0 -52
  132. package/components/selection/demo/demo-selection.js +0 -35
  133. package/components/selection/demo/selection.html +0 -198
  134. package/components/skeleton/demo/skeleton-group-nested-test.js +0 -71
  135. package/components/skeleton/demo/skeleton-group-test-wrapper.js +0 -18
  136. package/components/skeleton/demo/skeleton-group-test.js +0 -91
  137. package/components/skeleton/demo/skeleton-mixin.html +0 -78
  138. package/components/skeleton/demo/skeleton-test-box.js +0 -34
  139. package/components/skeleton/demo/skeleton-test-container.js +0 -45
  140. package/components/skeleton/demo/skeleton-test-heading.js +0 -44
  141. package/components/skeleton/demo/skeleton-test-link.js +0 -47
  142. package/components/skeleton/demo/skeleton-test-paragraph.js +0 -54
  143. package/components/skeleton/demo/skeleton-test-stack.js +0 -38
  144. package/components/skeleton/demo/skeleton-test-width.js +0 -20
  145. package/components/sorting/demo/sort.html +0 -37
  146. package/components/status-indicator/demo/status-indicator.html +0 -99
  147. package/components/switch/demo/switch.html +0 -95
  148. package/components/table/demo/table-test.js +0 -271
  149. package/components/table/demo/table.html +0 -107
  150. package/components/tabs/demo/tab-custom.js +0 -39
  151. package/components/tabs/demo/tabs-array.js +0 -43
  152. package/components/tabs/demo/tabs.html +0 -558
  153. package/components/tag-list/demo/tag-list.html +0 -117
  154. package/components/tooltip/demo/tooltip.html +0 -275
  155. package/components/typography/demo/typography.html +0 -93
  156. package/components/view-switcher/demo/demo-table-view.js +0 -41
  157. package/components/view-switcher/demo/view-switcher.html +0 -71
  158. package/directives/animate/demo/animate-test.js +0 -98
  159. package/directives/animate/demo/index.html +0 -23
  160. package/helpers/demo/announce-test.js +0 -37
  161. package/helpers/demo/announce.html +0 -19
  162. package/helpers/demo/dismissible-test.js +0 -66
  163. package/helpers/demo/dismissible.html +0 -38
  164. package/helpers/demo/gestures.html +0 -58
  165. package/helpers/demo/prism.html +0 -694
  166. package/helpers/demo/template-tags.html +0 -118
  167. package/mixins/arrow-keys/demo/arrow-keys-mixin.html +0 -29
  168. package/mixins/arrow-keys/demo/arrow-keys-test.js +0 -38
  169. package/mixins/async-container/demo/async-container.html +0 -109
  170. package/mixins/async-container/demo/async-container.js +0 -27
  171. package/mixins/async-container/demo/async-item.js +0 -80
  172. package/mixins/labelled/demo/labelled-mixin.html +0 -90
  173. package/mixins/localize/demo/localize-mixin-greeting.js +0 -39
  174. package/mixins/localize/demo/localize-mixin-mission.js +0 -25
  175. package/mixins/localize/demo/localize-mixin.html +0 -28
  176. package/templates/primary-secondary/demo/form.html +0 -55
  177. package/templates/primary-secondary/demo/index.html +0 -27
  178. package/templates/primary-secondary/demo/integration.html +0 -457
  179. package/templates/primary-secondary/demo/overflow-hidden.html +0 -22
  180. 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 &amp; 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 &amp; 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 &amp; 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 &amp; Planetary Sciences">Tab content for Earth &amp; 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 &amp; 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>