@joist/element 4.0.0-next.2 → 4.0.0-next.20

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.
Files changed (74) hide show
  1. package/README.md +110 -25
  2. package/package.json +5 -4
  3. package/src/lib/attr.test.ts +137 -80
  4. package/src/lib/attr.ts +24 -32
  5. package/src/lib/element.test.ts +96 -45
  6. package/src/lib/element.ts +90 -28
  7. package/src/lib/lifecycle.test.ts +31 -0
  8. package/src/lib/lifecycle.ts +9 -0
  9. package/src/lib/listen.test.ts +88 -0
  10. package/src/lib/listen.ts +28 -5
  11. package/src/lib/metadata.ts +18 -6
  12. package/src/lib/query.test.ts +28 -0
  13. package/src/lib/query.ts +31 -0
  14. package/src/lib/result.ts +2 -26
  15. package/src/lib/tags.ts +22 -64
  16. package/src/lib/template.test.ts +123 -0
  17. package/src/lib/template.ts +118 -0
  18. package/src/lib.ts +3 -2
  19. package/target/lib/attr.d.ts +5 -1
  20. package/target/lib/attr.js +19 -24
  21. package/target/lib/attr.js.map +1 -1
  22. package/target/lib/attr.test.js +333 -214
  23. package/target/lib/attr.test.js.map +1 -1
  24. package/target/lib/element.d.ts +15 -5
  25. package/target/lib/element.js +71 -18
  26. package/target/lib/element.js.map +1 -1
  27. package/target/lib/element.test.js +195 -111
  28. package/target/lib/element.test.js.map +1 -1
  29. package/target/lib/lifecycle.d.ts +1 -0
  30. package/target/lib/lifecycle.js +8 -0
  31. package/target/lib/lifecycle.js.map +1 -0
  32. package/target/lib/lifecycle.test.js +48 -0
  33. package/target/lib/lifecycle.test.js.map +1 -0
  34. package/target/lib/listen.d.ts +2 -1
  35. package/target/lib/listen.js +21 -3
  36. package/target/lib/listen.js.map +1 -1
  37. package/target/lib/listen.test.js +159 -0
  38. package/target/lib/listen.test.js.map +1 -0
  39. package/target/lib/metadata.d.ts +16 -6
  40. package/target/lib/metadata.js +3 -2
  41. package/target/lib/metadata.js.map +1 -1
  42. package/target/lib/query.d.ts +9 -0
  43. package/target/lib/query.js +19 -0
  44. package/target/lib/query.js.map +1 -0
  45. package/target/lib/query.test.d.ts +1 -0
  46. package/target/lib/query.test.js +41 -0
  47. package/target/lib/query.test.js.map +1 -0
  48. package/target/lib/result.d.ts +2 -8
  49. package/target/lib/result.js +1 -19
  50. package/target/lib/result.js.map +1 -1
  51. package/target/lib/tags.d.ts +10 -20
  52. package/target/lib/tags.js +17 -29
  53. package/target/lib/tags.js.map +1 -1
  54. package/target/lib/template.d.ts +11 -0
  55. package/target/lib/template.js +87 -0
  56. package/target/lib/template.js.map +1 -0
  57. package/target/lib/template.test.d.ts +1 -0
  58. package/target/lib/template.test.js +91 -0
  59. package/target/lib/template.test.js.map +1 -0
  60. package/target/lib.d.ts +3 -2
  61. package/target/lib.js +3 -2
  62. package/target/lib.js.map +1 -1
  63. package/src/lib/shadow.test.ts +0 -40
  64. package/src/lib/shadow.ts +0 -16
  65. package/src/lib/tags.test.ts +0 -28
  66. package/target/lib/shadow.d.ts +0 -2
  67. package/target/lib/shadow.js +0 -10
  68. package/target/lib/shadow.js.map +0 -1
  69. package/target/lib/shadow.test.js +0 -69
  70. package/target/lib/shadow.test.js.map +0 -1
  71. package/target/lib/tags.test.js +0 -23
  72. package/target/lib/tags.test.js.map +0 -1
  73. /package/target/lib/{shadow.test.d.ts → lifecycle.test.d.ts} +0 -0
  74. /package/target/lib/{tags.test.d.ts → listen.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,91 @@
1
+ import { assert } from 'chai';
2
+ import { template } from './template.js';
3
+ const TESTS = [
4
+ function bindableNodes(el, root) {
5
+ it(`should intialize bindable nodes ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
6
+ el.title = 'Hello World';
7
+ el.ariaLabel = 'This is the label';
8
+ el.ariaDescription = 'This is the description';
9
+ root.innerHTML = `
10
+ <span #:bind="title"></span>
11
+
12
+ <ul>
13
+ <li #:bind="ariaLabel"></li>
14
+ <li #:bind="ariaDescription"></li>
15
+ </ul>
16
+ `;
17
+ const render = template().bind(el);
18
+ render();
19
+ assert.equal(root.innerHTML
20
+ .split('\n')
21
+ .map((res) => res.trim())
22
+ .join(''), '<span #:bind="title">Hello World</span><ul><li #:bind="ariaLabel">This is the label</li><li #:bind="ariaDescription">This is the description</li></ul>');
23
+ });
24
+ },
25
+ function attributeNodes(el, root) {
26
+ it(`should intialize template attributes ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
27
+ el.ariaLabel = 'This is the label';
28
+ el.ariaDescription = 'This is the description';
29
+ root.innerHTML = `
30
+ <ul #:aria-label="ariaLabel" #:aria-description="ariaDescription"></ul>
31
+ `;
32
+ const render = template().bind(el);
33
+ render();
34
+ assert.equal(root.innerHTML
35
+ .split('\n')
36
+ .map((res) => res.trim())
37
+ .join(''), '<ul #:aria-label="ariaLabel" #:aria-description="ariaDescription" aria-label="This is the label" aria-description="This is the description"></ul>');
38
+ });
39
+ },
40
+ function customGetter(el, root) {
41
+ it(`should use custom getter for values ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
42
+ const data = {
43
+ title: 'Hello World',
44
+ ariaLabel: 'This is the label',
45
+ ariaDescription: 'This is the description'
46
+ };
47
+ root.innerHTML = `
48
+ <span #:bind="title"></span>
49
+
50
+ <ul>
51
+ <li #:bind="ariaLabel"></li>
52
+ <li #:bind="ariaDescription"></li>
53
+ </ul>
54
+ `;
55
+ const render = template({ value: (key) => data[key] }).bind(el);
56
+ render();
57
+ assert.equal(root.innerHTML
58
+ .split('\n')
59
+ .map((res) => res.trim())
60
+ .join(''), '<span #:bind="title">Hello World</span><ul><li #:bind="ariaLabel">This is the label</li><li #:bind="ariaDescription">This is the description</li></ul>');
61
+ });
62
+ },
63
+ function customPrefix(el, root) {
64
+ it(`should use custom getter for values ${root instanceof ShadowRoot ? '(ShadowDOM)' : '(LightDOM)'}`, () => {
65
+ el.title = 'Hello World';
66
+ el.ariaLabel = 'This is the label';
67
+ el.ariaDescription = 'This is the description';
68
+ root.innerHTML = `
69
+ <span x-bind="title"></span>
70
+
71
+ <ul x-aria-label="ariaLabel">
72
+ <li x-bind="ariaLabel"></li>
73
+ <li x-bind="ariaDescription"></li>
74
+ </ul>
75
+ `;
76
+ const render = template({ tokenPrefix: 'x-' }).bind(el);
77
+ render();
78
+ assert.equal(root.innerHTML
79
+ .split('\n')
80
+ .map((res) => res.trim())
81
+ .join(''), '<span x-bind="title">Hello World</span><ul x-aria-label="ariaLabel" aria-label="This is the label"><li x-bind="ariaLabel">This is the label</li><li x-bind="ariaDescription">This is the description</li></ul>');
82
+ });
83
+ }
84
+ ];
85
+ for (let test of TESTS) {
86
+ const lightEl = document.createElement('div');
87
+ test(lightEl, lightEl);
88
+ const shadowEl = document.createElement('div');
89
+ test(shadowEl, shadowEl.attachShadow({ mode: 'open' }));
90
+ }
91
+ //# sourceMappingURL=template.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.test.js","sourceRoot":"","sources":["../../src/lib/template.test.ts"],"names":[],"mappings":"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"}
package/target/lib.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export { ShadowResult as TemplateResult } from './lib/result.js';
2
1
  export { css, html, HTMLResult, CSSResult } from './lib/tags.js';
3
- export { shadow } from './lib/shadow.js';
4
2
  export { attr } from './lib/attr.js';
5
3
  export { listen } from './lib/listen.js';
6
4
  export { element } from './lib/element.js';
5
+ export { query } from './lib/query.js';
6
+ export { template, getTemplateValue } from './lib/template.js';
7
+ export { ready } from './lib/lifecycle.js';
package/target/lib.js CHANGED
@@ -1,7 +1,8 @@
1
- export { ShadowResult as TemplateResult } from './lib/result.js';
2
1
  export { css, html, HTMLResult, CSSResult } from './lib/tags.js';
3
- export { shadow } from './lib/shadow.js';
4
2
  export { attr } from './lib/attr.js';
5
3
  export { listen } from './lib/listen.js';
6
4
  export { element } from './lib/element.js';
5
+ export { query } from './lib/query.js';
6
+ export { template, getTemplateValue } from './lib/template.js';
7
+ export { ready } from './lib/lifecycle.js';
7
8
  //# sourceMappingURL=lib.js.map
package/target/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,40 +0,0 @@
1
- import { expect } from '@open-wc/testing';
2
-
3
- import { css, html } from './tags.js';
4
- import { shadow } from './shadow.js';
5
-
6
- describe('template', () => {
7
- it('should apply a stylesheet', () => {
8
- class MyElement extends HTMLElement {
9
- @shadow styles = css`
10
- :host {
11
- display: flex;
12
- }
13
- `;
14
- }
15
-
16
- customElements.define('template-1', MyElement);
17
-
18
- const el = new MyElement();
19
-
20
- expect(el.shadowRoot!.adoptedStyleSheets.length).to.eq(1);
21
- });
22
-
23
- it('should apply html', () => {
24
- class MyElement extends HTMLElement {
25
- @shadow styles = css`
26
- :host {
27
- display: flex;
28
- }
29
- `;
30
-
31
- @shadow template = html`<slot></slot>`;
32
- }
33
-
34
- customElements.define('template-2', MyElement);
35
-
36
- const el = new MyElement();
37
-
38
- expect(el.shadowRoot?.innerHTML).to.eq('<slot></slot>');
39
- });
40
- });
package/src/lib/shadow.ts DELETED
@@ -1,16 +0,0 @@
1
- import { ShadowResult } from './result.js';
2
-
3
- export function shadow<This extends HTMLElement, T extends ShadowResult>(
4
- _: undefined,
5
- _ctx: ClassFieldDecoratorContext<This, T>
6
- ) {
7
- return function (this: This, result: T) {
8
- if (!this.shadowRoot) {
9
- this.attachShadow({ mode: 'open' });
10
- }
11
-
12
- result.execute(this.shadowRoot!);
13
-
14
- return result;
15
- };
16
- }
@@ -1,28 +0,0 @@
1
- import { expect } from '@open-wc/testing';
2
- import { css, html, htmlTemplateCache, styleSheetCache } from './tags.js';
3
-
4
- describe('tags', () => {
5
- it('should ensure return the same CSSResult', () => {
6
- class Test {
7
- styles = css`Hello World`;
8
- }
9
-
10
- const a = new Test();
11
- const b = new Test();
12
-
13
- expect(a.styles.strings).to.equal(b.styles.strings);
14
- expect(styleSheetCache.get(a.styles.strings)).to.equal(styleSheetCache.get(b.styles.strings));
15
- });
16
-
17
- it('should cache the HTMLTemplateElement', () => {
18
- class Test {
19
- dom = html`Hello World`;
20
- }
21
-
22
- const a = new Test();
23
- const b = new Test();
24
-
25
- expect(a.dom.strings).to.equal(b.dom.strings);
26
- expect(htmlTemplateCache.get(a.dom.strings)).to.equal(htmlTemplateCache.get(b.dom.strings));
27
- });
28
- });
@@ -1,2 +0,0 @@
1
- import { ShadowResult } from './result.js';
2
- export declare function shadow<This extends HTMLElement, T extends ShadowResult>(_: undefined, _ctx: ClassFieldDecoratorContext<This, T>): (this: This, result: T) => T;
@@ -1,10 +0,0 @@
1
- export function shadow(_, _ctx) {
2
- return function (result) {
3
- if (!this.shadowRoot) {
4
- this.attachShadow({ mode: 'open' });
5
- }
6
- result.execute(this.shadowRoot);
7
- return result;
8
- };
9
- }
10
- //# sourceMappingURL=shadow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadow.js","sourceRoot":"","sources":["../../src/lib/shadow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CACpB,CAAY,EACZ,IAAyC;IAEzC,OAAO,UAAsB,MAAS;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,69 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { expect } from '@open-wc/testing';
3
- import { css, html } from './tags.js';
4
- import { shadow } from './shadow.js';
5
- describe('template', () => {
6
- it('should apply a stylesheet', () => {
7
- let MyElement = (() => {
8
- let _classSuper = HTMLElement;
9
- let _styles_decorators;
10
- let _styles_initializers = [];
11
- let _styles_extraInitializers = [];
12
- return class MyElement extends _classSuper {
13
- static {
14
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
15
- _styles_decorators = [shadow];
16
- __esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
17
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
18
- }
19
- styles = __runInitializers(this, _styles_initializers, css `
20
- :host {
21
- display: flex;
22
- }
23
- `);
24
- constructor() {
25
- super(...arguments);
26
- __runInitializers(this, _styles_extraInitializers);
27
- }
28
- };
29
- })();
30
- customElements.define('template-1', MyElement);
31
- const el = new MyElement();
32
- expect(el.shadowRoot.adoptedStyleSheets.length).to.eq(1);
33
- });
34
- it('should apply html', () => {
35
- let MyElement = (() => {
36
- let _classSuper = HTMLElement;
37
- let _styles_decorators;
38
- let _styles_initializers = [];
39
- let _styles_extraInitializers = [];
40
- let _template_decorators;
41
- let _template_initializers = [];
42
- let _template_extraInitializers = [];
43
- return class MyElement extends _classSuper {
44
- static {
45
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
46
- _styles_decorators = [shadow];
47
- _template_decorators = [shadow];
48
- __esDecorate(null, null, _styles_decorators, { kind: "field", name: "styles", static: false, private: false, access: { has: obj => "styles" in obj, get: obj => obj.styles, set: (obj, value) => { obj.styles = value; } }, metadata: _metadata }, _styles_initializers, _styles_extraInitializers);
49
- __esDecorate(null, null, _template_decorators, { kind: "field", name: "template", static: false, private: false, access: { has: obj => "template" in obj, get: obj => obj.template, set: (obj, value) => { obj.template = value; } }, metadata: _metadata }, _template_initializers, _template_extraInitializers);
50
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
51
- }
52
- styles = __runInitializers(this, _styles_initializers, css `
53
- :host {
54
- display: flex;
55
- }
56
- `);
57
- template = (__runInitializers(this, _styles_extraInitializers), __runInitializers(this, _template_initializers, html `<slot></slot>`));
58
- constructor() {
59
- super(...arguments);
60
- __runInitializers(this, _template_extraInitializers);
61
- }
62
- };
63
- })();
64
- customElements.define('template-2', MyElement);
65
- const el = new MyElement();
66
- expect(el.shadowRoot?.innerHTML).to.eq('<slot></slot>');
67
- });
68
- });
69
- //# sourceMappingURL=shadow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadow.test.js","sourceRoot":"","sources":["../../src/lib/shadow.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;YAC7B,SAAS;8BAAS,WAAW;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;oBAAC,oKAAA,MAAM,6BAAN,MAAM,uFAIZ;;;gBAJM,MAAM,iDAAG,GAAG,CAAA;;;;OAInB,EAAC;;;;;;;QAGJ,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YACrB,SAAS;8BAAS,WAAW;;;;;;;yBAA7B,SAAU,SAAQ,WAAW;;;0CAChC,MAAM;4CAMN,MAAM;oBANC,oKAAA,MAAM,6BAAN,MAAM,uFAIZ;oBAEM,0KAAA,QAAQ,6BAAR,QAAQ,2FAAuB;;;gBAN/B,MAAM,iDAAG,GAAG,CAAA;;;;OAInB,EAAC;gBAEM,QAAQ,wGAAG,IAAI,CAAA,eAAe,GAAC;;;;;;;QAGzC,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAE3B,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,23 +0,0 @@
1
- import { expect } from '@open-wc/testing';
2
- import { css, html, htmlTemplateCache, styleSheetCache } from './tags.js';
3
- describe('tags', () => {
4
- it('should ensure return the same CSSResult', () => {
5
- class Test {
6
- styles = css `Hello World`;
7
- }
8
- const a = new Test();
9
- const b = new Test();
10
- expect(a.styles.strings).to.equal(b.styles.strings);
11
- expect(styleSheetCache.get(a.styles.strings)).to.equal(styleSheetCache.get(b.styles.strings));
12
- });
13
- it('should cache the HTMLTemplateElement', () => {
14
- class Test {
15
- dom = html `Hello World`;
16
- }
17
- const a = new Test();
18
- const b = new Test();
19
- expect(a.dom.strings).to.equal(b.dom.strings);
20
- expect(htmlTemplateCache.get(a.dom.strings)).to.equal(htmlTemplateCache.get(b.dom.strings));
21
- });
22
- });
23
- //# sourceMappingURL=tags.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tags.test.js","sourceRoot":"","sources":["../../src/lib/tags.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE1E,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI;YACR,MAAM,GAAG,GAAG,CAAA,aAAa,CAAC;SAC3B;QAED,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QAErB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI;YACR,GAAG,GAAG,IAAI,CAAA,aAAa,CAAC;SACzB;QAED,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;QAErB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
File without changes