@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 +21 -0
- package/README.md +91 -0
- package/demo/index.html +29 -0
- package/dist/src/IxFab.d.ts +25 -0
- package/dist/src/IxFab.js +57 -0
- package/dist/src/IxFab.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ix-fab.d.ts +1 -0
- package/dist/src/ix-fab.js +3 -0
- package/dist/src/ix-fab.js.map +1 -0
- package/dist/src/react/IxFab.d.ts +4 -0
- package/dist/src/react/IxFab.js +13 -0
- package/dist/src/react/IxFab.js.map +1 -0
- package/dist/test/ix-fab.test.d.ts +1 -0
- package/dist/test/ix-fab.test.js +59 -0
- package/dist/test/ix-fab.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +96 -0
- package/src/IxFab.ts +46 -0
- package/src/index.ts +1 -0
- package/src/ix-fab.ts +3 -0
- package/src/react/IxFab.ts +14 -0
- package/test/ix-fab.test.ts +89 -0
- package/tsconfig.json +21 -0
- package/web-dev-server.config.mjs +27 -0
- package/web-test-runner.config.mjs +41 -0
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`
|
package/demo/index.html
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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,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,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
|
+
});
|