@digital-realty/ix-fab 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 ix-fab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,91 @@
1
+ # \<ix-fab>
2
+
3
+ This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm i @digital-realty/ix-fab
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ An IxFab expects an icon in it's slot element to render the component correctly.
14
+
15
+ The icon can be from any icon library, an image or an svg.
16
+
17
+ ```html
18
+ <script type="module">
19
+ import '@digital-realty/ix-fab';
20
+ </script>
21
+
22
+ <ix-fab>
23
+ <md-icon>...</md-icon>
24
+ </ix-fab>
25
+ ```
26
+
27
+ ### In React
28
+ ```JS
29
+ import { IxFab } from '@digital-realty/ix-fab/IxFab'
30
+
31
+ <IxFab>
32
+ <Icon>...</Icon>
33
+ </IxFab>
34
+ ```
35
+
36
+ ## Linting and formatting
37
+
38
+ To scan the project for linting and formatting errors, run
39
+
40
+ ```bash
41
+ npm run lint
42
+ ```
43
+
44
+ To automatically fix linting and formatting errors, run
45
+
46
+ ```bash
47
+ npm run format
48
+ ```
49
+
50
+ ## Testing with Web Test Runner
51
+
52
+ To execute a single test run:
53
+
54
+ ```bash
55
+ npm run test
56
+ ```
57
+
58
+ To run the tests in interactive watch mode run:
59
+
60
+ ```bash
61
+ npm run test:watch
62
+ ```
63
+
64
+ ## Demoing with Storybook
65
+
66
+ To run a local instance of Storybook for your component, run
67
+
68
+ ```bash
69
+ npm run storybook
70
+ ```
71
+
72
+ To build a production version of Storybook, run
73
+
74
+ ```bash
75
+ npm run storybook:build
76
+ ```
77
+
78
+
79
+ ## Tooling configs
80
+
81
+ For most of the tools, the configuration is in the `package.json` to reduce the amount of files in your project.
82
+
83
+ If you customize the configuration a lot, you can consider moving them to individual files.
84
+
85
+ ## Local Demo with `web-dev-server`
86
+
87
+ ```bash
88
+ npm start
89
+ ```
90
+
91
+ To run a local development server that serves the basic demo located in `demo/index.html`
@@ -0,0 +1,29 @@
1
+ <!doctype html>
2
+ <html lang="en-GB">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <style>
6
+ body {
7
+ background: #fafafa;
8
+ }
9
+ </style>
10
+ <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1" rel="stylesheet">
11
+ </head>
12
+ <body>
13
+ <div id="demo"></div>
14
+
15
+ <script type="module">
16
+ import { html, render } from 'lit';
17
+ import '../dist/src/ix-fab.js';
18
+
19
+ render(
20
+ html`
21
+ <ix-fab>
22
+ <md-icon>Home</md-icon>
23
+ </ix-fab>
24
+ `,
25
+ document.querySelector('#demo')
26
+ );
27
+ </script>
28
+ </body>
29
+ </html>
@@ -0,0 +1,25 @@
1
+ import { LitElement } from 'lit';
2
+ import '@material/web/fab/fab.js';
3
+ import '@material/web/icon/icon.js';
4
+ export type FabVariant = 'surface' | 'primary' | 'secondary' | 'tertiary';
5
+ export type FabSize = 'medium' | 'small' | 'large';
6
+ export declare class IxFab extends LitElement {
7
+ /**
8
+ * Lowers the FAB's elevation.
9
+ */
10
+ lowered: boolean;
11
+ /**
12
+ * Changes the colour of the FAB
13
+ */
14
+ variant: FabVariant;
15
+ /**
16
+ * The text to display on the FAB.
17
+ */
18
+ label: string;
19
+ /**
20
+ * The size of the FAB.
21
+ */
22
+ size: FabSize;
23
+ onClick: (event: MouseEvent) => void;
24
+ render(): import("lit-html").TemplateResult<1>;
25
+ }
@@ -0,0 +1,57 @@
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, html } from 'lit';
3
+ import { property } from 'lit/decorators.js';
4
+ import '@material/web/fab/fab.js';
5
+ import '@material/web/icon/icon.js';
6
+ export class IxFab extends LitElement {
7
+ constructor() {
8
+ super(...arguments);
9
+ /**
10
+ * Lowers the FAB's elevation.
11
+ */
12
+ this.lowered = false;
13
+ /**
14
+ * Changes the colour of the FAB
15
+ */
16
+ this.variant = 'surface';
17
+ /**
18
+ * The text to display on the FAB.
19
+ */
20
+ this.label = '';
21
+ /**
22
+ * The size of the FAB.
23
+ */
24
+ this.size = 'medium';
25
+ // eslint-disable-next-line class-methods-use-this
26
+ this.onClick = () => { };
27
+ }
28
+ render() {
29
+ return html `
30
+ <md-fab
31
+ .label=${this.label}
32
+ .lowered=${this.lowered}
33
+ .size=${this.size}
34
+ .variant=${this.variant}
35
+ @click=${this.onClick}
36
+ >
37
+ <slot slot="icon"></slot>
38
+ </md-fab>
39
+ `;
40
+ }
41
+ }
42
+ __decorate([
43
+ property({ type: Boolean, reflect: true })
44
+ ], IxFab.prototype, "lowered", void 0);
45
+ __decorate([
46
+ property()
47
+ ], IxFab.prototype, "variant", void 0);
48
+ __decorate([
49
+ property()
50
+ ], IxFab.prototype, "label", void 0);
51
+ __decorate([
52
+ property()
53
+ ], IxFab.prototype, "size", void 0);
54
+ __decorate([
55
+ property()
56
+ ], IxFab.prototype, "onClick", void 0);
57
+ //# sourceMappingURL=IxFab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IxFab.js","sourceRoot":"","sources":["../../src/IxFab.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,0BAA0B,CAAC;AAClC,OAAO,4BAA4B,CAAC;AAKpC,MAAM,OAAO,KAAM,SAAQ,UAAU;IAArC;;QACE;;WAEG;QACyC,YAAO,GAAG,KAAK,CAAC;QAE5D;;WAEG;QACS,YAAO,GAAe,SAAS,CAAC;QAE5C;;WAEG;QACS,UAAK,GAAW,EAAE,CAAC;QAE/B;;WAEG;QACS,SAAI,GAAY,QAAQ,CAAC;QAErC,kDAAkD;QACtC,YAAO,GAAgC,GAAG,EAAE,GAAE,CAAC,CAAC;IAe9D,CAAC;IAbC,MAAM;QACJ,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,KAAK;mBACR,IAAI,CAAC,OAAO;gBACf,IAAI,CAAC,IAAI;mBACN,IAAI,CAAC,OAAO;iBACd,IAAI,CAAC,OAAO;;;;KAIxB,CAAC;IACJ,CAAC;CACF;AAjC6C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAiB;AAKhD;IAAX,QAAQ,EAAE;sCAAiC;AAKhC;IAAX,QAAQ,EAAE;oCAAoB;AAKnB;IAAX,QAAQ,EAAE;mCAA0B;AAGzB;IAAX,QAAQ,EAAE;sCAAiD","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '@material/web/fab/fab.js';\nimport '@material/web/icon/icon.js';\n\nexport type FabVariant = 'surface' | 'primary' | 'secondary' | 'tertiary';\nexport type FabSize = 'medium' | 'small' | 'large';\n\nexport class IxFab extends LitElement {\n /**\n * Lowers the FAB's elevation.\n */\n @property({ type: Boolean, reflect: true }) lowered = false;\n\n /**\n * Changes the colour of the FAB\n */\n @property() variant: FabVariant = 'surface';\n\n /**\n * The text to display on the FAB.\n */\n @property() label: string = '';\n\n /**\n * The size of the FAB.\n */\n @property() size: FabSize = 'medium';\n\n // eslint-disable-next-line class-methods-use-this\n @property() onClick: (event: MouseEvent) => void = () => {};\n\n render() {\n return html`\n <md-fab\n .label=${this.label}\n .lowered=${this.lowered}\n .size=${this.size}\n .variant=${this.variant}\n @click=${this.onClick}\n >\n <slot slot=\"icon\"></slot>\n </md-fab>\n `;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export { IxFab } from './IxFab.js';
@@ -0,0 +1,2 @@
1
+ export { IxFab } from './IxFab.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { IxFab } from './IxFab.js';\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { IxFab } from './IxFab.js';
2
+ window.customElements.define('ix-fab', IxFab);
3
+ //# sourceMappingURL=ix-fab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-fab.js","sourceRoot":"","sources":["../../src/ix-fab.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC","sourcesContent":["import { IxFab } from './IxFab.js';\n\nwindow.customElements.define('ix-fab', IxFab);\n"]}
@@ -0,0 +1,4 @@
1
+ import { IxFab as IxFabLit } from '../IxFab.js';
2
+ export declare const IxFab: import("@lit-labs/react").ReactWebComponent<IxFabLit, {
3
+ onclick: string;
4
+ }>;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit-labs/react';
3
+ import { IxFab as IxFabLit } from '../IxFab.js';
4
+ window.customElements.define('ix-fab', IxFabLit);
5
+ export const IxFab = createComponent({
6
+ tagName: 'ix-fab',
7
+ elementClass: IxFabLit,
8
+ react: React,
9
+ events: {
10
+ onclick: 'onClick',
11
+ },
12
+ });
13
+ //# sourceMappingURL=IxFab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IxFab.js","sourceRoot":"","sources":["../../../src/react/IxFab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC;IACnC,OAAO,EAAE,QAAQ;IACjB,YAAY,EAAE,QAAQ;IACtB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;KACnB;CACF,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { createComponent } from '@lit-labs/react';\nimport { IxFab as IxFabLit } from '../IxFab.js';\n\nwindow.customElements.define('ix-fab', IxFabLit);\n\nexport const IxFab = createComponent({\n tagName: 'ix-fab',\n elementClass: IxFabLit,\n react: React,\n events: {\n onclick: 'onClick',\n },\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../src/ix-fab.js';
@@ -0,0 +1,59 @@
1
+ import { html } from 'lit';
2
+ import { fixture, expect } from '@open-wc/testing';
3
+ import '../src/ix-fab.js';
4
+ describe('IxFab', () => {
5
+ it('Should trigger event when button is clicked', async () => {
6
+ let message = '';
7
+ const onClick = () => {
8
+ message = 'Clicked!';
9
+ };
10
+ const el = await fixture(html `
11
+ <ix-fab @click=${onClick}></ix-button>
12
+ `);
13
+ el.click();
14
+ expect(message, 'Got unexpected message from click').to.equal('Clicked!');
15
+ });
16
+ it('Should render icon within container', async () => {
17
+ var _a;
18
+ const el = await fixture(html `
19
+ <ix-fab>
20
+ <md-icon>Home</md-icon>
21
+ </ix-fab>
22
+ `);
23
+ const slot = (_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[slot="icon"]');
24
+ const assignedNodes = slot.assignedNodes();
25
+ const hasIcon = assignedNodes.some(node => node.nodeName.toLowerCase() === 'md-icon');
26
+ expect(hasIcon, 'md-icon is not slotted').to.be.true;
27
+ });
28
+ it('Should render label when label property is passed', async () => {
29
+ var _a, _b;
30
+ const text = 'Hello World!';
31
+ const el = await fixture(html ` <ix-fab label=${text}></ix-fab> `);
32
+ const mdFab = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('md-fab');
33
+ const label = (_b = mdFab === null || mdFab === void 0 ? void 0 : mdFab.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('span.label');
34
+ expect(label.innerText === text, 'Could not find label in element').to.be
35
+ .true;
36
+ });
37
+ // lowered
38
+ it('Should correctly apply variant, size and lowered styles', async () => {
39
+ var _a, _b, _c;
40
+ const props = {
41
+ size: 'large',
42
+ variant: 'tertiary',
43
+ lowered: true,
44
+ };
45
+ const el = await fixture(html `
46
+ <ix-fab
47
+ size=${props.size}
48
+ variant=${props.variant}
49
+ lowered=${props.lowered}
50
+ >
51
+ </ix-fab>
52
+ `);
53
+ const button = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('md-fab')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('button');
54
+ expect(button === null || button === void 0 ? void 0 : button.classList.contains('lowered'), 'lowered class was not applied to fab').to.be.true;
55
+ expect(button === null || button === void 0 ? void 0 : button.classList.contains('large'), 'size class was not applied to fab').to.be.true;
56
+ expect(button === null || button === void 0 ? void 0 : button.classList.contains('tertiary'), 'variant class was not applied to fab').to.be.true;
57
+ });
58
+ });
59
+ //# sourceMappingURL=ix-fab.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-fab.test.js","sourceRoot":"","sources":["../../test/ix-fab.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,kBAAkB,CAAC;AAE1B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC,CAAC;QAEF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAQ,IAAI,CAAA;uBACjB,OAAO;KACzB,CAAC,CAAC;QAEH,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAQ,IAAI,CAAA;;;;KAInC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,0CAAE,aAAa,CACxC,mBAAmB,CACD,CAAC;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAChC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,SAAS,CAClD,CAAC;QAEF,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;;QACjE,MAAM,IAAI,GAAG,cAAc,CAAC;QAE5B,MAAM,EAAE,GAAG,MAAM,OAAO,CAAQ,IAAI,CAAA,kBAAkB,IAAI,aAAa,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,0CAAE,aAAa,CAC5C,YAAY,CACM,CAAC;QAErB,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE;aACtE,IAAI,CAAC;IACV,CAAC,CAAC,CAAC;IAEH,UAAU;IACV,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;;QACvE,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAQ,IAAI,CAAA;;eAEzB,KAAK,CAAC,IAAI;kBACP,KAAK,CAAC,OAAO;kBACb,KAAK,CAAC,OAAO;;;KAG1B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CACxB,aAAa,CAAC,QAAQ,CAAC,0CACvB,UAAU,0CAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,CACJ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EACrC,sCAAsC,CACvC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACb,MAAM,CACJ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EACnC,mCAAmC,CACpC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACb,MAAM,CACJ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EACtC,sCAAsC,CACvC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { html } from 'lit';\nimport { fixture, expect } from '@open-wc/testing';\nimport { IxFab } from '../src/IxFab.js';\nimport '../src/ix-fab.js';\n\ndescribe('IxFab', () => {\n it('Should trigger event when button is clicked', async () => {\n let message = '';\n\n const onClick = () => {\n message = 'Clicked!';\n };\n\n const el = await fixture<IxFab>(html`\n <ix-fab @click=${onClick}></ix-button>\n `);\n\n el.click();\n expect(message, 'Got unexpected message from click').to.equal('Clicked!');\n });\n\n it('Should render icon within container', async () => {\n const el = await fixture<IxFab>(html`\n <ix-fab>\n <md-icon>Home</md-icon>\n </ix-fab>\n `);\n\n const slot = el?.shadowRoot?.querySelector(\n 'slot[slot=\"icon\"]'\n ) as HTMLSlotElement;\n const assignedNodes = slot.assignedNodes();\n\n const hasIcon = assignedNodes.some(\n node => node.nodeName.toLowerCase() === 'md-icon'\n );\n\n expect(hasIcon, 'md-icon is not slotted').to.be.true;\n });\n\n it('Should render label when label property is passed', async () => {\n const text = 'Hello World!';\n\n const el = await fixture<IxFab>(html` <ix-fab label=${text}></ix-fab> `);\n\n const mdFab = el.shadowRoot?.querySelector('md-fab');\n const label = mdFab?.shadowRoot?.querySelector(\n 'span.label'\n ) as HTMLSpanElement;\n\n expect(label.innerText === text, 'Could not find label in element').to.be\n .true;\n });\n\n // lowered\n it('Should correctly apply variant, size and lowered styles', async () => {\n const props = {\n size: 'large',\n variant: 'tertiary',\n lowered: true,\n };\n\n const el = await fixture<IxFab>(html`\n <ix-fab\n size=${props.size}\n variant=${props.variant}\n lowered=${props.lowered}\n >\n </ix-fab>\n `);\n\n const button = el.shadowRoot\n ?.querySelector('md-fab')\n ?.shadowRoot?.querySelector('button');\n\n expect(\n button?.classList.contains('lowered'),\n 'lowered class was not applied to fab'\n ).to.be.true;\n expect(\n button?.classList.contains('large'),\n 'size class was not applied to fab'\n ).to.be.true;\n expect(\n button?.classList.contains('tertiary'),\n 'variant class was not applied to fab'\n ).to.be.true;\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/@lit/reactive-element/css-tag.d.ts","../../../node_modules/@lit/reactive-element/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/reactive-element.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/@types/trusted-types/index.d.ts","../../../node_modules/lit-html/directive.d.ts","../../../node_modules/lit-html/lit-html.d.ts","../../../node_modules/lit-element/lit-element.d.ts","../../../node_modules/lit-html/is-server.d.ts","../../../node_modules/lit/index.d.ts","../../../node_modules/@lit/reactive-element/decorators/base.d.ts","../../../node_modules/@lit/reactive-element/decorators/custom-element.d.ts","../../../node_modules/@lit/reactive-element/decorators/property.d.ts","../../../node_modules/@lit/reactive-element/decorators/state.d.ts","../../../node_modules/@lit/reactive-element/decorators/event-options.d.ts","../../../node_modules/@lit/reactive-element/decorators/query.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-all.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-async.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.d.ts","../../../node_modules/@lit/reactive-element/decorators/query-assigned-elements.d.ts","../../../node_modules/lit/decorators.d.ts","../../../node_modules/@material/web/elevation/internal/elevation.d.ts","../../../node_modules/@material/web/elevation/elevation.d.ts","../../../node_modules/@material/web/internal/controller/attachable-controller.d.ts","../../../node_modules/@material/web/focus/internal/focus-ring.d.ts","../../../node_modules/@material/web/focus/md-focus-ring.d.ts","../../../node_modules/@material/web/ripple/internal/ripple.d.ts","../../../node_modules/@material/web/ripple/ripple.d.ts","../../../node_modules/@material/web/fab/internal/shared.d.ts","../../../node_modules/@material/web/fab/internal/fab.d.ts","../../../node_modules/@material/web/fab/fab.d.ts","../../../node_modules/@material/web/icon/internal/icon.d.ts","../../../node_modules/@material/web/icon/icon.d.ts","../src/ixfab.ts","../src/index.ts","../src/ix-fab.ts","../../../node_modules/@types/react/ts5.0/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/scheduler/tracing.d.ts","../../../node_modules/@types/react/ts5.0/index.d.ts","../../../node_modules/@lit-labs/react/create-component.d.ts","../../../node_modules/@lit-labs/react/index.d.ts","../src/react/ixfab.ts","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/get-diffable-html.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff-plugin.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/chai-dom-diff.d.ts","../../../node_modules/@open-wc/semantic-dom-diff/index.d.ts","../../../node_modules/chai-a11y-axe/chai-a11y-axe-plugin.d.ts","../../../node_modules/chai-a11y-axe/src/accessible.d.ts","../../../node_modules/chai-a11y-axe/index.d.ts","../../../node_modules/@types/chai-dom/index.d.ts","../../../node_modules/@types/sinonjs__fake-timers/index.d.ts","../../../node_modules/@types/sinon/index.d.ts","../../../node_modules/@types/sinon-chai/index.d.ts","../../../node_modules/@open-wc/testing/register-chai-plugins.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/elementupdated.d.ts","../../../node_modules/lit-html/static.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/renderable.d.ts","../../../node_modules/@open-wc/dedupe-mixin/index.d.ts","../../../node_modules/@open-wc/scoped-elements/types/src/types.d.ts","../../../node_modules/@open-wc/scoped-elements/types/src/scopedelementsmixin.d.ts","../../../node_modules/@open-wc/scoped-elements/types/index.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixture-no-side-effect.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/fixturewrapper.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/helpers.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/scopedelementswrapper.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/litfixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/stringfixture.d.ts","../../../node_modules/@open-wc/testing-helpers/types/index.d.ts","../../../node_modules/@open-wc/testing/index.d.ts","../test/ix-fab.test.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/accepts/index.d.ts","../../../node_modules/@types/babel__code-frame/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/co-body/index.d.ts","../../../node_modules/@types/command-line-args/index.d.ts","../../../node_modules/@types/content-disposition/index.d.ts","../../../node_modules/@types/convert-source-map/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/send/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/http-errors/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/keygrip/index.d.ts","../../../node_modules/@types/cookies/index.d.ts","../../../node_modules/@types/debounce/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/hast/index.d.ts","../../../node_modules/@types/http-assert/index.d.ts","../../../node_modules/@types/intl-tel-input/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@types/jquery/jquerystatic.d.ts","../../../node_modules/@types/jquery/jquery.d.ts","../../../node_modules/@types/jquery/misc.d.ts","../../../node_modules/@types/jquery/legacy.d.ts","../../../node_modules/@types/sizzle/index.d.ts","../../../node_modules/@types/jquery/index.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/koa-compose/index.d.ts","../../../node_modules/@types/koa/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../../../node_modules/@types/parse5/index.d.ts","../../../node_modules/@types/prismjs/index.d.ts","../../../node_modules/@types/resolve/index.d.ts","../../../node_modules/@types/scheduler/index.d.ts","../../../node_modules/@types/semver/classes/semver.d.ts","../../../node_modules/@types/semver/functions/parse.d.ts","../../../node_modules/@types/semver/functions/valid.d.ts","../../../node_modules/@types/semver/functions/clean.d.ts","../../../node_modules/@types/semver/functions/inc.d.ts","../../../node_modules/@types/semver/functions/diff.d.ts","../../../node_modules/@types/semver/functions/major.d.ts","../../../node_modules/@types/semver/functions/minor.d.ts","../../../node_modules/@types/semver/functions/patch.d.ts","../../../node_modules/@types/semver/functions/prerelease.d.ts","../../../node_modules/@types/semver/functions/compare.d.ts","../../../node_modules/@types/semver/functions/rcompare.d.ts","../../../node_modules/@types/semver/functions/compare-loose.d.ts","../../../node_modules/@types/semver/functions/compare-build.d.ts","../../../node_modules/@types/semver/functions/sort.d.ts","../../../node_modules/@types/semver/functions/rsort.d.ts","../../../node_modules/@types/semver/functions/gt.d.ts","../../../node_modules/@types/semver/functions/lt.d.ts","../../../node_modules/@types/semver/functions/eq.d.ts","../../../node_modules/@types/semver/functions/neq.d.ts","../../../node_modules/@types/semver/functions/gte.d.ts","../../../node_modules/@types/semver/functions/lte.d.ts","../../../node_modules/@types/semver/functions/cmp.d.ts","../../../node_modules/@types/semver/functions/coerce.d.ts","../../../node_modules/@types/semver/classes/comparator.d.ts","../../../node_modules/@types/semver/classes/range.d.ts","../../../node_modules/@types/semver/functions/satisfies.d.ts","../../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../../node_modules/@types/semver/ranges/min-version.d.ts","../../../node_modules/@types/semver/ranges/valid.d.ts","../../../node_modules/@types/semver/ranges/outside.d.ts","../../../node_modules/@types/semver/ranges/gtr.d.ts","../../../node_modules/@types/semver/ranges/ltr.d.ts","../../../node_modules/@types/semver/ranges/intersects.d.ts","../../../node_modules/@types/semver/ranges/simplify.d.ts","../../../node_modules/@types/semver/ranges/subset.d.ts","../../../node_modules/@types/semver/internals/identifiers.d.ts","../../../node_modules/@types/semver/index.d.ts","../../../node_modules/@types/ws/index.d.ts","../../../node_modules/@types/yauzl/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","52dd370c807255c61765347fc90a9bee3c522b8744dc222714e2bf6b5be3a823","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","ccf8ea81b0ac699c220b874b804ad02b8aabc5b494e1c3bda0d255ec8d08694d","15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e",{"version":"17f2b4d00e42e0cc1dfc3be692a6da5a14a6cb73b87259e6d20ff02bcd6d573f","affectsGlobalScope":true},"c567d37119d6f56381af48eb7516030ccf35a36f9aca045e238d9c207a7c536c","b448dfbb5a6c4505f6b6beab587cf41f180ad62bcb506b44e3f2c09d20ba63a9","eba7cf33380cc3a3cf614faf67300e14d0bdff9ea6c5cd6f4b040b1756a48ab1","5e7e090243bf203382a5cb04eabbdc38d78f6d5922f16f543e4da8fa007d5ff9","cd823094ded7c8ac4f94ab6dc387dab699293eb8323d9f948304efc07e4ae7b2","d45c02bf8b85203f35de2971eafb8f8092090d150c7805a189b3e197f53b12b6","ac388c7c7a262213a3700451bc921e382a93fb27c0252c34ccf03540b4ce044b","097a7e3badfd1c4b35f72aa0f722f5714a4f6a84e53fca5a79dcfebbfc5e718d","fb0107c83e2e0e75b77dacd0c3c6c3ab6844e98dce2a8f858c6f0a57c12136a6","ea410c8280b0ec480acb195c7dd36c1f054403f5fccee0beca85717777cf8562","628bceb593b3a5b3d73ff44a808a347ec07d6ee397104a1d88b0f9a20d8b4599","57e25505a5de058216a8f4416ca850788bfc3a412c8e90109b2ef91f75fdd615","2ba453918c1fcf1cbb2836f731534f356d5fe65ed9628811f686e8de3920ed0e","4bcb813ea56182beaaab1e8274524eb9f1449b0d8e79efc4a0399de09e43f816","cc689acd4eff461c808e01225be6a16d1787e44d451310be5dd556dd7ab08457","f0380f581cb015778c0fe51e95b5b7f6dae237280654558469b2486c1572268a","6184309fe39e2fe444f4ba94e7cd1abef48fcb48e258457c3b77c65828184241",{"version":"e2cd30c507d2cef0fa1675b90a46a726aa56078be47d0ae79cfdefaae5abef43","affectsGlobalScope":true},"905800cc110167503d0cf58bb0dd6fa4aaac1e9cedc9bd9c48e5d1f8b5b8d4c8","37577c4f865accbe17a77e46395831df983810f7f40029dcecab030e0dcf1a98",{"version":"17fef45daf4268739c248d3fd4904112e247beaa33ec18214cf0830cbebae306","affectsGlobalScope":true},"2c887f29f6796ea68247c626acbef560ff29bb8d0042b641e4fc69559841463d",{"version":"726740c77a2cfbf8ddf85c52584bb359be7effbbcb8da1eb74132c9fda946c29","affectsGlobalScope":true},"12f666f53167b7cb6622223beaf63a96e4fadfaa6b68ca123dc5a472b903e946","41e4b825afe9f38c821a8d7bd9667e2c923c847e31036cfd6c98006b0ca1653e",{"version":"f88306e9fb74c6f08a7880e874fba23642cfd64268c91d86350dbc8a8d41e071","affectsGlobalScope":true},"5565deadc1d553f9f1ef370351432c258d2a6f1a5ca47e574e5430db824468c7",{"version":"af568c8976f328ac8c77a0e976c5edd0fe4710ed001dca13294f31f2f23c490a","affectsGlobalScope":true},{"version":"461dd8c0faba42420b25dcecd7ed6ad40b088e0902a03fd69b5d5fdf78d99186","signature":"dc4a38d8b7866bba369a5830e7e7bb2b07cc149ff00dae7415b752fc879bf131"},"068501ee6bf5098d56ac8463cd54f245e176607bb1ad9b15f006451f7980f633",{"version":"7707efd81249bd2f8d2da24d735b3ec17b63330f350cfff38a911f9b915492b6","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0bd5e7096c7bc02bf70b2cc017fc45ef489cb19bd2f32a71af39ff5787f1b56a","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","60ecad5852d4d83edae430e597405132d278a79c10499e9363aecbe1ddc0eade","5f8f00356f6a82e21493b2d57b2178f11b00cf8960df00bd37bdcae24c9333ca",{"version":"a694c85180021f7681f98dbde94b648b4e1483ad6fad4afc1d217619613f833a","affectsGlobalScope":true},"346cc70aa5304faf122846a7854b32a000d02851a69fad84862307e5bcfec93a","17a3826f371a5253a1dd7bce7a4751e005ca8702fc2dbdc8084be25e1efb38ce",{"version":"8dae1936fc45a111c534d71877fa2973a5df9c937b7271473adb1a88566c435b","signature":"888e9f6f12480bc5142fe2e59e52c6beeda800e5740f1003e2b8b56c269d00f1"},{"version":"1fb008c1a29f86a8a0e9a674b7235f23c6d2a86c9658772941fb626a60aac53b","affectsGlobalScope":true},"8a659f7d82d932649a78f89643c5b436953424a219d705d49b8b3d9ccd6e35ff",{"version":"2d412861573a672bd90fdcb1e48740593324565f3b3aaf6808c0e3e2f0d54ae8","affectsGlobalScope":true},{"version":"cd711db43a952f15464b571ac11b7a440332cd52342bc92c4bf908c70688f57f","affectsGlobalScope":true},"9d8709c916778cb34830708ed47b78e9a46d1fb2eb73a682b14eee990bed4aa6",{"version":"507e2131e89b515ce40c05c0c2fef6cc575ba8947703f92e8cdf36078747a9ff","affectsGlobalScope":true},"999a90d30a3183dcee987d0a5a7c586aba5bacbf6ce087ba8635124082ccfeea","8a5878edd52f4a720560b4c6e6247e9ddc3df6118ad9cf2f9927903b03d5f440",{"version":"31214658e22c23eb58ff8383346bf6c8d135b3eab0748f3226aa7b6f30d2021f","affectsGlobalScope":true},"cc75216f6b332971954ef74bf3d14c3881c461e82987050d5f62af3e5966e845","ba413737ba42d8aeb36db45f34d265d4d949a8fe3d645d984311b2e906d2af0b",{"version":"4b93bb181cf4f25ccbf2ec1f559912c81678433a9784ce84163b5c9e1548998f","affectsGlobalScope":true},"65b91a3725399231d3469529b5e27b85bf2aa98013e607f308e5fe260b47eeff","a11181f6d68200e83ccb1fb48b262a7132a3257e0a230f41c9dc4c351964297a","359f23bc7fccaec08632ee5c33eb333a5b207fc8ae17c881c7b69919aced4d58","51bce1535d9cb87390d75581866d79de7b2e2cb525a89fba84411c8bb5be52d2","88cda4269c54f0803834fd62b2fac61af8bff7a085693f7ca9df85c1f19dee8a",{"version":"d40075d9f1c08b4a8d8e468076f5258900e99895e7259c40f3923b7044bbed6c","affectsGlobalScope":true},"754006450e5de2b7dac5993194326e3a65c1474673f7304c20810f5eda18ca05","fdf0aa1a72ff0188a9013926201a391116ef6701cd439b89850786abdf755fb8","0b5817d9435c019648f2a2326eaf1086efb72e8e90e28eb53a58b2f31f61e161","abf9ea97b78a7b239186cf5b7ed59c4a593abac3c408c8c95fc5e604cfdfdb43","ae91c9161caf0af81c89e780a045fc5ea8382407e516342e409c5db9161d3b32","d30c69f9eb16583b0a406358224c312b865514a6a7c787a57f16ef08e49b1886","5e02756608c1ac8ddf96878c3af3d4db7ed4e272aef24837e255859ee0a4fb71","4a662115c4c7186cc027ef4a8163e48c7f1c57f05247f08d5acb2344fae2ca53","d598157512ae6e0d3aa6bb0dd261ae34845831dccf7bc7739695ee2589eb76f5","905fbc07f65451b05cb5594d162674eb3ef8f2bf5f13552a1702215664aae3e7","50f63746fc2a779d1f9c5657fd78e292045dc98b540e026799e039ea629f2943",{"version":"cf66038d3f4d4880925fdd15e9dd8a22e314e3d42e92c6360f9dca88945f69a8","signature":"d63edd94669d1a607868af8a63bf885bb851c0f3d0972fc0898e87ca2d220496"},"09df3b4f1c937f02e7fee2836d4c4d7a63e66db70fd4d4e97126f4542cc21d9d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419",{"version":"32465ea19404cb188e84cf08c6b1f6b12d739140436402cdbc184a3fd20a7d81","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"45c22e7e615c8bb6e27325339490f6bd83828d843f9f3cf0ce9fd4d81f6cd923","affectsGlobalScope":true},"546ab07e19116d935ad982e76a223275b53bff7771dab94f433b7ab04652936e","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"aefb5a4a209f756b580eb53ea771cca8aad411603926f307a5e5b8ec6b16dcf6","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","f5a8b7ec4b798c88679194a8ebc25dcb6f5368e6e5811fcda9fe12b0d445b8db","b86e1a45b29437f3a99bad4147cb9fe2357617e8008c0484568e5bb5138d6e13","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","42c431e7965b641106b5e25ab3283aa4865ca7bb9909610a2abfa6226e4348be","0b7e732af0a9599be28c091d6bd1cb22c856ec0d415d4749c087c3881ca07a56","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"c65eca1f892b9e5ee97af93963b2bdf813e4be3b599d06dfb681da19df8358b0","affectsGlobalScope":true},"3b4c85eea12187de9929a76792b98406e8778ce575caca8c574f06da82622c54","f788131a39c81e0c9b9e463645dd7132b5bc1beb609b0e31e5c1ceaea378b4df","1ee64912f7961165a3b6e6209fb7a8aced98b578ca1373b9f0ea144edfe17f6c","21894466693f64957b9bd4c80fa3ec7fdfd4efa9d1861e070aca23f10220c9b2","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","ad8848c289c0b633452e58179f46edccd14b5a0fe90ebce411f79ff040b803e0",{"version":"5d4ef3f46c7f9d62f7c964f9f9ccdd293be99fb3dcc66c983f2aea7430e3c7c6","affectsGlobalScope":true},"91f8b5abcdff8f9ecb9656b9852878718416fb7700b2c4fad8331e5b97c080bb","59d8f064f86a4a2be03b33c0efcc9e7a268ad27b22f82dce16899f3364f70ba8","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"f49fb15c4aa06b65b0dce4db4584bfd8a9f74644baef1511b404dc95be34af00","affectsGlobalScope":true},{"version":"d48009cbe8a30a504031cc82e1286f78fed33b7a42abf7602c23b5547b382563","affectsGlobalScope":true},"7aaeb5e62f90e1b2be0fc4844df78cdb1be15c22b427bc6c39d57308785b8f10","3ba30205a029ebc0c91d7b1ab4da73f6277d730ca1fc6692d5a9144c6772c76b","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","458b216959c231df388a5de9dcbcafd4b4ca563bc3784d706d0455467d7d4942","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"786dd9ad95e335a5e76759d078940fdb5001b74498a31f90fad98afe196a84ca","affectsGlobalScope":true},{"version":"cbf046714f3a3ba2544957e1973ac94aa819fa8aa668846fa8de47eb1c41b0b2","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eae74e3d50820f37c72c0679fed959cd1e63c98f6a146a55b8c4361582fa6a52","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"aed89e3c18f4c659ee8153a76560dffda23e2d801e1e60d7a67abd84bc555f8d","affectsGlobalScope":true},{"version":"0ed13c80faeb2b7160bffb4926ff299c468e67a37a645b3ae0917ba0db633c1b","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","2f940651c2f30e6b29f8743fae3f40b7b1c03615184f837132b56ea75edad08b","5749c327c3f789f658072f8340786966c8b05ea124a56c1d8d60e04649495a4d",{"version":"c9d62b2a51b2ff166314d8be84f6881a7fcbccd37612442cf1c70d27d5352f50","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"d3f4c342fb62f348f25f54b473b0ab7371828cbf637134194fa9cdf04856f87b","6738101ae8e56cd3879ab3f99630ada7d78097fc9fd334df7e766216778ca219","ef437dd282a112d1172b50ac7fd86713d475a496da7aeb31119f529f1313c8d5","82819f9ecc249a6a3e284003540d02ea1b1f56f410c23231797b9e1e4b9622df","81a109b6bb6adf5ed70f2c7e6d907b8c3adcf7b47b5ee09701c5f97370fd29b7","c7da551241b7be719b7bd654ab12a5098c3206fbb189076dd2d8871011a6ab5a","f78253406029c78c96d8923b15e89a5900836e47a2b98bee6c83dc142421d395","5ae76b5a59f2f787e9eb2d4f1a066ceb4505a52bf8fe77ac321d791ef2e72000","64fcc79ee3c237816b9cef0a9289b00bf3da5b17040cd970ac04ba03c4ac1595","49f1d42ac650932fe64a9b623c27ea6e681335ea2e7cda52a5358f4248701001","f6218314af6f492ce5461bdadac5b829f5b4b31a3d1da3d04e77ed0afe0829fb","7167d932a7e2e991084421bb22af20024ada5a046d948c742de0f89996de5d0b","e2d3bfa79f0fad3ad67dfb0685c50dbe19b364a440160a2d40d0e3f44c75938c",{"version":"1c598f8d911f0bc39f04910c8c93f2f76fbb65f892ee5ecc38a2b58bb95af752","affectsGlobalScope":true},"4eadf1158f1ae8f7b0deea0f96b391359042cf74d1eb3ce1dacdb69de96e590d","f0120fc76274f614e7b8f5420a74abce69eee25b81e2084479fa426f33ccd46a","003f07cf566395059625b39785398f18652c8952e19790e7d6eeb22a9cbe0440","432dc46f22f9790797d98ccf09f7dc4a897bb5e874921217b951fb808947446b","28ed61ddc42936537ad29ade1404d533b4b28967460e29811409e5a40d9fc3b3","a36023d4a654c11e071b99cde8203d55d9feaf4940c766b9c960b8e0eb4f4c1f","42fe73978ddb3a82329bf41a116e921deb266551e4f0ad9e9c7bdc581c24f085","0670eede14b39fd186fe7e224db70510158af5279528d12292df9b980867c1d0","4274d4169679f93587cb887aa43570c2b5a840db17022093aa232ac2a9ca9beb","e98185f4249720ace1921d59c1ff4612fa5c633a183fc9bf28e2e7b8e3c7fd51",{"version":"481dc63ed954bc59b9169888ef7f009578f0aa395ff56059c173cba33c7ee065","affectsGlobalScope":true},"8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","c79bd2f3e5c05e7ad80dc82ce8d339cac23ac1f5e6cfab96c860bb70d5162873","e3328cedfe4d7fac23ba75d00bf5169269800ab949d0837cd88c4211a52c3762",{"version":"0e2d2d0ccf42bdd96e597727fad4d30bceabe0d161280824eb60d0d7c8929312","affectsGlobalScope":true},{"version":"a6d5989090536709cf02b1039c60de80daf8cd47835bc4910b8a841ef8cbc654","affectsGlobalScope":true},{"version":"1ba37271a244a1b872be0134c1b86e2bd446093c312d2f76e405b1c989e2fe97","affectsGlobalScope":true},{"version":"381236c13b79159876be4802d48edfc72dea4e8662e58d189676de9d54ad725f","affectsGlobalScope":true},"592c25a8a783ccd3666c22292dab7125aacee947b9fd0e79204a609284ba80e7","2b1af4170f6dfa90f43d2fe3d6c36f95b7fa121aa434a2acefb763d7be460a53","dd89872dd0647dfd63665f3d525c06d114310a2f7a5a9277e5982a152b31be2b","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","fa849c825ac37d70ca78097a1cd06bb5ac281651f765fff8e491cfb0709de57b","c39e1ee964fa0bb318ee2db72c430b3aede3b50dbde414b03b4e43915f80c292","32ab25b7b28b24a138d879ca371b18c8fdfdd564ad5107e1333c5aa5d5fea494","458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","da2b6356b84a40111aaecb18304ea4e4fcb43d70efb1c13ca7d7a906445ee0d3","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","6f294731b495c65ecf46a5694f0082954b961cf05463bea823f8014098eaffa0","0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","b03afe4bec768ae333582915146f48b161e567a81b5ebc31c4d78af089770ac9","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","30abc554c7ad13063a02ddd06757929b34357aea1f6fcf4ca39114cb0fc19384","2f768f764e91667b3018488352dfcb4b6ef2d14b3e472bbeca7c0b3eae8d7d15","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","0eacae49e20c8004e5022b3abc41cee708925a7bb0a52bafa2e416eca424d39d",{"version":"5f186a758a616c107c70e8918db4630d063bd782f22e6e0b17573b125765b40b","affectsGlobalScope":true},"58b3082802116f10782ecaa577a473499def44650204beb38a8541d4d98b757b","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","5cd2c1aad6f55e97990dfb8883885be47f885b78a8576f492389ff85e484d698","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","4964ba28dd6c9d086735062e8f4c63f23dd14e20b9b6d2acdc5774760d47b132","cc0700b1b97e18a3d5d9184470502d8762ec85158819d662730c3a8c5d702584","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","f77ff4cd234d3fd18ddd5aeadb6f94374511931976d41f4b9f594cb71f7ce6f3","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","4f18b4e6081e5e980ef53ddf57b9c959d36cffe1eb153865f512a01aeffb5e1e","7f17d4846a88eca5fe71c4474ef687ee89c4acf9b5372ab9b2ee68644b7e0fe0","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","58e0cee50add50d4b6d47a935e26aeb0080d98c9cf729f8af389511cdfa10526","bc81aff061c53a7140270555f4b22da4ecfe8601e8027cf5aa175fbdc7927c31","5fdc3a2b97a9b1987cea799a36c6a4ea2f34fb60e52734361451cb5445f11a94"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":false,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":5},"fileIdsList":[[84,164],[85,164],[164],[46,164],[54,164],[46,54,164],[46,54,62,164],[44,45,164],[53,65,164],[50,53,164],[53,72,73,164],[72,164],[50,53,66,69,71,164],[53,67,164],[53,68,164],[53,75,164],[53,164],[50,53,67,164],[53,70,164],[106,164],[46,104,105,164],[46,104,164],[88,89,164],[90,164],[89,91,164],[101,102,109,110,111,113,114,164],[103,107,164],[108,164],[104,164],[103,108,112,164],[103,164],[88,100,115,164],[92,95,96,99,164],[137,164,171],[137,164,171,174],[88,164],[137,164,171,176],[137,164,171,174,187,188],[134,137,164,171,176,182,183],[164,175,176,184,186],[164,192],[164,196],[164,197],[164,199,200,201,202,203],[164,208],[134,137,138,142,148,163,164,171,172,179,185,188,189,194,207],[164,209,211,212,213,214,215,216,217,218,219,220,221],[164,209,210,212,213,214,215,216,217,218,219,220,221],[164,210,211,212,213,214,215,216,217,218,219,220,221],[164,209,210,211,213,214,215,216,217,218,219,220,221],[164,209,210,211,212,214,215,216,217,218,219,220,221],[164,209,210,211,212,213,215,216,217,218,219,220,221],[164,209,210,211,212,213,214,216,217,218,219,220,221],[164,209,210,211,212,213,214,215,217,218,219,220,221],[164,209,210,211,212,213,214,215,216,218,219,220,221],[164,209,210,211,212,213,214,215,216,217,219,220,221],[164,209,210,211,212,213,214,215,216,217,218,220,221],[164,209,210,211,212,213,214,215,216,217,218,219,221],[164,209,210,211,212,213,214,215,216,217,218,219,220],[118,164],[121,164],[122,127,155,164],[123,134,135,142,152,163,164],[123,124,134,142,164],[125,164],[126,127,135,143,164],[127,152,160,164],[128,130,134,142,164],[129,164],[130,131,164],[134,164],[132,134,164],[121,134,164],[134,135,136,152,163,164],[134,135,136,149,152,155,164],[164,168],[130,134,137,142,152,163,164],[134,135,137,138,142,152,160,163,164],[137,139,152,160,163,164],[118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[134,140,164],[141,163,164,168],[130,134,142,152,164],[143,164],[144,164],[121,145,164],[146,162,164,168],[147,164],[148,164],[134,149,150,164],[149,151,164,166],[122,134,152,153,154,155,164],[122,152,154,164],[152,153,164],[155,164],[156,164],[121,152,164],[134,158,159,164],[158,159,164],[127,142,152,160,164],[161,164],[142,162,164],[122,137,148,163,164],[127,164],[152,164,165],[141,164,166],[164,167],[122,127,134,136,145,152,163,164,166,168],[152,164,169],[164,228],[164,229],[80,81,82,83,164],[164,171],[164,233,272],[164,233,257,272],[164,272],[164,233],[164,233,258,272],[164,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271],[164,258,272],[135,152,164,171,181],[137,164,171,181,185],[88,98,164],[97,164],[47,164],[134,137,139,142,152,160,163,164,169,171],[134,152,164,171],[94,164],[93,164],[46,50,164],[50,164],[48,49,164],[55,56,57,58,59,60,61,62,63,164],[46,50,51,52,164],[43,77,164],[43,53,64,74,76,164],[43,77,84,86,164],[43,53,77,79,116,164],[50,53,74,76],[77,86],[79]],"referencedMap":[[85,1],[86,2],[44,3],[54,4],[55,5],[58,6],[56,6],[60,6],[63,7],[62,3],[61,6],[59,6],[57,5],[45,3],[46,8],[66,9],[65,10],[74,11],[73,12],[72,13],[68,14],[69,15],[76,16],[75,10],[67,17],[70,18],[71,19],[104,3],[107,20],[106,21],[105,22],[90,23],[91,24],[89,3],[92,25],[115,26],[101,3],[108,27],[109,28],[110,3],[111,29],[113,30],[103,17],[112,31],[114,28],[116,32],[100,33],[172,34],[173,3],[175,35],[96,36],[88,3],[177,37],[178,3],[174,34],[179,3],[180,3],[189,38],[190,3],[191,3],[184,39],[187,40],[193,41],[194,3],[185,3],[195,3],[196,3],[197,42],[198,43],[204,44],[200,3],[199,3],[202,3],[201,3],[205,3],[206,3],[188,3],[207,45],[208,46],[210,47],[211,48],[209,49],[212,50],[213,51],[214,52],[215,53],[216,54],[217,55],[218,56],[219,57],[220,58],[221,59],[222,41],[181,3],[223,3],[224,3],[225,3],[118,60],[119,60],[121,61],[122,62],[123,63],[124,64],[125,65],[126,66],[127,67],[128,68],[129,69],[130,70],[131,70],[133,71],[132,72],[134,73],[135,74],[136,75],[120,76],[170,3],[137,77],[138,78],[139,79],[171,80],[140,81],[141,82],[142,83],[143,84],[144,85],[145,86],[146,87],[147,88],[148,89],[149,90],[150,90],[151,91],[152,92],[154,93],[153,94],[155,95],[156,96],[157,97],[158,98],[159,99],[160,100],[161,101],[162,102],[163,103],[164,104],[165,105],[166,106],[167,107],[168,108],[169,109],[226,3],[227,3],[229,110],[228,111],[230,3],[82,3],[176,3],[183,3],[80,3],[84,112],[231,113],[232,3],[83,3],[257,114],[258,115],[233,116],[236,116],[255,114],[256,114],[246,114],[245,117],[243,114],[238,114],[251,114],[249,114],[253,114],[237,114],[250,114],[254,114],[239,114],[240,114],[252,114],[234,114],[241,114],[242,114],[244,114],[248,114],[259,118],[247,114],[235,114],[272,119],[271,3],[266,118],[268,120],[267,118],[260,118],[261,118],[263,118],[265,118],[269,120],[270,120],[262,120],[264,120],[182,121],[186,122],[99,123],[98,124],[97,3],[203,3],[48,125],[47,3],[192,3],[273,126],[274,127],[93,36],[95,128],[94,129],[81,3],[51,130],[49,131],[52,3],[50,132],[102,131],[64,133],[53,134],[43,3],[8,3],[10,3],[9,3],[2,3],[11,3],[12,3],[13,3],[14,3],[15,3],[16,3],[17,3],[18,3],[3,3],[4,3],[22,3],[19,3],[20,3],[21,3],[23,3],[24,3],[25,3],[5,3],[26,3],[27,3],[28,3],[29,3],[6,3],[33,3],[30,3],[31,3],[32,3],[34,3],[7,3],[35,3],[40,3],[41,3],[36,3],[37,3],[38,3],[39,3],[1,3],[42,3],[78,135],[79,135],[77,136],[87,137],[117,138]],"exportedModulesMap":[[85,1],[86,2],[44,3],[54,4],[55,5],[58,6],[56,6],[60,6],[63,7],[62,3],[61,6],[59,6],[57,5],[45,3],[46,8],[66,9],[65,10],[74,11],[73,12],[72,13],[68,14],[69,15],[76,16],[75,10],[67,17],[70,18],[71,19],[104,3],[107,20],[106,21],[105,22],[90,23],[91,24],[89,3],[92,25],[115,26],[101,3],[108,27],[109,28],[110,3],[111,29],[113,30],[103,17],[112,31],[114,28],[116,32],[100,33],[172,34],[173,3],[175,35],[96,36],[88,3],[177,37],[178,3],[174,34],[179,3],[180,3],[189,38],[190,3],[191,3],[184,39],[187,40],[193,41],[194,3],[185,3],[195,3],[196,3],[197,42],[198,43],[204,44],[200,3],[199,3],[202,3],[201,3],[205,3],[206,3],[188,3],[207,45],[208,46],[210,47],[211,48],[209,49],[212,50],[213,51],[214,52],[215,53],[216,54],[217,55],[218,56],[219,57],[220,58],[221,59],[222,41],[181,3],[223,3],[224,3],[225,3],[118,60],[119,60],[121,61],[122,62],[123,63],[124,64],[125,65],[126,66],[127,67],[128,68],[129,69],[130,70],[131,70],[133,71],[132,72],[134,73],[135,74],[136,75],[120,76],[170,3],[137,77],[138,78],[139,79],[171,80],[140,81],[141,82],[142,83],[143,84],[144,85],[145,86],[146,87],[147,88],[148,89],[149,90],[150,90],[151,91],[152,92],[154,93],[153,94],[155,95],[156,96],[157,97],[158,98],[159,99],[160,100],[161,101],[162,102],[163,103],[164,104],[165,105],[166,106],[167,107],[168,108],[169,109],[226,3],[227,3],[229,110],[228,111],[230,3],[82,3],[176,3],[183,3],[80,3],[84,112],[231,113],[232,3],[83,3],[257,114],[258,115],[233,116],[236,116],[255,114],[256,114],[246,114],[245,117],[243,114],[238,114],[251,114],[249,114],[253,114],[237,114],[250,114],[254,114],[239,114],[240,114],[252,114],[234,114],[241,114],[242,114],[244,114],[248,114],[259,118],[247,114],[235,114],[272,119],[271,3],[266,118],[268,120],[267,118],[260,118],[261,118],[263,118],[265,118],[269,120],[270,120],[262,120],[264,120],[182,121],[186,122],[99,123],[98,124],[97,3],[203,3],[48,125],[47,3],[192,3],[273,126],[274,127],[93,36],[95,128],[94,129],[81,3],[51,130],[49,131],[52,3],[50,132],[102,131],[64,133],[53,134],[43,3],[8,3],[10,3],[9,3],[2,3],[11,3],[12,3],[13,3],[14,3],[15,3],[16,3],[17,3],[18,3],[3,3],[4,3],[22,3],[19,3],[20,3],[21,3],[23,3],[24,3],[25,3],[5,3],[26,3],[27,3],[28,3],[29,3],[6,3],[33,3],[30,3],[31,3],[32,3],[34,3],[7,3],[35,3],[40,3],[41,3],[36,3],[37,3],[38,3],[39,3],[1,3],[42,3],[78,135],[77,139],[87,140],[117,141]],"semanticDiagnosticsPerFile":[85,86,44,54,55,58,56,60,63,62,61,59,57,45,46,66,65,74,73,72,68,69,76,75,67,70,71,104,107,106,105,90,91,89,92,115,101,108,109,110,111,113,103,112,114,116,100,172,173,175,96,88,177,178,174,179,180,189,190,191,184,187,193,194,185,195,196,197,198,204,200,199,202,201,205,206,188,207,208,210,211,209,212,213,214,215,216,217,218,219,220,221,222,181,223,224,225,118,119,121,122,123,124,125,126,127,128,129,130,131,133,132,134,135,136,120,170,137,138,139,171,140,141,142,143,144,145,146,147,148,149,150,151,152,154,153,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,226,227,229,228,230,82,176,183,80,84,231,232,83,257,258,233,236,255,256,246,245,243,238,251,249,253,237,250,254,239,240,252,234,241,242,244,248,259,247,235,272,271,266,268,267,260,261,263,265,269,270,262,264,182,186,99,98,97,203,48,47,192,273,274,93,95,94,81,51,49,52,50,102,64,53,43,8,10,9,2,11,12,13,14,15,16,17,18,3,4,22,19,20,21,23,24,25,5,26,27,28,29,6,33,30,31,32,34,7,35,40,41,36,37,38,39,1,42,78,79,77,87,117]},"version":"4.9.5"}
package/package.json ADDED
@@ -0,0 +1,96 @@
1
+ {
2
+ "name": "@digital-realty/ix-fab",
3
+ "description": "Webcomponent ix-fab following open-wc recommendations",
4
+ "license": "MIT",
5
+ "author": "Digital Realty",
6
+ "version": "1.0.1",
7
+ "type": "module",
8
+ "main": "dist/src/index.js",
9
+ "module": "dist/src/index.js",
10
+ "exports": {
11
+ ".": "./dist/src/index.js",
12
+ "./ix-fab.js": "./dist/src/ix-fab.js",
13
+ "./IxFab.js": "./dist/src/react/IxFab.js"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "scripts": {
19
+ "analyze": "cem analyze --litelement",
20
+ "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
21
+ "build": "tsc && npm run analyze -- --exclude dist",
22
+ "prepublish": "tsc && npm run analyze -- --exclude dist",
23
+ "lint": "eslint --ext .ts,.html . --ignore-path .gitignore && prettier \"**/*.ts\" --check --ignore-path .gitignore",
24
+ "format": "eslint --ext .ts,.html . --fix --ignore-path .gitignore && prettier \"**/*.ts\" --write --ignore-path .gitignore",
25
+ "test": "tsc && wtr --coverage",
26
+ "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\"",
27
+ "storybook": "tsc && npm run analyze -- --exclude dist && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds -c .storybook/server.mjs\"",
28
+ "storybook:build": "tsc && npm run analyze -- --exclude dist && build-storybook"
29
+ },
30
+ "dependencies": {
31
+ "@eslint/js": "^8.49.0",
32
+ "@lit-labs/react": "^2.1.0",
33
+ "@material/web": "^1.0.0-pre.17",
34
+ "lit": "^2.0.2",
35
+ "react": "^18.2.0"
36
+ },
37
+ "devDependencies": {
38
+ "@custom-elements-manifest/analyzer": "^0.4.17",
39
+ "@open-wc/eslint-config": "^9.2.1",
40
+ "@open-wc/testing": "^3.1.6",
41
+ "@typescript-eslint/eslint-plugin": "^5.48.0",
42
+ "@typescript-eslint/parser": "^5.48.0",
43
+ "@web/dev-server": "^0.1.34",
44
+ "@web/dev-server-storybook": "^0.5.4",
45
+ "@web/test-runner": "^0.14.0",
46
+ "concurrently": "^5.3.0",
47
+ "eslint": "^8.31.0",
48
+ "eslint-config-prettier": "^8.3.0",
49
+ "husky": "^4.3.8",
50
+ "lint-staged": "^10.5.4",
51
+ "prettier": "^2.4.1",
52
+ "tslib": "^2.3.1",
53
+ "typescript": "^4.5.2"
54
+ },
55
+ "customElements": "custom-elements.json",
56
+ "eslintConfig": {
57
+ "parser": "@typescript-eslint/parser",
58
+ "extends": [
59
+ "@open-wc",
60
+ "prettier"
61
+ ],
62
+ "plugins": [
63
+ "@typescript-eslint"
64
+ ],
65
+ "rules": {
66
+ "no-unused-vars": "off",
67
+ "@typescript-eslint/no-unused-vars": [
68
+ "error"
69
+ ],
70
+ "import/no-unresolved": "off",
71
+ "import/extensions": [
72
+ "error",
73
+ "always",
74
+ {
75
+ "ignorePackages": true
76
+ }
77
+ ]
78
+ }
79
+ },
80
+ "prettier": {
81
+ "singleQuote": true,
82
+ "arrowParens": "avoid"
83
+ },
84
+ "husky": {
85
+ "hooks": {
86
+ "pre-commit": "lint-staged"
87
+ }
88
+ },
89
+ "lint-staged": {
90
+ "*.ts": [
91
+ "eslint --fix",
92
+ "prettier --write"
93
+ ]
94
+ },
95
+ "gitHead": "061ff172ff47bb4940e2242370694c54e929bf9d"
96
+ }
package/src/IxFab.ts ADDED
@@ -0,0 +1,46 @@
1
+ import { LitElement, html } from 'lit';
2
+ import { property } from 'lit/decorators.js';
3
+ import '@material/web/fab/fab.js';
4
+ import '@material/web/icon/icon.js';
5
+
6
+ export type FabVariant = 'surface' | 'primary' | 'secondary' | 'tertiary';
7
+ export type FabSize = 'medium' | 'small' | 'large';
8
+
9
+ export class IxFab extends LitElement {
10
+ /**
11
+ * Lowers the FAB's elevation.
12
+ */
13
+ @property({ type: Boolean, reflect: true }) lowered = false;
14
+
15
+ /**
16
+ * Changes the colour of the FAB
17
+ */
18
+ @property() variant: FabVariant = 'surface';
19
+
20
+ /**
21
+ * The text to display on the FAB.
22
+ */
23
+ @property() label: string = '';
24
+
25
+ /**
26
+ * The size of the FAB.
27
+ */
28
+ @property() size: FabSize = 'medium';
29
+
30
+ // eslint-disable-next-line class-methods-use-this
31
+ @property() onClick: (event: MouseEvent) => void = () => {};
32
+
33
+ render() {
34
+ return html`
35
+ <md-fab
36
+ .label=${this.label}
37
+ .lowered=${this.lowered}
38
+ .size=${this.size}
39
+ .variant=${this.variant}
40
+ @click=${this.onClick}
41
+ >
42
+ <slot slot="icon"></slot>
43
+ </md-fab>
44
+ `;
45
+ }
46
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { IxFab } from './IxFab.js';
package/src/ix-fab.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { IxFab } from './IxFab.js';
2
+
3
+ window.customElements.define('ix-fab', IxFab);
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit-labs/react';
3
+ import { IxFab as IxFabLit } from '../IxFab.js';
4
+
5
+ window.customElements.define('ix-fab', IxFabLit);
6
+
7
+ export const IxFab = createComponent({
8
+ tagName: 'ix-fab',
9
+ elementClass: IxFabLit,
10
+ react: React,
11
+ events: {
12
+ onclick: 'onClick',
13
+ },
14
+ });
@@ -0,0 +1,89 @@
1
+ import { html } from 'lit';
2
+ import { fixture, expect } from '@open-wc/testing';
3
+ import { IxFab } from '../src/IxFab.js';
4
+ import '../src/ix-fab.js';
5
+
6
+ describe('IxFab', () => {
7
+ it('Should trigger event when button is clicked', async () => {
8
+ let message = '';
9
+
10
+ const onClick = () => {
11
+ message = 'Clicked!';
12
+ };
13
+
14
+ const el = await fixture<IxFab>(html`
15
+ <ix-fab @click=${onClick}></ix-button>
16
+ `);
17
+
18
+ el.click();
19
+ expect(message, 'Got unexpected message from click').to.equal('Clicked!');
20
+ });
21
+
22
+ it('Should render icon within container', async () => {
23
+ const el = await fixture<IxFab>(html`
24
+ <ix-fab>
25
+ <md-icon>Home</md-icon>
26
+ </ix-fab>
27
+ `);
28
+
29
+ const slot = el?.shadowRoot?.querySelector(
30
+ 'slot[slot="icon"]'
31
+ ) as HTMLSlotElement;
32
+ const assignedNodes = slot.assignedNodes();
33
+
34
+ const hasIcon = assignedNodes.some(
35
+ node => node.nodeName.toLowerCase() === 'md-icon'
36
+ );
37
+
38
+ expect(hasIcon, 'md-icon is not slotted').to.be.true;
39
+ });
40
+
41
+ it('Should render label when label property is passed', async () => {
42
+ const text = 'Hello World!';
43
+
44
+ const el = await fixture<IxFab>(html` <ix-fab label=${text}></ix-fab> `);
45
+
46
+ const mdFab = el.shadowRoot?.querySelector('md-fab');
47
+ const label = mdFab?.shadowRoot?.querySelector(
48
+ 'span.label'
49
+ ) as HTMLSpanElement;
50
+
51
+ expect(label.innerText === text, 'Could not find label in element').to.be
52
+ .true;
53
+ });
54
+
55
+ // lowered
56
+ it('Should correctly apply variant, size and lowered styles', async () => {
57
+ const props = {
58
+ size: 'large',
59
+ variant: 'tertiary',
60
+ lowered: true,
61
+ };
62
+
63
+ const el = await fixture<IxFab>(html`
64
+ <ix-fab
65
+ size=${props.size}
66
+ variant=${props.variant}
67
+ lowered=${props.lowered}
68
+ >
69
+ </ix-fab>
70
+ `);
71
+
72
+ const button = el.shadowRoot
73
+ ?.querySelector('md-fab')
74
+ ?.shadowRoot?.querySelector('button');
75
+
76
+ expect(
77
+ button?.classList.contains('lowered'),
78
+ 'lowered class was not applied to fab'
79
+ ).to.be.true;
80
+ expect(
81
+ button?.classList.contains('large'),
82
+ 'size class was not applied to fab'
83
+ ).to.be.true;
84
+ expect(
85
+ button?.classList.contains('tertiary'),
86
+ 'variant class was not applied to fab'
87
+ ).to.be.true;
88
+ });
89
+ });
package/tsconfig.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2018",
4
+ "module": "esnext",
5
+ "moduleResolution": "node",
6
+ "noEmitOnError": true,
7
+ "lib": ["es2017", "dom"],
8
+ "strict": true,
9
+ "esModuleInterop": false,
10
+ "allowSyntheticDefaultImports": true,
11
+ "experimentalDecorators": true,
12
+ "importHelpers": true,
13
+ "outDir": "dist",
14
+ "sourceMap": true,
15
+ "inlineSources": true,
16
+ "rootDir": "./",
17
+ "declaration": true,
18
+ "incremental": true
19
+ },
20
+ "include": ["**/*.ts"]
21
+ }
@@ -0,0 +1,27 @@
1
+ // import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
2
+
3
+ /** Use Hot Module replacement by adding --hmr to the start command */
4
+ const hmr = process.argv.includes('--hmr');
5
+
6
+ export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
7
+ open: '/demo/',
8
+ /** Use regular watch mode if HMR is not enabled. */
9
+ watch: !hmr,
10
+ /** Resolve bare module imports */
11
+ nodeResolve: {
12
+ exportConditions: ['browser', 'development'],
13
+ },
14
+
15
+ /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
16
+ // esbuildTarget: 'auto'
17
+
18
+ /** Set appIndex to enable SPA routing */
19
+ // appIndex: 'demo/index.html',
20
+
21
+ plugins: [
22
+ /** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
23
+ // hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
24
+ ],
25
+
26
+ // See documentation for all available options
27
+ });
@@ -0,0 +1,41 @@
1
+ // import { playwrightLauncher } from '@web/test-runner-playwright';
2
+
3
+ const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
4
+
5
+ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
6
+ /** Test files to run */
7
+ files: 'dist/test/**/*.test.js',
8
+
9
+ /** Resolve bare module imports */
10
+ nodeResolve: {
11
+ exportConditions: ['browser', 'development'],
12
+ },
13
+
14
+ /** Filter out lit dev mode logs */
15
+ filterBrowserLogs(log) {
16
+ for (const arg of log.args) {
17
+ if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
18
+ return false;
19
+ }
20
+ }
21
+ return true;
22
+ },
23
+
24
+ /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
25
+ // esbuildTarget: 'auto',
26
+
27
+ /** Amount of browsers to run concurrently */
28
+ // concurrentBrowsers: 2,
29
+
30
+ /** Amount of test files per browser to test concurrently */
31
+ // concurrency: 1,
32
+
33
+ /** Browsers to run tests on */
34
+ // browsers: [
35
+ // playwrightLauncher({ product: 'chromium' }),
36
+ // playwrightLauncher({ product: 'firefox' }),
37
+ // playwrightLauncher({ product: 'webkit' }),
38
+ // ],
39
+
40
+ // See documentation for all available options
41
+ });