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