Motorcycle design varies greatly to suit a range of different purposes: long distance
travel, commuting, cruising, sport including racing, and off-road riding. Motorcycling is
@@ -186,9 +176,7 @@ export const customAnimation = () => html`
A car (or automobile) is a wheeled motor vehicle used for transportation.
-
- MORE ABOUT CARS
-
+ MORE ABOUT CARS
Most definitions of cars say that they run primarily on roads, seat one to eight people,
have four tires, and mainly transport people rather than goods.
diff --git a/packages/core/docs/guidelines/30-guidelines-scoped-elements.md b/packages/core/docs/guidelines/30-guidelines-scoped-elements.md
index 031361727..42a893ed1 100644
--- a/packages/core/docs/guidelines/30-guidelines-scoped-elements.md
+++ b/packages/core/docs/guidelines/30-guidelines-scoped-elements.md
@@ -40,7 +40,9 @@ Since Scoped Elements changes tagnames under the hood, a tagname querySelector s
like this:
```js
-this.querySelector(this.constructor.getScopedTagName('lion-input', this.constructor.scopedElements));
+this.querySelector(
+ this.constructor.getScopedTagName('lion-input', this.constructor.scopedElements),
+);
```
## CSS selectors
diff --git a/packages/core/package.json b/packages/core/package.json
index 4e9b21418..1449b46f0 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -30,7 +30,7 @@
"sideEffects": false,
"dependencies": {
"@open-wc/dedupe-mixin": "^1.2.18",
- "@open-wc/scoped-elements": "^1.0.3",
+ "@open-wc/scoped-elements": "^1.2.2",
"lit-element": "~2.4.0",
"lit-html": "^1.3.0"
},
diff --git a/packages/core/src/DelegateMixin.js b/packages/core/src/DelegateMixin.js
index 591a29bb5..cbe124d5f 100644
--- a/packages/core/src/DelegateMixin.js
+++ b/packages/core/src/DelegateMixin.js
@@ -18,7 +18,7 @@ import { dedupeMixin } from '@open-wc/dedupe-mixin';
*/
const DelegateMixinImplementation = superclass =>
// eslint-disable-next-line
- class DelegateMixin extends superclass {
+ class extends superclass {
constructor() {
super();
diff --git a/packages/core/src/DisabledMixin.js b/packages/core/src/DisabledMixin.js
index 05a5dab9b..5511fac19 100644
--- a/packages/core/src/DisabledMixin.js
+++ b/packages/core/src/DisabledMixin.js
@@ -10,7 +10,7 @@ import { dedupeMixin } from '@open-wc/dedupe-mixin';
*/
const DisabledMixinImplementation = superclass =>
// eslint-disable-next-line no-shadow
- class DisabledMixinHost extends superclass {
+ class extends superclass {
static get properties() {
return {
disabled: {
diff --git a/packages/core/src/DisabledWithTabIndexMixin.js b/packages/core/src/DisabledWithTabIndexMixin.js
index ca91a539c..06fc249d3 100644
--- a/packages/core/src/DisabledWithTabIndexMixin.js
+++ b/packages/core/src/DisabledWithTabIndexMixin.js
@@ -11,7 +11,7 @@ import { DisabledMixin } from './DisabledMixin.js';
*/
const DisabledWithTabIndexMixinImplementation = superclass =>
// eslint-disable-next-line no-shadow
- class DisabledWithTabIndexMixinHost extends DisabledMixin(superclass) {
+ class extends DisabledMixin(superclass) {
static get properties() {
return {
// we use a property here as if we use the native tabIndex we can not set a default value
diff --git a/packages/core/src/SlotMixin.js b/packages/core/src/SlotMixin.js
index 7f3dcfbc3..d537b310e 100644
--- a/packages/core/src/SlotMixin.js
+++ b/packages/core/src/SlotMixin.js
@@ -12,7 +12,7 @@ import { dedupeMixin } from '@open-wc/dedupe-mixin';
*/
const SlotMixinImplementation = superclass =>
// eslint-disable-next-line no-unused-vars, no-shadow
- class SlotMixinHost extends superclass {
+ class extends superclass {
/**
* @return {SlotsMap}
*/
diff --git a/packages/core/src/UpdateStylesMixin.js b/packages/core/src/UpdateStylesMixin.js
index dc44f7d2b..9b3634ecf 100644
--- a/packages/core/src/UpdateStylesMixin.js
+++ b/packages/core/src/UpdateStylesMixin.js
@@ -12,7 +12,7 @@ import { dedupeMixin } from '@open-wc/dedupe-mixin';
*/
const UpdateStylesMixinImplementation = superclass =>
// eslint-disable-next-line no-shadow
- class UpdateStylesMixinHost extends superclass {
+ class extends superclass {
/**
* @example
*
diff --git a/packages/core/types/DelegateMixinTypes.d.ts b/packages/core/types/DelegateMixinTypes.d.ts
index 3a7e7ad7a..01422a6ca 100644
--- a/packages/core/types/DelegateMixinTypes.d.ts
+++ b/packages/core/types/DelegateMixinTypes.d.ts
@@ -9,7 +9,7 @@ export type Delegations = {
attributes: string[];
};
-export declare class DelegateMixinHost {
+export declare class DelegateHost {
delegations: Delegations;
protected _connectDelegateMixin(): void;
@@ -50,6 +50,6 @@ export declare class DelegateMixinHost {
*/
declare function DelegateMixinImplementation>(
superclass: T,
-): T & Constructor;
+): T & Constructor;
export type DelegateMixin = typeof DelegateMixinImplementation;
diff --git a/packages/core/types/DisabledMixinTypes.d.ts b/packages/core/types/DisabledMixinTypes.d.ts
index 520ab57ea..a88aeeddb 100644
--- a/packages/core/types/DisabledMixinTypes.d.ts
+++ b/packages/core/types/DisabledMixinTypes.d.ts
@@ -1,13 +1,7 @@
import { Constructor } from '@open-wc/dedupe-mixin';
import { LitElement } from 'lit-element';
-export declare class DisabledMixinHost {
- static get properties(): {
- disabled: {
- type: BooleanConstructor;
- reflect: boolean;
- };
- };
+export declare class DisabledHost {
disabled: boolean;
/**
@@ -26,6 +20,6 @@ export declare class DisabledMixinHost {
export declare function DisabledMixinImplementation>(
superclass: T,
-): T & Constructor;
+): T & Constructor;
export type DisabledMixin = typeof DisabledMixinImplementation;
diff --git a/packages/core/types/DisabledWithTabIndexMixinTypes.d.ts b/packages/core/types/DisabledWithTabIndexMixinTypes.d.ts
index 0e3083409..d7a40eb84 100644
--- a/packages/core/types/DisabledWithTabIndexMixinTypes.d.ts
+++ b/packages/core/types/DisabledWithTabIndexMixinTypes.d.ts
@@ -1,14 +1,7 @@
import { Constructor } from '@open-wc/dedupe-mixin';
-import { DisabledMixinHost } from './DisabledMixinTypes';
+import { DisabledHost } from './DisabledMixinTypes';
import { LitElement } from 'lit-element';
-export declare class DisabledWithTabIndexMixinHost {
- static get properties(): {
- tabIndex: {
- type: NumberConstructor;
- reflect: boolean;
- attribute: string;
- };
- };
+export declare class DisabledWithTabIndexHost {
tabIndex: number;
/**
* Makes request to make the element disabled and set the tabindex
@@ -27,6 +20,6 @@ export declare class DisabledWithTabIndexMixinHost {
export declare function DisabledWithTabIndexMixinImplementation>(
superclass: T,
-): T & Constructor & Constructor;
+): T & Constructor & Constructor;
export type DisabledWithTabIndexMixin = typeof DisabledWithTabIndexMixinImplementation;
diff --git a/packages/core/types/SlotMixinTypes.d.ts b/packages/core/types/SlotMixinTypes.d.ts
index 67e1c5844..9bca61a6a 100644
--- a/packages/core/types/SlotMixinTypes.d.ts
+++ b/packages/core/types/SlotMixinTypes.d.ts
@@ -6,7 +6,7 @@ export type SlotsMap = {
[key: string]: typeof slotFunction;
};
-export declare class SlotMixinHost {
+export declare class SlotHost {
/**
* Obtains all the slots to create
*/
@@ -50,6 +50,6 @@ export declare class SlotMixinHost {
*/
export declare function SlotMixinImplementation>(
superclass: T,
-): T & Constructor;
+): T & Constructor;
export type SlotMixin = typeof SlotMixinImplementation;
diff --git a/packages/core/types/UpdateStylesMixinTypes.d.ts b/packages/core/types/UpdateStylesMixinTypes.d.ts
index a0d931c3c..fed904166 100644
--- a/packages/core/types/UpdateStylesMixinTypes.d.ts
+++ b/packages/core/types/UpdateStylesMixinTypes.d.ts
@@ -3,7 +3,7 @@ import { Constructor } from '@open-wc/dedupe-mixin';
export type StylesMap = {
[key: string]: string;
};
-export declare class UpdateStylesMixinHost {
+export declare class UpdateStylesHost {
/**
* @example
*
@@ -29,6 +29,6 @@ export declare class UpdateStylesMixinHost {
*/
declare function UpdateStylesMixinImplementation>(
superclass: T,
-): T & Constructor;
+): T & Constructor;
export type UpdateStylesMixin = typeof UpdateStylesMixinImplementation;
diff --git a/packages/dialog/test/lion-dialog.test.js b/packages/dialog/test/lion-dialog.test.js
index bda0d4d66..dabb9c95d 100644
--- a/packages/dialog/test/lion-dialog.test.js
+++ b/packages/dialog/test/lion-dialog.test.js
@@ -27,9 +27,7 @@ describe('lion-dialog', () => {
it('should show content on invoker click', async () => {
const el = await fixture(html`
-
- Hey there
-
+ Hey there
Popup button
`);
@@ -45,9 +43,7 @@ describe('lion-dialog', () => {
open nested overlay:
-
- Nested content
-
+ Nested content
nested invoker button
diff --git a/packages/fieldset/test/lion-fieldset.test.js b/packages/fieldset/test/lion-fieldset.test.js
index 24fb8f9c7..f40f86092 100644
--- a/packages/fieldset/test/lion-fieldset.test.js
+++ b/packages/fieldset/test/lion-fieldset.test.js
@@ -1,1198 +1,4 @@
-import { LionField, IsNumber, Validator } from '@lion/form-core';
-import '@lion/form-core/lion-field.js';
-import { localizeTearDown } from '@lion/localize/test-helpers.js';
-import {
- defineCE,
- expect,
- html,
- triggerFocusFor,
- unsafeStatic,
- fixture,
- aTimeout,
-} from '@open-wc/testing';
-import sinon from 'sinon';
+import { runFormGroupMixinSuite } from '@lion/form-core/test-suites/form-group/FormGroupMixin.suite.js';
import '../lion-fieldset.js';
-const childTagString = defineCE(
- class extends LionField {
- get slots() {
- return {
- input: () => document.createElement('input'),
- };
- }
- },
-);
-
-const tagString = 'lion-fieldset';
-const tag = unsafeStatic(tagString);
-const childTag = unsafeStatic(childTagString);
-const inputSlots = html`
- <${childTag} name="gender[]">${childTag}>
- <${childTag} name="gender[]">${childTag}>
- <${childTag} name="color">${childTag}>
- <${childTag} name="hobbies[]">${childTag}>
- <${childTag} name="hobbies[]">${childTag}>
-`;
-
-beforeEach(() => {
- localizeTearDown();
-});
-
-// TODO: seperate fieldset and FormGroup tests
-describe('', () => {
- // TODO: Tests below belong to FormControlMixin. Preferably run suite integration test
- it(`has a fieldName based on the label`, async () => {
- const el1 = await fixture(html`<${tag} label="foo">${inputSlots}${tag}>`);
- expect(el1.fieldName).to.equal(el1._labelNode.textContent);
-
- const el2 = await fixture(html`<${tag}>bar ${inputSlots}${tag}>`);
- expect(el2.fieldName).to.equal(el2._labelNode.textContent);
- });
-
- it(`has a fieldName based on the name if no label exists`, async () => {
- const el = await fixture(html`<${tag} name="foo">${inputSlots}${tag}>`);
- expect(el.fieldName).to.equal(el.name);
- });
-
- it(`can override fieldName`, async () => {
- const el = await fixture(html`
- <${tag} label="foo" .fieldName="${'bar'}">${inputSlots}${tag}>
- `);
- expect(el.__fieldName).to.equal(el.fieldName);
- });
-
- // TODO: Tests below belong to FormRegistrarMixin. Preferably run suite integration test
- it(`${tagString} has an up to date list of every form element in .formElements`, async () => {
- const el = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- expect(el.formElements._keys().length).to.equal(3);
- expect(el.formElements['hobbies[]'].length).to.equal(2);
- el.removeChild(el.formElements['hobbies[]'][0]);
- expect(el.formElements._keys().length).to.equal(3);
- expect(el.formElements['hobbies[]'].length).to.equal(1);
- });
-
- it(`supports in html wrapped form elements`, async () => {
- const el = await fixture(html`
- <${tag}>
-
- <${childTag} name="foo">${childTag}>
-
- ${tag}>
- `);
- expect(el.formElements.length).to.equal(1);
- el.children[0].removeChild(el.formElements.foo);
- expect(el.formElements.length).to.equal(0);
- });
-
- it('handles names with ending [] as an array', async () => {
- const el = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- el.formElements['gender[]'][0].modelValue = { value: 'male' };
- el.formElements['hobbies[]'][0].modelValue = { checked: false, value: 'chess' };
- el.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'rugby' };
-
- expect(el.formElements._keys().length).to.equal(3);
- expect(el.formElements['hobbies[]'].length).to.equal(2);
- expect(el.formElements['hobbies[]'][0].modelValue.value).to.equal('chess');
- expect(el.formElements['gender[]'][0].modelValue.value).to.equal('male');
- expect(el.modelValue['hobbies[]']).to.deep.equal([
- { checked: false, value: 'chess' },
- { checked: false, value: 'rugby' },
- ]);
- });
-
- it('throws if an element without a name tries to register', async () => {
- const orig = console.info;
- console.info = () => {};
-
- let error = false;
- const el = await fixture(html`<${tag}>${tag}>`);
- try {
- // we test the api directly as errors thrown from a web component are in a
- // different context and we can not catch them here => register fake elements
- el.addFormElement({});
- } catch (err) {
- error = err;
- }
- expect(error).to.be.instanceOf(TypeError);
- expect(error.message).to.equal('You need to define a name');
-
- console.info = orig; // restore original console
- });
-
- it('throws if name is the same as its parent', async () => {
- const orig = console.info;
- console.info = () => {};
-
- let error = false;
- const el = await fixture(html`<${tag} name="foo">${tag}>`);
- try {
- // we test the api directly as errors thrown from a web component are in a
- // different context and we can not catch them here => register fake elements
- el.addFormElement({ name: 'foo' });
- } catch (err) {
- error = err;
- }
- expect(error).to.be.instanceOf(TypeError);
- expect(error.message).to.equal('You can not have the same name "foo" as your parent');
-
- console.info = orig; // restore original console
- });
-
- it('throws if same name without ending [] is used', async () => {
- const orig = console.info;
- console.info = () => {};
-
- let error = false;
- const el = await fixture(html`<${tag}>${tag}>`);
- try {
- // we test the api directly as errors thrown from a web component are in a
- // different context and we can not catch them here => register fake elements
- el.addFormElement({ name: 'fooBar' });
- el.addFormElement({ name: 'fooBar' });
- } catch (err) {
- error = err;
- }
- expect(error).to.be.instanceOf(TypeError);
- expect(error.message).to.equal(
- 'Name "fooBar" is already registered - if you want an array add [] to the end',
- );
-
- console.info = orig; // restore original console
- });
- /* eslint-enable no-console */
-
- it('can dynamically add/remove elements', async () => {
- const el = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- const newField = await fixture(html`<${childTag} name="lastName">${childTag}>`);
-
- expect(el.formElements._keys().length).to.equal(3);
-
- el.appendChild(newField);
- expect(el.formElements._keys().length).to.equal(4);
-
- el._inputNode.removeChild(newField);
- expect(el.formElements._keys().length).to.equal(3);
- });
-
- // TODO: Tests below belong to FormGroupMixin. Preferably run suite integration test
-
- it('can read/write all values (of every input) via this.modelValue', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="lastName">${childTag}>
- <${tag} name="newfieldset">${inputSlots}${tag}>
- ${tag}>
- `);
- const newFieldset = el.querySelector('lion-fieldset');
- el.formElements.lastName.modelValue = 'Bar';
- newFieldset.formElements['hobbies[]'][0].modelValue = { checked: true, value: 'chess' };
- newFieldset.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'football' };
- newFieldset.formElements['gender[]'][0].modelValue = { checked: false, value: 'male' };
- newFieldset.formElements['gender[]'][1].modelValue = { checked: false, value: 'female' };
- newFieldset.formElements.color.modelValue = { checked: false, value: 'blue' };
-
- expect(el.modelValue).to.deep.equal({
- lastName: 'Bar',
- newfieldset: {
- 'hobbies[]': [
- { checked: true, value: 'chess' },
- { checked: false, value: 'football' },
- ],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- color: { checked: false, value: 'blue' },
- },
- });
-
- // make sure values are full settled before changing them
- await aTimeout();
- el.modelValue = {
- lastName: 2,
- newfieldset: {
- 'hobbies[]': [
- { checked: true, value: 'chess' },
- { checked: false, value: 'baseball' },
- ],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- color: { checked: false, value: 'blue' },
- },
- };
-
- expect(newFieldset.formElements['hobbies[]'][0].modelValue).to.deep.equal({
- checked: true,
- value: 'chess',
- });
- expect(newFieldset.formElements['hobbies[]'][1].modelValue).to.deep.equal({
- checked: false,
- value: 'baseball',
- });
- expect(el.formElements.lastName.modelValue).to.equal(2);
- });
-
- it('works with document.createElement', async () => {
- const el = document.createElement(tagString);
- const childEl = document.createElement(childTagString);
- childEl.name = 'planet';
- childEl.modelValue = 'earth';
- expect(el.formElements.length).to.equal(0);
-
- const wrapper = await fixture('
');
- el.appendChild(childEl);
- wrapper.appendChild(el);
-
- expect(el.formElements.length).to.equal(1);
-
- await el.registrationComplete;
- expect(el.modelValue).to.deep.equal({ planet: 'earth' });
- });
-
- it('does not list disabled values in this.modelValue', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="a" disabled .modelValue="${'x'}">${childTag}>
- <${childTag} name="b" .modelValue="${'x'}">${childTag}>
- <${tag} name="newFieldset">
- <${childTag} name="c" .modelValue="${'x'}">${childTag}>
- <${childTag} name="d" disabled .modelValue="${'x'}">${childTag}>
- ${tag}>
- <${tag} name="disabledFieldset" disabled>
- <${childTag} name="e" .modelValue="${'x'}">${childTag}>
- ${tag}>
- ${tag}>
- `);
- expect(el.modelValue).to.deep.equal({
- b: 'x',
- newFieldset: {
- c: 'x',
- },
- });
- });
-
- it('does not throw if setter data of this.modelValue can not be handled', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="firstName" .modelValue=${'foo'}>${childTag}>
- <${childTag} name="lastName" .modelValue=${'bar'}>${childTag}>
- ${tag}>
- `);
- const initState = {
- firstName: 'foo',
- lastName: 'bar',
- };
- expect(el.modelValue).to.deep.equal(initState);
-
- el.modelValue = undefined;
- expect(el.modelValue).to.deep.equal(initState);
-
- el.modelValue = null;
- expect(el.modelValue).to.deep.equal(initState);
- });
-
- it('disables/enables all its formElements if it becomes disabled/enabled', async () => {
- const el = await fixture(html`<${tag} disabled>${inputSlots}${tag}>`);
- expect(el.formElements.color.disabled).to.be.true;
- expect(el.formElements['hobbies[]'][0].disabled).to.be.true;
- expect(el.formElements['hobbies[]'][1].disabled).to.be.true;
-
- el.disabled = false;
- await el.updateComplete;
- expect(el.formElements.color.disabled).to.equal(false);
- expect(el.formElements['hobbies[]'][0].disabled).to.equal(false);
- expect(el.formElements['hobbies[]'][1].disabled).to.equal(false);
- });
-
- it('does not propagate/override initial disabled value on nested form elements', async () => {
- const el = await fixture(html`
- <${tag}>
- <${tag} name="sub" disabled>${inputSlots}${tag}>
- ${tag}>
- `);
-
- expect(el.disabled).to.equal(false);
- expect(el.formElements.sub.disabled).to.be.true;
- expect(el.formElements.sub.formElements.color.disabled).to.be.true;
- expect(el.formElements.sub.formElements['hobbies[]'][0].disabled).to.be.true;
- expect(el.formElements.sub.formElements['hobbies[]'][1].disabled).to.be.true;
- });
-
- it('can set initial modelValue on creation', async () => {
- const el = await fixture(html`
- <${tag} .modelValue=${{ lastName: 'Bar' }}>
- <${childTag} name="lastName">${childTag}>
- ${tag}>
- `);
-
- expect(el.modelValue).to.eql({
- lastName: 'Bar',
- });
- });
-
- it('can set initial serializedValue on creation', async () => {
- const el = await fixture(html`
- <${tag} .modelValue=${{ lastName: 'Bar' }}>
- <${childTag} name="lastName">${childTag}>
- ${tag}>
- `);
-
- expect(el.modelValue).to.eql({ lastName: 'Bar' });
- });
-
- it('does not fail when conditional (not rendered) formElements are populated', async () => {
- const showC = false;
- const el = await fixture(html`
- <${tag}>
- My Label
- <${childTag} name="a">${childTag}>
- <${childTag} name="b">${childTag}>
- ${showC ? html`<${childTag} name="c">${childTag}>` : ''}
- ${tag}>
- `);
- expect(el.formElements.a).to.be.not.undefined;
- expect(el.formElements.b).to.be.not.undefined;
- expect(el.formElements.c).to.be.undefined;
-
- let wasSuccessful = false;
- try {
- // c does not exist, because it is not render
- el.serializedValue = { a: 'x', b: 'y', c: 'z' };
- wasSuccessful = true;
- // eslint-disable-next-line no-empty
- } catch (_) {}
-
- expect(wasSuccessful).to.be.true;
- expect(el.formElements.a.serializedValue).to.equal('x');
- expect(el.formElements.b.serializedValue).to.equal('y');
- });
-
- describe('Validation', () => {
- it('validates on init', async () => {
- class IsCat extends Validator {
- static get validatorName() {
- return 'IsCat';
- }
-
- execute(value) {
- const hasError = value !== 'cat';
- return hasError;
- }
- }
-
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="color" .validators=${[
- new IsCat(),
- ]} .modelValue=${'blue'}>${childTag}>
- ${tag}>
- `);
- expect(el.formElements.color.validationStates.error.IsCat).to.be.true;
- });
-
- it('validates when a value changes', async () => {
- const el = await fixture(html`<${tag}>${inputSlots}${tag}>`);
-
- const spy = sinon.spy(el, 'validate');
- el.formElements.color.modelValue = { checked: true, value: 'red' };
- expect(spy.callCount).to.equal(1);
- });
-
- it('has a special validator for all children - can be checked via this.error.FormElementsHaveNoError', async () => {
- class IsCat extends Validator {
- static get validatorName() {
- return 'IsCat';
- }
-
- execute(value) {
- const hasError = value !== 'cat';
- return hasError;
- }
- }
-
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="color" .validators=${[
- new IsCat(),
- ]} .modelValue=${'blue'}>${childTag}>
- ${tag}>
- `);
-
- expect(el.validationStates.error.FormElementsHaveNoError).to.be.true;
- expect(el.formElements.color.validationStates.error.IsCat).to.be.true;
- el.formElements.color.modelValue = 'cat';
- expect(el.validationStates.error).to.deep.equal({});
- });
-
- it('validates on children (de)registration', async () => {
- class HasEvenNumberOfChildren extends Validator {
- static get validatorName() {
- return 'HasEvenNumberOfChildren';
- }
-
- execute(value) {
- const hasError = Object.keys(value).length % 2 !== 0;
- return hasError;
- }
- }
- const el = await fixture(html`
- <${tag} .validators=${[new HasEvenNumberOfChildren()]}>
- <${childTag} id="c1" name="c1">${childTag}>
- ${tag}>
- `);
- const child2 = await fixture(html`
- <${childTag} name="c2">${childTag}>
- `);
- expect(el.validationStates.error.HasEvenNumberOfChildren).to.be.true;
-
- el.appendChild(child2);
- expect(el.validationStates.error.HasEvenNumberOfChildren).to.equal(undefined);
-
- el.removeChild(child2);
- expect(el.validationStates.error.HasEvenNumberOfChildren).to.be.true;
-
- // Edge case: remove all children
- el.removeChild(el.querySelector('[id=c1]'));
-
- expect(el.validationStates.error.HasEvenNumberOfChildren).to.equal(undefined);
- });
- });
-
- describe('Interaction states', () => {
- it('has false states (dirty, touched, prefilled) on init', async () => {
- const fieldset = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- expect(fieldset.dirty).to.equal(false, 'dirty');
- expect(fieldset.touched).to.equal(false, 'touched');
- expect(fieldset.prefilled).to.equal(false, 'prefilled');
- });
-
- it('sets dirty when value changed', async () => {
- const fieldset = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- fieldset.formElements['hobbies[]'][0].modelValue = { checked: true, value: 'football' };
- expect(fieldset.dirty).to.be.true;
- });
-
- it('sets touched when last field in fieldset left after focus', async () => {
- const el = await fixture(html`<${tag}>${inputSlots}${tag}>`);
-
- await triggerFocusFor(el.formElements['hobbies[]'][0]._inputNode);
- await triggerFocusFor(
- el.formElements['hobbies[]'][el.formElements['gender[]'].length - 1]._inputNode,
- );
- const button = await fixture(html` `);
- button.focus();
-
- expect(el.touched).to.be.true;
- });
-
- it('sets attributes [touched][dirty]', async () => {
- const el = await fixture(html`<${tag}>${tag}>`);
- el.touched = true;
- await el.updateComplete;
- expect(el).to.have.attribute('touched');
-
- el.dirty = true;
- await el.updateComplete;
- expect(el).to.have.attribute('dirty');
- });
-
- it('becomes prefilled if all form elements are prefilled', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="input1" .modelValue="${'prefilled'}">${childTag}>
- <${childTag} name="input2">${childTag}>
- ${tag}>
- `);
- expect(el.prefilled).to.be.false;
-
- const el2 = await fixture(html`
- <${tag}>
- <${childTag} name="input1" .modelValue="${'prefilled'}">${childTag}>
- <${childTag} name="input2" .modelValue="${'prefilled'}">${childTag}>
- ${tag}>
- `);
- expect(el2.prefilled).to.be.true;
- });
-
- it(`becomes "touched" once the last element of a group becomes blurred by keyboard
- interaction (e.g. tabbing through the checkbox-group)`, async () => {
- const el = await fixture(html`
- <${tag}>
- My group
- <${childTag} name="myGroup[]" label="Option 1" value="1">${childTag}>
- <${childTag} name="myGroup[]" label="Option 2" value="2">${childTag}>
- ${tag}>
- `);
-
- const button = await fixture(`Blur `);
-
- expect(el.touched).to.equal(false, 'initially, touched state is false');
- el.children[2].focus();
- expect(el.touched).to.equal(false, 'focus is on second checkbox');
- button.focus();
- expect(el.touched).to.equal(
- true,
- `focus is on element behind second checkbox (group has blurred)`,
- );
- });
-
- it(`becomes "touched" once the group as a whole becomes blurred via mouse interaction after
- keyboard interaction (e.g. focus is moved inside the group and user clicks somewhere outside
- the group)`, async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="input1">${childTag}>
- <${childTag} name="input2">${childTag}>
- ${tag}>
- `);
- const el2 = await fixture(html`
- <${tag}>
- <${childTag} name="input1">${childTag}>
- <${childTag} name="input2">${childTag}>
- ${tag}>
- `);
-
- const outside = await fixture(html`outside `);
-
- outside.click();
- expect(el.touched, 'unfocused fieldset should stay untouched').to.be.false;
-
- el.children[1].focus();
- el.children[2].focus();
- expect(el.touched).to.be.false;
-
- outside.click(); // blur the group via a click
- outside.focus(); // a real mouse click moves focus as well
- expect(el.touched).to.be.true;
- expect(el2.touched).to.be.false;
- });
-
- it('potentially shows fieldset error message on interaction change', async () => {
- class Input1IsTen extends Validator {
- static get validatorName() {
- return 'Input1IsTen';
- }
-
- execute(value) {
- const hasError = value.input1 !== 10;
- return hasError;
- }
- }
-
- const outSideButton = await fixture(html`outside `);
- const el = await fixture(html`
- <${tag} .validators=${[new Input1IsTen()]}>
- <${childTag} name="input1" .validators=${[new IsNumber()]}>${childTag}>
- ${tag}>
- `);
- const input1 = el.querySelector(childTagString);
- input1.modelValue = 2;
- input1.focus();
- outSideButton.focus();
-
- await el.updateComplete;
- expect(el.validationStates.error.Input1IsTen).to.be.true;
- expect(el.showsFeedbackFor).to.deep.equal(['error']);
- });
-
- it('show error if tabbing "out" of last ', async () => {
- class Input1IsTen extends Validator {
- static get validatorName() {
- return 'Input1IsTen';
- }
-
- execute(value) {
- const hasError = value.input1 !== 10;
- return hasError;
- }
- }
- const outSideButton = await fixture(html`outside `);
- const el = await fixture(html`
- <${tag} .validators=${[new Input1IsTen()]}>
- <${childTag} name="input1" .validators=${[new IsNumber()]}>${childTag}>
- <${childTag} name="input2" .validators=${[new IsNumber()]}>${childTag}>
- ${tag}>
- `);
- const inputs = el.querySelectorAll(childTagString);
- inputs[1].modelValue = 2; // make it dirty
- inputs[1].focus();
-
- outSideButton.focus();
-
- expect(el.validationStates.error.Input1IsTen).to.be.true;
- expect(el.hasFeedbackFor).to.deep.equal(['error']);
- });
- });
-
- // TODO: this should be tested in FormGroupMixin
- describe('serializedValue', () => {
- it('use form elements serializedValue', async () => {
- const fieldset = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- fieldset.formElements['hobbies[]'][0].serializer = v => `${v.value}-serialized`;
- fieldset.formElements['hobbies[]'][0].modelValue = { checked: false, value: 'Bar' };
- fieldset.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'rugby' };
- fieldset.formElements['gender[]'][0].modelValue = { checked: false, value: 'male' };
- fieldset.formElements['gender[]'][1].modelValue = { checked: false, value: 'female' };
- fieldset.formElements.color.modelValue = { checked: false, value: 'blue' };
- expect(fieldset.formElements['hobbies[]'][0].serializedValue).to.equal('Bar-serialized');
- expect(fieldset.serializedValue).to.deep.equal({
- 'hobbies[]': ['Bar-serialized', { checked: false, value: 'rugby' }],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- color: { checked: false, value: 'blue' },
- });
- });
-
- it('treats names with ending [] as arrays', async () => {
- const fieldset = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- fieldset.formElements['hobbies[]'][0].modelValue = { checked: false, value: 'chess' };
- fieldset.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'rugby' };
- fieldset.formElements['gender[]'][0].modelValue = { checked: false, value: 'male' };
- fieldset.formElements['gender[]'][1].modelValue = { checked: false, value: 'female' };
- fieldset.formElements.color.modelValue = { checked: false, value: 'blue' };
- expect(fieldset.serializedValue).to.deep.equal({
- 'hobbies[]': [
- { checked: false, value: 'chess' },
- { checked: false, value: 'rugby' },
- ],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- color: { checked: false, value: 'blue' },
- });
- });
-
- it('0 is a valid value to be serialized', async () => {
- const fieldset = await fixture(html`
- <${tag}>
- <${childTag} name="price">${childTag}>
- ${tag}>`);
- fieldset.formElements.price.modelValue = 0;
- expect(fieldset.serializedValue).to.deep.equal({ price: 0 });
- });
-
- it('serializes undefined values as ""(nb radios/checkboxes are always serialized)', async () => {
- const fieldset = await fixture(html`
- <${tag}>
- <${childTag} name="custom[]">${childTag}>
- <${childTag} name="custom[]">${childTag}>
- ${tag}>
- `);
- fieldset.formElements['custom[]'][0].modelValue = 'custom 1';
- fieldset.formElements['custom[]'][1].modelValue = undefined;
-
- expect(fieldset.serializedValue).to.deep.equal({
- 'custom[]': ['custom 1', ''],
- });
- });
-
- it('allows for nested fieldsets', async () => {
- const fieldset = await fixture(html`
- <${tag} name="userData">
- <${childTag} name="comment">${childTag}>
- <${tag} name="newfieldset">${inputSlots}${tag}>
- ${tag}>
- `);
- const newFieldset = fieldset.querySelector('lion-fieldset');
- newFieldset.formElements['hobbies[]'][0].modelValue = { checked: false, value: 'chess' };
- newFieldset.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'rugby' };
- newFieldset.formElements['gender[]'][0].modelValue = { checked: false, value: 'male' };
- newFieldset.formElements['gender[]'][1].modelValue = { checked: false, value: 'female' };
- newFieldset.formElements.color.modelValue = { checked: false, value: 'blue' };
- fieldset.formElements.comment.modelValue = 'Foo';
- expect(fieldset.formElements._keys().length).to.equal(2);
- expect(newFieldset.formElements._keys().length).to.equal(3);
- expect(fieldset.serializedValue).to.deep.equal({
- comment: 'Foo',
- newfieldset: {
- 'hobbies[]': [
- { checked: false, value: 'chess' },
- { checked: false, value: 'rugby' },
- ],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- color: { checked: false, value: 'blue' },
- },
- });
- });
-
- it('does not serialize disabled values', async () => {
- const fieldset = await fixture(html`
- <${tag}>
- <${childTag} name="custom[]">${childTag}>
- <${childTag} name="custom[]">${childTag}>
- ${tag}>
- `);
- fieldset.formElements['custom[]'][0].modelValue = 'custom 1';
- fieldset.formElements['custom[]'][1].disabled = true;
-
- expect(fieldset.serializedValue).to.deep.equal({
- 'custom[]': ['custom 1'],
- });
- });
-
- it('will exclude form elements within a disabled fieldset', async () => {
- const fieldset = await fixture(html`
- <${tag} name="userData">
- <${childTag} name="comment">${childTag}>
- <${tag} name="newfieldset">${inputSlots}${tag}>
- ${tag}>
- `);
-
- const newFieldset = fieldset.querySelector('lion-fieldset');
- fieldset.formElements.comment.modelValue = 'Foo';
- newFieldset.formElements['hobbies[]'][0].modelValue = { checked: false, value: 'chess' };
- newFieldset.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'rugby' };
- newFieldset.formElements['gender[]'][0].modelValue = { checked: false, value: 'male' };
- newFieldset.formElements['gender[]'][1].modelValue = { checked: false, value: 'female' };
- newFieldset.formElements.color.modelValue = { checked: false, value: 'blue' };
- newFieldset.formElements.color.disabled = true;
-
- expect(fieldset.serializedValue).to.deep.equal({
- comment: 'Foo',
- newfieldset: {
- 'hobbies[]': [
- { checked: false, value: 'chess' },
- { checked: false, value: 'rugby' },
- ],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- },
- });
-
- newFieldset.formElements.color.disabled = false;
- expect(fieldset.serializedValue).to.deep.equal({
- comment: 'Foo',
- newfieldset: {
- 'hobbies[]': [
- { checked: false, value: 'chess' },
- { checked: false, value: 'rugby' },
- ],
- 'gender[]': [
- { checked: false, value: 'male' },
- { checked: false, value: 'female' },
- ],
- color: { checked: false, value: 'blue' },
- },
- });
- });
- });
-
- describe('Reset', () => {
- it('restores default values if changes were made', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} id="firstName" name="firstName" .modelValue="${'Foo'}">${childTag}>
- ${tag}>
- `);
- await el.querySelector(childTagString).updateComplete;
-
- const input = el.querySelector('#firstName');
-
- input.modelValue = 'Bar';
- expect(el.modelValue).to.deep.equal({ firstName: 'Bar' });
- expect(input.modelValue).to.equal('Bar');
-
- el.resetGroup();
- expect(el.modelValue).to.deep.equal({ firstName: 'Foo' });
- expect(input.modelValue).to.equal('Foo');
- });
-
- it('restores default values of arrays if changes were made', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} id="firstName" name="firstName[]" .modelValue="${'Foo'}">${childTag}>
- ${tag}>
- `);
- await el.querySelector(childTagString).updateComplete;
-
- const input = el.querySelector('#firstName');
-
- input.modelValue = 'Bar';
- expect(el.modelValue).to.deep.equal({ 'firstName[]': ['Bar'] });
- expect(input.modelValue).to.equal('Bar');
-
- el.resetGroup();
- expect(el.modelValue).to.deep.equal({ 'firstName[]': ['Foo'] });
- expect(input.modelValue).to.equal('Foo');
- });
-
- it('restores default values of a nested fieldset if changes were made', async () => {
- const el = await fixture(html`
- <${tag}>
- <${tag} id="name" name="name[]">
- <${childTag} id="firstName" name="firstName" .modelValue="${'Foo'}">${childTag}>
- ${tag}>
- ${tag}>
- `);
- await Promise.all([
- el.querySelector('lion-fieldset').updateComplete,
- el.querySelector(childTagString).updateComplete,
- ]);
-
- const input = el.querySelector('#firstName');
- const nestedFieldset = el.querySelector('#name');
-
- input.modelValue = 'Bar';
- expect(el.modelValue).to.deep.equal({ 'name[]': [{ firstName: 'Bar' }] });
- expect(nestedFieldset.modelValue).to.deep.equal({ firstName: 'Bar' });
- expect(input.modelValue).to.equal('Bar');
-
- el.resetGroup();
- expect(el.modelValue).to.deep.equal({ 'name[]': [{ firstName: 'Foo' }] });
- expect(nestedFieldset.modelValue).to.deep.equal({ firstName: 'Foo' });
- expect(input.modelValue).to.equal('Foo');
- });
-
- it('clears interaction state', async () => {
- const el = await fixture(html`<${tag} touched dirty>${inputSlots}${tag}>`);
- // Safety check initially
- el._setValueForAllFormElements('prefilled', true);
- expect(el.dirty).to.equal(true, '"dirty" initially');
- expect(el.touched).to.equal(true, '"touched" initially');
- expect(el.prefilled).to.equal(true, '"prefilled" initially');
-
- // Reset all children states, with prefilled false
- el._setValueForAllFormElements('modelValue', {});
- el.resetInteractionState();
- expect(el.dirty).to.equal(false, 'not "dirty" after reset');
- expect(el.touched).to.equal(false, 'not "touched" after reset');
- expect(el.prefilled).to.equal(false, 'not "prefilled" after reset');
-
- // Reset all children states with prefilled true
- el._setValueForAllFormElements('modelValue', { checked: true }); // not prefilled
- el.resetInteractionState();
- expect(el.dirty).to.equal(false, 'not "dirty" after 2nd reset');
- expect(el.touched).to.equal(false, 'not "touched" after 2nd reset');
- // prefilled state is dependant on value
- expect(el.prefilled).to.equal(true, '"prefilled" after 2nd reset');
- });
-
- it('clears submitted state', async () => {
- const fieldset = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- fieldset.submitted = true;
- fieldset.resetGroup();
- expect(fieldset.submitted).to.equal(false);
- fieldset.formElements.forEach(el => {
- expect(el.submitted).to.equal(false);
- });
- });
-
- it('has correct validation afterwards', async () => {
- class IsCat extends Validator {
- static get validatorName() {
- return 'IsCat';
- }
-
- execute(value) {
- const hasError = value !== 'cat';
- return hasError;
- }
- }
- class ColorContainsA extends Validator {
- static get validatorName() {
- return 'ColorContainsA';
- }
-
- execute(value) {
- let hasError = true;
- if (value && value.color) {
- hasError = value.color.indexOf('a') === -1;
- }
- return hasError;
- }
- }
-
- const el = await fixture(html`
- <${tag} .validators=${[new ColorContainsA()]}>
- <${childTag} name="color" .validators=${[new IsCat()]}>${childTag}>
- <${childTag} name="color2">${childTag}>
- ${tag}>
- `);
- expect(el.hasFeedbackFor).to.deep.equal(['error']);
- expect(el.validationStates.error.ColorContainsA).to.be.true;
- expect(el.formElements.color.hasFeedbackFor).to.deep.equal([]);
-
- el.formElements.color.modelValue = 'onlyb';
- expect(el.hasFeedbackFor).to.deep.equal(['error']);
- expect(el.validationStates.error.ColorContainsA).to.be.true;
- expect(el.formElements.color.validationStates.error.IsCat).to.be.true;
-
- el.formElements.color.modelValue = 'cat';
- expect(el.hasFeedbackFor).to.deep.equal([]);
-
- el.resetGroup();
- expect(el.hasFeedbackFor).to.deep.equal(['error']);
- expect(el.validationStates.error.ColorContainsA).to.be.true;
- expect(el.formElements.color.hasFeedbackFor).to.deep.equal([]);
- });
-
- it('has access to `_initialModelValue` based on initial children states', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="child[]" .modelValue="${'foo1'}">
- ${childTag}>
- <${childTag} name="child[]" .modelValue="${'bar1'}">
- ${childTag}>
- ${tag}>
- `);
- await el.updateComplete;
- el.modelValue['child[]'] = ['foo2', 'bar2'];
- expect(el._initialModelValue['child[]']).to.eql(['foo1', 'bar1']);
- });
-
- it('does not wrongly recompute `_initialModelValue` after dynamic changes of children', async () => {
- const el = await fixture(html`
- <${tag}>
- <${childTag} name="child[]" .modelValue="${'foo1'}">
- ${childTag}>
- ${tag}>
- `);
- el.modelValue['child[]'] = ['foo2'];
- const childEl = await fixture(html`
- <${childTag} name="child[]" .modelValue="${'bar1'}">
- ${childTag}>
- `);
- el.appendChild(childEl);
- expect(el._initialModelValue['child[]']).to.eql(['foo1', 'bar1']);
- });
-
- describe('resetGroup method', () => {
- it('calls resetGroup on children fieldsets', async () => {
- const el = await fixture(html`
- <${tag} name="parentFieldset">
- <${tag} name="childFieldset">
- <${childTag} name="child[]" .modelValue="${'foo1'}">
- ${childTag}>
- ${tag}>
- ${tag}>
- `);
- const childFieldsetEl = el.querySelector(tagString);
- const resetGroupSpy = sinon.spy(childFieldsetEl, 'resetGroup');
- el.resetGroup();
- expect(resetGroupSpy.callCount).to.equal(1);
- });
-
- it('calls reset on children fields', async () => {
- const el = await fixture(html`
- <${tag} name="parentFieldset">
- <${tag} name="childFieldset">
- <${childTag} name="child[]" .modelValue="${'foo1'}">
- ${childTag}>
- ${tag}>
- ${tag}>
- `);
- const childFieldsetEl = el.querySelector(childTagString);
- const resetSpy = sinon.spy(childFieldsetEl, 'reset');
- el.resetGroup();
- expect(resetSpy.callCount).to.equal(1);
- });
- });
-
- describe('clearGroup method', () => {
- it('calls clearGroup on children fieldset', async () => {
- const el = await fixture(html`
- <${tag} name="parentFieldset">
- <${tag} name="childFieldset">
- <${childTag} name="child[]" .modelValue="${'foo1'}">
- ${childTag}>
- ${tag}>
- ${tag}>
- `);
- const childFieldsetEl = el.querySelector(tagString);
- const clearGroupSpy = sinon.spy(childFieldsetEl, 'clearGroup');
- el.clearGroup();
- expect(clearGroupSpy.callCount).to.equal(1);
- });
-
- it('calls clear on children fields', async () => {
- const el = await fixture(html`
- <${tag} name="parentFieldset">
- <${tag} name="childFieldset">
- <${childTag} name="child[]" .modelValue="${'foo1'}">
- ${childTag}>
- ${tag}>
- ${tag}>
- `);
- const childFieldsetEl = el.querySelector(childTagString);
- const clearSpy = sinon.spy(childFieldsetEl, 'clear');
- el.clearGroup();
- expect(clearSpy.callCount).to.equal(1);
- });
-
- it('should clear the value of fields', async () => {
- const el = await fixture(html`
- <${tag} name="parentFieldset">
- <${tag} name="childFieldset">
- <${childTag} name="child" .modelValue="${'foo1'}">
- ${childTag}>
- ${tag}>
- ${tag}>
- `);
- el.clearGroup();
- expect(el.querySelector('[name="child"]').modelValue).to.equal('');
- });
- });
- });
-
- describe('Accessibility', () => {
- it('has role="group" set', async () => {
- const fieldset = await fixture(html`<${tag}>${inputSlots}${tag}>`);
- fieldset.formElements['hobbies[]'][0].modelValue = { checked: false, value: 'chess' };
- fieldset.formElements['hobbies[]'][1].modelValue = { checked: false, value: 'rugby' };
- fieldset.formElements['gender[]'][0].modelValue = { checked: false, value: 'male' };
- fieldset.formElements['gender[]'][1].modelValue = { checked: false, value: 'female' };
- fieldset.formElements.color.modelValue = { checked: false, value: 'blue' };
- expect(fieldset.hasAttribute('role')).to.be.true;
- expect(fieldset.getAttribute('role')).to.contain('group');
- });
-
- it('has an aria-labelledby from element with slot="label"', async () => {
- const el = await fixture(html`
- <${tag}>
- My Label
- ${inputSlots}
- ${tag}>
- `);
- const label = Array.from(el.children).find(child => child.slot === 'label');
- expect(el.hasAttribute('aria-labelledby')).to.equal(true);
- expect(el.getAttribute('aria-labelledby')).contains(label.id);
- });
-
- describe('Screen reader relations (aria-describedby) for child fields and fieldsets', () => {
- let childAriaFixture; // function
- let childAriaTest; // function
-
- before(() => {
- // Legend:
- // - l1 means level 1 (outer) fieldset
- // - l2 means level 2 (inner) fieldset
- // - g means group: the help-text or feedback belongs to group
- // - f means field(lion-input in fixture below): the help-text or feedback belongs to field
- // - 'a' or 'b' behind 'f' indicate which field in a fieldset is meant (a: first, b: second)
-
- childAriaFixture = async (
- msgSlotType = 'feedback', // eslint-disable-line no-shadow
- ) => {
- const dom = await fixture(html`
- <${tag} name="l1_g">
- <${childTag} name="l1_fa">
-
-
- ${childTag}>
-
- <${childTag} name="l1_fb">
-
-
- ${childTag}>
-
-
-
- <${tag} name="l2_g">
- <${childTag} name="l2_fa">
-
-
- ${childTag}>
-
- <${childTag} name="l2_fb">
-
-
- ${childTag}>
-
-
-
- ${tag}>
-
-
-
-
-
- ${tag}>
- `);
- return dom;
- };
-
- // eslint-disable-next-line no-shadow
- childAriaTest = childAriaFixture => {
- /* eslint-disable camelcase */
- // Message elements: all elements pointed at by inputs
- const msg_l1_g = childAriaFixture.querySelector('#msg_l1_g');
- const msg_l1_fa = childAriaFixture.querySelector('#msg_l1_fa');
- const msg_l1_fb = childAriaFixture.querySelector('#msg_l1_fb');
- const msg_l2_g = childAriaFixture.querySelector('#msg_l2_g');
- const msg_l2_fa = childAriaFixture.querySelector('#msg_l2_fa');
- const msg_l2_fb = childAriaFixture.querySelector('#msg_l2_fb');
-
- // Field elements: all inputs pointing to message elements
- const input_l1_fa = childAriaFixture.querySelector('input[name=l1_fa]');
- const input_l1_fb = childAriaFixture.querySelector('input[name=l1_fb]');
- const input_l2_fa = childAriaFixture.querySelector('input[name=l2_fa]');
- const input_l2_fb = childAriaFixture.querySelector('input[name=l2_fb]');
-
- /* eslint-enable camelcase */
-
- // 'L1' fields (inside lion-fieldset[name="l1_g"]) should point to l1(group) msg
- expect(input_l1_fa.getAttribute('aria-describedby')).to.contain(
- msg_l1_g.id,
- 'l1 input(a) refers parent/group',
- );
- expect(input_l1_fb.getAttribute('aria-describedby')).to.contain(
- msg_l1_g.id,
- 'l1 input(b) refers parent/group',
- );
-
- // Also check that aria-describedby of the inputs are not overridden (this relation was
- // put there in lion-input(using lion-field)).
- expect(input_l1_fa.getAttribute('aria-describedby')).to.contain(
- msg_l1_fa.id,
- 'l1 input(a) refers local field',
- );
- expect(input_l1_fb.getAttribute('aria-describedby')).to.contain(
- msg_l1_fb.id,
- 'l1 input(b) refers local field',
- );
-
- // Also make feedback element point to nested fieldset inputs
- expect(input_l2_fa.getAttribute('aria-describedby')).to.contain(
- msg_l1_g.id,
- 'l2 input(a) refers grandparent/group.group',
- );
- expect(input_l2_fb.getAttribute('aria-describedby')).to.contain(
- msg_l1_g.id,
- 'l2 input(b) refers grandparent/group.group',
- );
-
- // Check order: the nearest ('dom wise': so 1. local, 2. parent, 3. grandparent) message
- // should be read first by screen reader
- const dA = input_l2_fa.getAttribute('aria-describedby');
- expect(
- dA.indexOf(msg_l2_fa.id) < dA.indexOf(msg_l2_g.id) < dA.indexOf(msg_l1_g.id),
- ).to.equal(true, 'order of ids');
- const dB = input_l2_fb.getAttribute('aria-describedby');
- expect(
- dB.indexOf(msg_l2_fb.id) < dB.indexOf(msg_l2_g.id) < dB.indexOf(msg_l1_g.id),
- ).to.equal(true, 'order of ids');
- };
- });
-
- it(`reads feedback message belonging to fieldset when child input is focused
- (via aria-describedby)`, async () => {
- childAriaTest(await childAriaFixture('feedback'));
- });
-
- it(`reads help-text message belonging to fieldset when child input is focused
- (via aria-describedby)`, async () => {
- childAriaTest(await childAriaFixture('help-text'));
- });
- });
- });
-});
+runFormGroupMixinSuite({ tagString: 'lion-fieldset' });
diff --git a/packages/form-core/src/FocusMixin.js b/packages/form-core/src/FocusMixin.js
index 1f83cf146..f9871ddca 100644
--- a/packages/form-core/src/FocusMixin.js
+++ b/packages/form-core/src/FocusMixin.js
@@ -1,11 +1,13 @@
import { dedupeMixin } from '@lion/core';
+import { FormControlMixin } from './FormControlMixin.js';
/**
* @typedef {import('../types/FocusMixinTypes').FocusMixin} FocusMixin
* @type {FocusMixin}
+ * @param {import('@open-wc/dedupe-mixin').Constructor} superclass
*/
const FocusMixinImplementation = superclass =>
// eslint-disable-next-line no-unused-vars, max-len, no-shadow
- class FocusMixin extends superclass {
+ class FocusMixin extends FormControlMixin(superclass) {
static get properties() {
return {
focused: {
@@ -21,16 +23,12 @@ const FocusMixinImplementation = superclass =>
}
connectedCallback() {
- if (super.connectedCallback) {
- super.connectedCallback();
- }
+ super.connectedCallback();
this.__registerEventsForFocusMixin();
}
disconnectedCallback() {
- if (super.disconnectedCallback) {
- super.disconnectedCallback();
- }
+ super.disconnectedCallback();
this.__teardownEventsForFocusMixin();
}
@@ -101,10 +99,22 @@ const FocusMixinImplementation = superclass =>
}
__teardownEventsForFocusMixin() {
- this._inputNode.removeEventListener('focus', this.__redispatchFocus);
- this._inputNode.removeEventListener('blur', this.__redispatchBlur);
- this._inputNode.removeEventListener('focusin', this.__redispatchFocusin);
- this._inputNode.removeEventListener('focusout', this.__redispatchFocusout);
+ this._inputNode.removeEventListener(
+ 'focus',
+ /** @type {EventListenerOrEventListenerObject} */ (this.__redispatchFocus),
+ );
+ this._inputNode.removeEventListener(
+ 'blur',
+ /** @type {EventListenerOrEventListenerObject} */ (this.__redispatchBlur),
+ );
+ this._inputNode.removeEventListener(
+ 'focusin',
+ /** @type {EventListenerOrEventListenerObject} */ (this.__redispatchFocusin),
+ );
+ this._inputNode.removeEventListener(
+ 'focusout',
+ /** @type {EventListenerOrEventListenerObject} */ (this.__redispatchFocusout),
+ );
}
};
diff --git a/packages/form-core/src/FormControlMixin.js b/packages/form-core/src/FormControlMixin.js
index ff9c923d1..fde787992 100644
--- a/packages/form-core/src/FormControlMixin.js
+++ b/packages/form-core/src/FormControlMixin.js
@@ -1,7 +1,8 @@
import { css, dedupeMixin, html, nothing, SlotMixin } from '@lion/core';
-import { Unparseable } from './validate/Unparseable.js';
+import { DisabledMixin } from '@lion/core/src/DisabledMixin.js';
import { FormRegisteringMixin } from './registration/FormRegisteringMixin.js';
import { getAriaElementsInRightDomOrder } from './utils/getAriaElementsInRightDomOrder.js';
+import { Unparseable } from './validate/Unparseable.js';
/**
* Generates random unique identifier (for dom elements)
@@ -17,16 +18,17 @@ function uuid(prefix) {
* This Mixin is a shared fundament for all form components, it's applied on:
* - LionField (which is extended to LionInput, LionTextarea, LionSelect etc. etc.)
* - LionFieldset (which is extended to LionRadioGroup, LionCheckboxGroup, LionForm)
- * @typedef {import('lit-html').TemplateResult} TemplateResult
- * @typedef {import('lit-element').CSSResult} CSSResult
- * @typedef {import('lit-html').nothing} nothing
+ * @typedef {import('@lion/core').TemplateResult} TemplateResult
+ * @typedef {import('@lion/core').CSSResult} CSSResult
+ * @typedef {import('@lion/core').nothing} nothing
* @typedef {import('@lion/core/types/SlotMixinTypes').SlotsMap} SlotsMap
* @typedef {import('../types/FormControlMixinTypes.js').FormControlMixin} FormControlMixin
* @type {FormControlMixin}
+ * @param {import('@open-wc/dedupe-mixin').Constructor} superclass
*/
const FormControlMixinImplementation = superclass =>
// eslint-disable-next-line no-shadow, no-unused-vars
- class FormControlMixin extends FormRegisteringMixin(SlotMixin(superclass)) {
+ class FormControlMixin extends FormRegisteringMixin(DisabledMixin(SlotMixin(superclass))) {
static get properties() {
return {
/**
@@ -48,6 +50,21 @@ const FormControlMixinImplementation = superclass =>
type: String,
attribute: 'help-text',
},
+
+ /**
+ * The model value is the result of the parser function(when available).
+ * It should be considered as the internal value used for validation and reasoning/logic.
+ * The model value is 'ready for consumption' by the outside world (think of a Date
+ * object or a float). The modelValue can(and is recommended to) be used as both input
+ * value and output value of the `LionField`.
+ *
+ * Examples:
+ * - For a date input: a String '20/01/1999' will be converted to new Date('1999/01/20')
+ * - For a number input: a formatted String '1.234,56' will be converted to a Number:
+ * 1234.56
+ */
+ modelValue: { attribute: false },
+
/**
* Contains all elements that should end up in aria-labelledby of `._inputNode`
*/
@@ -112,7 +129,8 @@ const FormControlMixinImplementation = superclass =>
* @return {string}
*/
get fieldName() {
- return this.__fieldName || this.label || this.name;
+ // @ts-expect-error
+ return this.__fieldName || this.label || this.name; // FIXME: when LionField is typed we can inherit this prop
}
/**
@@ -184,7 +202,9 @@ const FormControlMixinImplementation = superclass =>
}
get _feedbackNode() {
- return this.__getDirectSlotChild('feedback');
+ return /** @type {import('./validate/LionValidationFeedback').LionValidationFeedback | undefined} */ (this.__getDirectSlotChild(
+ 'feedback',
+ ));
}
constructor() {
@@ -197,7 +217,11 @@ const FormControlMixinImplementation = superclass =>
this._ariaDescribedNodes = [];
/** @type {'child' | 'choice-group' | 'fieldset'} */
this._repropagationRole = 'child';
- this.addEventListener('model-value-changed', this.__repropagateChildrenValues);
+ this._isRepropagationEndpoint = false;
+ this.addEventListener(
+ 'model-value-changed',
+ /** @type {EventListenerOrEventListenerObject} */ (this.__repropagateChildrenValues),
+ );
}
connectedCallback() {
@@ -339,12 +363,8 @@ const FormControlMixinImplementation = superclass =>
*/
render() {
return html`
-
- ${this._groupOneTemplate()}
-
-
- ${this._groupTwoTemplate()}
-
+ ${this._groupOneTemplate()}
+ ${this._groupTwoTemplate()}
`;
}
@@ -479,10 +499,15 @@ const FormControlMixinImplementation = superclass =>
/**
* @param {?} modelValue
* @return {boolean}
+ *
+ * FIXME: Move to FormatMixin? Since there we have access to modelValue prop
*/
+ // @ts-expect-error
_isEmpty(modelValue = this.modelValue) {
let value = modelValue;
+ // @ts-expect-error
if (this.modelValue instanceof Unparseable) {
+ // @ts-expect-error
value = this.modelValue.viewValue;
}
@@ -629,7 +654,7 @@ const FormControlMixinImplementation = superclass =>
}
/**
- * @return {HTMLElement[]}
+ * @return {Array.}
*/
// Returns dom references to all elements that should be referred to by field(s)
_getAriaDescriptionElements() {
@@ -681,10 +706,12 @@ const FormControlMixinImplementation = superclass =>
/**
* @param {string} slotName
- * @return {HTMLElement}
+ * @return {HTMLElement | undefined}
*/
__getDirectSlotChild(slotName) {
- return [...this.children].find(el => el.slot === slotName);
+ return /** @type {HTMLElement[]} */ (Array.from(this.children)).find(
+ el => el.slot === slotName,
+ );
}
__dispatchInitialModelValueChangedEvent() {
@@ -756,6 +783,7 @@ const FormControlMixinImplementation = superclass =>
// We only send the checked changed up (not the unchecked). In this way a choice group
// (radio-group, checkbox-group, select/listbox) acts as an 'endpoint' (a single Field)
// just like the native
+ // @ts-expect-error multipleChoice is not directly available but only as side effect
if (this._repropagationRole === 'choice-group' && !this.multipleChoice && !target.checked) {
return;
}
diff --git a/packages/form-core/src/FormatMixin.js b/packages/form-core/src/FormatMixin.js
index d2628834b..74bbb6af8 100644
--- a/packages/form-core/src/FormatMixin.js
+++ b/packages/form-core/src/FormatMixin.js
@@ -1,7 +1,9 @@
/* eslint-disable class-methods-use-this */
import { dedupeMixin } from '@lion/core';
+import { FormControlMixin } from './FormControlMixin.js';
import { Unparseable } from './validate/Unparseable.js';
+import { ValidateMixin } from './validate/ValidateMixin.js';
/**
* @typedef {import('../types/FormatMixinTypes').FormatMixin} FormatMixin
@@ -52,25 +54,12 @@ import { Unparseable } from './validate/Unparseable.js';
* Flow: serializedValue (deserializer) -> `.modelValue` (formatter) -> `.formattedValue` -> `._inputNode.value`
*
* @type {FormatMixin}
+ * @param {import('@open-wc/dedupe-mixin').Constructor} superclass
*/
const FormatMixinImplementation = superclass =>
- class FormatMixin extends superclass {
+ class FormatMixin extends ValidateMixin(FormControlMixin(superclass)) {
static get properties() {
return {
- /**
- * The model value is the result of the parser function(when available).
- * It should be considered as the internal value used for validation and reasoning/logic.
- * The model value is 'ready for consumption' by the outside world (think of a Date
- * object or a float). The modelValue can(and is recommended to) be used as both input
- * value and output value of the `LionField`.
- *
- * Examples:
- * - For a date input: a String '20/01/1999' will be converted to new Date('1999/01/20')
- * - For a number input: a formatted String '1.234,56' will be converted to a Number:
- * 1234.56
- */
- modelValue: { attribute: false },
-
/**
* The view value is the result of the formatter function (when available).
* The result will be stored in the native _inputNode (usually an input[type=text]).
@@ -296,7 +285,7 @@ const FormatMixinImplementation = superclass =>
*/
_onModelValueChanged(...args) {
this._calculateValues({ source: 'model' });
- // @ts-ignore only passing this so a subclasser can use it, but we do not use it ourselves
+ // @ts-expect-error only passing this so a subclasser can use it, but we do not use it ourselves
this._dispatchModelValueChangedEvent(...args);
}
@@ -405,7 +394,8 @@ const FormatMixinImplementation = superclass =>
this._inputNode.removeEventListener('input', this._proxyInputEvent);
this._inputNode.removeEventListener(
this.formatOn,
- this._reflectBackFormattedValueDebounced,
+ /** @type {EventListenerOrEventListenerObject} */ (this
+ ._reflectBackFormattedValueDebounced),
);
}
}
diff --git a/packages/form-core/src/InteractionStateMixin.js b/packages/form-core/src/InteractionStateMixin.js
index 8bc4e5b05..403cbbb05 100644
--- a/packages/form-core/src/InteractionStateMixin.js
+++ b/packages/form-core/src/InteractionStateMixin.js
@@ -13,11 +13,9 @@ import { FormControlMixin } from './FormControlMixin.js';
* - leaves a form field(blur) -> 'touched' will be set to true. 'prefilled' when a
* field is left non-empty
* - on keyup (actually, on the model-value-changed event) -> 'dirty' will be set to true
- * @param {HTMLElement} superclass
- */
-
-/**
+ *
* @type {InteractionStateMixin}
+ * @param {import('@open-wc/dedupe-mixin').Constructor} superclass
*/
const InteractionStateMixinImplementation = superclass =>
class InteractionStateMixin extends FormControlMixin(superclass) {
@@ -105,18 +103,14 @@ const InteractionStateMixinImplementation = superclass =>
* Register event handlers and validate prefilled inputs
*/
connectedCallback() {
- if (super.connectedCallback) {
- super.connectedCallback();
- }
+ super.connectedCallback();
this.addEventListener(this._leaveEvent, this._iStateOnLeave);
this.addEventListener(this._valueChangedEvent, this._iStateOnValueChange);
this.initInteractionState();
}
disconnectedCallback() {
- if (super.disconnectedCallback) {
- super.disconnectedCallback();
- }
+ super.disconnectedCallback();
this.removeEventListener(this._leaveEvent, this._iStateOnLeave);
this.removeEventListener(this._valueChangedEvent, this._iStateOnValueChange);
}
@@ -169,6 +163,27 @@ const InteractionStateMixinImplementation = superclass =>
_onDirtyChanged() {
this.dispatchEvent(new CustomEvent('dirty-changed', { bubbles: true, composed: true }));
}
+
+ /**
+ * Show the validity feedback when one of the following conditions is met:
+ *
+ * - submitted
+ * If the form is submitted, always show the error message.
+ *
+ * - prefilled
+ * the user already filled in something, or the value is prefilled
+ * when the form is initially rendered.
+ *
+ * - touched && dirty
+ * When a user starts typing for the first time in a field with for instance `required`
+ * validation, error message should not be shown until a field becomes `touched`
+ * (a user leaves(blurs) a field).
+ * When a user enters a field without altering the value(making it `dirty`),
+ * an error message shouldn't be shown either.
+ */
+ _showFeedbackConditionFor() {
+ return (this.touched && this.dirty) || this.prefilled || this.submitted;
+ }
};
export const InteractionStateMixin = dedupeMixin(InteractionStateMixinImplementation);
diff --git a/packages/form-core/src/LionField.js b/packages/form-core/src/LionField.js
index 038ae8027..b25330ee7 100644
--- a/packages/form-core/src/LionField.js
+++ b/packages/form-core/src/LionField.js
@@ -1,14 +1,10 @@
import { LitElement, SlotMixin } from '@lion/core';
-import { DisabledMixin } from '@lion/core/src/DisabledMixin.js';
import { ValidateMixin } from './validate/ValidateMixin.js';
import { FocusMixin } from './FocusMixin.js';
import { FormatMixin } from './FormatMixin.js';
import { FormControlMixin } from './FormControlMixin.js';
import { InteractionStateMixin } from './InteractionStateMixin.js'; // applies FocusMixin
-/* eslint-disable wc/guard-super-call */
-
-// TODO: Add submitted prop to InteractionStateMixin.
/**
* `LionField`: wraps ,
-
- Toggle disabled
-
+ Toggle disabled
`;
};
```
diff --git a/packages/form-integrations/test/form-reset.test.js b/packages/form-integrations/test/form-reset.test.js
index bae01453c..52242e8c4 100644
--- a/packages/form-integrations/test/form-reset.test.js
+++ b/packages/form-integrations/test/form-reset.test.js
@@ -113,9 +113,7 @@ describe(`Submitting/Resetting Form`, async () => {
>
Submit
-
- Reset
-
+ Reset
diff --git a/packages/helpers/sb-locale-switcher/src/SbLocaleSwitcher.js b/packages/helpers/sb-locale-switcher/src/SbLocaleSwitcher.js
index 09857fc87..0df4f4781 100644
--- a/packages/helpers/sb-locale-switcher/src/SbLocaleSwitcher.js
+++ b/packages/helpers/sb-locale-switcher/src/SbLocaleSwitcher.js
@@ -21,9 +21,7 @@ export class SbLocaleSwitcher extends LitElement {
return html`
${this.showLocales.map(
showLocale => html`
- this.callback(showLocale)}>
- ${showLocale}
-
+ this.callback(showLocale)}>${showLocale}
`,
)}
`;
diff --git a/packages/input-datepicker/src/LionInputDatepicker.js b/packages/input-datepicker/src/LionInputDatepicker.js
index 52cc7e3ca..9b1d79563 100644
--- a/packages/input-datepicker/src/LionInputDatepicker.js
+++ b/packages/input-datepicker/src/LionInputDatepicker.js
@@ -225,9 +225,7 @@ export class LionInputDatepicker extends ScopedElementsMixin(OverlayMixin(LionIn
render() {
return html`
-
- ${this._groupOneTemplate()}
-
+ ${this._groupOneTemplate()}
${this._groupTwoTemplate()} ${this._overlayTemplate()}
diff --git a/packages/localize/_docs/message.md b/packages/localize/_docs/message.md
index 4a1da1630..24d524b98 100644
--- a/packages/localize/_docs/message.md
+++ b/packages/localize/_docs/message.md
@@ -79,11 +79,7 @@ class MyHelloComponent extends LocalizeMixin(LitElement) {
}
render() {
- return html`
-
- ${this.msgLit('my-hello-component:greeting')}
-
- `;
+ return html` ${this.msgLit('my-hello-component:greeting')}
`;
}
}
```
@@ -112,9 +108,7 @@ import { localize } from '@lion/localize';
export function myTemplate(someData) {
return html`
-
- ${localize.msg('my-hello-component:feeling', { feeling: someData.feeling })}
-
+ ${localize.msg('my-hello-component:feeling', { feeling: someData.feeling })}
`;
}
```
diff --git a/packages/localize/src/LocalizeManager.js b/packages/localize/src/LocalizeManager.js
index d6eaf03fd..33eff676f 100644
--- a/packages/localize/src/LocalizeManager.js
+++ b/packages/localize/src/LocalizeManager.js
@@ -1,3 +1,4 @@
+// @ts-expect-error no types for this package
import MessageFormat from '@bundled-es-modules/message-format/MessageFormat.js';
import isLocalizeESModule from './isLocalizeESModule.js';
diff --git a/packages/localize/src/date/getDateFormatBasedOnLocale.js b/packages/localize/src/date/getDateFormatBasedOnLocale.js
index 6e216b53d..5336a7380 100644
--- a/packages/localize/src/date/getDateFormatBasedOnLocale.js
+++ b/packages/localize/src/date/getDateFormatBasedOnLocale.js
@@ -19,9 +19,9 @@ export function getDateFormatBasedOnLocale() {
function getPartByIndex(index) {
/** @type {Object.} */
const template = {
- '2012': 'year',
- '12': 'month',
- '20': 'day',
+ 2012: 'year',
+ 12: 'month',
+ 20: 'day',
};
const key = dateParts[index];
return template[key];
diff --git a/packages/localize/test/LocalizeManager.test.js b/packages/localize/test/LocalizeManager.test.js
index 237c90253..596105b28 100644
--- a/packages/localize/test/LocalizeManager.test.js
+++ b/packages/localize/test/LocalizeManager.test.js
@@ -1,5 +1,6 @@
import { expect, oneEvent, aTimeout } from '@open-wc/testing';
import sinon from 'sinon';
+// @ts-expect-error no types for this package
import { fetchMock } from '@bundled-es-modules/fetch-mock';
import { setupFakeImport, resetFakeImport, fakeImport } from '../test-helpers.js';
diff --git a/packages/localize/test/LocalizeMixin.test.js b/packages/localize/test/LocalizeMixin.test.js
index cf4a788e0..a3d9dacd4 100644
--- a/packages/localize/test/LocalizeMixin.test.js
+++ b/packages/localize/test/LocalizeMixin.test.js
@@ -71,7 +71,7 @@ describe('LocalizeMixin', () => {
'child-element': loc => fakeImport(`./child-element/${loc}.js`),
};
- // @ts-ignore
+ // @ts-expect-error
class ParentElement extends LocalizeMixin(LitElement) {
static get localizeNamespaces() {
return [parentElementNs, defaultNs, ...super.localizeNamespaces];
@@ -79,7 +79,7 @@ describe('LocalizeMixin', () => {
}
const tagString = defineCE(
- // @ts-ignore
+ // @ts-expect-error
class ChildElement extends LocalizeMixin(ParentElement) {
static get localizeNamespaces() {
return [childElementNs, defaultNs, ...super.localizeNamespaces];
diff --git a/packages/overlays/docs/40-system-configuration.md b/packages/overlays/docs/40-system-configuration.md
index 6fe6cc705..17efe6209 100644
--- a/packages/overlays/docs/40-system-configuration.md
+++ b/packages/overlays/docs/40-system-configuration.md
@@ -91,9 +91,7 @@ export const isTooltip = () => {
Hover me to open the tooltip!
-
- Hello!
-
+ Hello!
`;
};
diff --git a/packages/overlays/test-suites/OverlayMixin.suite.js b/packages/overlays/test-suites/OverlayMixin.suite.js
index 3e26a9471..9e18bb788 100644
--- a/packages/overlays/test-suites/OverlayMixin.suite.js
+++ b/packages/overlays/test-suites/OverlayMixin.suite.js
@@ -167,11 +167,7 @@ export function runOverlayMixinSuite({ tagString, tag, suffix = '' }) {
function sendCloseEvent(e) {
e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }));
}
- const closeBtn = await fixture(html`
-
- close
-
- `);
+ const closeBtn = await fixture(html` close `);
const el = await fixture(html`
<${tag} opened>
diff --git a/packages/overlays/test/OverlayController.test.js b/packages/overlays/test/OverlayController.test.js
index 3445e1b4e..e4535bcc7 100644
--- a/packages/overlays/test/OverlayController.test.js
+++ b/packages/overlays/test/OverlayController.test.js
@@ -67,11 +67,7 @@ describe('OverlayController', () => {
`);
}
if (mode === 'inline') {
- contentNode = await fixture(html`
-
- I should be on top
-
- `);
+ contentNode = await fixture(html` I should be on top
`);
contentNode.style.zIndex = zIndexVal;
}
return contentNode;
diff --git a/packages/overlays/test/local-positioning.test.js b/packages/overlays/test/local-positioning.test.js
index 0b36c998c..91aa93179 100644
--- a/packages/overlays/test/local-positioning.test.js
+++ b/packages/overlays/test/local-positioning.test.js
@@ -103,9 +103,7 @@ describe('Local Positioning', () => {
},
});
await fixture(html`
-
- ${ctrl.invokerNode}${ctrl.content}
-
+ ${ctrl.invokerNode}${ctrl.content}
`);
await ctrl.show();
diff --git a/packages/overlays/test/utils-tests/contain-focus.test.js b/packages/overlays/test/utils-tests/contain-focus.test.js
index 53ebd6fe5..d3b99c96d 100644
--- a/packages/overlays/test/utils-tests/contain-focus.test.js
+++ b/packages/overlays/test/utils-tests/contain-focus.test.js
@@ -35,9 +35,7 @@ const interactionElementsNode = renderLitAsNode(html`
const lightDomTemplate = html`
outside 1
-
- ${interactionElementsNode}
-
+
${interactionElementsNode}
outside 2
`;
diff --git a/packages/pagination/README.md b/packages/pagination/README.md
index 46bd9b61e..23cf6f106 100644
--- a/packages/pagination/README.md
+++ b/packages/pagination/README.md
@@ -94,17 +94,11 @@ export const methods = () => {
document.getElementById('pagination-method').previous()}>
Previous
- document.getElementById('pagination-method').next()}>
- Next
-
+ document.getElementById('pagination-method').next()}>Next
- document.getElementById('pagination-method').first()}>
- First
-
- document.getElementById('pagination-method').last()}>
- Last
-
+ document.getElementById('pagination-method').first()}>First
+ document.getElementById('pagination-method').last()}>Last
document.getElementById('pagination-method').goto(55)}>
diff --git a/packages/providence-analytics/dashboard/src/app/p-board.js b/packages/providence-analytics/dashboard/src/app/p-board.js
index 70980d72b..0b2cfcfe6 100644
--- a/packages/providence-analytics/dashboard/src/app/p-board.js
+++ b/packages/providence-analytics/dashboard/src/app/p-board.js
@@ -204,9 +204,7 @@ class PBoard extends DecorateMixin(LitElement) {
providence dashboard (alpha)
${this._activeAnalyzerSelectTemplate()}
- downloadFile('data.csv', this._createCsv())}">
- get csv
-
+ downloadFile('data.csv', this._createCsv())}">get csv
${this._selectionMenuTemplate(this.__menuData)}
diff --git a/packages/select-rich/README.md b/packages/select-rich/README.md
index 79ad8c687..2c12c55d7 100644
--- a/packages/select-rich/README.md
+++ b/packages/select-rich/README.md
@@ -367,9 +367,7 @@ You can use this `selectedElement` to then render the content to your own invoke
```html
-
- ...
-
+ ...
```
diff --git a/packages/select-rich/src/LionOption.js b/packages/select-rich/src/LionOption.js
index 7af128a70..1b7b7abea 100644
--- a/packages/select-rich/src/LionOption.js
+++ b/packages/select-rich/src/LionOption.js
@@ -51,6 +51,14 @@ export class LionOption extends DisabledMixin(ChoiceInputMixin(FormRegisteringMi
];
}
+ /**
+ * @override We want to start with a clean slate, so we omit slots inherited from FormControl
+ */
+ // eslint-disable-next-line class-methods-use-this
+ get slots() {
+ return {};
+ }
+
constructor() {
super();
this.active = false;
diff --git a/packages/select-rich/src/LionSelectInvoker.js b/packages/select-rich/src/LionSelectInvoker.js
index 0cb79d23e..9efe851ba 100644
--- a/packages/select-rich/src/LionSelectInvoker.js
+++ b/packages/select-rich/src/LionSelectInvoker.js
@@ -95,7 +95,7 @@ export class LionSelectInvoker extends LionButton {
_contentTemplate() {
if (this.selectedElement) {
- const labelNodes = Array.from(this.selectedElement.querySelectorAll('*'));
+ const labelNodes = Array.from(this.selectedElement.childNodes);
if (labelNodes.length > 0) {
return labelNodes.map(node => node.cloneNode(true));
}
@@ -113,11 +113,7 @@ export class LionSelectInvoker extends LionButton {
}
_beforeTemplate() {
- return html`
-
- ${this._contentTemplate()}
-
- `;
+ return html` ${this._contentTemplate()}
`;
}
// eslint-disable-next-line class-methods-use-this
diff --git a/packages/select-rich/test/lion-select-invoker.test.js b/packages/select-rich/test/lion-select-invoker.test.js
index d2277fbf0..6ced4afc8 100644
--- a/packages/select-rich/test/lion-select-invoker.test.js
+++ b/packages/select-rich/test/lion-select-invoker.test.js
@@ -11,11 +11,14 @@ describe('lion-select-invoker', () => {
it('renders invoker info based on selectedElement child elements', async () => {
const el = await fixture(html` `);
- el.selectedElement = await fixture(``);
+ el.selectedElement = await fixture(
+ ``,
+ );
await el.updateComplete;
expect(el._contentWrapperNode).lightDom.to.equal(
`
+ Textnode
I am
2 lines
`,
diff --git a/packages/switch/src/LionSwitch.js b/packages/switch/src/LionSwitch.js
index e54e9d9c2..872e2cff3 100644
--- a/packages/switch/src/LionSwitch.js
+++ b/packages/switch/src/LionSwitch.js
@@ -38,12 +38,8 @@ export class LionSwitch extends ScopedElementsMixin(ChoiceInputMixin(LionField))
*/
render() {
return html`
-
- ${this._groupOneTemplate()}
-
-
- ${this._groupTwoTemplate()}
-
+ ${this._groupOneTemplate()}
+ ${this._groupTwoTemplate()}
`;
}
diff --git a/packages/tabs/README.md b/packages/tabs/README.md
index f3b4e6269..c9ad0f26b 100644
--- a/packages/tabs/README.md
+++ b/packages/tabs/README.md
@@ -18,13 +18,9 @@ export default {
export const main = () => html`
Info
-
- Info page with lots of information about us.
-
+ Info page with lots of information about us.
Work
-
- Work page that showcases our work.
-
+ Work page that showcases our work.
`;
```
@@ -48,13 +44,9 @@ import '@lion/tabs/lion-tabs.js';
```html
Info
-
- Info page with lots of information about us.
-
+ Info page with lots of information about us.
Work
-
- Work page that showcases our work.
-
+ Work page that showcases our work.
```
@@ -68,13 +60,9 @@ You can set the `selectedIndex` to select a certain tab.
export const selectedIndex = () => html`
Info
-
- Info page with lots of information about us.
-
+ Info page with lots of information about us.
Work
-
- Work page that showcases our work.
-
+ Work page that showcases our work.
`;
```
@@ -90,12 +78,8 @@ export const slotsOrder = () => html`
Info
Work
-
- Info page with lots of information about us.
-
-
- Work page that showcases our work.
-
+ Info page with lots of information about us.
+ Work page that showcases our work.
`;
```
@@ -125,9 +109,7 @@ export const distributeNewElement = () => {
tab 2
panel 2
-
- Append
-
+ Append
Push
@@ -142,9 +124,7 @@ export const distributeNewElement = () => {
`,
)}
-
- Push
-
+ Push
`;
}
constructor() {
diff --git a/packages/tooltip/src/LionTooltip.js b/packages/tooltip/src/LionTooltip.js
index c7cd02db2..dcb69dd68 100644
--- a/packages/tooltip/src/LionTooltip.js
+++ b/packages/tooltip/src/LionTooltip.js
@@ -102,9 +102,7 @@ export class LionTooltip extends OverlayMixin(LitElement) {
-
- ${this._arrowTemplate()}
-
+
${this._arrowTemplate()}
`;
}
diff --git a/packages/tooltip/test/lion-tooltip.test.js b/packages/tooltip/test/lion-tooltip.test.js
index f47c7d5a7..f7d4111dd 100644
--- a/packages/tooltip/test/lion-tooltip.test.js
+++ b/packages/tooltip/test/lion-tooltip.test.js
@@ -126,9 +126,7 @@ describe('lion-tooltip', () => {
}}"
style="position: relative; top: 10px;"
>
-
- Hey there
-
+ Hey there
Tooltip button
`);
diff --git a/tsconfig.json b/tsconfig.json
index bf14436e6..93fe4a470 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -11,26 +11,15 @@
"noImplicitThis": true,
"alwaysStrict": true,
"types": ["node", "mocha", "sinon"],
- "esModuleInterop": true
+ "esModuleInterop": true,
+ "suppressImplicitAnyIndexErrors": true
},
"include": [
"packages/core/**/*.js",
"packages/tabs/**/*.js",
"packages/singleton-manager/**/*.js",
"packages/localize/**/*.js",
- "packages/localize/**/*.ts",
- "packages/form-core/src/registration/*.js",
- "packages/form-core/test/registration/*.js",
- "packages/form-core/src/utils/*.js",
- "packages/form-core/test/utils/*.js",
- "packages/form-core/src/FocusMixin.js",
- "packages/form-core/test/FocusMixin.test.js",
- "packages/form-core/src/FormControlMixin.js",
- "packages/form-core/test/FormControlMixin.test.js",
- "packages/form-core/src/InteractionStateMixin.js",
- "packages/form-core/test/InteractionStateMixin.test.js",
- "packages/form-core/src/FormatMixin.js",
- "packages/form-core/test/FormatMixin.test.js"
+ "packages/form-core/**/*.js"
],
"exclude": [
"node_modules",
diff --git a/yarn.lock b/yarn.lock
index 29ed43917..7928ea266 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -47,19 +47,19 @@
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/core@^7.10.1", "@babel/core@^7.10.5", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@^7.9.0":
- version "7.11.1"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.1.tgz#2c55b604e73a40dc21b0e52650b11c65cf276643"
- integrity sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==
+"@babel/core@^7.10.1", "@babel/core@^7.10.5", "@babel/core@^7.11.1", "@babel/core@^7.7.5", "@babel/core@^7.8.4":
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.5.tgz#6ad96e2f71899ea3f9b651f0a911e85205d1ff6d"
+ integrity sha512-fsEANVOcZHzrsV6dMVWqpSeXClq3lNbYrfFGme6DE25FQWe7pyeYpXyx9guqUnpy466JLzZ8z4uwSr2iv60V5Q==
dependencies:
"@babel/code-frame" "^7.10.4"
- "@babel/generator" "^7.11.0"
+ "@babel/generator" "^7.11.5"
"@babel/helper-module-transforms" "^7.11.0"
"@babel/helpers" "^7.10.4"
- "@babel/parser" "^7.11.1"
+ "@babel/parser" "^7.11.5"
"@babel/template" "^7.10.4"
- "@babel/traverse" "^7.11.0"
- "@babel/types" "^7.11.0"
+ "@babel/traverse" "^7.11.5"
+ "@babel/types" "^7.11.5"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
@@ -67,7 +67,7 @@
lodash "^4.17.19"
resolve "^1.3.2"
semver "^5.4.1"
- source-map "^0.5.0"
+ source-map "^0.6.1"
"@babel/generator@7.0.0-beta.44":
version "7.0.0-beta.44"
@@ -80,14 +80,14 @@
source-map "^0.5.0"
trim-right "^1.0.1"
-"@babel/generator@^7.10.5", "@babel/generator@^7.11.0", "@babel/generator@^7.9.6":
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c"
- integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==
+"@babel/generator@^7.10.5", "@babel/generator@^7.11.5", "@babel/generator@^7.9.6":
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.5.tgz#a5582773425a468e4ba269d9a1f701fbca6a7a82"
+ integrity sha512-9UqHWJ4IwRTy4l0o8gq2ef8ws8UPzvtMkVKjTLAiRmza9p9V6Z+OfuNd9fB1j5Q67F+dVJtPC2sZXI8NM9br4g==
dependencies:
- "@babel/types" "^7.11.0"
+ "@babel/types" "^7.11.5"
jsesc "^2.5.1"
- source-map "^0.5.0"
+ source-map "^0.6.1"
"@babel/helper-annotate-as-pure@^7.10.4":
version "7.10.4"
@@ -105,13 +105,13 @@
"@babel/types" "^7.10.4"
"@babel/helper-builder-react-jsx-experimental@^7.10.4":
- version "7.10.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz#f35e956a19955ff08c1258e44a515a6d6248646b"
- integrity sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz#4ea43dd63857b0a35cd1f1b161dc29b43414e79f"
+ integrity sha512-Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.10.4"
"@babel/helper-module-imports" "^7.10.4"
- "@babel/types" "^7.10.5"
+ "@babel/types" "^7.11.5"
"@babel/helper-builder-react-jsx@^7.10.4":
version "7.10.4"
@@ -163,11 +163,10 @@
lodash "^4.17.19"
"@babel/helper-explode-assignable-expression@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c"
- integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz#2d8e3470252cc17aba917ede7803d4a7a276a41b"
+ integrity sha512-ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==
dependencies:
- "@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
"@babel/helper-function-name@7.0.0-beta.44":
@@ -256,14 +255,13 @@
lodash "^4.17.19"
"@babel/helper-remap-async-to-generator@^7.10.4":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5"
- integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==
+ version "7.11.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d"
+ integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==
dependencies:
"@babel/helper-annotate-as-pure" "^7.10.4"
"@babel/helper-wrap-function" "^7.10.4"
"@babel/template" "^7.10.4"
- "@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
"@babel/helper-replace-supers@^7.10.4":
@@ -320,7 +318,7 @@
"@babel/traverse" "^7.10.4"
"@babel/types" "^7.10.4"
-"@babel/helpers@^7.10.4", "@babel/helpers@^7.9.2":
+"@babel/helpers@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044"
integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==
@@ -347,10 +345,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.10.5", "@babel/parser@^7.11.0", "@babel/parser@^7.11.1", "@babel/parser@^7.5.5", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6":
- version "7.11.3"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.3.tgz#9e1eae46738bcd08e23e867bab43e7b95299a8f9"
- integrity sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.10.4", "@babel/parser@^7.10.5", "@babel/parser@^7.11.5", "@babel/parser@^7.5.5", "@babel/parser@^7.7.0", "@babel/parser@^7.9.6":
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037"
+ integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==
"@babel/plugin-proposal-async-generator-functions@^7.10.4":
version "7.10.5"
@@ -369,7 +367,7 @@
"@babel/helper-create-class-features-plugin" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-proposal-dynamic-import@^7.10.4", "@babel/plugin-proposal-dynamic-import@^7.8.3":
+"@babel/plugin-proposal-dynamic-import@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e"
integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==
@@ -401,7 +399,7 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4", "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3":
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==
@@ -443,7 +441,7 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
-"@babel/plugin-proposal-optional-chaining@^7.11.0", "@babel/plugin-proposal-optional-chaining@^7.9.0":
+"@babel/plugin-proposal-optional-chaining@^7.11.0":
version "7.11.0"
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076"
integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==
@@ -496,7 +494,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.2.0", "@babel/plugin-syntax-import-meta@^7.8.3":
+"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.2.0":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
@@ -695,7 +693,7 @@
"@babel/helper-simple-access" "^7.10.4"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-systemjs@^7.10.4", "@babel/plugin-transform-modules-systemjs@^7.10.5", "@babel/plugin-transform-modules-systemjs@^7.9.0":
+"@babel/plugin-transform-modules-systemjs@^7.10.4", "@babel/plugin-transform-modules-systemjs@^7.10.5":
version "7.10.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85"
integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==
@@ -774,10 +772,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
-"@babel/plugin-transform-runtime@^7.9.0":
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf"
- integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==
+"@babel/plugin-transform-runtime@^7.11.0":
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz#f108bc8e0cf33c37da031c097d1df470b3a293fc"
+ integrity sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg==
dependencies:
"@babel/helper-module-imports" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
@@ -838,9 +836,9 @@
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/preset-env@^7.10.4", "@babel/preset-env@^7.8.4", "@babel/preset-env@^7.9.0":
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796"
- integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272"
+ integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==
dependencies:
"@babel/compat-data" "^7.11.0"
"@babel/helper-compilation-targets" "^7.10.4"
@@ -904,7 +902,7 @@
"@babel/plugin-transform-unicode-escapes" "^7.10.4"
"@babel/plugin-transform-unicode-regex" "^7.10.4"
"@babel/preset-modules" "^0.1.3"
- "@babel/types" "^7.11.0"
+ "@babel/types" "^7.11.5"
browserslist "^4.12.0"
core-js-compat "^3.6.2"
invariant "^2.2.2"
@@ -912,9 +910,9 @@
semver "^5.5.0"
"@babel/preset-modules@^0.1.3":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
- integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e"
+ integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==
dependencies:
"@babel/helper-plugin-utils" "^7.0.0"
"@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
@@ -923,9 +921,9 @@
esutils "^2.0.2"
"@babel/register@^7.5.5":
- version "7.10.5"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89"
- integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw==
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.11.5.tgz#79becf89e0ddd0fba8b92bc279bc0f5d2d7ce2ea"
+ integrity sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==
dependencies:
find-cache-dir "^2.0.0"
lodash "^4.17.19"
@@ -975,17 +973,17 @@
invariant "^2.2.0"
lodash "^4.2.0"
-"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5", "@babel/traverse@^7.11.0", "@babel/traverse@^7.5.5", "@babel/traverse@^7.7.0":
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24"
- integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==
+"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5", "@babel/traverse@^7.11.5", "@babel/traverse@^7.5.5", "@babel/traverse@^7.7.0":
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3"
+ integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==
dependencies:
"@babel/code-frame" "^7.10.4"
- "@babel/generator" "^7.11.0"
+ "@babel/generator" "^7.11.5"
"@babel/helper-function-name" "^7.10.4"
"@babel/helper-split-export-declaration" "^7.11.0"
- "@babel/parser" "^7.11.0"
- "@babel/types" "^7.11.0"
+ "@babel/parser" "^7.11.5"
+ "@babel/types" "^7.11.5"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.19"
@@ -999,10 +997,10 @@
lodash "^4.2.0"
to-fast-properties "^2.0.0"
-"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0":
- version "7.11.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d"
- integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==
+"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.9.0":
+ version "7.11.5"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d"
+ integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==
dependencies:
"@babel/helper-validator-identifier" "^7.10.4"
lodash "^4.17.19"
@@ -1046,12 +1044,12 @@
resolve-from "^5.0.0"
semver "^5.4.1"
-"@changesets/assemble-release-plan@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-3.0.0.tgz#23c280b0ea352003302b0c262b8dadb8bda517ed"
- integrity sha512-TvcqUhNhKoqwE+L8dFtcwwAmos4+fqwmSkOWP3TSjw7K/inz2wjC46bA7IFtbx2hrwEq1iG0RCweQZTS2vrx1w==
+"@changesets/assemble-release-plan@^3.0.0", "@changesets/assemble-release-plan@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@changesets/assemble-release-plan/-/assemble-release-plan-3.0.1.tgz#cd501d0c57d435a594fc7bb630fa589d5b75c2a0"
+ integrity sha512-PChmYuibH8RPiebMIzuYZ/DFS8ehf7yq+X5X0rJklg2njP3zYWJX7nlctpnBhZ0zpgvP2IgrtUigoVGNkv5m/Q==
dependencies:
- "@babel/runtime" "^7.4.4"
+ "@babel/runtime" "^7.10.4"
"@changesets/errors" "^0.1.4"
"@changesets/get-dependents-graph" "^1.1.3"
"@changesets/types" "^3.1.0"
@@ -1059,13 +1057,13 @@
semver "^5.4.1"
"@changesets/cli@^2.9.2":
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.10.1.tgz#b97c50c6405fb4a24108bb0a2ed155ea07e2d7bd"
- integrity sha512-l/Uxon6/zMyj+BPrgeq6SwAwgukH4PlN4+Y6Tp4mWuXjDcDOZdtEae3AEomWdNlaoOPidw8KcqVxjZu9k3KVNA==
+ version "2.10.2"
+ resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.10.2.tgz#85a7a8d8aca2ef682c671f352645bc75c72f9b85"
+ integrity sha512-m4YwTmT0ElOuBD3GCbbT75EWmdU4uCFARE4X+Ml1/knc4Z/MEzOjV0bi0/9eHACcQIMNg7rdB6f4vXtHiQU6bA==
dependencies:
"@babel/runtime" "^7.10.4"
"@changesets/apply-release-plan" "^4.0.0"
- "@changesets/assemble-release-plan" "^3.0.0"
+ "@changesets/assemble-release-plan" "^3.0.1"
"@changesets/config" "^1.3.0"
"@changesets/errors" "^0.1.4"
"@changesets/get-dependents-graph" "^1.1.3"
@@ -1650,23 +1648,23 @@
fastq "^1.6.0"
"@open-wc/building-rollup@^1.2.1":
- version "1.7.1"
- resolved "https://registry.yarnpkg.com/@open-wc/building-rollup/-/building-rollup-1.7.1.tgz#9db8bf8f366575c2fc47423e37dd0901cdadd9bc"
- integrity sha512-KptiteMVfcaB96CBLUL2e1A/X6qEcnxCKMHfef9b2iMy8tuBPUtm0+gzIlv/FyTSW8Fh4HIeb+SdYgA22I2BkA==
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/@open-wc/building-rollup/-/building-rollup-1.8.0.tgz#137fe15f0b90e62d28e1a83549309ffddf9e5a36"
+ integrity sha512-DuaBtbMlb8llBp3K0hVACbq7My/jc9PeGsfIxx/qwE2uzkTcYkedHi62rhKFWG2gLvcSPdFDxzZt/klhRWlxIQ==
dependencies:
- "@babel/core" "^7.9.0"
- "@babel/helpers" "^7.9.2"
- "@babel/plugin-proposal-dynamic-import" "^7.8.3"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-proposal-optional-chaining" "^7.9.0"
+ "@babel/core" "^7.11.1"
+ "@babel/helpers" "^7.10.4"
+ "@babel/plugin-proposal-dynamic-import" "^7.10.4"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
+ "@babel/plugin-proposal-optional-chaining" "^7.11.0"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
- "@babel/plugin-transform-modules-systemjs" "^7.9.0"
- "@babel/plugin-transform-runtime" "^7.9.0"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-transform-modules-systemjs" "^7.10.5"
+ "@babel/plugin-transform-runtime" "^7.11.0"
"@babel/preset-env" "^7.9.0"
- "@open-wc/building-utils" "^2.18.0"
- "@open-wc/rollup-plugin-html" "^1.2.2"
- "@open-wc/rollup-plugin-polyfills-loader" "^1.1.3"
+ "@open-wc/building-utils" "^2.18.1"
+ "@open-wc/rollup-plugin-html" "^1.2.3"
+ "@open-wc/rollup-plugin-polyfills-loader" "^1.1.4"
"@rollup/plugin-babel" "^5.1.0"
"@rollup/plugin-node-resolve" "^7.1.1"
babel-plugin-bundled-import-meta "^0.3.2"
@@ -1680,12 +1678,12 @@
rollup-plugin-workbox "^5.0.1"
terser "^4.6.7"
-"@open-wc/building-utils@^2.18.0":
- version "2.18.0"
- resolved "https://registry.yarnpkg.com/@open-wc/building-utils/-/building-utils-2.18.0.tgz#f80929dfcfb6d8a6cb5c933654c721808b4bb2d3"
- integrity sha512-U1n8sLQlLt3IuqhU7tDsGQAGUfVMiB64xJsAmJEtekposrjqkjtRLU/WipvROl1A2GTsrMojMjNbFqzJghpd6g==
+"@open-wc/building-utils@^2.18.1":
+ version "2.18.1"
+ resolved "https://registry.yarnpkg.com/@open-wc/building-utils/-/building-utils-2.18.1.tgz#30f55602478a1ecc019e6d8ee72f38d6f7121c27"
+ integrity sha512-FBSlR94BwrVlHcaWSESzlYOVLqrUKnC8L88yHajCm/cONaEWYhP/O7SXVHgLnXkjYbCgCGMKbq6fuSnwf5jElQ==
dependencies:
- "@babel/core" "^7.9.0"
+ "@babel/core" "^7.11.1"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@webcomponents/shadycss" "^1.9.4"
"@webcomponents/webcomponentsjs" "^2.4.0"
@@ -1726,27 +1724,27 @@
integrity sha512-UfdK1MPnR6T7f3svzzYBfu3qBkkZ/KsPhcpc3JYhsUY4hbpwNF9wEQtD4Z+/mRqMTJrKg++YSxIxE0FBhY3RIw==
"@open-wc/demoing-storybook@^2.0.2":
- version "2.3.19"
- resolved "https://registry.yarnpkg.com/@open-wc/demoing-storybook/-/demoing-storybook-2.3.19.tgz#7d79ebe4935d21f6f298dd278b63577630156ff7"
- integrity sha512-98rxWsrhyJkfFgu7MFC4LXXU0I6s3QOlFvo7mnpKv9tJvDvaUQ1QblZJMpw2YqpmsT3gacznfDtPOUAld7Ma/w==
+ version "2.3.20"
+ resolved "https://registry.yarnpkg.com/@open-wc/demoing-storybook/-/demoing-storybook-2.3.20.tgz#8aad7985d79365fe9af63a1ad392084ca81ded8c"
+ integrity sha512-vaF4Rf9/Vva9FsbvMAA/NlPLW6CwLjMsub/6Z5Nha5icRVzlhvGV1BBenUqqy9dT9BL+1WH/j3MEgt8c2KxK4A==
dependencies:
- "@babel/core" "^7.9.0"
+ "@babel/core" "^7.11.1"
"@babel/generator" "^7.9.6"
"@babel/parser" "^7.9.6"
- "@babel/plugin-proposal-dynamic-import" "^7.8.3"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-proposal-dynamic-import" "^7.10.4"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
"@babel/plugin-transform-react-jsx" "^7.9.1"
"@babel/preset-env" "^7.9.0"
"@mdx-js/mdx" "^1.5.1"
- "@open-wc/rollup-plugin-html" "^1.2.2"
- "@open-wc/rollup-plugin-polyfills-loader" "^1.1.3"
+ "@open-wc/rollup-plugin-html" "^1.2.3"
+ "@open-wc/rollup-plugin-polyfills-loader" "^1.1.4"
"@rollup/plugin-node-resolve" "^7.1.1"
babel-plugin-bundled-import-meta "^0.3.2"
babel-plugin-template-html-minifier "^4.0.0"
command-line-args "^5.0.2"
command-line-usage "^6.1.0"
deepmerge "^4.2.2"
- es-dev-server "^1.57.3"
+ es-dev-server "^1.57.4"
es-module-lexer "^0.3.13"
fs-extra "^8.1.0"
glob "^7.1.3"
@@ -1757,7 +1755,7 @@
rollup "^2.7.2"
rollup-plugin-babel "^5.0.0-alpha.1"
rollup-plugin-terser "^5.2.0"
- storybook-addon-markdown-docs "^0.4.1"
+ storybook-addon-markdown-docs "^0.4.2"
storybook-prebuilt "^1.5.0"
"@open-wc/eslint-config@^1.0.0":
@@ -1773,12 +1771,12 @@
eslint-plugin-no-only-tests "^2.3.1"
eslint-plugin-wc "^1.2.0"
-"@open-wc/rollup-plugin-html@^1.2.2":
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/@open-wc/rollup-plugin-html/-/rollup-plugin-html-1.2.2.tgz#2e173c60e5ea720826fe0a24541dfbc84698e3af"
- integrity sha512-PSbethh+Pz71YlZGa8alhg9TiYNqdJ0aDZbG69EMX6ZRy2MamMQfr6iylGuNx2VxHZB0Ho9T0dLZ/vsbe/oiiw==
+"@open-wc/rollup-plugin-html@^1.2.3":
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/@open-wc/rollup-plugin-html/-/rollup-plugin-html-1.2.3.tgz#f5666d641551f26253b53466e2173d17a02899d4"
+ integrity sha512-0Xd90QrOHTN8OIlAK+RWdp2SiscRpwWHpootLHVoyz3nUZPy6sjE5W6gGlZHe2Zc59iBs7ai+CecH2RlaqrX2A==
dependencies:
- "@open-wc/building-utils" "^2.18.0"
+ "@open-wc/building-utils" "^2.18.1"
"@types/html-minifier" "^3.5.3"
fs-extra "^8.1.0"
glob "^7.1.3"
@@ -1786,15 +1784,15 @@
parse5 "^5.1.1"
terser "^4.6.7"
-"@open-wc/rollup-plugin-polyfills-loader@^1.1.3":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@open-wc/rollup-plugin-polyfills-loader/-/rollup-plugin-polyfills-loader-1.1.3.tgz#56bcd9890a6b9dddde0cb629a0a3d9df27c1b4e3"
- integrity sha512-0hL8DQ2QXAClDSrevMhJZcleEa837f7JvGwzbySGgMCWiip+tKIqbWKOd/N0ZFC94bBUmnX6MV5nl6grXoYW0w==
+"@open-wc/rollup-plugin-polyfills-loader@^1.1.4":
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/@open-wc/rollup-plugin-polyfills-loader/-/rollup-plugin-polyfills-loader-1.1.4.tgz#fdce9570be1d2823424a46e2a261a5c1a9abe659"
+ integrity sha512-jNUdsmVgSwiRriEzbaeiR8CB3YDyw0Vljt/35A4iluMyNst8S1S0v7aDi0aa6h0MzmC7JRAP6EEpJ2QfjzmY5A==
dependencies:
- "@open-wc/rollup-plugin-html" "^1.2.2"
- polyfills-loader "^1.7.0"
+ "@open-wc/rollup-plugin-html" "^1.2.3"
+ polyfills-loader "^1.7.1"
-"@open-wc/scoped-elements@^1.0.3", "@open-wc/scoped-elements@^1.2.2":
+"@open-wc/scoped-elements@^1.2.2":
version "1.2.2"
resolved "https://registry.yarnpkg.com/@open-wc/scoped-elements/-/scoped-elements-1.2.2.tgz#e1eb9fbbedf2ba56ca07174bf17e7910da9964a7"
integrity sha512-C3JU79gNBmcxqKqZ8aTargPmBBwQvyws6lhfZ+9I0NH8SKk0k6ExjzyUwsDa2i/kbhBuUE5NebaDZJM5Jw4/6w==
@@ -1807,10 +1805,10 @@
resolved "https://registry.yarnpkg.com/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.13.21.tgz#718b9ec5f9a98935fc775e577ad094ae8d8b7dea"
integrity sha512-BONpjHcGX2zFa9mfnwBCLEmlDsOHzT+j6Qt1yfK3MzFXFtAykfzFjAgaxPetu0YbBlCfXuMlfxI4vlRGCGMvFg==
-"@open-wc/semantic-dom-diff@^0.17.9":
- version "0.17.9"
- resolved "https://registry.yarnpkg.com/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.17.9.tgz#15ed61dfdf7a01ebbf21755527e25c90c78bf5e2"
- integrity sha512-wO4xM3FhLmGGZM3wDexUPFb55tqVX45LJQ9l3uNKj1Roi0/aV1KjIohdE2J0zUJivfCxAWo1Dy45hNkCHO4CVA==
+"@open-wc/semantic-dom-diff@^0.17.10":
+ version "0.17.10"
+ resolved "https://registry.yarnpkg.com/@open-wc/semantic-dom-diff/-/semantic-dom-diff-0.17.10.tgz#3adbff47577f69825edc74585d4950b9197531c8"
+ integrity sha512-7RAJqHsaFGA8LoBlgaScTxSu5FXga89Af1RXv3n/Rmv/x/W5mmyIKMfUR3F/RJofm2/FwnLWtaHgwS9qB1eNfg==
dependencies:
"@types/chai" "^4.2.11"
@@ -1824,12 +1822,12 @@
lit-html "^1.0.0"
"@open-wc/testing@^2.5.18":
- version "2.5.24"
- resolved "https://registry.yarnpkg.com/@open-wc/testing/-/testing-2.5.24.tgz#3d77e2d37ec77d19340c433664657d95ad3c4eef"
- integrity sha512-O/SmqCAAdU8bsPAfNID1SBP0vG/pIBjGsVyrsGrEPpvcoqZzatMVDTDI+VXRB7zjIStIp6nX95PORgG+w71m+A==
+ version "2.5.25"
+ resolved "https://registry.yarnpkg.com/@open-wc/testing/-/testing-2.5.25.tgz#eee70aa1876465e7cc85afbba576e628901a621a"
+ integrity sha512-j+i3YDLDmarb2ZRy/NdRY/y2PyEB48rrMUJrOg1/yxmgAp9xACVeQROBFL1h7I3HgyaG84KPXhJ8T6GRXUR7Qg==
dependencies:
"@open-wc/chai-dom-equals" "^0.12.36"
- "@open-wc/semantic-dom-diff" "^0.17.9"
+ "@open-wc/semantic-dom-diff" "^0.17.10"
"@open-wc/testing-helpers" "^1.8.9"
"@types/chai" "^4.2.11"
"@types/chai-dom" "^0.0.9"
@@ -2206,9 +2204,9 @@
"@types/node" "*"
"@types/express-serve-static-core@*":
- version "4.17.9"
- resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.9.tgz#2d7b34dcfd25ec663c25c85d76608f8b249667f1"
- integrity sha512-DG0BYg6yO+ePW+XoDENYz8zhNGC3jDDEpComMYn7WJc4mY1Us8Rw9ax2YhJXxpyk2SF47PQAoQ0YyVT1a0bEkA==
+ version "4.17.10"
+ resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.10.tgz#2b6a49f28f7aaa3c875338c65c41ef55cd8ae62a"
+ integrity sha512-hkM+0ydGOwKRuxcDSjFas/zpC6htqcIcYG5gdPOP1bAhszBi+eB2PlMfUUXkI0EQSG1Xbgn7IZ+yD6GVYsqB2Q==
dependencies:
"@types/node" "*"
"@types/qs" "*"
@@ -2357,9 +2355,9 @@
integrity sha512-vyxR57nv8NfcU0GZu8EUXZLTbCMupIUwy95LJ6lllN+JRPG25CwMHoB1q5xKh8YKhQnHYRAn4yW2yuHbf/5xgg==
"@types/node@*":
- version "14.6.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.0.tgz#7d4411bf5157339337d7cff864d9ff45f177b499"
- integrity sha512-mikldZQitV94akrc4sCcSjtJfsTKt4p+e/s0AGscVA6XArQ9kFclP+ZiYUMnq987rc6QlYxXv/EivqlfSLxpKA==
+ version "14.6.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.6.2.tgz#264b44c5a28dfa80198fc2f7b6d3c8a054b9491f"
+ integrity sha512-onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==
"@types/node@^12.7.1":
version "12.12.54"
@@ -2446,9 +2444,9 @@
"@types/sinon" "*"
"@types/sinon@*":
- version "9.0.4"
- resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.4.tgz#e934f904606632287a6e7f7ab0ce3f08a0dad4b1"
- integrity sha512-sJmb32asJZY6Z2u09bl0G2wglSxDlROlAejCjsnor+LzBMz17gu8IU7vKC/vWDnv9zEq2wqADHVXFjf4eE8Gdw==
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-9.0.5.tgz#56b2a12662dd8c7d081cdc511af5f872cb37377f"
+ integrity sha512-4CnkGdM/5/FXDGqL32JQ1ttVrGvhOoesLLF7VnTh4KdjK5N5VQOtxaylFqqTjnHx55MnD9O02Nbk5c1ELC8wlQ==
dependencies:
"@types/sinonjs__fake-timers" "*"
@@ -2503,10 +2501,10 @@
semver "^7.3.2"
tsutils "^3.17.1"
-"@web/browser-logs@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@web/browser-logs/-/browser-logs-0.1.1.tgz#4c323fa8a1a40645c5e6c53284e2e0ff7d6c3cdf"
- integrity sha512-TpUHhGNWdryftxEx/caLPnNPd8AM2EybncYS5TurAywW0e4eTTAiGc9fJOmXRczvHdgRkyD+Z8/9Hxuyz1gorQ==
+"@web/browser-logs@^0.1.2":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@web/browser-logs/-/browser-logs-0.1.3.tgz#288b8f21d745cb8e643e59936079dc77c03470f2"
+ integrity sha512-MJT3R+gOEa38kDFmXM79BqXb+hGgoo9D061tfcnfzNgwLpYklsBTjBvB/MJDqFAx0zu2SipGA/+WPgzrnud8Qw==
"@web/config-loader@^0.1.1":
version "0.1.1"
@@ -2515,14 +2513,15 @@
dependencies:
semver "^7.3.2"
-"@web/dev-server-core@^0.2.0", "@web/dev-server-core@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@web/dev-server-core/-/dev-server-core-0.2.1.tgz#a443b248c6baa3ced0532991bc8a45fff73f58f3"
- integrity sha512-7bVTQ24FxqmMus1tdqrl2Q4+ZFHJORg1tM2DEZG2BYCOWUbpDnc3k5fHc5EjsZM1+efaYwuQli3lUwQlVKx1ww==
+"@web/dev-server-core@^0.2.2", "@web/dev-server-core@^0.2.6":
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/@web/dev-server-core/-/dev-server-core-0.2.6.tgz#522e524056e184d691138a76f0afa605b639160b"
+ integrity sha512-C04oUS5LijC5rLurH/+5uRkgRgD9EVAY9tHi+TZv/57a3QvvPME6ipKbA6MFvkLdeiSdYLKNTY/shjukGfNrcg==
dependencies:
chokidar "^3.4.0"
clone "^2.1.2"
es-module-lexer "^0.3.24"
+ get-stream "^6.0.0"
is-stream "^2.0.0"
isbinaryfile "^4.0.6"
koa "^2.13.0"
@@ -2533,10 +2532,10 @@
parse5 "^6.0.0"
picomatch "^2.2.2"
-"@web/dev-server-legacy@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@web/dev-server-legacy/-/dev-server-legacy-0.1.1.tgz#1f719610710aaf5608b952defa901c8590173201"
- integrity sha512-mf/p35fOtT05PTdFQsJy8B69lhXn7JfOaGJTg0bijm1QH7NTkT50ECAL3l76B9bk5ExmYWRSIqLKhq3iFTJOCA==
+"@web/dev-server-legacy@^0.1.1", "@web/dev-server-legacy@^0.1.2":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@web/dev-server-legacy/-/dev-server-legacy-0.1.3.tgz#3b508062b14b502a1b8621802875ba01b234d690"
+ integrity sha512-PbsDnRKfiCtN5hSrxVpT1EOZofpEl009oF72m30YOu/m+cIef6rAPyk+MgKNXsiq3iob+u/zYqTKj0F5/jVj1A==
dependencies:
"@babel/core" "^7.10.5"
"@babel/plugin-proposal-dynamic-import" "^7.10.4"
@@ -2546,7 +2545,7 @@
"@babel/plugin-transform-modules-systemjs" "^7.10.5"
"@babel/plugin-transform-template-literals" "^7.10.5"
"@babel/preset-env" "^7.10.4"
- "@web/dev-server-core" "^0.2.1"
+ "@web/dev-server-core" "^0.2.2"
browserslist "^4.13.0"
browserslist-useragent "^3.0.3"
caniuse-api "^3.0.0"
@@ -2554,53 +2553,54 @@
polyfills-loader "^1.6.1"
valid-url "^1.0.9"
-"@web/dev-server-rollup@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@web/dev-server-rollup/-/dev-server-rollup-0.2.1.tgz#17f2169e4b60757e9a202dbd7d3b87891e5caf6a"
- integrity sha512-Csg9EfZfyuxbFChnr77mW/2LZhJPIre8KObsPqP3q4ZX69ksXcKPge/+OMA7suILbBNCprzkA+YwjHlRzKLO5Q==
+"@web/dev-server-rollup@^0.2.4":
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/@web/dev-server-rollup/-/dev-server-rollup-0.2.4.tgz#45bb4595eee9af1b3f1b23ebd623ee7bc53922b2"
+ integrity sha512-NpW5BRkpzHZXtH73bH4JI/TqIuv4UHxo0LWjqN4V44xweC1mnTL6mzjYDy/HxfscrYs6pp1s2d+hJ2Lb5uldFQ==
dependencies:
- "@web/dev-server-core" "^0.2.1"
- "@web/test-runner-chrome" "^0.6.1"
- "@web/test-runner-core" "^0.7.1"
+ "@web/dev-server-core" "^0.2.6"
+ "@web/test-runner-chrome" "^0.6.4"
+ "@web/test-runner-core" "^0.7.5"
chalk "^4.1.0"
parse5 "^6.0.1"
rollup "^2.20.0"
whatwg-url "^8.1.0"
"@web/test-runner-browserstack@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-browserstack/-/test-runner-browserstack-0.1.1.tgz#a19ee13825357edec412fc201be79f58beba0b73"
- integrity sha512-8BrDpi9ECSe+1NFRhsC1E0ykHHpORLb2cB3R7VeCzPbIcnqh+pJyd5mifiP0wbIJyPAsyCt/Ifuo42HE0F0KwA==
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-browserstack/-/test-runner-browserstack-0.1.2.tgz#0bd155f100a2284c883788be1442aa097e5cf90f"
+ integrity sha512-5Itr3AJGSejskN/eh/wpJD1OH4hWLX7CoOTezru3SXKyz3t8TPc6YjnV5kulPuqbRxNeclFo5n7ETgrZbD0CvQ==
dependencies:
- "@web/dev-server-legacy" "^0.1.1"
- "@web/test-runner-selenium" "^0.2.1"
+ "@web/dev-server-legacy" "^0.1.2"
+ "@web/test-runner-selenium" "^0.2.2"
browserstack-local "^1.4.5"
ip "^1.1.5"
selenium-webdriver "^4.0.0-alpha.7"
uuid "^8.1.0"
-"@web/test-runner-chrome@^0.6.1":
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-chrome/-/test-runner-chrome-0.6.1.tgz#10d06e554a72d7e88d23b09dc7ec1d7fdaa4478d"
- integrity sha512-JLqrM/FtCbBqYDBiKXzsH91qC9verVQ9Lkv5gTI8DlYvgy01PijfBzzaIn63VBuUPS81Q50kv5f6hw8y4iG7Bg==
+"@web/test-runner-chrome@^0.6.4":
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-chrome/-/test-runner-chrome-0.6.4.tgz#b2ea3eb6cc1a2b84fae8e853eb1d95088a582c60"
+ integrity sha512-964G/EaxnUKVQGAbrd93GdeLGI3/o5SIl2wYRSai3d/5wFHmxmE/aaeUfXW3amC0LxvZS1SQ2bp+FdYfQDUUBA==
dependencies:
"@types/puppeteer-core" "^2.0.0"
- "@web/browser-logs" "^0.1.1"
- "@web/test-runner-core" "^0.7.1"
- "@web/test-runner-coverage-v8" "^0.1.1"
+ "@web/browser-logs" "^0.1.2"
+ "@web/test-runner-core" "^0.7.4"
+ "@web/test-runner-coverage-v8" "^0.1.2"
chrome-launcher "^0.13.3"
puppeteer-core "^5.0.0"
-"@web/test-runner-cli@^0.5.2":
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/@web/test-runner-cli/-/test-runner-cli-0.5.2.tgz#870a9bd62a342ccc4994e9873ca1018d73fa8009"
- integrity sha512-igy0lujUzquD9JrXFLEN/HSjhVxIESlvZVlNsYWDfBoZpj1MzURNdGiZJi6GCsyadbEhHsIWVyhu71/h3XwVOQ==
+"@web/test-runner-cli@^0.5.6":
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-cli/-/test-runner-cli-0.5.6.tgz#5552f91c8e2a3ee5066ab03362ef003d4a3923cc"
+ integrity sha512-S8NpnS3QMAmtkBVodpaBp1aIsYVDTTbUz374Vb4I7Y8oYJNp3vttqpwO99/+bTiG/UwKhUh8mhYHNsd/Gsg7tA==
dependencies:
"@babel/code-frame" "^7.10.4"
"@types/babel__code-frame" "^7.0.1"
- "@web/browser-logs" "^0.1.1"
+ "@web/browser-logs" "^0.1.2"
"@web/config-loader" "^0.1.1"
- "@web/test-runner-core" "^0.7.1"
+ "@web/test-runner-chrome" "^0.6.4"
+ "@web/test-runner-core" "^0.7.4"
camelcase "^6.0.0"
chalk "^4.1.0"
cli-cursor "^3.1.0"
@@ -2617,21 +2617,20 @@
portfinder "^1.0.26"
source-map "^0.7.3"
-"@web/test-runner-commands@^0.1.2":
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/@web/test-runner-commands/-/test-runner-commands-0.1.2.tgz#8a9405cb8fb177a2c5a05f299e699e0da9c36515"
- integrity sha512-apAvibdIxw5dRXwXP8P3To0fSqfIdP6qxaxOgQx8/RJdksL1s7rZCFmsme6lmEVGbf35I+Cu0QUqbsGWOIWA1A==
+"@web/test-runner-commands@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-commands/-/test-runner-commands-0.1.3.tgz#655312a427d819d908c141307fa31c074da4c8b1"
+ integrity sha512-T0aaDS52S6Pr1os+MGr62pPfaomgAOOyncmJLDOKA6j1gfpHrhKAkUKQv5ArunhdEo1NqxzBYD7yeKJ3P8lr9Q==
dependencies:
- "@web/test-runner-core" "^0.7.1"
+ "@web/test-runner-core" "^0.7.4"
-"@web/test-runner-core@^0.7.1", "@web/test-runner-core@^0.7.2":
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/@web/test-runner-core/-/test-runner-core-0.7.2.tgz#2f6f36844849349387660bca6d33239aa9b4e7cd"
- integrity sha512-ir7H4/jdWaKgGVQb6xd6krDQhWyNtfTrf9uE3OmJJ1QeFSDBUrzrVjYLABwoBEA0xdX+pQ6hjDQntiln9hx2hg==
+"@web/test-runner-core@^0.7.4", "@web/test-runner-core@^0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-core/-/test-runner-core-0.7.5.tgz#8050d97a4e275be122a2dc46334f02c05b52b358"
+ integrity sha512-5V9gEYL8a6nxurXKFR/RigRQdYs67jO7Mo3Uj/XbGO54guZktOLCsCtkPCSsYGuNkerVUpyOAKX76ftuOTwblQ==
dependencies:
"@babel/code-frame" "^7.10.4"
- "@web/dev-server-core" "^0.2.0"
- "@web/test-runner-core" "^0.7.2"
+ "@web/dev-server-core" "^0.2.6"
co-body "^6.0.0"
debounce "^1.2.0"
deepmerge "^4.2.2"
@@ -2640,63 +2639,63 @@
picomatch "^2.2.2"
uuid "^8.1.0"
-"@web/test-runner-coverage-v8@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.1.1.tgz#ae4d6c94969346db8ef617a08cde7e7d1a8fc1d0"
- integrity sha512-bDGn7Bja9IhpHAobgecTt9OTWuQKq/hOqyNRC7Pzofpni74D/wPQT2++qRdvGW+1+2iPAmg0QQ27tfRwHJWPww==
+"@web/test-runner-coverage-v8@^0.1.2":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.1.2.tgz#cab73c8fcf73db24c6e95c45b46bcc4016f10180"
+ integrity sha512-q/SsEQaP/cHy88aBR6VBQR01dZLsqVUPJ/vHzFQKIsFl08WntskIujmHDFd9tNghbKXkKNqXnzL0RA52NXWypg==
dependencies:
- "@web/test-runner-core" "^0.7.1"
+ "@web/test-runner-core" "^0.7.4"
istanbul-lib-coverage "^3.0.0"
v8-to-istanbul "^4.1.4"
-"@web/test-runner-mocha@^0.3.1":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-mocha/-/test-runner-mocha-0.3.1.tgz#6fcdd8369dfa218ab470d21585567cb57b313c87"
- integrity sha512-sfRVZiqxwrOgCSSjsOssMZB6vLZc0VmJe11PRVn6Q0nypGfRv1DiDHQ4RqO51L1JYQSTcRPQqTS8t7SN3XNZJQ==
+"@web/test-runner-mocha@^0.3.3":
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-mocha/-/test-runner-mocha-0.3.4.tgz#9fcd028a82d48b87170331df2502f39c42f4c61a"
+ integrity sha512-StHAzN9ed11KGMrWt3KCT2mGcSJKxzusrMPZ5WOErp3hN/4GSdss4daEOeLnB5MkueCSJ9q0n+dGDQSgKrLw3Q==
dependencies:
"@types/mocha" "^8.0.1"
mocha "^8.1.1"
"@web/test-runner-playwright@^0.5.1":
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-playwright/-/test-runner-playwright-0.5.1.tgz#bae2cf573315efef880a02702ae3ecea8f6b9140"
- integrity sha512-hKT7pkyvN379AnALZKS52y91wkHVlkFt/Y0w19Suf6AoOd6nkbDm1J1cl61STUUmz+YdKBw9wPNMu/FlEjg/Qg==
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-playwright/-/test-runner-playwright-0.5.4.tgz#2806dd38022b1ac678ff04b3384ceda29f0936d7"
+ integrity sha512-BECHlHwIju9cJr1PwmsLe8N6VKFjUlOvxhUJwiqYMg3G1g9cVGN+qMl1s5HP88AtOYKf8Wdzvgl57oB3vNPYMg==
dependencies:
- "@web/browser-logs" "^0.1.1"
- "@web/test-runner-core" "^0.7.1"
- "@web/test-runner-coverage-v8" "^0.1.1"
+ "@web/browser-logs" "^0.1.2"
+ "@web/test-runner-core" "^0.7.4"
+ "@web/test-runner-coverage-v8" "^0.1.2"
playwright "^1.3.0"
"@web/test-runner-puppeteer@^0.6.1":
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-puppeteer/-/test-runner-puppeteer-0.6.1.tgz#6a74e75f8a0251a8baa3044708eaee053ca21784"
- integrity sha512-1tZmBEJoUmnDYnbvvuAZFwFelXN6dhAxmdYc/RfKhm274Q00pMO5Dk+0sLYPdpSA5MKu673wMSlsldhBe1zClw==
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-puppeteer/-/test-runner-puppeteer-0.6.3.tgz#4c3a3210b74eba2609e078181dea4fbee84e5dba"
+ integrity sha512-oEBKRruEHYcxxbIwivQJ6+Oq0kmieAs8+5bwnXWLhMyKwgKD6GbXdrhNygto9o1ru4RFVrGhYuhpGIOmH0iRJw==
dependencies:
"@types/puppeteer" "^3.0.1"
- "@web/test-runner-chrome" "^0.6.1"
- "@web/test-runner-core" "^0.7.1"
+ "@web/test-runner-chrome" "^0.6.4"
+ "@web/test-runner-core" "^0.7.4"
puppeteer "^5.1.0"
-"@web/test-runner-selenium@^0.2.1":
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/@web/test-runner-selenium/-/test-runner-selenium-0.2.1.tgz#d9ffdf39152586b49389f82b358bc2dae3d659d9"
- integrity sha512-+rtwldguGKFAfSUc6ub3zP+cZ0KEC/5fyqYjjAPbv1k6XUay/dCSufrJsp+dsXOylZHEbQFcxaXj3ZGbVtELig==
+"@web/test-runner-selenium@^0.2.2":
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/@web/test-runner-selenium/-/test-runner-selenium-0.2.2.tgz#2c11b76b0e65ab5fd18606e379303224339294b9"
+ integrity sha512-T0MzYIuUTvBzkyQ2XucB3L0DaGiSsfvaRuvyp2bFID7wgSKu/5TlKKI/90OKJA0c23AjOtWIn584u2SNmEWzMA==
dependencies:
- "@web/test-runner-core" "^0.7.1"
+ "@web/test-runner-core" "^0.7.4"
selenium-webdriver "^4.0.0-alpha.7"
"@web/test-runner@^0.7.3":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@web/test-runner/-/test-runner-0.7.3.tgz#b52325e8ce0c967df72631e8faf22d1f09c49fab"
- integrity sha512-SzdP4efXdP56bZFvGer0Zc0SI2QR5xgGxLK2s9v9xZ6M4g31CiKd6/mHp33G3jxW4ABdJObfmCAL7Fq6N34Byg==
+ version "0.7.14"
+ resolved "https://registry.yarnpkg.com/@web/test-runner/-/test-runner-0.7.14.tgz#ac5840318d0f725a767b895fabeed83ae1e3fcbb"
+ integrity sha512-tbmEb/1H1KS1vgY6hRMhJgBtynRw+YRufptFkzwxsdAnMM6iHm6lCAGeFOBb96LawDBC+8IWauYtr/IHYLkhhg==
dependencies:
"@rollup/plugin-node-resolve" "^8.1.0"
- "@web/dev-server-rollup" "^0.2.1"
- "@web/test-runner-chrome" "^0.6.1"
- "@web/test-runner-cli" "^0.5.2"
- "@web/test-runner-commands" "^0.1.2"
- "@web/test-runner-core" "^0.7.1"
- "@web/test-runner-mocha" "^0.3.1"
+ "@web/dev-server-rollup" "^0.2.4"
+ "@web/test-runner-chrome" "^0.6.4"
+ "@web/test-runner-cli" "^0.5.6"
+ "@web/test-runner-commands" "^0.1.3"
+ "@web/test-runner-core" "^0.7.5"
+ "@web/test-runner-mocha" "^0.3.3"
command-line-args "^5.1.1"
deepmerge "^4.2.2"
@@ -2759,9 +2758,9 @@ agent-base@6:
debug "4"
aggregate-error@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
- integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+ integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
dependencies:
clean-stack "^2.0.0"
indent-string "^4.0.0"
@@ -3288,9 +3287,9 @@ binary-extensions@^2.0.0:
integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
bl@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a"
- integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489"
+ integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==
dependencies:
buffer "^5.5.0"
inherits "^2.0.4"
@@ -3557,9 +3556,9 @@ caniuse-api@^3.0.0:
lodash.uniq "^4.5.0"
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001033, caniuse-lite@^1.0.30001111:
- version "1.0.30001116"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001116.tgz#f3a3dea347f9294a3bdc4292309039cc84117fb8"
- integrity sha512-f2lcYnmAI5Mst9+g0nkMIznFGsArRmZ0qU+dnq8l91hymdc2J3SFbiPhOJEeDqC1vtE8nc1qNQyklzB8veJefQ==
+ version "1.0.30001122"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001122.tgz#2c8ff631330d986a07a7ba7125cce77a1373b475"
+ integrity sha512-pxjw28CThdrqfz06nJkpAc5SXM404TXB/h5f4UJX+rrXJKE/1bu/KAILc2AY+O6cQIFtRjV9qOR2vaEp9LDGUA==
ccount@^1.0.0, ccount@^1.0.3:
version "1.0.5"
@@ -3701,22 +3700,7 @@ chokidar@3.3.0:
optionalDependencies:
fsevents "~2.1.1"
-chokidar@3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
- integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
- dependencies:
- anymatch "~3.1.1"
- braces "~3.0.2"
- glob-parent "~5.1.0"
- is-binary-path "~2.1.0"
- is-glob "~4.0.1"
- normalize-path "~3.0.0"
- readdirp "~3.3.0"
- optionalDependencies:
- fsevents "~2.1.2"
-
-chokidar@^3.0.0, chokidar@^3.4.0:
+chokidar@3.4.2, chokidar@^3.0.0, chokidar@^3.4.0:
version "3.4.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
@@ -3794,14 +3778,6 @@ cli-spinners@^2.0.0:
resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.4.0.tgz#c6256db216b878cfba4720e719cec7cf72685d7f"
integrity sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==
-cli-truncate@2.1.0, cli-truncate@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
- integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
- dependencies:
- slice-ansi "^3.0.0"
- string-width "^4.2.0"
-
cli-truncate@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-1.1.0.tgz#2b2dfd83c53cfd3572b87fc4d430a808afb04086"
@@ -3810,6 +3786,14 @@ cli-truncate@^1.1.0:
slice-ansi "^1.0.0"
string-width "^2.0.0"
+cli-truncate@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
+ integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+ dependencies:
+ slice-ansi "^3.0.0"
+ string-width "^4.2.0"
+
cli-width@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
@@ -3979,10 +3963,10 @@ commander@^4.0.1, commander@^4.1.1:
resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
-commander@^5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
- integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
+commander@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-6.1.0.tgz#f8d722b78103141006b66f4c7ba1e97315ba75bc"
+ integrity sha512-wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==
commander@~2.9.0:
version "2.9.0"
@@ -4166,6 +4150,17 @@ cosmiconfig@^6.0.0:
path-type "^4.0.0"
yaml "^1.7.2"
+cosmiconfig@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
+ integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.2.1"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.10.0"
+
create-react-context@0.3.0, create-react-context@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c"
@@ -4361,9 +4356,9 @@ d3-force@1:
d3-timer "1"
d3-format@1:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.4.tgz#356925f28d0fd7c7983bfad593726fce46844030"
- integrity sha512-TWks25e7t8/cqctxCmxpUuzZN11QxIA7YrMbram94zMQ0PXjE4LVIMe/f6a4+xxL8HQ3OsAFULOINQi1pE62Aw==
+ version "1.4.5"
+ resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4"
+ integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==
d3-geo@1:
version "1.12.1"
@@ -4437,9 +4432,9 @@ d3-shape@1:
d3-path "1"
d3-time-format@2:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.2.3.tgz#0c9a12ee28342b2037e5ea1cf0b9eb4dd75f29cb"
- integrity sha512-RAHNnD8+XvC4Zc4d2A56Uw0yJoM7bsvOlJR33bclxq399Rak/b9bhvu/InjxdWhPtkgU53JJcleJTGkNRnN6IA==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850"
+ integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==
dependencies:
d3-time "1"
@@ -4544,9 +4539,9 @@ dargs@^4.0.1:
number-is-nan "^1.0.0"
date-fns@^2.0.1:
- version "2.15.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.15.0.tgz#424de6b3778e4e69d3ff27046ec136af58ae5d5f"
- integrity sha512-ZCPzAMJZn3rNUvvQIMlXhDr4A+Ar07eLeGsGREoWU19a3Pqf5oYa+ccd+B3F6XVtQY6HANMFdOQ8A+ipFnvJdQ==
+ version "2.16.1"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.16.1.tgz#05775792c3f3331da812af253e1a935851d3834b"
+ integrity sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==
date-format@0.0.2:
version "0.0.2"
@@ -4565,7 +4560,7 @@ debug@3.2.6, debug@^3.1.0, debug@^3.1.1:
dependencies:
ms "^2.1.1"
-debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
+debug@4, debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
@@ -4890,9 +4885,9 @@ ejs@^2.6.1:
integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
electron-to-chromium@^1.3.523:
- version "1.3.539"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.539.tgz#9952fb0bf3fb4295282e7df35f6e7a2a8b89d3fd"
- integrity sha512-rM0LWDIstdqfaRUADZetNrL6+zd/0NBmavbMEhBXgc2u/CC1d1GaDyN5hho29fFvBiOVFwrSWZkzmNcZnCEDog==
+ version "1.3.556"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.556.tgz#d2a8fed6b93051c5c27d182c43c7bc4d88b77afb"
+ integrity sha512-g5cGpg6rOCXxyfaLCQIWz9Fx+raFfbZ6sc4QLfvvaiCERBzY6YD6rh5d12QN++bEF1Tm9osYnxP37lbN/92j4A==
"emoji-regex@>=6.0.0 <=6.1.1":
version "6.1.1"
@@ -4946,7 +4941,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1:
dependencies:
once "^1.4.0"
-enquirer@^2.3.0, enquirer@^2.3.5:
+enquirer@^2.3.0, enquirer@^2.3.6:
version "2.3.6"
resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
@@ -4999,24 +4994,24 @@ es-array-method-boxes-properly@^1.0.0:
resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
-es-dev-server@^1.57.1, es-dev-server@^1.57.3:
- version "1.57.3"
- resolved "https://registry.yarnpkg.com/es-dev-server/-/es-dev-server-1.57.3.tgz#463c22e12f33b8a0a3470684562d973e696ebc16"
- integrity sha512-DUgzbwVqfOB9/Rjcx+PlvZeqft6BEatt+vrQeotOEik0+aWdORUrMy6iIqpYclyQFMOdH22SzhnzGoYtcqdlOg==
+es-dev-server@^1.57.1, es-dev-server@^1.57.4:
+ version "1.57.4"
+ resolved "https://registry.yarnpkg.com/es-dev-server/-/es-dev-server-1.57.4.tgz#9d6398828c12aa80bd59807edd896d54f77e2419"
+ integrity sha512-GNstq4VeNmkon9W4dABCC3e3540cWVmhsnO4d8axBSgk0D4HQH/t2NqM4o9Qvq4/z9NMAqW1CazmvuFdl8oqKg==
dependencies:
- "@babel/core" "^7.9.0"
- "@babel/plugin-proposal-dynamic-import" "^7.8.3"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-proposal-optional-chaining" "^7.9.0"
+ "@babel/core" "^7.11.1"
+ "@babel/plugin-proposal-dynamic-import" "^7.10.4"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
+ "@babel/plugin-proposal-optional-chaining" "^7.11.0"
"@babel/plugin-syntax-class-properties" "^7.8.3"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
"@babel/plugin-syntax-numeric-separator" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-transform-template-literals" "^7.8.3"
"@babel/preset-env" "^7.9.0"
"@koa/cors" "^3.1.0"
- "@open-wc/building-utils" "^2.18.0"
+ "@open-wc/building-utils" "^2.18.1"
"@rollup/plugin-node-resolve" "^7.1.1"
"@rollup/pluginutils" "^3.0.0"
"@types/babel__core" "^7.1.3"
@@ -5060,7 +5055,7 @@ es-dev-server@^1.57.1, es-dev-server@^1.57.3:
open "^7.0.3"
parse5 "^5.1.1"
path-is-inside "^1.0.2"
- polyfills-loader "^1.7.0"
+ polyfills-loader "^1.7.1"
portfinder "^1.0.21"
rollup "^2.7.2"
strip-ansi "^5.2.0"
@@ -5126,6 +5121,11 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+escape-string-regexp@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
eslint-config-airbnb-base@^14.0.0:
version "14.2.0"
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz#fe89c24b3f9dc8008c9c0d0d88c28f95ed65e9c4"
@@ -5290,18 +5290,18 @@ esquery@^1.0.1:
estraverse "^5.1.0"
esrecurse@^4.1.0:
- version "4.2.1"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
- integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+ integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
dependencies:
- estraverse "^4.1.0"
+ estraverse "^5.2.0"
-estraverse@^4.1.0, estraverse@^4.1.1:
+estraverse@^4.1.1:
version "4.3.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-estraverse@^5.1.0:
+estraverse@^5.1.0, estraverse@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
@@ -5365,7 +5365,7 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
-execa@^4.0.1:
+execa@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2"
integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==
@@ -5564,12 +5564,12 @@ find-up@3.0.0, find-up@^3.0.0:
dependencies:
locate-path "^3.0.0"
-find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+find-up@5.0.0, find-up@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
- locate-path "^5.0.0"
+ locate-path "^6.0.0"
path-exists "^4.0.0"
find-up@^1.0.0:
@@ -5587,12 +5587,12 @@ find-up@^2.0.0, find-up@^2.1.0:
dependencies:
locate-path "^2.0.0"
-find-up@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
- integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
dependencies:
- locate-path "^6.0.0"
+ locate-path "^5.0.0"
path-exists "^4.0.0"
find-yarn-workspace-root2@1.2.16:
@@ -5806,6 +5806,11 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
+get-stream@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
+ integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
+
git-raw-commits@^1.3.0:
version "1.3.6"
resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff"
@@ -6149,9 +6154,9 @@ hast-util-has-property@^1.0.0:
integrity sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==
hast-util-is-element@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz#059090a05cc02e275df1ad02caf8cb422fcd2e02"
- integrity sha512-NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz#3b3ed5159a2707c6137b48637fbfe068e175a425"
+ integrity sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==
hast-util-parse-selector@^2.0.0:
version "2.2.4"
@@ -6492,7 +6497,7 @@ import-fresh@^2.0.0:
caller-path "^2.0.0"
resolve-from "^3.0.0"
-import-fresh@^3.0.0, import-fresh@^3.1.0:
+import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==
@@ -7064,9 +7069,9 @@ jest-worker@^26.0.0:
supports-color "^7.0.0"
jpeg-js@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.1.tgz#937a3ae911eb6427f151760f8123f04c8bfe6ef7"
- integrity sha512-jA55yJiB5tCXEddos8JBbvW+IMrqY0y1tjjx9KNVtA+QPmu7ND5j0zkKopClpUTsaETL135uOM2XfcYG4XRjmw==
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d"
+ integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==
js-beautify@^1.8.9:
version "1.13.0"
@@ -7112,7 +7117,7 @@ js-yaml@3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
-js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1:
+js-yaml@3.14.0, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1:
version "3.14.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
@@ -7135,6 +7140,11 @@ json-parse-better-errors@^1.0.1:
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz#371873c5ffa44304a6ba12419bcfa95f404ae081"
+ integrity sha512-o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q==
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -7379,19 +7389,19 @@ linkify-it@^2.0.0:
uc.micro "^1.0.1"
lint-staged@^10.0.0:
- version "10.2.11"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.11.tgz#713c80877f2dc8b609b05bc59020234e766c9720"
- integrity sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==
+ version "10.2.13"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.2.13.tgz#b9c504683470edfc464b7d3fe3845a5a1efcd814"
+ integrity sha512-conwlukNV6aL9SiMWjFtDp5exeDnTMekdNPDZsKGnpfQuHcO0E3L3Bbf58lcR+M7vk6LpCilxDAVks/DDVBYlA==
dependencies:
- chalk "^4.0.0"
- cli-truncate "2.1.0"
- commander "^5.1.0"
- cosmiconfig "^6.0.0"
+ chalk "^4.1.0"
+ cli-truncate "^2.1.0"
+ commander "^6.0.0"
+ cosmiconfig "^7.0.0"
debug "^4.1.1"
dedent "^0.7.0"
- enquirer "^2.3.5"
- execa "^4.0.1"
- listr2 "^2.1.0"
+ enquirer "^2.3.6"
+ execa "^4.0.3"
+ listr2 "^2.6.0"
log-symbols "^4.0.0"
micromatch "^4.0.2"
normalize-path "^3.0.0"
@@ -7399,10 +7409,10 @@ lint-staged@^10.0.0:
string-argv "0.3.1"
stringify-object "^3.3.0"
-listr2@^2.1.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.6.0.tgz#788a3d202978a1b8582062952cbc49272c8e206a"
- integrity sha512-nwmqTJYQQ+AsKb4fCXH/6/UmLCEDL1jkRAdSn9M6cEUzoRGrs33YD/3N86gAZQnGZ6hxV18XSdlBcJ1GTmetJA==
+listr2@^2.6.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-2.6.2.tgz#4912eb01e1e2dd72ec37f3895a56bf2622d6f36a"
+ integrity sha512-6x6pKEMs8DSIpA/tixiYY2m/GcbgMplMVmhQAaLFxEtNSKLeWTGjtmU57xvv6QCm2XcqzyNXL/cTSVf4IChCRA==
dependencies:
chalk "^4.1.0"
cli-truncate "^2.1.0"
@@ -7420,14 +7430,7 @@ lit-element@^2.2.1, lit-element@^2.3.1, lit-element@~2.4.0:
dependencies:
lit-html "^1.1.1"
-lit-element@~2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/lit-element/-/lit-element-2.3.1.tgz#73343b978fa1e73d60526c6bb6ad60f53a16c343"
- integrity sha512-tOcUAmeO3BzwiQ7FGWdsshNvC0HVHcTFYw/TLIImmKwXYoV0E7zCBASa8IJ7DiP4cen/Yoj454gS0qqTnIGsFA==
- dependencies:
- lit-html "^1.1.1"
-
-lit-html@^1.0.0, lit-html@^1.1.1, lit-html@^1.2.1, lit-html@^1.3.0:
+lit-html@^1.0.0, lit-html@^1.1.1, lit-html@^1.2.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/lit-html/-/lit-html-1.3.0.tgz#c80f3cc5793a6dea6c07172be90a70ab20e56034"
integrity sha512-0Q1bwmaFH9O14vycPHw8C/IeHMk/uSDldVLIefu/kfbTBGIc44KGH6A8p1bDfxUfHdc8q6Ct7kQklWoHgr4t1Q==
@@ -7612,6 +7615,13 @@ log-symbols@3.0.0:
dependencies:
chalk "^2.4.2"
+log-symbols@4.0.0, log-symbols@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
+ integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
+ dependencies:
+ chalk "^4.0.0"
+
log-symbols@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18"
@@ -7619,13 +7629,6 @@ log-symbols@^1.0.0:
dependencies:
chalk "^1.0.0"
-log-symbols@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920"
- integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==
- dependencies:
- chalk "^4.0.0"
-
log-update@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
@@ -8193,22 +8196,22 @@ mocha@^7.1.1:
yargs-unparser "1.6.0"
mocha@^8.1.1:
- version "8.1.1"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.1.1.tgz#1de1ba4e9a2c955d96b84e469d7540848223592d"
- integrity sha512-p7FuGlYH8t7gaiodlFreseLxEmxTgvyG9RgPHODFPySNhwUehu8NIb0vdSt3WFckSneswZ0Un5typYcWElk7HQ==
+ version "8.1.3"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.1.3.tgz#5e93f873e35dfdd69617ea75f9c68c2ca61c2ac5"
+ integrity sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==
dependencies:
ansi-colors "4.1.1"
browser-stdout "1.3.1"
- chokidar "3.3.1"
- debug "3.2.6"
+ chokidar "3.4.2"
+ debug "4.1.1"
diff "4.0.2"
- escape-string-regexp "1.0.5"
- find-up "4.1.0"
+ escape-string-regexp "4.0.0"
+ find-up "5.0.0"
glob "7.1.6"
growl "1.10.5"
he "1.2.0"
- js-yaml "3.13.1"
- log-symbols "3.0.0"
+ js-yaml "3.14.0"
+ log-symbols "4.0.0"
minimatch "3.0.4"
ms "2.1.2"
object.assign "4.1.0"
@@ -8224,9 +8227,9 @@ mocha@^8.1.1:
yargs-unparser "1.6.1"
mock-fs@^4.10.1:
- version "4.12.0"
- resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.12.0.tgz#a5d50b12d2d75e5bec9dac3b67ffe3c41d31ade4"
- integrity sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==
+ version "4.13.0"
+ resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.13.0.tgz#31c02263673ec3789f90eb7b6963676aa407a598"
+ integrity sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==
moment-mini@^2.22.1:
version "2.24.0"
@@ -8329,9 +8332,9 @@ no-case@^3.0.3:
tslib "^1.10.0"
node-abi@^2.7.0:
- version "2.18.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.18.0.tgz#1f5486cfd7d38bd4f5392fa44a4ad4d9a0dffbf4"
- integrity sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==
+ version "2.19.1"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85"
+ integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==
dependencies:
semver "^5.4.1"
@@ -8605,9 +8608,9 @@ only@~0.0.2:
integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
open@^7.0.3, open@^7.0.4:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/open/-/open-7.1.0.tgz#68865f7d3cb238520fa1225a63cf28bcf8368a1c"
- integrity sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/open/-/open-7.2.1.tgz#07b0ade11a43f2a8ce718480bdf3d7563a095195"
+ integrity sha512-xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA==
dependencies:
is-docker "^2.0.0"
is-wsl "^2.1.1"
@@ -8858,13 +8861,13 @@ parse-json@^4.0.0:
json-parse-better-errors "^1.0.1"
parse-json@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.1.tgz#7cfe35c1ccd641bce3981467e6c2ece61b3b3878"
- integrity sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646"
+ integrity sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
dependencies:
"@babel/code-frame" "^7.0.0"
error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
+ json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
parse-node-version@^1.0.0:
@@ -8994,7 +8997,7 @@ pend@~1.2.0:
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
-picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1, picomatch@^2.2.2:
+picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2:
version "2.2.2"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
@@ -9120,13 +9123,13 @@ polished@^2.3.3:
dependencies:
"@babel/runtime" "^7.2.0"
-polyfills-loader@^1.6.1, polyfills-loader@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/polyfills-loader/-/polyfills-loader-1.7.0.tgz#f0d6155bcadb6b3066c2db448dc180a0c0b1ac8d"
- integrity sha512-OQvUeVp0Q+qPyj7aufW9c5/W2pWvbXcVAAibCCPX6o8b2qaY4vZ4tpdHa6gq1rMeX4I8xQVIPjHNu0tKxIqjQQ==
+polyfills-loader@^1.6.1, polyfills-loader@^1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/polyfills-loader/-/polyfills-loader-1.7.1.tgz#d7a8442a450acda1ab81b1f68968e68835df0856"
+ integrity sha512-+cClGOZNQtWVedt2a2Ku9r6ejfnhQFbuaSPtlaGLl2R9ESWaJNoq8r29d0BTpAgrEX/xXsoh2YHgamNugW6Ahw==
dependencies:
- "@babel/core" "^7.9.0"
- "@open-wc/building-utils" "^2.18.0"
+ "@babel/core" "^7.11.1"
+ "@open-wc/building-utils" "^2.18.1"
"@webcomponents/webcomponentsjs" "^2.4.0"
abortcontroller-polyfill "^1.4.0"
core-js-bundle "^3.6.0"
@@ -9211,14 +9214,14 @@ prettier@^1.18.2:
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
prettier@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4"
- integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6"
+ integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==
pretty-bytes@^5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz#f2849e27db79fb4d6cfe24764fc4134f165989f2"
- integrity sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==
+ version "5.4.1"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b"
+ integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==
prettycli@^1.4.3:
version "1.4.3"
@@ -9543,16 +9546,14 @@ reactjs-popup@^1.3.2:
integrity sha512-9uoxUAcUomnNoBtdYXBmgsF4w46llsogE3tOvLb5IkR5MMrD6UZJK20ip9kDKXCYubSxNkdfQKqSb/c95rf/qA==
read-package-json@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.1.tgz#16aa66c59e7d4dad6288f179dd9295fd59bb98f1"
- integrity sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.1.2.tgz#6992b2b66c7177259feb8eaac73c3acd28b9222a"
+ integrity sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==
dependencies:
glob "^7.1.1"
- json-parse-better-errors "^1.0.1"
+ json-parse-even-better-errors "^2.3.0"
normalize-package-data "^2.0.0"
npm-normalize-package-bin "^1.0.0"
- optionalDependencies:
- graceful-fs "^4.1.2"
read-package-tree@5.3.1:
version "5.3.1"
@@ -9672,13 +9673,6 @@ readdirp@~3.2.0:
dependencies:
picomatch "^2.0.4"
-readdirp@~3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17"
- integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==
- dependencies:
- picomatch "^2.0.7"
-
readdirp@~3.4.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
@@ -10191,9 +10185,9 @@ rollup-plugin-terser@^6.1.0:
terser "^4.7.0"
rollup-plugin-workbox@^5.0.1:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/rollup-plugin-workbox/-/rollup-plugin-workbox-5.1.0.tgz#a2eeabcd37ca96cd977076ce4ba4755083ad6aee"
- integrity sha512-y280evR5qawZ1l9gOYfUvD3v+pKMYcGCKK5Ns+6XqlxZJc44rzLI1hAp+suwfIifXk2JxlWzWwImbx6ipyi9UA==
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/rollup-plugin-workbox/-/rollup-plugin-workbox-5.2.1.tgz#371b0753667df03886742ec072281525803c2c75"
+ integrity sha512-C+yIoYkZ3VUcJTZpOH2zbaarHCwy8eQod987eS8hXE6qwfMLDqV3RkLYNplnO0PcMi+3JgZPiE6d1zuXgwkO7Q==
dependencies:
"@rollup/plugin-node-resolve" "^8.4.0"
"@rollup/plugin-replace" "^2.3.3"
@@ -10218,9 +10212,9 @@ rollup@^1.31.1:
acorn "^7.1.0"
rollup@^2.0.0, rollup@^2.20.0, rollup@^2.7.2:
- version "2.26.4"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.26.4.tgz#a8350fd6bd56fce9873a7db2bd9547d40de3992b"
- integrity sha512-6+qsGuP0MXGd7vlYmk72utm1MrgZj5GfXibGL+cRkKQ9+ZL/BnFThDl0D5bcl7AqlzMjAQXRAwZX1HVm22M/4Q==
+ version "2.26.9"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.26.9.tgz#4b6ce4e9044dd257d7314d8ed9b4d4d8a7d166c9"
+ integrity sha512-XIiWYLayLqV+oY4S2Lub/shJq4uk/QQLwWToYCL4LjZbYHbFK3czea4UDVRUJu+zNmKmxq5Zb/OG7c5HSvH2TQ==
optionalDependencies:
fsevents "~2.1.2"
@@ -10638,16 +10632,16 @@ state-toggle@^1.0.0:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-storybook-addon-markdown-docs@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/storybook-addon-markdown-docs/-/storybook-addon-markdown-docs-0.4.1.tgz#19dc8e2d44071673feabdc1379186b9bb70bfe63"
- integrity sha512-JLSm7+4NIa1miOHv50mGiQsliwJi9jdr8VPucx3TjWr0qyu027nEeklEVMnTHme/panW/R+9ooPLmg9zucswwg==
+storybook-addon-markdown-docs@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/storybook-addon-markdown-docs/-/storybook-addon-markdown-docs-0.4.2.tgz#caebe6c87eb9f6b7dfd49ca40e7668fe7d114301"
+ integrity sha512-iN7oZIQOuAzKnh4439qq42iP685NkanqRgzPomUD28lc7kAIVKathUHToCp6akWm9DY2yW3m1KsgXWiDsw+IlA==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/core" "^7.9.0"
+ "@babel/core" "^7.11.1"
"@babel/generator" "^7.9.6"
"@babel/parser" "^7.9.6"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
"@mdjs/core" "^0.3.3"
"@mdx-js/mdx" "^1.5.1"
detab "^2.0.3"
@@ -10918,7 +10912,7 @@ supports-color@6.0.0:
dependencies:
has-flag "^3.0.0"
-supports-color@7.1.0, supports-color@^7.0.0, supports-color@^7.1.0:
+supports-color@7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
@@ -10951,6 +10945,13 @@ supports-color@^6.1.0:
dependencies:
has-flag "^3.0.0"
+supports-color@^7.0.0, supports-color@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+ integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+ dependencies:
+ has-flag "^4.0.0"
+
symbol-observable@^1.0.4:
version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
@@ -11367,9 +11368,9 @@ uc.micro@^1.0.1, uc.micro@^1.0.5:
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
uglify-js@^3.5.1:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.1.tgz#dd14767eb7150de97f2573a5ff210db14fffe4ad"
- integrity sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==
+ version "3.10.3"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.10.3.tgz#f0d2f99736c14de46d2d24649ba328be3e71c3bf"
+ integrity sha512-Lh00i69Uf6G74mvYpHCI9KVVXLcHW/xu79YTvH7Mkc9zyKUeSPz0owW0dguj0Scavns3ZOh3wY63J0Zb97Za2g==
unbzip2-stream@^1.3.3:
version "1.4.3"
@@ -11385,9 +11386,9 @@ unc-path-regex@^0.1.2:
integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo=
underscore@^1.9.1:
- version "1.10.2"
- resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.10.2.tgz#73d6aa3668f3188e4adb0f1943bd12cfd7efaaaf"
- integrity sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.11.0.tgz#dd7c23a195db34267186044649870ff1bab5929e"
+ integrity sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==
unherit@^1.0.4:
version "1.1.3"
@@ -11420,7 +11421,7 @@ unicode-property-aliases-ecmascript@^1.0.4:
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
-unified@9.1.0, unified@^9.0.0:
+unified@9.1.0:
version "9.1.0"
resolved "https://registry.yarnpkg.com/unified/-/unified-9.1.0.tgz#7ba82e5db4740c47a04e688a9ca8335980547410"
integrity sha512-VXOv7Ic6twsKGJDeZQ2wwPqXs2hM0KNu5Hkg9WgAZbSD1pxhZ7p8swqg583nw1Je2fhwHy6U8aEjiI79x1gvag==
@@ -11443,6 +11444,18 @@ unified@^8.2.0, unified@^8.4.2:
trough "^1.0.0"
vfile "^4.0.0"
+unified@^9.0.0:
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8"
+ integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==
+ dependencies:
+ bail "^1.0.0"
+ extend "^3.0.0"
+ is-buffer "^2.0.0"
+ is-plain-obj "^2.0.0"
+ trough "^1.0.0"
+ vfile "^4.0.0"
+
unique-stream@^2.0.2:
version "2.3.1"
resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac"
@@ -11588,9 +11601,9 @@ upper-case@^1.1.1:
integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
uri-js@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
- integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
+ integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
dependencies:
punycode "^2.1.0"
@@ -11676,9 +11689,9 @@ vfile-location@^2.0.0:
integrity sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==
vfile-location@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3"
- integrity sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.1.0.tgz#81cd8a04b0ac935185f4fce16f270503fc2f692f"
+ integrity sha512-FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==
vfile-message@^2.0.0:
version "2.0.4"
@@ -11781,10 +11794,10 @@ webidl-conversions@^4.0.2:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-webidl-conversions@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
- integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==
+webidl-conversions@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
+ integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==
webpack-merge@^4.1.5:
version "4.2.2"
@@ -11808,13 +11821,13 @@ whatwg-url@^7.0.0:
webidl-conversions "^4.0.2"
whatwg-url@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.1.0.tgz#c628acdcf45b82274ce7281ee31dd3c839791771"
- integrity sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw==
+ version "8.2.1"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.2.1.tgz#ed73417230784b281fb2a32c3c501738b46167c3"
+ integrity sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^2.0.2"
- webidl-conversions "^5.0.0"
+ webidl-conversions "^6.1.0"
which-module@^2.0.0:
version "2.0.0"
@@ -12111,7 +12124,7 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-yaml@^1.7.2:
+yaml@^1.10.0, yaml@^1.7.2:
version "1.10.0"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==