@brightspace-ui/labs 2.56.0 → 2.56.2

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 (51) hide show
  1. package/demo/components/ou-filter/ouFilterDemoPage.js +14 -16
  2. package/package.json +4 -3
  3. package/src/components/accessibility-disability-simulator/accessibility-disability-simulator.js +70 -74
  4. package/src/components/accordion/accordion-collapse.js +161 -164
  5. package/src/components/accordion/accordion.js +14 -17
  6. package/src/components/attribute-picker/attribute-picker-item.js +63 -66
  7. package/src/components/attribute-picker/attribute-picker.js +118 -121
  8. package/src/components/card-overlay/card-overlay.js +53 -55
  9. package/src/components/checkbox-drawer/checkbox-drawer.js +32 -36
  10. package/src/components/community/community-base.js +3 -5
  11. package/src/components/community/community-button.js +3 -5
  12. package/src/components/community/community-link.js +4 -6
  13. package/src/components/file-uploader/file-uploader.js +148 -151
  14. package/src/components/grade-result/grade-result-icon-button.js +5 -6
  15. package/src/components/grade-result/grade-result-letter-score.js +18 -22
  16. package/src/components/grade-result/grade-result-numeric-score.js +25 -28
  17. package/src/components/grade-result/grade-result-presentational.js +133 -136
  18. package/src/components/grade-result/grade-result-student-grade-preview.js +38 -42
  19. package/src/components/media-player/media-player-audio-bars.js +28 -31
  20. package/src/components/media-player/media-player.js +471 -475
  21. package/src/components/media-player/slider-bar.js +119 -122
  22. package/src/components/navigation/navigation-band.js +69 -71
  23. package/src/components/navigation/navigation-button-icon.js +51 -55
  24. package/src/components/navigation/navigation-dropdown-button-custom.js +13 -17
  25. package/src/components/navigation/navigation-dropdown-button-icon.js +21 -25
  26. package/src/components/navigation/navigation-immersive.js +128 -132
  27. package/src/components/navigation/navigation-iterator.js +21 -25
  28. package/src/components/navigation/navigation-link-back.js +13 -17
  29. package/src/components/navigation/navigation-link-icon.js +36 -40
  30. package/src/components/navigation/navigation-link-image.js +31 -35
  31. package/src/components/navigation/navigation-link.js +34 -38
  32. package/src/components/navigation/navigation-main-footer.js +7 -9
  33. package/src/components/navigation/navigation-main-header.js +34 -36
  34. package/src/components/navigation/navigation-notification-icon.js +30 -34
  35. package/src/components/navigation/navigation.js +19 -23
  36. package/src/components/opt-in-flyout/flyout-impl.js +138 -146
  37. package/src/components/opt-in-flyout/opt-in-flyout.js +14 -18
  38. package/src/components/opt-in-flyout/opt-out-dialog.js +63 -67
  39. package/src/components/opt-in-flyout/opt-out-flyout.js +15 -19
  40. package/src/components/opt-in-flyout/opt-out-reason-selector.js +38 -45
  41. package/src/components/opt-in-flyout/opt-out-reason.js +9 -13
  42. package/src/components/ou-filter/ou-filter.js +14 -18
  43. package/src/components/ou-filter/tree-filter.js +22 -26
  44. package/src/components/ou-filter/tree-selector-node.js +62 -66
  45. package/src/components/ou-filter/tree-selector.js +55 -62
  46. package/src/components/pagination/pager-numeric.js +35 -39
  47. package/src/components/view-toggle/view-toggle.js +79 -81
  48. package/src/components/wizard/single-step-header.js +106 -110
  49. package/src/components/wizard/wizard-step.js +65 -68
  50. package/src/components/wizard/wizard.js +30 -33
  51. package/src/utilities/reactive-store/README.md +10 -15
@@ -8,51 +8,47 @@ import { selectStyles } from '@brightspace-ui/core/components/inputs/input-selec
8
8
 
9
9
  class PagerNumeric extends LocalizeLabsElement(LitElement) {
10
10
 
11
- static get properties() {
12
- return {
13
- maxPageNumber: { type: Number, attribute: 'max-page-number', reflect: true },
14
- pageNumber: { type: Number, attribute: 'page-number', reflect: true },
15
- pageSize : { type: Number, attribute: 'page-size', reflect: true },
16
- pageSizes : { type: Array, attribute: 'page-sizes' },
17
- showPageSizeSelector : { type: Boolean, attribute: 'show-page-size-selector', reflect: true }
18
- };
19
- }
20
-
21
- static get styles() {
22
- return [selectStyles, css`
23
- :host {
24
- align-items: center;
25
- display: flex;
26
- justify-content: center;
27
- white-space: nowrap;
28
- }
11
+ static properties = {
12
+ maxPageNumber: { type: Number, attribute: 'max-page-number', reflect: true },
13
+ pageNumber: { type: Number, attribute: 'page-number', reflect: true },
14
+ pageSize : { type: Number, attribute: 'page-size', reflect: true },
15
+ pageSizes : { type: Array, attribute: 'page-sizes' },
16
+ showPageSizeSelector : { type: Boolean, attribute: 'show-page-size-selector', reflect: true }
17
+ };
18
+
19
+ static styles = [selectStyles, css`
20
+ :host {
21
+ align-items: center;
22
+ display: flex;
23
+ justify-content: center;
24
+ white-space: nowrap;
25
+ }
29
26
 
30
- .d2l-page-selector-container {
31
- margin: 0.75rem;
32
- }
27
+ .d2l-page-selector-container {
28
+ margin: 0.75rem;
29
+ }
33
30
 
34
- .d2l-page-number-container {
35
- direction: ltr;
36
- display: inline-block;
37
- }
31
+ .d2l-page-number-container {
32
+ direction: ltr;
33
+ display: inline-block;
34
+ }
38
35
 
39
- d2l-input-number {
40
- margin-left: 0.25rem;
41
- margin-right: 0.25rem;
42
- width: 3.8rem;
43
- }
36
+ d2l-input-number {
37
+ margin-left: 0.25rem;
38
+ margin-right: 0.25rem;
39
+ width: 3.8rem;
40
+ }
44
41
 
45
- .d2l-page-max-text {
46
- margin-right: 0.25rem;
47
- }
42
+ .d2l-page-max-text {
43
+ margin-right: 0.25rem;
44
+ }
48
45
 
49
- @media (max-width: 544px) {
50
- :host {
51
- flex-direction: column-reverse;
52
- }
46
+ @media (max-width: 544px) {
47
+ :host {
48
+ flex-direction: column-reverse;
53
49
  }
54
- `];
55
- }
50
+ }
51
+ `];
56
52
 
57
53
  constructor() {
58
54
  super();
@@ -3,90 +3,88 @@ import '@brightspace-ui/core/components/colors/colors.js';
3
3
  import { css, html, LitElement } from 'lit';
4
4
 
5
5
  class ViewToggle extends LitElement {
6
- static get properties() {
7
- return {
8
- text: {
9
- type: String
10
- },
11
- toggleOptions: {
12
- type: Array,
13
- attribute: 'toggle-options'
14
- },
15
- selectedOption: {
16
- type: String,
17
- attribute: 'selected-option'
18
- }
19
- };
20
- }
21
- static get styles() {
22
- return [
23
- css`
24
- button.d2l-labs-view-toggle-left {
25
- border-end-start-radius: 0.3rem;
26
- border-inline-end-color: transparent;
27
- border-inline-start-color: var(--d2l-color-mica);
28
- border-start-start-radius: 0.3rem;
29
- }
30
- button.d2l-labs-view-toggle-right {
31
- border-end-end-radius: 0.3rem;
32
- border-inline-end-color: var(--d2l-color-mica);
33
- border-inline-start-color: transparent;
34
- border-start-end-radius: 0.3rem;
35
- }
36
- button {
37
- background-color: var(--d2l-color-sylvite);
38
- border-color: var(--d2l-color-mica);
39
- border-style: solid;
40
- border-width: 1px;
41
- box-sizing: border-box;
42
- color: var(--d2l-color-ferrite);
43
- cursor: pointer;
44
- display: inline;
45
- flex: 0 1;
46
- font-family: inherit;
47
- font-size: 0.7rem;
48
- font-weight: 700;
49
- margin: 0;
50
- min-height: calc(2rem + 2px);
51
- outline: none;
52
- padding: 0.5rem 1.5rem;
53
- text-align: center;
54
- transition: box-shadow 0.2s;
55
- -webkit-user-select: none;
56
- -moz-user-select: none;
57
- -ms-user-select: none;
58
- user-select: none;
59
- vertical-align: middle;
60
- white-space: nowrap;
61
- }
62
- button:hover, button:focus {
63
- border: 1px solid var(--d2l-color-celestine) !important;
64
- }
65
- button[aria-pressed="true"] {
66
- background-color: var(--d2l-color-tungsten);
67
- border-color: var(--d2l-color-tungsten);
68
- color: var(--d2l-color-regolith);
69
- }
70
- button[aria-pressed="true"]:hover, button[aria-pressed="true"]:focus {
71
- box-shadow: inset 0 0 0 2px #ffffff;
72
- }
73
6
 
74
- span {
75
- margin-inline-end: 6px;
76
- }
7
+ static properties = {
8
+ text: {
9
+ type: String
10
+ },
11
+ toggleOptions: {
12
+ type: Array,
13
+ attribute: 'toggle-options'
14
+ },
15
+ selectedOption: {
16
+ type: String,
17
+ attribute: 'selected-option'
18
+ }
19
+ };
77
20
 
78
- :host {
79
- display: block;
80
- width: auto;
81
- }
21
+ static styles = [
22
+ css`
23
+ button.d2l-labs-view-toggle-left {
24
+ border-end-start-radius: 0.3rem;
25
+ border-inline-end-color: transparent;
26
+ border-inline-start-color: var(--d2l-color-mica);
27
+ border-start-start-radius: 0.3rem;
28
+ }
29
+ button.d2l-labs-view-toggle-right {
30
+ border-end-end-radius: 0.3rem;
31
+ border-inline-end-color: var(--d2l-color-mica);
32
+ border-inline-start-color: transparent;
33
+ border-start-end-radius: 0.3rem;
34
+ }
35
+ button {
36
+ background-color: var(--d2l-color-sylvite);
37
+ border-color: var(--d2l-color-mica);
38
+ border-style: solid;
39
+ border-width: 1px;
40
+ box-sizing: border-box;
41
+ color: var(--d2l-color-ferrite);
42
+ cursor: pointer;
43
+ display: inline;
44
+ flex: 0 1;
45
+ font-family: inherit;
46
+ font-size: 0.7rem;
47
+ font-weight: 700;
48
+ margin: 0;
49
+ min-height: calc(2rem + 2px);
50
+ outline: none;
51
+ padding: 0.5rem 1.5rem;
52
+ text-align: center;
53
+ transition: box-shadow 0.2s;
54
+ -webkit-user-select: none;
55
+ -moz-user-select: none;
56
+ -ms-user-select: none;
57
+ user-select: none;
58
+ vertical-align: middle;
59
+ white-space: nowrap;
60
+ }
61
+ button:hover, button:focus {
62
+ border: 1px solid var(--d2l-color-celestine) !important;
63
+ }
64
+ button[aria-pressed="true"] {
65
+ background-color: var(--d2l-color-tungsten);
66
+ border-color: var(--d2l-color-tungsten);
67
+ color: var(--d2l-color-regolith);
68
+ }
69
+ button[aria-pressed="true"]:hover, button[aria-pressed="true"]:focus {
70
+ box-shadow: inset 0 0 0 2px #ffffff;
71
+ }
82
72
 
83
- .view-toggle-container {
84
- align-items: center;
85
- display: flex;
86
- flex-wrap: nowrap;
87
- }`
88
- ];
89
- }
73
+ span {
74
+ margin-inline-end: 6px;
75
+ }
76
+
77
+ :host {
78
+ display: block;
79
+ width: auto;
80
+ }
81
+
82
+ .view-toggle-container {
83
+ align-items: center;
84
+ display: flex;
85
+ flex-wrap: nowrap;
86
+ }`
87
+ ];
90
88
 
91
89
  render() {
92
90
  return html`
@@ -4,117 +4,113 @@ import { LocalizeLabsElement } from '../localize-labs-element.js';
4
4
 
5
5
  class D2LSingleStepHeader extends LocalizeLabsElement(LitElement) {
6
6
 
7
- static get properties() {
8
- return {
9
- stepTitle: {
10
- type: String,
11
- attribute: 'step-title'
12
- },
13
- totalSteps: {
14
- type: Number,
15
- attribute: 'total-steps'
16
- },
17
- currentStep: {
18
- type: Number,
19
- attribute: 'current-step'
20
- },
21
- selectedStep: {
22
- type: Number,
23
- attribute: 'selected-step'
24
- },
25
- fillHeaderWidth: {
26
- type: Boolean,
27
- attribute: 'fill-header-width',
28
- reflect: true
29
- }
30
- };
31
- }
7
+ static properties = {
8
+ stepTitle: {
9
+ type: String,
10
+ attribute: 'step-title'
11
+ },
12
+ totalSteps: {
13
+ type: Number,
14
+ attribute: 'total-steps'
15
+ },
16
+ currentStep: {
17
+ type: Number,
18
+ attribute: 'current-step'
19
+ },
20
+ selectedStep: {
21
+ type: Number,
22
+ attribute: 'selected-step'
23
+ },
24
+ fillHeaderWidth: {
25
+ type: Boolean,
26
+ attribute: 'fill-header-width',
27
+ reflect: true
28
+ }
29
+ };
30
+
31
+ static styles = [bodySmallStyles, css`
32
+ .d2l-labs-single-step-header-circle {
33
+ border: 2px solid;
34
+ border-radius: 50%;
35
+ height: 26px;
36
+ width: 26px;
37
+ }
32
38
 
33
- static get styles() {
34
- return [bodySmallStyles, css`
35
- .d2l-labs-single-step-header-circle {
36
- border: 2px solid;
37
- border-radius: 50%;
38
- height: 26px;
39
- width: 26px;
40
- }
41
-
42
- .d2l-labs-single-step-header-inner-progress-circle {
43
- background-color: var(--d2l-color-celestine);
44
- border-radius: 50%;
45
- height: 22px;
46
- margin: 2px;
47
- width: 22px;
48
- }
49
-
50
- .d2l-labs-single-step-header-step {
51
- display: inline-block;
52
- text-align: center;
53
- }
54
-
55
- hr {
56
- height: 4px;
57
- margin: auto;
58
- width: 60px;
59
- }
60
-
61
- .d2l-labs-single-step-header-step-header {
62
- display: flex;
63
- }
64
-
65
- .d2l-labs-single-step-header-step-title {
66
- background: none !important;
67
- border: none !important;
68
- color: var(--d2l-color-ferrite);
69
- margin: auto;
70
- max-width: 120px;
71
- overflow-wrap: break-word;
72
- }
73
-
74
- :host([fill-header-width]) .d2l-labs-single-step-header-step-title {
75
- max-width: 150px;
76
- }
77
-
78
- .d2l-labs-single-step-header-done-icon {
79
- color: var(--d2l-color-olivine);
80
- height: 20px;
81
- padding: 2px;
82
- width: 20px;
83
- }
84
-
85
- .d2l-labs-single-step-header-done {
86
- border-color: var(--d2l-color-olivine);
87
- color: var(--d2l-color-olivine);
88
- }
89
-
90
- .d2l-labs-single-step-header-done hr,
91
- .d2l-labs-single-step-header-in-progress hr:first-child {
92
- background: var(--d2l-color-olivine);
93
- border: var(--d2l-color-olivine);
94
- }
95
-
96
- .d2l-labs-single-step-header-in-progress {
97
- border-color: var(--d2l-color-celestine);
98
- color: var(--d2l-color-celestine);
99
- }
100
-
101
- .d2l-labs-single-step-header-not-started .d2l-labs-single-step-header-circle {
102
- background-color: var(--d2l-color-mica);
103
- border-color: var(--d2l-color-mica);
104
- }
105
-
106
- .d2l-labs-single-step-header-in-progress hr:last-child,
107
- .d2l-labs-single-step-header-not-started hr {
108
- background: var(--d2l-color-mica);
109
- border: var(--d2l-color-mica);
110
- }
111
-
112
- .d2l-labs-single-step-header-first hr:first-child,
113
- .d2l-labs-single-step-header-last hr:last-child {
114
- visibility: hidden;
115
- }
116
- `];
117
- }
39
+ .d2l-labs-single-step-header-inner-progress-circle {
40
+ background-color: var(--d2l-color-celestine);
41
+ border-radius: 50%;
42
+ height: 22px;
43
+ margin: 2px;
44
+ width: 22px;
45
+ }
46
+
47
+ .d2l-labs-single-step-header-step {
48
+ display: inline-block;
49
+ text-align: center;
50
+ }
51
+
52
+ hr {
53
+ height: 4px;
54
+ margin: auto;
55
+ width: 60px;
56
+ }
57
+
58
+ .d2l-labs-single-step-header-step-header {
59
+ display: flex;
60
+ }
61
+
62
+ .d2l-labs-single-step-header-step-title {
63
+ background: none !important;
64
+ border: none !important;
65
+ color: var(--d2l-color-ferrite);
66
+ margin: auto;
67
+ max-width: 120px;
68
+ overflow-wrap: break-word;
69
+ }
70
+
71
+ :host([fill-header-width]) .d2l-labs-single-step-header-step-title {
72
+ max-width: 150px;
73
+ }
74
+
75
+ .d2l-labs-single-step-header-done-icon {
76
+ color: var(--d2l-color-olivine);
77
+ height: 20px;
78
+ padding: 2px;
79
+ width: 20px;
80
+ }
81
+
82
+ .d2l-labs-single-step-header-done {
83
+ border-color: var(--d2l-color-olivine);
84
+ color: var(--d2l-color-olivine);
85
+ }
86
+
87
+ .d2l-labs-single-step-header-done hr,
88
+ .d2l-labs-single-step-header-in-progress hr:first-child {
89
+ background: var(--d2l-color-olivine);
90
+ border: var(--d2l-color-olivine);
91
+ }
92
+
93
+ .d2l-labs-single-step-header-in-progress {
94
+ border-color: var(--d2l-color-celestine);
95
+ color: var(--d2l-color-celestine);
96
+ }
97
+
98
+ .d2l-labs-single-step-header-not-started .d2l-labs-single-step-header-circle {
99
+ background-color: var(--d2l-color-mica);
100
+ border-color: var(--d2l-color-mica);
101
+ }
102
+
103
+ .d2l-labs-single-step-header-in-progress hr:last-child,
104
+ .d2l-labs-single-step-header-not-started hr {
105
+ background: var(--d2l-color-mica);
106
+ border: var(--d2l-color-mica);
107
+ }
108
+
109
+ .d2l-labs-single-step-header-first hr:first-child,
110
+ .d2l-labs-single-step-header-last hr:last-child {
111
+ visibility: hidden;
112
+ }
113
+ `];
118
114
 
119
115
  constructor() {
120
116
  super();
@@ -4,76 +4,73 @@ import { LocalizeLabsElement } from '../localize-labs-element.js';
4
4
  import { offscreenStyles } from '@brightspace-ui/core/components/offscreen/offscreen.js';
5
5
 
6
6
  class D2LStep extends LocalizeLabsElement(LitElement) {
7
- static get properties() {
8
- return {
9
- nextButtonTitle: {
10
- type: String,
11
- attribute: 'next-button-title'
12
- },
13
- nextButtonTooltip: {
14
- type: String,
15
- attribute: 'next-button-tooltip'
16
- },
17
- restartButtonTitle: {
18
- type: String,
19
- attribute: 'restart-button-title'
20
- },
21
- restartButtonTooltip: {
22
- type: String,
23
- attribute: 'restart-button-tooltip'
24
- },
25
- hideRestartButton: {
26
- type: Boolean,
27
- attribute: 'hide-restart-button'
28
- },
29
- hideNextButton: {
30
- type: Boolean,
31
- attribute: 'hide-next-button'
32
- },
33
- disableNextButton: {
34
- type: Boolean,
35
- attribute: 'disable-next-button'
36
- },
37
- nextButtonAriaLabel: {
38
- type: String,
39
- attribute: 'next-button-aria-label'
40
- },
41
- restartButtonAriaLabel: {
42
- type: String,
43
- attribute: 'restart-button-aria-label'
44
- },
45
- ariaTitle: {
46
- type: String,
47
- attribute: 'aria-title'
48
- },
49
- stepTitle: {
50
- type: String,
51
- attribute: 'step-title'
52
- },
53
- stepCount: {
54
- type: Number,
55
- attribute: 'step-count'
56
- },
57
- thisStep: {
58
- type: Number,
59
- attribute: 'this-step'
60
- }
61
- };
62
- }
63
7
 
64
- static get styles() {
65
- return [offscreenStyles, css`
66
- .d2l-labs-wizard-step-footer {
67
- display: flex;
68
- justify-content: space-between;
69
- width: 100%;
70
- }
8
+ static properties = {
9
+ nextButtonTitle: {
10
+ type: String,
11
+ attribute: 'next-button-title'
12
+ },
13
+ nextButtonTooltip: {
14
+ type: String,
15
+ attribute: 'next-button-tooltip'
16
+ },
17
+ restartButtonTitle: {
18
+ type: String,
19
+ attribute: 'restart-button-title'
20
+ },
21
+ restartButtonTooltip: {
22
+ type: String,
23
+ attribute: 'restart-button-tooltip'
24
+ },
25
+ hideRestartButton: {
26
+ type: Boolean,
27
+ attribute: 'hide-restart-button'
28
+ },
29
+ hideNextButton: {
30
+ type: Boolean,
31
+ attribute: 'hide-next-button'
32
+ },
33
+ disableNextButton: {
34
+ type: Boolean,
35
+ attribute: 'disable-next-button'
36
+ },
37
+ nextButtonAriaLabel: {
38
+ type: String,
39
+ attribute: 'next-button-aria-label'
40
+ },
41
+ restartButtonAriaLabel: {
42
+ type: String,
43
+ attribute: 'restart-button-aria-label'
44
+ },
45
+ ariaTitle: {
46
+ type: String,
47
+ attribute: 'aria-title'
48
+ },
49
+ stepTitle: {
50
+ type: String,
51
+ attribute: 'step-title'
52
+ },
53
+ stepCount: {
54
+ type: Number,
55
+ attribute: 'step-count'
56
+ },
57
+ thisStep: {
58
+ type: Number,
59
+ attribute: 'this-step'
60
+ }
61
+ };
71
62
 
72
- .d2l-labs-wizard-step-button-next {
73
- float: right;
74
- }
75
- `];
76
- }
63
+ static styles = [offscreenStyles, css`
64
+ .d2l-labs-wizard-step-footer {
65
+ display: flex;
66
+ justify-content: space-between;
67
+ width: 100%;
68
+ }
69
+
70
+ .d2l-labs-wizard-step-button-next {
71
+ float: right;
72
+ }
73
+ `];
77
74
 
78
75
  constructor() {
79
76
  super();
@@ -2,40 +2,37 @@ import './single-step-header.js';
2
2
  import { css, html, LitElement } from 'lit';
3
3
 
4
4
  class D2LWizard extends LitElement {
5
- static get properties() {
6
- return {
7
- stepTitles: {
8
- type: Array,
9
- attribute: 'step-titles'
10
- },
11
- stepCount: {
12
- type: Number,
13
- attribute: 'step-count'
14
- },
15
- selectedStep: {
16
- type: Number,
17
- attribute: 'selected-step'
18
- },
19
- fillHeaderWidth: {
20
- type: Boolean,
21
- attribute: 'fill-header-width',
22
- reflect: true
23
- }
24
- };
25
- }
26
5
 
27
- static get styles() {
28
- return css`
29
- .d2l-labs-wizard-header {
30
- display: flex;
31
- flex: 1;
32
- justify-content: center;
33
- margin: 30px 0;
34
- overflow-x: auto;
35
- width: 100%;
36
- }
37
- `;
38
- }
6
+ static properties = {
7
+ stepTitles: {
8
+ type: Array,
9
+ attribute: 'step-titles'
10
+ },
11
+ stepCount: {
12
+ type: Number,
13
+ attribute: 'step-count'
14
+ },
15
+ selectedStep: {
16
+ type: Number,
17
+ attribute: 'selected-step'
18
+ },
19
+ fillHeaderWidth: {
20
+ type: Boolean,
21
+ attribute: 'fill-header-width',
22
+ reflect: true
23
+ }
24
+ };
25
+
26
+ static styles = css`
27
+ .d2l-labs-wizard-header {
28
+ display: flex;
29
+ flex: 1;
30
+ justify-content: center;
31
+ margin: 30px 0;
32
+ overflow-x: auto;
33
+ width: 100%;
34
+ }
35
+ `;
39
36
 
40
37
  constructor() {
41
38
  super();