@furystack/shades 7.2.6 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/esm/components/index.js +4 -0
  2. package/esm/components/index.js.map +1 -0
  3. package/{dist → esm}/components/lazy-load.js +2 -5
  4. package/esm/components/lazy-load.js.map +1 -0
  5. package/{dist → esm}/components/route-link.js +7 -10
  6. package/esm/components/route-link.js.map +1 -0
  7. package/{dist → esm}/components/router.js +13 -19
  8. package/esm/components/router.js.map +1 -0
  9. package/esm/index.js +8 -0
  10. package/esm/index.js.map +1 -0
  11. package/esm/initialize.js +5 -0
  12. package/esm/initialize.js.map +1 -0
  13. package/esm/jsx.js +2 -0
  14. package/esm/models/children-list.js +2 -0
  15. package/esm/models/index.js +6 -0
  16. package/esm/models/index.js.map +1 -0
  17. package/esm/models/partial-element.js +2 -0
  18. package/esm/models/render-options.js +2 -0
  19. package/esm/models/selection-state.js +2 -0
  20. package/esm/models/shade-component.js +9 -0
  21. package/esm/models/shade-component.js.map +1 -0
  22. package/esm/services/index.js +3 -0
  23. package/esm/services/index.js.map +1 -0
  24. package/{dist → esm}/services/location-service.js +14 -17
  25. package/esm/services/location-service.js.map +1 -0
  26. package/{dist → esm}/services/resource-manager.js +3 -7
  27. package/esm/services/resource-manager.js.map +1 -0
  28. package/{dist → esm}/services/screen-service.js +12 -15
  29. package/esm/services/screen-service.js.map +1 -0
  30. package/{dist → esm}/shade-component.js +20 -33
  31. package/esm/shade-component.js.map +1 -0
  32. package/{dist → esm}/shade.js +10 -15
  33. package/esm/shade.js.map +1 -0
  34. package/package.json +26 -9
  35. package/src/component-factory.spec.tsx +2 -1
  36. package/src/components/lazy-load.spec.tsx +9 -4
  37. package/src/components/route-link.spec.tsx +8 -3
  38. package/src/components/router.spec.tsx +11 -6
  39. package/src/components/router.tsx +2 -2
  40. package/src/models/render-options.ts +0 -4
  41. package/src/models/shade-component.ts +0 -1
  42. package/src/services/location-service.spec.ts +8 -3
  43. package/src/services/resource-manager.spec.ts +1 -0
  44. package/src/services/screen-service.spec.ts +7 -2
  45. package/src/shade-component.ts +0 -2
  46. package/src/shade-resources.integration.spec.tsx +8 -3
  47. package/src/shade.ts +0 -1
  48. package/src/shades.integration.spec.tsx +11 -6
  49. package/types/models/render-options.d.ts +0 -4
  50. package/types/models/render-options.d.ts.map +1 -1
  51. package/types/models/shade-component.d.ts +0 -1
  52. package/types/models/shade-component.d.ts.map +1 -1
  53. package/types/shade-component.d.ts +0 -2
  54. package/types/shade-component.d.ts.map +1 -1
  55. package/types/shade.d.ts +0 -1
  56. package/types/shade.d.ts.map +1 -1
  57. package/dist/component-factory.spec.js +0 -81
  58. package/dist/component-factory.spec.js.map +0 -1
  59. package/dist/components/index.js +0 -20
  60. package/dist/components/index.js.map +0 -1
  61. package/dist/components/lazy-load.js.map +0 -1
  62. package/dist/components/lazy-load.spec.js +0 -72
  63. package/dist/components/lazy-load.spec.js.map +0 -1
  64. package/dist/components/route-link.js.map +0 -1
  65. package/dist/components/route-link.spec.js +0 -28
  66. package/dist/components/route-link.spec.js.map +0 -1
  67. package/dist/components/router.js.map +0 -1
  68. package/dist/components/router.spec.js +0 -84
  69. package/dist/components/router.spec.js.map +0 -1
  70. package/dist/index.js +0 -24
  71. package/dist/index.js.map +0 -1
  72. package/dist/initialize.js +0 -9
  73. package/dist/initialize.js.map +0 -1
  74. package/dist/jsx.js +0 -3
  75. package/dist/models/children-list.js +0 -3
  76. package/dist/models/index.js +0 -22
  77. package/dist/models/index.js.map +0 -1
  78. package/dist/models/partial-element.js +0 -3
  79. package/dist/models/render-options.js +0 -3
  80. package/dist/models/selection-state.js +0 -3
  81. package/dist/models/shade-component.js +0 -14
  82. package/dist/models/shade-component.js.map +0 -1
  83. package/dist/services/index.js +0 -19
  84. package/dist/services/index.js.map +0 -1
  85. package/dist/services/location-service.js.map +0 -1
  86. package/dist/services/location-service.spec.js +0 -86
  87. package/dist/services/location-service.spec.js.map +0 -1
  88. package/dist/services/resource-manager.js.map +0 -1
  89. package/dist/services/resource-manager.spec.js +0 -32
  90. package/dist/services/resource-manager.spec.js.map +0 -1
  91. package/dist/services/screen-service.js.map +0 -1
  92. package/dist/services/screen-service.spec.js +0 -25
  93. package/dist/services/screen-service.spec.js.map +0 -1
  94. package/dist/shade-component.js.map +0 -1
  95. package/dist/shade-resources.integration.spec.js +0 -55
  96. package/dist/shade-resources.integration.spec.js.map +0 -1
  97. package/dist/shade.js.map +0 -1
  98. package/dist/shades.integration.spec.js +0 -251
  99. package/dist/shades.integration.spec.js.map +0 -1
  100. package/types/component-factory.spec.d.ts +0 -2
  101. package/types/component-factory.spec.d.ts.map +0 -1
  102. package/types/components/lazy-load.spec.d.ts +0 -2
  103. package/types/components/lazy-load.spec.d.ts.map +0 -1
  104. package/types/components/route-link.spec.d.ts +0 -2
  105. package/types/components/route-link.spec.d.ts.map +0 -1
  106. package/types/components/router.spec.d.ts +0 -2
  107. package/types/components/router.spec.d.ts.map +0 -1
  108. package/types/services/location-service.spec.d.ts +0 -2
  109. package/types/services/location-service.spec.d.ts.map +0 -1
  110. package/types/services/resource-manager.spec.d.ts +0 -2
  111. package/types/services/resource-manager.spec.d.ts.map +0 -1
  112. package/types/services/screen-service.spec.d.ts +0 -2
  113. package/types/services/screen-service.spec.d.ts.map +0 -1
  114. package/types/shade-resources.integration.spec.d.ts +0 -2
  115. package/types/shade-resources.integration.spec.d.ts.map +0 -1
  116. package/types/shades.integration.spec.d.ts +0 -2
  117. package/types/shades.integration.spec.d.ts.map +0 -1
  118. /package/{dist → esm}/jsx.js.map +0 -0
  119. /package/{dist → esm}/models/children-list.js.map +0 -0
  120. /package/{dist → esm}/models/partial-element.js.map +0 -0
  121. /package/{dist → esm}/models/render-options.js.map +0 -0
  122. /package/{dist → esm}/models/selection-state.js.map +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shade.js","sourceRoot":"","sources":["../src/shade.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,27 @@
1
1
  {
2
2
  "name": "@furystack/shades",
3
- "version": "7.2.6",
3
+ "version": "8.0.1",
4
4
  "description": "Google Authentication Provider for FuryStack",
5
- "main": "dist/index.js",
5
+ "type": "module",
6
+ "scripts": {
7
+ "build:es6": "tsc --outDir ./esm"
8
+ },
9
+ "exports": {
10
+ ".": {
11
+ "import": "./esm/index.js",
12
+ "types": "./types/index.d.ts"
13
+ },
14
+ "./package.json": "./package.json"
15
+ },
16
+ "typesVersions": {
17
+ "*": {
18
+ "*": [
19
+ "types/*"
20
+ ]
21
+ }
22
+ },
6
23
  "files": [
7
- "dist",
24
+ "esm",
8
25
  "types",
9
26
  "src"
10
27
  ],
@@ -29,18 +46,18 @@
29
46
  },
30
47
  "homepage": "https://github.com/furystack/furystack",
31
48
  "devDependencies": {
32
- "@types/jest": "^29.5.0",
33
49
  "@types/jsdom": "^21.1.1",
34
50
  "@types/node": "^18.15.11",
35
- "jsdom": "^21.1.1"
51
+ "jsdom": "^21.1.1",
52
+ "typescript": "^5.0.4",
53
+ "vitest": "^0.30.1"
36
54
  },
37
55
  "dependencies": {
38
- "@furystack/inject": "^7.1.9",
39
- "@furystack/rest": "^4.2.1",
40
- "@furystack/utils": "^3.1.8",
56
+ "@furystack/inject": "^8.0.1",
57
+ "@furystack/rest": "^5.0.1",
58
+ "@furystack/utils": "^4.0.1",
41
59
  "path-to-regexp": "^6.2.1",
42
60
  "semaphore-async-await": "^1.5.1"
43
61
  },
44
- "typings": "./types/index.d.ts",
45
62
  "gitHead": "76e1d17a71b981984935c9a7a5791cf61ebf5213"
46
63
  }
@@ -2,6 +2,7 @@ import { createComponent } from './shade-component'
2
2
  import './jsx'
3
3
  import { Shade } from './shade'
4
4
  import { Injector } from '@furystack/inject'
5
+ import { describe, it, expect, vi } from 'vitest'
5
6
 
6
7
  describe('Shades Component Factory', () => {
7
8
  describe('HTML Elements', () => {
@@ -42,7 +43,7 @@ describe('Shades Component Factory', () => {
42
43
  })
43
44
 
44
45
  it('Should attach listeners', () => {
45
- const onclick = jest.fn()
46
+ const onclick = vi.fn()
46
47
  const component = <div onclick={onclick}></div>
47
48
  expect(component.onclick).toBe(onclick)
48
49
  })
@@ -7,10 +7,15 @@ import { Injector } from '@furystack/inject'
7
7
  import { sleepAsync } from '@furystack/utils'
8
8
  import { LazyLoad } from './lazy-load'
9
9
  import { createComponent, initializeShadeRoot } from '..'
10
+ import { describe, it, expect, vi, afterEach, beforeEach } from 'vitest'
10
11
 
11
12
  describe('Lazy Load', () => {
12
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
13
- afterEach(() => (document.body.innerHTML = ''))
13
+ beforeEach(() => {
14
+ document.body.innerHTML = '<div id="root"></div>'
15
+ })
16
+ afterEach(() => {
17
+ document.body.innerHTML = ''
18
+ })
14
19
 
15
20
  it('Shuld display the loader and completed state', async () => {
16
21
  const injector = new Injector()
@@ -38,7 +43,7 @@ describe('Lazy Load', () => {
38
43
  const injector = new Injector()
39
44
  const rootElement = document.getElementById('root') as HTMLDivElement
40
45
 
41
- const load = jest.fn(async () => {
46
+ const load = vi.fn(async () => {
42
47
  throw Error(':(')
43
48
  })
44
49
 
@@ -70,7 +75,7 @@ describe('Lazy Load', () => {
70
75
  const rootElement = document.getElementById('root') as HTMLDivElement
71
76
  let counter = 0
72
77
 
73
- const load = jest.fn(async () => {
78
+ const load = vi.fn(async () => {
74
79
  if (!counter) {
75
80
  counter += 1
76
81
  throw Error(':(')
@@ -6,16 +6,21 @@ global.TextDecoder = TextDecoder as any
6
6
  import { Injector } from '@furystack/inject'
7
7
  import { RouteLink } from './route-link'
8
8
  import { createComponent, initializeShadeRoot, LocationService } from '..'
9
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
9
10
 
10
11
  describe('RouteLink', () => {
11
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
12
- afterEach(() => (document.body.innerHTML = ''))
12
+ beforeEach(() => {
13
+ document.body.innerHTML = '<div id="root"></div>'
14
+ })
15
+ afterEach(() => {
16
+ document.body.innerHTML = ''
17
+ })
13
18
 
14
19
  it('Shuld display the loader and completed state', async () => {
15
20
  const injector = new Injector()
16
21
  const rootElement = document.getElementById('root') as HTMLDivElement
17
22
 
18
- const onRouteChange = jest.fn()
23
+ const onRouteChange = vi.fn()
19
24
 
20
25
  injector.getInstance(LocationService).onLocationPathChanged.subscribe(onRouteChange)
21
26
 
@@ -8,22 +8,27 @@ import { Router } from './router'
8
8
  import { createComponent, initializeShadeRoot, LocationService } from '..'
9
9
  import { RouteLink } from '.'
10
10
  import { sleepAsync } from '@furystack/utils'
11
+ import { describe, it, expect, vi, afterEach, beforeEach } from 'vitest'
11
12
 
12
13
  describe('Router', () => {
13
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
14
- afterEach(() => (document.body.innerHTML = ''))
14
+ beforeEach(() => {
15
+ document.body.innerHTML = '<div id="root"></div>'
16
+ })
17
+ afterEach(() => {
18
+ document.body.innerHTML = ''
19
+ })
15
20
 
16
21
  it('Shuld display the loader and completed state', async () => {
17
22
  history.pushState(null, '', '/')
18
23
 
19
- const onVisit = jest.fn()
20
- const onLeave = jest.fn()
21
- const onLastLeave = jest.fn()
24
+ const onVisit = vi.fn()
25
+ const onLeave = vi.fn()
26
+ const onLastLeave = vi.fn()
22
27
 
23
28
  const injector = new Injector()
24
29
  const rootElement = document.getElementById('root') as HTMLDivElement
25
30
 
26
- const onRouteChange = jest.fn()
31
+ const onRouteChange = vi.fn()
27
32
 
28
33
  injector.getInstance(LocationService).onLocationPathChanged.subscribe(onRouteChange)
29
34
 
@@ -4,7 +4,7 @@ import { LocationService } from '../services'
4
4
  import type { MatchResult, TokensToRegexpOptions } from 'path-to-regexp'
5
5
  import { match } from 'path-to-regexp'
6
6
  import type { RenderOptions } from '../models'
7
- import Semaphore from 'semaphore-async-await'
7
+ import { Lock } from 'semaphore-async-await'
8
8
  import { ObservableAlreadyDisposedError } from '@furystack/utils'
9
9
 
10
10
  export interface Route<TMatchResult extends object> {
@@ -30,7 +30,7 @@ export const Router = Shade<RouterProps>({
30
30
  shadowDomName: 'shade-router',
31
31
  render: (options) => {
32
32
  const { useState, useObservable, injector } = options
33
- const [lock] = useState('lock', new Semaphore(1))
33
+ const [lock] = useState('lock', new Lock())
34
34
  const [state, setState] = useState<RouterState>('routerState', {
35
35
  jsx: <div />,
36
36
  })
@@ -10,7 +10,6 @@ export type RenderOptions<TProps> = {
10
10
  element: JSX.Element<TProps>
11
11
  /**
12
12
  * Creates and disposes a resource after the component has been detached from the DOM
13
- *
14
13
  * @param key The key for caching the disposable resource
15
14
  * @param factory A factory method for creating the disposable resource
16
15
  * @returns The Disposable instance
@@ -34,7 +33,6 @@ export type RenderOptions<TProps> = {
34
33
 
35
34
  /**
36
35
  * Creates a state object that will trigger a component re-render on change
37
- *
38
36
  * @param key The Key for caching the observable value
39
37
  * @param initialValue The initial value for the observable
40
38
  * @returns tuple with the current value and a setter function
@@ -43,7 +41,6 @@ export type RenderOptions<TProps> = {
43
41
 
44
42
  /**
45
43
  * Creates a state object that will use a value from the search string of the current location. Triggers a component re-render on change
46
- *
47
44
  * @param key The Key for caching the observable value
48
45
  * @param initialValue The initial value - if the value is not found in the search string
49
46
  * @returns a tuple with the current value and a setter function
@@ -52,7 +49,6 @@ export type RenderOptions<TProps> = {
52
49
 
53
50
  /**
54
51
  * Creates a state object that will use a value from the storage area. Triggers a component re-render on change
55
- *
56
52
  * @param key The key in the storage area
57
53
  * @param initialValue The initial value that will be used if the key is not found in the storage area
58
54
  * @param storageArea The storage area to use
@@ -7,7 +7,6 @@ export type ShadeComponent<TProps = {}> = (arg: TProps, children?: ChildrenList)
7
7
 
8
8
  /**
9
9
  * Type guard that checks if an object is a stateless component
10
- *
11
10
  * @param obj The object to check
12
11
  * @returns a value that indicates if the object is a Shade component
13
12
  */
@@ -6,10 +6,15 @@ global.TextDecoder = TextDecoder as any
6
6
  import { Injector } from '@furystack/inject'
7
7
  import { using } from '@furystack/utils'
8
8
  import { LocationService } from './'
9
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'
9
10
 
10
11
  describe('LocationService', () => {
11
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
12
- afterEach(() => (document.body.innerHTML = ''))
12
+ beforeEach(() => {
13
+ document.body.innerHTML = '<div id="root"></div>'
14
+ })
15
+ afterEach(() => {
16
+ document.body.innerHTML = ''
17
+ })
13
18
 
14
19
  it('Shuld be constructed', () => {
15
20
  using(new Injector(), (i) => {
@@ -20,7 +25,7 @@ describe('LocationService', () => {
20
25
 
21
26
  it('Shuld update state on events', () => {
22
27
  using(new Injector(), (i) => {
23
- const onLocaionChanged = jest.fn()
28
+ const onLocaionChanged = vi.fn()
24
29
  const s = i.getInstance(LocationService)
25
30
  s.onLocationPathChanged.subscribe(onLocaionChanged)
26
31
  expect(onLocaionChanged).toBeCalledTimes(0)
@@ -1,5 +1,6 @@
1
1
  import { ObservableValue, using } from '@furystack/utils'
2
2
  import { ResourceManager } from './resource-manager'
3
+ import { describe, it, expect } from 'vitest'
3
4
  describe('ResourceManager', () => {
4
5
  it('Should return an observable from cache', () => {
5
6
  using(new ResourceManager(), (rm) => {
@@ -6,10 +6,15 @@ global.TextDecoder = TextDecoder as any
6
6
  import { Injector } from '@furystack/inject'
7
7
  import { usingAsync } from '@furystack/utils'
8
8
  import { ScreenService } from './screen-service'
9
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest'
9
10
 
10
11
  describe('ScreenService', () => {
11
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
12
- afterEach(() => (document.body.innerHTML = ''))
12
+ beforeEach(() => {
13
+ document.body.innerHTML = '<div id="root"></div>'
14
+ })
15
+ afterEach(() => {
16
+ document.body.innerHTML = ''
17
+ })
13
18
 
14
19
  it('Shuld be constructed', async () => {
15
20
  await usingAsync(new Injector(), async (i) => {
@@ -3,7 +3,6 @@ import { isShadeComponent } from './models'
3
3
 
4
4
  /**
5
5
  * Appends a list of items to a HTML element
6
- *
7
6
  * @param el the root element
8
7
  * @param children array of items to append
9
8
  */
@@ -68,7 +67,6 @@ type CreateComponentArgs<TProps> = [
68
67
  // eslint-disable-next-line jsdoc/require-param
69
68
  /**
70
69
  * Factory method that creates a component. This should be configured as a default JSX Factory in tsconfig.
71
- *
72
70
  * @returns the created JSX element
73
71
  */
74
72
  export const createComponentInner = <TProps>(...[elementType, props, ...children]: CreateComponentArgs<TProps>) => {
@@ -9,16 +9,21 @@ import { initializeShadeRoot } from './initialize'
9
9
  import { Shade } from './shade'
10
10
  import { createComponent } from './shade-component'
11
11
  import { ObservableValue } from '@furystack/utils'
12
+ import { describe, it, expect, afterEach, beforeEach, vi } from 'vitest'
12
13
 
13
14
  describe('Shade Resources integration tests', () => {
14
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
15
- afterEach(() => (document.body.innerHTML = ''))
15
+ beforeEach(() => {
16
+ document.body.innerHTML = '<div id="root"></div>'
17
+ })
18
+ afterEach(() => {
19
+ document.body.innerHTML = ''
20
+ })
16
21
 
17
22
  it('Should update the component based on a custom observable value change', () => {
18
23
  const injector = new Injector()
19
24
  const rootElement = document.getElementById('root') as HTMLDivElement
20
25
 
21
- const renderCounter = jest.fn()
26
+ const renderCounter = vi.fn()
22
27
 
23
28
  const obs1 = new ObservableValue(0)
24
29
  const obs2 = new ObservableValue('a')
package/src/shade.ts CHANGED
@@ -52,7 +52,6 @@ export type ShadeOptions<TProps> = {
52
52
 
53
53
  /**
54
54
  * Factory method for creating Shade components
55
- *
56
55
  * @param o for component creation
57
56
  * @returns the JSX element
58
57
  */
@@ -9,10 +9,15 @@ global.TextDecoder = TextDecoder as any
9
9
  import { initializeShadeRoot } from './initialize'
10
10
  import { Shade } from './shade'
11
11
  import { createComponent } from './shade-component'
12
+ import { describe, it, expect, vi, afterEach, beforeEach } from 'vitest'
12
13
 
13
14
  describe('Shades integration tests', () => {
14
- beforeEach(() => (document.body.innerHTML = '<div id="root"></div>'))
15
- afterEach(() => (document.body.innerHTML = ''))
15
+ beforeEach(() => {
16
+ document.body.innerHTML = '<div id="root"></div>'
17
+ })
18
+ afterEach(() => {
19
+ document.body.innerHTML = ''
20
+ })
16
21
 
17
22
  it('Should mount a custom component to a Shade root', () => {
18
23
  const injector = new Injector()
@@ -177,8 +182,8 @@ describe('Shades integration tests', () => {
177
182
  it("Should execute the constructed and constructed's cleanup callback", async () => {
178
183
  await usingAsync(new Injector(), async (injector) => {
179
184
  const rootElement = document.getElementById('root') as HTMLDivElement
180
- const cleanup = jest.fn()
181
- const constructed = jest.fn(() => cleanup)
185
+ const cleanup = vi.fn()
186
+ const constructed = vi.fn(() => cleanup)
182
187
 
183
188
  const ExampleComponent = Shade({
184
189
  constructed,
@@ -201,8 +206,8 @@ describe('Shades integration tests', () => {
201
206
  it('Should execute the onAttach and onDetach callbacks', async () => {
202
207
  await usingAsync(new Injector(), async (injector) => {
203
208
  const rootElement = document.getElementById('root') as HTMLDivElement
204
- const onAttach = jest.fn()
205
- const onDetach = jest.fn()
209
+ const onAttach = vi.fn()
210
+ const onDetach = vi.fn()
206
211
 
207
212
  const ExampleComponent = Shade({
208
213
  onAttach,
@@ -8,7 +8,6 @@ export type RenderOptions<TProps> = {
8
8
  element: JSX.Element<TProps>;
9
9
  /**
10
10
  * Creates and disposes a resource after the component has been detached from the DOM
11
- *
12
11
  * @param key The key for caching the disposable resource
13
12
  * @param factory A factory method for creating the disposable resource
14
13
  * @returns The Disposable instance
@@ -25,7 +24,6 @@ export type RenderOptions<TProps> = {
25
24
  useObservable: <T>(key: string, observable: ObservableValue<T>, onChange?: (newValue: T) => void, getLast?: boolean) => [value: T, setValue: (newValue: T) => void];
26
25
  /**
27
26
  * Creates a state object that will trigger a component re-render on change
28
- *
29
27
  * @param key The Key for caching the observable value
30
28
  * @param initialValue The initial value for the observable
31
29
  * @returns tuple with the current value and a setter function
@@ -33,7 +31,6 @@ export type RenderOptions<TProps> = {
33
31
  useState: <T>(key: string, initialValue: T) => [value: T, setValue: (newValue: T) => void];
34
32
  /**
35
33
  * Creates a state object that will use a value from the search string of the current location. Triggers a component re-render on change
36
- *
37
34
  * @param key The Key for caching the observable value
38
35
  * @param initialValue The initial value - if the value is not found in the search string
39
36
  * @returns a tuple with the current value and a setter function
@@ -41,7 +38,6 @@ export type RenderOptions<TProps> = {
41
38
  useSearchState: <T>(key: string, initialValue: T) => [value: T, setValue: (newValue: T) => void];
42
39
  /**
43
40
  * Creates a state object that will use a value from the storage area. Triggers a component re-render on change
44
- *
45
41
  * @param key The key in the storage area
46
42
  * @param initialValue The initial value that will be used if the key is not found in the storage area
47
43
  * @param storageArea The storage area to use
@@ -1 +1 @@
1
- {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/models/render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEnE,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAEzE;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,OAAO,KACd,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhD;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAE1F;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhG;;;;;;;OAOG;IACH,cAAc,EAAE,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;CACjD,CAAA"}
1
+ {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/models/render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAEnE,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAEzE;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,EAChC,OAAO,CAAC,EAAE,OAAO,KACd,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAE1F;;;;;OAKG;IACH,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhG;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;CACjD,CAAA"}
@@ -5,7 +5,6 @@ import type { ChildrenList } from './children-list';
5
5
  export type ShadeComponent<TProps = {}> = (arg: TProps, children?: ChildrenList) => JSX.Element;
6
6
  /**
7
7
  * Type guard that checks if an object is a stateless component
8
- *
9
8
  * @param obj The object to check
10
9
  * @returns a value that indicates if the object is a Shade component
11
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAAO,CAAA;AAE/F;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAS,GAAG,+BAExC,CAAA"}
1
+ {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAAO,CAAA;AAE/F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,QAAS,GAAG,+BAExC,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import type { ChildrenList, ShadeComponent } from './models';
2
2
  /**
3
3
  * Appends a list of items to a HTML element
4
- *
5
4
  * @param el the root element
6
5
  * @param children array of items to append
7
6
  */
@@ -28,7 +27,6 @@ type CreateComponentArgs<TProps> = [
28
27
  ];
29
28
  /**
30
29
  * Factory method that creates a component. This should be configured as a default JSX Factory in tsconfig.
31
- *
32
30
  * @returns the created JSX element
33
31
  */
34
32
  export declare const createComponentInner: <TProps>(elementType: string | ShadeComponent<TProps>, props: TProps, ...children: (string | HTMLElement | JSX.Element<any> | string[] | HTMLElement[] | JSX.Element<any>[])[]) => HTMLElement | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG5D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,OAAQ,WAAW,GAAG,gBAAgB,iCAY7D,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,GAAG;WAAqB,QAAQ,mBAAmB,CAAC;CAEnF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,OAAQ,WAAW,SAAS,GAAG,SAOvD,CAAA;AAED,eAAO,MAAM,oBAAoB,OAAQ,WAAW,SAAS,GAAG,SAK/D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,OAAQ,WAAW,SAAS,GAAG,SAOtD,CAAA;AAED,KAAK,mBAAmB,CAAC,MAAM,IAAI;IACjC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,MAAM;IACb,GAAG,QAAQ,EAAE,YAAY;CAC1B,CAAA;AAGD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,4MAgBhC,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAA;AAElE,eAAO,MAAM,mBAAmB,6IAI/B,CAAA;AAED,eAAO,MAAM,eAAe,oWAK3B,CAAA"}
1
+ {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG5D;;;;GAIG;AACH,eAAO,MAAM,WAAW,OAAQ,WAAW,GAAG,gBAAgB,iCAY7D,CAAA;AAED,eAAO,MAAM,QAAQ,UAAW,GAAG;WAAqB,QAAQ,mBAAmB,CAAC;CAEnF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,OAAQ,WAAW,SAAS,GAAG,SAOvD,CAAA;AAED,eAAO,MAAM,oBAAoB,OAAQ,WAAW,SAAS,GAAG,SAK/D,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,OAAQ,WAAW,SAAS,GAAG,SAOtD,CAAA;AAED,KAAK,mBAAmB,CAAC,MAAM,IAAI;IACjC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,MAAM;IACb,GAAG,QAAQ,EAAE,YAAY;CAC1B,CAAA;AAGD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,4MAgBhC,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAA;AAElE,eAAO,MAAM,mBAAmB,6IAI/B,CAAA;AAED,eAAO,MAAM,eAAe,oWAK3B,CAAA"}
package/types/shade.d.ts CHANGED
@@ -37,7 +37,6 @@ export type ShadeOptions<TProps> = {
37
37
  };
38
38
  /**
39
39
  * Factory method for creating Shade components
40
- *
41
40
  * @param o for component creation
42
41
  * @returns the JSX element
43
42
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shade.d.ts","sourceRoot":"","sources":["../src/shade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAI3D,MAAM,MAAM,YAAY,CAAC,MAAM,IAAI;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;IAEvE;;OAEG;IACH,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAC3B,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IAE/E;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAEnD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAA;IAE5D;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CACzC,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,kGA8NjB,CAAA"}
1
+ {"version":3,"file":"shade.d.ts","sourceRoot":"","sources":["../src/shade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAI3D,MAAM,MAAM,YAAY,CAAC,MAAM,IAAI;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAA;IAEvE;;OAEG;IACH,WAAW,CAAC,EAAE,CACZ,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAC3B,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IAE/E;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAEnD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAEnD;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAA;IAE5D;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;CACzC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,KAAK,kGA8NjB,CAAA"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const shade_component_1 = require("./shade-component");
4
- require("./jsx");
5
- const shade_1 = require("./shade");
6
- const inject_1 = require("@furystack/inject");
7
- describe('Shades Component Factory', () => {
8
- describe('HTML Elements', () => {
9
- it('Should create a simple component', () => {
10
- const component = (0, shade_component_1.createComponent)("div", null, "test");
11
- expect(component).toBeInstanceOf(HTMLDivElement);
12
- expect(component.innerHTML).toBe('test');
13
- expect(component.outerHTML).toBe('<div>test</div>');
14
- });
15
- it('Should apply styles', () => {
16
- const component = (0, shade_component_1.createComponent)("div", { style: { color: 'red' } }, "a");
17
- expect(component).toBeInstanceOf(HTMLDivElement);
18
- expect(component.style.color).toBe('red');
19
- });
20
- it('Should apply data attributes', () => {
21
- const component = (0, shade_component_1.createComponent)("div", { "data-testid": "asd-123" }, "a");
22
- expect(component).toBeInstanceOf(HTMLDivElement);
23
- expect(component.getAttribute('data-testid')).toBe('asd-123');
24
- });
25
- it('Should create a nested component', () => {
26
- const component = ((0, shade_component_1.createComponent)("div", { style: { display: 'flex' } },
27
- (0, shade_component_1.createComponent)("h1", null, "Hi, I'm a header"),
28
- (0, shade_component_1.createComponent)("p", null,
29
- "paragraph... ",
30
- ['a', 'b', 'c']),
31
- (0, shade_component_1.createComponent)("a", { target: "_blank", href: "https://google.com" }, "link")));
32
- expect(component).toBeInstanceOf(HTMLDivElement);
33
- expect(component.childElementCount).toBe(3);
34
- expect(component.innerHTML).toBe(`<h1>Hi, I'm a header</h1><p>paragraph... abc</p><a target="_blank" href="https://google.com">link</a>`);
35
- });
36
- it('Should attach listeners', () => {
37
- const onclick = jest.fn();
38
- const component = (0, shade_component_1.createComponent)("div", { onclick: onclick });
39
- expect(component.onclick).toBe(onclick);
40
- });
41
- });
42
- describe('Shade components', () => {
43
- it('Should render a basic component', () => {
44
- const Example = (0, shade_1.Shade)({ shadowDomName: 'example-basic', render: () => (0, shade_component_1.createComponent)("div", null) });
45
- const component = ((0, shade_component_1.createComponent)("div", null,
46
- (0, shade_component_1.createComponent)(Example, null)));
47
- const shade = component.firstElementChild;
48
- expect(shade.props).toEqual({});
49
- expect(shade.shadeChildren).toEqual([]);
50
- });
51
- it('Should render a component with props', () => {
52
- const Example = (0, shade_1.Shade)({
53
- shadowDomName: 'example-with-props',
54
- render: ({ props }) => (0, shade_component_1.createComponent)("div", null, props.foo),
55
- });
56
- const component = ((0, shade_component_1.createComponent)("div", null,
57
- (0, shade_component_1.createComponent)(Example, { foo: "example", injector: new inject_1.Injector() })));
58
- const shade = component.firstElementChild;
59
- shade.callConstructed();
60
- expect(shade.props.foo).toEqual('example');
61
- expect(shade.shadeChildren).toEqual([]);
62
- expect(shade.innerHTML).toBe('<div>example</div>');
63
- });
64
- it('Should render a component with state', () => {
65
- const Example = (0, shade_1.Shade)({
66
- shadowDomName: 'example-with-state',
67
- render: ({ useState }) => {
68
- useState('foo', 'example');
69
- return (0, shade_component_1.createComponent)("div", null);
70
- },
71
- });
72
- const component = ((0, shade_component_1.createComponent)("div", null,
73
- (0, shade_component_1.createComponent)(Example, { injector: new inject_1.Injector() })));
74
- const shade = component.firstElementChild;
75
- shade.callConstructed();
76
- expect(shade.resourceManager.stateObservers.get('foo')?.getValue()).toEqual('example');
77
- expect(shade.shadeChildren).toEqual([]);
78
- });
79
- });
80
- });
81
- //# sourceMappingURL=component-factory.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component-factory.spec.js","sourceRoot":"","sources":["../src/component-factory.spec.tsx"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./lazy-load"), exports);
18
- __exportStar(require("./router"), exports);
19
- __exportStar(require("./route-link"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA2B;AAC3B,2CAAwB;AACxB,+CAA4B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy-load.js","sourceRoot":"","sources":["../../src/components/lazy-load.tsx"],"names":[],"mappings":";;;AAAA,oCAAgC;AAanB,QAAA,QAAQ,GAAG,IAAA,aAAK,EAAgB;IAC3C,aAAa,EAAE,WAAW;IAC1B,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAClD,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,WAAW,EAAE,SAAS,CAAC,CAAA;QAC5F,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAsB,OAAO,EAAE,SAAS,CAAC,CAAA;QACtF,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAA;YACtC,OAAO,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;SAC5C;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,KAAK,EAAE;gBACf,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;aAC5C;iBAAM;gBACL,MAAM,KAAK,CAAA;aACZ;SACF;IACH,CAAC;IACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAsB,OAAO,EAAE,SAAS,CAAC,CAAA;QAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA0B,WAAW,EAAE,SAAS,CAAC,CAAA;QAE3F,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE;YACxB,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBACnC,IAAI;oBACF,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACnB,YAAY,CAAC,SAAS,CAAC,CAAA;oBACvB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAA;oBACtC,YAAY,CAAC,MAAM,CAAC,CAAA;iBACrB;gBAAC,OAAO,CAAC,EAAE;oBACV,QAAQ,CAAC,CAAC,CAAC,CAAA;iBACZ;YACH,CAAC,CAAC,CAAA;SACH;QACD,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,KAAK,CAAC,MAAM,CAAA;IACrB,CAAC;CACF,CAAC,CAAA"}