@operato/list-state 10.15.0

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.
@@ -0,0 +1,2 @@
1
+ export * from './ox-empty-note.js';
2
+ export * from './ox-list-state.js';
@@ -0,0 +1,3 @@
1
+ export * from './ox-empty-note.js';
2
+ export * from './ox-list-state.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA","sourcesContent":["export * from './ox-empty-note.js'\nexport * from './ox-list-state.js'\n"]}
@@ -0,0 +1,16 @@
1
+ import '@material/web/icon/icon.js';
2
+ import { LitElement } from 'lit';
3
+ /**
4
+ * A note in place of a list that has nothing to draw: an icon, a title, a line of description, and
5
+ * room for one action (retry, clear filters) in the default slot.
6
+ *
7
+ * Moved from @operato/data-grist so a screen can say "empty" without pulling the grid in. The grid
8
+ * now takes it from here.
9
+ */
10
+ export declare class EmptyNote extends LitElement {
11
+ static styles: import("lit").CSSResult;
12
+ icon?: string;
13
+ title: string;
14
+ description?: string;
15
+ render(): import("lit-html").TemplateResult<1>;
16
+ }
@@ -0,0 +1,65 @@
1
+ import { __decorate } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import { LitElement, css, html } from 'lit';
4
+ import { customElement, property } from 'lit/decorators.js';
5
+ /**
6
+ * A note in place of a list that has nothing to draw: an icon, a title, a line of description, and
7
+ * room for one action (retry, clear filters) in the default slot.
8
+ *
9
+ * Moved from @operato/data-grist so a screen can say "empty" without pulling the grid in. The grid
10
+ * now takes it from here.
11
+ */
12
+ let EmptyNote = class EmptyNote extends LitElement {
13
+ static { this.styles = css `
14
+ :host {
15
+ display: block;
16
+ text-align: center;
17
+ }
18
+
19
+ md-icon {
20
+ font: var(--oops-note-icon-font);
21
+ color: var(--oops-note-icon-color);
22
+ border: var(--oops-note-icon-border);
23
+ border-radius: var(--oops-note-icon-border-radius);
24
+ padding: var(--oops-note-icon-padding);
25
+ }
26
+
27
+ [titler] {
28
+ margin: var(--oops-note-title-margin);
29
+ font: var(--oops-note-title-font);
30
+ color: var(--oops-note-title-color);
31
+ text-transform: capitalize;
32
+ }
33
+
34
+ [description] {
35
+ font: var(--oops-note-description-font);
36
+ color: var(--oops-note-description-color);
37
+ }
38
+
39
+ ::slotted(*) {
40
+ margin-top: var(--spacing-medium, 8px);
41
+ }
42
+ `; }
43
+ render() {
44
+ return html `
45
+ ${this.icon ? html `<md-icon>${this.icon}</md-icon>` : html ``}
46
+ <div titler>${this.title}</div>
47
+ ${this.description ? html `<div description>${this.description}</div>` : html ``}
48
+ <slot></slot>
49
+ `;
50
+ }
51
+ };
52
+ __decorate([
53
+ property()
54
+ ], EmptyNote.prototype, "icon", void 0);
55
+ __decorate([
56
+ property()
57
+ ], EmptyNote.prototype, "title", void 0);
58
+ __decorate([
59
+ property()
60
+ ], EmptyNote.prototype, "description", void 0);
61
+ EmptyNote = __decorate([
62
+ customElement('ox-empty-note')
63
+ ], EmptyNote);
64
+ export { EmptyNote };
65
+ //# sourceMappingURL=ox-empty-note.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-empty-note.js","sourceRoot":"","sources":["../../src/ox-empty-note.ts"],"names":[],"mappings":";AAAA,OAAO,4BAA4B,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE3D;;;;;;GAMG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;aAChC,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BlB,AA7BY,CA6BZ;IAMD,MAAM;QACJ,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA,YAAY,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE;oBAC9C,IAAI,CAAC,KAAK;QACtB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA,oBAAoB,IAAI,CAAC,WAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,EAAE;;KAE/E,CAAA;IACH,CAAC;;AAXW;IAAX,QAAQ,EAAE;uCAAc;AACb;IAAX,QAAQ,EAAE;wCAAe;AACd;IAAX,QAAQ,EAAE;8CAAqB;AAlCrB,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CA4CrB","sourcesContent":["import '@material/web/icon/icon.js'\n\nimport { LitElement, css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\n/**\n * A note in place of a list that has nothing to draw: an icon, a title, a line of description, and\n * room for one action (retry, clear filters) in the default slot.\n *\n * Moved from @operato/data-grist so a screen can say \"empty\" without pulling the grid in. The grid\n * now takes it from here.\n */\n@customElement('ox-empty-note')\nexport class EmptyNote extends LitElement {\n static styles = css`\n :host {\n display: block;\n text-align: center;\n }\n\n md-icon {\n font: var(--oops-note-icon-font);\n color: var(--oops-note-icon-color);\n border: var(--oops-note-icon-border);\n border-radius: var(--oops-note-icon-border-radius);\n padding: var(--oops-note-icon-padding);\n }\n\n [titler] {\n margin: var(--oops-note-title-margin);\n font: var(--oops-note-title-font);\n color: var(--oops-note-title-color);\n text-transform: capitalize;\n }\n\n [description] {\n font: var(--oops-note-description-font);\n color: var(--oops-note-description-color);\n }\n\n ::slotted(*) {\n margin-top: var(--spacing-medium, 8px);\n }\n `\n\n @property() icon?: string\n @property() title!: string\n @property() description?: string\n\n render() {\n return html`\n ${this.icon ? html`<md-icon>${this.icon}</md-icon>` : html``}\n <div titler>${this.title}</div>\n ${this.description ? html`<div description>${this.description}</div>` : html``}\n <slot></slot>\n `\n }\n}\n"]}
@@ -0,0 +1,44 @@
1
+ import '@material/web/button/text-button.js';
2
+ import './ox-empty-note.js';
3
+ import { LitElement, nothing, TemplateResult } from 'lit';
4
+ import { ListScale } from '@operato/utils/list-state.js';
5
+ /**
6
+ * Says what a list is doing, next to the rows its parent draws.
7
+ *
8
+ * loading nothing held yet: a spinner
9
+ * error nothing held: "could not load the list"; retry
10
+ * rows held: "could not refresh the list"; retry
11
+ * empty-filtered "nothing matches" and a way to clear the filters - what to do differs from empty
12
+ * empty the screen's own note (what is missing here), and the reason when one is known
13
+ * ready only what the rows cannot say: the list was cut, or there is more to load
14
+ *
15
+ * Events: `retry`, `reset-filters`, `load-more` (bubbling, composed).
16
+ *
17
+ * Moved from operato-twin (twin-list-state), the one of three forks that told all of these apart.
18
+ */
19
+ export declare class OxListState extends LitElement {
20
+ static styles: import("lit").CSSResult;
21
+ scale: ListScale;
22
+ loading: boolean;
23
+ error: unknown;
24
+ /** What this screen says when it has nothing yet - already translated by the screen. */
25
+ emptyNote?: {
26
+ icon?: string;
27
+ title?: string;
28
+ description?: string;
29
+ };
30
+ /**
31
+ * Why the list is empty - only when known. An empty list whose source could not be reached is not
32
+ * "nothing": say so, so people look at the connection instead of doubting the data. Unknown stays blank.
33
+ */
34
+ reason: string;
35
+ private emit;
36
+ private t;
37
+ render(): TemplateResult | typeof nothing;
38
+ }
39
+ declare global {
40
+ interface HTMLElementTagNameMap {
41
+ 'ox-list-state': OxListState;
42
+ 'ox-empty-note': import('./ox-empty-note.js').EmptyNote;
43
+ }
44
+ }
@@ -0,0 +1,194 @@
1
+ import { __decorate } from "tslib";
2
+ import '@material/web/button/text-button.js';
3
+ import './ox-empty-note.js';
4
+ import { css, html, LitElement, nothing } from 'lit';
5
+ import { customElement, property } from 'lit/decorators.js';
6
+ import { i18next } from '@operato/i18n';
7
+ import { hasMore, listPhase } from '@operato/utils/list-state.js';
8
+ /**
9
+ * Says what a list is doing, next to the rows its parent draws.
10
+ *
11
+ * loading nothing held yet: a spinner
12
+ * error nothing held: "could not load the list"; retry
13
+ * rows held: "could not refresh the list"; retry
14
+ * empty-filtered "nothing matches" and a way to clear the filters - what to do differs from empty
15
+ * empty the screen's own note (what is missing here), and the reason when one is known
16
+ * ready only what the rows cannot say: the list was cut, or there is more to load
17
+ *
18
+ * Events: `retry`, `reset-filters`, `load-more` (bubbling, composed).
19
+ *
20
+ * Moved from operato-twin (twin-list-state), the one of three forks that told all of these apart.
21
+ */
22
+ let OxListState = class OxListState extends LitElement {
23
+ constructor() {
24
+ super(...arguments);
25
+ this.scale = { shown: 0, loaded: 0 };
26
+ this.loading = false;
27
+ this.error = null;
28
+ /**
29
+ * Why the list is empty - only when known. An empty list whose source could not be reached is not
30
+ * "nothing": say so, so people look at the connection instead of doubting the data. Unknown stays blank.
31
+ */
32
+ this.reason = '';
33
+ }
34
+ static { this.styles = css `
35
+ :host {
36
+ display: block;
37
+ color: var(--ui-muted, #57676f);
38
+ }
39
+
40
+ ox-empty-note {
41
+ padding: var(--spacing-large, 16px) 0;
42
+ }
43
+
44
+ .spin {
45
+ display: block;
46
+ margin: var(--spacing-large, 16px) auto;
47
+ width: 16px;
48
+ height: 16px;
49
+ border: 2px solid var(--ui-line, #d5dce0);
50
+ border-top-color: var(--ui-accent, var(--md-sys-color-primary, #00727e));
51
+ border-radius: 50%;
52
+ animation: spin 0.7s linear infinite;
53
+ }
54
+
55
+ @keyframes spin {
56
+ to {
57
+ transform: rotate(360deg);
58
+ }
59
+ }
60
+
61
+ @media (prefers-reduced-motion: reduce) {
62
+ .spin {
63
+ animation: none;
64
+ }
65
+ }
66
+
67
+ .band {
68
+ display: flex;
69
+ gap: var(--spacing-medium, 8px);
70
+ align-items: center;
71
+ flex-wrap: wrap;
72
+ margin: var(--spacing-medium, 8px) 0 0;
73
+ padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);
74
+ border-left: 3px solid var(--ui-warn, #9f5e02);
75
+ background: var(--ui-panel-2, #eef1f3);
76
+ font-size: var(--ui-t-small, 11.5px);
77
+ line-height: 1.55;
78
+ }
79
+
80
+ .band[failed] {
81
+ border-left-color: var(--ui-crit, var(--md-sys-color-error, #be0c14));
82
+ }
83
+
84
+ .band b {
85
+ color: var(--ui-ink, #17242c);
86
+ font-weight: 600;
87
+ }
88
+
89
+ .why {
90
+ display: block;
91
+ margin-top: var(--spacing-small, 4px);
92
+ color: var(--ui-warn, #9f5e02);
93
+ }
94
+
95
+ .more {
96
+ display: flex;
97
+ justify-content: center;
98
+ padding: var(--spacing-medium, 8px) 0 0;
99
+ }
100
+ `; }
101
+ emit(name) {
102
+ this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true }));
103
+ }
104
+ t(key, defaultValue) {
105
+ return i18next.t(key, { defaultValue });
106
+ }
107
+ render() {
108
+ const phase = listPhase(this.scale, { loading: this.loading, error: this.error });
109
+ if (phase === 'loading') {
110
+ return html `<span class="spin" role="status" aria-label=${this.t('text.list-loading', 'loading…')}></span>`;
111
+ }
112
+ if (phase === 'error' && this.scale.loaded === 0) {
113
+ return html `
114
+ <ox-empty-note
115
+ role="alert"
116
+ icon="error"
117
+ title=${this.t('text.list-load-failed', 'could not load the list')}
118
+ >
119
+ <md-text-button @click=${() => this.emit('retry')}>${this.t('text.list-retry', 'retry')}</md-text-button>
120
+ </ox-empty-note>
121
+ `;
122
+ }
123
+ if (phase === 'error') {
124
+ /* The rows above are what was loaded before; do not let them pass for a fresh result. */
125
+ return html `
126
+ <p class="band" failed role="alert">
127
+ <span>${this.t('text.list-refresh-failed', 'could not refresh the list')}</span>
128
+ <md-text-button @click=${() => this.emit('retry')}>${this.t('text.list-retry', 'retry')}</md-text-button>
129
+ </p>
130
+ `;
131
+ }
132
+ if (phase === 'empty-filtered') {
133
+ return html `
134
+ <ox-empty-note
135
+ icon="search_off"
136
+ title=${this.t('text.list-nothing-found', 'nothing matches')}
137
+ >
138
+ <md-text-button @click=${() => this.emit('reset-filters')}
139
+ >${this.t('text.list-clear-filters', 'clear filters')}</md-text-button
140
+ >
141
+ </ox-empty-note>
142
+ `;
143
+ }
144
+ if (phase === 'empty') {
145
+ return html `
146
+ <ox-empty-note
147
+ icon=${this.emptyNote?.icon ?? nothing}
148
+ title=${this.emptyNote?.title ?? this.t('text.list-empty', 'nothing here yet.')}
149
+ description=${this.emptyNote?.description ?? nothing}
150
+ >
151
+ ${this.reason ? html `<span class="why">${this.reason}</span>` : nothing}
152
+ </ox-empty-note>
153
+ `;
154
+ }
155
+ const more = hasMore(this.scale);
156
+ return html `
157
+ ${this.scale.capped
158
+ ? html `<p class="band">
159
+ <span
160
+ ><b>${this.t('text.list-capped-title', 'showing a partial result.')}</b>
161
+ ${this.t('text.list-capped-detail', 'narrow by search or filter to see the rest.')}</span
162
+ >
163
+ </p>`
164
+ : nothing}
165
+ ${more
166
+ ? html `<div class="more">
167
+ <md-text-button ?disabled=${this.loading} @click=${() => this.emit('load-more')}>
168
+ ${this.loading ? this.t('text.list-loading', 'loading…') : this.t('text.list-load-more', 'load more')}
169
+ </md-text-button>
170
+ </div>`
171
+ : nothing}
172
+ `;
173
+ }
174
+ };
175
+ __decorate([
176
+ property({ type: Object })
177
+ ], OxListState.prototype, "scale", void 0);
178
+ __decorate([
179
+ property({ type: Boolean })
180
+ ], OxListState.prototype, "loading", void 0);
181
+ __decorate([
182
+ property({ attribute: false })
183
+ ], OxListState.prototype, "error", void 0);
184
+ __decorate([
185
+ property({ type: Object })
186
+ ], OxListState.prototype, "emptyNote", void 0);
187
+ __decorate([
188
+ property({ type: String })
189
+ ], OxListState.prototype, "reason", void 0);
190
+ OxListState = __decorate([
191
+ customElement('ox-list-state')
192
+ ], OxListState);
193
+ export { OxListState };
194
+ //# sourceMappingURL=ox-list-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-list-state.js","sourceRoot":"","sources":["../../src/ox-list-state.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/button/text-button.js'\nimport './ox-empty-note.js'\n\nimport { css, html, LitElement, nothing, TemplateResult } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { hasMore, ListScale, listPhase } from '@operato/utils/list-state.js'\n\n/**\n * Says what a list is doing, next to the rows its parent draws.\n *\n * loading nothing held yet: a spinner\n * error nothing held: \"could not load the list\"; retry\n * rows held: \"could not refresh the list\"; retry\n * empty-filtered \"nothing matches\" and a way to clear the filters - what to do differs from empty\n * empty the screen's own note (what is missing here), and the reason when one is known\n * ready only what the rows cannot say: the list was cut, or there is more to load\n *\n * Events: `retry`, `reset-filters`, `load-more` (bubbling, composed).\n *\n * Moved from operato-twin (twin-list-state), the one of three forks that told all of these apart.\n */\n@customElement('ox-list-state')\nexport class OxListState extends LitElement {\n static styles = css`\n :host {\n display: block;\n color: var(--ui-muted, #57676f);\n }\n\n ox-empty-note {\n padding: var(--spacing-large, 16px) 0;\n }\n\n .spin {\n display: block;\n margin: var(--spacing-large, 16px) auto;\n width: 16px;\n height: 16px;\n border: 2px solid var(--ui-line, #d5dce0);\n border-top-color: var(--ui-accent, var(--md-sys-color-primary, #00727e));\n border-radius: 50%;\n animation: spin 0.7s linear infinite;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .spin {\n animation: none;\n }\n }\n\n .band {\n display: flex;\n gap: var(--spacing-medium, 8px);\n align-items: center;\n flex-wrap: wrap;\n margin: var(--spacing-medium, 8px) 0 0;\n padding: var(--spacing-small, 4px) var(--spacing-medium, 8px);\n border-left: 3px solid var(--ui-warn, #9f5e02);\n background: var(--ui-panel-2, #eef1f3);\n font-size: var(--ui-t-small, 11.5px);\n line-height: 1.55;\n }\n\n .band[failed] {\n border-left-color: var(--ui-crit, var(--md-sys-color-error, #be0c14));\n }\n\n .band b {\n color: var(--ui-ink, #17242c);\n font-weight: 600;\n }\n\n .why {\n display: block;\n margin-top: var(--spacing-small, 4px);\n color: var(--ui-warn, #9f5e02);\n }\n\n .more {\n display: flex;\n justify-content: center;\n padding: var(--spacing-medium, 8px) 0 0;\n }\n `\n\n @property({ type: Object }) scale: ListScale = { shown: 0, loaded: 0 }\n @property({ type: Boolean }) loading = false\n @property({ attribute: false }) error: unknown = null\n\n /** What this screen says when it has nothing yet - already translated by the screen. */\n @property({ type: Object }) emptyNote?: { icon?: string; title?: string; description?: string }\n\n /**\n * Why the list is empty - only when known. An empty list whose source could not be reached is not\n * \"nothing\": say so, so people look at the connection instead of doubting the data. Unknown stays blank.\n */\n @property({ type: String }) reason = ''\n\n private emit(name: string) {\n this.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true }))\n }\n\n private t(key: string, defaultValue: string) {\n return i18next.t(key, { defaultValue })\n }\n\n render(): TemplateResult | typeof nothing {\n const phase = listPhase(this.scale, { loading: this.loading, error: this.error })\n\n if (phase === 'loading') {\n return html`<span class=\"spin\" role=\"status\" aria-label=${this.t('text.list-loading', 'loading…')}></span>`\n }\n\n if (phase === 'error' && this.scale.loaded === 0) {\n return html`\n <ox-empty-note\n role=\"alert\"\n icon=\"error\"\n title=${this.t('text.list-load-failed', 'could not load the list')}\n >\n <md-text-button @click=${() => this.emit('retry')}>${this.t('text.list-retry', 'retry')}</md-text-button>\n </ox-empty-note>\n `\n }\n\n if (phase === 'error') {\n /* The rows above are what was loaded before; do not let them pass for a fresh result. */\n return html`\n <p class=\"band\" failed role=\"alert\">\n <span>${this.t('text.list-refresh-failed', 'could not refresh the list')}</span>\n <md-text-button @click=${() => this.emit('retry')}>${this.t('text.list-retry', 'retry')}</md-text-button>\n </p>\n `\n }\n\n if (phase === 'empty-filtered') {\n return html`\n <ox-empty-note\n icon=\"search_off\"\n title=${this.t('text.list-nothing-found', 'nothing matches')}\n >\n <md-text-button @click=${() => this.emit('reset-filters')}\n >${this.t('text.list-clear-filters', 'clear filters')}</md-text-button\n >\n </ox-empty-note>\n `\n }\n\n if (phase === 'empty') {\n return html`\n <ox-empty-note\n icon=${this.emptyNote?.icon ?? nothing}\n title=${this.emptyNote?.title ?? this.t('text.list-empty', 'nothing here yet.')}\n description=${this.emptyNote?.description ?? nothing}\n >\n ${this.reason ? html`<span class=\"why\">${this.reason}</span>` : nothing}\n </ox-empty-note>\n `\n }\n\n const more = hasMore(this.scale)\n\n return html`\n ${this.scale.capped\n ? html`<p class=\"band\">\n <span\n ><b>${this.t('text.list-capped-title', 'showing a partial result.')}</b>\n ${this.t('text.list-capped-detail', 'narrow by search or filter to see the rest.')}</span\n >\n </p>`\n : nothing}\n ${more\n ? html`<div class=\"more\">\n <md-text-button ?disabled=${this.loading} @click=${() => this.emit('load-more')}>\n ${this.loading ? this.t('text.list-loading', 'loading…') : this.t('text.list-load-more', 'load more')}\n </md-text-button>\n </div>`\n : nothing}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ox-list-state': OxListState\n 'ox-empty-note': import('./ox-empty-note.js').EmptyNote\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ import '../src/ox-list-state.js';
@@ -0,0 +1,65 @@
1
+ /* Elements are compared by presence, not by value: a failing element comparison makes chai render the DOM and hang the runner. */
2
+ import { expect, fixture, html, oneEvent } from '@open-wc/testing';
3
+ import '../src/ox-list-state.js';
4
+ /**
5
+ * Every phase says something different, and the two that people confuse - empty and failed - never
6
+ * look alike. Checked by what is rendered, not by the phase value.
7
+ */
8
+ async function state(props) {
9
+ const el = await fixture(html `<ox-list-state></ox-list-state>`);
10
+ Object.assign(el, props);
11
+ await el.updateComplete;
12
+ return el;
13
+ }
14
+ const root = (el) => el.renderRoot;
15
+ const note = (el) => root(el).querySelector('ox-empty-note');
16
+ describe('ox-list-state', () => {
17
+ it('shows a spinner while nothing is held', async () => {
18
+ const el = await state({ loading: true, scale: { shown: 0, loaded: 0 } });
19
+ expect(root(el).querySelector('[role="status"]')).to.exist;
20
+ expect(note(el) === null, 'absent').to.equal(true);
21
+ });
22
+ it('says a failed load is a failure, not an empty list, and offers retry', async () => {
23
+ const el = await state({ error: new Error('down'), scale: { shown: 0, loaded: 0 } });
24
+ expect(note(el)?.getAttribute('role')).to.equal('alert');
25
+ expect(note(el)?.getAttribute('title')).to.equal('could not load the list');
26
+ const retry = note(el).querySelector('md-text-button');
27
+ setTimeout(() => retry.click());
28
+ await oneEvent(el, 'retry');
29
+ });
30
+ it('keeps rows that were loaded before, and says they are not a fresh result', async () => {
31
+ const el = await state({ error: new Error('down'), scale: { shown: 5, loaded: 5 } });
32
+ expect(note(el) === null, 'absent').to.equal(true);
33
+ const band = root(el).querySelector('.band[failed]');
34
+ expect(band?.getAttribute('role')).to.equal('alert');
35
+ expect(band?.textContent).to.contain('could not refresh');
36
+ });
37
+ it('tells empty-because-narrowed apart from empty, with a way to clear', async () => {
38
+ const narrowed = await state({ scale: { shown: 0, loaded: 9, filtered: true } });
39
+ expect(note(narrowed)?.getAttribute('title')).to.equal('nothing matches');
40
+ const clear = note(narrowed).querySelector('md-text-button');
41
+ setTimeout(() => clear.click());
42
+ await oneEvent(narrowed, 'reset-filters');
43
+ const empty = await state({ scale: { shown: 0, loaded: 0 }, emptyNote: { title: 'no work orders yet' } });
44
+ expect(note(empty)?.getAttribute('title')).to.equal('no work orders yet');
45
+ expect(note(empty)?.querySelector('md-text-button') === null, 'absent').to.equal(true);
46
+ });
47
+ it('shows the reason for an empty list only when one is given', async () => {
48
+ const withReason = await state({ scale: { shown: 0, loaded: 0 }, reason: 'the source is not connected' });
49
+ expect(note(withReason)?.querySelector('.why')?.textContent).to.equal('the source is not connected');
50
+ const without = await state({ scale: { shown: 0, loaded: 0 } });
51
+ expect(note(without)?.querySelector('.why') === null, 'absent').to.equal(true);
52
+ });
53
+ it('says a capped list was cut, and offers more when there is more', async () => {
54
+ const el = await state({ scale: { shown: 100, loaded: 100, capped: true } });
55
+ expect(root(el).querySelector('.band:not([failed])')?.textContent).to.contain('showing a partial result');
56
+ const more = root(el).querySelector('.more md-text-button');
57
+ setTimeout(() => more.click());
58
+ await oneEvent(el, 'load-more');
59
+ });
60
+ it('says nothing extra when everything is here', async () => {
61
+ const el = await state({ scale: { shown: 7, loaded: 7, total: 7 } });
62
+ expect(root(el).querySelector('.band, .more, ox-empty-note, [role="status"]') === null, 'absent').to.equal(true);
63
+ });
64
+ });
65
+ //# sourceMappingURL=ox-list-state.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-list-state.test.js","sourceRoot":"","sources":["../../test/ox-list-state.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* Elements are compared by presence, not by value: a failing element comparison makes chai render the DOM and hang the runner. */\nimport { expect, fixture, html, oneEvent } from '@open-wc/testing'\n\nimport '../src/ox-list-state.js'\nimport type { OxListState } from '../src/ox-list-state.js'\n\n/**\n * Every phase says something different, and the two that people confuse - empty and failed - never\n * look alike. Checked by what is rendered, not by the phase value.\n */\n\nasync function state(props: Partial<OxListState>) {\n const el = await fixture<OxListState>(html`<ox-list-state></ox-list-state>`)\n Object.assign(el, props)\n await el.updateComplete\n return el\n}\n\nconst root = (el: OxListState) => el.renderRoot as ShadowRoot\nconst note = (el: OxListState) => root(el).querySelector('ox-empty-note') as HTMLElement | null\n\ndescribe('ox-list-state', () => {\n it('shows a spinner while nothing is held', async () => {\n const el = await state({ loading: true, scale: { shown: 0, loaded: 0 } })\n expect(root(el).querySelector('[role=\"status\"]')).to.exist\n expect(note(el) === null, 'absent').to.equal(true)\n })\n\n it('says a failed load is a failure, not an empty list, and offers retry', async () => {\n const el = await state({ error: new Error('down'), scale: { shown: 0, loaded: 0 } })\n\n expect(note(el)?.getAttribute('role')).to.equal('alert')\n expect(note(el)?.getAttribute('title')).to.equal('could not load the list')\n\n const retry = note(el)!.querySelector('md-text-button') as HTMLElement\n setTimeout(() => retry.click())\n await oneEvent(el, 'retry')\n })\n\n it('keeps rows that were loaded before, and says they are not a fresh result', async () => {\n const el = await state({ error: new Error('down'), scale: { shown: 5, loaded: 5 } })\n\n expect(note(el) === null, 'absent').to.equal(true)\n const band = root(el).querySelector('.band[failed]')\n expect(band?.getAttribute('role')).to.equal('alert')\n expect(band?.textContent).to.contain('could not refresh')\n })\n\n it('tells empty-because-narrowed apart from empty, with a way to clear', async () => {\n const narrowed = await state({ scale: { shown: 0, loaded: 9, filtered: true } })\n expect(note(narrowed)?.getAttribute('title')).to.equal('nothing matches')\n\n const clear = note(narrowed)!.querySelector('md-text-button') as HTMLElement\n setTimeout(() => clear.click())\n await oneEvent(narrowed, 'reset-filters')\n\n const empty = await state({ scale: { shown: 0, loaded: 0 }, emptyNote: { title: 'no work orders yet' } })\n expect(note(empty)?.getAttribute('title')).to.equal('no work orders yet')\n expect(note(empty)?.querySelector('md-text-button') === null, 'absent').to.equal(true)\n })\n\n it('shows the reason for an empty list only when one is given', async () => {\n const withReason = await state({ scale: { shown: 0, loaded: 0 }, reason: 'the source is not connected' })\n expect(note(withReason)?.querySelector('.why')?.textContent).to.equal('the source is not connected')\n\n const without = await state({ scale: { shown: 0, loaded: 0 } })\n expect(note(without)?.querySelector('.why') === null, 'absent').to.equal(true)\n })\n\n it('says a capped list was cut, and offers more when there is more', async () => {\n const el = await state({ scale: { shown: 100, loaded: 100, capped: true } })\n\n expect(root(el).querySelector('.band:not([failed])')?.textContent).to.contain('showing a partial result')\n\n const more = root(el).querySelector('.more md-text-button') as HTMLElement\n setTimeout(() => more.click())\n await oneEvent(el, 'load-more')\n })\n\n it('says nothing extra when everything is here', async () => {\n const el = await state({ scale: { shown: 7, loaded: 7, total: 7 } })\n expect(root(el).querySelector('.band, .more, ox-empty-note, [role=\"status\"]') === null, 'absent').to.equal(true)\n })\n})\n"]}
@@ -0,0 +1 @@
1
+ {"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.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.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.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/tslib/tslib.d.ts","../../../node_modules/tslib/modules/index.d.ts","../../../node_modules/@lit/reactive-element/development/css-tag.d.ts","../../../node_modules/@lit/reactive-element/development/reactive-controller.d.ts","../../../node_modules/@lit/reactive-element/development/reactive-element.d.ts","../../../node_modules/lit-html/development/directive.d.ts","../../../node_modules/@types/trusted-types/lib/index.d.ts","../../../node_modules/lit-html/development/lit-html.d.ts","../../../node_modules/lit-element/development/lit-element.d.ts","../../../node_modules/lit-html/development/is-server.d.ts","../../../node_modules/lit/development/index.d.ts","../../../node_modules/@material/web/icon/internal/icon.d.ts","../../../node_modules/@material/web/icon/icon.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/base.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/custom-element.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/property.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/state.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/event-options.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/query.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/query-all.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/query-async.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/query-assigned-nodes.d.ts","../../../node_modules/@lit/reactive-element/development/decorators/query-assigned-elements.d.ts","../../../node_modules/lit/development/decorators.d.ts","../src/ox-empty-note.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/labs/behaviors/mixin.d.ts","../../../node_modules/@material/web/labs/behaviors/element-internals.d.ts","../../../node_modules/@material/web/labs/behaviors/form-associated.d.ts","../../../node_modules/@material/web/labs/behaviors/form-submitter.d.ts","../../../node_modules/@material/web/button/internal/button.d.ts","../../../node_modules/@material/web/button/internal/text-button.d.ts","../../../node_modules/@material/web/button/text-button.d.ts","../../../node_modules/i18next/typescript/helpers.d.ts","../../../node_modules/i18next/typescript/options.d.ts","../../../node_modules/i18next/typescript/t.d.ts","../../../node_modules/i18next/index.d.ts","../../../node_modules/i18next/index.d.mts","../../i18n/dist/src/config.d.ts","../../i18n/dist/src/localize.d.ts","../../i18n/dist/src/ox-i18n.d.ts","../../i18n/dist/src/ox-i18n-selector.d.ts","../../i18n/dist/src/index.d.ts","../../utils/dist/src/list-state.d.ts","../src/ox-list-state.ts","../src/index.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/development/static.d.ts","../../../node_modules/lit/development/static-html.d.ts","../../../node_modules/@open-wc/testing-helpers/types/src/renderable.d.ts","../../../node_modules/@open-wc/testing-helpers/node_modules/@open-wc/dedupe-mixin/index.d.ts","../../../node_modules/@open-wc/testing-helpers/node_modules/@open-wc/scoped-elements/dist-types/types.d.ts","../../../node_modules/@open-wc/testing-helpers/node_modules/@open-wc/scoped-elements/dist-types/html-element.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/lit/development/html.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/ox-list-state.test.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.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/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/inspector.generated.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/sea.d.ts","../../../node_modules/@types/node/sqlite.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/index.d.ts","../../../node_modules/@types/mocha/index.d.ts"],"fileIdsList":[[133,183,200,201],[60,133,183,200,201],[51,60,133,183,200,201],[51,60,68,133,183,200,201],[62,133,183,200,201],[49,50,133,183,200,201],[54,57,74,76,77,78,79,80,133,183,200,201],[81,133,183,200,201],[57,82,133,183,200,201],[57,72,133,183,200,201],[57,73,133,183,200,201],[57,58,133,183,200,201],[54,57,133,183,200,201],[57,133,183,200,201],[57,77,133,183,200,201],[57,77,78,133,183,200,201],[54,57,72,133,183,200,201],[57,75,133,183,200,201],[97,98,133,183,200,201],[99,133,183,200,201],[98,100,133,183,200,201],[114,115,133,183,200,201],[114,133,183,200,201],[110,112,118,119,120,123,124,133,183,200,201],[113,116,133,183,200,201],[117,133,183,200,201],[113,117,122,133,183,200,201],[113,116,121,133,183,200,201],[97,109,125,133,183,200,201],[101,104,105,108,133,183,200,201],[97,133,183,200,201],[133,180,181,183,200,201],[133,182,183,200,201],[183,200,201],[133,183,188,200,201,218],[133,183,184,189,194,200,201,203,215,226],[133,183,184,185,194,200,201,203],[128,129,130,133,183,200,201],[133,183,186,200,201,227],[133,183,187,188,195,200,201,204],[133,183,188,200,201,215,223],[133,183,189,191,194,200,201,203],[133,182,183,190,200,201],[133,183,191,192,200,201],[133,183,193,194,200,201],[133,182,183,194,200,201],[133,183,194,195,196,200,201,215,226],[133,183,194,195,196,200,201,210,215,218],[133,175,183,191,194,197,200,201,203,215,226],[133,183,194,195,197,198,200,201,203,215,223,226],[133,183,197,199,200,201,215,223,226],[131,132,133,134,135,136,137,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232],[133,183,194,200,201],[133,183,200,201,202,226],[133,183,191,194,200,201,203,215],[133,183,200,201,204],[133,183,200,201,205],[133,182,183,200,201,206],[133,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232],[133,183,200,201,208],[133,183,200,201,209],[133,183,194,200,201,210,211],[133,183,200,201,210,212,227,229],[133,183,195,200,201],[133,183,194,200,201,215,216,218],[133,183,200,201,217,218],[133,183,200,201,215,216],[133,183,200,201,218],[133,183,200,201,219],[133,180,183,200,201,215,220,226],[133,183,194,200,201,221,222],[133,183,200,201,221,222],[133,183,188,200,201,203,215,223],[133,183,200,201,224],[133,183,200,201,203,225],[133,183,197,200,201,209,226],[133,183,188,200,201,227],[133,183,200,201,215,228],[133,183,200,201,202,229],[133,183,200,201,230],[133,175,183,200,201],[133,175,183,194,196,200,201,206,215,218,226,228,229,231],[133,183,200,201,215,232],[97,107,133,183,200,201],[106,133,183,200,201],[103,133,183,200,201],[102,133,183,200,201],[84,85,86,87,133,183,200,201],[84,85,86,133,183,200,201],[84,133,183,200,201],[84,85,133,183,200,201],[51,54,133,183,200,201],[54,133,183,200,201],[52,53,133,183,200,201],[61,62,63,64,65,66,67,68,69,133,183,200,201],[51,54,55,56,133,183,200,201],[111,133,183,200,201],[47,133,183,200,201],[133,147,151,183,200,201,226],[133,147,183,200,201,215,226],[133,142,183,200,201],[133,144,147,183,200,201,223,226],[133,183,200,201,203,223],[133,183,200,201,233],[133,142,183,200,201,233],[133,144,147,183,200,201,203,226],[133,139,140,143,146,183,194,200,201,215,226],[133,147,154,183,200,201],[133,139,145,183,200,201],[133,147,168,169,183,200,201],[133,143,147,183,200,201,218,226,233],[133,168,183,200,201,233],[133,141,142,183,200,201,233],[133,147,183,200,201],[133,141,142,143,144,145,146,147,148,149,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,169,170,171,172,173,174,183,200,201],[133,147,162,183,200,201],[133,147,154,155,183,200,201],[133,145,147,155,156,183,200,201],[133,146,183,200,201],[133,139,142,147,183,200,201],[133,147,151,155,156,183,200,201],[133,151,183,200,201],[133,145,147,150,183,200,201,226],[133,139,144,147,154,183,200,201],[133,183,200,201,215],[133,142,147,168,183,200,201,231,233],[88,133,183,200,201],[89,90,91,92,133,183,200,201],[57,88,133,183,200,201],[48,71,95,133,183,200,201],[48,57,59,70,133,183,200,201],[48,57,70,71,83,93,94,133,183,200,201],[48,95,126,133,183,200,201]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"74012d464fbc5354ca3a7d5e71bee43b17da01a853c8ff10971bbe3680c76f40","impliedFormat":99},{"version":"5e30131b6a5587fe666926ad1d9807e733c0a597ed12d682669fcaa331aea576","impliedFormat":99},{"version":"a0f82d2f9450bd147a8c137798d9501bd49b7c9e118f75b07b76709ff39b6b55","affectsGlobalScope":true,"impliedFormat":99},{"version":"00cb63103f9670f8094c238a4a7e252c8b4c06ba371fea5c44add7e41b7247e4","impliedFormat":99},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"e09db3291e6b440f7debed2227d8357e80c95987a0d0d67ac17521d8f7b11bdb","impliedFormat":99},{"version":"9a318e3a8900672b85cd3c8c3a5acf51b88049557a3ae897ccdcf2b85a8f61f9","impliedFormat":99},{"version":"1bcd560deed90a43c51b08aa18f7f55229f2e30974ab5ed1b7bb5721be379013","impliedFormat":99},{"version":"dc08fe04e50bc24d1baded4f33e942222bbdd5d77d6341a93cfe6e4e4586a3be","impliedFormat":99},{"version":"b93e2680295ac83b52846bcd76dd6d06507d3da1738ebe564a1e99543993b3b4","impliedFormat":99},{"version":"4ae1ed87c59518f4e0918a21409ec3020e97037a386b57953c6b9fed9cad6949","affectsGlobalScope":true,"impliedFormat":99},{"version":"cdeae34aca6700620ebf3f27cf7d439c3af97595dd6e2729fa4780483add5680","impliedFormat":99},{"version":"3ff87ea3471b51beaf4aa8fd8f4422862b11d343fdbb55bf383e0f8cc195a445","impliedFormat":99},{"version":"99bdf729529cdbf12e2bf76ea751b662011133dcf9e35abcb3def47bb02f7b0a","impliedFormat":99},{"version":"732fb71ecb695d6f36ddcbb72ebfe4ff6b6491d45101a00fa2b75a26b80d640f","impliedFormat":99},{"version":"039cb05125d7621f8143616c495b8e6b54249c4e64d2754b80ff93867f7f4b01","impliedFormat":99},{"version":"1b81f1fa82ad30af01ab1cae91ccaddc10c48f5916bbd6d282155e44a65d858d","impliedFormat":99},{"version":"a0fc7a02a75802678a67000607f20266cf1a49dc0e787967efe514e31b9ed0c3","impliedFormat":99},{"version":"5ebf098a1d81d400b8af82807cf19893700335cf91a7b9dbd83a5d737af34b11","impliedFormat":99},{"version":"101cf83ac3f9c5e1a7355a02e4fbe988877ef83c4ebec0ff0f02b2af022254a3","impliedFormat":99},{"version":"d017e2fcd44b46ca80cd2b592a6314e75f5caab5bda230f0f4a45e964049a43a","impliedFormat":99},{"version":"a8992b852521a66f63e0cedc6e1f054b28f972232b6fa5ca59771db6a1c8bbea","impliedFormat":99},{"version":"1f9098044f1574d9cf92b2fbfbd81f02335801ed8431dedcbde317a057ed6700","signature":"f2ee7cc2e2311d514908a41f3fcc56908d4ef53c6a70fa4e58032d6742ff4115"},{"version":"905800cc110167503d0cf58bb0dd6fa4aaac1e9cedc9bd9c48e5d1f8b5b8d4c8","impliedFormat":99},{"version":"d17be577b99e59611df19ca2cf0356df554f55bb06617c21321fc4ec06b820d0","impliedFormat":99},{"version":"5f30145fbc8ca508ae4e0d90a4fe9eaff490783f380a92f6aa262accdf7887b7","affectsGlobalScope":true,"impliedFormat":99},{"version":"cefe49d29d43726072e88671a2c40cdeeb8d49ca8fa6c2d4b06013dc7b9d6206","impliedFormat":99},{"version":"f882b77c5939860d599b4b7bc39f741ebcd56123e18b284500f4b8923acd2e72","affectsGlobalScope":true,"impliedFormat":99},{"version":"0230bc76ed3a464531a43d2434d315b9cc2096aaca28bdaa65b8f9dce9f3bc81","impliedFormat":99},{"version":"559d2d1cd7f37dc2ac59e7adce198ad16a5eb0c7273d67b8e4ff72821b7c853f","impliedFormat":99},{"version":"6161d12fc14a8e0cf492f9d49372a1189b1fe005662cb7fe6630352a6b0bb04e","impliedFormat":99},{"version":"7d3c06d4ad79d86c6f7518b77d335b324bc218a7cd8b3e15579c4b584b7307f9","impliedFormat":99},{"version":"65f5bc7ff74eeabe9925da575924601248471033c27bf0384643ea03cad2b57d","impliedFormat":99},{"version":"0f28503979e769f6ee6e55350f621dc00e300f15688d52b02edc62d837d29b1d","impliedFormat":99},{"version":"fe869c79d427e84d916011d082def68a793c3c13e157079fec399f250418bd50","affectsGlobalScope":true,"impliedFormat":99},{"version":"e30accdbef6f904f20354b6f598d7f2f7ff29094fc5410c33f63b29b4832172a","impliedFormat":1},{"version":"3786a961459023ec78bb575e5ea74f504d3ffc61ae82a305c959a4d94d7d70eb","impliedFormat":1},{"version":"de83915a380bdd6d7ddf075e3f60fe347db64ad4d06822835724ac601cb61daf","impliedFormat":1},{"version":"4d39c150715cb238da715e5c3fbeac2e2b2d0ef3f23c632996dd59ae35ba1f45","impliedFormat":1},{"version":"e9f80c5934982b97886eadab6684c073344a588d1758b12fba2d0184e6f450a2","impliedFormat":99},"0f81a53d54fd2b4ae2bf60067d616de99884bda21cb5784d942089d52319fb97","86d356e64ab8d56852623677eb1bed0c106703aed9b7788ad8a5a56e647822cb","29dca1b5f0cac95b675f86c7846f9d587ed47cc46609dd00d152bcb37683b069","231d829c892caeb88dd469e0847bf9d14e29c82b8b158b381ec866c868adf9af","886bcc73e8cf74ebec1bd14a5cc5b8dfa28276210df634e6f81c844b1eef767b","c96e01c4655ef70ebc8772ce4880e00a74368ba9b9b137cf30e4f781239822ae",{"version":"bb7143556ecc4cb0fc2586ffcf0591e1802a4405cf8ae4d801e192da7487f638","signature":"c74d7798b17922d14c092f0ad1a03332b7a9e2903610d14e3380a88184c20cec","affectsGlobalScope":true},{"version":"fe81c030dab05f614b05c010ef351a5ce04ba6e5aed338e8792edd4af2e9fcc0","signature":"b01924b6ce85444abefeffe49a1fd7f1d7b6f6fbdc1881bd5b9995527d55cdb0"},{"version":"eef204f061321360559bd19235ea32a9d55b3ec22a362cc78d14ef50d4db4490","affectsGlobalScope":true,"impliedFormat":1},{"version":"72bee526b949b9932edba50997ff3b9cdede7b314d790d5f0d94f3d2944930ea","impliedFormat":99},{"version":"2d412861573a672bd90fdcb1e48740593324565f3b3aaf6808c0e3e2f0d54ae8","affectsGlobalScope":true,"impliedFormat":99},{"version":"cd711db43a952f15464b571ac11b7a440332cd52342bc92c4bf908c70688f57f","affectsGlobalScope":true,"impliedFormat":99},{"version":"9d8709c916778cb34830708ed47b78e9a46d1fb2eb73a682b14eee990bed4aa6","impliedFormat":99},{"version":"507e2131e89b515ce40c05c0c2fef6cc575ba8947703f92e8cdf36078747a9ff","affectsGlobalScope":true,"impliedFormat":99},{"version":"999a90d30a3183dcee987d0a5a7c586aba5bacbf6ce087ba8635124082ccfeea","impliedFormat":99},{"version":"8a5878edd52f4a720560b4c6e6247e9ddc3df6118ad9cf2f9927903b03d5f440","impliedFormat":99},{"version":"e7be17cfcbe98809c052f384c230ecea9e1cee045edac9db0659e997a988ff9e","affectsGlobalScope":true,"impliedFormat":1},{"version":"baf3507287629018d38c88e2636dd041550c70620bb774127011eb6dc3b361c0","impliedFormat":1},{"version":"4738bc5d39ac01532d861967a4fe52769e3892fb8022d4524802ac1c7aed4934","impliedFormat":1},{"version":"525b52b38b44420fb1758c0917e7b67cf379f7f9477d2ba7343f3d5f50a44258","affectsGlobalScope":true,"impliedFormat":1},{"version":"65b91a3725399231d3469529b5e27b85bf2aa98013e607f308e5fe260b47eeff","impliedFormat":99},{"version":"04e3793f33c71ceae20a4719698c068b72c98cf925b3c5f8a33096c00ed44258","impliedFormat":99},{"version":"fa8ef3fb228e258f9508386e2056c95c959d1c1168301181313a5c978754ba70","impliedFormat":99},{"version":"15c9478a8a3d630ac5e738aca25fca15d0842aaeb97fb1a9c1e80eddc5a0e14c","impliedFormat":99},{"version":"cc46ce345c0e19e456388446733250527eead4ca557b5e5fdf0c2e30adc3c89f","impliedFormat":99},{"version":"88cda4269c54f0803834fd62b2fac61af8bff7a085693f7ca9df85c1f19dee8a","impliedFormat":99},{"version":"5a2888a80ba9fae27aaa312464ab4b744ce4cfce573c105844ad8e94a39e2d7d","affectsGlobalScope":true,"impliedFormat":99},{"version":"260d1e9ec9c633c7ae90d8c17762e77924eef5d71357b27bfd351da698db4f6d","impliedFormat":99},{"version":"6168f8e0a5b354f8177bf0dee7c1a69c2afb6a155d5534221f3a1a2d86b84367","impliedFormat":99},{"version":"d7840fd94e6dfb5b0d9df5a20fe1e79c8dd72b1efdb74d2ef04c31e3588c6b5b","impliedFormat":99},{"version":"fa6d684e15fe6e99c7208a51b45c04f8e0147f1c8587871aac48fff55b7b1f24","impliedFormat":99},{"version":"d61a4b627c3e2e054616df905a25226f547dc0e821c2a2b6d5f13318b3fd7e78","impliedFormat":99},{"version":"1308479c593c3d337bd9c438ac1d7164006a9286638cec0b26e3331a978f91d4","impliedFormat":99},{"version":"cfad37dbd7cf27cc16758755847ad7c07ac52a01c466486e50f8f84d0f0ea9ce","impliedFormat":99},{"version":"0c4d3009672fd12d4d9a6505e769de9369c180dcfa8188d9fd850ec156245d87","impliedFormat":99},{"version":"793fca6322a14fa8fa6bc6a4fc694fd7bcc88922c4f9abcd48bf6908f8bf939b","impliedFormat":99},{"version":"be3e93b109deb44b925583674cc0706c0b3c2e7316bcf79631285a45c18ed0c8","impliedFormat":99},{"version":"50f63746fc2a779d1f9c5657fd78e292045dc98b540e026799e039ea629f2943","impliedFormat":99},{"version":"c36fa8e501a7a38db9aa3daae86eddbf253166fc67a76d26257b0bdc4dec18ca","signature":"dcb52906ea5b52f4c360727ed3bbfaebc4d36244ca54a9792e468c45fad290b9"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"913be43dad2a40e500104700aa26cfb5c51a976114bedf19624de43fdae7474f","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"208a6a0bfb227bdf8fb964799d0a206c75cf03ccd72e63bf5495c9331354c6d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"29f72ec1289ae3aeda78bf14b38086d3d803262ac13904b400422941a26a3636","affectsGlobalScope":true,"impliedFormat":1}],"root":[71,95,96,127],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"inlineSources":true,"module":99,"noEmitOnError":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"useDefineForClassFields":false},"referencedMap":[[49,1],[60,1],[61,2],[64,3],[62,3],[66,3],[69,4],[68,3],[67,3],[65,3],[63,5],[50,1],[51,6],[81,7],[82,8],[83,9],[73,10],[74,11],[59,12],[58,13],[72,14],[78,15],[79,16],[80,16],[77,1],[75,17],[76,18],[99,19],[100,20],[98,1],[101,21],[114,1],[116,22],[115,23],[125,24],[110,1],[117,25],[118,26],[119,1],[120,23],[123,27],[113,14],[122,28],[124,26],[126,29],[109,30],[105,31],[97,1],[234,1],[180,32],[181,32],[182,33],[133,34],[183,35],[184,36],[185,37],[128,1],[131,38],[129,1],[130,1],[186,39],[187,40],[188,41],[189,42],[190,43],[191,44],[192,44],[193,45],[194,46],[195,47],[196,48],[134,1],[132,1],[197,49],[198,50],[199,51],[233,52],[200,53],[201,1],[202,54],[203,55],[204,56],[205,57],[206,58],[207,59],[208,60],[209,61],[210,62],[211,62],[212,63],[213,1],[214,64],[215,65],[217,66],[216,67],[218,68],[219,69],[220,70],[221,71],[222,72],[223,73],[224,74],[225,75],[226,76],[227,77],[228,78],[229,79],[230,80],[135,1],[136,1],[137,1],[176,81],[177,1],[178,1],[179,68],[231,82],[232,83],[108,84],[107,85],[106,1],[53,1],[138,1],[102,31],[104,86],[103,87],[88,88],[87,89],[84,1],[85,90],[86,91],[55,92],[52,93],[56,1],[54,94],[111,93],[70,95],[121,93],[57,96],[112,97],[48,98],[47,1],[45,1],[46,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],[19,1],[20,1],[4,1],[21,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[36,1],[33,1],[34,1],[35,1],[37,1],[7,1],[38,1],[43,1],[44,1],[39,1],[40,1],[41,1],[42,1],[1,1],[154,99],[164,100],[153,99],[174,101],[145,102],[144,103],[173,104],[167,105],[172,106],[147,107],[161,108],[146,109],[170,110],[142,111],[141,104],[171,112],[143,113],[148,114],[149,1],[152,114],[139,1],[175,115],[165,116],[156,117],[157,118],[159,119],[155,120],[158,121],[168,104],[150,122],[151,123],[160,124],[140,125],[163,116],[162,114],[166,1],[169,126],[89,127],[93,128],[90,129],[92,13],[91,13],[96,130],[71,131],[95,132],[127,133],[94,1]],"version":"5.9.3"}