@operato/data-tree 1.1.61
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/.storybook/main.js +3 -0
- package/.storybook/server.mjs +8 -0
- package/CHANGELOG.md +11 -0
- package/README.md +95 -0
- package/assets/images/no-image.png +0 -0
- package/demo/favicon.ico +0 -0
- package/demo/index.html +96 -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/ox-tree.d.ts +19 -0
- package/dist/src/ox-tree.js +194 -0
- package/dist/src/ox-tree.js.map +1 -0
- package/dist/stories/data-tree.stories.d.ts +22 -0
- package/dist/stories/data-tree.stories.js +51 -0
- package/dist/stories/data-tree.stories.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +80 -0
- package/src/index.ts +1 -0
- package/src/ox-tree.ts +212 -0
- package/stories/data-tree.stories.ts +64 -0
- package/themes/app-theme.css +142 -0
- package/themes/form-theme.css +75 -0
- package/themes/grist-theme.css +194 -0
- package/themes/oops-theme.css +26 -0
- package/themes/report-theme.css +47 -0
- package/tsconfig.json +25 -0
- package/web-dev-server.config.mjs +27 -0
- package/web-test-runner.config.mjs +45 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { storybookPlugin } from '@web/dev-server-storybook';
|
|
2
|
+
import baseConfig from '../web-dev-server.config.mjs';
|
|
3
|
+
|
|
4
|
+
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
5
|
+
...baseConfig,
|
|
6
|
+
open: '/',
|
|
7
|
+
plugins: [storybookPlugin({ type: 'web-components' }), ...baseConfig.plugins],
|
|
8
|
+
});
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
### [1.1.61](https://github.com/hatiolab/operato/compare/v1.1.60...v1.1.61) (2023-01-09)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### :bug: Bug Fix
|
|
10
|
+
|
|
11
|
+
* add data-tree webcomponent ([3cf6203](https://github.com/hatiolab/operato/commit/3cf62036d93c4b9b81d6e24b884d83caa4406381))
|
package/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# \<data-tree>
|
|
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 data-tree
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<script type="module">
|
|
15
|
+
import 'data-tree/data-tree.js'
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<data-tree></data-tree>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Linting with ESLint, Prettier, and Types
|
|
22
|
+
|
|
23
|
+
To scan the project for linting errors, run
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm run lint
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
You can lint with ESLint and Prettier individually as well
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm run lint:eslint
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm run lint:prettier
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
To automatically fix many linting errors, run
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm run format
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
You can format using ESLint and Prettier individually as well
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm run format:eslint
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm run format:prettier
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Testing with Web Test Runner
|
|
56
|
+
|
|
57
|
+
To run the suite of Web Test Runner tests, run
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm run test
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
To run the tests in watch mode (for <abbr title="test driven development">TDD</abbr>, for example), run
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npm run test:watch
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Demoing with Storybook
|
|
70
|
+
|
|
71
|
+
To run a local instance of Storybook for your component, run
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm run storybook
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
To build a production version of Storybook, run
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
npm run storybook:build
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Tooling configs
|
|
84
|
+
|
|
85
|
+
For most of the tools, the configuration is in the `package.json` to reduce the amount of files in your project.
|
|
86
|
+
|
|
87
|
+
If you customize the configuration a lot, you can consider moving them to individual files.
|
|
88
|
+
|
|
89
|
+
## Local Demo with `web-dev-server`
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npm start
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
To run a local development server that serves the basic demo located in `demo/index.html`
|
|
Binary file
|
package/demo/favicon.ico
ADDED
|
Binary file
|
package/demo/index.html
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en-GB">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
|
|
7
|
+
<style>
|
|
8
|
+
body {
|
|
9
|
+
/* box-sizing: border-box; */
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
|
|
14
|
+
/* This is a font-stack that tries to use the system-default sans-serifs first */
|
|
15
|
+
font-family: Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
|
16
|
+
line-height: 1.5;
|
|
17
|
+
-webkit-font-smoothing: antialiased;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
#app {
|
|
21
|
+
width: 100vw;
|
|
22
|
+
height: 100vh;
|
|
23
|
+
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#demo {
|
|
29
|
+
flex: 1;
|
|
30
|
+
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
grist-demo {
|
|
37
|
+
flex: 1;
|
|
38
|
+
overflow: auto;
|
|
39
|
+
}
|
|
40
|
+
</style>
|
|
41
|
+
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500" rel="stylesheet" />
|
|
42
|
+
<link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
|
|
43
|
+
|
|
44
|
+
<link href="/themes/app-theme.css" rel="stylesheet" />
|
|
45
|
+
<link href="/themes/oops-theme.css" rel="stylesheet" />
|
|
46
|
+
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
|
47
|
+
</head>
|
|
48
|
+
|
|
49
|
+
<body>
|
|
50
|
+
<script type="module">
|
|
51
|
+
import { LitElement, html, css, render } from 'lit'
|
|
52
|
+
import '../dist/src/ox-tree.js'
|
|
53
|
+
|
|
54
|
+
const data = {
|
|
55
|
+
label: 'AAAAA',
|
|
56
|
+
children: [
|
|
57
|
+
{
|
|
58
|
+
label: 'AAAAA-1',
|
|
59
|
+
children: [
|
|
60
|
+
{
|
|
61
|
+
label: 'AAAAA-2'
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
label: 'BBBBB-1',
|
|
67
|
+
children: [
|
|
68
|
+
{
|
|
69
|
+
label: 'BBBBB-2'
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
label: 'BBBBB-21'
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
label: 'CCCCC-1',
|
|
78
|
+
children: [
|
|
79
|
+
{
|
|
80
|
+
label: 'CCCCC-2'
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
setTimeout(() => {
|
|
88
|
+
render(html` <ox-tree .data=${data}></ox-tree> `, document.querySelector('#demo'))
|
|
89
|
+
})
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
<div id="app">
|
|
93
|
+
<div id="demo"></div>
|
|
94
|
+
</div>
|
|
95
|
+
</body>
|
|
96
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ox-tree';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA","sourcesContent":["export * from './ox-tree'\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
+
type TreeItem = {
|
|
3
|
+
label: string;
|
|
4
|
+
children?: TreeItem[];
|
|
5
|
+
status?: {
|
|
6
|
+
[state: string]: boolean | string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
export declare class OxTree extends LitElement {
|
|
10
|
+
static styles: import("lit").CSSResult[];
|
|
11
|
+
data?: TreeItem;
|
|
12
|
+
render(): TemplateResult<1>;
|
|
13
|
+
renderItem(item: TreeItem): TemplateResult;
|
|
14
|
+
onClickExpander(e: MouseEvent): void;
|
|
15
|
+
onClickItem(e: MouseEvent): void;
|
|
16
|
+
walkTreeCheckedUpdate(item: TreeItem, checked?: string): void;
|
|
17
|
+
updateCheckedAll(item: TreeItem): void;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { LitElement, css, html } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
let OxTree = class OxTree extends LitElement {
|
|
5
|
+
render() {
|
|
6
|
+
return this.data
|
|
7
|
+
? html `
|
|
8
|
+
<ul @click=${this.onClickItem.bind(this)}>
|
|
9
|
+
${this.renderItem(this.data)}
|
|
10
|
+
</ul>
|
|
11
|
+
`
|
|
12
|
+
: html ``;
|
|
13
|
+
}
|
|
14
|
+
renderItem(item) {
|
|
15
|
+
const { label, children, status = {} } = item;
|
|
16
|
+
const expandable = children && children.length > 0;
|
|
17
|
+
const { collapsed, checked } = status;
|
|
18
|
+
return html `
|
|
19
|
+
<li checked=${checked} ?collapsed=${collapsed} ?leaf=${!expandable} .item=${item}>
|
|
20
|
+
${expandable ? html ` <span expander @click=${this.onClickExpander.bind(this)}></span> ` : html ``}
|
|
21
|
+
<span checkbox></span>
|
|
22
|
+
${label}
|
|
23
|
+
${expandable && !collapsed
|
|
24
|
+
? html `
|
|
25
|
+
<ul>
|
|
26
|
+
${children.map(child => this.renderItem(child))}
|
|
27
|
+
</ul>
|
|
28
|
+
`
|
|
29
|
+
: html ``}
|
|
30
|
+
</li>
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
onClickExpander(e) {
|
|
34
|
+
e.stopPropagation();
|
|
35
|
+
const target = e.target;
|
|
36
|
+
const itemElement = target.closest('li');
|
|
37
|
+
var item = itemElement.item;
|
|
38
|
+
item.status = {
|
|
39
|
+
...item.status,
|
|
40
|
+
collapsed: !itemElement.hasAttribute('collapsed')
|
|
41
|
+
};
|
|
42
|
+
this.requestUpdate();
|
|
43
|
+
}
|
|
44
|
+
onClickItem(e) {
|
|
45
|
+
e.stopPropagation();
|
|
46
|
+
const target = e.target;
|
|
47
|
+
const itemElement = target.closest('li');
|
|
48
|
+
var item = itemElement.item;
|
|
49
|
+
var checked = itemElement.getAttribute('checked') || '';
|
|
50
|
+
this.walkTreeCheckedUpdate(item, checked == '' || checked == 'unchecked' ? 'checked' : 'unchecked');
|
|
51
|
+
this.updateCheckedAll(this.data);
|
|
52
|
+
this.requestUpdate();
|
|
53
|
+
}
|
|
54
|
+
walkTreeCheckedUpdate(item, checked = '') {
|
|
55
|
+
const { children, status } = item;
|
|
56
|
+
children === null || children === void 0 ? void 0 : children.forEach(child => this.walkTreeCheckedUpdate(child, checked));
|
|
57
|
+
item.status = {
|
|
58
|
+
...status,
|
|
59
|
+
checked
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
updateCheckedAll(item) {
|
|
63
|
+
const { children, status } = item;
|
|
64
|
+
if (!children || children.length == 0) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
children.forEach(child => this.updateCheckedAll(child));
|
|
68
|
+
var checked = '';
|
|
69
|
+
children.forEach(child => {
|
|
70
|
+
const { status = {} } = child;
|
|
71
|
+
if (status.checked == 'half-checked') {
|
|
72
|
+
checked = 'half-checked';
|
|
73
|
+
}
|
|
74
|
+
else if (status.checked == 'checked') {
|
|
75
|
+
checked = checked == 'checked' || checked == '' ? 'checked' : 'half-checked';
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
checked = checked == 'unchecked' || checked == '' ? 'unchecked' : 'half-checked';
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
item.status = {
|
|
82
|
+
...status,
|
|
83
|
+
checked
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
OxTree.styles = [
|
|
88
|
+
css `
|
|
89
|
+
ul {
|
|
90
|
+
list-style: none;
|
|
91
|
+
padding-left: 20px;
|
|
92
|
+
overflow: hidden;
|
|
93
|
+
position: relative;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
li {
|
|
97
|
+
cursor: pointer;
|
|
98
|
+
overflow: hidden;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
span[expander] {
|
|
102
|
+
display: inline-block;
|
|
103
|
+
vertical-align: middle;
|
|
104
|
+
width: 20px;
|
|
105
|
+
height: 20px;
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
position: relative;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
span[expander]::before {
|
|
111
|
+
position: absolute;
|
|
112
|
+
top: 8px;
|
|
113
|
+
left: 6px;
|
|
114
|
+
display: block;
|
|
115
|
+
content: ' ';
|
|
116
|
+
border: 4px solid transparent;
|
|
117
|
+
border-top: 4px solid rgba(0, 0, 0, 0.65);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
li[collapsed] > span[expander]::before {
|
|
121
|
+
transform: rotate(-90deg);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
li[leaf] {
|
|
125
|
+
padding-left: 20px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
span[checkbox] {
|
|
129
|
+
display: inline-block;
|
|
130
|
+
vertical-align: middle;
|
|
131
|
+
width: 20px;
|
|
132
|
+
height: 20px;
|
|
133
|
+
cursor: pointer;
|
|
134
|
+
position: relative;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
span[checkbox]::before {
|
|
138
|
+
cursor: pointer;
|
|
139
|
+
position: absolute;
|
|
140
|
+
top: 2px;
|
|
141
|
+
content: ' ';
|
|
142
|
+
display: block;
|
|
143
|
+
width: 16px;
|
|
144
|
+
height: 16px;
|
|
145
|
+
border: 1px solid #d9d9d9;
|
|
146
|
+
border-radius: 2px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
li[checked='checked'] > span[checkbox]::before {
|
|
150
|
+
background-color: #1890ff;
|
|
151
|
+
border-color: #1890ff;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
li[checked='checked'] > span[checkbox]::after {
|
|
155
|
+
position: absolute;
|
|
156
|
+
content: ' ';
|
|
157
|
+
display: block;
|
|
158
|
+
top: 4px;
|
|
159
|
+
left: 5px;
|
|
160
|
+
width: 5px;
|
|
161
|
+
height: 9px;
|
|
162
|
+
border: 2px solid #fff;
|
|
163
|
+
border-top: none;
|
|
164
|
+
border-left: none;
|
|
165
|
+
-webkit-transform: rotate(45deg);
|
|
166
|
+
-ms-transform: rotate(45deg);
|
|
167
|
+
transform: rotate(45deg);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
li[checked='half-checked'] > span[checkbox]::before {
|
|
171
|
+
background-color: #1890ff;
|
|
172
|
+
border-color: #1890ff;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
li[checked='half-checked'] > span[checkbox]::after {
|
|
176
|
+
position: absolute;
|
|
177
|
+
content: ' ';
|
|
178
|
+
display: block;
|
|
179
|
+
top: 9px;
|
|
180
|
+
left: 3px;
|
|
181
|
+
width: 10px;
|
|
182
|
+
height: 2px;
|
|
183
|
+
background-color: #fff;
|
|
184
|
+
}
|
|
185
|
+
`
|
|
186
|
+
];
|
|
187
|
+
__decorate([
|
|
188
|
+
property({ type: Object })
|
|
189
|
+
], OxTree.prototype, "data", void 0);
|
|
190
|
+
OxTree = __decorate([
|
|
191
|
+
customElement('ox-tree')
|
|
192
|
+
], OxTree);
|
|
193
|
+
export { OxTree };
|
|
194
|
+
//# sourceMappingURL=ox-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ox-tree.js","sourceRoot":"","sources":["../../src/ox-tree.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\ntype TreeItem = {\n label: string\n children?: TreeItem[]\n status?: { [state: string]: boolean | string }\n}\n\n@customElement('ox-tree')\nexport class OxTree extends LitElement {\n static styles = [\n css`\n ul {\n list-style: none;\n padding-left: 20px;\n overflow: hidden;\n position: relative;\n }\n\n li {\n cursor: pointer;\n overflow: hidden;\n }\n\n span[expander] {\n display: inline-block;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n }\n\n span[expander]::before {\n position: absolute;\n top: 8px;\n left: 6px;\n display: block;\n content: ' ';\n border: 4px solid transparent;\n border-top: 4px solid rgba(0, 0, 0, 0.65);\n }\n\n li[collapsed] > span[expander]::before {\n transform: rotate(-90deg);\n }\n\n li[leaf] {\n padding-left: 20px;\n }\n\n span[checkbox] {\n display: inline-block;\n vertical-align: middle;\n width: 20px;\n height: 20px;\n cursor: pointer;\n position: relative;\n }\n\n span[checkbox]::before {\n cursor: pointer;\n position: absolute;\n top: 2px;\n content: ' ';\n display: block;\n width: 16px;\n height: 16px;\n border: 1px solid #d9d9d9;\n border-radius: 2px;\n }\n\n li[checked='checked'] > span[checkbox]::before {\n background-color: #1890ff;\n border-color: #1890ff;\n }\n\n li[checked='checked'] > span[checkbox]::after {\n position: absolute;\n content: ' ';\n display: block;\n top: 4px;\n left: 5px;\n width: 5px;\n height: 9px;\n border: 2px solid #fff;\n border-top: none;\n border-left: none;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n\n li[checked='half-checked'] > span[checkbox]::before {\n background-color: #1890ff;\n border-color: #1890ff;\n }\n\n li[checked='half-checked'] > span[checkbox]::after {\n position: absolute;\n content: ' ';\n display: block;\n top: 9px;\n left: 3px;\n width: 10px;\n height: 2px;\n background-color: #fff;\n }\n `\n ]\n\n @property({ type: Object }) data?: TreeItem\n\n render() {\n return this.data\n ? html`\n <ul @click=${this.onClickItem.bind(this)}>\n ${this.renderItem(this.data)}\n </ul>\n `\n : html``\n }\n\n renderItem(item: TreeItem): TemplateResult {\n const { label, children, status = {} } = item\n const expandable = children && children.length > 0\n const { collapsed, checked } = status\n\n return html`\n <li checked=${checked} ?collapsed=${collapsed} ?leaf=${!expandable} .item=${item}>\n ${expandable ? html` <span expander @click=${this.onClickExpander.bind(this)}></span> ` : html``}\n <span checkbox></span>\n ${label}\n ${expandable && !collapsed\n ? html`\n <ul>\n ${children.map(child => this.renderItem(child))}\n </ul>\n `\n : html``}\n </li>\n `\n }\n\n onClickExpander(e: MouseEvent) {\n e.stopPropagation()\n\n const target = e.target as HTMLSpanElement\n const itemElement = target!.closest('li') as HTMLLIElement\n\n var item = (itemElement as any).item\n item.status = {\n ...item.status,\n collapsed: !itemElement.hasAttribute('collapsed')\n }\n\n this.requestUpdate()\n }\n\n onClickItem(e: MouseEvent) {\n e.stopPropagation()\n\n const target = e.target as HTMLSpanElement\n const itemElement = target!.closest('li') as HTMLLIElement\n\n var item = (itemElement as any).item\n var checked = itemElement.getAttribute('checked') || ''\n\n this.walkTreeCheckedUpdate(item, checked == '' || checked == 'unchecked' ? 'checked' : 'unchecked')\n this.updateCheckedAll(this.data!)\n\n this.requestUpdate()\n }\n\n walkTreeCheckedUpdate(item: TreeItem, checked: string = '') {\n const { children, status } = item\n children?.forEach(child => this.walkTreeCheckedUpdate(child, checked))\n item.status = {\n ...status,\n checked\n }\n }\n\n updateCheckedAll(item: TreeItem) {\n const { children, status } = item\n if (!children || children.length == 0) {\n return\n }\n\n children.forEach(child => this.updateCheckedAll(child))\n\n var checked: string = ''\n\n children.forEach(child => {\n const { status = {} } = child\n\n if (status.checked == 'half-checked') {\n checked = 'half-checked'\n } else if (status.checked == 'checked') {\n checked = checked == 'checked' || checked == '' ? 'checked' : 'half-checked'\n } else {\n checked = checked == 'unchecked' || checked == '' ? 'unchecked' : 'half-checked'\n }\n })\n\n item.status = {\n ...status,\n checked\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import '../src/ox-tree.js';
|
|
2
|
+
import '@material/mwc-icon';
|
|
3
|
+
import { TemplateResult } from 'lit';
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: string;
|
|
7
|
+
argTypes: {
|
|
8
|
+
data: {
|
|
9
|
+
control: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export default _default;
|
|
14
|
+
interface Story<T> {
|
|
15
|
+
(args: T): TemplateResult;
|
|
16
|
+
args?: Partial<T>;
|
|
17
|
+
argTypes?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
interface ArgTypes {
|
|
20
|
+
data: object;
|
|
21
|
+
}
|
|
22
|
+
export declare const Regular: Story<ArgTypes>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import '../src/ox-tree.js';
|
|
2
|
+
import '@material/mwc-icon';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
export default {
|
|
5
|
+
title: '3 modes in ox-tree',
|
|
6
|
+
component: 'ox-tree',
|
|
7
|
+
argTypes: {
|
|
8
|
+
data: { control: 'object' }
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
const Template = ({ data }) => html `
|
|
12
|
+
<link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
|
|
13
|
+
|
|
14
|
+
<ox-tree .data=${data}></ox-tree>
|
|
15
|
+
`;
|
|
16
|
+
export const Regular = Template.bind({});
|
|
17
|
+
Regular.args = {
|
|
18
|
+
data: {
|
|
19
|
+
label: 'AAAAA',
|
|
20
|
+
children: [
|
|
21
|
+
{
|
|
22
|
+
label: 'AAAAA-1',
|
|
23
|
+
children: [
|
|
24
|
+
{
|
|
25
|
+
label: 'AAAAA-2'
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: 'BBBBB-1',
|
|
31
|
+
children: [
|
|
32
|
+
{
|
|
33
|
+
label: 'BBBBB-2'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
label: 'BBBBB-21'
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'CCCCC-1',
|
|
42
|
+
children: [
|
|
43
|
+
{
|
|
44
|
+
label: 'CCCCC-2'
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data-tree.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-tree.stories.js","sourceRoot":"","sources":["../../stories/data-tree.stories.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAA;AAC1B,OAAO,oBAAoB,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAA;AAE1C,eAAe;IACb,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;KAC5B;CACF,CAAA;AAYD,MAAM,QAAQ,GAAoB,CAAC,EAAE,IAAI,EAAY,EAAE,EAAE,CAAC,IAAI,CAAA;;;mBAG3C,IAAI;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACxC,OAAO,CAAC,IAAI,GAAG;IACb,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,SAAS;qBACjB;iBACF;aACF;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,KAAK,EAAE,UAAU;qBAClB;iBACF;aACF;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE;oBACR;wBACE,KAAK,EAAE,SAAS;qBACjB;iBACF;aACF;SACF;KACF;CACF,CAAA","sourcesContent":["import '../src/ox-tree.js'\nimport '@material/mwc-icon'\n\nimport { html, TemplateResult } from 'lit'\n\nexport default {\n title: '3 modes in ox-tree',\n component: 'ox-tree',\n argTypes: {\n data: { control: 'object' }\n }\n}\n\ninterface Story<T> {\n (args: T): TemplateResult\n args?: Partial<T>\n argTypes?: Record<string, unknown>\n}\n\ninterface ArgTypes {\n data: object\n}\n\nconst Template: Story<ArgTypes> = ({ data }: ArgTypes) => html`\n <link href=\"https://fonts.googleapis.com/css?family=Material+Icons&display=block\" rel=\"stylesheet\" />\n\n <ox-tree .data=${data}></ox-tree>\n`\n\nexport const Regular = Template.bind({})\nRegular.args = {\n data: {\n label: 'AAAAA',\n children: [\n {\n label: 'AAAAA-1',\n children: [\n {\n label: 'AAAAA-2'\n }\n ]\n },\n {\n label: 'BBBBB-1',\n children: [\n {\n label: 'BBBBB-2'\n },\n {\n label: 'BBBBB-21'\n }\n ]\n },\n {\n label: 'CCCCC-1',\n children: [\n {\n label: 'CCCCC-2'\n }\n ]\n }\n ]\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","../src/ox-tree.ts","../src/index.ts","../../../node_modules/@material/mwc-icon/mwc-icon.d.ts","../stories/data-tree.stories.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/mocha/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},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e","52dd370c807255c61765347fc90a9bee3c522b8744dc222714e2bf6b5be3a823","1e5743b25a63fd34ffbae89adcbf248ee17db6ed08d90079ffa93803c3e80d2a","3cbcdf2a84c93c6b62d8d4584f613c8af7c6330ac2ba1ff781d10a3e0935beb9","2fcd2d22b1f30555e785105597cd8f57ed50300e213c4f1bbca6ae149f782c38",{"version":"bb4248c7f953233ac52332088fac897d62b82be07244e551d87c5049600b6cf7","affectsGlobalScope":true},"3f30c6b57bf5eb7a7d4298506b78b18d428a39a409e1eadd93a3fdd0299d2687","62da965db3bd1b4ce135048ae8a317d7eb1949068824cb949dd4a91f7e3d6c2d","eba7cf33380cc3a3cf614faf67300e14d0bdff9ea6c5cd6f4b040b1756a48ab1","5e7e090243bf203382a5cb04eabbdc38d78f6d5922f16f543e4da8fa007d5ff9","cd823094ded7c8ac4f94ab6dc387dab699293eb8323d9f948304efc07e4ae7b2","241000969e5367a9a9b9a4f57963e54e5a012c9d89c273526c0115650a7b9e5f","ac388c7c7a262213a3700451bc921e382a93fb27c0252c34ccf03540b4ce044b","097a7e3badfd1c4b35f72aa0f722f5714a4f6a84e53fca5a79dcfebbfc5e718d","fb0107c83e2e0e75b77dacd0c3c6c3ab6844e98dce2a8f858c6f0a57c12136a6","0a478dcb6e6bd8a5d871165659c79cee7b8c3b7a87289118d22e1a04d171e252","e385eb01000d045ea07cea09c488f66e051709a9ac460bf271623f9984e0c419","bf69beba89702c85d84546269e0d4e8b128d32e26b314ee9b501b0b32c82490b","46f3a421b048670d16a3c02589261f17c1cea687f2602eed31e1335b53aed785","4bcb813ea56182beaaab1e8274524eb9f1449b0d8e79efc4a0399de09e43f816","c784eab1cf838d9d6527bce3d9f2d373145606666b68f7610291a7adf6e6bda9","f0380f581cb015778c0fe51e95b5b7f6dae237280654558469b2486c1572268a",{"version":"bbe6d8d71254270db385141e08ecb4a09a717e27fd16b62ffa244b0dfaa33f43","signature":"df13a991e8283de61afb8e9f8667a7432e60fec00bd4c5e79ef6e2939a30419e"},{"version":"5e7d8b68a69b8b9a7225ee931490777c802754d77b4665178599d64ebb255bef","signature":"85d3772542eeb156c137c6774ec7608ffffd96b7ce3e62483ab2846cc3ed2cc3"},{"version":"27b285e901600242883d62a5fff9f5d262c6fa128b6e6c6963f981f2630a957e","affectsGlobalScope":true},{"version":"de39e3af432116668dfb3657f83bafc8e762835dde50b40652a55e1595d306e7","signature":"153ede504ace3d9f61afdf3a90588533b6765ff1d9b67d5c0b2e8e6bab218ab6"},"7e771891adaa85b690266bc37bd6eb43bc57eecc4b54693ead36467e7369952a","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"ca72190df0eb9b09d4b600821c8c7b6c9747b75a1c700c4d57dc0bb72abc074c","affectsGlobalScope":true},"21a167fec8f933752fb8157f06d28fab6817af3ad9b0bdb1908a10762391eab9",{"version":"bb65c6267c5d6676be61acbf6604cf0a4555ac4b505df58ac15c831fcbff4e3e","affectsGlobalScope":true},"374ca798f244e464346f14301dc2a8b4b111af1a83b49fffef5906c338a1f922","5a94487653355b56018122d92392beb2e5f4a6c63ba5cef83bbe1c99775ef713",{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","dab86d9604fe40854ef3c0a6f9e8948873dc3509213418e5e457f410fd11200f","bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","489532ff54b714f0e0939947a1c560e516d3ae93d51d639ab02e907a0e950114","f30bb836526d930a74593f7b0f5c1c46d10856415a8f69e5e2fc3db80371e362","14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"816ad2e607a96de5bcac7d437f843f5afd8957f1fa5eefa6bba8e4ed7ca8fd84","affectsGlobalScope":true},"cec36af22f514322f870e81d30675c78df82ae8bf4863f5fd4e4424c040c678d","d903fafe96674bc0b2ac38a5be4a8fc07b14c2548d1cdb165a80ea24c44c0c54","5eec82ac21f84d83586c59a16b9b8502d34505d1393393556682fe7e7fde9ef2","04eb6578a588d6a46f50299b55f30e3a04ef27d0c5a46c57d8fcc211cd530faa","8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"d076fede3cb042e7b13fc29442aaa03a57806bc51e2b26a67a01fbc66a7c0c12","7c013aa892414a7fdcfd861ae524a668eaa3ede8c7c0acafaf611948122c8d93","b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30",{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true},{"version":"b3624aed92dab6da8484280d3cb3e2f4130ec3f4ef3f8201c95144ae9e898bb6","affectsGlobalScope":true},"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","fd93cee2621ff42dabe57b7be402783fd1aa69ece755bcba1e0290547ae60513","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","223c37f62ce09a3d99e77498acdee7b2705a4ae14552fbdb4093600cd9164f3f",{"version":"970a90f76d4d219ad60819d61f5994514087ba94c985647a3474a5a3d12714ed","affectsGlobalScope":true},"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","4c8525f256873c7ba3135338c647eaf0ca7115a1a2805ae2d0056629461186ce","3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2",{"version":"f0900cd5d00fe1263ff41201fb8073dbeb984397e4af3b8002a5c207a30bdc33","affectsGlobalScope":true},{"version":"4c50342e1b65d3bee2ed4ab18f84842d5724ad11083bd666d8705dc7a6079d80","affectsGlobalScope":true},"06d7c42d256f0ce6afe1b2b6cfbc97ab391f29dadb00dd0ae8e8f23f5bc916c3","ec4bd1b200670fb567920db572d6701ed42a9641d09c4ff6869768c8f81b404c","e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa",{"version":"da26af7362f53d122283bc69fed862b9a9fe27e01bc6a69d1d682e0e5a4df3e6","affectsGlobalScope":true},"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"8dbe725f8d237e70310977afcfa011629804d101ebaa0266cafda6b61ad72236",{"version":"5f186a758a616c107c70e8918db4630d063bd782f22e6e0b17573b125765b40b","affectsGlobalScope":true}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":5,"useDefineForClassFields":false},"fileIdsList":[[115],[46,115],[54,115],[46,54,115],[46,54,62,115],[44,45,115],[53,115],[69,115],[72,115],[73,78,106,115],[74,85,86,93,103,114,115],[74,75,85,93,115],[76,115],[77,78,86,94,115],[78,103,111,115],[79,81,85,93,115],[80,115],[81,82,115],[85,115],[83,85,115],[85,86,87,103,114,115],[85,86,87,100,103,106,115],[115,119],[81,88,93,103,114,115],[85,86,88,89,93,103,111,114,115],[88,90,103,111,114,115],[69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],[85,91,115],[92,114,115],[81,85,93,103,115],[94,115],[95,115],[72,96,115],[97,113,115,119],[98,115],[99,115],[85,100,101,115],[100,102,115,117],[73,85,103,104,105,106,115],[73,103,105,115],[103,104,115],[106,115],[107,115],[85,109,110,115],[109,110,115],[78,93,103,111,115],[112,115],[93,113,115],[73,88,99,114,115],[78,115],[103,115,116],[115,117],[115,118],[73,78,85,87,96,103,114,115,117,119],[103,115,120],[47,115],[46,50,115],[50,115],[48,49,115],[55,56,57,58,59,60,61,62,63,115],[46,50,51,52,115],[43,65,115],[43,53,64,115],[43,53,65,67,115],[65],[53],[53,65,67]],"referencedMap":[[44,1],[54,2],[55,3],[58,4],[56,4],[60,4],[63,5],[62,1],[61,4],[59,4],[57,3],[45,1],[46,6],[67,7],[123,1],[69,8],[70,8],[72,9],[73,10],[74,11],[75,12],[76,13],[77,14],[78,15],[79,16],[80,17],[81,18],[82,18],[84,19],[83,20],[85,19],[86,21],[87,22],[71,23],[121,1],[88,24],[89,25],[90,26],[122,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,34],[98,35],[99,36],[100,37],[101,37],[102,38],[103,39],[105,40],[104,41],[106,42],[107,43],[108,1],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[117,52],[118,53],[119,54],[120,55],[48,56],[47,1],[51,57],[49,58],[52,1],[50,59],[64,60],[53,61],[43,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[33,1],[30,1],[31,1],[32,1],[34,1],[7,1],[35,1],[40,1],[41,1],[36,1],[37,1],[38,1],[39,1],[1,1],[42,1],[66,62],[65,63],[68,64]],"exportedModulesMap":[[44,1],[54,2],[55,3],[58,4],[56,4],[60,4],[63,5],[62,1],[61,4],[59,4],[57,3],[45,1],[46,6],[67,7],[123,1],[69,8],[70,8],[72,9],[73,10],[74,11],[75,12],[76,13],[77,14],[78,15],[79,16],[80,17],[81,18],[82,18],[84,19],[83,20],[85,19],[86,21],[87,22],[71,23],[121,1],[88,24],[89,25],[90,26],[122,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,34],[98,35],[99,36],[100,37],[101,37],[102,38],[103,39],[105,40],[104,41],[106,42],[107,43],[108,1],[109,44],[110,45],[111,46],[112,47],[113,48],[114,49],[115,50],[116,51],[117,52],[118,53],[119,54],[120,55],[48,56],[47,1],[51,57],[49,58],[52,1],[50,59],[64,60],[53,61],[43,1],[8,1],[10,1],[9,1],[2,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[3,1],[4,1],[22,1],[19,1],[20,1],[21,1],[23,1],[24,1],[25,1],[5,1],[26,1],[27,1],[28,1],[29,1],[6,1],[33,1],[30,1],[31,1],[32,1],[34,1],[7,1],[35,1],[40,1],[41,1],[36,1],[37,1],[38,1],[39,1],[1,1],[42,1],[66,65],[65,66],[68,67]],"semanticDiagnosticsPerFile":[44,54,55,58,56,60,63,62,61,59,57,45,46,67,123,69,70,72,73,74,75,76,77,78,79,80,81,82,84,83,85,86,87,71,121,88,89,90,122,91,92,93,94,95,96,97,98,99,100,101,102,103,105,104,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,48,47,51,49,52,50,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,66,65,68]},"version":"4.9.4"}
|