@digital-realty/ix-icon-button 1.0.3

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-icon-button
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,68 @@
1
+ # \<ix-icon-button>
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 ix-icon-button
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```html
14
+ <script type="module">
15
+ import 'ix-icon-button/ix-icon-button.js';
16
+ </script>
17
+
18
+ <ix-icon-button></ix-icon-button>
19
+ ```
20
+ ### In React
21
+ ```html
22
+ <script type="module">
23
+ import { IxIconButton } from '@digital-realty/ix-icon-button/IxIconButton'
24
+ </script>
25
+ ```
26
+
27
+ ## Linting and formatting
28
+
29
+ To scan the project for linting and formatting errors, run
30
+
31
+ ```bash
32
+ npm run lint
33
+ ```
34
+
35
+ To automatically fix linting and formatting errors, run
36
+
37
+ ```bash
38
+ npm run format
39
+ ```
40
+
41
+ ## Testing with Web Test Runner
42
+
43
+ To execute a single test run:
44
+
45
+ ```bash
46
+ npm run test
47
+ ```
48
+
49
+ To run the tests in interactive watch mode run:
50
+
51
+ ```bash
52
+ npm run test:watch
53
+ ```
54
+
55
+
56
+ ## Tooling configs
57
+
58
+ For most of the tools, the configuration is in the `package.json` to reduce the amount of files in your project.
59
+
60
+ If you customize the configuration a lot, you can consider moving them to individual files.
61
+
62
+ ## Local Demo with `web-dev-server`
63
+
64
+ ```bash
65
+ npm start
66
+ ```
67
+
68
+ To run a local development server that serves the basic demo located in `demo/index.html`
@@ -0,0 +1,46 @@
1
+ import { LitElement } from 'lit';
2
+ import '@material/web/iconbutton/icon-button.js';
3
+ import '@material/web/iconbutton/filled-icon-button.js';
4
+ import '@material/web/iconbutton/filled-tonal-icon-button.js';
5
+ import '@material/web/iconbutton/outlined-icon-button.js';
6
+ type LinkTarget = '_blank' | '_parent' | '_self' | '_top';
7
+ type FormSubmitterType = 'button' | 'submit' | 'reset';
8
+ export declare class IxIconButton extends LitElement {
9
+ appearance: 'filled' | 'filled-tonal' | 'outlined';
10
+ /**
11
+ * Disables the icon button and makes it non-interactive.
12
+ */
13
+ disabled: boolean;
14
+ /**
15
+ * Flips the icon if it is in an RTL context at startup.
16
+ */
17
+ flipIconInRtl: boolean;
18
+ /**
19
+ * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.
20
+ */
21
+ href: string;
22
+ /**
23
+ * Sets the underlying `HTMLAnchorElement`'s `target` attribute.
24
+ */
25
+ target: LinkTarget | '';
26
+ /**
27
+ * The `aria-label` of the button when the button is toggleable and selected.
28
+ */
29
+ ariaLabelSelected: string;
30
+ /**
31
+ * When true, the button will toggle between selected and unselected
32
+ * states
33
+ */
34
+ toggle: boolean;
35
+ /**
36
+ * Sets the selected state. When false, displays the default icon. When true,
37
+ * displays the selected icon, or the default icon If no `slot="selected"`
38
+ * icon is provided.
39
+ */
40
+ selected: boolean;
41
+ type: FormSubmitterType;
42
+ value: string;
43
+ onClick: (event: MouseEvent) => void;
44
+ render(): import("lit-html").TemplateResult<1>;
45
+ }
46
+ export {};
@@ -0,0 +1,130 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement } from 'lit';
3
+ import { property } from 'lit/decorators.js';
4
+ import '@material/web/iconbutton/icon-button.js';
5
+ import '@material/web/iconbutton/filled-icon-button.js';
6
+ import '@material/web/iconbutton/filled-tonal-icon-button.js';
7
+ import '@material/web/iconbutton/outlined-icon-button.js';
8
+ export class IxIconButton extends LitElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.appearance = 'filled';
12
+ /**
13
+ * Disables the icon button and makes it non-interactive.
14
+ */
15
+ this.disabled = false;
16
+ /**
17
+ * Flips the icon if it is in an RTL context at startup.
18
+ */
19
+ this.flipIconInRtl = false;
20
+ /**
21
+ * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.
22
+ */
23
+ this.href = '';
24
+ /**
25
+ * Sets the underlying `HTMLAnchorElement`'s `target` attribute.
26
+ */
27
+ this.target = '';
28
+ /**
29
+ * The `aria-label` of the button when the button is toggleable and selected.
30
+ */
31
+ this.ariaLabelSelected = '';
32
+ /**
33
+ * When true, the button will toggle between selected and unselected
34
+ * states
35
+ */
36
+ this.toggle = false;
37
+ /**
38
+ * Sets the selected state. When false, displays the default icon. When true,
39
+ * displays the selected icon, or the default icon If no `slot="selected"`
40
+ * icon is provided.
41
+ */
42
+ this.selected = false;
43
+ this.type = 'submit';
44
+ this.value = '';
45
+ this.onClick = () => { };
46
+ }
47
+ render() {
48
+ let comp;
49
+ if (this.appearance === 'filled') {
50
+ comp = html `<md-filled-icon-button
51
+ @click=${this.onClick}
52
+ .disabled=${this.disabled}
53
+ .flipIconInRtl=${this.flipIconInRtl}
54
+ .href=${this.href}
55
+ .target=${this.target}
56
+ .ariaLabelSelected=${this.ariaLabelSelected}
57
+ .toggle=${this.toggle}
58
+ .selected=${this.selected}
59
+ .type=${this.type}
60
+ .value=${this.value}
61
+ ><slot></slot
62
+ ></md-filled-icon-button>`;
63
+ }
64
+ else if (this.appearance === 'filled-tonal') {
65
+ comp = html `<md-filled-tonal-icon-button
66
+ @click=${this.onClick}
67
+ .disabled=${this.disabled}
68
+ .flipIconInRtl=${this.flipIconInRtl}
69
+ .href=${this.href}
70
+ .target=${this.target}
71
+ .ariaLabelSelected=${this.ariaLabelSelected}
72
+ .toggle=${this.toggle}
73
+ .selected=${this.selected}
74
+ .type=${this.type}
75
+ .value=${this.value}
76
+ ><slot></slot
77
+ ></md-filled-tonal-icon-button>`;
78
+ }
79
+ else if (this.appearance === 'outlined') {
80
+ comp = html `<md-outlined-icon-button
81
+ @click=${this.onClick}
82
+ .disabled=${this.disabled}
83
+ .flipIconInRtl=${this.flipIconInRtl}
84
+ .href=${this.href}
85
+ .target=${this.target}
86
+ .ariaLabelSelected=${this.ariaLabelSelected}
87
+ .toggle=${this.toggle}
88
+ .selected=${this.selected}
89
+ .type=${this.type}
90
+ .value=${this.value}
91
+ ><slot></slot
92
+ ></md-outlined-icon-button>`;
93
+ }
94
+ return html `${comp}`;
95
+ }
96
+ }
97
+ __decorate([
98
+ property()
99
+ ], IxIconButton.prototype, "appearance", void 0);
100
+ __decorate([
101
+ property({ type: Boolean, reflect: true })
102
+ ], IxIconButton.prototype, "disabled", void 0);
103
+ __decorate([
104
+ property({ type: Boolean, attribute: 'flip-icon-in-rtl' })
105
+ ], IxIconButton.prototype, "flipIconInRtl", void 0);
106
+ __decorate([
107
+ property()
108
+ ], IxIconButton.prototype, "href", void 0);
109
+ __decorate([
110
+ property()
111
+ ], IxIconButton.prototype, "target", void 0);
112
+ __decorate([
113
+ property({ attribute: 'aria-label-selected' })
114
+ ], IxIconButton.prototype, "ariaLabelSelected", void 0);
115
+ __decorate([
116
+ property({ type: Boolean })
117
+ ], IxIconButton.prototype, "toggle", void 0);
118
+ __decorate([
119
+ property({ type: Boolean, reflect: true })
120
+ ], IxIconButton.prototype, "selected", void 0);
121
+ __decorate([
122
+ property()
123
+ ], IxIconButton.prototype, "type", void 0);
124
+ __decorate([
125
+ property()
126
+ ], IxIconButton.prototype, "value", void 0);
127
+ __decorate([
128
+ property()
129
+ ], IxIconButton.prototype, "onClick", void 0);
130
+ //# sourceMappingURL=IxIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IxIconButton.js","sourceRoot":"","sources":["../../src/IxIconButton.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,yCAAyC,CAAC;AACjD,OAAO,gDAAgD,CAAC;AACxD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,kDAAkD,CAAC;AAK1D,MAAM,OAAO,YAAa,SAAQ,UAAU;IAA5C;;QAEE,eAAU,GAA2C,QAAQ,CAAC;QAE9D;;WAEG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAE7D;;WAEG;QAEH,kBAAa,GAAG,KAAK,CAAC;QAEtB;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;QAEtB;;WAEG;QACS,WAAM,GAAoB,EAAE,CAAC;QAEzC;;WAEG;QAC6C,sBAAiB,GAAG,EAAE,CAAC;QAEvE;;;WAGG;QAC0B,WAAM,GAAG,KAAK,CAAC;QAE5C;;;;WAIG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAEjD,SAAI,GAAsB,QAAQ,CAAC;QAEnC,UAAK,GAAG,EAAE,CAAC;QAGvB,YAAO,GAAgC,GAAG,EAAE,GAAE,CAAC,CAAC;IAiDlD,CAAC;IA/CC,MAAM;QACJ,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE;YAChC,IAAI,GAAG,IAAI,CAAA;iBACA,IAAI,CAAC,OAAO;oBACT,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,aAAa;gBAC3B,IAAI,CAAC,IAAI;kBACP,IAAI,CAAC,MAAM;6BACA,IAAI,CAAC,iBAAiB;kBACjC,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;gBACjB,IAAI,CAAC,IAAI;iBACR,IAAI,CAAC,KAAK;;gCAEK,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc,EAAE;YAC7C,IAAI,GAAG,IAAI,CAAA;iBACA,IAAI,CAAC,OAAO;oBACT,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,aAAa;gBAC3B,IAAI,CAAC,IAAI;kBACP,IAAI,CAAC,MAAM;6BACA,IAAI,CAAC,iBAAiB;kBACjC,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;gBACjB,IAAI,CAAC,IAAI;iBACR,IAAI,CAAC,KAAK;;sCAEW,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE;YACzC,IAAI,GAAG,IAAI,CAAA;iBACA,IAAI,CAAC,OAAO;oBACT,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,aAAa;gBAC3B,IAAI,CAAC,IAAI;kBACP,IAAI,CAAC,MAAM;6BACA,IAAI,CAAC,iBAAiB;kBACjC,IAAI,CAAC,MAAM;oBACT,IAAI,CAAC,QAAQ;gBACjB,IAAI,CAAC,IAAI;iBACR,IAAI,CAAC,KAAK;;kCAEO,CAAC;SAC9B;QACD,OAAO,IAAI,CAAA,GAAG,IAAI,EAAE,CAAC;IACvB,CAAC;CACF;AA/FC;IADC,QAAQ,EAAE;gDACmD;AAKlB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAkB;AAM7D;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;mDACrC;AAKV;IAAX,QAAQ,EAAE;0CAAW;AAKV;IAAX,QAAQ,EAAE;4CAA8B;AAKO;IAA/C,QAAQ,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC;uDAAwB;AAM1C;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAgB;AAOA;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAkB;AAEjD;IAAX,QAAQ,EAAE;0CAAoC;AAEnC;IAAX,QAAQ,EAAE;2CAAY;AAGvB;IADC,QAAQ,EAAE;6CACqC","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '@material/web/iconbutton/icon-button.js';\nimport '@material/web/iconbutton/filled-icon-button.js';\nimport '@material/web/iconbutton/filled-tonal-icon-button.js';\nimport '@material/web/iconbutton/outlined-icon-button.js';\n\ntype LinkTarget = '_blank' | '_parent' | '_self' | '_top';\ntype FormSubmitterType = 'button' | 'submit' | 'reset';\n\nexport class IxIconButton extends LitElement {\n @property()\n appearance: 'filled' | 'filled-tonal' | 'outlined' = 'filled';\n\n /**\n * Disables the icon button and makes it non-interactive.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /**\n * Flips the icon if it is in an RTL context at startup.\n */\n @property({ type: Boolean, attribute: 'flip-icon-in-rtl' })\n flipIconInRtl = false;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.\n */\n @property() href = '';\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `target` attribute.\n */\n @property() target: LinkTarget | '' = '';\n\n /**\n * The `aria-label` of the button when the button is toggleable and selected.\n */\n @property({ attribute: 'aria-label-selected' }) ariaLabelSelected = '';\n\n /**\n * When true, the button will toggle between selected and unselected\n * states\n */\n @property({ type: Boolean }) toggle = false;\n\n /**\n * Sets the selected state. When false, displays the default icon. When true,\n * displays the selected icon, or the default icon If no `slot=\"selected\"`\n * icon is provided.\n */\n @property({ type: Boolean, reflect: true }) selected = false;\n\n @property() type: FormSubmitterType = 'submit';\n\n @property() value = '';\n\n @property()\n onClick: (event: MouseEvent) => void = () => {};\n\n render() {\n let comp;\n if (this.appearance === 'filled') {\n comp = html`<md-filled-icon-button\n @click=${this.onClick}\n .disabled=${this.disabled}\n .flipIconInRtl=${this.flipIconInRtl}\n .href=${this.href}\n .target=${this.target}\n .ariaLabelSelected=${this.ariaLabelSelected}\n .toggle=${this.toggle}\n .selected=${this.selected}\n .type=${this.type}\n .value=${this.value}\n ><slot></slot\n ></md-filled-icon-button>`;\n } else if (this.appearance === 'filled-tonal') {\n comp = html`<md-filled-tonal-icon-button\n @click=${this.onClick}\n .disabled=${this.disabled}\n .flipIconInRtl=${this.flipIconInRtl}\n .href=${this.href}\n .target=${this.target}\n .ariaLabelSelected=${this.ariaLabelSelected}\n .toggle=${this.toggle}\n .selected=${this.selected}\n .type=${this.type}\n .value=${this.value}\n ><slot></slot\n ></md-filled-tonal-icon-button>`;\n } else if (this.appearance === 'outlined') {\n comp = html`<md-outlined-icon-button\n @click=${this.onClick}\n .disabled=${this.disabled}\n .flipIconInRtl=${this.flipIconInRtl}\n .href=${this.href}\n .target=${this.target}\n .ariaLabelSelected=${this.ariaLabelSelected}\n .toggle=${this.toggle}\n .selected=${this.selected}\n .type=${this.type}\n .value=${this.value}\n ><slot></slot\n ></md-outlined-icon-button>`;\n }\n return html`${comp}`;\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export { IxIconButton } from './IxIconButton.js';
@@ -0,0 +1,2 @@
1
+ export { IxIconButton } from './IxIconButton.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,YAAY,EAAE,MAAM,mBAAmB,CAAC","sourcesContent":["export { IxIconButton } from './IxIconButton.js';\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { IxIconButton } from './IxIconButton.js';
2
+ window.customElements.define('ix-icon-button', IxIconButton);
3
+ //# sourceMappingURL=ix-icon-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-icon-button.js","sourceRoot":"","sources":["../../src/ix-icon-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC","sourcesContent":["import { IxIconButton } from './IxIconButton.js';\n\nwindow.customElements.define('ix-icon-button', IxIconButton);\n"]}
@@ -0,0 +1,2 @@
1
+ import { IxIconButton as LitComp } from '../IxIconButton.js';
2
+ export declare const IxButton: import("@lit-labs/react").ReactWebComponent<LitComp, {}>;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit-labs/react';
3
+ import { IxIconButton as LitComp } from '../IxIconButton.js';
4
+ window.customElements.define('ix-icon-button', LitComp);
5
+ export const IxButton = createComponent({
6
+ tagName: 'ix-icon-button',
7
+ elementClass: LitComp,
8
+ react: React,
9
+ });
10
+ //# sourceMappingURL=IxIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IxIconButton.js","sourceRoot":"","sources":["../../../src/react/IxIconButton.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAExD,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,OAAO,EAAE,gBAAgB;IACzB,YAAY,EAAE,OAAO;IACrB,KAAK,EAAE,KAAK;CACb,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport { createComponent } from '@lit-labs/react';\nimport { IxIconButton as LitComp } from '../IxIconButton.js';\n\nwindow.customElements.define('ix-icon-button', LitComp);\n\nexport const IxButton = createComponent({\n tagName: 'ix-icon-button',\n elementClass: LitComp,\n react: React,\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../src/ix-icon-button.js';
@@ -0,0 +1,76 @@
1
+ import { html } from 'lit';
2
+ import { fixture, expect } from '@open-wc/testing';
3
+ import '../src/ix-icon-button.js';
4
+ describe('IxIconButton', () => {
5
+ it('Should fire event when submit button is clicked', async () => {
6
+ let message = '';
7
+ const props = {
8
+ disabled: false,
9
+ type: 'submit',
10
+ appearance: 'filled',
11
+ onClick: () => {
12
+ message = 'Hello world!';
13
+ },
14
+ };
15
+ const el = await fixture(html `
16
+ <ix-icon-button
17
+ @click=${props.onClick}
18
+ type="${props.type}"
19
+ ?disabled=${props.disabled}
20
+ appearance="${props.appearance}"
21
+ ></ix-icon-button>
22
+ `);
23
+ el.click();
24
+ expect(message).to.equal('Hello world!');
25
+ });
26
+ it('should render filled button by default', async () => {
27
+ var _a;
28
+ const props = {
29
+ disabled: false,
30
+ type: 'submit',
31
+ };
32
+ const el = await fixture(html `
33
+ <ix-icon-button
34
+ type="${props.type}"
35
+ ?disabled=${props.disabled}
36
+ ></ix-icon-button>
37
+ `);
38
+ const button = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('md-filled-icon-button');
39
+ expect(button).to.be.not.null;
40
+ });
41
+ it('should render filled-tonal button when appearance is filled-tonal', async () => {
42
+ var _a;
43
+ const props = {
44
+ disabled: false,
45
+ type: 'submit',
46
+ appearance: 'filled-tonal',
47
+ };
48
+ const el = await fixture(html `
49
+ <ix-icon-button
50
+ type="${props.type}"
51
+ ?disabled=${props.disabled}
52
+ appearance="${props.appearance}"
53
+ ></ix-icon-button>
54
+ `);
55
+ const button = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('md-filled-tonal-icon-button');
56
+ expect(button).to.be.not.null;
57
+ });
58
+ it('should render outlined button when appearance is outlined', async () => {
59
+ var _a;
60
+ const props = {
61
+ disabled: false,
62
+ type: 'submit',
63
+ appearance: 'outlined',
64
+ };
65
+ const el = await fixture(html `
66
+ <ix-icon-button
67
+ type="${props.type}"
68
+ ?disabled=${props.disabled}
69
+ appearance="${props.appearance}"
70
+ ></ix-icon-button>
71
+ `);
72
+ const button = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('md-outlined-icon-button');
73
+ expect(button).to.be.not.null;
74
+ });
75
+ });
76
+ //# sourceMappingURL=ix-icon-button.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ix-icon-button.test.js","sourceRoot":"","sources":["../../test/ix-icon-button.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,0BAA0B,CAAC;AAElC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,GAAG,EAAE;gBACZ,OAAO,GAAG,cAAc,CAAC;YAC3B,CAAC;SACF,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;;iBAE9B,KAAK,CAAC,OAAO;gBACd,KAAK,CAAC,IAAI;oBACN,KAAK,CAAC,QAAQ;sBACZ,KAAK,CAAC,UAAU;;KAEjC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;;QACtD,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;;gBAE/B,KAAK,CAAC,IAAI;oBACN,KAAK,CAAC,QAAQ;;KAE7B,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;;QACjF,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,cAAc;SAC3B,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;;gBAE/B,KAAK,CAAC,IAAI;oBACN,KAAK,CAAC,QAAQ;sBACZ,KAAK,CAAC,UAAU;;KAEjC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,6BAA6B,CAAC,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;;QACzE,MAAM,KAAK,GAAG;YACZ,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,UAAU;SACvB,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAe,IAAI,CAAA;;gBAE/B,KAAK,CAAC,IAAI;oBACN,KAAK,CAAC,QAAQ;sBACZ,KAAK,CAAC,UAAU;;KAEjC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { html } from 'lit';\nimport { fixture, expect } from '@open-wc/testing';\nimport { IxIconButton } from '../src/IxIconButton.js';\nimport '../src/ix-icon-button.js';\n\ndescribe('IxIconButton', () => {\n it('Should fire event when submit button is clicked', async () => {\n let message = '';\n const props = {\n disabled: false,\n type: 'submit',\n appearance: 'filled',\n onClick: () => {\n message = 'Hello world!';\n },\n };\n const el = await fixture<IxIconButton>(html`\n <ix-icon-button\n @click=${props.onClick}\n type=\"${props.type}\"\n ?disabled=${props.disabled}\n appearance=\"${props.appearance}\"\n ></ix-icon-button>\n `);\n el.click();\n expect(message).to.equal('Hello world!');\n });\n\n it('should render filled button by default', async () => {\n const props = {\n disabled: false,\n type: 'submit',\n };\n const el = await fixture<IxIconButton>(html`\n <ix-icon-button\n type=\"${props.type}\"\n ?disabled=${props.disabled}\n ></ix-icon-button>\n `);\n const button = el.shadowRoot?.querySelector('md-filled-icon-button');\n expect(button).to.be.not.null;\n });\n it('should render filled-tonal button when appearance is filled-tonal', async () => {\n const props = {\n disabled: false,\n type: 'submit',\n appearance: 'filled-tonal',\n };\n const el = await fixture<IxIconButton>(html`\n <ix-icon-button\n type=\"${props.type}\"\n ?disabled=${props.disabled}\n appearance=\"${props.appearance}\"\n ></ix-icon-button>\n `);\n const button = el.shadowRoot?.querySelector('md-filled-tonal-icon-button');\n expect(button).to.be.not.null;\n });\n it('should render outlined button when appearance is outlined', async () => {\n const props = {\n disabled: false,\n type: 'submit',\n appearance: 'outlined',\n };\n const el = await fixture<IxIconButton>(html`\n <ix-icon-button\n type=\"${props.type}\"\n ?disabled=${props.disabled}\n appearance=\"${props.appearance}\"\n ></ix-icon-button>\n `);\n const button = el.shadowRoot?.querySelector('md-outlined-icon-button');\n expect(button).to.be.not.null;\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/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/internal/controller/element-internals.d.ts","../../../node_modules/@material/web/internal/controller/form-submitter.d.ts","../../../node_modules/@material/web/iconbutton/internal/icon-button.d.ts","../../../node_modules/@material/web/iconbutton/icon-button.d.ts","../../../node_modules/@material/web/iconbutton/filled-icon-button.d.ts","../../../node_modules/@material/web/iconbutton/filled-tonal-icon-button.d.ts","../../../node_modules/@material/web/iconbutton/outlined-icon-button.d.ts","../src/ixiconbutton.ts","../src/index.ts","../src/ix-icon-button.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/ixiconbutton.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-icon-button.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","905800cc110167503d0cf58bb0dd6fa4aaac1e9cedc9bd9c48e5d1f8b5b8d4c8","37577c4f865accbe17a77e46395831df983810f7f40029dcecab030e0dcf1a98",{"version":"17fef45daf4268739c248d3fd4904112e247beaa33ec18214cf0830cbebae306","affectsGlobalScope":true},"2c887f29f6796ea68247c626acbef560ff29bb8d0042b641e4fc69559841463d",{"version":"726740c77a2cfbf8ddf85c52584bb359be7effbbcb8da1eb74132c9fda946c29","affectsGlobalScope":true},"8736c27cdcd3585148931d1684aa33a611dc00e789e08c3a17f5c2994985c9f0","7a64f400283279e45a541e9339cc8c15ac924f8e55c6fe2563aa7aa72b99332c","fec05ec8330939cc7c53bd1c7f9ed366b29ea221d8e9a700e2789359b8231ba5",{"version":"1a328787cfa82ea699acad18605993571f4e031e1eb85a62e37fd186decfb246","affectsGlobalScope":true},{"version":"1d2c5bb7a64690d818cff16ac614cbccf721dac75198386c761cfb8e2db40df8","affectsGlobalScope":true},{"version":"94edea045252ef354823fbdb32daeedae536c5cd0724d0d4f3e4e1a75a66b81f","affectsGlobalScope":true},{"version":"7cdb9633c8b3919bf32b1a481a496535ff33a0ed36eb6af150db16a238d40154","affectsGlobalScope":true},{"version":"60ec650c9897fd0342cb2f5843047c24cc8f1df472901a6bdb68ecbe684e5605","signature":"66e7782d4d5bc6236caa70bf0cdd98c98b9f7db478a591729009350b9e719f0c"},"480c57d37e03d442e078f86967c8fea88f554ca22f53bdcd696512489d2cab2a",{"version":"6bf997aa60d5bf50726a960b2a7c40c16a478fdb60a303c4a8d69f35fdf2442e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"0bd5e7096c7bc02bf70b2cc017fc45ef489cb19bd2f32a71af39ff5787f1b56a","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","60ecad5852d4d83edae430e597405132d278a79c10499e9363aecbe1ddc0eade","5f8f00356f6a82e21493b2d57b2178f11b00cf8960df00bd37bdcae24c9333ca",{"version":"a694c85180021f7681f98dbde94b648b4e1483ad6fad4afc1d217619613f833a","affectsGlobalScope":true},"346cc70aa5304faf122846a7854b32a000d02851a69fad84862307e5bcfec93a","17a3826f371a5253a1dd7bce7a4751e005ca8702fc2dbdc8084be25e1efb38ce",{"version":"ab599155358cec94ccaa35c50ecd38d0e6d7ce15bce380b6ac7193de9e4b020f","signature":"fee6a6f6cdc2990e34a160f137f0b47df2116b54b6063f4e1470e6deaf101ea0"},{"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":"73d378681a14b9793e1215a60c93eb99d9a920c9ebfee7d88420d489b3e27d72","signature":"cb7cb9a3e54b39f3bd6f18cd46d76d3c355673ad8b315c79ec1996deece64ca3"},"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":"fe2af46799ee08961c969f9ce69cefe8e8ac955d970b5b4ec63ef796f66aeb34","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],[53,66,164],[53,72,164],[50,53,67,69,70,71,164],[53,164],[53,70,164],[50,53,65,164],[53,68,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,73,74,75,76,164],[43,77,84,86,164],[43,53,77,79,116,164],[50,53,73,74,75,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],[67,10],[74,11],[75,11],[73,11],[72,12],[76,11],[65,13],[70,3],[71,14],[68,15],[69,16],[104,3],[107,17],[106,18],[105,19],[90,20],[91,21],[89,3],[92,22],[115,23],[101,3],[108,24],[109,25],[110,3],[111,26],[113,27],[103,13],[112,28],[114,25],[116,29],[100,30],[172,31],[173,3],[175,32],[96,33],[88,3],[177,34],[178,3],[174,31],[179,3],[180,3],[189,35],[190,3],[191,3],[184,36],[187,37],[193,38],[194,3],[185,3],[195,3],[196,3],[197,39],[198,40],[204,41],[200,3],[199,3],[202,3],[201,3],[205,3],[206,3],[188,3],[207,42],[208,43],[210,44],[211,45],[209,46],[212,47],[213,48],[214,49],[215,50],[216,51],[217,52],[218,53],[219,54],[220,55],[221,56],[222,38],[181,3],[223,3],[224,3],[225,3],[118,57],[119,57],[121,58],[122,59],[123,60],[124,61],[125,62],[126,63],[127,64],[128,65],[129,66],[130,67],[131,67],[133,68],[132,69],[134,70],[135,71],[136,72],[120,73],[170,3],[137,74],[138,75],[139,76],[171,77],[140,78],[141,79],[142,80],[143,81],[144,82],[145,83],[146,84],[147,85],[148,86],[149,87],[150,87],[151,88],[152,89],[154,90],[153,91],[155,92],[156,93],[157,94],[158,95],[159,96],[160,97],[161,98],[162,99],[163,100],[164,101],[165,102],[166,103],[167,104],[168,105],[169,106],[226,3],[227,3],[229,107],[228,108],[230,3],[82,3],[176,3],[183,3],[80,3],[84,109],[231,110],[232,3],[83,3],[257,111],[258,112],[233,113],[236,113],[255,111],[256,111],[246,111],[245,114],[243,111],[238,111],[251,111],[249,111],[253,111],[237,111],[250,111],[254,111],[239,111],[240,111],[252,111],[234,111],[241,111],[242,111],[244,111],[248,111],[259,115],[247,111],[235,111],[272,116],[271,3],[266,115],[268,117],[267,115],[260,115],[261,115],[263,115],[265,115],[269,117],[270,117],[262,117],[264,117],[182,118],[186,119],[99,120],[98,121],[97,3],[203,3],[48,122],[47,3],[192,3],[273,123],[274,124],[93,33],[95,125],[94,126],[81,3],[51,127],[49,128],[52,3],[50,129],[102,128],[64,130],[53,131],[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,132],[79,132],[77,133],[87,134],[117,135]],"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],[67,10],[74,11],[75,11],[73,11],[72,12],[76,11],[65,13],[70,3],[71,14],[68,15],[69,16],[104,3],[107,17],[106,18],[105,19],[90,20],[91,21],[89,3],[92,22],[115,23],[101,3],[108,24],[109,25],[110,3],[111,26],[113,27],[103,13],[112,28],[114,25],[116,29],[100,30],[172,31],[173,3],[175,32],[96,33],[88,3],[177,34],[178,3],[174,31],[179,3],[180,3],[189,35],[190,3],[191,3],[184,36],[187,37],[193,38],[194,3],[185,3],[195,3],[196,3],[197,39],[198,40],[204,41],[200,3],[199,3],[202,3],[201,3],[205,3],[206,3],[188,3],[207,42],[208,43],[210,44],[211,45],[209,46],[212,47],[213,48],[214,49],[215,50],[216,51],[217,52],[218,53],[219,54],[220,55],[221,56],[222,38],[181,3],[223,3],[224,3],[225,3],[118,57],[119,57],[121,58],[122,59],[123,60],[124,61],[125,62],[126,63],[127,64],[128,65],[129,66],[130,67],[131,67],[133,68],[132,69],[134,70],[135,71],[136,72],[120,73],[170,3],[137,74],[138,75],[139,76],[171,77],[140,78],[141,79],[142,80],[143,81],[144,82],[145,83],[146,84],[147,85],[148,86],[149,87],[150,87],[151,88],[152,89],[154,90],[153,91],[155,92],[156,93],[157,94],[158,95],[159,96],[160,97],[161,98],[162,99],[163,100],[164,101],[165,102],[166,103],[167,104],[168,105],[169,106],[226,3],[227,3],[229,107],[228,108],[230,3],[82,3],[176,3],[183,3],[80,3],[84,109],[231,110],[232,3],[83,3],[257,111],[258,112],[233,113],[236,113],[255,111],[256,111],[246,111],[245,114],[243,111],[238,111],[251,111],[249,111],[253,111],[237,111],[250,111],[254,111],[239,111],[240,111],[252,111],[234,111],[241,111],[242,111],[244,111],[248,111],[259,115],[247,111],[235,111],[272,116],[271,3],[266,115],[268,117],[267,115],[260,115],[261,115],[263,115],[265,115],[269,117],[270,117],[262,117],[264,117],[182,118],[186,119],[99,120],[98,121],[97,3],[203,3],[48,122],[47,3],[192,3],[273,123],[274,124],[93,33],[95,125],[94,126],[81,3],[51,127],[49,128],[52,3],[50,129],[102,128],[64,130],[53,131],[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,132],[77,136],[87,137],[117,138]],"semanticDiagnosticsPerFile":[85,86,44,54,55,58,56,60,63,62,61,59,57,45,46,66,67,74,75,73,72,76,65,70,71,68,69,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,93 @@
1
+ {
2
+ "name": "@digital-realty/ix-icon-button",
3
+ "description": "Webcomponent ix-icon-button following open-wc recommendations",
4
+ "license": "MIT",
5
+ "author": "Digital Realty",
6
+ "version": "1.0.3",
7
+ "type": "module",
8
+ "main": "dist/src/index.js",
9
+ "module": "dist/src/index.js",
10
+ "exports": {
11
+ ".": "./dist/src/index.js",
12
+ "./ix-icon-button.js": "./dist/src/ix-icon-button.js",
13
+ "./IxIconButton": "./dist/src/react/IxIconButton.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
+ },
28
+ "dependencies": {
29
+ "@lit-labs/react": "^2.0.3",
30
+ "@material/web": "^1.0.0-pre.17",
31
+ "lit": "^2.0.2",
32
+ "react": "^18.2.0"
33
+ },
34
+ "devDependencies": {
35
+ "@custom-elements-manifest/analyzer": "^0.4.17",
36
+ "@open-wc/eslint-config": "^9.2.1",
37
+ "@open-wc/testing": "^3.1.6",
38
+ "@typescript-eslint/eslint-plugin": "^5.48.0",
39
+ "@typescript-eslint/parser": "^5.48.0",
40
+ "@web/dev-server": "^0.1.34",
41
+ "@web/test-runner": "^0.14.0",
42
+ "concurrently": "^5.3.0",
43
+ "eslint": "^8.31.0",
44
+ "eslint-config-prettier": "^8.3.0",
45
+ "husky": "^4.3.8",
46
+ "lint-staged": "^10.5.4",
47
+ "prettier": "^2.4.1",
48
+ "tslib": "^2.3.1",
49
+ "typescript": "^4.5.2"
50
+ },
51
+ "customElements": "custom-elements.json",
52
+ "eslintConfig": {
53
+ "parser": "@typescript-eslint/parser",
54
+ "extends": [
55
+ "@open-wc",
56
+ "prettier"
57
+ ],
58
+ "plugins": [
59
+ "@typescript-eslint"
60
+ ],
61
+ "rules": {
62
+ "class-methods-use-this": "off",
63
+ "no-unused-vars": "off",
64
+ "@typescript-eslint/no-unused-vars": [
65
+ "error"
66
+ ],
67
+ "import/no-unresolved": "off",
68
+ "import/extensions": [
69
+ "error",
70
+ "always",
71
+ {
72
+ "ignorePackages": true
73
+ }
74
+ ]
75
+ }
76
+ },
77
+ "prettier": {
78
+ "singleQuote": true,
79
+ "arrowParens": "avoid"
80
+ },
81
+ "husky": {
82
+ "hooks": {
83
+ "pre-commit": "lint-staged"
84
+ }
85
+ },
86
+ "lint-staged": {
87
+ "*.ts": [
88
+ "eslint --fix",
89
+ "prettier --write"
90
+ ]
91
+ },
92
+ "gitHead": "a5876183947a872660b47e2ebcf0d031d2ee621c"
93
+ }
@@ -0,0 +1,108 @@
1
+ import { html, LitElement } from 'lit';
2
+ import { property } from 'lit/decorators.js';
3
+ import '@material/web/iconbutton/icon-button.js';
4
+ import '@material/web/iconbutton/filled-icon-button.js';
5
+ import '@material/web/iconbutton/filled-tonal-icon-button.js';
6
+ import '@material/web/iconbutton/outlined-icon-button.js';
7
+
8
+ type LinkTarget = '_blank' | '_parent' | '_self' | '_top';
9
+ type FormSubmitterType = 'button' | 'submit' | 'reset';
10
+
11
+ export class IxIconButton extends LitElement {
12
+ @property()
13
+ appearance: 'filled' | 'filled-tonal' | 'outlined' = 'filled';
14
+
15
+ /**
16
+ * Disables the icon button and makes it non-interactive.
17
+ */
18
+ @property({ type: Boolean, reflect: true }) disabled = false;
19
+
20
+ /**
21
+ * Flips the icon if it is in an RTL context at startup.
22
+ */
23
+ @property({ type: Boolean, attribute: 'flip-icon-in-rtl' })
24
+ flipIconInRtl = false;
25
+
26
+ /**
27
+ * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.
28
+ */
29
+ @property() href = '';
30
+
31
+ /**
32
+ * Sets the underlying `HTMLAnchorElement`'s `target` attribute.
33
+ */
34
+ @property() target: LinkTarget | '' = '';
35
+
36
+ /**
37
+ * The `aria-label` of the button when the button is toggleable and selected.
38
+ */
39
+ @property({ attribute: 'aria-label-selected' }) ariaLabelSelected = '';
40
+
41
+ /**
42
+ * When true, the button will toggle between selected and unselected
43
+ * states
44
+ */
45
+ @property({ type: Boolean }) toggle = false;
46
+
47
+ /**
48
+ * Sets the selected state. When false, displays the default icon. When true,
49
+ * displays the selected icon, or the default icon If no `slot="selected"`
50
+ * icon is provided.
51
+ */
52
+ @property({ type: Boolean, reflect: true }) selected = false;
53
+
54
+ @property() type: FormSubmitterType = 'submit';
55
+
56
+ @property() value = '';
57
+
58
+ @property()
59
+ onClick: (event: MouseEvent) => void = () => {};
60
+
61
+ render() {
62
+ let comp;
63
+ if (this.appearance === 'filled') {
64
+ comp = html`<md-filled-icon-button
65
+ @click=${this.onClick}
66
+ .disabled=${this.disabled}
67
+ .flipIconInRtl=${this.flipIconInRtl}
68
+ .href=${this.href}
69
+ .target=${this.target}
70
+ .ariaLabelSelected=${this.ariaLabelSelected}
71
+ .toggle=${this.toggle}
72
+ .selected=${this.selected}
73
+ .type=${this.type}
74
+ .value=${this.value}
75
+ ><slot></slot
76
+ ></md-filled-icon-button>`;
77
+ } else if (this.appearance === 'filled-tonal') {
78
+ comp = html`<md-filled-tonal-icon-button
79
+ @click=${this.onClick}
80
+ .disabled=${this.disabled}
81
+ .flipIconInRtl=${this.flipIconInRtl}
82
+ .href=${this.href}
83
+ .target=${this.target}
84
+ .ariaLabelSelected=${this.ariaLabelSelected}
85
+ .toggle=${this.toggle}
86
+ .selected=${this.selected}
87
+ .type=${this.type}
88
+ .value=${this.value}
89
+ ><slot></slot
90
+ ></md-filled-tonal-icon-button>`;
91
+ } else if (this.appearance === 'outlined') {
92
+ comp = html`<md-outlined-icon-button
93
+ @click=${this.onClick}
94
+ .disabled=${this.disabled}
95
+ .flipIconInRtl=${this.flipIconInRtl}
96
+ .href=${this.href}
97
+ .target=${this.target}
98
+ .ariaLabelSelected=${this.ariaLabelSelected}
99
+ .toggle=${this.toggle}
100
+ .selected=${this.selected}
101
+ .type=${this.type}
102
+ .value=${this.value}
103
+ ><slot></slot
104
+ ></md-outlined-icon-button>`;
105
+ }
106
+ return html`${comp}`;
107
+ }
108
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { IxIconButton } from './IxIconButton.js';
@@ -0,0 +1,3 @@
1
+ import { IxIconButton } from './IxIconButton.js';
2
+
3
+ window.customElements.define('ix-icon-button', IxIconButton);
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { createComponent } from '@lit-labs/react';
3
+ import { IxIconButton as LitComp } from '../IxIconButton.js';
4
+
5
+ window.customElements.define('ix-icon-button', LitComp);
6
+
7
+ export const IxButton = createComponent({
8
+ tagName: 'ix-icon-button',
9
+ elementClass: LitComp,
10
+ react: React,
11
+ });
@@ -0,0 +1,75 @@
1
+ import { html } from 'lit';
2
+ import { fixture, expect } from '@open-wc/testing';
3
+ import { IxIconButton } from '../src/IxIconButton.js';
4
+ import '../src/ix-icon-button.js';
5
+
6
+ describe('IxIconButton', () => {
7
+ it('Should fire event when submit button is clicked', async () => {
8
+ let message = '';
9
+ const props = {
10
+ disabled: false,
11
+ type: 'submit',
12
+ appearance: 'filled',
13
+ onClick: () => {
14
+ message = 'Hello world!';
15
+ },
16
+ };
17
+ const el = await fixture<IxIconButton>(html`
18
+ <ix-icon-button
19
+ @click=${props.onClick}
20
+ type="${props.type}"
21
+ ?disabled=${props.disabled}
22
+ appearance="${props.appearance}"
23
+ ></ix-icon-button>
24
+ `);
25
+ el.click();
26
+ expect(message).to.equal('Hello world!');
27
+ });
28
+
29
+ it('should render filled button by default', async () => {
30
+ const props = {
31
+ disabled: false,
32
+ type: 'submit',
33
+ };
34
+ const el = await fixture<IxIconButton>(html`
35
+ <ix-icon-button
36
+ type="${props.type}"
37
+ ?disabled=${props.disabled}
38
+ ></ix-icon-button>
39
+ `);
40
+ const button = el.shadowRoot?.querySelector('md-filled-icon-button');
41
+ expect(button).to.be.not.null;
42
+ });
43
+ it('should render filled-tonal button when appearance is filled-tonal', async () => {
44
+ const props = {
45
+ disabled: false,
46
+ type: 'submit',
47
+ appearance: 'filled-tonal',
48
+ };
49
+ const el = await fixture<IxIconButton>(html`
50
+ <ix-icon-button
51
+ type="${props.type}"
52
+ ?disabled=${props.disabled}
53
+ appearance="${props.appearance}"
54
+ ></ix-icon-button>
55
+ `);
56
+ const button = el.shadowRoot?.querySelector('md-filled-tonal-icon-button');
57
+ expect(button).to.be.not.null;
58
+ });
59
+ it('should render outlined button when appearance is outlined', async () => {
60
+ const props = {
61
+ disabled: false,
62
+ type: 'submit',
63
+ appearance: 'outlined',
64
+ };
65
+ const el = await fixture<IxIconButton>(html`
66
+ <ix-icon-button
67
+ type="${props.type}"
68
+ ?disabled=${props.disabled}
69
+ appearance="${props.appearance}"
70
+ ></ix-icon-button>
71
+ `);
72
+ const button = el.shadowRoot?.querySelector('md-outlined-icon-button');
73
+ expect(button).to.be.not.null;
74
+ });
75
+ });
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
+ });