@ordergroove/offers 2.48.1 → 2.48.2-alpha-PR-1444-4.311
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-report.html +11 -11
- package/dist/examples.js +18 -20
- package/dist/examples.js.map +3 -3
- package/dist/offers.js +37 -37
- package/dist/offers.js.map +4 -4
- package/package.json +2 -2
- package/src/components/OptinSelect.js +4 -1
- package/src/components/PrepaidSelect.js +4 -1
- package/src/components/Select.js +5 -1
- package/src/components/SelectFrequency.js +1 -1
- package/src/components/__tests__/SelectFrequency.spec.js +10 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ordergroove/offers",
|
|
3
|
-
"version": "2.48.
|
|
3
|
+
"version": "2.48.2-alpha-PR-1444-4.311+6528227b5",
|
|
4
4
|
"description": "offer state component",
|
|
5
5
|
"author": "Eugenio Lattanzio <eugenio63@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/ordergroove/plush-toys#readme",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"@ordergroove/offers-templates": "^0.10.0",
|
|
50
50
|
"@types/lodash.memoize": "^4.1.9"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "6528227b585c07ce5c9d553e51a7c17ad08f7b95"
|
|
53
53
|
}
|
|
@@ -13,7 +13,9 @@ export class OptinSelect extends withChildOptions(OptinStatus) {
|
|
|
13
13
|
...super.properties,
|
|
14
14
|
frequencies: { type: Array, attribute: false },
|
|
15
15
|
frequency: { type: String },
|
|
16
|
-
defaultFrequency
|
|
16
|
+
defaultFrequency,
|
|
17
|
+
/* The label used for the underlying select. */
|
|
18
|
+
selectLabel: { type: String, attribute: 'select-label' }
|
|
17
19
|
};
|
|
18
20
|
}
|
|
19
21
|
|
|
@@ -69,6 +71,7 @@ export class OptinSelect extends withChildOptions(OptinStatus) {
|
|
|
69
71
|
.options="${options}"
|
|
70
72
|
.selected="${this.currentFrequency}"
|
|
71
73
|
.onChange="${({ target: { value } }) => this.onOptinChange(value)}"
|
|
74
|
+
.ariaLabel="${this.selectLabel}"
|
|
72
75
|
></og-select>
|
|
73
76
|
`;
|
|
74
77
|
}
|
|
@@ -18,7 +18,9 @@ export class PrepaidSelect extends PrepaidStatus {
|
|
|
18
18
|
static get properties() {
|
|
19
19
|
return {
|
|
20
20
|
...super.properties,
|
|
21
|
-
text: { type: String }
|
|
21
|
+
text: { type: String },
|
|
22
|
+
/* The label used for the underlying select. */
|
|
23
|
+
selectLabel: { type: String, attribute: 'select-label' }
|
|
22
24
|
};
|
|
23
25
|
}
|
|
24
26
|
|
|
@@ -53,6 +55,7 @@ export class PrepaidSelect extends PrepaidStatus {
|
|
|
53
55
|
.options=${displayOptions}
|
|
54
56
|
.selected=${this.selectedNumberOfShipments}
|
|
55
57
|
.onChange="${e => this.handleSelect(e)}"
|
|
58
|
+
.ariaLabel="${this.selectLabel}"
|
|
56
59
|
></og-select>
|
|
57
60
|
`
|
|
58
61
|
: html`
|
package/src/components/Select.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LitElement, css, html } from 'lit-element';
|
|
2
|
+
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
2
3
|
|
|
3
4
|
export class Select extends LitElement {
|
|
4
5
|
static get styles() {
|
|
@@ -61,6 +62,9 @@ export class Select extends LitElement {
|
|
|
61
62
|
return {
|
|
62
63
|
options: { type: Array },
|
|
63
64
|
selected: { type: String },
|
|
65
|
+
// we intentionally don't convert from the "aria-label" attribute here
|
|
66
|
+
// since if we set that on the element, we are also assigning a label to the wraper <og-select> element which can cause screen readers to read out the same text twice
|
|
67
|
+
// https://github.com/WICG/webcomponents/issues/1073
|
|
64
68
|
ariaLabel: { type: String }
|
|
65
69
|
};
|
|
66
70
|
}
|
|
@@ -68,7 +72,7 @@ export class Select extends LitElement {
|
|
|
68
72
|
render() {
|
|
69
73
|
const handleOnChange = ev => this.onChange(ev);
|
|
70
74
|
return html`
|
|
71
|
-
<select @change="${handleOnChange}" aria-label="${this.ariaLabel}">
|
|
75
|
+
<select @change="${handleOnChange}" aria-label="${ifDefined(this.ariaLabel)}">
|
|
72
76
|
${this.options.map(
|
|
73
77
|
option => html`
|
|
74
78
|
<option
|
|
@@ -127,7 +127,7 @@ export class SelectFrequency extends withChildOptions(FrequencyStatus) {
|
|
|
127
127
|
|
|
128
128
|
return html`
|
|
129
129
|
<og-select
|
|
130
|
-
ariaLabel="Delivery frequency"
|
|
130
|
+
.ariaLabel="${'Delivery frequency'}"
|
|
131
131
|
.options="${options}"
|
|
132
132
|
.selected="${this.currentFrequency}"
|
|
133
133
|
.onChange="${({ target: { value } }) => {
|
|
@@ -138,6 +138,16 @@ describe('SelectFrequency', () => {
|
|
|
138
138
|
expect(element.currentFrequency).toBe('yum first frequency');
|
|
139
139
|
});
|
|
140
140
|
|
|
141
|
+
it('should set aria-label on the underlying select element', async () => {
|
|
142
|
+
const element = document.createElement(TAG_NAME_UNDER_TEST);
|
|
143
|
+
element.innerHTML = `<option value="2w">2 weeks</option>`;
|
|
144
|
+
document.body.appendChild(element);
|
|
145
|
+
await element.updateComplete;
|
|
146
|
+
await element.shadowRoot.querySelector('og-select').updateComplete;
|
|
147
|
+
const select = element.shadowRoot.querySelector('og-select').shadowRoot.querySelector('select');
|
|
148
|
+
expect(select.getAttribute('aria-label')).toEqual('Delivery frequency');
|
|
149
|
+
});
|
|
150
|
+
|
|
141
151
|
it('should return set default frequency given no options', () => {
|
|
142
152
|
const selectFrequency = new SelectFrequency();
|
|
143
153
|
selectFrequency.defaultFrequency = 'yum set defaault frequency';
|